From 1b18bd92754f8ac4d2bae1b41a9cbd5d0788272d Mon Sep 17 00:00:00 2001 From: Maximilian Anzinger <44003963+MaximilianAnzinger@users.noreply.github.com> Date: Fri, 29 Sep 2023 13:53:08 +0200 Subject: [PATCH 01/39] Adaptive learning: Improve learning path health status messages (#7077) --- .../CompetencyRelationRepository.java | 6 ++ .../repository/CompetencyRepository.java | 3 + .../artemis/service/LearningPathService.java | 42 ++++++++++-- .../web/rest/LearningPathResource.java | 5 +- .../dto/competency/LearningPathHealthDTO.java | 10 +-- ...-path-health-status-warning.component.html | 9 +++ ...ng-path-health-status-warning.component.ts | 16 +++++ .../learning-path-management.component.html | 32 +++++---- .../learning-path-management.component.ts | 15 +++- .../learning-paths/learning-paths.module.ts | 2 + .../competency/learning-path-health.model.ts | 51 +++++++++++++- src/main/webapp/i18n/de/competency.json | 12 ++++ src/main/webapp/i18n/en/competency.json | 12 ++++ .../lecture/LearningPathIntegrationTest.java | 3 + .../service/LearningPathServiceTest.java | 32 ++++++++- ...th-health-status-warning.component.spec.ts | 68 +++++++++++++++++++ ...learning-path-management.component.spec.ts | 6 +- 17 files changed, 289 insertions(+), 35 deletions(-) create mode 100644 src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.html create mode 100644 src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.ts create mode 100644 src/test/javascript/spec/component/learning-paths/management/learning-path-health-status-warning.component.spec.ts diff --git a/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRelationRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRelationRepository.java index bea1a8864da1..57a60304e674 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRelationRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRelationRepository.java @@ -33,4 +33,10 @@ public interface CompetencyRelationRepository extends JpaRepository findAllByCourseId(@Param("courseId") Long courseId); + @Query(""" + SELECT count(cr) + FROM CompetencyRelation cr + WHERE cr.headCompetency.course.id = :courseId OR cr.tailCompetency.course.id = :courseId + """) + long countByCourseId(@Param("courseId") long courseId); } diff --git a/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRepository.java index 18be4967ccf2..cfffc608f4fd 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/CompetencyRepository.java @@ -11,6 +11,7 @@ import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import de.tum.in.www1.artemis.domain.Course; import de.tum.in.www1.artemis.domain.competency.Competency; import de.tum.in.www1.artemis.web.rest.errors.EntityNotFoundException; @@ -180,4 +181,6 @@ default Competency findByIdWithExercisesAndLectureUnitsElseThrow(Long competency default Competency findByIdWithExercisesElseThrow(Long competencyId) { return findByIdWithExercises(competencyId).orElseThrow(() -> new EntityNotFoundException("Competency", competencyId)); } + + long countByCourse(Course course); } diff --git a/src/main/java/de/tum/in/www1/artemis/service/LearningPathService.java b/src/main/java/de/tum/in/www1/artemis/service/LearningPathService.java index 2329e5c5f757..e16f38edc41b 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/LearningPathService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/LearningPathService.java @@ -49,14 +49,17 @@ public class LearningPathService { private final CourseRepository courseRepository; + private final CompetencyRepository competencyRepository; + private final CompetencyRelationRepository competencyRelationRepository; public LearningPathService(UserRepository userRepository, LearningPathRepository learningPathRepository, CompetencyProgressRepository competencyProgressRepository, - CourseRepository courseRepository, CompetencyRelationRepository competencyRelationRepository) { + CourseRepository courseRepository, CompetencyRepository competencyRepository, CompetencyRelationRepository competencyRelationRepository) { this.userRepository = userRepository; this.learningPathRepository = learningPathRepository; this.competencyProgressRepository = competencyProgressRepository; this.courseRepository = courseRepository; + this.competencyRepository = competencyRepository; this.competencyRelationRepository = competencyRelationRepository; } @@ -178,17 +181,46 @@ private void updateLearningPathProgress(@NotNull LearningPath learningPath) { */ public LearningPathHealthDTO getHealthStatusForCourse(@NotNull Course course) { if (!course.getLearningPathsEnabled()) { - return new LearningPathHealthDTO(LearningPathHealthDTO.HealthStatus.DISABLED); + return new LearningPathHealthDTO(Set.of(LearningPathHealthDTO.HealthStatus.DISABLED)); + } + + Set status = new HashSet<>(); + Long numberOfMissingLearningPaths = checkMissingLearningPaths(course, status); + checkNoCompetencies(course, status); + checkNoRelations(course, status); + + // if no issues where found, add OK status + if (status.isEmpty()) { + status.add(LearningPathHealthDTO.HealthStatus.OK); } + return new LearningPathHealthDTO(status, numberOfMissingLearningPaths); + } + + private Long checkMissingLearningPaths(@NotNull Course course, @NotNull Set status) { long numberOfStudents = userRepository.countUserInGroup(course.getStudentGroupName()); long numberOfLearningPaths = learningPathRepository.countLearningPathsOfEnrolledStudentsInCourse(course.getId()); + Long numberOfMissingLearningPaths = numberOfStudents - numberOfLearningPaths; - if (numberOfStudents == numberOfLearningPaths) { - return new LearningPathHealthDTO(LearningPathHealthDTO.HealthStatus.OK); + if (numberOfMissingLearningPaths != 0) { + status.add(LearningPathHealthDTO.HealthStatus.MISSING); } else { - return new LearningPathHealthDTO(LearningPathHealthDTO.HealthStatus.MISSING, numberOfStudents - numberOfLearningPaths); + numberOfMissingLearningPaths = null; + } + + return numberOfMissingLearningPaths; + } + + private void checkNoCompetencies(@NotNull Course course, @NotNull Set status) { + if (competencyRepository.countByCourse(course) == 0) { + status.add(LearningPathHealthDTO.HealthStatus.NO_COMPETENCIES); + } + } + + private void checkNoRelations(@NotNull Course course, @NotNull Set status) { + if (competencyRelationRepository.countByCourseId(course.getId()) == 0) { + status.add(LearningPathHealthDTO.HealthStatus.NO_RELATIONS); } } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/LearningPathResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/LearningPathResource.java index e2f39f1ce557..b2bbb88ec56a 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/LearningPathResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/LearningPathResource.java @@ -26,6 +26,7 @@ import de.tum.in.www1.artemis.web.rest.dto.competency.LearningPathPageableSearchDTO; import de.tum.in.www1.artemis.web.rest.dto.competency.NgxLearningPathDTO; import de.tum.in.www1.artemis.web.rest.errors.AccessForbiddenException; +import de.tum.in.www1.artemis.web.rest.errors.ConflictException; @RestController @RequestMapping("api/") @@ -179,10 +180,10 @@ public ResponseEntity getLearningPathId(@PathVariable Long courseId) { log.debug("REST request to get learning path id for course with id: {}", courseId); Course course = courseRepository.findByIdElseThrow(courseId); if (!authorizationCheckService.isStudentInCourse(course, null)) { - throw new BadRequestException("You are not a student in this course."); + throw new AccessForbiddenException("You are not a student in this course."); } if (!course.getLearningPathsEnabled()) { - throw new BadRequestException("Learning paths are not enabled for this course."); + throw new ConflictException("Learning paths are not enabled for this course.", "LearningPath", "learningPathsNotEnabled"); } // generate learning path if missing diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/competency/LearningPathHealthDTO.java b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/competency/LearningPathHealthDTO.java index f261bf7cb26a..cea77a15d594 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/competency/LearningPathHealthDTO.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/competency/LearningPathHealthDTO.java @@ -1,17 +1,19 @@ package de.tum.in.www1.artemis.web.rest.dto.competency; -import javax.validation.constraints.NotNull; +import java.util.Set; + +import javax.validation.constraints.NotEmpty; import com.fasterxml.jackson.annotation.JsonInclude; @JsonInclude(JsonInclude.Include.NON_NULL) -public record LearningPathHealthDTO(@NotNull HealthStatus status, Long missingLearningPaths) { +public record LearningPathHealthDTO(@NotEmpty Set status, Long missingLearningPaths) { - public LearningPathHealthDTO(HealthStatus status) { + public LearningPathHealthDTO(Set status) { this(status, null); } public enum HealthStatus { - OK, DISABLED, MISSING + OK, DISABLED, MISSING, NO_COMPETENCIES, NO_RELATIONS } } diff --git a/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.html b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.html new file mode 100644 index 000000000000..27a2240410b4 --- /dev/null +++ b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.html @@ -0,0 +1,9 @@ +
+
+
{{ getWarningTitle(status) | artemisTranslate }}
+

{{ getWarningBody(status) | artemisTranslate }}

+ +
+
diff --git a/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.ts b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.ts new file mode 100644 index 000000000000..0084bf57ed9c --- /dev/null +++ b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component.ts @@ -0,0 +1,16 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { HealthStatus, getWarningAction, getWarningBody, getWarningHint, getWarningTitle } from 'app/entities/competency/learning-path-health.model'; + +@Component({ + selector: 'jhi-learning-path-health-status-warning', + templateUrl: './learning-path-health-status-warning.component.html', +}) +export class LearningPathHealthStatusWarningComponent { + @Input() status: HealthStatus; + @Output() onButtonClicked: EventEmitter = new EventEmitter(); + + readonly getWarningTitle = getWarningTitle; + readonly getWarningBody = getWarningBody; + readonly getWarningHint = getWarningHint; + readonly getWarningAction = getWarningAction; +} diff --git a/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.html b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.html index c6e89d1e7a8c..5542ff44ebf6 100644 --- a/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.html +++ b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.html @@ -6,7 +6,7 @@

Learning Path Management

-
+
Disabled
-
-
-
{{ 'artemisApp.learningPath.manageLearningPaths.health.missing.title' | artemisTranslate }}
-

{{ 'artemisApp.learningPath.manageLearningPaths.health.missing.body' | artemisTranslate }}

- -
-
-
+ + + + + +
Search for Learning Path: diff --git a/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.ts b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.ts index 60d0b168c6ec..e5c9d0c19160 100644 --- a/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.ts +++ b/src/main/webapp/app/course/learning-paths/learning-path-management/learning-path-management.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { Subject } from 'rxjs'; import { LearningPathService } from 'app/course/learning-paths/learning-path.service'; import { debounceTime, finalize, switchMap, tap } from 'rxjs/operators'; @@ -11,7 +11,7 @@ import { LearningPathPagingService } from 'app/course/learning-paths/learning-pa import { SortService } from 'app/shared/service/sort.service'; import { LearningPathPageableSearchDTO } from 'app/entities/competency/learning-path.model'; import { faSort, faTriangleExclamation } from '@fortawesome/free-solid-svg-icons'; -import { HealthStatus, LearningPathHealthDTO } from 'app/entities/competency/learning-path-health.model'; +import { HealthStatus, LearningPathHealthDTO, getWarningAction, getWarningBody, getWarningHint, getWarningTitle } from 'app/entities/competency/learning-path-health.model'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { LearningPathProgressModalComponent } from 'app/course/learning-paths/learning-path-management/learning-path-progress-modal.component'; @@ -53,6 +53,7 @@ export class LearningPathManagementComponent implements OnInit { constructor( private activatedRoute: ActivatedRoute, + private router: Router, private learningPathService: LearningPathService, private alertService: AlertService, private pagingService: LearningPathPagingService, @@ -134,7 +135,7 @@ export class LearningPathManagementComponent implements OnInit { .subscribe({ next: (res) => { this.health = res.body!; - if (this.health.status !== HealthStatus.DISABLED) { + if (!this.health.status?.includes(HealthStatus.DISABLED)) { this.performSearch(this.sort, 0); this.performSearch(this.search, 300); } @@ -163,6 +164,10 @@ export class LearningPathManagementComponent implements OnInit { }); } + routeToCompetencyManagement() { + this.router.navigate(['../competency-management'], { relativeTo: this.activatedRoute }); + } + /** * Method to perform the search based on a search subject * @@ -214,4 +219,8 @@ export class LearningPathManagementComponent implements OnInit { } protected readonly HealthStatus = HealthStatus; + protected readonly getWarningTitle = getWarningTitle; + protected readonly getWarningBody = getWarningBody; + protected readonly getWarningAction = getWarningAction; + protected readonly getWarningHint = getWarningHint; } diff --git a/src/main/webapp/app/course/learning-paths/learning-paths.module.ts b/src/main/webapp/app/course/learning-paths/learning-paths.module.ts index 7a125407fa01..862086b32d3e 100644 --- a/src/main/webapp/app/course/learning-paths/learning-paths.module.ts +++ b/src/main/webapp/app/course/learning-paths/learning-paths.module.ts @@ -13,6 +13,7 @@ import { LearningPathGraphNodeComponent } from 'app/course/learning-paths/learni import { CompetencyNodeDetailsComponent } from 'app/course/learning-paths/learning-path-graph/node-details/competency-node-details.component'; import { LectureUnitNodeDetailsComponent } from 'app/course/learning-paths/learning-path-graph/node-details/lecture-unit-node-details.component'; import { ExerciseNodeDetailsComponent } from 'app/course/learning-paths/learning-path-graph/node-details/exercise-node-details.component'; +import { LearningPathHealthStatusWarningComponent } from 'app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component'; import { LearningPathContainerComponent } from 'app/course/learning-paths/participate/learning-path-container.component'; import { Authority } from 'app/shared/constants/authority.constants'; import { UserRouteAccessService } from 'app/core/auth/user-route-access-service'; @@ -71,6 +72,7 @@ const routes: Routes = [ ], declarations: [ LearningPathManagementComponent, + LearningPathHealthStatusWarningComponent, LearningPathProgressModalComponent, LearningPathProgressNavComponent, LearningPathGraphComponent, diff --git a/src/main/webapp/app/entities/competency/learning-path-health.model.ts b/src/main/webapp/app/entities/competency/learning-path-health.model.ts index bf3a9794d178..1cbcb13ba367 100644 --- a/src/main/webapp/app/entities/competency/learning-path-health.model.ts +++ b/src/main/webapp/app/entities/competency/learning-path-health.model.ts @@ -1,8 +1,8 @@ export class LearningPathHealthDTO { - public status?: HealthStatus; + public status?: HealthStatus[]; public missingLearningPaths?: number; - constructor(status: HealthStatus) { + constructor(status: HealthStatus[]) { this.status = status; } } @@ -11,4 +11,51 @@ export enum HealthStatus { OK = 'OK', DISABLED = 'DISABLED', MISSING = 'MISSING', + NO_COMPETENCIES = 'NO_COMPETENCIES', + NO_RELATIONS = 'NO_RELATIONS', +} + +function getWarningTranslation(status: HealthStatus, element: string) { + if (!status || status === HealthStatus.OK || status === HealthStatus.DISABLED) { + return ''; + } + + const translation = { + [HealthStatus.MISSING]: 'missing', + [HealthStatus.NO_COMPETENCIES]: 'noCompetencies', + [HealthStatus.NO_RELATIONS]: 'noRelations', + }; + return `artemisApp.learningPath.manageLearningPaths.health.${translation[status]}.${element}`; +} + +export function getWarningTitle(status: HealthStatus) { + if (!status || status === HealthStatus.OK || status === HealthStatus.DISABLED) { + return ''; + } + + return getWarningTranslation(status, 'title'); +} + +export function getWarningBody(status: HealthStatus) { + if (!status || status === HealthStatus.OK || status === HealthStatus.DISABLED) { + return ''; + } + + return getWarningTranslation(status, 'body'); +} + +export function getWarningAction(status: HealthStatus) { + if (!status || status === HealthStatus.OK || status === HealthStatus.DISABLED) { + return ''; + } + + return getWarningTranslation(status, 'action'); +} + +export function getWarningHint(status: HealthStatus) { + if (!status || status === HealthStatus.OK || status === HealthStatus.DISABLED) { + return ''; + } + + return getWarningTranslation(status, 'hint'); } diff --git a/src/main/webapp/i18n/de/competency.json b/src/main/webapp/i18n/de/competency.json index d5ec0d5c3ecc..2b52dae6d2d2 100644 --- a/src/main/webapp/i18n/de/competency.json +++ b/src/main/webapp/i18n/de/competency.json @@ -163,6 +163,18 @@ "body": "Für einige Studierende wurde noch kein Lernpfad erstellt. Dies ist nicht kritisch. Ihre Lernpfade werden generiert, wenn sie ihren Lernpfad das erste mal anfragen.", "action": "Erstellen", "hint": "Erstellen der fehlenden Lernpfade" + }, + "noCompetencies": { + "title": "Keine Kompetenzen", + "body": "Es wurden noch keine Kompetenzen erstellt. Lernpfade setzen sich aus den Kompetenzen zusammen, die Studierende erreichen müssen. Gehe zum Kompetenzmanagement um neue Kompetenzen zu erstellen oder bestehende zu importieren.", + "action": "Kompetenzmanagement", + "hint": "Gehe zum Kompetenzmanagement" + }, + "noRelations": { + "title": "Keine Beziehungen", + "body": "Es wurden noch keine Beziehungen zwischen Kompetenzen konfiguriert. Lernpfade nutzen die Informationen über die Struktur der Lerninhalte um zuverlässig qualitiv hochwertige Empfehlungen für Studierende zu generieren. Gehe zum Kompetenzmanagement um die Beziehungen zwischen Kompetenzen zu konfigurieren.", + "action": "Kompetenzmanagement", + "hint": "Gehe zum Kompetenzmanagement" } }, "isDisabled": "Lernpfade sind für diesen Kurs nicht aktiviert.", diff --git a/src/main/webapp/i18n/en/competency.json b/src/main/webapp/i18n/en/competency.json index b4d3e89115a8..3ec6dc3de02a 100644 --- a/src/main/webapp/i18n/en/competency.json +++ b/src/main/webapp/i18n/en/competency.json @@ -162,6 +162,18 @@ "body": "Some students have not generated their learning paths yet. This is not critical. Their learning paths will be created once they request their learning path for the first time.", "action": "Generate", "hint": "Generate missing Learning Paths" + }, + "noCompetencies": { + "title": "No Competencies", + "body": "You have not created competencies yet. Learning paths are composed of the competencies students have to fulfill. Go to the competency management tab to create new competencies or import existing ones.", + "action": "Competency Management", + "hint": "Go to competency management" + }, + "noRelations": { + "title": "No Relations", + "body": "You have not configured relations between competencies. Learning paths use this information about the structure of the learning materials to reliably provide high quality recommendations to students. Go to the competency management tab to configure competency relations.", + "action": "Competency Management", + "hint": "Go to competency management" } }, "isDisabled": "Learning Paths are currently disabled for this course.", diff --git a/src/test/java/de/tum/in/www1/artemis/lecture/LearningPathIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/lecture/LearningPathIntegrationTest.java index 3607539ed02f..50813bc3a4c8 100644 --- a/src/test/java/de/tum/in/www1/artemis/lecture/LearningPathIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/lecture/LearningPathIntegrationTest.java @@ -198,18 +198,21 @@ private void deleteCompetencyRESTCall(Competency competency) throws Exception { @WithMockUser(username = STUDENT_OF_COURSE, roles = "USER") void testAll_asStudent() throws Exception { this.testAllPreAuthorize(); + request.get("/api/courses/" + course.getId() + "/learning-path-id", HttpStatus.CONFLICT, Long.class); } @Test @WithMockUser(username = TUTOR_OF_COURSE, roles = "TA") void testAll_asTutor() throws Exception { this.testAllPreAuthorize(); + request.get("/api/courses/" + course.getId() + "/learning-path-id", HttpStatus.FORBIDDEN, Long.class); } @Test @WithMockUser(username = EDITOR_OF_COURSE, roles = "EDITOR") void testAll_asEditor() throws Exception { this.testAllPreAuthorize(); + request.get("/api/courses/" + course.getId() + "/learning-path-id", HttpStatus.FORBIDDEN, Long.class); } @Test diff --git a/src/test/java/de/tum/in/www1/artemis/service/LearningPathServiceTest.java b/src/test/java/de/tum/in/www1/artemis/service/LearningPathServiceTest.java index 0783a9e28b63..8be16f8ce24d 100644 --- a/src/test/java/de/tum/in/www1/artemis/service/LearningPathServiceTest.java +++ b/src/test/java/de/tum/in/www1/artemis/service/LearningPathServiceTest.java @@ -87,24 +87,50 @@ void setup() { @Test void testHealthStatusDisabled() { var healthStatus = learningPathService.getHealthStatusForCourse(course); - assertThat(healthStatus.status()).isEqualTo(LearningPathHealthDTO.HealthStatus.DISABLED); + assertThat(healthStatus.status()).containsExactly(LearningPathHealthDTO.HealthStatus.DISABLED); + assertThat(healthStatus.missingLearningPaths()).isNull(); } @Test void testHealthStatusOK() { + final var competency1 = competencyUtilService.createCompetency(course); + final var competency2 = competencyUtilService.createCompetency(course); + competencyUtilService.addRelation(competency1, CompetencyRelation.RelationType.MATCHES, competency2); course = learningPathUtilService.enableAndGenerateLearningPathsForCourse(course); var healthStatus = learningPathService.getHealthStatusForCourse(course); - assertThat(healthStatus.status()).isEqualTo(LearningPathHealthDTO.HealthStatus.OK); + assertThat(healthStatus.status()).containsExactly(LearningPathHealthDTO.HealthStatus.OK); + assertThat(healthStatus.missingLearningPaths()).isNull(); } @Test void testHealthStatusMissing() { + final var competency1 = competencyUtilService.createCompetency(course); + final var competency2 = competencyUtilService.createCompetency(course); + competencyUtilService.addRelation(competency1, CompetencyRelation.RelationType.MATCHES, competency2); course = learningPathUtilService.enableAndGenerateLearningPathsForCourse(course); userUtilService.addStudent(TEST_PREFIX + "tumuser", TEST_PREFIX + "student1337"); var healthStatus = learningPathService.getHealthStatusForCourse(course); - assertThat(healthStatus.status()).isEqualTo(LearningPathHealthDTO.HealthStatus.MISSING); + assertThat(healthStatus.status()).containsExactly(LearningPathHealthDTO.HealthStatus.MISSING); assertThat(healthStatus.missingLearningPaths()).isEqualTo(1); } + + @Test + void testHealthStatusNoCompetencies() { + course = learningPathUtilService.enableAndGenerateLearningPathsForCourse(course); + var healthStatus = learningPathService.getHealthStatusForCourse(course); + assertThat(healthStatus.status()).containsExactlyInAnyOrder(LearningPathHealthDTO.HealthStatus.NO_COMPETENCIES, LearningPathHealthDTO.HealthStatus.NO_RELATIONS); + assertThat(healthStatus.missingLearningPaths()).isNull(); + } + + @Test + void testHealthStatusNoRelations() { + competencyUtilService.createCompetency(course); + competencyUtilService.createCompetency(course); + course = learningPathUtilService.enableAndGenerateLearningPathsForCourse(course); + var healthStatus = learningPathService.getHealthStatusForCourse(course); + assertThat(healthStatus.status()).containsExactly(LearningPathHealthDTO.HealthStatus.NO_RELATIONS); + assertThat(healthStatus.missingLearningPaths()).isNull(); + } } @Nested diff --git a/src/test/javascript/spec/component/learning-paths/management/learning-path-health-status-warning.component.spec.ts b/src/test/javascript/spec/component/learning-paths/management/learning-path-health-status-warning.component.spec.ts new file mode 100644 index 000000000000..f5396e32157d --- /dev/null +++ b/src/test/javascript/spec/component/learning-paths/management/learning-path-health-status-warning.component.spec.ts @@ -0,0 +1,68 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ArtemisTestModule } from '../../../test.module'; +import { MockPipe } from 'ng-mocks'; +import { ArtemisTranslatePipe } from 'app/shared/pipes/artemis-translate.pipe'; +import { NgbTooltipMocksModule } from '../../../helpers/mocks/directive/ngbTooltipMocks.module'; +import { LearningPathHealthStatusWarningComponent } from 'app/course/learning-paths/learning-path-management/learning-path-health-status-warning.component'; +import { HealthStatus } from 'app/entities/competency/learning-path-health.model'; +import { MockHasAnyAuthorityDirective } from '../../../helpers/mocks/directive/mock-has-any-authority.directive'; + +describe('LearningPathHealthStatusWarningComponent', () => { + let fixture: ComponentFixture; + let comp: LearningPathHealthStatusWarningComponent; + let getWarningTitleStub: jest.SpyInstance; + let getWarningBodyStub: jest.SpyInstance; + let getWarningActionStub: jest.SpyInstance; + let getWarningHintStub: jest.SpyInstance; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ArtemisTestModule, NgbTooltipMocksModule], + declarations: [LearningPathHealthStatusWarningComponent, MockPipe(ArtemisTranslatePipe), MockHasAnyAuthorityDirective], + providers: [], + }) + .compileComponents() + .then(() => { + fixture = TestBed.createComponent(LearningPathHealthStatusWarningComponent); + comp = fixture.componentInstance; + getWarningTitleStub = jest.spyOn(comp, 'getWarningTitle'); + getWarningBodyStub = jest.spyOn(comp, 'getWarningBody'); + getWarningActionStub = jest.spyOn(comp, 'getWarningAction'); + getWarningHintStub = jest.spyOn(comp, 'getWarningHint'); + fixture.detectChanges(); + }); + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('should create', () => { + expect(fixture).toBeTruthy(); + expect(comp).toBeTruthy(); + }); + + it.each([HealthStatus.MISSING, HealthStatus.NO_COMPETENCIES, HealthStatus.NO_RELATIONS])('should load title', (status: HealthStatus) => { + comp.status = status; + fixture.detectChanges(); + expect(getWarningTitleStub).toHaveBeenCalledWith(status); + }); + + it.each([HealthStatus.MISSING, HealthStatus.NO_COMPETENCIES, HealthStatus.NO_RELATIONS])('should load body', (status: HealthStatus) => { + comp.status = status; + fixture.detectChanges(); + expect(getWarningBodyStub).toHaveBeenCalledWith(status); + }); + + it.each([HealthStatus.MISSING, HealthStatus.NO_COMPETENCIES, HealthStatus.NO_RELATIONS])('should load action', (status: HealthStatus) => { + comp.status = status; + fixture.detectChanges(); + expect(getWarningActionStub).toHaveBeenCalledWith(status); + }); + + it.each([HealthStatus.MISSING, HealthStatus.NO_COMPETENCIES, HealthStatus.NO_RELATIONS])('should load hint', (status: HealthStatus) => { + comp.status = status; + fixture.detectChanges(); + expect(getWarningHintStub).toHaveBeenCalledWith(status); + }); +}); diff --git a/src/test/javascript/spec/component/learning-paths/management/learning-path-management.component.spec.ts b/src/test/javascript/spec/component/learning-paths/management/learning-path-management.component.spec.ts index bf89f3f55e26..9da130b9851a 100644 --- a/src/test/javascript/spec/component/learning-paths/management/learning-path-management.component.spec.ts +++ b/src/test/javascript/spec/component/learning-paths/management/learning-path-management.component.spec.ts @@ -90,7 +90,7 @@ describe('LearningPathManagementComponent', () => { searchForLearningPathsStub.mockReturnValue(of(searchResult)); enableLearningPathsStub.mockReturnValue(of(new HttpResponse())); generateMissingLearningPathsForCourseStub.mockReturnValue(of(new HttpResponse())); - health = new LearningPathHealthDTO(HealthStatus.OK); + health = new LearningPathHealthDTO([HealthStatus.OK]); getHealthStatusForCourseStub.mockReturnValue(of(new HttpResponse({ body: health }))); }); @@ -122,7 +122,7 @@ describe('LearningPathManagementComponent', () => { })); it('should enable learning paths and load data', fakeAsync(() => { - const healthDisabled = new LearningPathHealthDTO(HealthStatus.DISABLED); + const healthDisabled = new LearningPathHealthDTO([HealthStatus.DISABLED]); getHealthStatusForCourseStub.mockReturnValueOnce(of(new HttpResponse({ body: healthDisabled }))).mockReturnValueOnce(of(new HttpResponse({ body: health }))); fixture.detectChanges(); comp.ngOnInit(); @@ -145,7 +145,7 @@ describe('LearningPathManagementComponent', () => { })); it('should generate missing learning paths and load data', fakeAsync(() => { - const healthMissing = new LearningPathHealthDTO(HealthStatus.MISSING); + const healthMissing = new LearningPathHealthDTO([HealthStatus.MISSING]); getHealthStatusForCourseStub.mockReturnValueOnce(of(new HttpResponse({ body: healthMissing }))).mockReturnValueOnce(of(new HttpResponse({ body: health }))); fixture.detectChanges(); comp.ngOnInit(); From 8cf42cfac127334bf6c8e4b917f04dd678f8e319 Mon Sep 17 00:00:00 2001 From: Jakub Riegel Date: Fri, 29 Sep 2023 14:57:59 +0200 Subject: [PATCH 02/39] Quiz exercises: Do not include ungraded results on scores page (#7252) --- .../StudentParticipationRepository.java | 26 ++++++++++++++----- .../web/rest/ParticipationResource.java | 13 +++++++--- .../ParticipationIntegrationTest.java | 25 ++++++++++++++++++ .../ParticipationUtilService.java | 2 +- 4 files changed, 55 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java index ba0402ff8808..4a7d7bdace73 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java @@ -184,17 +184,31 @@ Optional findByExerciseIdAndStudentIdAndTestRunWithEagerSu * @return participations for exercise. */ @Query(""" - SELECT DISTINCT p FROM StudentParticipation p - LEFT JOIN FETCH p.results r - LEFT JOIN FETCH r.submission s - LEFT JOIN FETCH p.submissions - WHERE p.exercise.id = :#{#exerciseId} - AND (r.id = (SELECT max(id) FROM p.results) + SELECT DISTINCT p + FROM StudentParticipation p + LEFT JOIN FETCH p.results r + LEFT JOIN FETCH r.submission s + LEFT JOIN FETCH p.submissions + WHERE p.exercise.id = :exerciseId + AND (r.id = (SELECT max(p_r.id) FROM p.results p_r) OR r.assessmentType <> 'AUTOMATIC' OR r IS NULL) """) Set findByExerciseIdWithLatestAndManualResults(@Param("exerciseId") Long exerciseId); + @Query(""" + SELECT DISTINCT p + FROM StudentParticipation p + LEFT JOIN FETCH p.results r + LEFT JOIN FETCH r.submission s + LEFT JOIN FETCH p.submissions + WHERE p.exercise.id = :exerciseId + AND (r.id = (SELECT max(p_r.id) FROM p.results p_r WHERE p_r.rated = true) + OR r.assessmentType <> 'AUTOMATIC' + OR r IS NULL) + """) + Set findByExerciseIdWithLatestAndManualRatedResults(@Param("exerciseId") Long exerciseId); + @Query(""" SELECT DISTINCT p FROM StudentParticipation p LEFT JOIN FETCH p.results r diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/ParticipationResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/ParticipationResource.java index bef5f75f0b42..d0f41c78f81c 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/ParticipationResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/ParticipationResource.java @@ -26,9 +26,7 @@ import de.tum.in.www1.artemis.config.Constants; import de.tum.in.www1.artemis.config.GuidedTourConfiguration; import de.tum.in.www1.artemis.domain.*; -import de.tum.in.www1.artemis.domain.enumeration.AssessmentType; -import de.tum.in.www1.artemis.domain.enumeration.InitializationState; -import de.tum.in.www1.artemis.domain.enumeration.SubmissionType; +import de.tum.in.www1.artemis.domain.enumeration.*; import de.tum.in.www1.artemis.domain.modeling.ModelingExercise; import de.tum.in.www1.artemis.domain.participation.*; import de.tum.in.www1.artemis.domain.quiz.AbstractQuizSubmission; @@ -516,6 +514,13 @@ public ResponseEntity> updateParticipationDueDates(@P return ResponseEntity.ok().body(updatedParticipations); } + private Set findParticipationWithLatestResults(Exercise exercise) { + if (exercise.getExerciseType() == ExerciseType.QUIZ) { + return studentParticipationRepository.findByExerciseIdWithLatestAndManualRatedResults(exercise.getId()); + } + return studentParticipationRepository.findByExerciseIdWithLatestAndManualResults(exercise.getId()); + } + /** * GET /exercises/:exerciseId/participations : get all the participations for an exercise * @@ -532,7 +537,7 @@ public ResponseEntity> getAllParticipationsForExercise authCheckService.checkHasAtLeastRoleForExerciseElseThrow(Role.TEACHING_ASSISTANT, exercise, null); Set participations; if (withLatestResults) { - participations = studentParticipationRepository.findByExerciseIdWithLatestAndManualResults(exerciseId); + participations = findParticipationWithLatestResults(exercise); participations.forEach(participation -> { participation.setSubmissionCount(participation.getSubmissions().size()); if (participation.getResults() != null && !participation.getResults().isEmpty()) { diff --git a/src/test/java/de/tum/in/www1/artemis/participation/ParticipationIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/participation/ParticipationIntegrationTest.java index 4a3a054f64cc..e58780beaa22 100644 --- a/src/test/java/de/tum/in/www1/artemis/participation/ParticipationIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/participation/ParticipationIntegrationTest.java @@ -644,6 +644,31 @@ void getAllParticipationsForExercise_withLatestResults() throws Exception { assertThat(receivedTestParticipation.getSubmissionCount()).isZero(); } + @Test + @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") + void getAllParticipationsForExercise_withLatestResults_forQuizExercise() throws Exception { + var quizExercise = QuizExerciseFactory.generateQuizExercise(ZonedDateTime.now().minusDays(1), ZonedDateTime.now().plusDays(1), QuizMode.INDIVIDUAL, course); + course.addExercises(quizExercise); + courseRepo.save(course); + exerciseRepo.save(quizExercise); + + var participation = participationUtilService.createAndSaveParticipationForExercise(quizExercise, TEST_PREFIX + "student1"); + var result1 = participationUtilService.createSubmissionAndResult(participation, 42, true); + var notGradedResult = participationUtilService.addResultToParticipation(participation, result1.getSubmission()); + notGradedResult.setRated(false); + resultRepository.save(notGradedResult); + + final var params = new LinkedMultiValueMap(); + params.add("withLatestResults", "true"); + var participations = request.getList("/api/exercises/" + quizExercise.getId() + "/participations", HttpStatus.OK, StudentParticipation.class, params); + + var receivedParticipationWithResult = participations.stream().filter(p -> ((User) p.getParticipant()).getLogin().equals(TEST_PREFIX + "student1")).findFirst() + .orElseThrow(); + assertThat(receivedParticipationWithResult.getResults()).containsOnly(result1); + assertThat(receivedParticipationWithResult.getSubmissions()).isEmpty(); + assertThat(receivedParticipationWithResult.getSubmissionCount()).isEqualTo(1); + } + @Test @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") void getAllParticipationsForExercise_withLatestResults_multipleAssessments() throws Exception { diff --git a/src/test/java/de/tum/in/www1/artemis/participation/ParticipationUtilService.java b/src/test/java/de/tum/in/www1/artemis/participation/ParticipationUtilService.java index 9a8f1e9efa4e..9dce0a6ecb22 100644 --- a/src/test/java/de/tum/in/www1/artemis/participation/ParticipationUtilService.java +++ b/src/test/java/de/tum/in/www1/artemis/participation/ParticipationUtilService.java @@ -305,7 +305,7 @@ public Result addResultToParticipation(AssessmentType assessmentType, ZonedDateT } public Result addResultToParticipation(Participation participation, Submission submission) { - Result result = new Result().participation(participation).successful(true).score(100D); + Result result = new Result().participation(participation).successful(true).score(100D).rated(true); result = resultRepo.save(result); result.setSubmission(submission); submission.addResult(result); From bb7b39ff1cc524db6657775e27e16a226f06b44b Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Fri, 29 Sep 2023 17:06:41 +0200 Subject: [PATCH 03/39] Development: Add LTI profile (#7279) --- .../artemis/config/SecurityConfiguration.java | 18 ++++--- .../config/lti/CustomLti13Configurer.java | 2 + .../security/lti/Lti13LaunchFilter.java | 2 + .../security/lti/Lti13TokenRetriever.java | 2 + .../artemis/service/AssessmentService.java | 12 +++-- .../www1/artemis/service/ResultService.java | 15 +++--- .../service/TextAssessmentService.java | 3 +- .../service/connectors/lti/Lti10Service.java | 2 + .../service/connectors/lti/Lti13Service.java | 2 + .../lti/LtiDynamicRegistrationService.java | 2 + .../connectors/lti/LtiNewResultService.java | 2 + .../service/connectors/lti/LtiService.java | 14 ++--- .../ProgrammingAssessmentService.java | 4 +- .../ProgrammingMessagingService.java | 10 ++-- .../www1/artemis/web/rest/LegacyResource.java | 31 +---------- .../in/www1/artemis/web/rest/LtiResource.java | 2 + .../rest/ProgrammingAssessmentResource.java | 8 +-- .../www1/artemis/web/rest/UserResource.java | 7 +-- .../web/rest/open/PublicLtiResource.java | 2 + .../finish/password-reset-finish.component.ts | 2 - .../manage/course-management.component.ts | 52 +++++++++---------- .../manage/course-update.component.html | 2 +- .../course/manage/course-update.component.ts | 16 ++---- .../detail/course-detail.component.html | 14 ++--- .../manage/detail/course-detail.component.ts | 8 +++ ...ingIntegrationBambooBitbucketJiraTest.java | 2 +- ...ringIntegrationGitlabCIGitlabSamlTest.java | 2 +- ...tractSpringIntegrationIndependentTest.java | 2 +- ...actSpringIntegrationJenkinsGitlabTest.java | 2 +- ...ctSpringIntegrationLocalCILocalVCTest.java | 2 +- .../in/www1/artemis/LtiIntegrationTest.java | 8 +-- ...InternalAuthenticationIntegrationTest.java | 29 ----------- .../JiraAuthenticationIntegrationTest.java | 23 +------- .../artemis/connectors/LtiServiceTest.java | 8 ++- .../course/course-update.component.spec.ts | 5 +- 35 files changed, 130 insertions(+), 187 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/config/SecurityConfiguration.java b/src/main/java/de/tum/in/www1/artemis/config/SecurityConfiguration.java index 2ebb088e3689..a1d323f04cdf 100644 --- a/src/main/java/de/tum/in/www1/artemis/config/SecurityConfiguration.java +++ b/src/main/java/de/tum/in/www1/artemis/config/SecurityConfiguration.java @@ -1,9 +1,6 @@ package de.tum.in.www1.artemis.config; -import static de.tum.in.www1.artemis.config.Constants.*; - -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import javax.annotation.PostConstruct; @@ -12,6 +9,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; +import org.springframework.core.env.Environment; import org.springframework.http.HttpMethod; import org.springframework.security.access.hierarchicalroles.RoleHierarchy; import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl; @@ -62,8 +60,11 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Value("#{'${spring.prometheus.monitoringIp:127.0.0.1}'.split(',')}") private List monitoringIpAddresses; + private final Environment env; + public SecurityConfiguration(AuthenticationManagerBuilder authenticationManagerBuilder, UserDetailsService userDetailsService, TokenProvider tokenProvider, - CorsFilter corsFilter, SecurityProblemSupport problemSupport, PasswordService passwordService, Optional remoteUserAuthenticationProvider) { + CorsFilter corsFilter, SecurityProblemSupport problemSupport, PasswordService passwordService, Optional remoteUserAuthenticationProvider, + Environment env) { this.authenticationManagerBuilder = authenticationManagerBuilder; this.userDetailsService = userDetailsService; this.tokenProvider = tokenProvider; @@ -71,6 +72,7 @@ public SecurityConfiguration(AuthenticationManagerBuilder authenticationManagerB this.problemSupport = problemSupport; this.passwordService = passwordService; this.remoteUserAuthenticationProvider = remoteUserAuthenticationProvider; + this.env = env; } /** @@ -170,7 +172,6 @@ protected void configure(HttpSecurity http) throws Exception { .antMatchers(HttpMethod.POST, "/api/programming-exercises/new-result").permitAll() .antMatchers(HttpMethod.POST, "/api/programming-submissions/*").permitAll() .antMatchers(HttpMethod.POST, "/api/programming-exercises/test-cases-changed/*").permitAll() - .antMatchers(HttpMethod.POST, "/api/lti/launch/*").permitAll() .antMatchers("/websocket/**").permitAll() .antMatchers("/.well-known/jwks.json").permitAll() .antMatchers("/management/prometheus/**").access(getMonitoringAccessDefinition()) @@ -178,7 +179,10 @@ protected void configure(HttpSecurity http) throws Exception { .and() .apply(securityConfigurerAdapter()); - http.apply(new CustomLti13Configurer()); + Collection activeProfiles = Arrays.asList(env.getActiveProfiles()); + if (activeProfiles.contains("lti")) { + http.apply(new CustomLti13Configurer()); + } // @formatter:on } diff --git a/src/main/java/de/tum/in/www1/artemis/config/lti/CustomLti13Configurer.java b/src/main/java/de/tum/in/www1/artemis/config/lti/CustomLti13Configurer.java index 6dfa3b6b57a1..dd4f1de01542 100644 --- a/src/main/java/de/tum/in/www1/artemis/config/lti/CustomLti13Configurer.java +++ b/src/main/java/de/tum/in/www1/artemis/config/lti/CustomLti13Configurer.java @@ -1,6 +1,7 @@ package de.tum.in.www1.artemis.config.lti; import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Profile; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; import org.springframework.security.oauth2.client.web.AuthorizationRequestRepository; @@ -18,6 +19,7 @@ /** * Configures and registers Security Filters to handle LTI 1.3 Resource Link Launches */ +@Profile("lti") public class CustomLti13Configurer extends Lti13Configurer { private static final String LOGIN_PATH = "/auth-login"; diff --git a/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13LaunchFilter.java b/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13LaunchFilter.java index 7a172a5ae87c..c29b4584e56a 100644 --- a/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13LaunchFilter.java +++ b/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13LaunchFilter.java @@ -10,6 +10,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; import org.springframework.security.oauth2.core.OAuth2AuthenticationException; import org.springframework.security.oauth2.core.oidc.OidcIdToken; import org.springframework.security.oauth2.core.oidc.user.OidcUser; @@ -29,6 +30,7 @@ * Step 3. of OpenID Connect Third Party Initiated Login is handled solely by spring-security-lti13 * OAuth2LoginAuthenticationFilter. */ +@Profile("lti") public class Lti13LaunchFilter extends OncePerRequestFilter { private final OAuth2LoginAuthenticationFilter defaultFilter; diff --git a/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13TokenRetriever.java b/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13TokenRetriever.java index 877705ec36c4..0d015b913ea1 100644 --- a/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13TokenRetriever.java +++ b/src/main/java/de/tum/in/www1/artemis/security/lti/Lti13TokenRetriever.java @@ -7,6 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; import org.springframework.http.*; import org.springframework.security.oauth2.client.registration.ClientRegistration; import org.springframework.stereotype.Component; @@ -31,6 +32,7 @@ * This class is responsible to retrieve access tokens from an LTI 1.3 platform of a specific ClientRegistration. */ @Component +@Profile("lti") public class Lti13TokenRetriever { private final OAuth2JWKSService oAuth2JWKSService; diff --git a/src/main/java/de/tum/in/www1/artemis/service/AssessmentService.java b/src/main/java/de/tum/in/www1/artemis/service/AssessmentService.java index 39e347927409..6b48589ea2c8 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/AssessmentService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/AssessmentService.java @@ -42,12 +42,12 @@ public class AssessmentService { private final SubmissionService submissionService; - private final LtiNewResultService ltiNewResultService; + private final Optional ltiNewResultService; public AssessmentService(ComplaintResponseService complaintResponseService, ComplaintRepository complaintRepository, FeedbackRepository feedbackRepository, ResultRepository resultRepository, StudentParticipationRepository studentParticipationRepository, ResultService resultService, SubmissionService submissionService, SubmissionRepository submissionRepository, ExamDateService examDateService, GradingCriterionRepository gradingCriterionRepository, UserRepository userRepository, - LtiNewResultService ltiNewResultService) { + Optional ltiNewResultService) { this.complaintResponseService = complaintResponseService; this.complaintRepository = complaintRepository; this.feedbackRepository = feedbackRepository; @@ -216,8 +216,12 @@ public Result submitManualAssessment(long resultId, Exercise exercise) { result.setRatedIfNotAfterDueDate(); result.setCompletionDate(ZonedDateTime.now()); result = resultRepository.submitResult(result, exercise, ExerciseDateService.getDueDate(result.getParticipation())); - // Note: we always need to report the result (independent of the assessment due date) over LTI, otherwise it might never become visible in the external system - ltiNewResultService.onNewResult((StudentParticipation) result.getParticipation()); + + if (ltiNewResultService.isPresent()) { + // Note: we always need to report the result (independent of the assessment due date) over LTI, if LTI is configured. + // Otherwise, it might never become visible in the external system + ltiNewResultService.get().onNewResult((StudentParticipation) result.getParticipation()); + } return result; } diff --git a/src/main/java/de/tum/in/www1/artemis/service/ResultService.java b/src/main/java/de/tum/in/www1/artemis/service/ResultService.java index 92a8ecb3f772..e2b5af5545fa 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/ResultService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/ResultService.java @@ -34,7 +34,7 @@ public class ResultService { private final ResultRepository resultRepository; - private final LtiNewResultService ltiNewResultService; + private final Optional ltiNewResultService; private final ResultWebsocketService resultWebsocketService; @@ -60,10 +60,11 @@ public class ResultService { private final StudentExamRepository studentExamRepository; - public ResultService(UserRepository userRepository, ResultRepository resultRepository, LtiNewResultService ltiNewResultService, ResultWebsocketService resultWebsocketService, - ComplaintResponseRepository complaintResponseRepository, RatingRepository ratingRepository, FeedbackRepository feedbackRepository, - ComplaintRepository complaintRepository, ParticipantScoreRepository participantScoreRepository, AuthorizationCheckService authCheckService, - ExerciseDateService exerciseDateService, TemplateProgrammingExerciseParticipationRepository templateProgrammingExerciseParticipationRepository, + public ResultService(UserRepository userRepository, ResultRepository resultRepository, Optional ltiNewResultService, + ResultWebsocketService resultWebsocketService, ComplaintResponseRepository complaintResponseRepository, RatingRepository ratingRepository, + FeedbackRepository feedbackRepository, ComplaintRepository complaintRepository, ParticipantScoreRepository participantScoreRepository, + AuthorizationCheckService authCheckService, ExerciseDateService exerciseDateService, + TemplateProgrammingExerciseParticipationRepository templateProgrammingExerciseParticipationRepository, SolutionProgrammingExerciseParticipationRepository solutionProgrammingExerciseParticipationRepository, ProgrammingExerciseStudentParticipationRepository programmingExerciseStudentParticipationRepository, StudentExamRepository studentExamRepository) { this.userRepository = userRepository; @@ -110,8 +111,8 @@ public Result createNewManualResult(Result result, boolean ratedResult) { // if it is an example result we do not have any participation (isExampleResult can be also null) if (Boolean.FALSE.equals(savedResult.isExampleResult()) || savedResult.isExampleResult() == null) { - if (savedResult.getParticipation() instanceof ProgrammingExerciseStudentParticipation) { - ltiNewResultService.onNewResult((StudentParticipation) savedResult.getParticipation()); + if (savedResult.getParticipation() instanceof ProgrammingExerciseStudentParticipation && ltiNewResultService.isPresent()) { + ltiNewResultService.get().onNewResult((StudentParticipation) savedResult.getParticipation()); } resultWebsocketService.broadcastNewResult(savedResult.getParticipation(), savedResult); diff --git a/src/main/java/de/tum/in/www1/artemis/service/TextAssessmentService.java b/src/main/java/de/tum/in/www1/artemis/service/TextAssessmentService.java index e544c2eac462..32ecc49d75e0 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/TextAssessmentService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/TextAssessmentService.java @@ -3,6 +3,7 @@ import static org.hibernate.Hibernate.isInitialized; import java.util.List; +import java.util.Optional; import javax.annotation.Nullable; @@ -22,7 +23,7 @@ public class TextAssessmentService extends AssessmentService { public TextAssessmentService(UserRepository userRepository, ComplaintResponseService complaintResponseService, ComplaintRepository complaintRepository, FeedbackRepository feedbackRepository, ResultRepository resultRepository, StudentParticipationRepository studentParticipationRepository, ResultService resultService, SubmissionRepository submissionRepository, TextBlockService textBlockService, ExamDateService examDateService, GradingCriterionRepository gradingCriterionRepository, - SubmissionService submissionService, LtiNewResultService ltiNewResultService) { + SubmissionService submissionService, Optional ltiNewResultService) { super(complaintResponseService, complaintRepository, feedbackRepository, resultRepository, studentParticipationRepository, resultService, submissionService, submissionRepository, examDateService, gradingCriterionRepository, userRepository, ltiNewResultService); this.textBlockService = textBlockService; diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti10Service.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti10Service.java index 0ec104be151d..6c027df4b19a 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti10Service.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti10Service.java @@ -21,6 +21,7 @@ import org.imsglobal.pox.IMSPOXRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.client.HttpClientErrorException; @@ -36,6 +37,7 @@ import oauth.signpost.exception.OAuthException; @Service +@Profile("lti") public class Lti10Service { private final Logger log = LoggerFactory.getLogger(Lti10Service.class); diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti13Service.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti13Service.java index 8f3acbc36502..7697abf862d6 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti13Service.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/Lti13Service.java @@ -13,6 +13,7 @@ import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -35,6 +36,7 @@ import net.minidev.json.JSONObject; @Service +@Profile("lti") public class Lti13Service { private static final String EXERCISE_PATH_PATTERN = "/courses/{courseId}/exercises/{exerciseId}"; diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiDynamicRegistrationService.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiDynamicRegistrationService.java index 16b3f1bc6d30..e09f5f1357af 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiDynamicRegistrationService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiDynamicRegistrationService.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -22,6 +23,7 @@ import de.tum.in.www1.artemis.web.rest.errors.BadRequestAlertException; @Service +@Profile("lti") public class LtiDynamicRegistrationService { @Value("${server.url}") diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiNewResultService.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiNewResultService.java index b9cfd6a2aa33..1568c07b084f 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiNewResultService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiNewResultService.java @@ -1,10 +1,12 @@ package de.tum.in.www1.artemis.service.connectors.lti; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; import de.tum.in.www1.artemis.domain.participation.StudentParticipation; @Service +@Profile("lti") public class LtiNewResultService { private final Lti10Service lti10Service; diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiService.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiService.java index 8605d20766d6..32ac14e5fcea 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/lti/LtiService.java @@ -11,6 +11,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseCookie; import org.springframework.security.authentication.InternalAuthenticationServiceException; @@ -38,6 +39,7 @@ import tech.jhipster.security.RandomUtil; @Service +@Profile("lti") public class LtiService { public static final String LTI_GROUP_NAME = "lti"; @@ -95,11 +97,11 @@ public void authenticateLtiUser(String email, String username, String firstName, } } - // 2. Case: Lookup user with the LTI email address and sign in as this user + // 2. Case: Lookup user with the LTI email address and make sure it's not in use final var usernameLookupByEmail = artemisAuthenticationProvider.getUsernameForEmail(email); if (usernameLookupByEmail.isPresent()) { - SecurityContextHolder.getContext().setAuthentication(loginUserByEmail(usernameLookupByEmail.get(), email)); - return; + throw new InternalAuthenticationServiceException( + "Email address is already in use by Artemis. Please use a different address with your service or contact your instructor to gain direct access."); } // 3. Case: Create new user if an existing user is not required @@ -111,12 +113,6 @@ public void authenticateLtiUser(String email, String username, String firstName, throw new InternalAuthenticationServiceException("Could not find existing user or create new LTI user."); // If user couldn't be authenticated, throw an error } - private Authentication loginUserByEmail(String username, String email) { - log.info("Signing in as {}", username); - final var user = artemisAuthenticationProvider.getOrCreateUser(new UsernamePasswordAuthenticationToken(username, ""), null, null, email, true); - return new UsernamePasswordAuthenticationToken(user.getLogin(), user.getPassword(), SIMPLE_USER_LIST_AUTHORITY); - } - @NotNull private Authentication createNewUserFromLaunchRequest(String email, String username, String firstName, String lastName) { final var user = userRepository.findOneByLogin(username).orElseGet(() -> { diff --git a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingAssessmentService.java b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingAssessmentService.java index 010db24151dd..eb9f1be27c74 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingAssessmentService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingAssessmentService.java @@ -1,5 +1,7 @@ package de.tum.in.www1.artemis.service.programming; +import java.util.Optional; + import org.springframework.stereotype.Service; import de.tum.in.www1.artemis.domain.*; @@ -15,7 +17,7 @@ public class ProgrammingAssessmentService extends AssessmentService { public ProgrammingAssessmentService(ComplaintResponseService complaintResponseService, ComplaintRepository complaintRepository, FeedbackRepository feedbackRepository, ResultRepository resultRepository, StudentParticipationRepository studentParticipationRepository, ResultService resultService, SubmissionService submissionService, SubmissionRepository submissionRepository, ExamDateService examDateService, UserRepository userRepository, GradingCriterionRepository gradingCriterionRepository, - LtiNewResultService ltiNewResultService) { + Optional ltiNewResultService) { super(complaintResponseService, complaintRepository, feedbackRepository, resultRepository, studentParticipationRepository, resultService, submissionService, submissionRepository, examDateService, gradingCriterionRepository, userRepository, ltiNewResultService); } diff --git a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingMessagingService.java b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingMessagingService.java index 98ff77a0bb21..9e6ed460d85a 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingMessagingService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingMessagingService.java @@ -2,6 +2,8 @@ import static de.tum.in.www1.artemis.config.Constants.*; +import java.util.Optional; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -26,10 +28,10 @@ public class ProgrammingMessagingService { private final ResultWebsocketService resultWebsocketService; - private final LtiNewResultService ltiNewResultService; + private final Optional ltiNewResultService; public ProgrammingMessagingService(GroupNotificationService groupNotificationService, WebsocketMessagingService websocketMessagingService, - ResultWebsocketService resultWebsocketService, LtiNewResultService ltiNewResultService) { + ResultWebsocketService resultWebsocketService, Optional ltiNewResultService) { this.groupNotificationService = groupNotificationService; this.websocketMessagingService = websocketMessagingService; this.resultWebsocketService = resultWebsocketService; @@ -138,9 +140,9 @@ public void notifyUserAboutNewResult(Result result, ProgrammingExerciseParticipa // notify user via websocket resultWebsocketService.broadcastNewResult((Participation) participation, result); - if (participation instanceof ProgrammingExerciseStudentParticipation studentParticipation) { + if (participation instanceof ProgrammingExerciseStudentParticipation studentParticipation && ltiNewResultService.isPresent()) { // do not try to report results for template or solution participations - ltiNewResultService.onNewResult(studentParticipation); + ltiNewResultService.get().onNewResult(studentParticipation); } } } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/LegacyResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/LegacyResource.java index 9659a44855d0..713a55c31bf1 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/LegacyResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/LegacyResource.java @@ -1,10 +1,5 @@ package de.tum.in.www1.artemis.web.rest; -import java.io.IOException; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import org.springframework.http.ResponseEntity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.web.bind.annotation.*; @@ -12,8 +7,6 @@ import de.tum.in.www1.artemis.config.SecurityConfiguration; import de.tum.in.www1.artemis.security.annotations.EnforceNothing; import de.tum.in.www1.artemis.security.annotations.ManualConfig; -import de.tum.in.www1.artemis.web.rest.dto.LtiLaunchRequestDTO; -import de.tum.in.www1.artemis.web.rest.open.PublicLtiResource; import de.tum.in.www1.artemis.web.rest.open.PublicProgrammingSubmissionResource; import de.tum.in.www1.artemis.web.rest.open.PublicResultResource; @@ -26,37 +19,15 @@ @Deprecated(forRemoval = true) public class LegacyResource { - private final PublicLtiResource publicLtiResource; - private final PublicProgrammingSubmissionResource publicProgrammingSubmissionResource; private final PublicResultResource publicResultResource; - public LegacyResource(PublicLtiResource publicLtiResource, PublicProgrammingSubmissionResource publicProgrammingSubmissionResource, PublicResultResource publicResultResource) { - this.publicLtiResource = publicLtiResource; + public LegacyResource(PublicProgrammingSubmissionResource publicProgrammingSubmissionResource, PublicResultResource publicResultResource) { this.publicProgrammingSubmissionResource = publicProgrammingSubmissionResource; this.publicResultResource = publicResultResource; } - /** - * POST lti/launch/:exerciseId : Launch the exercise app using request by an LTI consumer. Redirects the user to - * the exercise on success. - * - * @param launchRequest the LTI launch request (ExerciseLtiConfigurationDTO) - * @param exerciseId the id of the exercise the user wants to open - * @param request the request - * @param response the response - * @deprecated use {@link PublicLtiResource#launch(LtiLaunchRequestDTO, Long, HttpServletRequest, HttpServletResponse)} instead - */ - @PostMapping("lti/launch/{exerciseId}") - @EnforceNothing - @ManualConfig - @Deprecated(forRemoval = true) - public void legacyLtiLaunch(@ModelAttribute LtiLaunchRequestDTO launchRequest, @PathVariable("exerciseId") Long exerciseId, HttpServletRequest request, - HttpServletResponse response) throws IOException { - publicLtiResource.launch(launchRequest, exerciseId, request, response); - } - /** * Receive a new push notification from the VCS server and save a submission in the database * diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/LtiResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/LtiResource.java index 99f661058c31..c2d644b36085 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/LtiResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/LtiResource.java @@ -1,5 +1,6 @@ package de.tum.in.www1.artemis.web.rest; +import org.springframework.context.annotation.Profile; import org.springframework.web.bind.annotation.*; import de.tum.in.www1.artemis.domain.Course; @@ -14,6 +15,7 @@ */ @RestController @RequestMapping("/api") +@Profile("lti") public class LtiResource { private final LtiDynamicRegistrationService ltiDynamicRegistrationService; diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingAssessmentResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingAssessmentResource.java index 4b34fa6951b8..b6174e2948e2 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingAssessmentResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingAssessmentResource.java @@ -45,7 +45,7 @@ public class ProgrammingAssessmentResource extends AssessmentResource { private final ProgrammingSubmissionRepository programmingSubmissionRepository; - private final LtiNewResultService ltiNewResultService; + private final Optional ltiNewResultService; private final StudentParticipationRepository studentParticipationRepository; @@ -53,7 +53,7 @@ public class ProgrammingAssessmentResource extends AssessmentResource { public ProgrammingAssessmentResource(AuthorizationCheckService authCheckService, UserRepository userRepository, ProgrammingAssessmentService programmingAssessmentService, ProgrammingSubmissionRepository programmingSubmissionRepository, ExerciseRepository exerciseRepository, ResultRepository resultRepository, ExamService examService, - ResultWebsocketService resultWebsocketService, LtiNewResultService ltiNewResultService, StudentParticipationRepository studentParticipationRepository, + ResultWebsocketService resultWebsocketService, Optional ltiNewResultService, StudentParticipationRepository studentParticipationRepository, ExampleSubmissionRepository exampleSubmissionRepository, SubmissionRepository submissionRepository, SingleUserNotificationService singleUserNotificationService, ProgrammingExerciseParticipationService programmingExerciseParticipationService) { super(authCheckService, userRepository, exerciseRepository, programmingAssessmentService, resultRepository, examService, resultWebsocketService, @@ -202,7 +202,9 @@ public ResponseEntity saveProgrammingAssessment(@PathVariable Long parti newManualResult.getParticipation().filterSensitiveInformation(); } // Note: we always need to report the result over LTI, otherwise it might never become visible in the external system - ltiNewResultService.onNewResult((StudentParticipation) newManualResult.getParticipation()); + if (ltiNewResultService.isPresent()) { + ltiNewResultService.get().onNewResult((StudentParticipation) newManualResult.getParticipation()); + } if (submit && ExerciseDateService.isAfterAssessmentDueDate(programmingExercise)) { resultWebsocketService.broadcastNewResult(newManualResult.getParticipation(), newManualResult); } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/UserResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/UserResource.java index ae58d67b2022..72c1be292734 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/UserResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/UserResource.java @@ -2,6 +2,7 @@ import java.time.ZonedDateTime; import java.util.List; +import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,11 +59,11 @@ public class UserResource { private final UserCreationService userCreationService; - private final LtiService ltiService; + private final Optional ltiService; private final UserRepository userRepository; - public UserResource(UserRepository userRepository, UserService userService, UserCreationService userCreationService, LtiService ltiService) { + public UserResource(UserRepository userRepository, UserService userService, UserCreationService userCreationService, Optional ltiService) { this.userRepository = userRepository; this.userService = userService; this.ltiService = ltiService; @@ -152,7 +153,7 @@ public ResponseEntity initializeUser() { if (user.getActivated()) { return ResponseEntity.ok().body(new UserInitializationDTO()); } - if (!ltiService.isLtiCreatedUser(user) || !user.isInternal()) { + if ((ltiService.isPresent() && !ltiService.get().isLtiCreatedUser(user)) || !user.isInternal()) { user.setActivated(true); userRepository.save(user); return ResponseEntity.ok().body(new UserInitializationDTO()); diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/open/PublicLtiResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/open/PublicLtiResource.java index aa546ee0de94..0cd72162c321 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/open/PublicLtiResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/open/PublicLtiResource.java @@ -9,6 +9,7 @@ import org.glassfish.jersey.uri.UriComponent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Profile; import org.springframework.http.HttpStatus; import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.web.bind.annotation.ModelAttribute; @@ -36,6 +37,7 @@ */ @RestController @RequestMapping("api/public/") +@Profile("lti") public class PublicLtiResource { private final Logger log = LoggerFactory.getLogger(PublicLtiResource.class); diff --git a/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts b/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts index c2220bf609c4..2ff807085f83 100644 --- a/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts +++ b/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts @@ -2,7 +2,6 @@ import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angula import { ActivatedRoute } from '@angular/router'; import { PasswordResetFinishService } from './password-reset-finish.service'; -import { ProfileService } from 'app/shared/layouts/profiles/profile.service'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { PASSWORD_MAX_LENGTH, PASSWORD_MIN_LENGTH } from 'app/app.constants'; @@ -28,7 +27,6 @@ export class PasswordResetFinishComponent implements OnInit, AfterViewInit { constructor( private passwordResetFinishService: PasswordResetFinishService, private route: ActivatedRoute, - private profileService: ProfileService, private fb: FormBuilder, ) {} diff --git a/src/main/webapp/app/course/manage/course-management.component.ts b/src/main/webapp/app/course/manage/course-management.component.ts index 37b6dfe29abc..d09576e30598 100644 --- a/src/main/webapp/app/course/manage/course-management.component.ts +++ b/src/main/webapp/app/course/manage/course-management.component.ts @@ -7,8 +7,6 @@ import { onError } from 'app/shared/util/global.utils'; import { GuidedTourService } from 'app/guided-tour/guided-tour.service'; import { tutorAssessmentTour } from 'app/guided-tour/tours/tutor-assessment-tour'; import { AlertService } from 'app/core/util/alert.service'; -import { ExamManagementService } from 'app/exam/manage/exam-management.service'; -import { LectureService } from 'app/lecture/lecture.service'; import { CourseManagementOverviewStatisticsDto } from 'app/course/manage/overview/course-management-overview-statistics-dto.model'; import { EventManager } from 'app/core/util/event-manager.service'; import { faAngleDown, faAngleUp, faPlus } from '@fortawesome/free-solid-svg-icons'; @@ -44,14 +42,36 @@ export class CourseManagementComponent implements OnInit, OnDestroy, AfterViewIn faAngleUp = faAngleUp; constructor( - private examService: ExamManagementService, - private lectureService: LectureService, private courseManagementService: CourseManagementService, private alertService: AlertService, private eventManager: EventManager, private guidedTourService: GuidedTourService, ) {} + /** + * loads all courses and subscribes to courseListModification + */ + ngOnInit() { + this.loadAll(); + this.registerChangeInCourses(); + } + + /** + * notifies the guided-tour service that the current component has + * been fully loaded + */ + ngAfterViewInit(): void { + this.guidedTourService.componentPageLoaded(); + } + + /** + * unsubscribe on component destruction + */ + ngOnDestroy() { + this.eventManager.destroy(this.eventSubscriber); + this.dialogErrorSource.unsubscribe(); + } + /** * loads all courses from courseService */ @@ -188,30 +208,6 @@ export class CourseManagementComponent implements OnInit, OnDestroy, AfterViewIn }); } - /** - * loads all courses and subscribes to courseListModification - */ - ngOnInit() { - this.loadAll(); - this.registerChangeInCourses(); - } - - /** - * notifies the guided-tour service that the current component has - * been fully loaded - */ - ngAfterViewInit(): void { - this.guidedTourService.componentPageLoaded(); - } - - /** - * unsubscribe on component destruction - */ - ngOnDestroy() { - this.eventManager.destroy(this.eventSubscriber); - this.dialogErrorSource.unsubscribe(); - } - /** * subscribes to courseListModification event */ diff --git a/src/main/webapp/app/course/manage/course-update.component.html b/src/main/webapp/app/course/manage/course-update.component.html index b943661e4fa1..040fc4f8768b 100644 --- a/src/main/webapp/app/course/manage/course-update.component.html +++ b/src/main/webapp/app/course/manage/course-update.component.html @@ -363,7 +363,7 @@
-
+
Course Details:{{ 'global.generic.yes' | artemisTranslate }} {{ 'global.generic.no' | artemisTranslate }} -
Online Course
-
- {{ 'global.generic.yes' | artemisTranslate }} - {{ 'global.generic.no' | artemisTranslate }} -
- + +
Online Course
+
+ {{ 'global.generic.yes' | artemisTranslate }} + {{ 'global.generic.no' | artemisTranslate }} +
+
+
LTI Configuration
diff --git a/src/main/webapp/app/course/manage/detail/course-detail.component.ts b/src/main/webapp/app/course/manage/detail/course-detail.component.ts index 56c3114f5763..a7f81434d675 100644 --- a/src/main/webapp/app/course/manage/detail/course-detail.component.ts +++ b/src/main/webapp/app/course/manage/detail/course-detail.component.ts @@ -1,6 +1,8 @@ import { Component, OnDestroy, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { HttpErrorResponse, HttpResponse } from '@angular/common/http'; +import { PROFILE_LOCALVC } from 'app/app.constants'; +import { ProfileService } from 'app/shared/layouts/profiles/profile.service'; import { Subscription } from 'rxjs'; import { Course } from 'app/entities/course.model'; import { CourseManagementService } from '../course-management.service'; @@ -34,6 +36,8 @@ export class CourseDetailComponent implements OnInit, OnDestroy { activeStudents?: number[]; course: Course; + ltiEnabled = false; + private eventSubscriber: Subscription; paramSub: Subscription; @@ -52,12 +56,16 @@ export class CourseDetailComponent implements OnInit, OnDestroy { private courseManagementService: CourseManagementService, private route: ActivatedRoute, private alertService: AlertService, + private profileService: ProfileService, ) {} /** * On init load the course information and subscribe to listen for changes in courses. */ ngOnInit() { + this.profileService.getProfileInfo().subscribe((profileInfo) => { + this.ltiEnabled = profileInfo.activeProfiles.includes(PROFILE_LOCALVC); + }); this.route.data.subscribe(({ course }) => { if (course) { this.course = course; diff --git a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationBambooBitbucketJiraTest.java b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationBambooBitbucketJiraTest.java index b5d0a0e03fcf..f41ce4242b01 100644 --- a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationBambooBitbucketJiraTest.java +++ b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationBambooBitbucketJiraTest.java @@ -64,7 +64,7 @@ @ResourceLock("AbstractSpringIntegrationBambooBitbucketJiraTest") @AutoConfigureEmbeddedDatabase // NOTE: we use a common set of active profiles to reduce the number of application launches during testing. This significantly saves time and memory! -@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "bamboo", "bitbucket", "jira", "ldap", "scheduling", "athena", "apollon", "iris" }) +@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "bamboo", "bitbucket", "jira", "ldap", "scheduling", "athena", "apollon", "iris", "lti" }) public abstract class AbstractSpringIntegrationBambooBitbucketJiraTest extends AbstractArtemisIntegrationTest { @SpyBean diff --git a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationGitlabCIGitlabSamlTest.java b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationGitlabCIGitlabSamlTest.java index 9203c5e0ac25..8a4fcb55bc15 100644 --- a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationGitlabCIGitlabSamlTest.java +++ b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationGitlabCIGitlabSamlTest.java @@ -49,7 +49,7 @@ @ResourceLock("AbstractSpringIntegrationGitlabCIGitlabSamlTest") @AutoConfigureEmbeddedDatabase // NOTE: we use a common set of active profiles to reduce the number of application launches during testing. This significantly saves time and memory! -@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "gitlabci", "gitlab", "saml2", "scheduling" }) +@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "gitlabci", "gitlab", "saml2", "scheduling", "lti" }) @TestPropertySource(properties = { "artemis.user-management.use-external=false" }) public abstract class AbstractSpringIntegrationGitlabCIGitlabSamlTest extends AbstractArtemisIntegrationTest { diff --git a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationIndependentTest.java b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationIndependentTest.java index f1e0b8343697..a24c014dafcb 100644 --- a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationIndependentTest.java +++ b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationIndependentTest.java @@ -35,7 +35,7 @@ @ResourceLock("AbstractSpringIntegrationIndependentTest") @AutoConfigureEmbeddedDatabase // NOTE: we use a common set of active profiles to reduce the number of application launches during testing. This significantly saves time and memory! -@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "scheduling" }) +@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "scheduling", "lti" }) @TestPropertySource(properties = { "artemis.user-management.use-external=false" }) public abstract class AbstractSpringIntegrationIndependentTest extends AbstractArtemisIntegrationTest { diff --git a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationJenkinsGitlabTest.java b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationJenkinsGitlabTest.java index e1b6e7a24cf5..7bf2730901a2 100644 --- a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationJenkinsGitlabTest.java +++ b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationJenkinsGitlabTest.java @@ -47,7 +47,7 @@ @ResourceLock("AbstractSpringIntegrationJenkinsGitlabTest") @AutoConfigureEmbeddedDatabase // NOTE: we use a common set of active profiles to reduce the number of application launches during testing. This significantly saves time and memory! -@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "gitlab", "jenkins", "athena", "scheduling" }) +@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "gitlab", "jenkins", "athena", "scheduling", "lti" }) @TestPropertySource(properties = { "info.guided-tour.course-group-tutors=artemis-artemistutorial-tutors", "info.guided-tour.course-group-students=artemis-artemistutorial-students", "info.guided-tour.course-group-editors=artemis-artemistutorial-editors", "info.guided-tour.course-group-instructors=artemis-artemistutorial-instructors", "artemis.user-management.use-external=false", "artemis.user-management.course-enrollment.allowed-username-pattern=^(?!authorizationservicestudent2).*$" }) diff --git a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationLocalCILocalVCTest.java b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationLocalCILocalVCTest.java index b46c528daa67..cc81cb138b88 100644 --- a/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationLocalCILocalVCTest.java +++ b/src/test/java/de/tum/in/www1/artemis/AbstractSpringIntegrationLocalCILocalVCTest.java @@ -62,7 +62,7 @@ @ResourceLock("AbstractSpringIntegrationLocalCILocalVCTest") @AutoConfigureEmbeddedDatabase // NOTE: we use a common set of active profiles to reduce the number of application launches during testing. This significantly saves time and memory! -@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "localci", "localvc", "scheduling", "ldap-only" }) +@ActiveProfiles({ SPRING_PROFILE_TEST, "artemis", "localci", "localvc", "scheduling", "ldap-only", "lti" }) // Note: the server.port property must correspond to the port used in the artemis.version-control.url property. @TestPropertySource(properties = { "server.port=49152", "artemis.version-control.url=http://localhost:49152", "artemis.version-control.local-vcs-repo-path=${java.io.tmpdir}", "artemis.continuous-integration.thread-pool-size=1", "artemis.continuous-integration.asynchronous=false", diff --git a/src/test/java/de/tum/in/www1/artemis/LtiIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/LtiIntegrationTest.java index 83f74b5025da..d15b84a2b3c3 100644 --- a/src/test/java/de/tum/in/www1/artemis/LtiIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/LtiIntegrationTest.java @@ -230,12 +230,8 @@ void launchAsAnonymousUser_WithExistingEmail(String requestBody) throws Exceptio addJiraMocks(email, TEST_PREFIX + "student1"); Long exerciseId = programmingExercise.getId(); - Long courseId = programmingExercise.getCourseViaExerciseGroupOrCourseMember().getId(); - URI header = request.post("/api/public/lti/launch/" + exerciseId, requestBody, HttpStatus.FOUND, MediaType.APPLICATION_FORM_URLENCODED, false); - - var uriComponents = UriComponentsBuilder.fromUri(header).build(); - assertParametersExistingStudent(UriComponentsBuilder.fromUri(header).build().getQueryParams()); - assertThat(uriComponents.getPathSegments()).containsSequence("courses", courseId.toString(), "exercises", exerciseId.toString()); + request.postWithoutLocation("/api/public/lti/launch/" + exerciseId, requestBody.getBytes(), HttpStatus.BAD_REQUEST, new HttpHeaders(), + MediaType.APPLICATION_FORM_URLENCODED_VALUE); } @ParameterizedTest diff --git a/src/test/java/de/tum/in/www1/artemis/authentication/InternalAuthenticationIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/authentication/InternalAuthenticationIntegrationTest.java index cb5ca02e6cbc..415bdd0a9041 100644 --- a/src/test/java/de/tum/in/www1/artemis/authentication/InternalAuthenticationIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/authentication/InternalAuthenticationIntegrationTest.java @@ -22,7 +22,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.test.context.support.WithAnonymousUser; import org.springframework.security.test.context.support.WithMockUser; @@ -151,34 +150,6 @@ void teardown() { } } - @Test - void launchLtiRequest_authViaEmail_success() throws Exception { - request.postForm("/api/public/lti/launch/" + programmingExercise.getId(), ltiLaunchRequest, HttpStatus.FOUND); - - final var user = userUtilService.getUserByLogin(USERNAME); - final var ltiOutcome = ltiOutcomeUrlRepository.findByUserAndExercise(user, programmingExercise).orElseThrow(); - - assertThat(ltiOutcome.getUser()).isEqualTo(user); - assertThat(ltiOutcome.getExercise()).isEqualTo(programmingExercise); - assertThat(ltiOutcome.getUrl()).isEqualTo(ltiLaunchRequest.getLis_outcome_service_url()); - assertThat(ltiOutcome.getSourcedId()).isEqualTo(ltiLaunchRequest.getLis_result_sourcedid()); - - final var updatedStudent = userRepository.findOneWithGroupsAndAuthoritiesByLogin(USERNAME).orElseThrow(); - assertThat(student).isEqualTo(updatedStudent); - } - - @Test - @WithAnonymousUser - void authenticateAfterLtiRequest_success() throws Exception { - launchLtiRequest_authViaEmail_success(); - - final var auth = new TestingAuthenticationToken(student.getLogin(), USER_PASSWORD); - final var authResponse = artemisInternalAuthenticationProvider.authenticate(auth); - - assertThat(authResponse.getCredentials()).hasToString(student.getPassword()); - assertThat(authResponse.getPrincipal()).isEqualTo(student.getLogin()); - } - @Test @WithMockUser(username = "ab12cde") void registerForCourse_internalAuth_success() throws Exception { diff --git a/src/test/java/de/tum/in/www1/artemis/authentication/JiraAuthenticationIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/authentication/JiraAuthenticationIntegrationTest.java index 63aba99f091c..6de559dfb495 100644 --- a/src/test/java/de/tum/in/www1/artemis/authentication/JiraAuthenticationIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/authentication/JiraAuthenticationIntegrationTest.java @@ -22,7 +22,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.test.context.support.WithAnonymousUser; import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest; @@ -135,27 +134,7 @@ void launchLtiRequest_authViaEmail_success(String launchEmail) throws Exception jiraRequestMockProvider.mockAddUserToGroupForMultipleGroups(Set.of(course.getStudentGroupName())); jiraRequestMockProvider.mockGetOrCreateUserLti(username, "", username, email, firstName, groups); - request.postForm("/api/public/lti/launch/" + programmingExercise.getId(), ltiLaunchRequest, HttpStatus.FOUND); - final var user = userRepository.findOneByLogin(username).orElseThrow(); - final var ltiOutcome = ltiOutcomeUrlRepository.findByUserAndExercise(user, programmingExercise).orElseThrow(); - - assertThat(ltiOutcome.getUser()).isEqualTo(user); - assertThat(ltiOutcome.getExercise()).isEqualTo(programmingExercise); - assertThat(ltiOutcome.getUrl()).isEqualTo(ltiLaunchRequest.getLis_outcome_service_url()); - assertThat(ltiOutcome.getSourcedId()).isEqualTo(ltiLaunchRequest.getLis_result_sourcedid()); - - final var mrrobotUser = userRepository.findOneWithGroupsAndAuthoritiesByLogin(username).orElseThrow(); - assertThat(mrrobotUser.getEmail()).isEqualTo(email); - assertThat(mrrobotUser.getFirstName()).isEqualTo(firstName); - assertThat(mrrobotUser.getGroups()).containsAll(groups); - assertThat(mrrobotUser.getGroups()).contains(course.getStudentGroupName()); - assertThat(mrrobotUser.getAuthorities()).containsAll(authorityRepository.findAll()); - - final var auth = new TestingAuthenticationToken(username, ""); - final var responseAuth = jiraAuthenticationProvider.authenticate(auth); - - assertThat(responseAuth.getPrincipal()).isEqualTo(username); - assertThat(responseAuth.getCredentials()).isEqualTo(mrrobotUser.getPassword()); + request.postFormWithoutLocation("/api/public/lti/launch/" + programmingExercise.getId(), ltiLaunchRequest, HttpStatus.BAD_REQUEST); } @Test diff --git a/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java b/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java index dd5d80795a2d..9fb564a7cee6 100644 --- a/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java +++ b/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java @@ -204,11 +204,9 @@ void authenticateLtiUser_newUser() { when(artemisAuthenticationProvider.getUsernameForEmail("email")).thenReturn(Optional.of("username")); when(artemisAuthenticationProvider.getOrCreateUser(any(), any(), any(), any(), anyBoolean())).thenReturn(user); - ltiService.authenticateLtiUser("email", "username", "firstname", "lastname", onlineCourseConfiguration.isRequireExistingUser()); - - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - assertThat(auth.getPrincipal()).isEqualTo(user.getLogin()); - assertThat(user.getGroups()).contains(LtiService.LTI_GROUP_NAME); + assertThatExceptionOfType(InternalAuthenticationServiceException.class) + .isThrownBy(() -> ltiService.authenticateLtiUser("email", "username", "firstname", "lastname", onlineCourseConfiguration.isRequireExistingUser())) + .withMessageContaining("already in use"); } @Test diff --git a/src/test/javascript/spec/component/course/course-update.component.spec.ts b/src/test/javascript/spec/component/course/course-update.component.spec.ts index cee5192b8d4b..885ceaaa8b05 100644 --- a/src/test/javascript/spec/component/course/course-update.component.spec.ts +++ b/src/test/javascript/spec/component/course/course-update.component.spec.ts @@ -1,5 +1,5 @@ import { HttpResponse } from '@angular/common/http'; -import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing'; +import { ComponentFixture, TestBed, fakeAsync, flush, tick } from '@angular/core/testing'; import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; import { NgbTooltipModule, NgbTypeahead } from '@ng-bootstrap/ng-bootstrap'; @@ -142,7 +142,7 @@ describe('Course Management Update Component', () => { describe('ngOnInit', () => { it('should get course, profile and fill the form', fakeAsync(() => { - const profileInfo = { inProduction: false } as ProfileInfo; + const profileInfo = { inProduction: false, activeProfiles: ['lti'] } as ProfileInfo; const profileInfoSubject = new BehaviorSubject(profileInfo).asObservable(); const getProfileStub = jest.spyOn(profileService, 'getProfileInfo').mockReturnValue(profileInfoSubject); const organization = new Organization(); @@ -188,6 +188,7 @@ describe('Course Management Update Component', () => { expect(comp.courseForm.get(['color'])?.value).toBe(course.color); expect(comp.courseForm.get(['courseIcon'])?.value).toBe(course.courseIcon); expect(comp.courseForm.get(['learningPathsEnabled'])?.value).toBe(course.learningPathsEnabled); + flush(); })); }); From 65399c3b30db2141af404b2d59514d5d7cd37e21 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Sat, 30 Sep 2023 09:08:42 +0200 Subject: [PATCH 04/39] Development: Remove online course from e2e tests --- src/test/cypress/e2e/course/CourseManagement.cy.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/cypress/e2e/course/CourseManagement.cy.ts b/src/test/cypress/e2e/course/CourseManagement.cy.ts index e1ec4060a55b..7ab1665dbf9a 100644 --- a/src/test/cypress/e2e/course/CourseManagement.cy.ts +++ b/src/test/cypress/e2e/course/CourseManagement.cy.ts @@ -29,7 +29,6 @@ const courseData = { maxComplaintTimeDays: 6, enableMoreFeedback: true, maxRequestMoreFeedbackTimeDays: 4, - onlineCourse: true, presentationScoreEnabled: true, presentationScore: 10, }; @@ -109,7 +108,6 @@ describe('Course management', () => { courseCreation.setMaxComplaintsTimeDays(courseData.maxComplaintTimeDays); courseCreation.setEnableMoreFeedback(courseData.enableMoreFeedback); courseCreation.setMaxRequestMoreFeedbackTimeDays(courseData.maxRequestMoreFeedbackTimeDays); - courseCreation.setOnlineCourse(courseData.onlineCourse); courseCreation.setCustomizeGroupNames(courseData.customizeGroupNames); courseCreation.submit().then((request: Interception) => { const courseBody = request.response!.body; @@ -128,7 +126,6 @@ describe('Course management', () => { expect(courseBody.maxTeamComplaints).to.eq(courseData.maxTeamComplaints); expect(courseBody.maxComplaintTimeDays).to.eq(courseData.maxComplaintTimeDays); expect(courseBody.requestMoreFeedbackEnabled).to.eq(courseData.enableMoreFeedback); - expect(courseBody.onlineCourse).to.eq(courseData.onlineCourse); expect(courseBody.studentGroupName).to.eq(`artemis-${courseData.shortName}-students`); expect(courseBody.editorGroupName).to.eq(`artemis-${courseData.shortName}-editors`); expect(courseBody.instructorGroupName).to.eq(`artemis-${courseData.shortName}-instructors`); @@ -147,7 +144,6 @@ describe('Course management', () => { courseManagement.getCourseSemester().contains(courseData.semester); courseManagement.getCourseProgrammingLanguage().contains(courseData.programmingLanguage); courseManagement.getCourseTestCourse().contains(convertBooleanToYesNo(courseData.testCourse)); - courseManagement.getCourseOnlineCourse().contains(convertBooleanToYesNo(courseData.onlineCourse)); courseManagement.getCourseMaxComplaints().contains(courseData.maxComplaints); courseManagement.getCourseMaxTeamComplaints().contains(courseData.maxTeamComplaints); courseManagement.getMaxComplaintTimeDays().contains(courseData.maxComplaintTimeDays); From 7fa6f3284ee761c30ccf106127e47135ecb921d3 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Sat, 30 Sep 2023 09:10:40 +0200 Subject: [PATCH 05/39] Development: Remove old and unused tests --- package.json | 1 - src/test/gatling/conf/gatling.conf | 132 ------ src/test/gatling/conf/logback.xml | 24 - .../simulations/GetCoursesSimulation.scala | 83 ---- .../LtiOutcomeUrlGatlingTest.scala | 90 ---- .../QuizParticipationSimulation.scala | 212 --------- .../resources/modeling_submission_1.txt | 1 - .../AnswerCounterGatlingTest.scala | 96 ---- .../simulations/AnswerOptionGatlingTest.scala | 101 ---- .../ApollonDiagramGatlingTest.scala | 98 ---- .../simulations/ConflictSimulation.scala | 128 ----- .../simulations/CourseGatlingTest.scala | 103 ---- .../DragAndDropMappingGatlingTest.scala | 99 ---- .../DragAndDropQuestionGatlingTest.scala | 97 ---- ...gAndDropQuestionStatisticGatlingTest.scala | 96 ---- ...ragAndDropSubmittedAnswerGatlingTest.scala | 96 ---- .../simulations/DragItemGatlingTest.scala | 99 ---- .../DropLocationCounterGatlingTest.scala | 96 ---- .../simulations/DropLocationGatlingTest.scala | 101 ---- .../simulations/ExerciseGatlingTest.scala | 104 ----- .../simulations/ExerciseHintGatlingTest.scala | 98 ---- .../ExerciseResultGatlingTest.scala | 102 ---- .../simulations/FeedbackGatlingTest.scala | 100 ---- .../FileUploadExerciseGatlingTest.scala | 97 ---- .../FileUploadSubmissionGatlingTest.scala | 97 ---- .../LtiOutcomeUrlGatlingTest.scala | 98 ---- .../ModelingExerciseGatlingTest.scala | 99 ---- .../ModelingSubmissionGatlingTest.scala | 98 ---- .../MultipleChoiceQuestionGatlingTest.scala | 96 ---- ...leChoiceQuestionStatisticGatlingTest.scala | 96 ---- ...ipleChoiceSubmittedAnswerGatlingTest.scala | 96 ---- .../ParticipationGatlingTest.scala | 101 ---- .../simulations/PointCounterGatlingTest.scala | 97 ---- .../ProgrammingExerciseGatlingTest.scala | 101 ---- ...ogrammingExerciseTestCaseGatlingTest.scala | 99 ---- .../ProgrammingSubmissionGatlingTest.scala | 97 ---- .../simulations/QuestionGatlingTest.scala | 104 ----- .../QuestionStatisticGatlingTest.scala | 98 ---- .../simulations/QuizExerciseGatlingTest.scala | 104 ----- .../QuizPointStatisticGatlingTest.scala | 96 ---- .../QuizSubmissionGatlingTest.scala | 97 ---- .../ShortAnswerMappingGatlingTest.scala | 99 ---- .../ShortAnswerQuestionGatlingTest.scala | 96 ---- ...rtAnswerQuestionStatisticGatlingTest.scala | 96 ---- .../ShortAnswerSolutionGatlingTest.scala | 98 ---- .../ShortAnswerSpotCounterGatlingTest.scala | 96 ---- .../ShortAnswerSpotGatlingTest.scala | 98 ---- ...hortAnswerSubmittedAnswerGatlingTest.scala | 96 ---- .../ShortAnswerSubmittedTextGatlingTest.scala | 97 ---- .../StatisticCounterGatlingTest.scala | 98 ---- .../simulations/StatisticGatlingTest.scala | 99 ---- .../simulations/SubmissionGatlingTest.scala | 99 ---- .../SubmittedAnswerGatlingTest.scala | 97 ---- .../simulations/TextExerciseGatlingTest.scala | 97 ---- .../TextSubmissionGatlingTest.scala | 97 ---- src/test/k6/CodeEditor.js | 79 ---- src/test/k6/ExamAPIs.js | 263 ----------- src/test/k6/ModelingExerciseAPIs.js | 164 ------- src/test/k6/ProgrammingExerciseAPIs.js | 164 ------- src/test/k6/QuizExerciseAPIs.js | 110 ----- src/test/k6/TextExerciseAPIs.js | 154 ------ src/test/k6/api_tests.sh | 135 ------ src/test/k6/requests/course.js | 96 ---- src/test/k6/requests/endpoints.js | 46 -- src/test/k6/requests/exam.js | 122 ----- src/test/k6/requests/exercises.js | 61 --- src/test/k6/requests/modeling.js | 101 ---- src/test/k6/requests/programmingExercise.js | 236 ---------- src/test/k6/requests/quiz.js | 267 ----------- src/test/k6/requests/requests.js | 168 ------- src/test/k6/requests/text.js | 126 ----- src/test/k6/requests/user.js | 106 ----- src/test/k6/resource/constants_c.js | 63 --- src/test/k6/resource/constants_java.js | 441 ------------------ src/test/k6/resource/constants_python.js | 296 ------------ src/test/k6/util/utils.js | 41 -- 76 files changed, 8530 deletions(-) delete mode 100644 src/test/gatling/conf/gatling.conf delete mode 100644 src/test/gatling/conf/logback.xml delete mode 100644 src/test/gatling/simulations/GetCoursesSimulation.scala delete mode 100644 src/test/gatling/simulations/LtiOutcomeUrlGatlingTest.scala delete mode 100644 src/test/gatling/simulations/QuizParticipationSimulation.scala delete mode 100644 src/test/gatling/user-files/resources/modeling_submission_1.txt delete mode 100644 src/test/gatling/user-files/simulations/AnswerCounterGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/AnswerOptionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ApollonDiagramGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ConflictSimulation.scala delete mode 100644 src/test/gatling/user-files/simulations/CourseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DragAndDropMappingGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DragAndDropQuestionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DragAndDropQuestionStatisticGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DragAndDropSubmittedAnswerGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DragItemGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DropLocationCounterGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/DropLocationGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ExerciseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ExerciseHintGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ExerciseResultGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/FeedbackGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/FileUploadExerciseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/FileUploadSubmissionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/LtiOutcomeUrlGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ModelingExerciseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ModelingSubmissionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/MultipleChoiceQuestionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/MultipleChoiceQuestionStatisticGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/MultipleChoiceSubmittedAnswerGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ParticipationGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/PointCounterGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ProgrammingExerciseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ProgrammingExerciseTestCaseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ProgrammingSubmissionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/QuestionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/QuestionStatisticGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/QuizExerciseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/QuizPointStatisticGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/QuizSubmissionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerMappingGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerQuestionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerQuestionStatisticGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerSolutionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerSpotCounterGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerSpotGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerSubmittedAnswerGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/ShortAnswerSubmittedTextGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/StatisticCounterGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/StatisticGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/SubmissionGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/SubmittedAnswerGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/TextExerciseGatlingTest.scala delete mode 100644 src/test/gatling/user-files/simulations/TextSubmissionGatlingTest.scala delete mode 100644 src/test/k6/CodeEditor.js delete mode 100644 src/test/k6/ExamAPIs.js delete mode 100644 src/test/k6/ModelingExerciseAPIs.js delete mode 100644 src/test/k6/ProgrammingExerciseAPIs.js delete mode 100644 src/test/k6/QuizExerciseAPIs.js delete mode 100644 src/test/k6/TextExerciseAPIs.js delete mode 100755 src/test/k6/api_tests.sh delete mode 100644 src/test/k6/requests/course.js delete mode 100644 src/test/k6/requests/endpoints.js delete mode 100644 src/test/k6/requests/exam.js delete mode 100644 src/test/k6/requests/exercises.js delete mode 100644 src/test/k6/requests/modeling.js delete mode 100644 src/test/k6/requests/programmingExercise.js delete mode 100644 src/test/k6/requests/quiz.js delete mode 100644 src/test/k6/requests/requests.js delete mode 100644 src/test/k6/requests/text.js delete mode 100644 src/test/k6/requests/user.js delete mode 100644 src/test/k6/resource/constants_c.js delete mode 100644 src/test/k6/resource/constants_java.js delete mode 100644 src/test/k6/resource/constants_python.js delete mode 100644 src/test/k6/util/utils.js diff --git a/package.json b/package.json index 00573d87d6c0..486e88a2608a 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,6 @@ "test-diff:ci": "git fetch origin develop && npm run prebuild && ng test --log-heap-usage -w=4 --ci --reporters=default --reporters=jest-junit --pass-with-no-tests --changed-since=origin/develop", "test:leaks": "npm run prebuild && ng test --log-heap-usage --detect-leaks", "test:open-handles": "npm run prebuild && ng test --detect-open-handles", - "test:server-api-tests": "`pwd`/src/test/k6/api_tests.sh", "test:watch": "npm run prebuild && npm run test -- --watch", "webapp:build": "npm run clean-www && npm run webapp:build:dev", "webapp:build:dev": "npm run prebuild -- --develop && ng build --configuration development", diff --git a/src/test/gatling/conf/gatling.conf b/src/test/gatling/conf/gatling.conf deleted file mode 100644 index 6916e8b7ee02..000000000000 --- a/src/test/gatling/conf/gatling.conf +++ /dev/null @@ -1,132 +0,0 @@ -######################### -# Gatling Configuration # -######################### - -# This file contains all the settings configurable for Gatling with their default values - -gatling { - core { - #outputDirectoryBaseName = "" # The prefix for each simulation result folder (then suffixed by the report generation timestamp) - #runDescription = "" # The description for this simulation run, displayed in each report - #encoding = "utf-8" # Encoding to use throughout Gatling for file and string manipulation - #simulationClass = "" # The FQCN of the simulation to run (when used in conjunction with noReports, the simulation for which assertions will be validated) - #mute = false # When set to true, don't ask for simulation name nor run description (currently only used by Gatling SBT plugin) - #elFileBodiesCacheMaxCapacity = 200 # Cache size for request body EL templates, set to 0 to disable - #rawFileBodiesCacheMaxCapacity = 200 # Cache size for request body Raw templates, set to 0 to disable - #rawFileBodiesInMemoryMaxSize = 1000 # Below this limit, raw file bodies will be cached in memory - - extract { - regex { - #cacheMaxCapacity = 200 # Cache size for the compiled regexes, set to 0 to disable caching - } - xpath { - #cacheMaxCapacity = 200 # Cache size for the compiled XPath queries, set to 0 to disable caching - } - jsonPath { - #cacheMaxCapacity = 200 # Cache size for the compiled jsonPath queries, set to 0 to disable caching - #preferJackson = false # When set to true, prefer Jackson over Boon for JSON-related operations - } - css { - #cacheMaxCapacity = 200 # Cache size for the compiled CSS selectors queries, set to 0 to disable caching - } - } - - directory { - #data = user-files/data # Folder where user's data (e.g. files used by Feeders) is located - #bodies = user-files/bodies # Folder where bodies are located - #simulations = user-files/simulations # Folder where the bundle's simulations are located - #reportsOnly = "" # If set, name of report folder to look for in order to generate its report - #binaries = "" # If set, name of the folder where compiles classes are located: Defaults to GATLING_HOME/target. - #results = results # Name of the folder where all reports folder are located - } - } - charting { - #noReports = false # When set to true, don't generate HTML reports - #maxPlotPerSeries = 1000 # Number of points per graph in Gatling reports - #useGroupDurationMetric = false # Switch group timings from cumulated response time to group duration. - indicators { - #lowerBound = 800 # Lower bound for the requests' response time to track in the reports and the console summary - #higherBound = 1200 # Higher bound for the requests' response time to track in the reports and the console summary - #percentile1 = 50 # Value for the 1st percentile to track in the reports, the console summary and Graphite - #percentile2 = 75 # Value for the 2nd percentile to track in the reports, the console summary and Graphite - #percentile3 = 95 # Value for the 3rd percentile to track in the reports, the console summary and Graphite - #percentile4 = 99 # Value for the 4th percentile to track in the reports, the console summary and Graphite - } - } - http { - #fetchedCssCacheMaxCapacity = 200 # Cache size for CSS parsed content, set to 0 to disable - #fetchedHtmlCacheMaxCapacity = 200 # Cache size for HTML parsed content, set to 0 to disable - #perUserCacheMaxCapacity = 200 # Per virtual user cache size, set to 0 to disable - #warmUpUrl = "http://gatling.io" # The URL to use to warm-up the HTTP stack (blank means disabled) - #enableGA = true # Very light Google Analytics, please support - ssl { - keyStore { - #type = "" # Type of SSLContext's KeyManagers store - #file = "" # Location of SSLContext's KeyManagers store - #password = "" # Password for SSLContext's KeyManagers store - #algorithm = "" # Algorithm used SSLContext's KeyManagers store - } - trustStore { - #type = "" # Type of SSLContext's TrustManagers store - #file = "" # Location of SSLContext's TrustManagers store - #password = "" # Password for SSLContext's TrustManagers store - #algorithm = "" # Algorithm used by SSLContext's TrustManagers store - } - } - ahc { - #keepAlive = true # Allow pooling HTTP connections (keep-alive header automatically added) - #connectTimeout = 10000 # Timeout when establishing a connection - #handshakeTimeout = 10000 # Timeout when performing TLS hashshake - #pooledConnectionIdleTimeout = 60000 # Timeout when a connection stays unused in the pool - #readTimeout = 60000 # Timeout when a used connection stays idle - #maxRetry = 2 # Number of times that a request should be tried again - #requestTimeout = 60000 # Timeout of the requests - #acceptAnyCertificate = true # When set to true, doesn't validate SSL certificates - #httpClientCodecMaxInitialLineLength = 4096 # Maximum length of the initial line of the response (e.g. "HTTP/1.0 200 OK") - #httpClientCodecMaxHeaderSize = 8192 # Maximum size, in bytes, of each request's headers - #httpClientCodecMaxChunkSize = 8192 # Maximum length of the content or each chunk - #webSocketMaxFrameSize = 10240000 # Maximum frame payload size - #sslEnabledProtocols = [TLSv1.2, TLSv1.1, TLSv1] # Array of enabled protocols for HTTPS, if empty use the JDK defaults - #sslEnabledCipherSuites = [] # Array of enabled cipher suites for HTTPS, if empty use the AHC defaults - #sslSessionCacheSize = 0 # SSLSession cache size, set to 0 to use JDK's default - #sslSessionTimeout = 0 # SSLSession timeout in seconds, set to 0 to use JDK's default (24h) - #useOpenSsl = false # if OpenSSL should be used instead of JSSE (requires tcnative jar) - #useNativeTransport = false # if native transport should be used instead of Java NIO (requires netty-transport-native-epoll, currently Linux only) - #tcpNoDelay = true - #soReuseAddress = false - #soLinger = -1 - #soSndBuf = -1 - #soRcvBuf = -1 - #allocator = "pooled" # switch to unpooled for unpooled ByteBufAllocator - #maxThreadLocalCharBufferSize = 200000 # Netty's default is 16k - } - dns { - #queryTimeout = 5000 # Timeout of each DNS query in millis - #maxQueriesPerResolve = 6 # Maximum allowed number of DNS queries for a given name resolution - } - } - jms { - #acknowledgedMessagesBufferSize = 5000 # size of the buffer used to tracked acknowledged messages and protect against duplicate receives - } - data { - #writers = [console, file] # The list of DataWriters to which Gatling write simulation data (currently supported : console, file, graphite, jdbc) - console { - #light = false # When set to true, displays a light version without detailed request stats - } - file { - #bufferSize = 8192 # FileDataWriter's internal data buffer size, in bytes - } - leak { - #noActivityTimeout = 30 # Period, in seconds, for which Gatling may have no activity before considering a leak may be happening - } - graphite { - #light = false # only send the all* stats - #host = "localhost" # The host where the Carbon server is located - #port = 2003 # The port to which the Carbon server listens to (2003 is default for plaintext, 2004 is default for pickle) - #protocol = "tcp" # The protocol used to send data to Carbon (currently supported : "tcp", "udp") - #rootPathPrefix = "gatling" # The common prefix of all metrics sent to Graphite - #bufferSize = 8192 # GraphiteDataWriter's internal data buffer size, in bytes - #writeInterval = 1 # GraphiteDataWriter's write interval, in seconds - } - } -} diff --git a/src/test/gatling/conf/logback.xml b/src/test/gatling/conf/logback.xml deleted file mode 100644 index 189bcdab8125..000000000000 --- a/src/test/gatling/conf/logback.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - %d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx - false - - - - - - - - - - - - - - - diff --git a/src/test/gatling/simulations/GetCoursesSimulation.scala b/src/test/gatling/simulations/GetCoursesSimulation.scala deleted file mode 100644 index 51dc40ab84bc..000000000000 --- a/src/test/gatling/simulations/GetCoursesSimulation.scala +++ /dev/null @@ -1,83 +0,0 @@ -package simulations - -import _root_.io.gatling.core.scenario.Simulation -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ - -class GetCoursesSimulation extends Simulation { - val username = "" // NOTE: replace with actual username - val password = "" // NOTE: replace with actual password - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "X-XSRF-TOKEN" -> "${xsrf_token}" - ) - - val scn = scenario("Test Getting all Course entities, creating and deleting a course") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - .check(headerRegex("Set-Cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authentication") - .post("/api/authentication") - .headers(headers_http_authenticated) - .formParam("j_username", username) - .formParam("j_password", password) - .formParam("remember-me", "true") - .formParam("submit", "Login") - .check(headerRegex("Set-Cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .pause(1) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(2) - .repeat(2) { - exec(http("Get all courses") - .get("/api/courses") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(2, 5) - .exec(http("Create new course") - .post("/api/courses") - .headers(headers_http_authenticated) - .body(StringBody("""{"id":null, "title":"SAMPLE_TEXT", "studentGroupName":"SAMPLE_TEXT", "teachingAssistantGroupName":"SAMPLE_TEXT"}""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_course_url"))).exitHereIfFailed - .pause(2) - .repeat(5) { - exec(http("Get created course") - .get("${new_course_url}") - .headers(headers_http_authenticated)) - .pause(2) - } - .exec(http("Delete created course") - .delete("${new_course_url}") - .headers(headers_http_authenticated)) - .pause(2) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 500)) during(Integer.getInteger("ramp", 30) seconds)) - ).protocols(httpConf) - -} diff --git a/src/test/gatling/simulations/LtiOutcomeUrlGatlingTest.scala b/src/test/gatling/simulations/LtiOutcomeUrlGatlingTest.scala deleted file mode 100644 index 1174e43238d1..000000000000 --- a/src/test/gatling/simulations/LtiOutcomeUrlGatlingTest.scala +++ /dev/null @@ -1,90 +0,0 @@ -package simulations - -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.LoggerContext -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the LtiOutcomeUrl entity. - */ -class LtiOutcomeUrlGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://127.0.0.1:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - ) - - val scn = scenario("Test the LtiOutcomeUrl entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - .pause(10) - .exec(http("Authentication") - .post("/api/authentication") - .headers(headers_http_authenticated) - .formParam("j_username", "admin") - .formParam("j_password", "admin") - .formParam("remember-me", "true") - .formParam("submit", "Login")).exitHereIfFailed - .pause(1) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200)) - .pause(10) - .repeat(2) { - exec(http("Get all ltiOutcomeUrls") - .get("/api/lti-outcome-urls") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new ltiOutcomeUrl") - .post("/api/lti-outcome-urls") - .headers(headers_http_authenticated) - .body(StringBody("""{"id":null, "url":"SAMPLE_TEXT", "sourcedId":"SAMPLE_TEXT"}""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_ltiOutcomeUrl_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created ltiOutcomeUrl") - .get("${new_ltiOutcomeUrl_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created ltiOutcomeUrl") - .delete("${new_ltiOutcomeUrl_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(100) during(1 minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/simulations/QuizParticipationSimulation.scala b/src/test/gatling/simulations/QuizParticipationSimulation.scala deleted file mode 100644 index fe53a8834d13..000000000000 --- a/src/test/gatling/simulations/QuizParticipationSimulation.scala +++ /dev/null @@ -1,212 +0,0 @@ -package simulations - -import _root_.io.gatling.core.scenario.Simulation -import io.gatling.core.Predef._ -import io.gatling.core.json._ -import io.gatling.core.structure.{ChainBuilder, ScenarioBuilder} -import io.gatling.http.Predef._ -import io.gatling.http.protocol.HttpProtocolBuilder - -import scala.concurrent.duration._ -import scala.language.existentials -import scala.util.parsing.json._ - -class QuizParticipationSimulation extends Simulation { - - // NOTE: update these values to fit the tested exercise - val exerciseId = 187 - val backgroundPicturePath = "/api/files/drag-and-drop/backgrounds/98/DragAndDropBackground_2018-02-16T11-45-42-684_7f0aa8e4.png" - - // NOTE: Adjust these numbers for desired load - val numUsersSubmit = 200 - val numUsersNoSubmit = 200 - - val feeder: Iterator[Map[String, String]] = Iterator.tabulate(500)(i => Map( - "username" -> (""), // NOTE: generate real username for each value of i (removed for security) - "password" -> ("") // NOTE: generate real password for each value of i (removed for security) - )) - - val baseURL = "http://localhost:8080" - val wsBaseURL = "ws://localhost:8080" - - val httpConf: HttpProtocolBuilder = http - .baseUrl(baseURL) - .wsBaseUrl(wsBaseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "X-XSRF-TOKEN" -> "${xsrf_token}" - ) - - /** - * Selects random answers and adds submittedAnswers to the submission - * - * @param questionsString the questions of the exercise as a JSON string - * @return the submission including the submittedAnswers as a JSON string - */ - def selectRandomAnswers(questionsString: String, submit: Boolean): String = { - // parse json strings into objects (Map or List) - val questions = JSON.parseFull(questionsString).get.asInstanceOf[List[Any]] - - // save submitted answers in a List - var submittedAnswers = List[Map[String, Any]]() - - // iterate through all questions to select answers - questions.foreach((questionP) => { -// val question = questionP.get.asInstanceOf[Map[String, Any]] -// val questionType = question("type").get.asInstanceOf[String] - - // create a submitted answer for this question -// var submittedAnswer = Map( -// "question" -> question, -// "type" -> questionType -// ) -// -// if (questionType.equals("multiple-choice")) { -// // save selected options in a List -// var selectedOptions = List[Map[String, Any]]() -// -// // iterate through all answer options of this question -// val answerOptions = question("answerOptions").get.asInstanceOf[List[Any]] -// answerOptions.foreach((answerOptionP) => { -// val answerOption = answerOptionP.get.asInstanceOf[Map[String, Any]] -// -// // select each answer option with a 50/50 chance -// if (math.random < 0.5) { -// selectedOptions = answerOption +: selectedOptions -// } -// }) -// -// // add selected options to submitted answer -// submittedAnswer = submittedAnswer + ("selectedOptions" -> selectedOptions) -// } else if (questionType.equals("drag-and-drop")) { -// // save mappings in a List -// var mappings = List[Map[String, Any]]() -// -// // extract drag items and drop locations -// var dragItems = question("dragItems").get.asInstanceOf[List[Any]] -// var dropLocations = question("dropLocations").get.asInstanceOf[List[Any]] -// -// while (dragItems.nonEmpty && dropLocations.nonEmpty) { -// // create a random mapping -// val dragItemIndex = (math.random * dragItems.size).floor.toInt -// val dropLocationIndex = (math.random * dropLocations.size).floor.toInt -// -// val mapping = Map( -// "dragItem" -> dragItems.get(dragItemIndex).get.asInstanceOf[Map[String, Any]], -// "dropLocation" -> dropLocations.get(dropLocationIndex).get.asInstanceOf[Map[String, Any]] -// ) -// -// // remove selected elements from lists -// dragItems = dragItems.take(dragItemIndex) ++ dragItems.drop(dragItemIndex + 1) -// dropLocations = dropLocations.take(dropLocationIndex) ++ dropLocations.drop(dropLocationIndex + 1) -// -// // add mapping to mappings -// mappings = mapping +: mappings -// } -// -// // add mappings to submitted answer -// submittedAnswer = submittedAnswer + ("mappings" -> mappings) -// } -// -// // add submitted answer to the List -// submittedAnswers = submittedAnswer +: submittedAnswers - }) - - // add submitted answers to submission - var result: Map[String, Any] = Map("submittedAnswers" -> submittedAnswers) - - if (submit) { - result = result + ("submitted" -> true) - } - - // convert back into json string - Json.stringify(result) - } - - val login: ChainBuilder = exec( - http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - .check(headerRegex("Set-Cookie", "XSRF-TOKEN=([^;]*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .feed(feeder) - .pause(2 seconds) - .exec(http("Authentication") - .post("/api/authentication") - .headers(headers_http_authenticated) - .formParam("j_username", "${username}") - .formParam("j_password", "${password}") - .formParam("remember-me", "true") - .formParam("submit", "Login") - .check(status.is(200)) - .check(headerRegex("Set-Cookie", "XSRF-TOKEN=([^;]*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .pause(10 seconds) - - val loadDashboard: ChainBuilder = rendezVous(Math.min(numUsersSubmit, numUsersNoSubmit)) - .exec(http("Get dashboard") - .get("/api/courses/for-dashboard") - .headers(headers_http_authenticated) - .check(status.is(200))).exitHereIfFailed - .pause(5 seconds) - - val startQuiz: ChainBuilder = rendezVous(Math.min(numUsersSubmit, numUsersNoSubmit)) - .exec(http("Get Participation with Quiz") - .get("/api/courses/1/exercises/" + exerciseId + "/participation") - .headers(headers_http_authenticated) - .check(status.is(200)) - .check(jsonPath("$.exercise.questions").saveAs("questions")) - .resources( - http("Load Picture").get(backgroundPicturePath).headers(headers_http_authenticated) - ) - ).exitHereIfFailed - .pause(5 seconds, 15 seconds) - - val workOnQuiz: ChainBuilder = exec( - ws("Connect WebSocket") - .connect("/websocket/websocket")).exitHereIfFailed - .pause(5 seconds) - .exec(ws("Connect STOMP") - .sendText("CONNECT\nX-XSRF-TOKEN:${xsrf_token}\naccept-version:1.2\nheart-beat:10000,10000\n\n\u0000") - .await(10 seconds)()) - .exec(ws("Subscribe Submission") - .sendText("SUBSCRIBE\nid:sub-1\ndestination:/user/topic/quizExercise/" + exerciseId + "/submission\n\n\u0000")) - .pause(5 seconds) - .repeat(20) { - exec(ws("Send Answers") - .sendText(session => "SEND\ndestination:/topic/quizExercise/" + exerciseId + "/submission\n\n" + selectRandomAnswers(session("questions").as[String], false) + "\u0000") - .await(10 seconds)()) - .pause(5 seconds) - } - - val submitQuiz: ChainBuilder = rendezVous(numUsersSubmit) - .exec(ws("Submit Answers") - .sendText(session => "SEND\ndestination:/topic/quizExercise/" + exerciseId + "/submission\n\n" + selectRandomAnswers(session("questions").as[String], true) + "\u0000") - .await(10 seconds)()) - .pause(5 seconds) - - val waitForResult: ChainBuilder = pause(10 seconds) - .exec(ws("Subscribe Participation") - .sendText("SUBSCRIBE\nid:sub-1\ndestination:/user/topic/quizExercise/" + exerciseId + "/participation\n\n\u0000") - .await(600 seconds)()) - - - val usersNoSubmit: ScenarioBuilder = scenario("Users without submit").exec(login, loadDashboard, startQuiz, workOnQuiz, waitForResult) - val usersSubmit: ScenarioBuilder = scenario("Users with submit").exec(login, loadDashboard, startQuiz, workOnQuiz, submitQuiz, waitForResult) - - setUp( - usersNoSubmit.inject(rampUsers(numUsersNoSubmit) during (20 seconds)), - usersSubmit.inject(rampUsers(numUsersSubmit) during (20 seconds)) - ).protocols(httpConf) - -} diff --git a/src/test/gatling/user-files/resources/modeling_submission_1.txt b/src/test/gatling/user-files/resources/modeling_submission_1.txt deleted file mode 100644 index 0c99bb83f7ac..000000000000 --- a/src/test/gatling/user-files/resources/modeling_submission_1.txt +++ /dev/null @@ -1 +0,0 @@ -{\"version\":\"2.0.0\",\"size\":{\"width\":910,\"height\":370},\"type\":\"ClassDiagram\",\"interactive\":{\"elements\":[],\"relationships\":[]},\"elements\":[{\"id\":\"62c4675c-dd53-4e5c-bc18-0042081b9ac7\",\"name\":\"Tea\",\"owner\":null,\"type\":\"Class\",\"bounds\":{\"x\":0,\"y\":270,\"width\":200,\"height\":100},\"attributes\":[\"e0133088-a2d2-4913-bfab-550182fbf77d\"],\"methods\":[\"dfe1c9e9-d4aa-4707-aedd-19b0406c2e20\"]},{\"id\":\"e0133088-a2d2-4913-bfab-550182fbf77d\",\"name\":\"+ temp: Type\",\"owner\":\"62c4675c-dd53-4e5c-bc18-0042081b9ac7\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":0,\"y\":310,\"width\":200,\"height\":30}},{\"id\":\"dfe1c9e9-d4aa-4707-aedd-19b0406c2e20\",\"name\":\"+ drink()\",\"owner\":\"62c4675c-dd53-4e5c-bc18-0042081b9ac7\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":0,\"y\":340,\"width\":200,\"height\":30}},{\"id\":\"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d\",\"name\":\"Class\",\"owner\":null,\"type\":\"Class\",\"bounds\":{\"x\":710,\"y\":270,\"width\":200,\"height\":100},\"attributes\":[\"b94f0549-cfcc-4069-9058-f66413b18cde\"],\"methods\":[\"5181da8e-6f29-4b46-97c3-2eca7e1ee1e3\"]},{\"id\":\"b94f0549-cfcc-4069-9058-f66413b18cde\",\"name\":\"+ attribute: Type\",\"owner\":\"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":710,\"y\":310,\"width\":200,\"height\":30}},{\"id\":\"5181da8e-6f29-4b46-97c3-2eca7e1ee1e3\",\"name\":\"+ method()\",\"owner\":\"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":710,\"y\":340,\"width\":200,\"height\":30}},{\"id\":\"c430c7a2-046f-45d7-925f-a754c7a3190f\",\"name\":\"Drink\",\"owner\":null,\"type\":\"AbstractClass\",\"bounds\":{\"x\":360,\"y\":0,\"width\":200,\"height\":70},\"attributes\":[],\"methods\":[\"6819b6c6-12ed-4f07-98a4-94d76d7409bc\"]},{\"id\":\"6819b6c6-12ed-4f07-98a4-94d76d7409bc\",\"name\":\"+ drink()\",\"owner\":\"c430c7a2-046f-45d7-925f-a754c7a3190f\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":360,\"y\":40,\"width\":200,\"height\":30}}],\"relationships\":[],\"assessments\":[]} diff --git a/src/test/gatling/user-files/simulations/AnswerCounterGatlingTest.scala b/src/test/gatling/user-files/simulations/AnswerCounterGatlingTest.scala deleted file mode 100644 index 47be82adc65f..000000000000 --- a/src/test/gatling/user-files/simulations/AnswerCounterGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the AnswerCounter entity. - */ -class AnswerCounterGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the AnswerCounter entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all answerCounters") - .get("/api/answer-counters") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new answerCounter") - .post("/api/answer-counters") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_answerCounter_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created answerCounter") - .get("${new_answerCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created answerCounter") - .delete("${new_answerCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/AnswerOptionGatlingTest.scala b/src/test/gatling/user-files/simulations/AnswerOptionGatlingTest.scala deleted file mode 100644 index 92ef8af2be91..000000000000 --- a/src/test/gatling/user-files/simulations/AnswerOptionGatlingTest.scala +++ /dev/null @@ -1,101 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the AnswerOption entity. - */ -class AnswerOptionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the AnswerOption entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all answerOptions") - .get("/api/answer-options") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new answerOption") - .post("/api/answer-options") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "text":"SAMPLE_TEXT" - , "hint":"SAMPLE_TEXT" - , "explanation":"SAMPLE_TEXT" - , "isCorrect":null - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_answerOption_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created answerOption") - .get("${new_answerOption_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created answerOption") - .delete("${new_answerOption_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ApollonDiagramGatlingTest.scala b/src/test/gatling/user-files/simulations/ApollonDiagramGatlingTest.scala deleted file mode 100644 index 79720729638e..000000000000 --- a/src/test/gatling/user-files/simulations/ApollonDiagramGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ApollonDiagram entity. - */ -class ApollonDiagramGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ApollonDiagram entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all apollonDiagrams") - .get("/api/apollon-diagrams") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new apollonDiagram") - .post("/api/apollon-diagrams") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "title":"SAMPLE_TEXT" - , "jsonRepresentation":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_apollonDiagram_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created apollonDiagram") - .get("${new_apollonDiagram_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created apollonDiagram") - .delete("${new_apollonDiagram_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ConflictSimulation.scala b/src/test/gatling/user-files/simulations/ConflictSimulation.scala deleted file mode 100644 index 90b6fca2848c..000000000000 --- a/src/test/gatling/user-files/simulations/ConflictSimulation.scala +++ /dev/null @@ -1,128 +0,0 @@ -package simulations - -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import scala.concurrent.duration._ -import util.Properties - -class ConflictSimulation extends Simulation { - - val httpProtocol = http - .baseUrl("http://localhost:9000") - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("en-US,en;q=0.5") - .userAgentHeader("Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0") - .silentResources - - val userCredentials: Array[(String, String)] = Array(("", ""), ("", "")) - val model1: String = """{\"version\":\"2.0.0\",\"size\":{\"width\":910,\"height\":370},\"type\":\"ClassDiagram\",\"interactive\":{\"elements\":[],\"relationships\":[]},\"elements\":[{\"id\":\"62c4675c-dd53-4e5c-bc18-0042081b9ac7\",\"name\":\"Tea\",\"owner\":null,\"type\":\"Class\",\"bounds\":{\"x\":0,\"y\":270,\"width\":200,\"height\":100},\"attributes\":[\"e0133088-a2d2-4913-bfab-550182fbf77d\"],\"methods\":[\"dfe1c9e9-d4aa-4707-aedd-19b0406c2e20\"]},{\"id\":\"e0133088-a2d2-4913-bfab-550182fbf77d\",\"name\":\"+ temp: Type\",\"owner\":\"62c4675c-dd53-4e5c-bc18-0042081b9ac7\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":0,\"y\":310,\"width\":200,\"height\":30}},{\"id\":\"dfe1c9e9-d4aa-4707-aedd-19b0406c2e20\",\"name\":\"+ drink()\",\"owner\":\"62c4675c-dd53-4e5c-bc18-0042081b9ac7\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":0,\"y\":340,\"width\":200,\"height\":30}},{\"id\":\"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d\",\"name\":\"Class\",\"owner\":null,\"type\":\"Class\",\"bounds\":{\"x\":710,\"y\":270,\"width\":200,\"height\":100},\"attributes\":[\"b94f0549-cfcc-4069-9058-f66413b18cde\"],\"methods\":[\"5181da8e-6f29-4b46-97c3-2eca7e1ee1e3\"]},{\"id\":\"b94f0549-cfcc-4069-9058-f66413b18cde\",\"name\":\"+ attribute: Type\",\"owner\":\"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":710,\"y\":310,\"width\":200,\"height\":30}},{\"id\":\"5181da8e-6f29-4b46-97c3-2eca7e1ee1e3\",\"name\":\"+ method()\",\"owner\":\"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":710,\"y\":340,\"width\":200,\"height\":30}},{\"id\":\"c430c7a2-046f-45d7-925f-a754c7a3190f\",\"name\":\"Drink\",\"owner\":null,\"type\":\"AbstractClass\",\"bounds\":{\"x\":360,\"y\":0,\"width\":200,\"height\":70},\"attributes\":[],\"methods\":[\"6819b6c6-12ed-4f07-98a4-94d76d7409bc\"]},{\"id\":\"6819b6c6-12ed-4f07-98a4-94d76d7409bc\",\"name\":\"+ drink()\",\"owner\":\"c430c7a2-046f-45d7-925f-a754c7a3190f\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":360,\"y\":40,\"width\":200,\"height\":30}}],\"relationships\":[],\"assessments\":[]}""" - val assessmentModel1:String ="""[{"referenceId":"c430c7a2-046f-45d7-925f-a754c7a3190f","referenceType":"AbstractClass","reference":"AbstractClass:c430c7a2-046f-45d7-925f-a754c7a3190f","credits":0.5},{"referenceId":"6819b6c6-12ed-4f07-98a4-94d76d7409bc","referenceType":"ClassMethod","reference":"ClassMethod:6819b6c6-12ed-4f07-98a4-94d76d7409bc","credits":0.5},{"referenceId":"2ac69a3b-7e75-4010-8af5-0785fe3aaa4d","referenceType":"Class","reference":"Class:2ac69a3b-7e75-4010-8af5-0785fe3aaa4d","credits":0.5},{"referenceId":"b94f0549-cfcc-4069-9058-f66413b18cde","referenceType":"ClassAttribute","reference":"ClassAttribute:b94f0549-cfcc-4069-9058-f66413b18cde","credits":0.5},{"referenceId":"5181da8e-6f29-4b46-97c3-2eca7e1ee1e3","referenceType":"ClassMethod","reference":"ClassMethod:5181da8e-6f29-4b46-97c3-2eca7e1ee1e3","credits":0.5},{"referenceId":"62c4675c-dd53-4e5c-bc18-0042081b9ac7","referenceType":"Class","reference":"Class:62c4675c-dd53-4e5c-bc18-0042081b9ac7","credits":0.5},{"referenceId":"e0133088-a2d2-4913-bfab-550182fbf77d","referenceType":"ClassAttribute","reference":"ClassAttribute:e0133088-a2d2-4913-bfab-550182fbf77d","credits":0.5},{"referenceId":"dfe1c9e9-d4aa-4707-aedd-19b0406c2e20","referenceType":"ClassMethod","reference":"ClassMethod:dfe1c9e9-d4aa-4707-aedd-19b0406c2e20","credits":0.5}]""" - val model2: String = """{\"version\":\"2.0.0\",\"size\":{\"width\":1410,\"height\":530},\"type\":\"ClassDiagram\",\"interactive\":{\"elements\":[],\"relationships\":[]},\"elements\":[{\"id\":\"753f3d0d-73ac-433a-8318-76ab56adc846\",\"name\":\"Drink\",\"owner\":null,\"type\":\"AbstractClass\",\"bounds\":{\"x\":0,\"y\":50,\"width\":200,\"height\":100},\"attributes\":[\"54f52912-5c7e-4401-9788-3f3de239e715\"],\"methods\":[\"e15ca6cb-10c0-42fc-827e-b77f268c4f4c\"]},{\"id\":\"54f52912-5c7e-4401-9788-3f3de239e715\",\"name\":\"+ nothing\",\"owner\":\"753f3d0d-73ac-433a-8318-76ab56adc846\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":0,\"y\":90,\"width\":200,\"height\":30}},{\"id\":\"e15ca6cb-10c0-42fc-827e-b77f268c4f4c\",\"name\":\"+ drink()\",\"owner\":\"753f3d0d-73ac-433a-8318-76ab56adc846\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":0,\"y\":120,\"width\":200,\"height\":30}},{\"id\":\"01f98b8b-3139-44ad-a783-fa43d51dcdba\",\"name\":\"Tea\",\"owner\":null,\"type\":\"Class\",\"bounds\":{\"x\":1210,\"y\":0,\"width\":200,\"height\":100},\"attributes\":[\"7fd3f82d-1a8f-4d1b-82ab-84e3df93be84\"],\"methods\":[\"0d44e404-1dde-4c40-aedb-ae60af5244a2\"]},{\"id\":\"7fd3f82d-1a8f-4d1b-82ab-84e3df93be84\",\"name\":\"+ temp: Type\",\"owner\":\"01f98b8b-3139-44ad-a783-fa43d51dcdba\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":1210,\"y\":40,\"width\":200,\"height\":30}},{\"id\":\"0d44e404-1dde-4c40-aedb-ae60af5244a2\",\"name\":\"+ drink()\",\"owner\":\"01f98b8b-3139-44ad-a783-fa43d51dcdba\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":1210,\"y\":70,\"width\":200,\"height\":30}},{\"id\":\"0b396708-3561-4fdb-b6d6-b04020194d07\",\"name\":\"Coffee\",\"owner\":null,\"type\":\"Class\",\"bounds\":{\"x\":870,\"y\":430,\"width\":200,\"height\":100},\"attributes\":[\"c1a04810-a52f-42d5-b100-872b85f0cc89\"],\"methods\":[\"7eb695c9-5b67-4b74-abf2-aad998be850c\"]},{\"id\":\"c1a04810-a52f-42d5-b100-872b85f0cc89\",\"name\":\"+ temp: Type\",\"owner\":\"0b396708-3561-4fdb-b6d6-b04020194d07\",\"type\":\"ClassAttribute\",\"bounds\":{\"x\":870,\"y\":470,\"width\":200,\"height\":30}},{\"id\":\"7eb695c9-5b67-4b74-abf2-aad998be850c\",\"name\":\"+ drink()\",\"owner\":\"0b396708-3561-4fdb-b6d6-b04020194d07\",\"type\":\"ClassMethod\",\"bounds\":{\"x\":870,\"y\":500,\"width\":200,\"height\":30}}],\"relationships\":[{\"id\":\"40f12b68-b42f-42a1-8bae-623dc58897ee\",\"name\":\"\",\"type\":\"ClassBidirectional\",\"source\":{\"element\":\"0b396708-3561-4fdb-b6d6-b04020194d07\",\"direction\":\"Left\",\"multiplicity\":\"\",\"role\":\"\"},\"target\":{\"element\":\"753f3d0d-73ac-433a-8318-76ab56adc846\",\"direction\":\"Right\",\"multiplicity\":\"\",\"role\":\"\"},\"path\":[{\"x\":672,\"y\":382},{\"x\":337,\"y\":382},{\"x\":337,\"y\":2},{\"x\":2,\"y\":2}],\"bounds\":{\"x\":198,\"y\":98,\"width\":674,\"height\":384}},{\"id\":\"155256b5-0cf7-4dbf-8e2a-cab00ef97a67\",\"name\":\"\",\"type\":\"ClassBidirectional\",\"source\":{\"element\":\"01f98b8b-3139-44ad-a783-fa43d51dcdba\",\"direction\":\"Left\",\"multiplicity\":\"\",\"role\":\"\"},\"target\":{\"element\":\"753f3d0d-73ac-433a-8318-76ab56adc846\",\"direction\":\"Right\",\"multiplicity\":\"\",\"role\":\"\"},\"path\":[{\"x\":1012,\"y\":2},{\"x\":2,\"y\":2}],\"bounds\":{\"x\":198,\"y\":73,\"width\":1014,\"height\":4}}],\"assessments\":[]}""" - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Accept" -> """application/json""", - "Content-Type" -> """application/json""", - "X-XSRF-TOKEN" -> "${xsrf_token}" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "X-XSRF-TOKEN" -> "${xsrf_token}", - "Authorization" -> "${access_token}" - ) - - val headers_http_authenticated_JSON = Map( - "Accept" -> """application/json""", - "Content-Type" -> """application/json""", - "X-XSRF-TOKEN" -> "${xsrf_token}", - "Authorization" -> "${access_token}" - ) - - val firstModel = scenario("Submit and assess 1. Model") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec(http("Authentication of 1. User") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"""" + userCredentials(0)._1 + """", "password":"""" + userCredentials(0)._2 + """"}""")).asJson - .check(status.is(200)) - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .exec((http("Create Course")) - .post("/api/courses") - .headers(headers_http_authenticated_JSON) - .body(StringBody("""{"id":null,"title":"GatlingGeneratedCourse","shortName":"TTTXY","studentGroupName":"tumuser","teachingAssistantGroupName":null,"instructorGroupName":"tumuser","description":null,"startDate":null,"endDate":null,"onlineCourse":false,"registrationEnabled":false,"color":null,"courseIcon":null}""")).asJson - .check(status.is(201)) - .check(jsonPath("$.id").saveAs("course_id")) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec((http("Create ModelingExercise")) - .post("/api/modeling-exercises") - .headers(headers_http_authenticated_JSON) - .body(StringBody("""{"isAtLeastTutor":false,"isAtLeastInstructor":false,"type":"modeling","course":{"id":""" + "${course_id}" + ""","title":"CourseXY","shortName":"TTTXY","studentGroupName":"tumuser","instructorGroupName":"tumuser","onlineCourse":false,"registrationEnabled":false,"startDate":null,"endDate":null,"exercises":[]},"diagramType":"ClassDiagram","title":"Exercise 1","maxScore":10,"problemStatement":"","releaseDate":null,"dueDate":null,"assessmentDueDate":null}""")).asJson - .check(status.is(201)) - .check(jsonPath("$.id").saveAs("exercise_id")) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec((http("Participate in Modeling Exercise")) - .post("/api/courses/${course_id}/exercises/${exercise_id}/participations") - .headers(headers_http_authenticated_JSON) - .check(status.is(201)) - .check(jsonPath("$.id").saveAs("participation_id")) - .check(bodyString.saveAs("participation")) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec((http("Submit Model1")) - .put("/api/exercises/${exercise_id}/modeling-submissions") - .headers(headers_http_authenticated_JSON) - .body(StringBody("""{"submissionExerciseType":"modeling","participation":${participation},"submitted":true,"model":"""" + model1 + """"}""")).asJson - .check(status.is(200)) - .check(jsonPath("$.id").saveAs("submission_id")) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec((http("Assess Model")) - .put("/api/modeling-submissions/${submission_id}/assessment") - .queryParam("submit","true") - .headers(headers_http_authenticated_JSON) - .body(StringBody(assessmentModel1)).asJson - .check(status.is(200))) - - - val secondModel = scenario("Submit 2nd. Model") - .exec(flushSessionCookies) - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec(http("Authentication of 2nd User") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"""" + userCredentials(1)._1 + """", "password":"""" + userCredentials(1)._2 + """"}""")).asJson - .check(status.is(200)) - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .exec((http("Participate in Modeling Exercise")) - .post("/api/courses/${course_id}/exercises/${exercise_id}/participations") - .headers(headers_http_authenticated_JSON) - .check(status.is(201)) - .check(jsonPath("$.id").saveAs("participation_id")) - .check(bodyString.saveAs("participation")) - .check(headerRegex("set-cookie", "XSRF-TOKEN=(.*);[\\s]").saveAs("xsrf_token"))).exitHereIfFailed - .exec((http("Submit Model2")) - .put("/api/exercises/${exercise_id}/modeling-submissions") - .headers(headers_http_authenticated_JSON) - .body(StringBody("""{"submissionExerciseType":"modeling","submitted":true,"model":"""" + model2 + """"}""")).asJson - .check(status.is(200))) - - val submitModels = scenario("Submitting both Models") - .exec(firstModel) - .exec(secondModel) - - setUp( - submitModels.inject(atOnceUsers(1)) - ).protocols(httpProtocol) -} diff --git a/src/test/gatling/user-files/simulations/CourseGatlingTest.scala b/src/test/gatling/user-files/simulations/CourseGatlingTest.scala deleted file mode 100644 index 9f334e2525cd..000000000000 --- a/src/test/gatling/user-files/simulations/CourseGatlingTest.scala +++ /dev/null @@ -1,103 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the Course entity. - */ -class CourseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the Course entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all courses") - .get("/api/courses") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new course") - .post("/api/courses") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "title":"SAMPLE_TEXT" - , "studentGroupName":"SAMPLE_TEXT" - , "teachingAssistantGroupName":"SAMPLE_TEXT" - , "instructorGroupName":"SAMPLE_TEXT" - , "startDate":"2020-01-01T00:00:00.000Z" - , "endDate":"2020-01-01T00:00:00.000Z" - , "onlineCourse":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_course_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created course") - .get("${new_course_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created course") - .delete("${new_course_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DragAndDropMappingGatlingTest.scala b/src/test/gatling/user-files/simulations/DragAndDropMappingGatlingTest.scala deleted file mode 100644 index 3677cbc9b013..000000000000 --- a/src/test/gatling/user-files/simulations/DragAndDropMappingGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DragAndDropMapping entity. - */ -class DragAndDropMappingGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DragAndDropMapping entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dragAndDropMappings") - .get("/api/drag-and-drop-mappings") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dragAndDropMapping") - .post("/api/drag-and-drop-mappings") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "dragItemIndex":"0" - , "dropLocationIndex":"0" - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dragAndDropMapping_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dragAndDropMapping") - .get("${new_dragAndDropMapping_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dragAndDropMapping") - .delete("${new_dragAndDropMapping_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DragAndDropQuestionGatlingTest.scala b/src/test/gatling/user-files/simulations/DragAndDropQuestionGatlingTest.scala deleted file mode 100644 index 5b58a050e251..000000000000 --- a/src/test/gatling/user-files/simulations/DragAndDropQuestionGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DragAndDropQuestion entity. - */ -class DragAndDropQuestionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DragAndDropQuestion entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dragAndDropQuestions") - .get("/api/drag-and-drop-questions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dragAndDropQuestion") - .post("/api/drag-and-drop-questions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "backgroundFilePath":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dragAndDropQuestion_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dragAndDropQuestion") - .get("${new_dragAndDropQuestion_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dragAndDropQuestion") - .delete("${new_dragAndDropQuestion_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DragAndDropQuestionStatisticGatlingTest.scala b/src/test/gatling/user-files/simulations/DragAndDropQuestionStatisticGatlingTest.scala deleted file mode 100644 index 2a234abf2232..000000000000 --- a/src/test/gatling/user-files/simulations/DragAndDropQuestionStatisticGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DragAndDropQuestionStatistic entity. - */ -class DragAndDropQuestionStatisticGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DragAndDropQuestionStatistic entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dragAndDropQuestionStatistics") - .get("/api/drag-and-drop-question-statistics") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dragAndDropQuestionStatistic") - .post("/api/drag-and-drop-question-statistics") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dragAndDropQuestionStatistic_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dragAndDropQuestionStatistic") - .get("${new_dragAndDropQuestionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dragAndDropQuestionStatistic") - .delete("${new_dragAndDropQuestionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DragAndDropSubmittedAnswerGatlingTest.scala b/src/test/gatling/user-files/simulations/DragAndDropSubmittedAnswerGatlingTest.scala deleted file mode 100644 index e23a8bdc9f09..000000000000 --- a/src/test/gatling/user-files/simulations/DragAndDropSubmittedAnswerGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DragAndDropSubmittedAnswer entity. - */ -class DragAndDropSubmittedAnswerGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DragAndDropSubmittedAnswer entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dragAndDropSubmittedAnswers") - .get("/api/drag-and-drop-submitted-answers") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dragAndDropSubmittedAnswer") - .post("/api/drag-and-drop-submitted-answers") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dragAndDropSubmittedAnswer_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dragAndDropSubmittedAnswer") - .get("${new_dragAndDropSubmittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dragAndDropSubmittedAnswer") - .delete("${new_dragAndDropSubmittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DragItemGatlingTest.scala b/src/test/gatling/user-files/simulations/DragItemGatlingTest.scala deleted file mode 100644 index 668fd6eb89d2..000000000000 --- a/src/test/gatling/user-files/simulations/DragItemGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DragItem entity. - */ -class DragItemGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DragItem entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dragItems") - .get("/api/drag-items") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dragItem") - .post("/api/drag-items") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "pictureFilePath":"SAMPLE_TEXT" - , "text":"SAMPLE_TEXT" - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dragItem_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dragItem") - .get("${new_dragItem_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dragItem") - .delete("${new_dragItem_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DropLocationCounterGatlingTest.scala b/src/test/gatling/user-files/simulations/DropLocationCounterGatlingTest.scala deleted file mode 100644 index 8f9b530fc1a7..000000000000 --- a/src/test/gatling/user-files/simulations/DropLocationCounterGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DropLocationCounter entity. - */ -class DropLocationCounterGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DropLocationCounter entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dropLocationCounters") - .get("/api/drop-location-counters") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dropLocationCounter") - .post("/api/drop-location-counters") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dropLocationCounter_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dropLocationCounter") - .get("${new_dropLocationCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dropLocationCounter") - .delete("${new_dropLocationCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/DropLocationGatlingTest.scala b/src/test/gatling/user-files/simulations/DropLocationGatlingTest.scala deleted file mode 100644 index 52bb8d0f1d13..000000000000 --- a/src/test/gatling/user-files/simulations/DropLocationGatlingTest.scala +++ /dev/null @@ -1,101 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the DropLocation entity. - */ -class DropLocationGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the DropLocation entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all dropLocations") - .get("/api/drop-locations") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new dropLocation") - .post("/api/drop-locations") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "posX":"0" - , "posY":"0" - , "width":"0" - , "height":"0" - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_dropLocation_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created dropLocation") - .get("${new_dropLocation_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created dropLocation") - .delete("${new_dropLocation_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ExerciseGatlingTest.scala b/src/test/gatling/user-files/simulations/ExerciseGatlingTest.scala deleted file mode 100644 index ab5d5621b5a0..000000000000 --- a/src/test/gatling/user-files/simulations/ExerciseGatlingTest.scala +++ /dev/null @@ -1,104 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the Exercise entity. - */ -class ExerciseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the Exercise entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all exercises") - .get("/api/exercises") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new exercise") - .post("/api/exercises") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "problemStatement":"SAMPLE_TEXT" - , "gradingInstructions":"SAMPLE_TEXT" - , "title":"SAMPLE_TEXT" - , "releaseDate":"2020-01-01T00:00:00.000Z" - , "dueDate":"2020-01-01T00:00:00.000Z" - , "maxScore":null - , "difficulty":"EASY" - , "categories":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_exercise_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created exercise") - .get("${new_exercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created exercise") - .delete("${new_exercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ExerciseHintGatlingTest.scala b/src/test/gatling/user-files/simulations/ExerciseHintGatlingTest.scala deleted file mode 100644 index 51821590cd1f..000000000000 --- a/src/test/gatling/user-files/simulations/ExerciseHintGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ExerciseHint entity. - */ -class ExerciseHintGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ExerciseHint entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all exerciseHints") - .get("/api/exercise-hints") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new exerciseHint") - .post("/api/exercise-hints") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "title":"SAMPLE_TEXT" - , "content":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_exerciseHint_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created exerciseHint") - .get("${new_exerciseHint_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created exerciseHint") - .delete("${new_exerciseHint_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during (Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ExerciseResultGatlingTest.scala b/src/test/gatling/user-files/simulations/ExerciseResultGatlingTest.scala deleted file mode 100644 index 2c5f5ae3d71f..000000000000 --- a/src/test/gatling/user-files/simulations/ExerciseResultGatlingTest.scala +++ /dev/null @@ -1,102 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ExerciseResult entity. - */ -class ExerciseResultGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ExerciseResult entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all exerciseResults") - .get("/api/exercise-results") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new exerciseResult") - .post("/api/exercise-results") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "completionDate":"2020-01-01T00:00:00.000Z" - , "successful":null - , "buildArtifact":null - , "score":null - , "rated":null - , "assessmentType":"AUTOMATIC" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_exerciseResult_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created exerciseResult") - .get("${new_exerciseResult_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created exerciseResult") - .delete("${new_exerciseResult_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/FeedbackGatlingTest.scala b/src/test/gatling/user-files/simulations/FeedbackGatlingTest.scala deleted file mode 100644 index a67fec80e5fb..000000000000 --- a/src/test/gatling/user-files/simulations/FeedbackGatlingTest.scala +++ /dev/null @@ -1,100 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the Feedback entity. - */ -class FeedbackGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the Feedback entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all feedbacks") - .get("/api/feedbacks") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new feedback") - .post("/api/feedbacks") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "text":"SAMPLE_TEXT" - , "detailText":"SAMPLE_TEXT" - , "positive":null - , "type":"AUTOMATIC" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_feedback_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created feedback") - .get("${new_feedback_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created feedback") - .delete("${new_feedback_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/FileUploadExerciseGatlingTest.scala b/src/test/gatling/user-files/simulations/FileUploadExerciseGatlingTest.scala deleted file mode 100644 index e2ca1cb899d2..000000000000 --- a/src/test/gatling/user-files/simulations/FileUploadExerciseGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the FileUploadExercise entity. - */ -class FileUploadExerciseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the FileUploadExercise entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all fileUploadExercises") - .get("/api/file-upload-exercises") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new fileUploadExercise") - .post("/api/file-upload-exercises") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "filePattern":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_fileUploadExercise_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created fileUploadExercise") - .get("${new_fileUploadExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created fileUploadExercise") - .delete("${new_fileUploadExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/FileUploadSubmissionGatlingTest.scala b/src/test/gatling/user-files/simulations/FileUploadSubmissionGatlingTest.scala deleted file mode 100644 index 2f75294a4dd4..000000000000 --- a/src/test/gatling/user-files/simulations/FileUploadSubmissionGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the FileUploadSubmission entity. - */ -class FileUploadSubmissionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the FileUploadSubmission entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all fileUploadSubmissions") - .get("/api/file-upload-submissions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new fileUploadSubmission") - .post("/api/file-upload-submissions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "filePath":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_fileUploadSubmission_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created fileUploadSubmission") - .get("${new_fileUploadSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created fileUploadSubmission") - .delete("${new_fileUploadSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/LtiOutcomeUrlGatlingTest.scala b/src/test/gatling/user-files/simulations/LtiOutcomeUrlGatlingTest.scala deleted file mode 100644 index 12bd7bf9d699..000000000000 --- a/src/test/gatling/user-files/simulations/LtiOutcomeUrlGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the LtiOutcomeUrl entity. - */ -class LtiOutcomeUrlGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the LtiOutcomeUrl entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all ltiOutcomeUrls") - .get("/api/lti-outcome-urls") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new ltiOutcomeUrl") - .post("/api/lti-outcome-urls") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "url":"SAMPLE_TEXT" - , "sourcedId":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_ltiOutcomeUrl_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created ltiOutcomeUrl") - .get("${new_ltiOutcomeUrl_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created ltiOutcomeUrl") - .delete("${new_ltiOutcomeUrl_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ModelingExerciseGatlingTest.scala b/src/test/gatling/user-files/simulations/ModelingExerciseGatlingTest.scala deleted file mode 100644 index 37da6ae2e133..000000000000 --- a/src/test/gatling/user-files/simulations/ModelingExerciseGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ModelingExercise entity. - */ -class ModelingExerciseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ModelingExercise entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all modelingExercises") - .get("/api/modeling-exercises") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new modelingExercise") - .post("/api/modeling-exercises") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "diagramType":"CLASS" - , "exampleSolutionModel":"SAMPLE_TEXT" - , "exampleSolutionExplanation":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_modelingExercise_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created modelingExercise") - .get("${new_modelingExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created modelingExercise") - .delete("${new_modelingExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ModelingSubmissionGatlingTest.scala b/src/test/gatling/user-files/simulations/ModelingSubmissionGatlingTest.scala deleted file mode 100644 index 442822aa2170..000000000000 --- a/src/test/gatling/user-files/simulations/ModelingSubmissionGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ModelingSubmission entity. - */ -class ModelingSubmissionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ModelingSubmission entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all modelingSubmissions") - .get("/api/modeling-submissions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new modelingSubmission") - .post("/api/modeling-submissions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "model":"SAMPLE_TEXT" - , "explanationText":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_modelingSubmission_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created modelingSubmission") - .get("${new_modelingSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created modelingSubmission") - .delete("${new_modelingSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/MultipleChoiceQuestionGatlingTest.scala b/src/test/gatling/user-files/simulations/MultipleChoiceQuestionGatlingTest.scala deleted file mode 100644 index 2c0af8cf3a0b..000000000000 --- a/src/test/gatling/user-files/simulations/MultipleChoiceQuestionGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the MultipleChoiceQuestion entity. - */ -class MultipleChoiceQuestionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the MultipleChoiceQuestion entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all multipleChoiceQuestions") - .get("/api/multiple-choice-questions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new multipleChoiceQuestion") - .post("/api/multiple-choice-questions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_multipleChoiceQuestion_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created multipleChoiceQuestion") - .get("${new_multipleChoiceQuestion_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created multipleChoiceQuestion") - .delete("${new_multipleChoiceQuestion_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/MultipleChoiceQuestionStatisticGatlingTest.scala b/src/test/gatling/user-files/simulations/MultipleChoiceQuestionStatisticGatlingTest.scala deleted file mode 100644 index 405ae76de041..000000000000 --- a/src/test/gatling/user-files/simulations/MultipleChoiceQuestionStatisticGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the MultipleChoiceQuestionStatistic entity. - */ -class MultipleChoiceQuestionStatisticGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the MultipleChoiceQuestionStatistic entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all multipleChoiceQuestionStatistics") - .get("/api/multiple-choice-question-statistics") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new multipleChoiceQuestionStatistic") - .post("/api/multiple-choice-question-statistics") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_multipleChoiceQuestionStatistic_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created multipleChoiceQuestionStatistic") - .get("${new_multipleChoiceQuestionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created multipleChoiceQuestionStatistic") - .delete("${new_multipleChoiceQuestionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/MultipleChoiceSubmittedAnswerGatlingTest.scala b/src/test/gatling/user-files/simulations/MultipleChoiceSubmittedAnswerGatlingTest.scala deleted file mode 100644 index d4875c725880..000000000000 --- a/src/test/gatling/user-files/simulations/MultipleChoiceSubmittedAnswerGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the MultipleChoiceSubmittedAnswer entity. - */ -class MultipleChoiceSubmittedAnswerGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the MultipleChoiceSubmittedAnswer entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all multipleChoiceSubmittedAnswers") - .get("/api/multiple-choice-submitted-answers") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new multipleChoiceSubmittedAnswer") - .post("/api/multiple-choice-submitted-answers") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_multipleChoiceSubmittedAnswer_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created multipleChoiceSubmittedAnswer") - .get("${new_multipleChoiceSubmittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created multipleChoiceSubmittedAnswer") - .delete("${new_multipleChoiceSubmittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ParticipationGatlingTest.scala b/src/test/gatling/user-files/simulations/ParticipationGatlingTest.scala deleted file mode 100644 index d68481ba5ad0..000000000000 --- a/src/test/gatling/user-files/simulations/ParticipationGatlingTest.scala +++ /dev/null @@ -1,101 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the Participation entity. - */ -class ParticipationGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the Participation entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all participations") - .get("/api/participations") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new participation") - .post("/api/participations") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "repositoryUrl":"SAMPLE_TEXT" - , "buildPlanId":"SAMPLE_TEXT" - , "initializationState":"UNINITIALIZED" - , "initializationDate":"2020-01-01T00:00:00.000Z" - , "presentationScore":"0" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_participation_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created participation") - .get("${new_participation_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created participation") - .delete("${new_participation_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/PointCounterGatlingTest.scala b/src/test/gatling/user-files/simulations/PointCounterGatlingTest.scala deleted file mode 100644 index 21d5ce970818..000000000000 --- a/src/test/gatling/user-files/simulations/PointCounterGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the PointCounter entity. - */ -class PointCounterGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the PointCounter entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all pointCounters") - .get("/api/point-counters") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new pointCounter") - .post("/api/point-counters") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "points":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_pointCounter_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created pointCounter") - .get("${new_pointCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created pointCounter") - .delete("${new_pointCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ProgrammingExerciseGatlingTest.scala b/src/test/gatling/user-files/simulations/ProgrammingExerciseGatlingTest.scala deleted file mode 100644 index c11dfa691431..000000000000 --- a/src/test/gatling/user-files/simulations/ProgrammingExerciseGatlingTest.scala +++ /dev/null @@ -1,101 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ProgrammingExercise entity. - */ -class ProgrammingExerciseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ProgrammingExercise entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all programmingExercises") - .get("/api/programming-exercises") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new programmingExercise") - .post("/api/programming-exercises") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "templateRepositoryUrl":"SAMPLE_TEXT" - , "solutionRepositoryUrl":"SAMPLE_TEXT" - , "templateBuildPlanId":"SAMPLE_TEXT" - , "publishBuildPlanUrl":null - , "allowOnlineEditor":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_programmingExercise_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created programmingExercise") - .get("${new_programmingExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created programmingExercise") - .delete("${new_programmingExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ProgrammingExerciseTestCaseGatlingTest.scala b/src/test/gatling/user-files/simulations/ProgrammingExerciseTestCaseGatlingTest.scala deleted file mode 100644 index cf52be534615..000000000000 --- a/src/test/gatling/user-files/simulations/ProgrammingExerciseTestCaseGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ProgrammingExerciseTestCase entity. - */ -class ProgrammingExerciseTestCaseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseURL(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ProgrammingExerciseTestCase entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJSON - .check(header.get("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all programmingExerciseTestCases") - .get("/api/programming-exercise-test-cases") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new programmingExerciseTestCase") - .post("/api/programming-exercise-test-cases") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "testName":"SAMPLE_TEXT" - , "weight":"0" - , "active":null - }""")).asJSON - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_programmingExerciseTestCase_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created programmingExerciseTestCase") - .get("${new_programmingExerciseTestCase_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created programmingExerciseTestCase") - .delete("${new_programmingExerciseTestCase_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) over (Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ProgrammingSubmissionGatlingTest.scala b/src/test/gatling/user-files/simulations/ProgrammingSubmissionGatlingTest.scala deleted file mode 100644 index 7cafcb860269..000000000000 --- a/src/test/gatling/user-files/simulations/ProgrammingSubmissionGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ProgrammingSubmission entity. - */ -class ProgrammingSubmissionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ProgrammingSubmission entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all programmingSubmissions") - .get("/api/programming-submissions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new programmingSubmission") - .post("/api/programming-submissions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "commitHash":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_programmingSubmission_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created programmingSubmission") - .get("${new_programmingSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created programmingSubmission") - .delete("${new_programmingSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/QuestionGatlingTest.scala b/src/test/gatling/user-files/simulations/QuestionGatlingTest.scala deleted file mode 100644 index 93e10d9aa475..000000000000 --- a/src/test/gatling/user-files/simulations/QuestionGatlingTest.scala +++ /dev/null @@ -1,104 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the Question entity. - */ -class QuestionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the Question entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all questions") - .get("/api/questions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new question") - .post("/api/questions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "title":"SAMPLE_TEXT" - , "text":"SAMPLE_TEXT" - , "hint":"SAMPLE_TEXT" - , "explanation":"SAMPLE_TEXT" - , "score":"0" - , "scoringType":"ALL_OR_NOTHING" - , "randomizeOrder":null - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_question_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created question") - .get("${new_question_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created question") - .delete("${new_question_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/QuestionStatisticGatlingTest.scala b/src/test/gatling/user-files/simulations/QuestionStatisticGatlingTest.scala deleted file mode 100644 index 21710d99073d..000000000000 --- a/src/test/gatling/user-files/simulations/QuestionStatisticGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the QuizQuestionStatistic entity. - */ -class QuestionStatisticGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the QuizQuestionStatistic entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all questionStatistics") - .get("/api/question-statistics") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new questionStatistic") - .post("/api/question-statistics") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "ratedCorrectCounter":"0" - , "unRatedCorrectCounter":"0" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_questionStatistic_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created questionStatistic") - .get("${new_questionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created questionStatistic") - .delete("${new_questionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/QuizExerciseGatlingTest.scala b/src/test/gatling/user-files/simulations/QuizExerciseGatlingTest.scala deleted file mode 100644 index 50b51d19e2fa..000000000000 --- a/src/test/gatling/user-files/simulations/QuizExerciseGatlingTest.scala +++ /dev/null @@ -1,104 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the QuizExercise entity. - */ -class QuizExerciseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the QuizExercise entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all quizExercises") - .get("/api/quiz-exercises") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new quizExercise") - .post("/api/quiz-exercises") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "description":"SAMPLE_TEXT" - , "explanation":"SAMPLE_TEXT" - , "randomizeQuestionOrder":null - , "allowedNumberOfAttempts":"0" - , "isVisibleBeforeStart":null - , "isOpenForPractice":null - , "isPlannedToStart":null - , "duration":"0" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_quizExercise_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created quizExercise") - .get("${new_quizExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created quizExercise") - .delete("${new_quizExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/QuizPointStatisticGatlingTest.scala b/src/test/gatling/user-files/simulations/QuizPointStatisticGatlingTest.scala deleted file mode 100644 index f58daa55ae7b..000000000000 --- a/src/test/gatling/user-files/simulations/QuizPointStatisticGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the QuizPointStatistic entity. - */ -class QuizPointStatisticGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the QuizPointStatistic entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all quizPointStatistics") - .get("/api/quiz-point-statistics") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new quizPointStatistic") - .post("/api/quiz-point-statistics") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_quizPointStatistic_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created quizPointStatistic") - .get("${new_quizPointStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created quizPointStatistic") - .delete("${new_quizPointStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/QuizSubmissionGatlingTest.scala b/src/test/gatling/user-files/simulations/QuizSubmissionGatlingTest.scala deleted file mode 100644 index 0d26fc0d9db7..000000000000 --- a/src/test/gatling/user-files/simulations/QuizSubmissionGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the QuizSubmission entity. - */ -class QuizSubmissionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the QuizSubmission entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all quizSubmissions") - .get("/api/quiz-submissions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new quizSubmission") - .post("/api/quiz-submissions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "scoreInPoints":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_quizSubmission_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created quizSubmission") - .get("${new_quizSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created quizSubmission") - .delete("${new_quizSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerMappingGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerMappingGatlingTest.scala deleted file mode 100644 index ce11c7ae295b..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerMappingGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerMapping entity. - */ -class ShortAnswerMappingGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerMapping entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerMappings") - .get("/api/short-answer-mappings") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerMapping") - .post("/api/short-answer-mappings") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "shortAnswerSpotIndex":"0" - , "shortAnswerSolutionIndex":"0" - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerMapping_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerMapping") - .get("${new_shortAnswerMapping_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerMapping") - .delete("${new_shortAnswerMapping_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerQuestionGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerQuestionGatlingTest.scala deleted file mode 100644 index 1d5820c9c289..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerQuestionGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerQuestion entity. - */ -class ShortAnswerQuestionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerQuestion entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerQuestions") - .get("/api/short-answer-questions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerQuestion") - .post("/api/short-answer-questions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerQuestion_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerQuestion") - .get("${new_shortAnswerQuestion_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerQuestion") - .delete("${new_shortAnswerQuestion_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerQuestionStatisticGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerQuestionStatisticGatlingTest.scala deleted file mode 100644 index 921b2d7de247..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerQuestionStatisticGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerQuestionStatistic entity. - */ -class ShortAnswerQuestionStatisticGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerQuestionStatistic entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerQuestionStatistics") - .get("/api/short-answer-question-statistics") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerQuestionStatistic") - .post("/api/short-answer-question-statistics") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerQuestionStatistic_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerQuestionStatistic") - .get("${new_shortAnswerQuestionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerQuestionStatistic") - .delete("${new_shortAnswerQuestionStatistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerSolutionGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerSolutionGatlingTest.scala deleted file mode 100644 index 1de14f1023f7..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerSolutionGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerSolution entity. - */ -class ShortAnswerSolutionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerSolution entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerSolutions") - .get("/api/short-answer-solutions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerSolution") - .post("/api/short-answer-solutions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "text":"SAMPLE_TEXT" - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerSolution_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerSolution") - .get("${new_shortAnswerSolution_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerSolution") - .delete("${new_shortAnswerSolution_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerSpotCounterGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerSpotCounterGatlingTest.scala deleted file mode 100644 index 545dbf71f6d8..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerSpotCounterGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerSpotCounter entity. - */ -class ShortAnswerSpotCounterGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerSpotCounter entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerSpotCounters") - .get("/api/short-answer-spot-counters") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerSpotCounter") - .post("/api/short-answer-spot-counters") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerSpotCounter_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerSpotCounter") - .get("${new_shortAnswerSpotCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerSpotCounter") - .delete("${new_shortAnswerSpotCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerSpotGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerSpotGatlingTest.scala deleted file mode 100644 index c67a0fe32d78..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerSpotGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerSpot entity. - */ -class ShortAnswerSpotGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerSpot entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerSpots") - .get("/api/short-answer-spots") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerSpot") - .post("/api/short-answer-spots") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "width":"0" - , "invalid":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerSpot_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerSpot") - .get("${new_shortAnswerSpot_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerSpot") - .delete("${new_shortAnswerSpot_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerSubmittedAnswerGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerSubmittedAnswerGatlingTest.scala deleted file mode 100644 index a83a614d2579..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerSubmittedAnswerGatlingTest.scala +++ /dev/null @@ -1,96 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerSubmittedAnswer entity. - */ -class ShortAnswerSubmittedAnswerGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerSubmittedAnswer entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerSubmittedAnswers") - .get("/api/short-answer-submitted-answers") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerSubmittedAnswer") - .post("/api/short-answer-submitted-answers") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerSubmittedAnswer_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerSubmittedAnswer") - .get("${new_shortAnswerSubmittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerSubmittedAnswer") - .delete("${new_shortAnswerSubmittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/ShortAnswerSubmittedTextGatlingTest.scala b/src/test/gatling/user-files/simulations/ShortAnswerSubmittedTextGatlingTest.scala deleted file mode 100644 index d8e0f33ac7ec..000000000000 --- a/src/test/gatling/user-files/simulations/ShortAnswerSubmittedTextGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the ShortAnswerSubmittedText entity. - */ -class ShortAnswerSubmittedTextGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the ShortAnswerSubmittedText entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all shortAnswerSubmittedTexts") - .get("/api/short-answer-submitted-texts") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new shortAnswerSubmittedText") - .post("/api/short-answer-submitted-texts") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "text":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_shortAnswerSubmittedText_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created shortAnswerSubmittedText") - .get("${new_shortAnswerSubmittedText_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created shortAnswerSubmittedText") - .delete("${new_shortAnswerSubmittedText_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/StatisticCounterGatlingTest.scala b/src/test/gatling/user-files/simulations/StatisticCounterGatlingTest.scala deleted file mode 100644 index 0f166231756e..000000000000 --- a/src/test/gatling/user-files/simulations/StatisticCounterGatlingTest.scala +++ /dev/null @@ -1,98 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the QuizStatisticCounter entity. - */ -class StatisticCounterGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the QuizStatisticCounter entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all statisticCounters") - .get("/api/statistic-counters") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new statisticCounter") - .post("/api/statistic-counters") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "ratedCounter":"0" - , "unRatedCounter":"0" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_statisticCounter_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created statisticCounter") - .get("${new_statisticCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created statisticCounter") - .delete("${new_statisticCounter_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/StatisticGatlingTest.scala b/src/test/gatling/user-files/simulations/StatisticGatlingTest.scala deleted file mode 100644 index 3efaeed2c5e7..000000000000 --- a/src/test/gatling/user-files/simulations/StatisticGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the QuizStatistic entity. - */ -class StatisticGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the QuizStatistic entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all statistics") - .get("/api/statistics") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new statistic") - .post("/api/statistics") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "released":null - , "participantsRated":"0" - , "participantsUnrated":"0" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_statistic_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created statistic") - .get("${new_statistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created statistic") - .delete("${new_statistic_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/SubmissionGatlingTest.scala b/src/test/gatling/user-files/simulations/SubmissionGatlingTest.scala deleted file mode 100644 index f3d1ed3d528f..000000000000 --- a/src/test/gatling/user-files/simulations/SubmissionGatlingTest.scala +++ /dev/null @@ -1,99 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the Submission entity. - */ -class SubmissionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the Submission entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all submissions") - .get("/api/submissions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new submission") - .post("/api/submissions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "submitted":null - , "submissionDate":"2020-01-01T00:00:00.000Z" - , "type":"MANUAL" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_submission_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created submission") - .get("${new_submission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created submission") - .delete("${new_submission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/SubmittedAnswerGatlingTest.scala b/src/test/gatling/user-files/simulations/SubmittedAnswerGatlingTest.scala deleted file mode 100644 index 6cf4b6cbaaa3..000000000000 --- a/src/test/gatling/user-files/simulations/SubmittedAnswerGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the SubmittedAnswer entity. - */ -class SubmittedAnswerGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the SubmittedAnswer entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all submittedAnswers") - .get("/api/submitted-answers") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new submittedAnswer") - .post("/api/submitted-answers") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "scoreInPoints":null - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_submittedAnswer_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created submittedAnswer") - .get("${new_submittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created submittedAnswer") - .delete("${new_submittedAnswer_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/TextExerciseGatlingTest.scala b/src/test/gatling/user-files/simulations/TextExerciseGatlingTest.scala deleted file mode 100644 index 285e53902f56..000000000000 --- a/src/test/gatling/user-files/simulations/TextExerciseGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the TextExercise entity. - */ -class TextExerciseGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the TextExercise entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all textExercises") - .get("/api/text-exercises") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new textExercise") - .post("/api/text-exercises") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "exampleSolution":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_textExercise_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created textExercise") - .get("${new_textExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created textExercise") - .delete("${new_textExercise_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/gatling/user-files/simulations/TextSubmissionGatlingTest.scala b/src/test/gatling/user-files/simulations/TextSubmissionGatlingTest.scala deleted file mode 100644 index 53d244177332..000000000000 --- a/src/test/gatling/user-files/simulations/TextSubmissionGatlingTest.scala +++ /dev/null @@ -1,97 +0,0 @@ -import _root_.io.gatling.core.scenario.Simulation -import ch.qos.logback.classic.{Level, LoggerContext} -import io.gatling.core.Predef._ -import io.gatling.http.Predef._ -import org.slf4j.LoggerFactory - -import scala.concurrent.duration._ - -/** - * Performance test for the TextSubmission entity. - */ -class TextSubmissionGatlingTest extends Simulation { - - val context: LoggerContext = LoggerFactory.getILoggerFactory.asInstanceOf[LoggerContext] - // Log all HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("TRACE")) - // Log failed HTTP requests - //context.getLogger("io.gatling.http").setLevel(Level.valueOf("DEBUG")) - - val baseURL = Option(System.getProperty("baseURL")) getOrElse """http://localhost:8080""" - - val httpConf = http - .baseUrl(baseURL) - .inferHtmlResources() - .acceptHeader("*/*") - .acceptEncodingHeader("gzip, deflate") - .acceptLanguageHeader("fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3") - .connectionHeader("keep-alive") - .userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0") - .silentResources // Silence all resources like css or css so they don't clutter the results - - val headers_http = Map( - "Accept" -> """application/json""" - ) - - val headers_http_authentication = Map( - "Content-Type" -> """application/json""", - "Accept" -> """application/json""" - ) - - val headers_http_authenticated = Map( - "Accept" -> """application/json""", - "Authorization" -> "${access_token}" - ) - - val scn = scenario("Test the TextSubmission entity") - .exec(http("First unauthenticated request") - .get("/api/public/account") - .headers(headers_http) - .check(status.is(401)) - ).exitHereIfFailed - .pause(10) - .exec(http("Authentication") - .post("/api/public/authenticate") - .headers(headers_http_authentication) - .body(StringBody("""{"username":"admin", "password":"admin"}""")).asJson - .check(header("Authorization").saveAs("access_token"))).exitHereIfFailed - .pause(2) - .exec(http("Authenticated request") - .get("/api/public/account") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10) - .repeat(2) { - exec(http("Get all textSubmissions") - .get("/api/text-submissions") - .headers(headers_http_authenticated) - .check(status.is(200))) - .pause(10 seconds, 20 seconds) - .exec(http("Create new textSubmission") - .post("/api/text-submissions") - .headers(headers_http_authenticated) - .body(StringBody("""{ - "id":null - , "text":"SAMPLE_TEXT" - }""")).asJson - .check(status.is(201)) - .check(headerRegex("Location", "(.*)").saveAs("new_textSubmission_url"))).exitHereIfFailed - .pause(10) - .repeat(5) { - exec(http("Get created textSubmission") - .get("${new_textSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - .exec(http("Delete created textSubmission") - .delete("${new_textSubmission_url}") - .headers(headers_http_authenticated)) - .pause(10) - } - - val users = scenario("Users").exec(scn) - - setUp( - users.inject(rampUsers(Integer.getInteger("users", 100)) during(Integer.getInteger("ramp", 1) minutes)) - ).protocols(httpConf) -} diff --git a/src/test/k6/CodeEditor.js b/src/test/k6/CodeEditor.js deleted file mode 100644 index b80b972b7dd1..000000000000 --- a/src/test/k6/CodeEditor.js +++ /dev/null @@ -1,79 +0,0 @@ -import { login } from './requests/requests.js'; -import { group, sleep } from 'k6'; -import { deleteCourse, newCourse } from './requests/course.js'; -import { createExercise, ParticipationSimulation, simulateSubmission, TestResult } from './requests/programmingExercise.js'; -import { buildErrorContentJava } from './resource/constants_java.js'; -import { startExercise, deleteExercise } from './requests/exercises.js'; -// Version: 1.1 -// Creator: Firefox -// Browser: Firefox - -export let options = { - maxRedirects: 0, - iterations: __ENV.ITERATIONS, - vus: __ENV.ITERATIONS, - rps: 5, -}; - -const adminUsername = __ENV.ADMIN_USERNAME; -const adminPassword = __ENV.ADMIN_PASSWORD; -let baseUsername = __ENV.BASE_USERNAME; -let basePassword = __ENV.BASE_PASSWORD; -// Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests -const userIdOffset = 99; - -export function setup() { - // Create course as admin - const artemisAdmin = login(adminUsername, adminPassword); - const courseId = newCourse(artemisAdmin).id; - - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - - // Login to Artemis - const artemisInstructor = login(instructorUsername, instructorPassword); - - // Create new exercise - const exerciseId = createExercise(artemisInstructor, courseId); - - return { exerciseId: exerciseId, courseId: courseId }; -} - -export default function (data) { - const websocketConnectionTime = parseFloat(__ENV.TIMEOUT_PARTICIPATION); // Time in seconds the websocket is kept open, if set to 0 no websocket connection is estahblished - - // Delay so that not all users start at the same time, batches of 3 users per second - const delay = Math.floor(__VU / 3); - sleep(delay); - - group('Artemis Programming Exercise Participation Loadtest', function () { - // The user is randomly selected - const userId = __VU + userIdOffset; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - const artemis = login(currentUsername, currentPassword); - - // Start exercise - const participationId = startExercise(artemis, data.exerciseId); - - // Initiate websocket connection if connection time is set to value greater than 0 - if (websocketConnectionTime > 0) { - if (participationId) { - const simulation = new ParticipationSimulation(websocketConnectionTime, data.exerciseId, participationId, buildErrorContentJava); - simulateSubmission(artemis, simulation, TestResult.BUILD_ERROR); - } - sleep(websocketConnectionTime - delay); - } - }); - - return data; -} - -export function teardown(data) { - const artemis = login(adminUsername, adminPassword); - const courseId = data.courseId; - const exerciseId = data.exerciseId; - - deleteExercise(artemis, exerciseId); - deleteCourse(artemis, courseId); -} diff --git a/src/test/k6/ExamAPIs.js b/src/test/k6/ExamAPIs.js deleted file mode 100644 index 0dc08a3f2bda..000000000000 --- a/src/test/k6/ExamAPIs.js +++ /dev/null @@ -1,263 +0,0 @@ -import { login } from './requests/requests.js'; -import { group, sleep } from 'k6'; -import { newCourse, deleteCourse, addUserToInstructorsInCourse } from './requests/course.js'; -import { createUsersIfNeeded } from './requests/user.js'; -import { createQuizExercise, submitRandomAnswerRESTExam } from './requests/quiz.js'; -import { - newExam, - newExerciseGroup, - addUserToStudentsInExam, - generateExams, - startExercises, - getExamForUser, - getStudentExams, - updateWorkingTime, - evaluateQuizzes, - startStudentExamForUser, - submitExam, -} from './requests/exam.js'; -import { submitRandomTextAnswerExam, newTextExercise } from './requests/text.js'; -import { newModelingExercise, submitRandomModelingAnswerExam } from './requests/modeling.js'; -import { createProgrammingExercise, ParticipationSimulation, simulateSubmission, TestResult } from './requests/programmingExercise.js'; -import { someSuccessfulErrorContentJava, allSuccessfulContentJava, buildErrorContentJava } from './resource/constants_java.js'; - -// Version: 1.1 -// Creator: Firefox -// Browser: Firefox - -export let options = { - maxRedirects: 0, - iterations: __ENV.ITERATIONS, - vus: __ENV.ITERATIONS, - rps: 5, - setupTimeout: '480s', - teardownTimeout: '240s', -}; - -const adminUsername = __ENV.ADMIN_USERNAME; -const adminPassword = __ENV.ADMIN_PASSWORD; -let baseUsername = __ENV.BASE_USERNAME; -let basePassword = __ENV.BASE_PASSWORD; -let userOffset = parseInt(__ENV.USER_OFFSET); -const onlyPrepare = __ENV.ONLY_PREPARE === true || __ENV.ONLY_PREPARE === 'true'; -// Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests -const userIdOffset = 99; - -export function setup() { - console.log('__ENV.CREATE_USERS: ' + __ENV.CREATE_USERS); - console.log('__ENV.TIMEOUT_PARTICIPATION: ' + __ENV.TIMEOUT_PARTICIPATION); - console.log('__ENV.TIMEOUT_EXERCISE: ' + __ENV.TIMEOUT_EXERCISE); - console.log('__ENV.ITERATIONS: ' + __ENV.ITERATIONS); - console.log('__ENV.USER_OFFSET: ' + __ENV.USER_OFFSET); - console.log('__ENV.ONLY_PREPARE: ' + onlyPrepare); - - const iterations = parseInt(__ENV.ITERATIONS); - - if (parseInt(__ENV.COURSE_ID) === 0 || parseInt(__ENV.EXERCISE_ID) === 0) { - console.log('Creating new course and exercise as no parameters are given'); - - // Create course - const artemisAdmin = login(adminUsername, adminPassword); - - const course = newCourse(artemisAdmin); - - createUsersIfNeeded(artemisAdmin, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset); - - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - - addUserToInstructorsInCourse(artemisAdmin, instructorUsername, course.id); - - // Login to Artemis - const artemis = login(instructorUsername, instructorPassword); - - // it might be necessary that the newly created groups or accounts are synced with the version control and continuous integration servers, so we wait for 1 minute - const timeoutExercise = parseFloat(__ENV.TIMEOUT_EXERCISE); - if (timeoutExercise > 0) { - console.log('Wait ' + timeoutExercise + 's before creating the exam so that the setup can finish properly'); - sleep(timeoutExercise); - } - - // Create new exam - const exam = newExam(artemis, course); - - const exerciseGroup1 = newExerciseGroup(artemis, exam); - const exerciseGroup2 = newExerciseGroup(artemis, exam); - const exerciseGroup3 = newExerciseGroup(artemis, exam); - const exerciseGroup4 = newExerciseGroup(artemis, exam); - - newTextExercise(artemis, exerciseGroup1); - - createQuizExercise(artemis, undefined, exerciseGroup2, false, false); - - newModelingExercise(artemis, exerciseGroup3); - - createProgrammingExercise(artemis, undefined, exerciseGroup4, 'JAVA', false); - - for (let i = 1 + userIdOffset; i <= iterations + userIdOffset; i++) { - addUserToStudentsInExam(artemis, baseUsername.replace('USERID', i + userOffset), exam); - } - - generateExams(artemis, exam); - - const studentExams = getStudentExams(artemis, exam); - - for (let index in studentExams) { - if (index % 10 === 0) { - const studentExam = studentExams[index]; - updateWorkingTime(artemis, exam, studentExam, 180); - } - } - - if (onlyPrepare) { - return; - } - - startExercises(artemis, exam); - - sleep(2); - - return { courseId: exam.course.id, examId: exam.id }; - } else { - console.log('Using existing course and exercise'); - return { examId: parseInt(__ENV.EXERCISE_ID), courseId: parseInt(__ENV.COURSE_ID) }; - } -} - -export default function (data) { - if (onlyPrepare) { - return; - } - const websocketConnectionTime = parseFloat(__ENV.TIMEOUT_PARTICIPATION); // Time in seconds the websocket is kept open, if set to 0 no websocket connection is estahblished - - // Delay so that not all users start at the same time, batches of 50 users per second - const delay = Math.floor(__VU / 50); - sleep(delay); - - group('Artemis Exam Stresstest', function () { - const userId = parseInt(__VU) + userOffset + userIdOffset; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - const artemis = login(currentUsername, currentPassword); - - sleep(30); - - const studentExamId = startStudentExamForUser(artemis, data.courseId, data.examId).id; - - const studentExam = getExamForUser(artemis, data.courseId, data.examId, studentExamId); - - console.log(studentExam.exam.startDate); - const parsedStartDate = new Date(Date.parse(studentExam.exam.startDate)); - - console.log(parsedStartDate); - - const currentTime = Date.now(); - const differenceInMilliSeconds = parsedStartDate - currentTime; - const timeUntilExamStart = differenceInMilliSeconds / 1000; - - console.log(`Waiting ${timeUntilExamStart}s for exam start`); - - const workingTime = studentExam.workingTime; - const individualEndDate = new Date(parsedStartDate.getTime() + workingTime * 1000); - - artemis.websocket(function (socket) { - socket.setInterval(function timeout() { - socket.close(); - }, individualEndDate.getTime() - Date.now()); - - socket.setTimeout(function timeout() { - console.log('Sleeping now'); - - sleep(1 + timeUntilExamStart); - - console.log('Individual end date: ' + individualEndDate.toISOString()); - - console.log('Remaining: ' + (individualEndDate.getTime() - Date.now())); - - let programmingSubmissionCounter = 0; - endDateLoop: while (true) { - let submissions, submissionId; - for (const exercise of studentExam.exercises) { - if (individualEndDate.getTime() - Date.now() < 5000) { - console.log(`End date is reached`); - break endDateLoop; - } - console.log(`Exercise is of type ${exercise.type}`); - let studentParticipations = exercise.studentParticipations; - - switch (exercise.type) { - case 'quiz': - submissions = studentParticipations[0].submissions; - submissionId = submissions[0].id; - submissions[0] = submitRandomAnswerRESTExam(artemis, exercise, 10, submissionId); - break; - - case 'text': - submissions = studentParticipations[0].submissions; - submissionId = submissions[0].id; - submissions[0] = submitRandomTextAnswerExam(artemis, exercise, submissionId); - break; - - case 'modeling': - submissions = studentParticipations[0].submissions; - submissionId = submissions[0].id; - submissions[0] = submitRandomModelingAnswerExam(artemis, exercise, submissionId); - break; - - case 'programming': - console.log('Programming submission counter is ' + programmingSubmissionCounter); - if (programmingSubmissionCounter === 0) { - let simulation = new ParticipationSimulation( - websocketConnectionTime, - exercise.id, - studentParticipations[0].id, - someSuccessfulErrorContentJava(false), - ); - simulateSubmission(artemis, simulation, TestResult.FAIL, '2 of 13 passed'); - } else if (programmingSubmissionCounter === 1) { - let simulation = new ParticipationSimulation(websocketConnectionTime, exercise.id, studentParticipations[0].id, allSuccessfulContentJava); - simulateSubmission(artemis, simulation, TestResult.SUCCESS); - } else if (programmingSubmissionCounter >= 2) { - let simulation = new ParticipationSimulation(websocketConnectionTime, exercise.id, studentParticipations[0].id, buildErrorContentJava); - simulateSubmission(artemis, simulation, TestResult.BUILD_ERROR); - } - programmingSubmissionCounter++; - sleep(40); - break; - } - sleep(10); - } - } - - studentExam.started = true; - console.log('Submitting exam: ' + JSON.stringify(studentExam)); - submitExam(artemis, data.courseId, data.examId, studentExam); - }, 1000); - }); - - // console.log('Received EXAM ' + JSON.stringify(studentExam) + ' for user ' + baseUsername.replace('USERID', userId)); - }); - - return data; -} - -export function teardown(data) { - if (onlyPrepare) { - return; - } - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - - const artemis = login(instructorUsername, instructorPassword); - - sleep(5); - evaluateQuizzes(artemis, data.courseId, data.examId); - - const shouldCleanup = __ENV.CLEANUP === true || __ENV.CLEANUP === 'true'; - if (shouldCleanup) { - const artemis = login(adminUsername, adminPassword); - const courseId = data.courseId; - - deleteCourse(artemis, courseId); - } -} diff --git a/src/test/k6/ModelingExerciseAPIs.js b/src/test/k6/ModelingExerciseAPIs.js deleted file mode 100644 index ed84b545d2a7..000000000000 --- a/src/test/k6/ModelingExerciseAPIs.js +++ /dev/null @@ -1,164 +0,0 @@ -import { group, sleep } from 'k6'; -import { addUserToInstructorsInCourse, deleteCourse, newCourse } from './requests/course.js'; -import { assessModelingSubmission, newModelingExercise, submitRandomModelingAnswerExam, updateModelingExerciseDueDate } from './requests/modeling.js'; -import { startExercise, getExercise, startTutorParticipation, deleteExercise, getAndLockSubmission } from './requests/exercises.js'; -import { login } from './requests/requests.js'; -import { createUsersIfNeeded } from './requests/user.js'; -import { MODELING_EXERCISE, MODELING_SUBMISSION_WITHOUT_ASSESSMENT } from './requests/endpoints.js'; - -// Version: 1.1 -// Creator: Firefox -// Browser: Firefox - -export let options = { - maxRedirects: 0, - iterations: __ENV.ITERATIONS, - vus: __ENV.ITERATIONS, - rps: 5, - setupTimeout: '480s', - teardownTimeout: '240s', -}; - -const adminUsername = __ENV.ADMIN_USERNAME; -const adminPassword = __ENV.ADMIN_PASSWORD; -let baseUsername = __ENV.BASE_USERNAME; -let basePassword = __ENV.BASE_PASSWORD; -let userOffset = parseInt(__ENV.USER_OFFSET); -const onlyPrepare = __ENV.ONLY_PREPARE === true || __ENV.ONLY_PREPARE === 'true'; -// Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests -const userIdOffset = 99; - -export function setup() { - console.log('__ENV.CREATE_USERS: ' + __ENV.CREATE_USERS); - console.log('__ENV.TIMEOUT_PARTICIPATION: ' + __ENV.TIMEOUT_PARTICIPATION); - console.log('__ENV.TIMEOUT_EXERCISE: ' + __ENV.TIMEOUT_EXERCISE); - console.log('__ENV.ITERATIONS: ' + __ENV.ITERATIONS); - console.log('__ENV.USER_OFFSET: ' + __ENV.USER_OFFSET); - console.log('__ENV.ONLY_PREPARE: ' + onlyPrepare); - - let courseId; - let exerciseId; - let artemis; - let exercise; - const iterations = parseInt(__ENV.ITERATIONS); - // Create course - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - if (parseInt(__ENV.COURSE_ID) === 0 || parseInt(__ENV.EXERCISE_ID) === 0) { - console.log('Creating new exercise as no parameters are given'); - - // Create course - const artemisAdmin = login(adminUsername, adminPassword); - - const course = newCourse(artemisAdmin); - courseId = course.id; - console.log('Create users with ids starting from ' + userOffset + ' and up to ' + (userOffset + iterations)); - createUsersIfNeeded(artemisAdmin, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset); - console.log('Create users with ids starting from ' + (userOffset + iterations) + ' and up to ' + (userOffset + iterations + iterations)); - createUsersIfNeeded(artemisAdmin, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset + iterations, true); - - console.log('Assigning ' + instructorUsername + 'to course ' + course.id + ' as the instructor'); - addUserToInstructorsInCourse(artemisAdmin, instructorUsername, course.id); - - // Login to Artemis - artemis = login(instructorUsername, instructorPassword); - - // it might be necessary that the newly created groups or accounts are synced with the version control and continuous integration servers, so we wait for 1 minute - const timeoutExercise = parseFloat(__ENV.TIMEOUT_EXERCISE); - if (timeoutExercise > 0) { - console.log('Wait ' + timeoutExercise + 's before creating the exam so that the setup can finish properly'); - sleep(timeoutExercise); - } - - // Create new exercise - exercise = newModelingExercise(artemis, undefined, course.id); - exerciseId = exercise.id; - console.log('Created exercise with id ' + exerciseId); - - sleep(2); - } else { - exerciseId = parseInt(__ENV.EXERCISE_ID); - courseId = parseInt(__ENV.COURSE_ID); - artemis = login(adminUsername, adminPassword); - - console.log('Getting exercise'); - exercise = getExercise(artemis, exerciseId, MODELING_EXERCISE(exerciseId)); - } - - for (let i = 1 + userIdOffset; i <= iterations + userIdOffset; i++) { - console.log(userOffset); - const userId = parseInt(__VU) + userOffset + i; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - console.log('Logging in as user ' + currentUsername); - artemis = login(currentUsername, currentPassword); - // Delay so that not all users start at the same time, batches of 3 users per second - const delay = Math.floor(__VU / 3); - sleep(delay * 3); - - console.log('Starting exercise ' + exerciseId); - let participation = startExercise(artemis, exerciseId); - if (participation) { - const submissionId = participation.submissions[0].id; - console.log('Submitting submission ' + submissionId); - submitRandomModelingAnswerExam(artemis, exercise, submissionId); - } - sleep(1); - } - - sleep(2); - - // Login to Artemis - artemis = login(instructorUsername, instructorPassword); - - updateModelingExerciseDueDate(artemis, exercise); - - sleep(30); - - console.log('Using existing course ' + courseId + ' and exercise ' + exerciseId); - return { exerciseId, courseId }; -} - -export default function (data) { - // The user id (1, 2, 3) is stored in __VU - const iterations = parseInt(__ENV.ITERATIONS); - const userId = parseInt(__VU) + userOffset + iterations + userIdOffset; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - - console.log('Logging in as user ' + currentUsername); - const artemis = login(currentUsername, currentPassword); - const exerciseId = data.exerciseId; - - // Delay so that not all users start at the same time, batches of 3 users per second - const delay = Math.floor(__VU / 3); - sleep(delay * 3); - - group('Assess modeling submissions', function () { - console.log('Start participation for tutor ' + currentUsername); - let participation = startTutorParticipation(artemis, exerciseId); - if (participation) { - console.log('Get and lock modeling submission for tutor ' + userId + ' and exercise'); - const submission = getAndLockSubmission(artemis, exerciseId, MODELING_SUBMISSION_WITHOUT_ASSESSMENT(exerciseId)); - const submissionId = submission.id; - console.log('Assess modeling submission ' + submissionId); - console.log('Result before manual assessment ' + JSON.stringify(submission.results[0])); - assessModelingSubmission(artemis, submissionId, submission.results[0].id); - } - sleep(1); - }); - - return data; -} - -export function teardown(data) { - const shouldCleanup = __ENV.CLEANUP === true || __ENV.CLEANUP === 'true'; - if (shouldCleanup) { - const artemis = login(adminUsername, adminPassword); - const courseId = data.courseId; - const exerciseId = data.exerciseId; - - deleteExercise(artemis, exerciseId, MODELING_EXERCISE(exerciseId)); - deleteCourse(artemis, courseId); - } -} diff --git a/src/test/k6/ProgrammingExerciseAPIs.js b/src/test/k6/ProgrammingExerciseAPIs.js deleted file mode 100644 index 162d280b8c9b..000000000000 --- a/src/test/k6/ProgrammingExerciseAPIs.js +++ /dev/null @@ -1,164 +0,0 @@ -import { group, sleep } from 'k6'; -import { login } from './requests/requests.js'; -import { - createProgrammingExercise, - configureScaCategories, - getScaCategories, - simulateSubmission, - ParticipationSimulation, - TestResult, - deleteProgrammingExercise, -} from './requests/programmingExercise.js'; -import { startExercise } from './requests/exercises.js'; -import { addUserToInstructorsInCourse, deleteCourse, newCourse } from './requests/course.js'; -import { createUsersIfNeeded } from './requests/user.js'; -import { allSuccessfulContentJava, buildErrorContentJava, someSuccessfulErrorContentJava } from './resource/constants_java.js'; -import { allSuccessfulContentPython, buildErrorContentPython, someSuccessfulErrorContentPython } from './resource/constants_python.js'; -import { allSuccessfulContentC, buildErrorContentC, someSuccessfulErrorContentC } from './resource/constants_c.js'; - -export const options = { - maxRedirects: 0, - iterations: __ENV.ITERATIONS, - vus: __ENV.ITERATIONS, - rps: 4, - setupTimeout: '240s', - teardownTimeout: '240s', -}; - -const adminUsername = __ENV.ADMIN_USERNAME; -const adminPassword = __ENV.ADMIN_PASSWORD; -const baseUsername = __ENV.BASE_USERNAME; -const basePassword = __ENV.BASE_PASSWORD; -const userOffset = parseInt(__ENV.USER_OFFSET); -const programmingLanguage = __ENV.PROGRAMMING_LANGUAGE; -const enableSCA = __ENV.ENABLE_SCA === 'true'; -// Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests -const userIdOffset = 99; - -export function setup() { - console.log('__ENV.CREATE_USERS: ' + __ENV.CREATE_USERS); - console.log('__ENV.TIMEOUT_PARTICIPATION: ' + __ENV.TIMEOUT_PARTICIPATION); - console.log('__ENV.TIMEOUT_EXERCISE: ' + __ENV.TIMEOUT_EXERCISE); - console.log('__ENV.ITERATIONS: ' + __ENV.ITERATIONS); - - let artemis, exerciseId, course; - - if (parseInt(__ENV.COURSE_ID) === 0 || parseInt(__ENV.EXERCISE_ID) === 0) { - console.log('Creating new course and exercise as no parameters are given'); - - // Create course - artemis = login(adminUsername, adminPassword); - - course = newCourse(artemis); - - createUsersIfNeeded(artemis, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset); - - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - - addUserToInstructorsInCourse(artemis, instructorUsername, course.id); - - // Login to Artemis - artemis = login(instructorUsername, instructorPassword); - - // it might be necessary that the newly created groups or accounts are synced with the version control and continuous integration servers, so we wait for 1 minute - const timeoutExercise = parseFloat(__ENV.TIMEOUT_EXERCISE); - if (timeoutExercise > 0) { - console.log('Wait ' + timeoutExercise + 's before creating the programming exercise so that the setup can finish properly'); - sleep(timeoutExercise); - } - - // Create new exercise - exerciseId = createProgrammingExercise(artemis, course.id, undefined, programmingLanguage, enableSCA); - - // Wait some time for builds to finish and test results to come in - sleep(20); - - if (enableSCA) { - // Get SCA categories - const scaCategories = getScaCategories(artemis, exerciseId, programmingLanguage); - - // Configure SCA categories - configureScaCategories(artemis, exerciseId, scaCategories, programmingLanguage); - sleep(2); - } - - return { exerciseId: exerciseId, courseId: course.id }; - } else { - console.log('Using existing course and exercise'); - return { exerciseId: parseInt(__ENV.EXERCISE_ID), courseId: parseInt(__ENV.COURSE_ID) }; - } -} - -export default function (data) { - // The user id (1, 2, 3) is stored in __VU - const userId = parseInt(__VU) + userOffset + userIdOffset; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - const artemis = login(currentUsername, currentPassword); - const exerciseId = data.exerciseId; - const courseId = data.courseId; - const timeoutParticipation = parseFloat(__ENV.TIMEOUT_PARTICIPATION); - - // Delay so that not all users start at the same time, batches of 3 users per second - const startTime = new Date().getTime(); - const delay = Math.floor(__VU / 3); - sleep(delay * 3); - - let someSuccessfulErrorContent, allSuccessfulContent, buildErrorContent, somePassedString; - switch (programmingLanguage) { - case 'JAVA': - someSuccessfulErrorContent = someSuccessfulErrorContentJava(enableSCA); - allSuccessfulContent = allSuccessfulContentJava; - buildErrorContent = buildErrorContentJava; - somePassedString = enableSCA ? '3 of 13 passed, 4 issues' : '2 of 13 passed'; - break; - case 'PYTHON': - someSuccessfulErrorContent = someSuccessfulErrorContentPython; - allSuccessfulContent = allSuccessfulContentPython; - buildErrorContent = buildErrorContentPython; - somePassedString = '2 of 13 passed'; - break; - case 'C': - someSuccessfulErrorContent = someSuccessfulErrorContentC; - allSuccessfulContent = allSuccessfulContentC; - buildErrorContent = buildErrorContentC; - somePassedString = '5 of 22 passed'; - break; - } - - group('Participate in Programming Exercise', function () { - let participationId = startExercise(artemis, exerciseId).id; - if (participationId) { - // partial success, then 100%, then build error -- wait some time between submissions in order to the build server time for the result - let simulation = new ParticipationSimulation(timeoutParticipation, exerciseId, participationId, someSuccessfulErrorContent); - simulateSubmission(artemis, simulation, TestResult.FAIL, somePassedString); - simulation = new ParticipationSimulation(timeoutParticipation, exerciseId, participationId, allSuccessfulContent); - simulateSubmission(artemis, simulation, TestResult.SUCCESS); - simulation = new ParticipationSimulation(timeoutParticipation, exerciseId, participationId, buildErrorContent); - if (programmingLanguage === 'C') { - // C builds do never fail - they will only show 0/21 passed - simulateSubmission(artemis, simulation, TestResult.FAIL, '0 of 21 passed'); - } else { - simulateSubmission(artemis, simulation, TestResult.BUILD_ERROR); - } - } - - const delta = (new Date().getTime() - startTime) / 1000; - sleep(timeoutParticipation - delta); - }); - - return data; -} - -export function teardown(data) { - const shouldCleanup = __ENV.CLEANUP === true || __ENV.CLEANUP === 'true'; - if (shouldCleanup) { - const artemis = login(adminUsername, adminPassword); - const courseId = data.courseId; - const exerciseId = data.exerciseId; - - deleteProgrammingExercise(artemis, exerciseId); - deleteCourse(artemis, courseId); - } -} diff --git a/src/test/k6/QuizExerciseAPIs.js b/src/test/k6/QuizExerciseAPIs.js deleted file mode 100644 index 2478e70ae33e..000000000000 --- a/src/test/k6/QuizExerciseAPIs.js +++ /dev/null @@ -1,110 +0,0 @@ -import { login } from './requests/requests.js'; -import { group, sleep } from 'k6'; -import { getQuizQuestions, simulateQuizWork } from './requests/quiz.js'; -import { newCourse, deleteCourse } from './requests/course.js'; -import { createUsersIfNeeded } from './requests/user.js'; -import { createQuizExercise, deleteQuizExercise, waitForQuizStartAndStart } from './requests/quiz.js'; - -// Version: 1.1 -// Creator: Firefox -// Browser: Firefox - -export let options = { - maxRedirects: 0, - iterations: __ENV.ITERATIONS, - vus: __ENV.ITERATIONS, - rps: 5, - setupTimeout: '480s', - teardownTimeout: '240s', -}; - -const adminUsername = __ENV.ADMIN_USERNAME; -const adminPassword = __ENV.ADMIN_PASSWORD; -let baseUsername = __ENV.BASE_USERNAME; -let basePassword = __ENV.BASE_PASSWORD; -let userOffset = parseInt(__ENV.USER_OFFSET); -let waitQuizStart = __ENV.WAIT_QUIZ_START === 'true'; -// Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests -const userIdOffset = 99; - -export function setup() { - console.log('__ENV.CREATE_USERS: ' + __ENV.CREATE_USERS); - console.log('__ENV.TIMEOUT_PARTICIPATION: ' + __ENV.TIMEOUT_PARTICIPATION); - console.log('__ENV.TIMEOUT_EXERCISE: ' + __ENV.TIMEOUT_EXERCISE); - console.log('__ENV.ITERATIONS: ' + __ENV.ITERATIONS); - console.log('__ENV.USER_OFFSET: ' + __ENV.USER_OFFSET); - - let artemis, exerciseId, course, userId; - - if (parseInt(__ENV.COURSE_ID) === 0 || parseInt(__ENV.EXERCISE_ID) === 0) { - console.log('Creating new course and exercise as no parameters are given'); - - // Create course - artemis = login(adminUsername, adminPassword); - - course = newCourse(artemis); - - createUsersIfNeeded(artemis, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset); - - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - - // Login to Artemis - artemis = login(instructorUsername, instructorPassword); - - // it might be necessary that the newly created groups or accounts are synced with the version control and continuous integration servers, so we wait for 1 minute - const timeoutExercise = parseFloat(__ENV.TIMEOUT_EXERCISE); - if (timeoutExercise > 0) { - console.log('Wait ' + timeoutExercise + 's before creating the quiz exercise so that the setup can finish properly'); - sleep(timeoutExercise); - } - - // Create new exercise - exerciseId = createQuizExercise(artemis, course); - - sleep(2); - - return { exerciseId: exerciseId, courseId: course.id }; - } else { - console.log('Using existing course and exercise'); - return { exerciseId: parseInt(__ENV.EXERCISE_ID), courseId: parseInt(__ENV.COURSE_ID) }; - } -} - -export default function (data) { - const websocketConnectionTime = parseFloat(__ENV.TIMEOUT_PARTICIPATION); // Time in seconds the websocket is kept open, if set to 0 no websocket connection is estahblished - - // Delay so that not all users start at the same time, batches of 50 users per second - const delay = Math.floor(__VU / 50); - sleep(delay); - - group('Artemis Quiz Exercise Participation Websocket Stresstest', function () { - const userId = parseInt(__VU) + userOffset + userIdOffset; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - const artemis = login(currentUsername, currentPassword); - - const remainingTime = websocketConnectionTime - delay; - const startTime = new Date().getTime(); - if (waitQuizStart) { - waitForQuizStartAndStart(artemis, data.exerciseId, parseInt(__ENV.TIMEOUT_PARTICIPATION), currentUsername, data.courseId); - } else { - const questions = getQuizQuestions(artemis, data.courseId, data.exerciseId); - simulateQuizWork(artemis, data.exerciseId, questions, parseInt(__ENV.TIMEOUT_PARTICIPATION), currentUsername); - } - }); - - return data; -} - -export function teardown(data) { - const shouldCleanup = __ENV.CLEANUP === true || __ENV.CLEANUP === 'true'; - if (shouldCleanup) { - const artemis = login(adminUsername, adminPassword); - const courseId = data.courseId; - const exerciseId = data.exerciseId; - - deleteQuizExercise(artemis, exerciseId); - deleteCourse(artemis, courseId); - } -} diff --git a/src/test/k6/TextExerciseAPIs.js b/src/test/k6/TextExerciseAPIs.js deleted file mode 100644 index ddb2bcbaeca2..000000000000 --- a/src/test/k6/TextExerciseAPIs.js +++ /dev/null @@ -1,154 +0,0 @@ -import { group, sleep } from 'k6'; -import { addUserToInstructorsInCourse, deleteCourse, newCourse } from './requests/course.js'; -import { startExercise, getExercise, deleteExercise, startTutorParticipation, getAndLockSubmission } from './requests/exercises.js'; -import { assessTextSubmission, newTextExercise, submitRandomTextAnswerExam } from './requests/text.js'; -import { login } from './requests/requests.js'; -import { createUsersIfNeeded } from './requests/user.js'; -import { TEXT_SUBMISSION_WITHOUT_ASSESSMENT, TEXT_EXERCISE } from './requests/endpoints.js'; - -export let options = { - maxRedirects: 0, - iterations: __ENV.ITERATIONS, - vus: __ENV.ITERATIONS, - rps: 5, - setupTimeout: '480s', - teardownTimeout: '240s', -}; - -const adminUsername = __ENV.ADMIN_USERNAME; -const adminPassword = __ENV.ADMIN_PASSWORD; -let baseUsername = __ENV.BASE_USERNAME; -let basePassword = __ENV.BASE_PASSWORD; -let userOffset = parseInt(__ENV.USER_OFFSET); -const onlyPrepare = __ENV.ONLY_PREPARE === true || __ENV.ONLY_PREPARE === 'true'; -// Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests -const userIdOffset = 99; - -export function setup() { - console.log('__ENV.CREATE_USERS: ' + __ENV.CREATE_USERS); - console.log('__ENV.TIMEOUT_PARTICIPATION: ' + __ENV.TIMEOUT_PARTICIPATION); - console.log('__ENV.TIMEOUT_EXERCISE: ' + __ENV.TIMEOUT_EXERCISE); - console.log('__ENV.ITERATIONS: ' + __ENV.ITERATIONS); - console.log('__ENV.USER_OFFSET: ' + __ENV.USER_OFFSET); - console.log('__ENV.ONLY_PREPARE: ' + onlyPrepare); - - let courseId; - let exerciseId; - let artemis; - let exercise; - const iterations = parseInt(__ENV.ITERATIONS); - - if (parseInt(__ENV.COURSE_ID) === 0 || parseInt(__ENV.EXERCISE_ID) === 0) { - console.log('Creating new exercise as no parameters are given'); - - // Create course - const artemisAdmin = login(adminUsername, adminPassword); - - const course = newCourse(artemisAdmin); - courseId = course.id; - console.log('Create users with ids starting from ' + userOffset + ' and up to ' + (userOffset + iterations)); - createUsersIfNeeded(artemisAdmin, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset); - console.log('Create users with ids starting from ' + (userOffset + iterations) + ' and up to ' + (userOffset + iterations + iterations)); - createUsersIfNeeded(artemisAdmin, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset + iterations, true); - - // Create course instructor - const instructorUsername = baseUsername.replace('USERID', '101'); - const instructorPassword = basePassword.replace('USERID', '101'); - - console.log('Assigning ' + instructorUsername + 'to course ' + course.id + ' as the instructor'); - addUserToInstructorsInCourse(artemisAdmin, instructorUsername, course.id); - - // Login to Artemis - artemis = login(instructorUsername, instructorPassword); - - // it might be necessary that the newly created groups or accounts are synced with the version control and continuous integration servers, so we wait for 1 minute - const timeoutExercise = parseFloat(__ENV.TIMEOUT_EXERCISE); - if (timeoutExercise > 0) { - console.log('Wait ' + timeoutExercise + 's before creating the exercise so that the setup can finish properly'); - sleep(timeoutExercise); - } - - // Create new exercise - exercise = newTextExercise(artemis, undefined, course.id); - exerciseId = exercise.id; - console.log('Created text exercise with id ' + exerciseId); - - sleep(2); - } else { - exerciseId = parseInt(__ENV.EXERCISE_ID); - courseId = parseInt(__ENV.COURSE_ID); - artemis = login(adminUsername, adminPassword); - console.log('Getting text exercise'); - exercise = getExercise(artemis, exerciseId, TEXT_EXERCISE(exerciseId)); - } - - for (let i = 1 + userIdOffset; i <= iterations + userIdOffset; i++) { - console.log(userOffset); - const userId = parseInt(__VU) + userOffset + i; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - console.log('Logging in as user ' + currentUsername); - artemis = login(currentUsername, currentPassword); - // Delay so that not all users start at the same time, batches of 3 users per second - const delay = Math.floor(__VU / 3); - sleep(delay * 3); - - console.log('Starting exercise ' + exerciseId); - let participation = startExercise(artemis, exerciseId); - if (participation) { - const submissionId = participation.submissions[0].id; - console.log('Submitting submission ' + submissionId); - submitRandomTextAnswerExam(artemis, exercise, submissionId); - } - sleep(1); - } - - sleep(2); - - console.log('Using existing course ' + courseId + ' and exercise ' + exerciseId); - return { exerciseId, courseId }; -} - -export default function (data) { - // The user id (1, 2, 3) is stored in __VU - const iterations = parseInt(__ENV.ITERATIONS); - const userId = parseInt(__VU) + userOffset + iterations + userIdOffset; - const currentUsername = baseUsername.replace('USERID', userId); - const currentPassword = basePassword.replace('USERID', userId); - - console.log('Logging in as user ' + currentUsername); - const artemis = login(currentUsername, currentPassword); - const exerciseId = data.exerciseId; - - // Delay so that not all users start at the same time, batches of 3 users per second - const delay = Math.floor(__VU / 3); - sleep(delay * 3); - - group('Assess text submissions', function () { - console.log('Start participation for tutor ' + currentUsername); - let participation = startTutorParticipation(artemis, exerciseId); - if (participation) { - console.log('Get and lock text submission for tutor ' + userId + ' and exercise'); - const submission = getAndLockSubmission(artemis, exerciseId, TEXT_SUBMISSION_WITHOUT_ASSESSMENT(exerciseId)); - const submissionId = submission.id; - console.log('Assess text submission ' + submissionId); - console.log('Result before manual assessment ' + JSON.stringify(submission.results[0])); - assessTextSubmission(artemis, exerciseId, submission.results[0].id); - } - sleep(1); - }); - - return data; -} - -export function teardown(data) { - const shouldCleanup = __ENV.CLEANUP === true || __ENV.CLEANUP === 'true'; - if (shouldCleanup) { - const artemis = login(adminUsername, adminPassword); - const courseId = data.courseId; - const exerciseId = data.exerciseId; - - deleteExercise(artemis, exerciseId, TEXT_EXERCISE(exerciseId)); - deleteCourse(artemis, courseId); - } -} diff --git a/src/test/k6/api_tests.sh b/src/test/k6/api_tests.sh deleted file mode 100755 index eb89d175aa23..000000000000 --- a/src/test/k6/api_tests.sh +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env bash - -currentDir=$(pwd) -baseDir=$currentDir/src/test/k6 - -# param parsing -PARAMS="" -while (( "$#" )); do - case "$1" in - -bu|--baseUrl) # URL of the sut - baseUrl=$2 - shift 2 - ;; - -i|--iterations) # How many students should try to participate? - iterations=$2 - shift 2 - ;; - -tp|--timeoutParticipation) # Timeout for participations in seconds - timeoutParticipation=$2 - shift 2 - ;; - -te|--timeoutExercise) # Timeout before creating the exercise in seconds - timeoutExercise=$2 - shift 2 - ;; - -p|--password) # Base password for all test users - basePassword=$2 - shift 2 - ;; - -u|--username) # Base username for all test users - baseUsername=$2 - shift 2 - ;; - -au|--admin-username) - adminUsername=$2 - shift 2 - ;; - -ap|--admin-password) - adminPassword=$2 - shift 2 - ;; - -cu|--createUsers) - createUsers=true - shift 1 - ;; - -cl|--cleanup) - cleanup=true - shift 1 - ;; - --tests) - tests=$2 - shift 2 - ;; - -pl|--programming-language) - programmingLanguage=$2 - shift 2 - ;; - -sca|--staticCodeAnalysis) - enableStaticCodeAnalysis=$2 - shift 2 - ;; - -uo|--user-offset) - userOffset=$2 - shift 2 - ;; - -ci|--course-id) - courseId=$2 - shift 2 - ;; - -ei|--exercise-id) - exerciseId=$2 - shift 2 - ;; - -wqs|--wait-quiz-start) - waitQuizStart=true - shift 1 - ;; - -op|--only-prepare) - onlyPrepare=true - shift 1 - ;; - --) # end argument parsing - shift - break - ;; - -*) # unsupported flags - echo "Error: Unsupported flag $1" >&2 - exit 1 - ;; - *) # preserve positional arguments - PARAMS="$PARAMS $1" - shift - ;; - esac -done -# set positional arguments in their proper place -eval set -- "$PARAMS" - -# Exceptions and defaults -baseUrl=${baseUrl:?You have to specify the base URL} -basePassword=${basePassword:?"You have to specify the test user's base password"} -baseUsername=${baseUsername:?"You have to specify the test user's base username"} -adminUsername=${adminUsername:?"You have to specify the username of one admin"} -adminPassword=${adminPassword:?"You have to specify the password of one admin"} -createUsers=${createUsers:-false} -cleanup=${cleanup:-false} -tests=${tests:?"You have to specify which tests to run"} -iterations=${iterations:-10} -timeoutParticipation=${timeoutParticipation:-60} -timeoutExercise=${timeoutExercise:-10} -programmingLanguage=${programmingLanguage:-"JAVA"} -enableStaticCodeAnalysis=${enableStaticCodeAnalysis:-false} -userOffset=${userOffset:-0} -courseId=${courseId:-0} -exerciseId=${exerciseId:-0} -waitQuizStart=${waitQuizStart:-false} -onlyPrepare=${onlyPrepare:-false} - -echo "################### STARTING API Tests ###################" -result=$(docker run -i --rm --network=host --name api-tests-"$tests"-"$programmingLanguage" -v "$baseDir":/src -e BASE_USERNAME="$baseUsername" -e BASE_URL="$baseUrl" \ - -e BASE_PASSWORD="$basePassword" -e ITERATIONS="$iterations" -e TIMEOUT_PARTICIPATION="$timeoutParticipation" -e CLEANUP="$cleanup" \ - -e ADMIN_USERNAME="$adminUsername" -e ADMIN_PASSWORD="$adminPassword" -e CREATE_USERS="$createUsers" -e TIMEOUT_EXERCISE="$timeoutExercise" \ - -e PROGRAMMING_LANGUAGE="$programmingLanguage" -e ENABLE_SCA="$enableStaticCodeAnalysis" -e USER_OFFSET="$userOffset" -e COURSE_ID="$courseId" -e EXERCISE_ID="$exerciseId" \ - -e WAIT_QUIZ_START="$waitQuizStart" -e ONLY_PREPARE="$onlyPrepare" \ - grafana/k6 run --address localhost:0 /src/"$tests".js 2>&1) - -echo "########## FINISHED testing - evaluating result ##########" -echo "$result" -if echo "$result" | grep -iqF FAILTEST; then - echo "################### ERROR Server API tests failed ###################" - exit 1 -fi - -echo "######### SUCCESS Server API tests finished #########" -exit 0 diff --git a/src/test/k6/requests/course.js b/src/test/k6/requests/course.js deleted file mode 100644 index 9706b871f1b9..000000000000 --- a/src/test/k6/requests/course.js +++ /dev/null @@ -1,96 +0,0 @@ -import { COURSE, COURSES, COURSE_STUDENTS, COURSE_INSTRUCTORS, COURSE_TUTORS, ADMIN_COURSES, ADMIN_COURSE } from './endpoints.js'; -import { nextAlphanumeric } from '../util/utils.js'; -import { fail } from 'k6'; -import http from 'k6/http'; -import { FormData } from 'https://jslib.k6.io/formdata/0.0.2/index.js'; - -export function getCourse(artemis, courseId) { - const res = JSON.parse(artemis.get(COURSE(courseId), null)); - if (res[0].status !== 200) { - console.log('ERROR when getting existing course. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not get course (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Get existing course'); - - return JSON.parse(res[0].body); -} - -export function newCourseShortName(artemis, courseId) { - const course = JSON.parse(artemis.get(COURSE(courseId), null)[0].body); - course.shortName = 'TEST' + nextAlphanumeric(5); - artemis.put(COURSES, course); -} - -export function newCourse(artemis) { - const currentDate = new Date(); - const startDate = new Date(currentDate.getTime() - 2 * 60 * 60 * 1000); // - 2h - const endDate = new Date(currentDate.getTime() + 2 * 60 * 60 * 1000); // + 2h - const course = { - title: 'K6 Test Course', - description: 'K6 performance tests generated course', - shortName: 'testk6' + nextAlphanumeric(5), - registrationEnabled: false, - maxComplaints: 3, - maxComplaintTimeDays: 7, - accuracyOfScores: 1, - startDate: startDate, - endDate: endDate, - }; - - const formData = new FormData(); - formData.append('course', http.file(JSON.stringify(course), 'course', 'application/json')); - - const res = artemis.post(ADMIN_COURSES, undefined, undefined, formData); - if (res[0].status !== 201) { - console.log('ERROR when creating a new course. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create course (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Generated new course'); - - return JSON.parse(res[0].body); -} - -export function addUserToStudentsInCourse(artemis, username, courseId) { - const res = artemis.post(COURSE_STUDENTS(courseId, username)); - console.log('Add user ' + username + ' to students in course ' + courseId + ' status: ' + res[0].status); -} - -export function removeUserFromStudentsInCourse(artemis, username, courseId) { - const res = artemis.delete(COURSE_STUDENTS(courseId, username)); - console.log('Remove user ' + username + ' from students in course ' + courseId + ' status: ' + res[0].status); -} - -export function addUserToTutorsInCourse(artemis, username, courseId) { - const res = artemis.post(COURSE_TUTORS(courseId, username)); - console.log('Add user ' + username + ' to tutors in course ' + courseId + ' status: ' + res[0].status); -} - -export function removeUserFromTutorsInCourse(artemis, username, courseId) { - const res = artemis.delete(COURSE_TUTORS(courseId, username)); - console.log('Remove user ' + username + ' from tutors in course ' + courseId + ' status: ' + res[0].status); -} - -export function addUserToInstructorsInCourse(artemis, username, courseId) { - const res = artemis.post(COURSE_INSTRUCTORS(courseId, username)); - console.log('Add user ' + username + ' to instructors in course ' + courseId + ' status: ' + res[0].status); -} - -export function removeUserFromInstructorsInCourse(artemis, username, courseId) { - const res = artemis.delete(COURSE_INSTRUCTORS(courseId, username)); - console.log('Remove user ' + username + ' from instructors in course ' + courseId + ' status: ' + res[0].status); -} - -export function deleteCourse(artemis, courseId) { - const res = artemis.delete(ADMIN_COURSE(courseId)); - - if (res[0].status !== 200) { - fail('FAILTEST: Unable to delete course ' + courseId); - } - console.log('SUCCESS: Deleted course ' + courseId); -} diff --git a/src/test/k6/requests/endpoints.js b/src/test/k6/requests/endpoints.js deleted file mode 100644 index 442286a7d3cb..000000000000 --- a/src/test/k6/requests/endpoints.js +++ /dev/null @@ -1,46 +0,0 @@ -export const PROGRAMMING_EXERCISES_SETUP = '/programming-exercises/setup'; -export const PROGRAMMING_EXERCISES = '/programming-exercises'; -export const PROGRAMMING_EXERCISE = (exerciseId) => `${PROGRAMMING_EXERCISES}/${exerciseId}`; -export const SCA_CATEGORIES = (exerciseId) => `/programming-exercises/${exerciseId}/static-code-analysis-categories`; -export const QUIZ_EXERCISES = '/quiz-exercises'; -export const QUIZ_EXERCISE = (exerciseId) => `${QUIZ_EXERCISES}/${exerciseId}`; -export const ADMIN_COURSES = '/admin/courses'; -export const COURSES = '/courses'; -export const USERS = '/users'; -export const COURSE = (courseId) => `${COURSES}/${courseId}`; -export const ADMIN_COURSE = (courseId) => `${ADMIN_COURSES}/${courseId}`; -export const COURSE_STUDENTS = (courseId, username) => `${COURSES}/${courseId}/students/${username}`; -export const COURSE_TUTORS = (courseId, username) => `${COURSES}/${courseId}/tutors/${username}`; -export const COURSE_INSTRUCTORS = (courseId, username) => `${COURSES}/${courseId}/instructors/${username}`; -export const EXERCISES = (courseId) => `${COURSE(courseId)}/exercises`; -export const PARTICIPATION = (exerciseId) => `/exercises/${exerciseId}/participation`; -export const PARTICIPATIONS = (exerciseId) => `/exercises/${exerciseId}/participations`; -export const FILES = (participationId) => `/repository/${participationId}/files`; -export const COMMIT = (participationId) => `/repository/${participationId}/commit`; -export const NEW_FILE = (participationId) => `/repository/${participationId}/file`; -export const PARTICIPATION_WITH_RESULT = (participationId) => `/participations/${participationId}/withLatestResult`; -export const SUBMIT_QUIZ_LIVE = (exerciseId) => `/exercises/${exerciseId}/submissions/live`; -export const SUBMIT_QUIZ_EXAM = (exerciseId) => `/exercises/${exerciseId}/submissions/exam`; -export const EXAMS = (courseId) => `${COURSE(courseId)}/exams`; -export const EXAM = (courseId, examId) => EXAMS(courseId) + `/${examId}`; -export const EXERCISE_GROUPS = (courseId, examId) => `${EXAM(courseId, examId)}/exerciseGroups`; -export const TEXT_EXERCISES = '/text-exercises'; -export const TEXT_EXERCISE = (exerciseId) => `/text-exercises/${exerciseId}`; -export const SUBMIT_TEXT_EXAM = (exerciseId) => `/exercises/${exerciseId}/text-submissions`; -export const TEXT_SUBMISSION_WITHOUT_ASSESSMENT = (exerciseId) => `/exercises/${exerciseId}/text-submission-without-assessment?lock=true`; -export const ASSESS_TEXT_SUBMISSION = (exerciseId, resultId) => `/exercise/${exerciseId}/result/${resultId}`; -export const EXAM_STUDENTS = (courseId, examId, username) => `${EXAM(courseId, examId)}/students/${username}`; -export const GENERATE_STUDENT_EXAMS = (courseId, examId) => `${EXAM(courseId, examId)}/generate-student-exams`; -export const STUDENT_EXAMS = (courseId, examId) => `${EXAM(courseId, examId)}/student-exams`; -export const STUDENT_EXAM_WORKINGTIME = (courseId, examId, studentExamId) => `${EXAM(courseId, examId)}/student-exams/${studentExamId}/working-time`; -export const START_EXERCISES = (courseId, examId) => `${EXAM(courseId, examId)}/student-exams/start-exercises`; -export const EVALUATE_QUIZ_EXAM = (courseId, examId) => `${EXAM(courseId, examId)}/student-exams/evaluate-quiz-exercises`; -export const SUBMIT_EXAM = (courseId, examId) => `${EXAM(courseId, examId)}/student-exams/submit`; -export const EXAM_START = (courseId, examId) => `${EXAM(courseId, examId)}/start`; -export const EXAM_CONDUCTION = (courseId, examId, studentExamId) => `${EXAM(courseId, examId)}/student-exams/${studentExamId}/conduction`; -export const MODELING_EXERCISES = '/modeling-exercises'; -export const MODELING_EXERCISE = (exerciseId) => `/modeling-exercises/${exerciseId}`; -export const SUBMIT_MODELING_EXAM = (exerciseId) => `/exercises/${exerciseId}/modeling-submissions`; -export const TUTOR_PARTICIPATIONS = (exerciseId) => `/exercises/${exerciseId}/tutor-participations`; -export const MODELING_SUBMISSION_WITHOUT_ASSESSMENT = (exerciseId) => `/exercises/${exerciseId}/modeling-submission-without-assessment?lock=true`; -export const ASSESS_MODELING_SUBMISSION = (submissionId, resultId) => `/modeling-submissions/${submissionId}/result/${resultId}/assessment?submit=true`; diff --git a/src/test/k6/requests/exam.js b/src/test/k6/requests/exam.js deleted file mode 100644 index e78b9fbb7606..000000000000 --- a/src/test/k6/requests/exam.js +++ /dev/null @@ -1,122 +0,0 @@ -import { - EVALUATE_QUIZ_EXAM, - EXAM_CONDUCTION, - EXAM_START, - EXAM_STUDENTS, - EXAMS, - EXERCISE_GROUPS, - GENERATE_STUDENT_EXAMS, - START_EXERCISES, - STUDENT_EXAM_WORKINGTIME, - STUDENT_EXAMS, - SUBMIT_EXAM, -} from './endpoints.js'; -import { nextAlphanumeric } from '../util/utils.js'; -import { fail } from 'k6'; - -export function newExam(artemis, course) { - const currentDate = new Date(); - const visibleDate = new Date(currentDate.getTime() + 30000); // Visible in 30 secs - const startDate = new Date(currentDate.getTime() + 60000); // Starting in 60 secs - const endDate = new Date(currentDate.getTime() + 600000); // Ending in 600 secs - - const examName = nextAlphanumeric(5); - - const exam = { - course: course, - visibleDate: visibleDate, - startDate: startDate, - endDate: endDate, - examMaxPoints: 54, - numberOfExercisesInExam: 4, - randomizeExerciseOrder: false, - started: false, - title: 'Exam K6 ' + examName, - visible: false, - gracePeriod: 180, - channelName: 'exam-' + examName, - }; - - const res = artemis.post(EXAMS(course.id), exam); - if (res[0].status !== 201) { - console.log('ERROR when creating a new exam. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create exam (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Generated new exam'); - - return JSON.parse(res[0].body); -} - -export function newExerciseGroup(artemis, exam, mandatory = true) { - const exerciseGroup = { - exam: exam, - isMandatory: mandatory, - title: 'Group K6 ' + nextAlphanumeric(5), - }; - - const res = artemis.post(EXERCISE_GROUPS(exam.course.id, exam.id), exerciseGroup); - if (res[0].status !== 201) { - console.log('ERROR when creating a new exercise group. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create exercise group (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Generated new exercise group'); - - return JSON.parse(res[0].body); -} - -export function addUserToStudentsInExam(artemis, username, exam) { - const res = artemis.post(EXAM_STUDENTS(exam.course.id, exam.id, username)); - console.log('Add user ' + username + ' to students in exam ' + exam.id + ' status: ' + res[0].status); -} - -export function generateExams(artemis, exam) { - const res = artemis.post(GENERATE_STUDENT_EXAMS(exam.course.id, exam.id)); - console.log('Generated student exams in exam ' + exam.id + ' status: ' + res[0].status); -} - -export function startExercises(artemis, exam) { - const res = artemis.post(START_EXERCISES(exam.course.id, exam.id)); - console.log('Start exercises for exam ' + exam.id + ' status: ' + res[0].status); -} - -export function startStudentExamForUser(artemis, courseId, examId) { - const res = artemis.get(EXAM_START(courseId, examId)); - console.log('Started student exam for exam ' + examId + ' status: ' + res[0].status); - - return JSON.parse(res[0].body); -} - -export function getExamForUser(artemis, courseId, examId, studentExamId) { - const res = artemis.get(EXAM_CONDUCTION(courseId, examId, studentExamId)); - console.log('Retrieved student exam for exam ' + examId + ' status: ' + res[0].status); - - return JSON.parse(res[0].body); -} - -export function getStudentExams(artemis, exam) { - const res = artemis.get(STUDENT_EXAMS(exam.course.id, exam.id)); - console.log('Retrieved student exams for exam ' + exam.id + ' status: ' + res[0].status); - - return JSON.parse(res[0].body); -} - -export function updateWorkingTime(artemis, exam, studentExam, workingTime) { - const res = artemis.patch(STUDENT_EXAM_WORKINGTIME(exam.course.id, exam.id, studentExam.id), workingTime); - console.log('Updated student Exam for exam ' + exam.id + ' status: ' + res[0].status); -} - -export function evaluateQuizzes(artemis, courseId, examId) { - const res = artemis.post(EVALUATE_QUIZ_EXAM(courseId, examId)); - console.log('Evaluated quiz exercises in exam ' + examId + ' status: ' + res[0].status); -} - -export function submitExam(artemis, courseId, examId, studentExam) { - const res = artemis.post(SUBMIT_EXAM(courseId, examId), studentExam); - console.log('Evaluated quiz exercises in exam ' + examId + ' status: ' + res[0].status); -} diff --git a/src/test/k6/requests/exercises.js b/src/test/k6/requests/exercises.js deleted file mode 100644 index 7714de3e3b00..000000000000 --- a/src/test/k6/requests/exercises.js +++ /dev/null @@ -1,61 +0,0 @@ -import { PARTICIPATIONS, TUTOR_PARTICIPATIONS } from './endpoints.js'; - -export function startExercise(artemis, exerciseId) { - console.log('Try to start exercise for test user ' + __VU); - const res = artemis.post(PARTICIPATIONS(exerciseId), undefined, undefined); - - if (res[0].status === 400) { - sleep(3000); - return; - } - - if (res[0].status !== 201) { - fail('FAILTEST: error trying to start exercise for test user ' + __VU + ':\n #####ERROR (' + res[0].status + ')##### ' + res[0].body); - } else { - console.log('SUCCESSFULLY started exercise for test user ' + __VU); - } - - return JSON.parse(res[0].body); -} - -export function getExercise(artemis, exerciseId, endpoint) { - const res = artemis.get(endpoint); - console.log('Server response is ' + JSON.stringify(res)); - if (res[0].status !== 200) { - console.log('ERROR when getting existing exercise. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not get exercise (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Get existing exercise'); - - return JSON.parse(res[0].body); -} - -export function deleteExercise(artemis, exerciseId, endpoint) { - const res = artemis.delete(endpoint); - if (res[0].status !== 200) { - fail('FAILTEST: Could not delete exercise (' + res[0].status + ')! Response was + ' + res[0].body); - } - console.log('DELETED modeling exercise, ID=' + exerciseId); -} - -export function startTutorParticipation(artemis, exerciseId) { - const res = artemis.post(TUTOR_PARTICIPATIONS(exerciseId), { status: 'NOT_PARTICIPATED' }); - if (res[0].status !== 201) { - fail('FAILTEST: error trying to start tutor participation for test user ' + __VU + ':\n #####ERROR (' + res[0].status + ')##### ' + res[0].body); - } else { - console.log('SUCCESSFULLY started tutor participation for test user ' + __VU); - } - - return JSON.parse(res[0].body); -} - -export function getAndLockSubmission(artemis, exerciseId, endpoint) { - const res = artemis.get(endpoint); - if (res[0].status !== 200) { - fail('FAILTEST: Could not get submission without assessment (' + res[0].status + ')! Response was + ' + res[0].body); - } - return JSON.parse(res[0].body); -} diff --git a/src/test/k6/requests/modeling.js b/src/test/k6/requests/modeling.js deleted file mode 100644 index 63b7aded3f22..000000000000 --- a/src/test/k6/requests/modeling.js +++ /dev/null @@ -1,101 +0,0 @@ -import { fail } from 'k6'; -import { nextAlphanumeric } from '../util/utils.js'; -import { ASSESS_MODELING_SUBMISSION, SUBMIT_MODELING_EXAM, MODELING_EXERCISES } from './endpoints.js'; - -export function submitRandomModelingAnswerExam(artemis, exercise, submissionId, participation) { - const answer = { - id: submissionId, - isSynced: false, - submissionExerciseType: 'modeling', - submitted: true, - model: '{"version":"2.0.0","type":"ClassDiagram","size":{"width":626,"height":578},"interactive":{"elements":[],"relationships":[]},"elements":[{"id":"35f037f7-0606-4798-b43a-9bc76d741421","name":"Package","type":"Package","owner":null,"bounds":{"x":348,"y":40,"width":200,"height":100}},{"id":"15ac99ee-292b-4a43-8e7f-47820843d132","name":"Abstract","type":"AbstractClass","owner":null,"bounds":{"x":342,"y":271,"width":200,"height":110},"attributes":["d29384ec-ffaa-4deb-812d-d18784074dbf"],"methods":["eb8ae77d-ee16-4f67-ba16-272caa3d56e1"]},{"id":"d29384ec-ffaa-4deb-812d-d18784074dbf","name":"+ attribute: Type","type":"ClassAttribute","owner":"15ac99ee-292b-4a43-8e7f-47820843d132","bounds":{"x":342,"y":321,"width":200,"height":30}},{"id":"eb8ae77d-ee16-4f67-ba16-272caa3d56e1","name":"+ method()","type":"ClassMethod","owner":"15ac99ee-292b-4a43-8e7f-47820843d132","bounds":{"x":342,"y":351,"width":200,"height":30}},{"id":"ac3a15e7-582b-4366-a350-3c4adc529e69","name":"Package","type":"Package","owner":null,"bounds":{"x":0,"y":66,"width":200,"height":100}}],"relationships":[{"id":"5fef0380-c219-413f-a6f9-e5fbac190840","name":"","type":"ClassBidirectional","owner":null,"bounds":{"x":442,"y":0,"width":146,"height":271},"path":[{"x":0,"y":271},{"x":0,"y":231},{"x":146,"y":231},{"x":146,"y":0},{"x":6,"y":0},{"x":6,"y":40}],"source":{"direction":"Up","element":"15ac99ee-292b-4a43-8e7f-47820843d132","multiplicity":"","role":""},"target":{"direction":"Up","element":"35f037f7-0606-4798-b43a-9bc76d741421","multiplicity":"","role":""}},{"id":"a3416bb8-f2c1-43ed-8e09-6f15270425ba","name":"","type":"ClassBidirectional","owner":null,"bounds":{"x":200,"y":0,"width":248,"height":116},"path":[{"x":0,"y":116},{"x":40,"y":116},{"x":40,"y":0},{"x":248,"y":0},{"x":248,"y":40}],"source":{"direction":"Right","element":"ac3a15e7-582b-4366-a350-3c4adc529e69","multiplicity":"","role":""},"target":{"direction":"Up","element":"35f037f7-0606-4798-b43a-9bc76d741421","multiplicity":"","role":""}}],"assessments":[]}', - }; - - if (participation) { - answer.participation = participation; - } - - let res = artemis.put(SUBMIT_MODELING_EXAM(exercise.id), answer); - if (res[0].status !== 200) { - console.log('ERROR when submitting modeling (Exam) via REST. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not submit modeling (Exam) via REST (status: ' + res[0].status + ')! response: ' + res[0].body); - } - return answer; -} - -export function newModelingExercise(artemis, exerciseGroup, courseId) { - const exerciseName = nextAlphanumeric(5); - const exercise = { - maxPoints: 1, - title: 'Modeling K6 ' + exerciseName, - type: 'modeling', - mode: 'INDIVIDUAL', - assessmentType: 'SEMI_AUTOMATIC', - diagramType: 'ClassDiagram', - channelName: 'exercise-' + exerciseName, - }; - - if (courseId) { - exercise.course = { id: courseId }; - } - - if (exerciseGroup) { - exercise.exerciseGroup = exerciseGroup; - } - - const res = artemis.post(MODELING_EXERCISES, exercise); - if (res[0].status !== 201) { - console.log('ERROR when creating a new modeling exercise. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create modeling exercise (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Generated new modeling exercise'); - - return JSON.parse(res[0].body); -} - -export function updateModelingExerciseDueDate(artemis, exercise) { - const currentDate = new Date(); - - const updateExercise = Object.assign({}, exercise); - updateExercise.dueDate = new Date(currentDate.getTime() + 10000); // Visible in 1 minutes - - const res = artemis.put(MODELING_EXERCISES, updateExercise); - console.log(res); - if (res[0].status !== 200) { - console.log('ERROR when updating the modeling exercise. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create modeling exercise (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Generated new modeling exercise'); - - return JSON.parse(res[0].body); -} - -export function assessModelingSubmission(artemis, submissionId, resultId) { - const assessment = [ - { - credits: 4, - reference: 'Package:35f037f7-0606-4798-b43a-9bc76d741421', - referenceId: '35f037f7-0606-4798-b43a-9bc76d741421', - referenceType: 'Package', - text: 'AssessmentText', - }, - ]; - let res = artemis.put(ASSESS_MODELING_SUBMISSION(submissionId, resultId), assessment); - if (res[0].status !== 200) { - console.log('ERROR when assessing modeling (Exercise) via REST. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not assess modeling (Exercise) via REST (status: ' + res[0].status + ')! response: ' + res[0].body); - } - return assessment; -} diff --git a/src/test/k6/requests/programmingExercise.js b/src/test/k6/requests/programmingExercise.js deleted file mode 100644 index 6d12db499e47..000000000000 --- a/src/test/k6/requests/programmingExercise.js +++ /dev/null @@ -1,236 +0,0 @@ -import { extractDestination, nextAlphanumeric, nextWSSubscriptionId } from '../util/utils.js'; -import { COMMIT, FILES, NEW_FILE, PARTICIPATION_WITH_RESULT, PROGRAMMING_EXERCISE, PROGRAMMING_EXERCISES_SETUP, SCA_CATEGORIES } from './endpoints.js'; -import { fail } from 'k6'; -import { programmingExerciseProblemStatementJava } from '../resource/constants_java.js'; -import { programmingExerciseProblemStatementPython } from '../resource/constants_python.js'; -import { programmingExerciseProblemStatementC } from '../resource/constants_c.js'; - -export function ParticipationSimulation(timeout, exerciseId, participationId, content) { - this.timeout = timeout; - this.exerciseId = exerciseId; - this.participationId = participationId; - this.newFiles = content.newFiles; - this.content = content.content; - - this.returnsExpectedResult = function (result, expectedResult) { - console.log('Received test result ' + result.successful); - - switch (expectedResult) { - case TestResult.SUCCESS: - { - if (!result.successful) fail('FAILTEST: The result for participation ' + participationId + ' was not successful!'); - } - break; - case TestResult.FAIL: - { - if (result.successful) fail('FAILTEST: The result for participation ' + participationId + ' did not fail!'); - } - break; - default: { - if (result.successful) fail('FAILTEST: The result for participation ' + participationId + ' contained no build errors!'); - } - } - }; - - this.extractResultFromWebSocketMessage = function (message) { - const resReg = /(.*\n\n)([^\u0000]*)(\u0000)/g; - const match = resReg.exec(message); - return JSON.parse(match[2]); - }; -} - -export function getLatestResult(artemis, participationId) { - const res = artemis.get(PARTICIPATION_WITH_RESULT(participationId)); - if (res[0].status !== 200) { - fail('FAILTEST: Could not get participation information (' + res[0].status + ')! response was + ' + res[0].body); - } - - const results = JSON.parse(res[0].body).results; - if (!results || results.length === 0) { - fail('FAILTEST: Did not receive result for test user ' + __VU); - } - const lastResult = results[results.length - 1]; - console.log(JSON.stringify(lastResult)); - - return lastResult; -} - -export const TestResult = { - SUCCESS: 'success', - FAIL: 'failure', - BUILD_ERROR: 'error', -}; - -export function createProgrammingExercise(artemis, courseId, exerciseGroup = undefined, programmingLanguage, enableSCA = false) { - let res; - - let programmingExerciseProblemStatement; - switch (programmingLanguage) { - case 'JAVA': - programmingExerciseProblemStatement = programmingExerciseProblemStatementJava; - break; - case 'PYTHON': - programmingExerciseProblemStatement = programmingExerciseProblemStatementPython; - break; - case 'C': - programmingExerciseProblemStatement = programmingExerciseProblemStatementC; - break; - } - - const exerciseName = nextAlphanumeric(10); - // The actual exercise - const exercise = { - title: 'TEST K6' + exerciseName, - shortName: 'TESTK6' + nextAlphanumeric(5).toUpperCase(), - maxPoints: 42, - assessmentType: 'AUTOMATIC', - type: 'programming', - programmingLanguage: programmingLanguage, - allowOnlineEditor: true, - packageName: 'de.test', - problemStatement: programmingExerciseProblemStatement, - presentationScoreEnabled: false, - staticCodeAnalysisEnabled: enableSCA, - sequentialTestRuns: false, - mode: 'INDIVIDUAL', - projectType: programmingLanguage === 'JAVA' ? 'PLAIN_MAVEN' : undefined, - channelName: 'exercise-' + exerciseName, - }; - - if (courseId) { - exercise.course = { id: courseId }; - } - - if (exerciseGroup) { - exercise.exerciseGroup = exerciseGroup; - } - - res = artemis.post(PROGRAMMING_EXERCISES_SETUP, exercise); - if (res[0].status !== 201) { - console.log('ERROR when creating a new programming exercise. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create exercise (status: ' + res[0].status + ')! response: ' + res[0].body); - } - const exerciseId = JSON.parse(res[0].body).id; - console.log('CREATED new programming exercise, ID=' + exerciseId); - - return exerciseId; -} - -export function getScaCategories(artemis, exerciseId) { - const res = artemis.get(SCA_CATEGORIES(exerciseId)); - if (res[0].status !== 200) { - fail('FAILTEST: Could not get SCA categories (' + res[0].status + ')! Response was + ' + res[0].body); - } - console.log('GET SCA categories for programming exercise with id=' + exerciseId); - return JSON.parse(res[0].body); -} - -export function configureScaCategories(artemis, exerciseId, scaCategories, programmingLanguage) { - // Find and prepare categories for the configuration update - let patchedCategories; - switch (programmingLanguage) { - case 'JAVA': - let badPracticeCategory = scaCategories.find((category) => category.name === 'Bad Practice'); - if (!badPracticeCategory) { - fail(`FAILTEST: Could not find SCA category "Bad Practice" for exercise: ${exerciseId}`); - } - patchedCategories = [ - { - id: badPracticeCategory.id, - penalty: 1, - maxPenalty: 3, - state: 'GRADED', - }, - ]; - } - - const res = artemis.patch(SCA_CATEGORIES(exerciseId), patchedCategories); - if (res[0].status !== 200) { - fail('FAILTEST: Could not patch SCA categories (' + res[0].status + ')! Response was + ' + res[0].body); - } - console.log('PATCHED SCA categories for programming exercise with id=' + exerciseId); -} - -export function deleteProgrammingExercise(artemis, exerciseId) { - const res = artemis.delete(PROGRAMMING_EXERCISE(exerciseId), { - deleteStudentReposBuildPlans: true, - deleteBaseReposBuildPlans: true, - }); - if (res[0].status !== 200) { - fail('FAILTEST: Could not delete exercise (' + res[0].status + ')! Response was + ' + res[0].body); - } - console.log('DELETED programming exercise, ID=' + exerciseId); -} - -export function createNewFile(artemis, participationId, filename) { - const res = artemis.post(NEW_FILE(participationId), undefined, { file: filename }); - - if (res[0].status !== 200) { - fail('FAILTEST: Unable to create new file ' + filename); - } -} - -function subscribe(socket, exerciseId) { - socket.send('SUBSCRIBE\nid:sub-' + nextWSSubscriptionId() + '\ndestination:/user/topic/newResults\n\n\u0000'); - socket.send('SUBSCRIBE\nid:sub-' + nextWSSubscriptionId() + '\ndestination:/user/topic/exercise/' + exerciseId + '/participation\n\n\u0000'); -} - -function updateFileContent(artemis, participationId, content) { - const res = artemis.put(FILES(participationId), content); - - if (res[0].status !== 200) { - fail('FAILTEST: Unable to update file content for participation' + participationId); - } -} - -export function simulateSubmission(artemis, participationSimulation, expectedResult) { - // First, we have to create all new files - if (participationSimulation.newFiles) { - participationSimulation.newFiles.forEach((file) => createNewFile(artemis, participationSimulation.participationId, file)); - } - - artemis.websocket(function (socket) { - // Subscribe to new results and participations - socket.setTimeout(function () { - subscribe(socket, participationSimulation.exerciseId); - }, 5 * 1000); - - socket.setTimeout(function () { - // submitChange(participationSimulation.content); - updateFileContent(artemis, participationSimulation.participationId, participationSimulation.content); - console.log('SEND file data for test user ' + __VU); - }, 10 * 1000); - - // Commit changes - socket.setTimeout(function () { - artemis.post(COMMIT(participationSimulation.participationId)); - console.log('COMMIT changes for test user ' + __VU); - }, 15 * 1000); - - // Wait for new result - socket.on('message', function (message) { - if (message.startsWith('MESSAGE\n') && extractDestination(message) === '/user/topic/newResults') { - socket.close(); - const result = participationSimulation.extractResultFromWebSocketMessage(message); - participationSimulation.returnsExpectedResult(result, expectedResult); - console.log(`RECEIVE new result for test user ` + __VU); - } - }); - - // Fail after timeout - socket.setTimeout(function () { - socket.close(); - // Try to GET latest result - console.log('Websocket timed out, trying to GET now'); - const result = getLatestResult(artemis, participationSimulation.participationId); - if (result !== undefined) { - participationSimulation.returnsExpectedResult(result, expectedResult); - } else { - fail('FAILTEST: Did not receive result for test user ' + __VU); - } - }, participationSimulation.timeout * 1000); - }); -} diff --git a/src/test/k6/requests/quiz.js b/src/test/k6/requests/quiz.js deleted file mode 100644 index 23a0d662c2e7..000000000000 --- a/src/test/k6/requests/quiz.js +++ /dev/null @@ -1,267 +0,0 @@ -import { PARTICIPATION, QUIZ_EXERCISES } from './endpoints.js'; -import { fail, sleep } from 'k6'; -import { nextAlphanumeric, nextWSSubscriptionId, randomArrayValue, extractDestination, extractMessageContent } from '../util/utils.js'; -import { QUIZ_EXERCISE, SUBMIT_QUIZ_LIVE, SUBMIT_QUIZ_EXAM } from './endpoints.js'; - -export function createQuizExercise(artemis, course, exerciseGroup = null, startQuiz = true, setReleaseDate = true) { - let res; - - const currentDate = new Date(); - const releaseDate = new Date(currentDate.getTime() + 7 * 24 * 60 * 60 * 1000); // Automatic release in one week -> Will be set to 'NOW' once set-visible is called - - const exerciseName = nextAlphanumeric(10); - // The actual exercise - const exercise = { - title: 'Quiz K6' + exerciseName, - type: 'quiz', - teamMode: false, - releaseDate: setReleaseDate ? releaseDate : null, - randomizeQuestionOrder: true, - presentationScoreEnabled: false, - duration: 120, - isActiveQuiz: false, - isAtLeastInstructor: false, - isAtLeastTutor: false, - isOpenForPractice: false, - isPlannedToStart: false, - isPracticeModeAvailable: true, - isVisibleBeforeStart: false, - mode: 'INDIVIDUAL', - quizMode: 'SYNCHRONIZED', - course: course, - exerciseGroup: exerciseGroup, - quizQuestions: generateQuizQuestions(10), - channelName: 'exercise-' + exerciseName, - }; - - res = artemis.post(QUIZ_EXERCISES, exercise); - if (res[0].status !== 201) { - console.log('ERROR when creating a new quiz exercise. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create exercise (status: ' + res[0].status + ')! response: ' + res[0].body); - } - const exerciseId = JSON.parse(res[0].body).id; - console.log('CREATED new quiz exercise, ID=' + exerciseId); - - if (startQuiz) { - console.log('Setting quiz to visible'); - res = artemis.put(QUIZ_EXERCISE(exerciseId) + '/set-visible'); - if (res[0].status !== 200) { - fail('FAILTEST: Could not set quiz to visible (' + res[0].status + ')! Response was + ' + res[0].body); - } - - console.log('Starting quiz'); - res = artemis.put(QUIZ_EXERCISE(exerciseId) + '/start-now'); - if (res[0].status !== 200) { - fail('FAILTEST: Could not start quiz (' + res[0].status + ')! Response was + ' + res[0].body); - } - } - - return exerciseId; -} - -export function generateQuizQuestions(amount) { - let questions = []; - for (let i = 0; i < amount; i++) { - let question = { - type: 'multiple-choice', - title: 'question' + i, - text: 'Some question', - scoringType: 'ALL_OR_NOTHING', - points: 1, - randomizeOrder: true, - invalid: false, - hint: 'Some question hint', - exportQuiz: 'false', - answerOptions: generateAnswerOptions(), - }; - questions.push(question); - } - - return questions; - - function generateAnswerOptions() { - let answerOptions = []; - let correctAnswerOption = { - explanation: 'Correct answer explanation', - hint: 'Correct answer hint', - invalid: false, - isCorrect: true, - text: 'Correct answer option', - }; - let wrongAnswerOption = { - explanation: 'Wrong answer explanation', - hint: 'Wrong answer hint', - invalid: false, - isCorrect: false, - text: 'Wrong answer option', - }; - - answerOptions.push(correctAnswerOption); - answerOptions.push(wrongAnswerOption); - - return answerOptions; - } -} - -export function deleteQuizExercise(artemis, exerciseId) { - const res = artemis.delete(QUIZ_EXERCISE(exerciseId)); - if (res[0].status !== 200) { - fail('FAILTEST: Could not delete exercise (' + res[0].status + ')! Response was + ' + res[0].body); - } - console.log('DELETED quiz exercise, ID=' + exerciseId); -} - -export function getQuizQuestions(artemis, courseId, exerciseId) { - const res = artemis.get(PARTICIPATION(exerciseId)); - if (res[0].status !== 200) { - fail('FAILTEST: Could not get quiz information (' + res[0].status + ')! response was + ' + res[0].body); - } - - return JSON.parse(res[0].body).exercise.quizQuestions; -} - -export function submitRandomAnswerRESTExam(artemis, exercise, numberOfQuestions, submissionId) { - const answer = { - id: submissionId, - isSynced: false, - submissionExerciseType: 'quiz', - submitted: true, - submittedAnswers: exercise.quizQuestions.slice(0, numberOfQuestions).map((q) => generateAnswer(q)), - }; - - let res = artemis.put(SUBMIT_QUIZ_EXAM(exercise.id), answer); - if (res[0].status !== 200) { - console.log('ERROR when submitting quiz (Exam) via REST. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not submit quiz (Exam) via REST (status: ' + res[0].status + ')! response: ' + res[0].body); - } - return answer; -} - -export function generateAnswer(question) { - const randAnswer = randomArrayValue(question.answerOptions); - return { - type: question.type, - quizQuestion: question, - selectedOptions: [randAnswer], - }; -} - -export function simulateQuizWork(artemis, exerciseId, questions, timeout, currentUsername) { - artemis.websocket(function (socket) { - function subscribe() { - socket.send('SUBSCRIBE\nid:sub-' + nextWSSubscriptionId() + '\ndestination:/user/topic/exercise/' + exerciseId + '/participation\n\n\u0000'); - } - - function submitRandomAnswer(numberOfQuestions) { - const answer = { - submissionExerciseType: 'quiz', - submitted: false, - submittedAnswers: questions.slice(0, numberOfQuestions).map((q) => generateAnswer(q)), - }; - const answerString = JSON.stringify(answer); - const wsMessage = `SEND\ndestination:/topic/quizExercise/${exerciseId}/submission\ncontent-length:${answerString.length}\n\n${answerString}\u0000`; - - socket.send(wsMessage); - } - - function submitRandomAnswerREST(numberOfQuestions) { - const answer = { - submissionExerciseType: 'quiz', - submitted: false, - submittedAnswers: questions.slice(0, numberOfQuestions).map((q) => generateAnswer(q)), - }; - - let res = artemis.post(SUBMIT_QUIZ_LIVE(exerciseId), answer); - if (res[0].status !== 200) { - console.log('ERROR when submitting quiz via REST. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not submit quiz via REST (status: ' + res[0].status + ')! response: ' + res[0].body); - } - } - - // Subscribe to callback response from server (response after submitted answer) - socket.setTimeout(function () { - subscribe(); - }, 5 * 1000); - - // Wait for new result - socket.on('message', function (message) { - if (message.startsWith('MESSAGE\n') && extractDestination(message) === '/user/topic/exercise/' + exerciseId + '/participation') { - console.log(`RECEIVED callback from server for ${currentUsername}`); - sleep(5); - socket.close(); - } else if (message !== '\n') { - console.log(`Unexpected message ${message} for user ${currentUsername}`); - } - }); - - for (let questionCount = 1; questionCount <= 50; questionCount++) { - // submit new quiz answer - socket.setTimeout( - function () { - if (questionCount === 50) { - console.log('Submitting via REST for ' + currentUsername); - submitRandomAnswerREST(10); - } else { - console.log('Submitting via WS for ' + currentUsername); - submitRandomAnswer(10); - } - }, - (questionCount - 1) * 500 + 1000, - ); - } - - // Stop after timeout - socket.setTimeout(function () { - console.log('Connection timed out for user ' + currentUsername); - socket.close(); - }, timeout * 1000); - }); -} - -export function waitForQuizStartAndStart(artemis, exerciseId, timeout, currentUsername, courseId) { - artemis.websocket(function (socket) { - function subscribe() { - socket.send('SUBSCRIBE\nid:sub-' + nextWSSubscriptionId() + '\ndestination:/topic/courses/' + courseId + '/quizExercises\n\n\u0000'); - } - - socket.setTimeout(function () { - subscribe(); - }, 1000); - - // Wait for new result - socket.on('message', function (message) { - if (message.startsWith('MESSAGE\n') && extractDestination(message) === '/topic/courses/' + courseId + '/quizExercises') { - // console.log(`RECEIVED quiz start for user ${currentUsername}: ${message}`); - //console.log(message.match('MESSAGE\ndestination:\/topic\/courses\/(?:\d)*\/quizExercises\nsubscription:(?:\\w|-)*\nmessage-id:(?:\w|\d|-)*\ncontent-length:(?:\d)*\n\n(.*)')); - let receivedPayload = extractMessageContent(message); - let parsedQuiz = JSON.parse(receivedPayload); - - if (parsedQuiz.quizMode !== 'SYNCHRONIZED') { - fail('The k6 tests currently only support SYNCHRONIZED quizzes'); - return; - } - - const defaultBatch = parsedQuiz.quizBatches[0]; - if (defaultBatch.started) { - // Quiz started - console.log(`Quiz start received for user ${currentUsername}, will send answers`); - const questions = parsedQuiz.quizQuestions; - socket.close(); - simulateQuizWork(artemis, exerciseId, questions, timeout, currentUsername); - } else { - // Quiz is now visible, but not started - console.log(`Quiz visible received for user ${currentUsername}, will wait for quiz start`); - } - } - }); - }); -} diff --git a/src/test/k6/requests/requests.js b/src/test/k6/requests/requests.js deleted file mode 100644 index c4f4574b36f9..000000000000 --- a/src/test/k6/requests/requests.js +++ /dev/null @@ -1,168 +0,0 @@ -import http from 'k6/http'; -import ws from 'k6/ws'; -import { fail } from 'k6'; - -const protocol = 'https'; // https or http -const websocketProtocol = 'wss'; // wss if https is used; ws if http is used -const host = __ENV.BASE_URL; // host including port if differing from 80 (http) or 443 (https) -const baseUrl = protocol + '://' + host; - -const userAgent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0'; -const acceptLanguage = 'en-CA,en-US;q=0.7,en;q=0.3'; -const acceptEncoding = 'gzip, deflate, br'; - -const request = function (method, endpoint, authToken, body, params, formData) { - let paramString; - if (params) { - paramString = Object.keys(params) - .map((key) => key + '=' + params[key]) - .join('&'); - } - - let bodyParameter = null; - if (body) { - bodyParameter = JSON.stringify(body); - } else if (formData) { - bodyParameter = formData.body(); - } - - let url = baseUrl + '/api' + endpoint + (paramString ? '?' + paramString : ''); - let req = [ - { - method: method, - url: url, - body: bodyParameter, - params: { - headers: { - Host: host, - 'User-Agent': userAgent, - Accept: 'application/json, text/plain, */*', - 'Accept-Language': acceptLanguage, - 'Accept-Encoding': acceptEncoding, - Referer: baseUrl + '/', - 'Content-Type': formData ? 'multipart/form-data; boundary=' + formData.boundary : 'application/json', - 'X-Artemis-Client-Fingerprint': 'b832814fcce0cab9fc5f717d5b93fa07', - 'X-Artemis-Client-Instance-ID': '9e0b78ec-e43e-43da-a767-89b3f80df63a', - Connection: 'keep-alive', - TE: 'Trailers', - }, - tags: { name: url }, - cookies: { - jwt: authToken, - }, - }, - }, - ]; - - return http.batch(req); -}; - -export function login(username, password) { - let req, res; - - console.log('Try to login with ' + username + ':' + password); - - // The user logs in; the authToken gets saved as we need it later - req = [ - { - method: 'post', - url: baseUrl + '/api/public/authenticate', - body: '{"username":"' + username + '","password":"' + password + '","rememberMe":true}', - params: { - headers: { - Host: host, - 'User-Agent': userAgent, - Accept: 'application/json, text/plain, */*', - 'Accept-Language': acceptLanguage, - 'Accept-Encoding': acceptEncoding, - Referer: baseUrl + '/', - 'Content-Type': 'application/json', - Connection: 'keep-alive', - TE: 'Trailers', - }, - tags: { name: baseUrl + '/api/public/authenticate' }, - }, - }, - ]; - res = http.batch(req); - if (res[0].status !== 200) { - fail('FAILTEST: failed to login as user ' + username + ' (' + res[0].status + ')! Response was + ' + res[0].body); - } - const authToken = res[0].cookies.jwt[0].value; - // console.log('GOT authToken ' + authToken + ' for user ' + username); - - // The user requests it own information of the account - req = [ - { - method: 'get', - url: baseUrl + '/api/public/account', - params: { - headers: { - Host: host, - 'User-Agent': userAgent, - Accept: 'application/json, text/plain, */*', - 'Accept-Language': acceptLanguage, - 'Accept-Encoding': acceptEncoding, - Referer: baseUrl + '/', - Connection: 'keep-alive', - TE: 'Trailers', - }, - tags: { name: baseUrl + '/api/public/account' }, - cookies: { - jwt: authToken, - }, - }, - }, - ]; - res = http.batch(req); - - return new Artemis(authToken); -} - -export function Artemis(authToken) { - this.get = function (endpoint, params) { - return request('get', endpoint, authToken, null, params); - }; - this.post = function (endpoint, body, params, formData) { - return request('post', endpoint, authToken, body, params, formData); - }; - this.put = function (endpoint, body, params) { - return request('put', endpoint, authToken, body, params); - }; - this.patch = function (endpoint, body, params) { - return request('patch', endpoint, authToken, body, params); - }; - this.delete = function (endpoint, params) { - return request('delete', endpoint, authToken, null, params); - }; - this.websocket = function (doOnSocket) { - const websocketEndpoint = websocketProtocol + '://' + host + '/websocket/websocket'; - - const jar = new http.CookieJar(); - jar.set(baseUrl, 'jwt', authToken); - - ws.connect(websocketEndpoint, { tags: { name: websocketEndpoint }, jar }, function (socket) { - socket.on('open', function open() { - socket.send('CONNECT\naccept-version:1.2\nheart-beat:10000,10000\n\n\u0000'); - socket.setInterval(function timeout() { - socket.ping(); - // Pinging every 10sec (setInterval) - }, 10000); - // TODO: is ping not the same as the heartbeat? - // Send heartbeat to server so session is kept alive - socket.setInterval(function timeout() { - socket.send('\n'); - }, 10000); - }); - - socket.on('error', function (e) { - if (e.error() !== 'websocket: close sent') { - console.log('Websocket connection closed due to: ', e.error()); - } - // TODO: try to reconnect - }); - - doOnSocket(socket); - }); - }; -} diff --git a/src/test/k6/requests/text.js b/src/test/k6/requests/text.js deleted file mode 100644 index cf615dc0fbbb..000000000000 --- a/src/test/k6/requests/text.js +++ /dev/null @@ -1,126 +0,0 @@ -import { fail } from 'k6'; -import { nextAlphanumeric } from '../util/utils.js'; -import { ASSESS_TEXT_SUBMISSION, SUBMIT_TEXT_EXAM, TEXT_EXERCISES } from './endpoints.js'; - -export function submitRandomTextAnswerExam(artemis, exercise, submissionId) { - const answer = { - id: submissionId, - isSynced: false, - submissionExerciseType: 'text', - submitted: true, - text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum', - }; - - let res = artemis.put(SUBMIT_TEXT_EXAM(exercise.id), answer); - if (res[0].status !== 200) { - console.log('ERROR when submitting text (Exam) via REST. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not submit text (Exam) via REST (status: ' + res[0].status + ')! response: ' + res[0].body); - } - return answer; -} - -export function newTextExercise(artemis, exerciseGroup, courseID) { - const exerciseName = nextAlphanumeric(5); - const textExercise = { - maxPoints: 1, - title: 'Text K6 ' + exerciseName, - type: 'text', - mode: 'INDIVIDUAL', - channelName: 'exercise-' + exerciseName, - }; - - if (courseID) { - textExercise.course = { id: courseId }; - } - - if (exerciseGroup) { - textExercise.exerciseGroup = exerciseGroup; - } - - const res = artemis.post(TEXT_EXERCISES, textExercise); - if (res[0].status !== 201) { - console.log('ERROR when creating a new text exercise. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not create text exercise (status: ' + res[0].status + ')! response: ' + res[0].body); - } - console.log('SUCCESS: Generated new text exercise'); - - return JSON.parse(res[0].body); -} - -export function assessTextSubmission(artemis, exerciseId, resultId) { - const assessment = [ - { - feedbacks: [ - { - credits: 1, - reference: '674aa1b614606278282b1b0d80e34f609c641972', - detailText: 'Good', - type: 'MANUAL', - }, - { - credits: 2, - reference: '314a5bbaeb4755e0e29ee69ec4fb0f9f3aa3d2d9', - detailText: 'Good', - type: 'MANUAL', - }, - { - credits: 0, - reference: 'bb7b48643ec0fa3b8194e196bf97692ec6e4821f', - detailText: 'Neutral', - type: 'MANUAL', - }, - { - credits: -0.5, - reference: '21e56278b55f2dfa5c1a9d646823d177b2ac2ef0', - detailText: 'Negative', - type: 'MANUAL', - }, - ], - textBlocks: [ - { - id: '674aa1b614606278282b1b0d80e34f609c641972', - text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', - startIndex: 0, - endIndex: 123, - type: 'AUTOMATIC', - }, - { - id: '314a5bbaeb4755e0e29ee69ec4fb0f9f3aa3d2d9', - text: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', - startIndex: 124, - endIndex: 231, - type: 'AUTOMATIC', - }, - { - id: 'bb7b48643ec0fa3b8194e196bf97692ec6e4821f', - text: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.', - startIndex: 232, - endIndex: 334, - type: 'AUTOMATIC', - }, - { - id: '21e56278b55f2dfa5c1a9d646823d177b2ac2ef0', - text: 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', - startIndex: 335, - endIndex: 445, - type: 'AUTOMATIC', - }, - ], - }, - ]; - let res = artemis.put(ASSESS_TEXT_SUBMISSION(exerciseId, resultId), assessment); - if (res[0].status !== 200) { - console.log('ERROR when assessing modeling (Exercise) via REST. Response headers:'); - for (let [key, value] of Object.entries(res[0].headers)) { - console.log(`${key}: ${value}`); - } - fail('FAILTEST: Could not assess modeling (Exercise) via REST (status: ' + res[0].status + ')! response: ' + res[0].body); - } - return assessment; -} diff --git a/src/test/k6/requests/user.js b/src/test/k6/requests/user.js deleted file mode 100644 index ec617d56289a..000000000000 --- a/src/test/k6/requests/user.js +++ /dev/null @@ -1,106 +0,0 @@ -import { USERS } from './endpoints.js'; -import { addUserToInstructorsInCourse, addUserToStudentsInCourse, addUserToTutorsInCourse } from './course.js'; -import { login } from './requests.js'; - -export function getUser(artemis, i, baseUsername) { - const username = baseUsername.replace('USERID', i); - const res = artemis.get(USERS + '/' + username); - if (res[0].status !== 200) { - console.info('Unable to get user ' + username + ' (status: ' + res[0].status + ')!'); - } - return res[0].body; -} - -export function updateUser(artemis, user) { - const res = artemis.put(USERS, user); - if (res[0].status !== 200) { - console.info('Unable to update user ' + user.login + ' (status: ' + res[0].status + ')!'); - } -} - -export function newUser(artemis, i, baseUsername, basePassword, studentGroupName, instructorGroupName, asTutor) { - const username = baseUsername.replace('USERID', i); - const password = basePassword.replace('USERID', i); - let authorities = ['ROLE_USER']; - if (i === 1) { - authorities = ['ROLE_USER', 'ROLE_INSTRUCTOR']; - } - if (asTutor) { - authorities = ['ROLE_USER', 'ROLE_TA']; - } - - let groups = [studentGroupName]; - if (i === 1) { - groups = [studentGroupName, instructorGroupName]; - } - - const user = { - login: username, - password: password, - firstName: 'Artemis Test ' + i, - lastName: 'Artemis Test ' + i, - email: username + '_testuser_' + i + '@tum.invalid', - activated: true, - langKey: 'en', - authorities: authorities, - groups: groups, - createdBy: 'test-case', - }; - - console.log('Try to create new user ' + username); - const res = artemis.post(USERS, user); - if (res[0].status !== 201) { - console.info('Unable to generate new user ' + username + ' (status: ' + res[0].status + ')!'); - return -1; - } else { - console.log('SUCCESS: Created new user ' + username + ' with groups ' + res[0].body.groups); - } - - return JSON.parse(res[0].body).id; -} - -export function updateUserWithGroup(artemis, i, baseUsername, course, asTutor) { - const username = baseUsername.replace('USERID', i); - if (asTutor) { - addUserToTutorsInCourse(artemis, username, course.id); - } else { - addUserToStudentsInCourse(artemis, username, course.id); - } - - if (i === 101) { - addUserToInstructorsInCourse(artemis, username, course.id); - } -} - -export function createUsersIfNeeded(artemis, baseUsername, basePassword, adminUsername, adminPassword, course, userOffset, asTutor) { - const shouldCreateUsers = __ENV.CREATE_USERS === true || __ENV.CREATE_USERS === 'true'; - const iterations = parseInt(__ENV.ITERATIONS); - // Use users with ID >= 100 to avoid manual testers entering the wrong password too many times interfering with tests - const userIdOffset = 99; - - if (shouldCreateUsers) { - console.log('Try to create ' + iterations + ' users'); - for (let i = 1 + userIdOffset; i <= iterations + userIdOffset; i++) { - let userId; - if (asTutor) { - userId = newUser(artemis, i + userOffset, baseUsername, basePassword, course.teachingAssistantGroupName, course.instructorGroupName, asTutor); - } else { - userId = newUser(artemis, i + userOffset, baseUsername, basePassword, course.studentGroupName, course.instructorGroupName); - } - if (userId === -1) { - // the creation was not successful, most probably because the user already exists, we need to update the group of the user - updateUserWithGroup(artemis, i + userOffset, baseUsername, course, asTutor); - } - } - } else { - console.log('Do not create users, assume the user exists in the external system, will update their groups'); - for (let i = 1 + userIdOffset; i <= iterations + userIdOffset; i++) { - // we need to log in once with the user, so that the user is synced and available for the update with the groups - login(baseUsername.replace('USERID', i + userOffset), basePassword.replace('USERID', i + userOffset)); - } - artemis = login(adminUsername, adminPassword); - for (let i = 1 + userIdOffset; i <= iterations + userIdOffset; i++) { - updateUserWithGroup(artemis, i + userOffset, baseUsername, course, asTutor); - } - } -} diff --git a/src/test/k6/resource/constants_c.js b/src/test/k6/resource/constants_c.js deleted file mode 100644 index a04e372a6c1b..000000000000 --- a/src/test/k6/resource/constants_c.js +++ /dev/null @@ -1,63 +0,0 @@ -export const programmingExerciseProblemStatementC = - '# Hello World\n' + - '\n' + - 'In dieser Aufgabe werden Sie Ihr erstes C Programm erstellen.\n' + - 'Die Aufgabenstellung entnehmen Sie bitte [https://gbs.cm.in.tum.de](https://gbs.cm.in.tum.de).\n' + - '\n' + - '#### Allgemein\n' + - '1. [task][Kompilieren](TestCompile)\n' + - '2. [task][Rückgabewert == 0](TestReturnCode)\n' + - '3. [task][Ausgabe prüfen](TestOutput)\n' + - '\n' + - '#### Address Sanitizer\n' + - '1. [task][Kompilieren mit Address Sanitizer](TestCompileASan)\n' + - '2. [task][Ausgabe prüfen mit Address Sanitizer](TestOutputASan)\n' + - '\n' + - '#### Undefined Behavior Sanitizer\n' + - '1. [task][Kompilieren mit Undefined Behavior Sanitizer](TestCompileUBSan)\n' + - '2. [task][Ausgabe prüfen mit Undefined Behavior Sanitizer](TestOutputUBSan)\n' + - '\n' + - '#### Leak Sanitizer\n' + - '1. [task][Kompilieren mit Leak Sanitizer](TestCompileLeak)\n' + - '2. [task][Ausgabe prüfen mit Leak Sanitizer](TestOutputLSan)\n' + - '\n' + - '#### GCC Static Analysis\n' + - '1. [task][GCC Static analysis](TestGccStaticAnalysis)'; - -export const buildErrorContentC = { - newFiles: [], - content: [ - { - fileName: 'helloWorld.c', - fileContent: 'a', - }, - ], -}; - -export const someSuccessfulErrorContentC = { - newFiles: [], - content: [ - { - fileName: 'helloWorld.c', - fileContent: '// Do magic ╰( ͡° ͜ʖ ͡° )つ──☆*:・゚ and implement your "Hello world" programm here.\n', - }, - ], -}; - -export const allSuccessfulContentC = { - newFiles: [], - content: [ - { - fileName: 'helloWorld.c', - fileContent: - '#include // For printf(...)\n' + - '#include // For EXIT_SUCCESS\n' + - '\n' + - 'int main(){\n' + - '\tprintf("Hello world!\n");\n' + - '\n' + - '\treturn EXIT_SUCCESS; // Same as "return 0;"\n' + - '}\n', - }, - ], -}; diff --git a/src/test/k6/resource/constants_java.js b/src/test/k6/resource/constants_java.js deleted file mode 100644 index c9a0b21a42d0..000000000000 --- a/src/test/k6/resource/constants_java.js +++ /dev/null @@ -1,441 +0,0 @@ -export const programmingExerciseProblemStatementJava = - '# Sorting with the Strategy Pattern\n' + - '\n' + - 'In this exercise, we want to implement sorting algorithms and choose them based on runtime specific variables.\n' + - '\n' + - '### Part 1: Sorting\n' + - '\n' + - 'First, we need to implement two sorting algorithms, in this case `MergeSort` and `BubbleSort`.\n' + - '\n' + - '**You have the following tasks:**\n' + - '\n' + - '1. [task][Implement Bubble Sort](testBubbleSort)\n' + - 'Implement the method `performSort(List)` in the class `BubbleSort`. Make sure to follow the Bubble Sort algorithm exactly.\n' + - '\n' + - '2. [task][Implement Merge Sort](testMergeSort)\n' + - 'Implement the method `performSort(List)` in the class `MergeSort`. Make sure to follow the Merge Sort algorithm exactly.\n' + - '\n' + - '### Part 2: Strategy Pattern\n' + - '\n' + - 'We want the application to apply different algorithms for sorting a `List` of `Date` objects.\n' + - 'Use the strategy pattern to select the right sorting algorithm at runtime.\n' + - '\n' + - '**You have the following tasks:**\n' + - '\n' + - '1. [task][SortStrategy Interface](testClass[SortStrategy],testMethods[SortStrategy])\n' + - 'Create a `SortStrategy` interface and adjust the sorting algorithms so that they implement this interface.\n' + - '\n' + - '2. [task][Context Class](testAttributes[Context],testMethods[Context])\n' + - 'Create and implement a `Context` class following the below class diagram\n' + - '\n' + - '3. [task][Context Policy](testConstructors[Policy],testAttributes[Policy],testMethods[Policy])\n' + - 'Create and implement a `Policy` class following the below class diagram with a simple configuration mechanism:\n' + - '\n' + - ' 1. [task][Select MergeSort](testClass[MergeSort],testUseMergeSortForBigList)\n' + - ' Select `MergeSort` when the List has more than 10 dates.\n' + - '\n' + - ' 2. [task][Select BubbleSort](testClass[BubbleSort],testUseBubbleSortForSmallList)\n' + - ' Select `BubbleSort` when the List has less or equal 10 dates.\n' + - '\n' + - '4. Complete the `Client` class which demonstrates switching between two strategies at runtime.\n' + - '\n' + - '@startuml\n' + - '\n' + - 'class Client {\n' + - '}\n' + - '\n' + - 'class Policy {\n' + - ' +configure()\n' + - '}\n' + - '\n' + - 'class Context {\n' + - ' -dates: List\n' + - ' +sort()\n' + - '}\n' + - '\n' + - 'interface SortStrategy {\n' + - ' +performSort(List)\n' + - '}\n' + - '\n' + - 'class BubbleSort {\n' + - ' +performSort(List)\n' + - '}\n' + - '\n' + - 'class MergeSort {\n' + - ' +performSort(List)\n' + - '}\n' + - '\n' + - 'MergeSort -up-|> SortStrategy #testsColor(testClass[MergeSort])\n' + - 'BubbleSort -up-|> SortStrategy #testsColor(testClass[BubbleSort])\n' + - 'Policy -right-> Context #testsColor(testAttributes[Policy]): context\n' + - 'Context -right-> SortStrategy #testsColor(testAttributes[Context]): sortAlgorithm\n' + - 'Client .down.> Policy\n' + - 'Client .down.> Context\n' + - '\n' + - '@enduml\n' + - '\n' + - '\n' + - '### Part 3: Optional Challenges\n' + - '\n' + - '(These are not tested)\n' + - '\n' + - '1. Create a new class `QuickSort` that implements `SortStrategy` and implement the Quick Sort algorithm.\n' + - '\n' + - '2. Make the method `performSort(List)` generic, so that other objects can also be sorted by the same method.\n' + - '**Hint:** Have a look at Java Generics and the interface `Comparable`.\n' + - '\n' + - '3. Think about a useful decision in `Policy` when to use the new `QuickSort` algorithm.\n'; - -export const buildErrorContentJava = { - newFiles: [], - content: [ - { - fileName: 'src/de/test/BubbleSort.java', - fileContent: 'a', - }, - ], -}; - -export const someSuccessfulErrorContentJava = (scaEnabled) => { - if (scaEnabled) { - // One Bad Practice, one Performance, one Documentation issue - return { - newFiles: ['src/de/test/SortStrategy.java'], - content: [ - { - fileName: 'src/de/test/SortStrategy.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.util.Date;\n' + - 'import java.util.List;\n' + - '\n' + - 'public interface SortStrategy {\n' + - '\n' + - ' public void performSort(List input);\n' + - '}', - }, - { - fileName: 'src/de/test/BubbleSort.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.util.*;\n' + - '\n' + - 'public class BubbleSort {\n' + - 'private int unused = 1;\n' + - 'public void performSort(List input) {\n' + - 'for (int i = input.size() - 1; i >= 0; i--) {\n' + - 'for (int j = 0; j < i; j++) {\n' + - 'if (input.get(j).compareTo(input.get(j + 1)) > 0) {\n' + - 'Date temp = input.get(j);\n' + - 'input.set(j, input.get(j + 1));\n' + - 'input.set(j + 1, temp);\n' + - '}\n' + - '}\n' + - '}\n' + - '}\n' + - '}', - }, - ], - }; - } else { - return { - newFiles: ['src/de/test/SortStrategy.java'], - content: [ - { - fileName: 'src/de/test/SortStrategy.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.util.Date;\n' + - 'import java.util.List;\n' + - '\n' + - 'public interface SortStrategy {\n' + - '\n' + - ' public void performSort(List input);\n' + - '}', - }, - ], - }; - } -}; - -export const allSuccessfulContentJava = { - newFiles: ['src/de/test/Context.java', 'src/de/test/Policy.java'], - content: [ - { - fileName: 'src/de/test/Context.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.util.*;\n' + - '\n' + - 'public class Context {\n' + - ' private SortStrategy sortAlgorithm;\n' + - '\n' + - ' private List dates;\n' + - '\n' + - ' public List getDates() {\n' + - ' return dates;\n' + - ' }\n' + - '\n' + - ' public void setDates(List dates) {\n' + - ' this.dates = dates;\n' + - ' }\n' + - '\n' + - ' public void setSortAlgorithm(SortStrategy sa) {\n' + - ' sortAlgorithm = sa;\n' + - ' }\n' + - '\n' + - ' public SortStrategy getSortAlgorithm() {\n' + - ' return sortAlgorithm;\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Runs the configured sort algorithm.\n' + - ' */\n' + - ' public void sort() {\n' + - ' if (sortAlgorithm != null) {\n' + - ' sortAlgorithm.performSort(this.dates);\n' + - ' }\n' + - ' }\n' + - '}', - }, - { - fileName: 'src/de/test/BubbleSort.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.util.*;\n' + - '\n' + - 'public class BubbleSort implements SortStrategy {\n' + - '\n' + - ' /**\n' + - ' * Sorts dates with BubbleSort.\n' + - ' *\n' + - ' * @param input the List of Dates to be sorted\n' + - ' */\n' + - ' public void performSort(List input) {\n' + - '\n' + - ' for (int i = input.size() - 1; i >= 0; i--) {\n' + - ' for (int j = 0; j < i; j++) {\n' + - ' if (input.get(j).compareTo(input.get(j + 1)) > 0) {\n' + - ' Date temp = input.get(j);\n' + - ' input.set(j, input.get(j + 1));\n' + - ' input.set(j + 1, temp);\n' + - ' }\n' + - ' }\n' + - ' }\n' + - '\n' + - ' }\n' + - '}', - }, - { - fileName: 'src/de/test/Client.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.text.*;\n' + - 'import java.util.*;\n' + - 'import java.util.concurrent.ThreadLocalRandom;\n' + - '\n' + - 'public final class Client {\n' + - '\n' + - ' private static final int ITERATIONS = 10;\n' + - '\n' + - ' private static final int RANDOM_FLOOR = 5;\n' + - '\n' + - ' private static final int RANDOM_CEILING = 15;\n' + - '\n' + - ' private Client() {\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Main method.\n' + - ' * Add code to demonstrate your implementation here.\n' + - ' *\n' + - ' * @param args command line arguments\n' + - ' */\n' + - ' public static void main(String[] args) throws ParseException {\n' + - '\n' + - ' // Init Context and Policy\n' + - '\n' + - ' Context sortingContext = new Context();\n' + - ' Policy policy = new Policy(sortingContext);\n' + - '\n' + - ' // Run multiple times to simulate different sorting strategies\n' + - ' for (int i = 0; i < ITERATIONS; i++) {\n' + - ' List dates = createRandomDatesList();\n' + - '\n' + - ' sortingContext.setDates(dates);\n' + - ' policy.configure();\n' + - '\n' + - ' System.out.print("Unsorted Array of course dates = ");\n' + - ' printDateList(dates);\n' + - '\n' + - ' sortingContext.sort();\n' + - '\n' + - ' System.out.print("Sorted Array of course dates = ");\n' + - ' printDateList(dates);\n' + - ' }\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Generates a List of random Date objects with random List size between\n' + - ' * {@link #RANDOM_FLOOR} and {@link #RANDOM_CEILING}.\n' + - ' *\n' + - ' * @return a List of random Date objects\n' + - ' * @throws ParserException if date string cannot be parsed\n' + - ' */\n' + - ' private static List createRandomDatesList() throws ParseException {\n' + - ' int listLength = randomIntegerWithin(RANDOM_FLOOR, RANDOM_CEILING);\n' + - ' List list = new ArrayList<>();\n' + - '\n' + - ' SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");\n' + - ' Date lowestDate = dateFormat.parse("08.11.2016");\n' + - ' Date highestDate = dateFormat.parse("03.11.2020");\n' + - '\n' + - ' for (int i = 0; i < listLength; i++) {\n' + - ' Date randomDate = randomDateWithin(lowestDate, highestDate);\n' + - ' list.add(randomDate);\n' + - ' }\n' + - ' return list;\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Creates a random Date within the given range.\n' + - ' *\n' + - ' * @param low the lower bound\n' + - ' * @param high the upper bound\n' + - ' * @return random Date within the given range\n' + - ' */\n' + - ' private static Date randomDateWithin(Date low, Date high) {\n' + - ' long randomLong = randomLongWithin(low.getTime(), high.getTime());\n' + - ' return new Date(randomLong);\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Creates a random long within the given range.\n' + - ' *\n' + - ' * @param low the lower bound\n' + - ' * @param high the upper bound\n' + - ' * @return random long within the given range\n' + - ' */\n' + - ' private static long randomLongWithin(long low, long high) {\n' + - ' return ThreadLocalRandom.current().nextLong(low, high + 1);\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Creates a random int within the given range.\n' + - ' *\n' + - ' * @param low the lower bound\n' + - ' * @param high the upper bound\n' + - ' * @return random int within the given range\n' + - ' */\n' + - ' private static int randomIntegerWithin(int low, int high) {\n' + - ' return ThreadLocalRandom.current().nextInt(low, high + 1);\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Prints out the given Array of Date objects.\n' + - ' *\n' + - ' * @param list of the dates to print\n' + - ' */\n' + - ' private static void printDateList(List list) {\n' + - ' System.out.println(list.toString());\n' + - ' }\n' + - '}', - }, - { - fileName: 'src/de/test/MergeSort.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.util.*;\n' + - '\n' + - 'public class MergeSort implements SortStrategy {\n' + - '\n' + - ' /**\n' + - ' * Wrapper method for the real MergeSort algorithm.\n' + - ' *\n' + - ' * @param input the List of Dates to be sorted\n' + - ' */\n' + - ' public void performSort(List input) {\n' + - ' mergesort(input, 0, input.size() - 1);\n' + - ' }\n' + - '\n' + - ' // Recursive merge sort method\n' + - ' private void mergesort(List input, int low, int high) {\n' + - ' if (high - low < 1) {\n' + - ' return;\n' + - ' }\n' + - ' int mid = (low + high) / 2;\n' + - ' mergesort(input, low, mid);\n' + - ' mergesort(input, mid + 1, high);\n' + - ' merge(input, low, mid, high);\n' + - ' }\n' + - '\n' + - ' // Merge method\n' + - ' private void merge(List input, int low, int middle, int high) {\n' + - '\n' + - ' Date[] temp = new Date[high - low + 1];\n' + - ' int leftIndex = low;\n' + - ' int rightIndex = middle + 1;\n' + - ' int wholeIndex = 0;\n' + - ' while (leftIndex <= middle && rightIndex <= high) {\n' + - ' if (input.get(leftIndex).compareTo(input.get(rightIndex)) <= 0) {\n' + - ' temp[wholeIndex] = input.get(leftIndex++);\n' + - ' }\n' + - ' else {\n' + - ' temp[wholeIndex] = input.get(rightIndex++);\n' + - ' }\n' + - ' wholeIndex++;\n' + - ' }\n' + - ' if (leftIndex <= middle && rightIndex > high) {\n' + - ' while (leftIndex <= middle) {\n' + - ' temp[wholeIndex++] = input.get(leftIndex++);\n' + - ' }\n' + - ' }\n' + - ' else {\n' + - ' while (rightIndex <= high) {\n' + - ' temp[wholeIndex++] = input.get(rightIndex++);\n' + - ' }\n' + - ' }\n' + - ' for (wholeIndex = 0; wholeIndex < temp.length; wholeIndex++) {\n' + - ' input.set(wholeIndex + low, temp[wholeIndex]);\n' + - ' }\n' + - ' }\n' + - '}', - }, - { - fileName: 'src/de/test/Policy.java', - fileContent: - 'package de.test;\n' + - '\n' + - 'public class Policy {\n' + - '\n' + - ' private static final int DATES_SIZE_THRESHOLD = 10;\n' + - '\n' + - ' private Context context;\n' + - '\n' + - ' public Policy(Context context) {\n' + - ' this.context = context;\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Chooses a strategy depending on the number of date objects.\n' + - ' */\n' + - ' public void configure() {\n' + - ' if (this.context.getDates().size() > DATES_SIZE_THRESHOLD) {\n' + - ' System.out.println("More than " + DATES_SIZE_THRESHOLD + " dates, choosing merge sort!");\n' + - ' this.context.setSortAlgorithm(new MergeSort());\n' + - ' } else {\n' + - ' System.out.println("Less or equal than " + DATES_SIZE_THRESHOLD + " dates. choosing quick sort!");\n' + - ' this.context.setSortAlgorithm(new BubbleSort());\n' + - ' }\n' + - ' }\n' + - '}', - }, - ], -}; diff --git a/src/test/k6/resource/constants_python.js b/src/test/k6/resource/constants_python.js deleted file mode 100644 index e105600c76a1..000000000000 --- a/src/test/k6/resource/constants_python.js +++ /dev/null @@ -1,296 +0,0 @@ -export const programmingExerciseProblemStatementPython = - '# Sorting with the Strategy Pattern\n' + - '\n' + - 'In this exercise, we want to implement sorting algorithms and choose them based on runtime specific variables.\n' + - '\n' + - '### Part 1: Sorting\n' + - '\n' + - 'First, we need to implement two sorting algorithms, in this case `MergeSort` and `BubbleSort`.\n' + - '\n' + - '**You have the following tasks:**\n' + - '\n' + - '1. [task][Implement Bubble Sort](test_bubble_sort)\n' + - 'Implement the method `perform_sort(List)` in the class `BubbleSort`. Make sure to follow the Bubble Sort algorithm exactly.\n' + - '\n' + - '2. [task][Implement Merge Sort](test_merge_sort)\n' + - 'Implement the method `perform_sort(List)` in the class `MergeSort`. Make sure to follow the Merge Sort algorithm exactly.\n' + - '\n' + - '### Part 2: Strategy Pattern\n' + - '\n' + - 'We want the application to apply different algorithms for sorting a `List` of `Int` objects.\n' + - 'Use the strategy pattern to select the right sorting algorithm at runtime.\n' + - '\n' + - '**You have the following tasks:**\n' + - '\n' + - '1. [task][SortStrategy Interface](test_sort_strategy_class,test_sort_strategy_methods)\n' + - 'Create a `SortStrategy` abstract class with an abstract method and adjust the sorting algorithms so that they inherit from this class.\n' + - '\n' + - '2. [task][Context Class](test_context_attributes,test_context_methods)\n' + - 'Create and implement a `Context` class following the below class diagram\n' + - '\n' + - '3. [task][Context Policy](test_policy_constructor,test_policy_attributes,test_policy_methods)\n' + - 'Create and implement a `Policy` class following the below class diagram with a simple configuration mechanism:\n' + - '\n' + - '1. [task][Select MergeSort](test_merge_sort_struct,test_merge_sort_for_big_list)\n' + - 'Select `MergeSort` when the List has more than 10 dates.\n' + - '\n' + - '2. [task][Select BubbleSort](test_bubble_sort_struct,test_bubble_sort_for_small_list)\n' + - 'Select `BubbleSort` when the List has less or equal 10 dates.\n' + - '\n' + - '4. Complete the `Client` class which demonstrates switching between two strategies at runtime.\n' + - '\n' + - '@startuml\n' + - '\n' + - 'class Client {\n' + - '}\n' + - '\n' + - 'class Policy {\n' + - '+configure()\n' + - '}\n' + - '\n' + - 'class Context {\n' + - 'numbers: List\n' + - '+sort()\n' + - '}\n' + - '\n' + - 'abstract class SortStrategy {\n' + - '+perform_sort(List)\n' + - '}\n' + - '\n' + - 'class BubbleSort {\n' + - '+performSort(List)\n' + - '}\n' + - '\n' + - 'class MergeSort {\n' + - '+perform_sort(List)\n' + - '}\n' + - '\n' + - 'MergeSort -up-|> SortStrategy #testsColor(test_merge_sort_class)\n' + - 'BubbleSort -up-|> SortStrategy #testsColor(test_bubble_sort_class)\n' + - 'Policy -right-> Context #testsColor(test_policy_attributes): context\n' + - 'Context -right-> SortStrategy #testsColor(test_context_attributes): sortAlgorithm\n' + - 'Client .down.> Policy\n' + - 'Client .down.> Context\n' + - '\n' + - '@enduml\n' + - '\n' + - '\n' + - '### Part 3: Optional Challenges\n' + - '\n' + - '(These are not tested)\n' + - '\n' + - '1. Create a new class `QuickSort` that inherits from `SortStrategy` and implement the Quick Sort algorithm.\n' + - '\n' + - '2. Think about a useful decision in `Policy` when to use the new `QuickSort` algorithm.\n'; - -export const buildErrorContentPython = { - newFiles: [], - content: [ - { - fileName: 'context.py', - fileContent: 'a', - }, - ], -}; - -export const someSuccessfulErrorContentPython = { - newFiles: [], - content: [ - { - fileName: 'sort_strategy.py', - fileContent: - 'from abc import ABC, abstractmethod\n' + - '\n' + - '\n' + - 'class SortStrategy(ABC):\n' + - '\n' + - '\t@abstractmethod\n' + - '\tdef perform_sort(self, array):\n' + - '\t\tpass', - }, - ], -}; - -export const allSuccessfulContentPython = { - newFiles: [], - content: [ - { - fileName: 'sorting_algorithms.py', - fileContent: - 'from .sort_strategy import SortStrategy\n' + - '\n' + - '\n' + - 'class BubbleSort(SortStrategy):\n' + - '\n' + - '\tdef perform_sort(self, arr):\n' + - '\t\tif arr is None:\n' + - '\t\t\treturn\n' + - '\n' + - '\t\tfor i in range(len(arr))[::-1]:\n' + - '\t\t\tfor j in range(i):\n' + - '\t\t\t\tif arr[j] > arr[j + 1]:\n' + - '\t\t\t\t\tarr[j], arr[j + 1] = arr[j + 1], arr[j]\n' + - '\n' + - '\n' + - 'class MergeSort(SortStrategy):\n' + - '\n' + - '\tdef perform_sort(self, arr):\n' + - '\t\tself.__merge_sort(arr, 0, len(arr) - 1)\n' + - '\n' + - '\tdef __merge_sort(self, arr, low, high):\n' + - '\t\tif high - low < 1:\n' + - '\t\t\treturn\n' + - '\n' + - '\t\tmid = int((low + high) / 2)\n' + - '\t\tself.__merge_sort(arr, low, mid)\n' + - '\t\tself.__merge_sort(arr, mid + 1, high)\n' + - '\t\tself.__merge(arr, low, mid, high)\n' + - '\n' + - '\tdef __merge(self, arr, low, mid, high):\n' + - '\t\ttemp = [None] * (high - low + 1)\n' + - '\n' + - '\t\tleft_index = low\n' + - '\t\tright_index = mid + 1\n' + - '\t\twhole_index = 0\n' + - '\n' + - '\t\twhile left_index <= mid and right_index <= high:\n' + - '\t\t\tif arr[left_index] <= arr[right_index]:\n' + - '\t\t\t\ttemp[whole_index] = arr[left_index]\n' + - '\t\t\t\tleft_index += 1\n' + - '\t\t\telse:\n' + - '\t\t\t\ttemp[whole_index] = arr[right_index]\n' + - '\t\t\t\tright_index += 1\n' + - '\t\t\twhole_index += 1\n' + - '\n' + - '\t\tif left_index <= mid and right_index > high:\n' + - '\t\t\twhile left_index <= mid:\n' + - '\t\t\t\ttemp[whole_index] = arr[left_index]\n' + - '\t\t\t\twhole_index += 1\n' + - '\t\t\t\tleft_index += 1\n' + - '\t\telse:\n' + - '\t\t\twhile right_index <= high:\n' + - '\t\t\t\ttemp[whole_index] = arr[right_index]\n' + - '\t\t\t\twhole_index += 1\n' + - '\t\t\t\tright_index += 1\n' + - '\n' + - '\t\tfor whole_index in range(len(temp)):\n' + - '\t\t\tarr[whole_index + low] = temp[whole_index]', - }, - { - fileName: 'policy.py', - fileContent: - 'from .sorting_algorithms import *\n' + - '\n' + - '\n' + - 'class Policy:\n' + - '\tcontext = None\n' + - '\n' + - '\tdef __init__(self, context):\n' + - '\t\tself.context = context\n' + - '\n' + - '\tdef configure(self):\n' + - '\t\tif len(self.context.numbers) > 10:\n' + - "\t\t\tprint('More than 10 numbers, choosing merge sort!')\n" + - '\t\t\tself.context.sorting_algorithm = MergeSort()\n' + - '\t\telse:\n' + - "\t\t\tprint('Less or equal than 10 numbers, choosing bubble sort!')\n" + - '\t\t\tself.context.sorting_algorithm = BubbleSort()\n', - }, - { - fileName: 'context.py', - fileContent: - 'package de.test;\n' + - '\n' + - 'import java.text.*;\n' + - 'import java.util.*;\n' + - '\n' + - 'public class Client {\n' + - '\n' + - ' /**\n' + - ' * Main method.\n' + - ' * Add code to demonstrate your implementation here.\n' + - ' */\n' + - ' public static void main(String[] args) throws ParseException {\n' + - '\n' + - ' // Init Context and Policy\n' + - '\n' + - ' Context sortingContext = new Context();\n' + - ' Policy policy = new Policy(sortingContext);\n' + - '\n' + - ' // Run 10 times to simulate different sorting strategies\n' + - ' for (int i = 0; i < 10; i++) {\n' + - ' List dates = createRandomDatesList();\n' + - '\n' + - ' sortingContext.setDates(dates);\n' + - ' policy.configure();\n' + - '\n' + - ' System.out.print("Unsorted Array of course dates = ");\n' + - ' printDateList(dates);\n' + - '\n' + - ' sortingContext.sort();\n' + - '\n' + - ' System.out.print("Sorted Array of course dates = ");\n' + - ' printDateList(dates);\n' + - ' }\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Generates an Array of random Date objects with random Array size between 5 and 15.\n' + - ' */\n' + - ' private static List createRandomDatesList() throws ParseException {\n' + - ' int listLength = randomIntegerWithin(5, 15);\n' + - ' List list = new ArrayList<>();\n' + - '\n' + - ' SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");\n' + - ' Date lowestDate = dateFormat.parse("08.11.2016");\n' + - ' Date highestDate = dateFormat.parse("15.04.2017");\n' + - '\n' + - ' for (int i = 0; i < listLength; i++) {\n' + - ' Date randomDate = randomDateWithin(lowestDate, highestDate);\n' + - ' list.add(randomDate);\n' + - ' }\n' + - ' return list;\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Creates a random Date within given Range\n' + - ' */\n' + - ' private static Date randomDateWithin(Date low, Date high) {\n' + - ' long randomLong = randomLongWithin(low.getTime(), high.getTime());\n' + - ' return new Date(randomLong);\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Creates a random Long within given Range\n' + - ' */\n' + - ' private static long randomLongWithin(long low, long high) {\n' + - ' return low + (long) (Math.random() * (high - low));\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Creates a random Integer within given Range\n' + - ' */\n' + - ' private static int randomIntegerWithin(int low, int high) {\n' + - ' return low + (int) (Math.random() * (high - low));\n' + - ' }\n' + - '\n' + - ' /**\n' + - ' * Prints out given Array of Date objects\n' + - ' */\n' + - ' private static void printDateList(List list) {\n' + - ' System.out.println(list.toString());\n' + - ' }\n' + - '}', - }, - { - fileName: 'context.py', - fileContent: - 'class Context:\n' + - '\tsorting_algorithm = None\n' + - '\tnumbers = None\n' + - '\n' + - '\tdef sort(self):\n' + - '\t\tself.sorting_algorithm.perform_sort(self.numbers)\n', - }, - ], -}; diff --git a/src/test/k6/util/utils.js b/src/test/k6/util/utils.js deleted file mode 100644 index 06789f267b2b..000000000000 --- a/src/test/k6/util/utils.js +++ /dev/null @@ -1,41 +0,0 @@ -// https://stackoverflow.com/questions/10726909/random-alpha-numeric-string-in-javascript -const randString = function randomString(length, chars) { - let result = ''; - for (let i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; - return result; -}; - -export function nextAlphanumeric(length) { - // helpers for random titles - let allowedChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - - return randString(length, allowedChars); -} - -export function nextWSSubscriptionId() { - return Math.random() - .toString(36) - .replace(/[^a-z]+/g, '') - .slice(0, 12); -} - -export function randomArrayValue(array) { - return array[Math.floor(Math.random() * array.length)]; -} - -export function extractDestination(message) { - return extractHeader(message, 'destination'); -} - -export function extractHeader(message, header) { - const headers = extractSTOMPHeaders(message); - return headers.match('(?:.*:.*|\\n)*' + header + ':(.*)\\n(?:.*:.*|\\n)*')[1]; -} - -export function extractSTOMPHeaders(message) { - return message.match('MESSAGE\\n((?:.|\\n)*)\\n\\n(?:(?:.|\\n)*)')[1]; -} - -export function extractMessageContent(message) { - return message.match('MESSAGE\n(?:.|\\n)*\\n\\n((?:.|\\n)*)\u0000')[1]; -} From 0070ab879b4fdc1cf82934345c8905770704a067 Mon Sep 17 00:00:00 2001 From: Tobias Lippert <84102468+tobias-lippert@users.noreply.github.com> Date: Sat, 30 Sep 2023 09:21:06 +0200 Subject: [PATCH 06/39] General: Include quiz exercise information and submissions in course and exam archive (#7256) --- .../StudentParticipationRepository.java | 8 ++ .../export/CourseExamExportService.java | 13 +- ...DataExportQuizExerciseCreationService.java | 100 +++++++++++++-- .../service/export/DataExportUtil.java | 4 +- ...zExerciseWithSubmissionsExportService.java | 97 +++++++++++++++ .../artemis/course/CourseTestService.java | 114 ++++++++++++++++++ ...rseBitbucketBambooJiraIntegrationTest.java | 39 ++++++ 7 files changed, 357 insertions(+), 18 deletions(-) create mode 100644 src/main/java/de/tum/in/www1/artemis/service/export/QuizExerciseWithSubmissionsExportService.java diff --git a/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java index 4a7d7bdace73..6abb8eae5d58 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/StudentParticipationRepository.java @@ -993,6 +993,14 @@ GROUP BY COALESCE(p.student.id, ts.id) """) Set sumPresentationScoreByStudentIdsAndCourseId(@Param("courseId") long courseId, @Param("studentIds") Set studentIds); + @Query(""" + SELECT p FROM StudentParticipation p + LEFT JOIN FETCH p.submissions s + WHERE p.exercise.id = :exerciseId + + """) + Set findByExerciseIdWithEagerSubmissions(long exerciseId); + /** * Helper interface to map the result of the {@link #sumPresentationScoreByStudentIdsAndCourseId(long, Set)} query to a map. */ diff --git a/src/main/java/de/tum/in/www1/artemis/service/export/CourseExamExportService.java b/src/main/java/de/tum/in/www1/artemis/service/export/CourseExamExportService.java index ddd5c15e5a5a..371e7ce1c2f6 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/export/CourseExamExportService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/export/CourseExamExportService.java @@ -49,6 +49,8 @@ public class CourseExamExportService { private final ModelingExerciseWithSubmissionsExportService modelingExerciseWithSubmissionsExportService; + private final QuizExerciseWithSubmissionsExportService quizExerciseWithSubmissionsExportService; + private final FileService fileService; private final ExamRepository examRepository; @@ -58,14 +60,15 @@ public class CourseExamExportService { public CourseExamExportService(ProgrammingExerciseExportService programmingExerciseExportService, ZipFileService zipFileService, FileService fileService, TextExerciseWithSubmissionsExportService textExerciseWithSubmissionsExportService, FileUploadExerciseWithSubmissionsExportService fileUploadExerciseWithSubmissionsExportService, - ModelingExerciseWithSubmissionsExportService modelingExerciseWithSubmissionsExportService, WebsocketMessagingService websocketMessagingService, - ExamRepository examRepository) { + ModelingExerciseWithSubmissionsExportService modelingExerciseWithSubmissionsExportService, + QuizExerciseWithSubmissionsExportService quizExerciseWithSubmissionsExportService, WebsocketMessagingService websocketMessagingService, ExamRepository examRepository) { this.programmingExerciseExportService = programmingExerciseExportService; this.zipFileService = zipFileService; this.fileService = fileService; this.textExerciseWithSubmissionsExportService = textExerciseWithSubmissionsExportService; this.fileUploadExerciseWithSubmissionsExportService = fileUploadExerciseWithSubmissionsExportService; this.modelingExerciseWithSubmissionsExportService = modelingExerciseWithSubmissionsExportService; + this.quizExerciseWithSubmissionsExportService = quizExerciseWithSubmissionsExportService; this.websocketMessagingService = websocketMessagingService; this.examRepository = examRepository; } @@ -397,9 +400,9 @@ else if (exercise instanceof ModelingExercise) { exportedExercises.add(modelingExerciseWithSubmissionsExportService.exportModelingExerciseWithSubmissions(exercise, submissionsExportOptions, exerciseExportDir, exportErrors, reportData)); } - else if (exercise instanceof QuizExercise) { - // TODO: Quiz submissions aren't supported yet - continue; + else if (exercise instanceof QuizExercise quizExercise) { + exportedExercises.add(quizExerciseWithSubmissionsExportService.exportExerciseWithSubmissions(quizExercise, exerciseExportDir, exportErrors, reportData)); + } else { // Exercise is not supported so skip diff --git a/src/main/java/de/tum/in/www1/artemis/service/export/DataExportQuizExerciseCreationService.java b/src/main/java/de/tum/in/www1/artemis/service/export/DataExportQuizExerciseCreationService.java index dcb16d013298..df65b9cbb935 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/export/DataExportQuizExerciseCreationService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/export/DataExportQuizExerciseCreationService.java @@ -7,6 +7,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.validation.constraints.NotNull; + import org.apache.commons.io.FileUtils; import org.springframework.stereotype.Service; @@ -14,13 +16,16 @@ import de.tum.in.www1.artemis.domain.quiz.*; import de.tum.in.www1.artemis.repository.QuizQuestionRepository; import de.tum.in.www1.artemis.repository.QuizSubmissionRepository; +import de.tum.in.www1.artemis.repository.StudentParticipationRepository; import de.tum.in.www1.artemis.service.DragAndDropQuizAnswerConversionService; +import de.tum.in.www1.artemis.service.archival.ArchivalReportEntry; /** * A service to create the data export for quiz exercise participations. * This includes creating a pdf highlighting the submitted answers for drag and drop questions and * txt files containing the submitted answers for multiple choice and short answer questions. * Additionally, the results can be included in the export if the due date is over. + * This service is also used to export the student submissions for archival. */ @Service public class DataExportQuizExerciseCreationService { @@ -33,11 +38,26 @@ public class DataExportQuizExerciseCreationService { private final DragAndDropQuizAnswerConversionService dragAndDropQuizAnswerConversionService; + private final StudentParticipationRepository studentParticipationRepository; + public DataExportQuizExerciseCreationService(QuizSubmissionRepository quizSubmissionRepository, QuizQuestionRepository quizQuestionRepository, - DragAndDropQuizAnswerConversionService dragAndDropQuizAnswerConversionService) { + DragAndDropQuizAnswerConversionService dragAndDropQuizAnswerConversionService, StudentParticipationRepository studentParticipationRepository) { this.quizSubmissionRepository = quizSubmissionRepository; this.quizQuestionRepository = quizQuestionRepository; this.dragAndDropQuizAnswerConversionService = dragAndDropQuizAnswerConversionService; + this.studentParticipationRepository = studentParticipationRepository; + } + + /** + * Creates an export for an exercise participation of a quiz exercise. + * + * @param quizExercise the quiz exercise for which the export should be created + * @param participation the participation for which the export should be created + * @param outputDir the directory in which the export should be stored + * @param includeResults true if the results should be included in the export (if the due date is over) + */ + public void createQuizAnswersExport(QuizExercise quizExercise, StudentParticipation participation, Path outputDir, boolean includeResults) { + createQuizAnswersExport(quizExercise, participation, outputDir, includeResults, Optional.empty()); } /** @@ -48,14 +68,15 @@ public DataExportQuizExerciseCreationService(QuizSubmissionRepository quizSubmis * @param participation the participation for which the export should be created * @param outputDir the directory in which the export should be stored * @param includeResults true if the results should be included in the export (if the due date is over) - * @throws IOException if an error occurs while accessing the file system. + * @param exportErrors an optional list of errors that occurred during the export + * @return true if the export was successful, false otherwise */ - public void createQuizAnswersExport(QuizExercise quizExercise, StudentParticipation participation, Path outputDir, boolean includeResults) throws IOException { + private boolean createQuizAnswersExport(QuizExercise quizExercise, StudentParticipation participation, Path outputDir, boolean includeResults, + Optional> exportErrors) { Set quizQuestions = quizQuestionRepository.getQuizQuestionsByExerciseId(quizExercise.getId()); - QuizSubmission quizSubmission; - + boolean errorOccurred = false; for (var submission : participation.getSubmissions()) { - quizSubmission = quizSubmissionRepository.findWithEagerSubmittedAnswersById(submission.getId()); + QuizSubmission quizSubmission = quizSubmissionRepository.findWithEagerSubmittedAnswersById(submission.getId()); List multipleChoiceQuestionsSubmissions = new ArrayList<>(); List shortAnswerQuestionsSubmissions = new ArrayList<>(); for (var question : quizQuestions) { @@ -63,7 +84,14 @@ public void createQuizAnswersExport(QuizExercise quizExercise, StudentParticipat // if this question wasn't answered, the submitted answer is null if (submittedAnswer != null) { if (submittedAnswer instanceof DragAndDropSubmittedAnswer dragAndDropSubmittedAnswer) { - dragAndDropQuizAnswerConversionService.convertDragAndDropQuizAnswerAndStoreAsPdf(dragAndDropSubmittedAnswer, outputDir, includeResults); + try { + dragAndDropQuizAnswerConversionService.convertDragAndDropQuizAnswerAndStoreAsPdf(dragAndDropSubmittedAnswer, outputDir, includeResults); + } + catch (IOException e) { + errorOccurred = true; + exportErrors.ifPresent(errors -> errors.add("Failed to export drag and drop answers for quiz submission " + submission.getId() + " of quiz exercise " + + quizExercise.getTitle() + " with id " + quizExercise.getId())); + } } else if (submittedAnswer instanceof ShortAnswerSubmittedAnswer shortAnswerSubmittedAnswer) { shortAnswerQuestionsSubmissions.add(createExportForShortAnswerQuestion(shortAnswerSubmittedAnswer, includeResults)); @@ -74,15 +102,65 @@ else if (submittedAnswer instanceof MultipleChoiceSubmittedAnswer multipleChoice } } if (!multipleChoiceQuestionsSubmissions.isEmpty()) { - FileUtils.writeLines(outputDir.resolve("quiz_submission_" + submission.getId() + "_multiple_choice_questions_answers" + TXT_FILE_EXTENSION).toFile(), - StandardCharsets.UTF_8.name(), multipleChoiceQuestionsSubmissions); + try { + FileUtils.writeLines(outputDir.resolve("quiz_submission_" + submission.getId() + "_multiple_choice_questions_answers" + TXT_FILE_EXTENSION).toFile(), + StandardCharsets.UTF_8.name(), multipleChoiceQuestionsSubmissions); + } + catch (IOException e) { + errorOccurred = true; + exportErrors.ifPresent(errors -> errors.add("Failed to export multiple choice answers for quiz submission " + submission.getId() + " of quiz exercise " + + quizExercise.getTitle() + " with id " + quizExercise.getId())); + } } if (!shortAnswerQuestionsSubmissions.isEmpty()) { - FileUtils.writeLines(outputDir.resolve("quiz_submission_" + submission.getId() + "_short_answer_questions_answers" + TXT_FILE_EXTENSION).toFile(), - StandardCharsets.UTF_8.name(), shortAnswerQuestionsSubmissions); + try { + FileUtils.writeLines(outputDir.resolve("quiz_submission_" + submission.getId() + "_short_answer_questions_answers" + TXT_FILE_EXTENSION).toFile(), + StandardCharsets.UTF_8.name(), shortAnswerQuestionsSubmissions); + } + catch (IOException e) { + errorOccurred = true; + exportErrors.ifPresent(errors -> errors.add("Failed to export short answer answers for quiz submission " + submission.getId() + " of quiz exercise " + + quizExercise.getTitle() + " with id " + quizExercise.getId())); + } } } + return !errorOccurred; + } + /** + * Exports the student submissions for a quiz exercise. + * + * @param quizExercise the quiz exercise for which the submissions should be exported + * @param exerciseDir the directory in which the submissions should be stored + * @param exportErrors a list of errors that occurred during the export + * @param archivalReportEntries a list of report entries to report failed/successful exports + */ + public void exportStudentSubmissionsForArchival(QuizExercise quizExercise, Path exerciseDir, @NotNull List exportErrors, + List archivalReportEntries) { + var participations = studentParticipationRepository.findByExerciseIdWithEagerSubmissions(quizExercise.getId()); + int participationsWithoutSubmission = 0; + int successfulExports = 0; + for (var participation : participations) { + if (participation.getSubmissions().isEmpty()) { + participationsWithoutSubmission++; + continue; + } + var outputDir = exerciseDir.resolve("participation-" + participation.getId() + "-" + participation.getParticipantIdentifier()); + try { + DataExportUtil.createDirectoryIfNotExistent(outputDir); + } + catch (IOException e) { + exportErrors.add("Failed to create directory for quiz exercise participation " + participation.getId() + "of quiz exercise " + quizExercise.getTitle() + " with id " + + quizExercise.getId() + ". Won't export this participation."); + continue; + } + boolean successful = createQuizAnswersExport(quizExercise, participation, outputDir, true, Optional.ofNullable(exportErrors)); + if (successful) { + successfulExports++; + } + } + archivalReportEntries + .add(new ArchivalReportEntry(quizExercise, quizExercise.getSanitizedExerciseTitle(), participations.size(), successfulExports, participationsWithoutSubmission)); } /** diff --git a/src/main/java/de/tum/in/www1/artemis/service/export/DataExportUtil.java b/src/main/java/de/tum/in/www1/artemis/service/export/DataExportUtil.java index fcd11d0267f0..7b27e55e7df7 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/export/DataExportUtil.java +++ b/src/main/java/de/tum/in/www1/artemis/service/export/DataExportUtil.java @@ -9,7 +9,7 @@ /** * A utility class for data export containing helper methods that are frequently used in the different services responsible for creating data exports. */ -final class DataExportUtil { +public final class DataExportUtil { private static final String COURSE_DIRECTORY_PREFIX = "course_"; @@ -23,7 +23,7 @@ private DataExportUtil() { * @param directory the directory to create * @throws IOException if an error occurs while accessing the file system */ - static void createDirectoryIfNotExistent(Path directory) throws IOException { + public static void createDirectoryIfNotExistent(Path directory) throws IOException { if (!Files.exists(directory)) { Files.createDirectories(directory); } diff --git a/src/main/java/de/tum/in/www1/artemis/service/export/QuizExerciseWithSubmissionsExportService.java b/src/main/java/de/tum/in/www1/artemis/service/export/QuizExerciseWithSubmissionsExportService.java new file mode 100644 index 000000000000..38ce256caf01 --- /dev/null +++ b/src/main/java/de/tum/in/www1/artemis/service/export/QuizExerciseWithSubmissionsExportService.java @@ -0,0 +1,97 @@ +package de.tum.in.www1.artemis.service.export; + +import java.io.IOException; +import java.net.URI; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.io.FileUtils; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import de.tum.in.www1.artemis.domain.quiz.DragAndDropQuestion; +import de.tum.in.www1.artemis.domain.quiz.QuizExercise; +import de.tum.in.www1.artemis.repository.QuizExerciseRepository; +import de.tum.in.www1.artemis.service.FilePathService; +import de.tum.in.www1.artemis.service.FileService; +import de.tum.in.www1.artemis.service.archival.ArchivalReportEntry; + +/** + * Service responsible for exporting quiz exercises with their submissions. + */ +@Service +public class QuizExerciseWithSubmissionsExportService { + + private final QuizExerciseRepository quizExerciseRepository; + + private final ObjectMapper objectMapper; + + private final DataExportQuizExerciseCreationService dataExportQuizExerciseCreationService; + + private final FileService fileService; + + private final FilePathService filePathService; + + public QuizExerciseWithSubmissionsExportService(QuizExerciseRepository quizExerciseRepository, MappingJackson2HttpMessageConverter springMvcJacksonConverter, + DataExportQuizExerciseCreationService dataExportQuizExerciseCreationService, FileService fileService, FilePathService filePathService) { + this.quizExerciseRepository = quizExerciseRepository; + this.objectMapper = springMvcJacksonConverter.getObjectMapper(); + this.dataExportQuizExerciseCreationService = dataExportQuizExerciseCreationService; + this.fileService = fileService; + this.filePathService = filePathService; + } + + /** + * Exports the given quiz exercise as JSON file with all its submissions and stores it in the given directory. + * + * @param quizExercise the quiz exercise to export + * @param exerciseExportDir the directory where the quiz exercise should be exported to + * @param exportErrors a list of errors that occurred during the export + * @param reportEntries a list of report entries that occurred during the export + * @return the path to the directory where the quiz exercise was exported to + */ + public Path exportExerciseWithSubmissions(QuizExercise quizExercise, Path exerciseExportDir, List exportErrors, List reportEntries) { + quizExercise = quizExerciseRepository.findByIdWithQuestionsAndStatisticsAndCompetenciesElseThrow(quizExercise.getId()); + // do not store unnecessary information in the JSON file + quizExercise.setCourse(null); + quizExercise.setExerciseGroup(null); + try { + fileService.writeObjectToJsonFile(quizExercise, objectMapper, exerciseExportDir.resolve("Exercise-Details-" + quizExercise.getSanitizedExerciseTitle() + ".json")); + } + catch (IOException e) { + exportErrors.add("Failed to export quiz exercise details " + quizExercise.getTitle() + " with id " + quizExercise.getId() + " due to a JSON processing error."); + } + List imagesToExport = new ArrayList<>(); + for (var quizQuestion : quizExercise.getQuizQuestions()) { + if (quizQuestion instanceof DragAndDropQuestion dragAndDropQuestion) { + if (dragAndDropQuestion.getBackgroundFilePath() != null) { + imagesToExport.add(filePathService.actualPathForPublicPath(URI.create(dragAndDropQuestion.getBackgroundFilePath()))); + } + for (var dragItem : dragAndDropQuestion.getDragItems()) { + if (dragItem.getPictureFilePath() != null) { + imagesToExport.add(filePathService.actualPathForPublicPath(URI.create(dragItem.getPictureFilePath()))); + + } + } + if (!imagesToExport.isEmpty()) { + var imagesDir = exerciseExportDir.resolve("images-for-drag-and-drop-question-" + dragAndDropQuestion.getId()); + fileService.createDirectory(imagesDir); + imagesToExport.forEach(path -> { + try { + FileUtils.copyFile(path.toFile(), imagesDir.resolve(path.getFileName()).toFile()); + } + catch (IOException e) { + exportErrors.add("Failed to export image file with file path " + path + " for drag and drop question with id " + dragAndDropQuestion.getId()); + } + }); + } + } + } + dataExportQuizExerciseCreationService.exportStudentSubmissionsForArchival(quizExercise, exerciseExportDir, exportErrors, reportEntries); + return exerciseExportDir; + } + +} diff --git a/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java b/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java index 17598432a202..66515fcfd926 100644 --- a/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java +++ b/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java @@ -5,10 +5,12 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.awaitility.Awaitility.await; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.argThat; import static org.mockito.Mockito.mockStatic; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import java.io.File; import java.io.IOException; import java.net.URI; import java.nio.file.Files; @@ -17,8 +19,10 @@ import java.time.Instant; import java.time.ZonedDateTime; import java.util.*; +import java.util.function.Predicate; import java.util.stream.Collectors; +import javax.imageio.ImageIO; import javax.validation.constraints.NotNull; import org.assertj.core.data.Offset; @@ -53,12 +57,14 @@ import de.tum.in.www1.artemis.domain.modeling.ModelingSubmission; import de.tum.in.www1.artemis.domain.participation.*; import de.tum.in.www1.artemis.domain.quiz.QuizExercise; +import de.tum.in.www1.artemis.domain.quiz.QuizSubmission; import de.tum.in.www1.artemis.exam.ExamFactory; import de.tum.in.www1.artemis.exam.ExamUtilService; import de.tum.in.www1.artemis.exercise.ExerciseUtilService; import de.tum.in.www1.artemis.exercise.modelingexercise.ModelingExerciseUtilService; import de.tum.in.www1.artemis.exercise.programmingexercise.MockDelegate; import de.tum.in.www1.artemis.exercise.programmingexercise.ProgrammingExerciseUtilService; +import de.tum.in.www1.artemis.exercise.quizexercise.QuizExerciseUtilService; import de.tum.in.www1.artemis.exercise.textexercise.TextExerciseFactory; import de.tum.in.www1.artemis.exercise.textexercise.TextExerciseUtilService; import de.tum.in.www1.artemis.lecture.LectureUtilService; @@ -75,6 +81,7 @@ import de.tum.in.www1.artemis.service.dto.UserDTO; import de.tum.in.www1.artemis.service.dto.UserPublicInfoDTO; import de.tum.in.www1.artemis.service.export.CourseExamExportService; +import de.tum.in.www1.artemis.service.export.DataExportUtil; import de.tum.in.www1.artemis.service.notifications.GroupNotificationService; import de.tum.in.www1.artemis.service.scheduled.ParticipantScoreScheduleService; import de.tum.in.www1.artemis.team.TeamUtilService; @@ -216,6 +223,9 @@ public class CourseTestService { @Autowired private ParticipantScoreScheduleService participantScoreScheduleService; + @Autowired + private QuizExerciseUtilService quizExerciseUtilService; + private static final int numberOfStudents = 8; private static final int numberOfTutors = 5; @@ -1914,6 +1924,109 @@ public Course testArchiveCourseWithTestModelingAndFileUploadExercises() throws E return updatedCourse; } + public void testArchiveCourseWithQuizExercise(String userPrefix) throws Exception { + var course = courseUtilService.createCourse(); + var quizSubmission = quizExerciseUtilService.addQuizExerciseToCourseWithParticipationAndSubmissionForUser(course, userPrefix + "student1", false); + var quizExercise = quizExerciseUtilService.createQuiz(ZonedDateTime.now().minusHours(5), ZonedDateTime.now().minusHours(2), QuizMode.INDIVIDUAL); + quizExercise = exerciseRepo.save(quizExercise); + participationUtilService.createAndSaveParticipationForExercise(quizExercise, userPrefix + "student2"); + var archivePath = courseExamExportService.exportCourse(course, courseArchivesDirPath, Collections.synchronizedList(new ArrayList<>())); + assertThat(archivePath).isNotEmpty(); + extractAndAssertContent(archivePath.orElseThrow(), quizSubmission); + } + + public void testArchiveCourseWithQuizExerciseCannotExportExerciseDetails() throws IOException { + var course = courseUtilService.createCourse(); + var quizSubmission = quizExerciseUtilService.addQuizExerciseToCourseWithParticipationAndSubmissionForUser(course, userPrefix + "student1", false); + var archivePath = courseExamExportService.exportCourse(course, courseArchivesDirPath, Collections.synchronizedList(new ArrayList<>())); + assertThat(archivePath).isNotEmpty(); + Predicate missingPathPredicate = path -> "Exercise-Details-quiz.json".equals(path.getFileName().toString()); + extractAndAssertMissingContent(archivePath.orElseThrow(), quizSubmission, missingPathPredicate); + } + + public void testArchiveCourseWithQuizExerciseCannotExportDragAndDropSubmission() throws IOException { + List exportErrors = Collections.synchronizedList(new ArrayList<>()); + var course = courseUtilService.createCourse(); + var quizSubmission = quizExerciseUtilService.addQuizExerciseToCourseWithParticipationAndSubmissionForUser(course, userPrefix + "student1", false); + try (MockedStatic mockedImageIO = mockStatic(ImageIO.class)) { + mockedImageIO.when(() -> ImageIO.read(any(File.class))).thenThrow(new IOException()); + var archivePath = courseExamExportService.exportCourse(course, courseArchivesDirPath, exportErrors); + assertThat(archivePath).isNotEmpty(); + Predicate missingPathPredicate = path -> path.getFileName().toString().contains("dragAndDropQuestion") && path.getFileName().toString().endsWith(".pdf"); + extractAndAssertMissingContent(archivePath.orElseThrow(), quizSubmission, missingPathPredicate); + } + } + + public void testArchiveCourseWithQuizExerciseCannotCreateParticipationDirectory() throws IOException { + List exportErrors = Collections.synchronizedList(new ArrayList<>()); + var course = courseUtilService.createCourse(); + quizExerciseUtilService.addQuizExerciseToCourseWithParticipationAndSubmissionForUser(course, userPrefix + "student1", false); + try (MockedStatic mockedFiles = mockStatic(DataExportUtil.class)) { + mockedFiles.when(() -> DataExportUtil.createDirectoryIfNotExistent(any())).thenThrow(new IOException()); + var archivePath = courseExamExportService.exportCourse(course, courseArchivesDirPath, exportErrors); + assertThat(archivePath).isNotEmpty(); + } + + } + + public void testArchiveCourseWithQuizExerciseCannotExportMCOrSAAnswersSubmission(String fileName, String dynamicErrorMsg) throws IOException { + List exportErrors = Collections.synchronizedList(new ArrayList<>()); + var course = courseUtilService.createCourse(); + var quizSubmission = quizExerciseUtilService.addQuizExerciseToCourseWithParticipationAndSubmissionForUser(course, userPrefix + "student1", false); + try (MockedStatic mockedFiles = mockStatic(org.apache.commons.io.FileUtils.class)) { + mockedFiles.when(() -> org.apache.commons.io.FileUtils.writeLines(argThat(file -> file.toString().contains(fileName)), anyString(), anyList())) + .thenThrow(new IOException()); + var archivePath = courseExamExportService.exportCourse(course, courseArchivesDirPath, exportErrors); + assertThat(archivePath).isNotEmpty(); + Predicate missingPathPredicate = path -> path.getFileName().toString().contains(fileName) && path.getFileName().toString().endsWith(".txt"); + extractAndAssertMissingContent(archivePath.orElseThrow(), quizSubmission, missingPathPredicate); + assertThat(exportErrors).hasSize(1); + assertThat(exportErrors.get(0)).contains("Failed to export " + dynamicErrorMsg + " answers"); + } + } + + private void extractAndAssertMissingContent(Path courseArchivePath, QuizSubmission quizSubmission, Predicate missingPathPredicate) throws IOException { + zipFileTestUtilService.extractZipFileRecursively(courseArchivePath.toString()); + var exercise = quizSubmission.getParticipation().getExercise(); + StudentParticipation studentParticipation = (StudentParticipation) quizSubmission.getParticipation(); + var courseArchiveDir = courseArchivePath.getParent().resolve(courseArchivePath.getFileName().toString().replace(".zip", "")); + assertThat(courseArchiveDir).exists(); + + try (var files = Files.walk(courseArchiveDir)) { + assertThat(files.filter(file -> Files.isDirectory(file) || Files.isRegularFile(file))) + // exercise directory + .anyMatch(file -> (exercise.getSanitizedExerciseTitle() + "_" + exercise.getId()).equals(file.getFileName().toString())) + // participation directory + .anyMatch( + file -> ("participation-" + studentParticipation.getId() + "-" + studentParticipation.getParticipantIdentifier()).equals(file.getFileName().toString())) + .noneMatch(missingPathPredicate); + } + } + + private void extractAndAssertContent(Path courseArchivePath, QuizSubmission quizSubmission) throws IOException { + zipFileTestUtilService.extractZipFileRecursively(courseArchivePath.toString()); + var exercise = quizSubmission.getParticipation().getExercise(); + StudentParticipation studentParticipation = (StudentParticipation) quizSubmission.getParticipation(); + var courseArchiveDir = courseArchivePath.getParent().resolve(courseArchivePath.getFileName().toString().replace(".zip", "")); + assertThat(courseArchiveDir).exists(); + try (var files = Files.walk(courseArchiveDir)) { + assertThat(files.filter(file -> Files.isDirectory(file) || Files.isRegularFile(file))) + // exercise directory + .anyMatch(file -> (exercise.getSanitizedExerciseTitle() + "_" + exercise.getId()).equals(file.getFileName().toString())) + // participation directory + .anyMatch( + file -> ("participation-" + studentParticipation.getId() + "-" + studentParticipation.getParticipantIdentifier()).equals(file.getFileName().toString())) + // exercise details file + .anyMatch(file -> ("Exercise-Details-quiz.json").equals(file.getFileName().toString())) + // drag and drop question submission pdf + .anyMatch(file -> file.getFileName().toString().contains("dragAndDropQuestion") && file.getFileName().toString().endsWith(".pdf")) + // MC submission txt file + .anyMatch(file -> file.getFileName().toString().contains("multiple_choice_questions_answers") && file.getFileName().toString().endsWith(".txt")) + // short answer submission txt file + .anyMatch(file -> file.getFileName().toString().contains("short_answer_questions_answers") && file.getFileName().toString().endsWith(".txt")); + } + } + /** * Test */ @@ -3115,4 +3228,5 @@ public void testUpdateCourseEnableLearningPaths() throws Exception { final var learningPath = learningPathRepository.findByCourseIdAndUserId(course.getId(), student.getId()); assertThat(learningPath).as("enable learning paths triggers generation").isPresent(); } + } diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java index 1b94cc3cdf81..a39b981afe99 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java @@ -10,10 +10,13 @@ import java.util.HashSet; import java.util.Optional; import java.util.Set; +import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -673,6 +676,42 @@ void testArchiveCourseWithTestModelingAndFileUploadExercises() throws Exception courseTestService.testArchiveCourseWithTestModelingAndFileUploadExercises(); } + @Test + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + void testArchiveCourseWithQuizExercise() throws Exception { + courseTestService.testArchiveCourseWithQuizExercise(TEST_PREFIX); + } + + @Test + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + void testArchiveCourseWithQuizExerciseCannotExportExerciseDetails() throws Exception { + doThrow(new IOException("Error")).when(fileService).writeObjectToJsonFile(any(), any(ObjectMapper.class), any(Path.class)); + courseTestService.testArchiveCourseWithQuizExerciseCannotExportExerciseDetails(); + } + + @ParameterizedTest + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + @MethodSource("provideFileNameAndErrorMsg") + void testArchiveCourseWithQuizExerciseCannotExportMCOrSAAnswersSubmission(String dynamicFilenamePart, String dynamicErrorMsgPart) throws Exception { + courseTestService.testArchiveCourseWithQuizExerciseCannotExportMCOrSAAnswersSubmission(dynamicFilenamePart, dynamicErrorMsgPart); + } + + private static Stream provideFileNameAndErrorMsg() { + return Stream.of(Arguments.of("multiple_choice_questions_answers", "multiple choice"), Arguments.of("short_answer_questions_answers", "short answer")); + } + + @Test + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + void testArchiveCourseWithQuizExerciseCannotExportDragAndDropAnswersSubmission() throws Exception { + courseTestService.testArchiveCourseWithQuizExerciseCannotExportDragAndDropSubmission(); + } + + @Test + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + void testArchiveCourseWithQuizExerciseCannotCreateParticipationDirectory() throws IOException { + courseTestService.testArchiveCourseWithQuizExerciseCannotCreateParticipationDirectory(); + } + @Test @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") void testArchiveCourseWithTestModelingAndFileUploadExercisesFailToExportModelingExercise() throws Exception { From 233244a082ac8bb6689a8092b85e3b28933be29d Mon Sep 17 00:00:00 2001 From: Tobias Lippert <84102468+tobias-lippert@users.noreply.github.com> Date: Sat, 30 Sep 2023 09:22:06 +0200 Subject: [PATCH 07/39] Development: Add export documentation (#7249) --- docs/index.rst | 1 + docs/user/exports.rst | 91 ++++++++++++++++++++ docs/user/exports/archive_course.png | Bin 0 -> 1590 bytes docs/user/exports/archive_exam.png | Bin 0 -> 1259 bytes docs/user/exports/data_export.png | Bin 0 -> 942 bytes docs/user/exports/download_archive.png | Bin 0 -> 1665 bytes docs/user/exports/download_exercise.png | Bin 0 -> 1530 bytes docs/user/exports/download_repos.png | Bin 0 -> 1512 bytes docs/user/exports/export.png | Bin 0 -> 969 bytes docs/user/exports/export_quiz.png | Bin 0 -> 888 bytes docs/user/exports/export_results.png | Bin 0 -> 1374 bytes docs/user/exports/export_scores.png | Bin 0 -> 1003 bytes docs/user/exports/export_submissions.png | Bin 0 -> 1604 bytes docs/user/exports/privacy_statement.png | Bin 0 -> 1131 bytes docs/user/exports/scores.png | Bin 0 -> 955 bytes docs/user/exports/scores_navigation_bar.png | Bin 0 -> 934 bytes 16 files changed, 92 insertions(+) create mode 100644 docs/user/exports.rst create mode 100644 docs/user/exports/archive_course.png create mode 100644 docs/user/exports/archive_exam.png create mode 100644 docs/user/exports/data_export.png create mode 100644 docs/user/exports/download_archive.png create mode 100644 docs/user/exports/download_exercise.png create mode 100644 docs/user/exports/download_repos.png create mode 100644 docs/user/exports/export.png create mode 100644 docs/user/exports/export_quiz.png create mode 100644 docs/user/exports/export_results.png create mode 100644 docs/user/exports/export_scores.png create mode 100644 docs/user/exports/export_submissions.png create mode 100644 docs/user/exports/privacy_statement.png create mode 100644 docs/user/exports/scores.png create mode 100644 docs/user/exports/scores_navigation_bar.png diff --git a/docs/index.rst b/docs/index.rst index 2d769bb8de6e..912c3aa9570c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -38,6 +38,7 @@ All these exercises are supposed to be run either live in the lecture with insta user/courses/customizable user/scaling user/markdown-support + user/exports user/mobile-applications diff --git a/docs/user/exports.rst b/docs/user/exports.rst new file mode 100644 index 000000000000..b2ac771276b7 --- /dev/null +++ b/docs/user/exports.rst @@ -0,0 +1,91 @@ +.. _exports: + +.. |archive_course| image:: exports/archive_course.png +.. |archive_exam| image:: exports/archive_exam.png +.. |download_archive| image:: exports/download_archive.png +.. |export_quiz| image:: exports/export_quiz.png +.. |export_results| image:: exports/export_results.png +.. |export_submissions| image:: exports/export_submissions.png +.. |download_exercise| image:: exports/download_exercise.png +.. |download_repos| image:: exports/download_repos.png +.. |download_scores| image:: exports/scores.png +.. |export_scores| image:: exports/export_scores.png +.. |export| image:: exports/export.png +.. |scores_navigation_bar| image:: exports/scores_navigation_bar.png +.. |privacy_statement| image:: exports/privacy_statement.png +.. |data_export| image:: exports/data_export.png + + +Exports +======= + +.. contents:: Table of Contents + :local: + :depth: 2 + +Overview +-------- +Artemis offers several options to export or archive different data. The following table gives an overview of the available export options. + +.. list-table:: Export options + :widths: 100 + :header-rows: 1 + + * - Export/Archive option + * - Archive course/exam + * - Export programming exercise material + * - Export programming exercise student repositories + * - Export exercise results + * - Export quiz questions + * - Export exercise submissions + * - Export user data + +Archive course/exam +------------------- +Export all course/exam data, including all exercises and student submissions. +To archive a course or an exam the end date of the entity needs to be in the past. +You can archive a course by clicking |archive_course| on the course management overview page or an exam by clicking |archive_exam| on the exam checklist page. This will create a zip file containing all exercises of the exam or course and all student submissions. For a course all exams are exported as well. +For each exercise the problem statement and a JSON file with exercise details such as points are exported. For programming exercises, the template, solution, test, and auxiliary (if existing) repository is exported as well. +The creation is done asynchronously. You will receive a notification once the archive is ready to download. You can then download the archive by clicking |download_archive| on the course management overview page or the exam checklist page. + +Export programming exercise material +------------------------------------ +Export the exercise material (template, solution, test, and auxiliary repositories as well as the problem statement and other general exercise information) of a programming exercise. +To export the material click the |download_exercise| button on the exercise details page. + +Export quiz exercise +-------------------- +Exports the questions and the sample solution of a quiz in JSON format. +You can export a a quiz exercise by clicking the |export_quiz| button on the exercises overview page. + + +Export programming exercise student repositories +------------------------------------------------ +Export the student repositories (this can include the repositories for both graded and practice participations) of a programming exercise. +To export the repositories click the |export| button and then the |download_repos| button on the |download_scores| page. + +Export exercise submissions +--------------------------- +Export the submissions of all students that participated in a specific exercise. This is supported for text, modeling and file upload exercises. +Text submissions are exported as a zip file containing all submissions as text files. +Modeling submissions are exported as a zip file containing all submissions as json files. +File upload submissions are exported as a zip file containing all submitted files. +To export the submissions click the |export_scores| button and then the |export_submissions| button on the |download_scores| page. + +Export exercise results +----------------------------------- +Export the results of students for a specific exercise as CSV file. This is supported for all exercise types. +To export the results click the |export| button and then the |export_results| button on the |download_scores| page. + +Export course/exam scores +------------------------- +Export the scores of all students that participated in a specific course or exam. This is supported for all exercise types. +The scores are exported in CSV format. +To export the scores of a course click on the |scores_navigation_bar| tab in the course management navigation bar and then the |export_scores| button. +For exams you can export the scores by clicking the |download_scores| button on the exam checklist page and then |export_scores| button. + +Export user data +---------------- +Export all data Artemis stores about a specific user. This includes information such as name or email, exercise submissions, results, feedbacks the user received, messages they've sent. +You can request a data export by clicking |privacy_statement| and |data_export|. Once the export has been created you will receive an email with a download link. + diff --git a/docs/user/exports/archive_course.png b/docs/user/exports/archive_course.png new file mode 100644 index 0000000000000000000000000000000000000000..29c0e8a086871a6c71e2d0ae58a09e73d87a99e9 GIT binary patch literal 1590 zcmV-62Fdw}P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1|bh%th)*_zsJ+E58d43@Z+P|yTCHKj;S){myBE}rw-@n{T6ucfs&h|g5iDC9;%YP25r*B}>Uo7jsjYl^V zIas5u9NEAy`;yqg7V@!t=2Kbq%Lv2*V%$J_(K8o&BE}dN5n~LCh%tsm#2CXOVvJ!C zF~+cn4uvtTJQ58j8sGL$*AvLeSJmu^{<)^MvLp1C`!S9$LOeFPR6epcPZC>eSUUT; z-1H=(_dfgClZbx%@w%#Ii@q3wvs9|A%_Gg5B_dDh%&mX~UOvMd4?IPp?}lFBxl2*J zOOfb{PcEoh7R=1U-x5XNAkY|4ZJr|03Od7oAT)SI>qkfIp9Xq9Mtg;7GA2C|^|x=J zX+%|thK?|PsLxZiV~S}c5@L8Bd+n;!et2GeIvdu}-@l4TD=_dxH60p-XrDYt0cpg6 zJK+rs)P}K5V^}4OhToSFQ-_=cJVhdrnuITMgYZLHo9lQSce;T4ZL|35Ht_W%P$PF7 zMkG26tVq-urawKoBvAH5`(m4By|_wU8N{9}0kuU4(xNxq0v^t&9g5iSQ}}!1lqSaD z4?jge-SHBU0>h%sDxLc0gfNr)<}sm~Wz?g7Y5$rBJEl;<{@p4w7E0jKtyCmCcOyXT)@j14r-6#+esrLNRWt)Dyf$g6gKlw5lmuFKX#Yc&I2M zJ!LBG5rF_2lTn}qeQg1?pm}I)BzeuPIZR$2iME79YYSrq54%g0poO>>5urhCVFc?h zBGUb8_h_^qGp{IGmE*oG4`EuA2Fq5*3EcG%kQ%o?I2B?x6qq!-eJAr?8gKw=DviY=)$;io8a z7pr*Yun56Y`ZGrn$*MXMTUe!Nm7fu<@)5eVh^Xg7k3K6u0|=m`=P-A?jMKlqLinsV-FQVhsJYPxBddN+&3 z?T(V+)%*h?#u&eBr&?8ZG1dZcyfFAvX(@0L(Q4aQiSMW?QKh9AY1}(?-}OHEmeiOJ zt1A&v`<$VOIY-e)@2^=!(~7e6ITFRKiFd&B53qu4e#*%DyCLRyVfq6s!yNdRjm(=3 zi-<9XMZ_4xB4UhT5i!QFh!|s7M2s;kBE}fMcwv!v-weZKjd(wi(2auMl*YJb$D7jl o?Xiq0?1>m-SVW8wxdmnT9|9YsF1Ow7C;$Ke07*qoM6N<$f<=PsKmY&$ literal 0 HcmV?d00001 diff --git a/docs/user/exports/archive_exam.png b/docs/user/exports/archive_exam.png new file mode 100644 index 0000000000000000000000000000000000000000..e767b4186ed994b9f4b174c446cae5184041cee2 GIT binary patch literal 1259 zcmZ{ke>Bqz0L3Sa@ZBt72kC{PrLxqU7f)LAW3BPp@nTO3Ewr*Ft2A-4IyFs<7y3ax z^aE+*NM(=h&|7|FWck(Dw26k=jyASt^!EOJ@4P?mz2|ez{rBFyUn0W+8y6c82n1jw zFa%R(o8)H=HhECk*)mg@We~#AAWom#j0r4K_Tu+~K#hgA#zadKuRa|?%m9HPul|u) zC$)xT>RiHN_C{wO`BL7Gb3Fm?6l`@F6n;jd>z9J9Sww80-pPPFe*$*{!S@_BsNWLvch(M@<`va-P*rf4ZuTo#N zCf8ZR*Cflcv)*h*JHcJ)d0_788`mK@9Hmn#K4qk1m)y>L8F zC!gc`z2H2FpR~92=cWQO@r?x<^l0gdvQRMJCmU&Ad}$BJAFt;RHh*WJdc!uGwK7BJ zmoWD!&{ZshvjX=iJ+SI-ux;zr5g&X(lA)L~i@ZqO&C(V4jznQ|P!9xBaG&>DSlDzJ z{Fb!i4#kPbqU!pFRgd-UIW53pSM<&uSE9x3O}j_tc%qi6v~g0|PfbAFQQ}=4Pb@OL zQYcsOBiiLmJILmHOPgIJpQm(BJ5wFbLe&94WqpnvRax6R1YlvHyYm>-pG)t%d7<}WLApR@hfrKT5cBde=6$u)2nKq=Swd){=x!8(4iLFbkHA`n}esB)|*RhYULT zqL=jIE<&3f<~d?{P#E(3RWc_s#VMHSs! zR})xoGo@;qql$#1euTyZbqF1!jSt$w{&m}h`pdXrMwOEy)}wOMNo%`Lumoo{;D2C` zqWjo%vSl`6G&I+u|F{cer!5~|$J13mgo{4Wl)%8qc{YCda8}8q*s)8I`qufON0{vq z#Z%L;kooRXI-^D;OpE$1VJj^e4%{^%6gnMIu%+qT*1V+*XoNOK8klwWci%P#dI$|w ziA^8o#F1Y%K0nJqr=PyM<{1!4KKvp8eaK}{n&B4O-tI`1g+#AuAS>kx@1p9C+j@!d zWKUdDS4}`LbH)e~zZkC{6FHFQUdFfw?851mRm)}JkP>`+;O&ln&vhhC#|fBHEgQSg zj1Z*G#IMTRW)#fa4*yZE*-+)mWKw?c;N>!vV2^);5r;H~;r?gXH_Y|UukYpc5E>1J6flH2?qr literal 0 HcmV?d00001 diff --git a/docs/user/exports/data_export.png b/docs/user/exports/data_export.png new file mode 100644 index 0000000000000000000000000000000000000000..a91999f778bac5b330d4122773ec47332b0cae1f GIT binary patch literal 942 zcmV;f15x~mP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D14BtfK~!i%?U~O@ z8$lGuzpY4UDBWP%l8aqvK_P;NfY?iWFd*~~SWjLHUcBYf{sFyoZyqf6nv=OJ2zt;< zqZm+3z=FaihX!lJloAONwllkLv$NYxLh2MsnGY=4H~Z#g=I#42u=i{R6jHcPzX}N` zXG%mlQzFWl5>d{Sh;pVxlrtrwoGFo>hxSV00LvB$9-4;2+X;-3s0hKG8AW-0-+s4! zNs+oxg?Dc^{;rJ zzr|v13TZAMmyz9SIgdEA8JgqhHBqE-zeLpV$*iM5!vjl4!2Sqwiy6F00arUE7-tXt zxsG0&p7a0s4t?Y8Fc3iu^%@yRv z_F=?Y1sjfjcx@5;5x8?VPa71Woasj}(1ukfIg05iEKSor#_?JQs+SFtgH%piELu{6 z{SIa|v@W(0*(p@gyM zTL{?f&+yKy-=K;ZbT3_aI-3W`I+u{XJ!xR`v!@?%V(8L_rlKf^N}*)f|ETltg0eaSXV=!4=8FGPE-*driQLmTvu=!M1ay zSY-BtJMtXXtfxPN6&9J%xSKcTeO>SJBd~^b=14Yg5$?F2ojPA1d$E1Hc_zk6fOiszW5qjx5MkSa{ZTg$ zckJ+f#ApBMXAAFW6g&$3ZSLI76+X(D5>a0#C88ozBFdQ(QO=Zza;7wZU*-+8J2?8& QT>t<807*qoM6N<$f@uq^z5oCK literal 0 HcmV?d00001 diff --git a/docs/user/exports/download_archive.png b/docs/user/exports/download_archive.png new file mode 100644 index 0000000000000000000000000000000000000000..03e4715ea1e8f8129490ac5606dd0f38789f62be GIT binary patch literal 1665 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 Ze*singaafmrMv(D002ovPDHLkV1l~`(L?|M literal 0 HcmV?d00001 diff --git a/docs/user/exports/export_submissions.png b/docs/user/exports/export_submissions.png new file mode 100644 index 0000000000000000000000000000000000000000..1181a1fbcbbbc2a220de1df5adb2e9a10327eec2 GIT binary patch literal 1604 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 literal 0 HcmV?d00001 diff --git a/docs/user/exports/scores.png b/docs/user/exports/scores.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5494bae030adf7cff4b93e132b7e238860eb19 GIT binary patch literal 955 zcmV;s14R6ZP)001Qj1^@s63a}Kw00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D15imsK~!i%?V3$U z8$lGu{}!Swic+l~U=BiZFlaqkZAtJ@C{j;e3VJBggZEyG(qpmoD)i_640P5TJUX4-;{tZ_1s+u|*@+SESp*jA zS>ihGMLKzOKC_>)nEjaLQFY=KD{vU92t_>Xi*nCFY!Dmb4bYpAZM2ssssrVm_5S;z zs}U4(PMdECl28MU*i5HDo=k0_U|^D`tAW5_NS^RAw~I$BpV?x08-?fn*J~x=2s>n5 z*Cny~fafpPF~=r1y;zzEBf_IxE`_@*z~t~9Om&3VTEuGlEhaM5r}gdF-#bCPqXFjL z7W&_8yVw8TL3Htp?4D*ni+>Ko3zIp(CR#A%8+w*d5CTcBOaH_^nG-`|gC|&EPmHEb z^b8DPMm~oKA#VJVb0m~p-)!P3uU|kI8^c`{_8>y}q2yVr_+58qbOd8fqT{@~Vl&xm zV$-fobRjw3jka%=huP5cZ~Pz|dsfNQeAe67{c4C5P={1<8Phx!gbR5VvTTh>G`>ly1QyE{;8uHcsofNfpu?)uPU8whNGv6|PsCc$Q)_kS zc1)N};qtsF2Fb)W-W?W&r#L)8*hiZ3_}~c3GPE9u_njle(Fx4jx>6xg;lCY9y_M6> zDRCCaUD*WkXwf2kjVRB#t6^RwdpqxVbCyLZCo;0CLgX$ANr~rm&%m3rls@i|*976x zf84o@T&NmecC=UuXt5N~Vkw}-Qb3EPfE0^Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D13O7XK~!i%?UzAo z6G0Tm{~9qgU{ji+ixPtts@M`CPyz)#v{3B_NIfWeDtPfC!9zbl4-&leQuHQXBp;x* zkQ^)sMF<$$poLb_f~++SZiSW#MQ3*2CbQcat5Qo_=Lf^id%Lr{^WXR8%^v%~fMEy6 z>1YUGgwdc)CEMAe-tJh@F!hcON@1qvYIywWBU!s+wT3a+6T`i}bL2VvC{yYAn@`mH zJ?!-@OwX;6bu>^4!zcQu=*O&K^4VJqkR;4r1lep2-;cFZ&n98rj z-o!E@xGsxe9ehzZC+PTZuv%~)4qlgmD_Svlsx2YskQt34KhlME)~y#y$dtB)pOH>o z#8`ifEFO(tkVu7*D{TM?3x!Oa{5JC9BL5f`t)nj-%nAz`Ig$ftQ|WKmnM#bt%S14q z?Zy>y3xp^$oz0i86c=FicLA;_VQEY-ElGfeAWfhD8YbSI6oxGEtZKS>u2PO`KiDrf zcvs`6e9a^1=jo+|rOp@=tS|^X;EQj5g-$TaHgbp}+lT@dSxl66CfMxaHv6KokZ}yB zLdbuR#v_F6HBS^qc^!Ecal?(t@-e_nrCBkTYhGV33P+nte8Nv|T_#I#`zgx_M$rH8 z<@?<$S+X02r1)y1#fTdr^%@(~*6OB>pAA%<5E7@!B-%UJ2Uy%ho%e;yhkHL~1DRmN zCs?X6A%;fSfjxhqv?QgTntlEyh#}n>!t5Gu97L!)}j=J3D zUBlOyItiGco=1iJ?s_rJqT!PME4%lr+L#c59e|COgs@^E>Z#e2Ujh!_+w3gev_O)@ z@mCg3;2J5!gH_32MdXE*T%17Van~Vf@l{nn6-r?^<|k4k%>T|lFTRHdBa8+kj0Pi& z1|y7yJ^hJ1jPPBs3KKCJ%sxhgi5Lw=7!5`k4MrFZMi?c)Puv}JGdzyL>i_@%07*qo IM6N<$f`0X&YXATM literal 0 HcmV?d00001 From 4be1b1cfe460a40d3780cfd4bb8e04ac8b6d363d Mon Sep 17 00:00:00 2001 From: Julian Christl Date: Sat, 30 Sep 2023 09:39:17 +0200 Subject: [PATCH 08/39] Development: Simplify authentication (#7291) --- .../ArtemisAuthenticationProvider.java | 16 ----------- ...ArtemisInternalAuthenticationProvider.java | 19 ------------- .../jira/JiraAuthenticationProvider.java | 28 +++++-------------- .../ldap/LdapAuthenticationProvider.java | 27 ++++++------------ .../artemis/connectors/LtiServiceTest.java | 1 - 5 files changed, 16 insertions(+), 75 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/security/ArtemisAuthenticationProvider.java b/src/main/java/de/tum/in/www1/artemis/security/ArtemisAuthenticationProvider.java index 28ab83ca2853..2849126ec584 100644 --- a/src/main/java/de/tum/in/www1/artemis/security/ArtemisAuthenticationProvider.java +++ b/src/main/java/de/tum/in/www1/artemis/security/ArtemisAuthenticationProvider.java @@ -2,29 +2,13 @@ import java.util.Optional; -import javax.annotation.Nullable; - import org.springframework.security.authentication.AuthenticationProvider; -import org.springframework.security.core.Authentication; import de.tum.in.www1.artemis.domain.User; import de.tum.in.www1.artemis.service.connectors.ConnectorHealth; public interface ArtemisAuthenticationProvider extends AuthenticationProvider { - /** - * Gets the user object for the specified authentication or creates one in Artemis based on the passed information (possibly asking an external authentication source). - * Note: This method does not create a new user in the external authentication source. - * - * @param authentication the Spring authentication object which includes the username and password - * @param firstName The first name of the user that should get created if not present - * @param lastName The last name of the user that should get created if not present - * @param email The email of the user that should get created if not present - * @param skipPasswordCheck whether the password against the by the user management system provided user should be skipped - * @return The Artemis user identified by the provided credentials - */ - User getOrCreateUser(Authentication authentication, @Nullable String firstName, @Nullable String lastName, @Nullable String email, boolean skipPasswordCheck); - /** * Adds a user to the specified group * diff --git a/src/main/java/de/tum/in/www1/artemis/security/ArtemisInternalAuthenticationProvider.java b/src/main/java/de/tum/in/www1/artemis/security/ArtemisInternalAuthenticationProvider.java index b043de565e85..696bdc0cbb08 100644 --- a/src/main/java/de/tum/in/www1/artemis/security/ArtemisInternalAuthenticationProvider.java +++ b/src/main/java/de/tum/in/www1/artemis/security/ArtemisInternalAuthenticationProvider.java @@ -4,7 +4,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.security.authentication.AuthenticationServiceException; -import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -39,24 +38,6 @@ public Authentication authenticate(Authentication authentication) throws Authent return new UsernamePasswordAuthenticationToken(user.get().getLogin(), user.get().getPassword(), user.get().getGrantedAuthorities()); } - @Override - public User getOrCreateUser(Authentication authentication, String firstName, String lastName, String email, boolean skipPasswordCheck) { - final var password = authentication.getCredentials().toString(); - final var optionalUser = userRepository.findOneByLogin(authentication.getName().toLowerCase()); - final User user; - if (optionalUser.isEmpty()) { - user = userCreationService.createUser(authentication.getName(), password, null, firstName, lastName, email, null, null, "en", true); - } - else { - user = optionalUser.get(); - if (!skipPasswordCheck && !passwordService.checkPasswordMatch(password, user.getPassword())) { - throw new InternalAuthenticationServiceException("Authentication failed for user " + user.getLogin()); - } - } - - return user; - } - @Override public void addUserToGroup(User user, String group) { // nothing to do, this was already done by the UserService, this method is only needed when external management is active diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/jira/JiraAuthenticationProvider.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/jira/JiraAuthenticationProvider.java index d72e1bc17c2f..03083d8659b0 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/jira/JiraAuthenticationProvider.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/jira/JiraAuthenticationProvider.java @@ -101,20 +101,14 @@ public ConnectorHealth health() { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { - User user = getOrCreateUser(authentication, false); + User user = getOrCreateUser(authentication); if (user != null) { return new UsernamePasswordAuthenticationToken(user.getLogin(), user.getPassword(), user.getGrantedAuthorities()); } return null; } - @Override - public User getOrCreateUser(Authentication authentication, String firstName, String lastName, String email, boolean skipPasswordCheck) { - // NOTE: firstName, lastName, email is not needed in this case since we always get these values from Jira - return getOrCreateUser(authentication, skipPasswordCheck); - } - - private User getOrCreateUser(Authentication authentication, Boolean skipPasswordCheck) { + private User getOrCreateUser(Authentication authentication) { String username = authentication.getName().toLowerCase(); String password = authentication.getCredentials().toString(); @@ -129,18 +123,10 @@ private User getOrCreateUser(Authentication authentication, Boolean skipPassword ResponseEntity authenticationResponse = null; try { final var path = jiraUrl + "/rest/api/2/user?username=" + username + "&expand=groups"; - // If we want to skip the password check, we can just use the ADMIN auth, which is already injected in the default restTemplate - // Otherwise, we create our own authorization and use the credentials of the user. - if (skipPasswordCheck) { - // this is only the case if the systems wants to log in a user automatically (e.g. based on Oauth in LTI) - // when we provide null, the default restTemplate header will be used automatically - authenticationResponse = restTemplate.exchange(path, HttpMethod.GET, null, JiraUserDTO.class); - } - else { - // this is the normal case, where we use the username and password provided by the user so that JIRA checks for us if this is valid - final var entity = new HttpEntity<>(HeaderUtil.createAuthorization(username, password)); - authenticationResponse = restTemplate.exchange(path, HttpMethod.GET, entity, JiraUserDTO.class); - } + // We create our own authorization and use the credentials of the user. + // We use the username and password provided by the user so that JIRA checks for us if this is valid + final var entity = new HttpEntity<>(HeaderUtil.createAuthorization(username, password)); + authenticationResponse = restTemplate.exchange(path, HttpMethod.GET, entity, JiraUserDTO.class); } catch (HttpStatusCodeException e) { if (e.getStatusCode().value() == 401 || e.getStatusCode().value() == 403) { @@ -162,7 +148,7 @@ else if (e.getStatusCode().is5xxServerError()) { if (authenticationResponse != null && authenticationResponse.getBody() != null) { final var jiraUserDTO = authenticationResponse.getBody(); - // If the user has already existed, the check has already been completed and we can continue + // If the user has already existed, the check has already been completed, and we can continue // Otherwise, we have to create it in the Artemis database User user = optionalUser.orElseGet(() -> userCreationService.createUser(jiraUserDTO.getName(), null, null, jiraUserDTO.getDisplayName(), "", jiraUserDTO.getEmailAddress(), null, null, "en", false)); diff --git a/src/main/java/de/tum/in/www1/artemis/service/connectors/ldap/LdapAuthenticationProvider.java b/src/main/java/de/tum/in/www1/artemis/service/connectors/ldap/LdapAuthenticationProvider.java index 9ef60f8d72c4..32b88f0449ce 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/connectors/ldap/LdapAuthenticationProvider.java +++ b/src/main/java/de/tum/in/www1/artemis/service/connectors/ldap/LdapAuthenticationProvider.java @@ -53,20 +53,14 @@ public LdapAuthenticationProvider(UserRepository userRepository, LdapUserService @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { - User user = getOrCreateUser(authentication, false); + User user = getOrCreateUser(authentication); if (user != null) { return new UsernamePasswordAuthenticationToken(user.getLogin(), user.getPassword(), user.getGrantedAuthorities()); } return null; } - @Override - public User getOrCreateUser(Authentication authentication, String firstName, String lastName, String email, boolean skipPasswordCheck) { - // NOTE: firstName, lastName, email is not needed in this case since we always get these values from LDAP - return getOrCreateUser(authentication, skipPasswordCheck); - } - - private User getOrCreateUser(Authentication authentication, Boolean skipPasswordCheck) { + private User getOrCreateUser(Authentication authentication) { String username = authentication.getName().toLowerCase(); String password = authentication.getCredentials().toString(); @@ -88,16 +82,13 @@ private User getOrCreateUser(Authentication authentication, Boolean skipPassword log.info("Finished ldapUserService.findByUsername in {}", TimeLogUtil.formatDurationFrom(start)); start = System.nanoTime(); - // If we want to skip the password check, we can just use the ADMIN auth, which is already injected in the default restTemplate - // Otherwise, we create our own authorization and use the credentials of the user. - if (!skipPasswordCheck) { - byte[] passwordBytes = Utf8.encode(password); - boolean passwordCorrect = ldapTemplate.compare(ldapUserDto.getUid().toString(), "userPassword", passwordBytes); - log.debug("Compare password with LDAP entry for user " + username + " to validate login"); - // this is the normal case, where the password is validated - if (!passwordCorrect) { - throw new BadCredentialsException("Wrong credentials"); - } + // We create our own authorization and use the credentials of the user. + byte[] passwordBytes = Utf8.encode(password); + boolean passwordCorrect = ldapTemplate.compare(ldapUserDto.getUid().toString(), "userPassword", passwordBytes); + log.debug("Compare password with LDAP entry for user " + username + " to validate login"); + // this is the normal case, where the password is validated + if (!passwordCorrect) { + throw new BadCredentialsException("Wrong credentials"); } log.info("Finished ldapTemplate.compare password in {}", TimeLogUtil.formatDurationFrom(start)); diff --git a/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java b/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java index 9fb564a7cee6..e18655b19189 100644 --- a/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java +++ b/src/test/java/de/tum/in/www1/artemis/connectors/LtiServiceTest.java @@ -202,7 +202,6 @@ void authenticateLtiUser_newUser() { SecurityContextHolder.getContext().setAuthentication(null); when(artemisAuthenticationProvider.getUsernameForEmail("email")).thenReturn(Optional.of("username")); - when(artemisAuthenticationProvider.getOrCreateUser(any(), any(), any(), any(), anyBoolean())).thenReturn(user); assertThatExceptionOfType(InternalAuthenticationServiceException.class) .isThrownBy(() -> ltiService.authenticateLtiUser("email", "username", "firstname", "lastname", onlineCourseConfiguration.isRequireExistingUser())) From 0f16882013631ba3e13e752f8640f36af17bcd10 Mon Sep 17 00:00:00 2001 From: Jakub Riegel Date: Sat, 30 Sep 2023 12:39:37 +0200 Subject: [PATCH 09/39] Development: Extract plagiarism detection service (#7152) --- .../plagiarism/PlagiarismDetectionConfig.java | 7 + ...ogrammingExerciseGitDiffReportService.java | 48 +++++- .../ModelingPlagiarismDetectionService.java | 2 +- .../PlagiarismDetectionService.java | 131 ++++++++++++++++ ...portedForPlagiarismDetectionException.java | 10 ++ ...ProgrammingPlagiarismDetectionService.java | 74 ++++++--- .../TextPlagiarismDetectionService.java | 2 +- .../web/rest/ModelingExerciseResource.java | 25 ++-- ...ProgrammingExercisePlagiarismResource.java | 83 ++++++----- .../web/rest/TextExerciseResource.java | 25 ++-- .../plagiarism-inspector.component.html | 2 +- .../plagiarism-inspector.component.ts | 12 +- src/main/webapp/i18n/de/plagiarism.json | 6 +- src/main/webapp/i18n/en/plagiarism.json | 6 +- .../PlagiarismDetectionServiceTest.java | 140 ++++++++++++++++++ .../plagiarism-inspector.component.spec.ts | 8 +- 16 files changed, 461 insertions(+), 120 deletions(-) create mode 100644 src/main/java/de/tum/in/www1/artemis/domain/plagiarism/PlagiarismDetectionConfig.java create mode 100644 src/main/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionService.java create mode 100644 src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingLanguageNotSupportedForPlagiarismDetectionException.java create mode 100644 src/test/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionServiceTest.java diff --git a/src/main/java/de/tum/in/www1/artemis/domain/plagiarism/PlagiarismDetectionConfig.java b/src/main/java/de/tum/in/www1/artemis/domain/plagiarism/PlagiarismDetectionConfig.java new file mode 100644 index 000000000000..6f455b2f539a --- /dev/null +++ b/src/main/java/de/tum/in/www1/artemis/domain/plagiarism/PlagiarismDetectionConfig.java @@ -0,0 +1,7 @@ +package de.tum.in.www1.artemis.domain.plagiarism; + +/** + * Stores configuration for plagiarism detection. + */ +public record PlagiarismDetectionConfig(float similarityThreshold, int minimumScore, int minimumSize) { +} diff --git a/src/main/java/de/tum/in/www1/artemis/service/hestia/ProgrammingExerciseGitDiffReportService.java b/src/main/java/de/tum/in/www1/artemis/service/hestia/ProgrammingExerciseGitDiffReportService.java index f34867ea864c..8444525dad34 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/hestia/ProgrammingExerciseGitDiffReportService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/hestia/ProgrammingExerciseGitDiffReportService.java @@ -2,6 +2,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Comparator; import java.util.HashSet; @@ -19,6 +20,7 @@ import de.tum.in.www1.artemis.domain.DomainObject; import de.tum.in.www1.artemis.domain.ProgrammingExercise; +import de.tum.in.www1.artemis.domain.VcsRepositoryUrl; import de.tum.in.www1.artemis.domain.hestia.ProgrammingExerciseGitDiffEntry; import de.tum.in.www1.artemis.domain.hestia.ProgrammingExerciseGitDiffReport; import de.tum.in.www1.artemis.domain.participation.SolutionProgrammingExerciseParticipation; @@ -158,6 +160,33 @@ public ProgrammingExerciseGitDiffReport getOrCreateReportOfExercise(ProgrammingE } } + /** + * Calculates git diff between two repositories and returns the cumulative number of diff lines. + * + * @param urlRepoA url of the first repo to compare + * @param localPathRepoA local path to the checked out instance of the first repo to compare + * @param urlRepoB url of the second repo to compare + * @param localPathRepoB local path to the checked out instance of the second repo to compare + * @return cumulative number of lines in the git diff of given repositories + */ + public int calculateNumberOfDiffLinesBetweenRepos(VcsRepositoryUrl urlRepoA, Path localPathRepoA, VcsRepositoryUrl urlRepoB, Path localPathRepoB) { + var repoA = gitService.getExistingCheckedOutRepositoryByLocalPath(localPathRepoA, urlRepoA); + var repoB = gitService.getExistingCheckedOutRepositoryByLocalPath(localPathRepoB, urlRepoB); + + var treeParserRepoA = new FileTreeIterator(repoA); + var treeParserRepoB = new FileTreeIterator(repoB); + + try (var diffOutputStream = new ByteArrayOutputStream(); var git = Git.wrap(repoB)) { + git.diff().setOldTree(treeParserRepoB).setNewTree(treeParserRepoA).setOutputStream(diffOutputStream).call(); + var diff = diffOutputStream.toString(); + return extractDiffEntries(diff, true).stream().mapToInt(ProgrammingExerciseGitDiffEntry::getLineCount).sum(); + } + catch (IOException | GitAPIException e) { + log.error("Error calculating number of diff lines between repositories: urlRepoA={}, urlRepoB={}.", urlRepoA, urlRepoB, e); + return Integer.MAX_VALUE; + } + } + /** * Creates a new ProgrammingExerciseGitDiffReport for an exercise. * It will take the git-diff between the template and solution repositories and return all changes. @@ -183,7 +212,7 @@ private ProgrammingExerciseGitDiffReport generateReport(TemplateProgrammingExerc try (ByteArrayOutputStream diffOutputStream = new ByteArrayOutputStream(); Git git = Git.wrap(templateRepo)) { git.diff().setOldTree(oldTreeParser).setNewTree(newTreeParser).setOutputStream(diffOutputStream).call(); var diff = diffOutputStream.toString(); - var programmingExerciseGitDiffEntries = extractDiffEntries(diff); + var programmingExerciseGitDiffEntries = extractDiffEntries(diff, false); var report = new ProgrammingExerciseGitDiffReport(); for (ProgrammingExerciseGitDiffEntry gitDiffEntry : programmingExerciseGitDiffEntries) { gitDiffEntry.setGitDiffReport(report); @@ -199,7 +228,7 @@ private ProgrammingExerciseGitDiffReport generateReport(TemplateProgrammingExerc * @param diff The raw git-diff output * @return The extracted ProgrammingExerciseGitDiffEntries */ - private List extractDiffEntries(String diff) { + private List extractDiffEntries(String diff, boolean useAbsoluteLineCount) { var lines = diff.split("\n"); var parserState = new ParserState(); @@ -216,7 +245,7 @@ private List extractDiffEntries(String diff) { else if (!parserState.deactivateCodeReading) { switch (line.charAt(0)) { case '+' -> handleAddition(parserState); - case '-' -> handleRemoval(parserState); + case '-' -> handleRemoval(parserState, useAbsoluteLineCount); case ' ' -> handleUnchanged(parserState); default -> parserState.deactivateCodeReading = true; } @@ -262,7 +291,7 @@ private void handleUnchanged(ParserState parserState) { parserState.currentPreviousLineCount++; } - private void handleRemoval(ParserState parserState) { + private void handleRemoval(ParserState parserState, boolean useAbsoluteLineCount) { var entry = parserState.currentEntry; if (!parserState.lastLineRemoveOperation && !entry.isEmpty()) { parserState.entries.add(entry); @@ -274,7 +303,16 @@ private void handleRemoval(ParserState parserState) { entry.setPreviousLineCount(0); entry.setPreviousStartLine(parserState.currentPreviousLineCount); } - entry.setPreviousLineCount(entry.getPreviousLineCount() + 1); + if (useAbsoluteLineCount) { + if (parserState.currentEntry.getLineCount() == null) { + parserState.currentEntry.setLineCount(0); + parserState.currentEntry.setStartLine(parserState.currentLineCount); + } + parserState.currentEntry.setLineCount(parserState.currentEntry.getLineCount() + 1); + } + else { + entry.setPreviousLineCount(entry.getPreviousLineCount() + 1); + } parserState.currentEntry = entry; parserState.lastLineRemoveOperation = true; diff --git a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ModelingPlagiarismDetectionService.java b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ModelingPlagiarismDetectionService.java index 24ddbfbd39bb..026799d8661c 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ModelingPlagiarismDetectionService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ModelingPlagiarismDetectionService.java @@ -149,7 +149,7 @@ public ModelingPlagiarismResult checkPlagiarism(List modelin final double similarity = model1.similarity(model2); log.debug("Compare result {} with {}: {}", i, j, similarity); - if (similarity < minimumSimilarity) { + if (similarity * 100 < minimumSimilarity) { // ignore comparison results with too small similarity continue; } diff --git a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionService.java b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionService.java new file mode 100644 index 000000000000..d2bbef6a087d --- /dev/null +++ b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionService.java @@ -0,0 +1,131 @@ +package de.tum.in.www1.artemis.service.plagiarism; + +import java.io.File; +import java.io.IOException; +import java.util.Optional; + +import org.jvnet.hk2.annotations.Service; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import de.jplag.exceptions.ExitException; +import de.tum.in.www1.artemis.domain.ProgrammingExercise; +import de.tum.in.www1.artemis.domain.TextExercise; +import de.tum.in.www1.artemis.domain.modeling.ModelingExercise; +import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismDetectionConfig; +import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismResult; +import de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult; +import de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult; +import de.tum.in.www1.artemis.repository.plagiarism.PlagiarismResultRepository; +import de.tum.in.www1.artemis.service.programming.ProgrammingLanguageFeatureService; + +/** + * Service for triggering plagiarism checks. + */ +@Service +@Component +public class PlagiarismDetectionService { + + private static final Logger log = LoggerFactory.getLogger(PlagiarismDetectionService.class); + + private final TextPlagiarismDetectionService textPlagiarismDetectionService; + + private final Optional programmingLanguageFeatureService; + + private final ProgrammingPlagiarismDetectionService programmingPlagiarismDetectionService; + + private final ModelingPlagiarismDetectionService modelingPlagiarismDetectionService; + + private final PlagiarismResultRepository plagiarismResultRepository; + + public PlagiarismDetectionService(TextPlagiarismDetectionService textPlagiarismDetectionService, Optional programmingLanguageFeatureService, + ProgrammingPlagiarismDetectionService programmingPlagiarismDetectionService, ModelingPlagiarismDetectionService modelingPlagiarismDetectionService, + PlagiarismResultRepository plagiarismResultRepository) { + this.textPlagiarismDetectionService = textPlagiarismDetectionService; + this.programmingLanguageFeatureService = programmingLanguageFeatureService; + this.programmingPlagiarismDetectionService = programmingPlagiarismDetectionService; + this.modelingPlagiarismDetectionService = modelingPlagiarismDetectionService; + this.plagiarismResultRepository = plagiarismResultRepository; + } + + /** + * Check plagiarism in given text exercise + * + * @param exercise exercise to check plagiarism + * @param config configuration for plagiarism detection + * @return result of plagiarism checks + */ + public TextPlagiarismResult checkTextExercise(TextExercise exercise, PlagiarismDetectionConfig config) throws ExitException { + var plagiarismResult = textPlagiarismDetectionService.checkPlagiarism(exercise, config.similarityThreshold(), config.minimumScore(), config.minimumSize()); + log.info("Finished textPlagiarismDetectionService.checkPlagiarism for exercise {} with {} comparisons,", exercise.getId(), plagiarismResult.getComparisons().size()); + + trimAndSavePlagiarismResult(plagiarismResult); + return plagiarismResult; + } + + /** + * Check plagiarism in given programing exercise + * + * @param exercise exercise to check plagiarism + * @param config configuration for plagiarism detection + * @return result of plagiarism checks + */ + public TextPlagiarismResult checkProgrammingExercise(ProgrammingExercise exercise, PlagiarismDetectionConfig config) + throws ExitException, IOException, ProgrammingLanguageNotSupportedForPlagiarismDetectionException { + checkProgrammingLanguageSupport(exercise); + + var plagiarismResult = programmingPlagiarismDetectionService.checkPlagiarism(exercise.getId(), config.similarityThreshold(), config.minimumScore(), config.minimumSize()); + log.info("Finished programmingExerciseExportService.checkPlagiarism call for {} comparisons", plagiarismResult.getComparisons().size()); + + plagiarismResultRepository.prepareResultForClient(plagiarismResult); + + // make sure that participation is included in the exercise + plagiarismResult.setExercise(exercise); + return plagiarismResult; + } + + /** + * Check plagiarism in given programing exercise and outputs a Jplag report + * + * @param exercise exercise to check plagiarism + * @param config configuration for plagiarism detection + * @return Jplag report of plagiarism checks + */ + public File checkProgrammingExerciseWithJplagReport(ProgrammingExercise exercise, PlagiarismDetectionConfig config) + throws ProgrammingLanguageNotSupportedForPlagiarismDetectionException { + checkProgrammingLanguageSupport(exercise); + return programmingPlagiarismDetectionService.checkPlagiarismWithJPlagReport(exercise.getId(), config.similarityThreshold(), config.minimumScore(), config.minimumSize()); + } + + /** + * Check plagiarism in given modeling exercise + * + * @param exercise exercise to check plagiarism + * @param config configuration for plagiarism detection + * @return result of plagiarism checks + */ + public ModelingPlagiarismResult checkModelingExercise(ModelingExercise exercise, PlagiarismDetectionConfig config) { + var plagiarismResult = modelingPlagiarismDetectionService.checkPlagiarism(exercise, config.similarityThreshold(), config.minimumSize(), config.minimumScore()); + log.info("Finished modelingPlagiarismDetectionService.checkPlagiarism call for {} comparisons", plagiarismResult.getComparisons().size()); + + trimAndSavePlagiarismResult(plagiarismResult); + return plagiarismResult; + } + + private void trimAndSavePlagiarismResult(PlagiarismResult plagiarismResult) { + // Limit the amount temporarily because of database issues + plagiarismResult.sortAndLimit(100); + plagiarismResultRepository.savePlagiarismResultAndRemovePrevious(plagiarismResult); + + plagiarismResultRepository.prepareResultForClient(plagiarismResult); + } + + private void checkProgrammingLanguageSupport(ProgrammingExercise exercise) throws ProgrammingLanguageNotSupportedForPlagiarismDetectionException { + var language = exercise.getProgrammingLanguage(); + var programmingLanguageFeature = programmingLanguageFeatureService.orElseThrow().getProgrammingLanguageFeatures(language); + if (!programmingLanguageFeature.plagiarismCheckSupported()) { + throw new ProgrammingLanguageNotSupportedForPlagiarismDetectionException(language); + } + } +} diff --git a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingLanguageNotSupportedForPlagiarismDetectionException.java b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingLanguageNotSupportedForPlagiarismDetectionException.java new file mode 100644 index 000000000000..756feb454337 --- /dev/null +++ b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingLanguageNotSupportedForPlagiarismDetectionException.java @@ -0,0 +1,10 @@ +package de.tum.in.www1.artemis.service.plagiarism; + +import de.tum.in.www1.artemis.domain.enumeration.ProgrammingLanguage; + +public class ProgrammingLanguageNotSupportedForPlagiarismDetectionException extends Exception { + + ProgrammingLanguageNotSupportedForPlagiarismDetectionException(ProgrammingLanguage language) { + super("Artemis does not support plagiarism checks for the programming language " + language); + } +} diff --git a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingPlagiarismDetectionService.java b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingPlagiarismDetectionService.java index b135284995e9..3d0373e7c3f4 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingPlagiarismDetectionService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/ProgrammingPlagiarismDetectionService.java @@ -6,6 +6,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.Set; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -40,12 +41,13 @@ import de.tum.in.www1.artemis.service.UrlService; import de.tum.in.www1.artemis.service.connectors.GitService; import de.tum.in.www1.artemis.service.export.ProgrammingExerciseExportService; +import de.tum.in.www1.artemis.service.hestia.ProgrammingExerciseGitDiffReportService; import de.tum.in.www1.artemis.service.plagiarism.cache.PlagiarismCacheService; import de.tum.in.www1.artemis.service.util.TimeLogUtil; import de.tum.in.www1.artemis.web.rest.errors.BadRequestAlertException; @Service -public class ProgrammingPlagiarismDetectionService { +class ProgrammingPlagiarismDetectionService { @Value("${artemis.repo-download-clone-path}") private Path repoDownloadClonePath; @@ -72,10 +74,12 @@ public class ProgrammingPlagiarismDetectionService { private final UrlService urlService; + private final ProgrammingExerciseGitDiffReportService programmingExerciseGitDiffReportService; + public ProgrammingPlagiarismDetectionService(ProgrammingExerciseRepository programmingExerciseRepository, FileService fileService, GitService gitService, StudentParticipationRepository studentParticipationRepository, PlagiarismResultRepository plagiarismResultRepository, ProgrammingExerciseExportService programmingExerciseExportService, PlagiarismWebsocketService plagiarismWebsocketService, PlagiarismCacheService plagiarismCacheService, - UrlService urlService) { + UrlService urlService, ProgrammingExerciseGitDiffReportService programmingExerciseGitDiffReportService) { this.programmingExerciseRepository = programmingExerciseRepository; this.fileService = fileService; this.gitService = gitService; @@ -85,6 +89,7 @@ public ProgrammingPlagiarismDetectionService(ProgrammingExerciseRepository progr this.plagiarismWebsocketService = plagiarismWebsocketService; this.plagiarismCacheService = plagiarismCacheService; this.urlService = urlService; + this.programmingExerciseGitDiffReportService = programmingExerciseGitDiffReportService; } /** @@ -97,7 +102,7 @@ public ProgrammingPlagiarismDetectionService(ProgrammingExerciseRepository progr * @throws ExitException is thrown if JPlag exits unexpectedly * @throws IOException is thrown for file handling errors */ - public TextPlagiarismResult checkPlagiarism(long programmingExerciseId, float similarityThreshold, int minimumScore) throws ExitException, IOException { + public TextPlagiarismResult checkPlagiarism(long programmingExerciseId, float similarityThreshold, int minimumScore, int minimumSize) throws ExitException, IOException { long start = System.nanoTime(); String topic = plagiarismWebsocketService.getProgrammingExercisePlagiarismCheckTopic(programmingExerciseId); @@ -112,7 +117,7 @@ public TextPlagiarismResult checkPlagiarism(long programmingExerciseId, float si } plagiarismCacheService.setActivePlagiarismCheck(courseId); - JPlagResult jPlagResult = computeJPlagResult(programmingExercise, similarityThreshold, minimumScore); + JPlagResult jPlagResult = computeJPlagResult(programmingExercise, similarityThreshold, minimumScore, minimumSize); if (jPlagResult == null) { log.info("Insufficient amount of submissions for plagiarism detection. Return empty result."); TextPlagiarismResult textPlagiarismResult = new TextPlagiarismResult(); @@ -148,11 +153,11 @@ public TextPlagiarismResult checkPlagiarism(long programmingExerciseId, float si * @param minimumScore consider only submissions whose score is greater or equal to this value * @return a zip file that can be returned to the client */ - public File checkPlagiarismWithJPlagReport(long programmingExerciseId, float similarityThreshold, int minimumScore) { + public File checkPlagiarismWithJPlagReport(long programmingExerciseId, float similarityThreshold, int minimumScore, int minimumSize) { long start = System.nanoTime(); final var programmingExercise = programmingExerciseRepository.findByIdWithTemplateAndSolutionParticipationElseThrow(programmingExerciseId); - JPlagResult result = computeJPlagResult(programmingExercise, similarityThreshold, minimumScore); + JPlagResult result = computeJPlagResult(programmingExercise, similarityThreshold, minimumScore, minimumSize); log.info("JPlag programming comparison finished with {} comparisons in {}", result.getAllComparisons().size(), TimeLogUtil.formatDurationFrom(start)); return generateJPlagReportZip(result, programmingExercise); @@ -167,7 +172,7 @@ public File checkPlagiarismWithJPlagReport(long programmingExerciseId, float sim * @return the JPlag result or null if there are not enough participations */ @NotNull - private JPlagResult computeJPlagResult(ProgrammingExercise programmingExercise, float similarityThreshold, int minimumScore) { + private JPlagResult computeJPlagResult(ProgrammingExercise programmingExercise, float similarityThreshold, int minimumScore, int minimumSize) { long programmingExerciseId = programmingExercise.getId(); final var targetPath = fileService.getTemporaryUniqueSubfolderPath(repoDownloadClonePath, 60); List participations = filterStudentParticipationsForComparison(programmingExercise, minimumScore); @@ -177,7 +182,7 @@ private JPlagResult computeJPlagResult(ProgrammingExercise programmingExercise, throw new BadRequestAlertException("Insufficient amount of valid and long enough submissions available for comparison", "Plagiarism Check", "notEnoughSubmissions"); } - List repositories = downloadRepositories(programmingExercise, participations, targetPath.toString()); + List repositories = downloadRepositories(programmingExercise, participations, targetPath.toString(), minimumSize); log.info("Downloading repositories done for programming exercise {}", programmingExerciseId); final var projectKey = programmingExercise.getProjectKey(); @@ -343,12 +348,41 @@ public List filterStudentParticipationsForComp }).toList(); } - private List downloadRepositories(ProgrammingExercise programmingExercise, List participations, String targetPath) { + private Optional cloneTemplateRepository(ProgrammingExercise programmingExercise, String targetPath) { + try { + var templateRepo = gitService.getOrCheckoutRepository(programmingExercise.getTemplateParticipation(), targetPath); + gitService.resetToOriginHead(templateRepo); // start with clean state + return Optional.of(templateRepo); + } + catch (GitException | GitAPIException ex) { + log.error("Clone template repository {} in exercise '{}' did not work as expected: {}", programmingExercise.getTemplateParticipation().getVcsRepositoryUrl(), + programmingExercise.getTitle(), ex.getMessage()); + return Optional.empty(); + } + } + + private boolean shouldAddRepo(int minimumSize, Repository repo, Optional templateRepo) { + if (templateRepo.isEmpty()) { + return true; + } + + var diffToTemplate = programmingExerciseGitDiffReportService.calculateNumberOfDiffLinesBetweenRepos(repo.getRemoteRepositoryUrl(), repo.getLocalPath(), + templateRepo.get().getRemoteRepositoryUrl(), templateRepo.get().getLocalPath()); + return diffToTemplate >= minimumSize; + } + + private List downloadRepositories(ProgrammingExercise programmingExercise, List participations, String targetPath, + int minimumSize) { // Used for sending progress notifications var topic = plagiarismWebsocketService.getProgrammingExercisePlagiarismCheckTopic(programmingExercise.getId()); int maxRepositories = participations.size() + 1; List downloadedRepositories = new ArrayList<>(); + + plagiarismWebsocketService.notifyInstructorAboutPlagiarismState(topic, PlagiarismCheckState.RUNNING, List.of("Downloading repositories: 0/" + maxRepositories)); + var templateRepo = cloneTemplateRepository(programmingExercise, targetPath); + templateRepo.ifPresent(downloadedRepositories::add); + participations.parallelStream().forEach(participation -> { try { var progressMessage = "Downloading repositories: " + (downloadedRepositories.size() + 1) + "/" + maxRepositories; @@ -356,7 +390,13 @@ private List downloadRepositories(ProgrammingExercise programmingExe Repository repo = gitService.getOrCheckoutRepositoryForJPlag(participation, targetPath); gitService.resetToOriginHead(repo); // start with clean state - downloadedRepositories.add(repo); + + if (shouldAddRepo(minimumSize, repo, templateRepo)) { + downloadedRepositories.add(repo); + } + else { + deleteTempLocalRepository(repo); + } } catch (GitException | GitAPIException | InvalidPathException ex) { log.error("Clone student repository {} in exercise '{}' did not work as expected: {}", participation.getVcsRepositoryUrl(), programmingExercise.getTitle(), @@ -364,20 +404,6 @@ private List downloadRepositories(ProgrammingExercise programmingExe } }); - // clone the template repo - try { - var progressMessage = "Downloading repositories: " + maxRepositories + "/" + maxRepositories; - plagiarismWebsocketService.notifyInstructorAboutPlagiarismState(topic, PlagiarismCheckState.RUNNING, List.of(progressMessage)); - - Repository templateRepo = gitService.getOrCheckoutRepository(programmingExercise.getTemplateParticipation(), targetPath); - gitService.resetToOriginHead(templateRepo); // start with clean state - downloadedRepositories.add(templateRepo); - } - catch (GitException | GitAPIException ex) { - log.error("Clone template repository {} in exercise '{}' did not work as expected: {}", programmingExercise.getTemplateParticipation().getVcsRepositoryUrl(), - programmingExercise.getTitle(), ex.getMessage()); - } - return downloadedRepositories; } } diff --git a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/TextPlagiarismDetectionService.java b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/TextPlagiarismDetectionService.java index c0e141e604dd..25e8ee3cb22c 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/plagiarism/TextPlagiarismDetectionService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/plagiarism/TextPlagiarismDetectionService.java @@ -31,7 +31,7 @@ import de.tum.in.www1.artemis.web.rest.errors.BadRequestAlertException; @Service -public class TextPlagiarismDetectionService { +class TextPlagiarismDetectionService { private final Logger log = LoggerFactory.getLogger(TextPlagiarismDetectionService.class); diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/ModelingExerciseResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/ModelingExerciseResource.java index dfcf760984a9..8ee88209dfd8 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/ModelingExerciseResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/ModelingExerciseResource.java @@ -20,6 +20,7 @@ import de.tum.in.www1.artemis.domain.User; import de.tum.in.www1.artemis.domain.metis.conversation.Channel; import de.tum.in.www1.artemis.domain.modeling.ModelingExercise; +import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismDetectionConfig; import de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult; import de.tum.in.www1.artemis.repository.*; import de.tum.in.www1.artemis.repository.metis.conversation.ChannelRepository; @@ -34,7 +35,7 @@ import de.tum.in.www1.artemis.service.feature.FeatureToggle; import de.tum.in.www1.artemis.service.metis.conversation.ChannelService; import de.tum.in.www1.artemis.service.notifications.GroupNotificationScheduleService; -import de.tum.in.www1.artemis.service.plagiarism.ModelingPlagiarismDetectionService; +import de.tum.in.www1.artemis.service.plagiarism.PlagiarismDetectionService; import de.tum.in.www1.artemis.service.util.TimeLogUtil; import de.tum.in.www1.artemis.web.rest.dto.PageableSearchDTO; import de.tum.in.www1.artemis.web.rest.dto.SearchResultPageDTO; @@ -86,7 +87,7 @@ public class ModelingExerciseResource { private final GradingCriterionRepository gradingCriterionRepository; - private final ModelingPlagiarismDetectionService modelingPlagiarismDetectionService; + private final PlagiarismDetectionService plagiarismDetectionService; private final ChannelService channelService; @@ -97,7 +98,7 @@ public ModelingExerciseResource(ModelingExerciseRepository modelingExerciseRepos ModelingExerciseService modelingExerciseService, ExerciseDeletionService exerciseDeletionService, PlagiarismResultRepository plagiarismResultRepository, ModelingExerciseImportService modelingExerciseImportService, SubmissionExportService modelingSubmissionExportService, ExerciseService exerciseService, GroupNotificationScheduleService groupNotificationScheduleService, GradingCriterionRepository gradingCriterionRepository, - ModelingPlagiarismDetectionService modelingPlagiarismDetectionService, ChannelService channelService, ChannelRepository channelRepository) { + PlagiarismDetectionService plagiarismDetectionService, ChannelService channelService, ChannelRepository channelRepository) { this.modelingExerciseRepository = modelingExerciseRepository; this.courseService = courseService; this.modelingExerciseService = modelingExerciseService; @@ -112,7 +113,7 @@ public ModelingExerciseResource(ModelingExerciseRepository modelingExerciseRepos this.groupNotificationScheduleService = groupNotificationScheduleService; this.exerciseService = exerciseService; this.gradingCriterionRepository = gradingCriterionRepository; - this.modelingPlagiarismDetectionService = modelingPlagiarismDetectionService; + this.plagiarismDetectionService = plagiarismDetectionService; this.channelService = channelService; this.channelRepository = channelRepository; } @@ -390,17 +391,11 @@ public ResponseEntity checkPlagiarism(@PathVariable lo var modelingExercise = modelingExerciseRepository.findByIdWithStudentParticipationsSubmissionsResultsElseThrow(exerciseId); authCheckService.checkHasAtLeastRoleForExerciseElseThrow(Role.INSTRUCTOR, modelingExercise, null); long start = System.nanoTime(); - log.info("Start modelingPlagiarismDetectionService.checkPlagiarism for exercise {}", exerciseId); - var plagiarismResult = modelingPlagiarismDetectionService.checkPlagiarism(modelingExercise, similarityThreshold / 100, minimumSize, minimumScore); - log.info("Finished modelingPlagiarismDetectionService.checkPlagiarism call for {} comparisons in {}", plagiarismResult.getComparisons().size(), - TimeLogUtil.formatDurationFrom(start)); - // TODO: limit the amount temporarily because of database issues - plagiarismResult.sortAndLimit(100); - log.info("Limited number of comparisons to {} to avoid performance issues when saving to database", plagiarismResult.getComparisons().size()); - start = System.nanoTime(); - plagiarismResultRepository.savePlagiarismResultAndRemovePrevious(plagiarismResult); - log.info("Finished plagiarismResultRepository.savePlagiarismResultAndRemovePrevious call in {}", TimeLogUtil.formatDurationFrom(start)); - plagiarismResultRepository.prepareResultForClient(plagiarismResult); + log.info("Started manual plagiarism checks for modeling exercise: exerciseId={}.", exerciseId); + var config = new PlagiarismDetectionConfig(similarityThreshold, minimumScore, minimumSize); + var plagiarismResult = plagiarismDetectionService.checkModelingExercise(modelingExercise, config); + log.info("Finished manual plagiarism checks for modeling exercise: exerciseId={}, elapsed={}.", exerciseId, TimeLogUtil.formatDurationFrom(start)); + return ResponseEntity.ok(plagiarismResult); } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingExercisePlagiarismResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingExercisePlagiarismResource.java index b170639fbb0d..9fe72ab56e03 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingExercisePlagiarismResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/ProgrammingExercisePlagiarismResource.java @@ -2,10 +2,8 @@ import static de.tum.in.www1.artemis.web.rest.ProgrammingExerciseResourceEndpoints.*; -import java.io.File; import java.io.FileInputStream; import java.io.IOException; -import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -18,7 +16,7 @@ import de.jplag.exceptions.ExitException; import de.tum.in.www1.artemis.domain.ProgrammingExercise; -import de.tum.in.www1.artemis.domain.enumeration.ProgrammingLanguage; +import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismDetectionConfig; import de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult; import de.tum.in.www1.artemis.repository.ProgrammingExerciseRepository; import de.tum.in.www1.artemis.repository.plagiarism.PlagiarismResultRepository; @@ -27,9 +25,8 @@ import de.tum.in.www1.artemis.service.AuthorizationCheckService; import de.tum.in.www1.artemis.service.feature.Feature; import de.tum.in.www1.artemis.service.feature.FeatureToggle; -import de.tum.in.www1.artemis.service.plagiarism.ProgrammingPlagiarismDetectionService; -import de.tum.in.www1.artemis.service.programming.ProgrammingLanguageFeature; -import de.tum.in.www1.artemis.service.programming.ProgrammingLanguageFeatureService; +import de.tum.in.www1.artemis.service.plagiarism.PlagiarismDetectionService; +import de.tum.in.www1.artemis.service.plagiarism.ProgrammingLanguageNotSupportedForPlagiarismDetectionException; import de.tum.in.www1.artemis.service.util.TimeLogUtil; import de.tum.in.www1.artemis.web.rest.errors.BadRequestAlertException; @@ -53,18 +50,14 @@ public class ProgrammingExercisePlagiarismResource { private final PlagiarismResultRepository plagiarismResultRepository; - private final Optional programmingLanguageFeatureService; - - private final ProgrammingPlagiarismDetectionService programmingPlagiarismDetectionService; + private final PlagiarismDetectionService plagiarismDetectionService; public ProgrammingExercisePlagiarismResource(ProgrammingExerciseRepository programmingExerciseRepository, AuthorizationCheckService authCheckService, - PlagiarismResultRepository plagiarismResultRepository, Optional programmingLanguageFeatureService, - ProgrammingPlagiarismDetectionService programmingPlagiarismDetectionService) { + PlagiarismResultRepository plagiarismResultRepository, PlagiarismDetectionService plagiarismDetectionService) { this.programmingExerciseRepository = programmingExerciseRepository; this.authCheckService = authCheckService; this.plagiarismResultRepository = plagiarismResultRepository; - this.programmingLanguageFeatureService = programmingLanguageFeatureService; - this.programmingPlagiarismDetectionService = programmingPlagiarismDetectionService; + this.plagiarismDetectionService = plagiarismDetectionService; } /** @@ -91,6 +84,7 @@ public ResponseEntity getPlagiarismResult(@PathVariable lo * @param exerciseId The ID of the programming exercise for which the plagiarism check should be executed * @param similarityThreshold ignore comparisons whose similarity is below this threshold (in % between 0 and 100) * @param minimumScore consider only submissions whose score is greater or equal to this value + * @param minimumSize consider only submissions whose number of diff to template lines is greate or equal to this value * @return the ResponseEntity with status 200 (OK) and the list of at most 500 pair-wise submissions with a similarity above the given threshold (e.g. 50%). * @throws ExitException is thrown if JPlag exits unexpectedly * @throws IOException is thrown for file handling errors @@ -98,25 +92,24 @@ public ResponseEntity getPlagiarismResult(@PathVariable lo @GetMapping(CHECK_PLAGIARISM) @EnforceAtLeastEditor @FeatureToggle({ Feature.ProgrammingExercises, Feature.PlagiarismChecks }) - public ResponseEntity checkPlagiarism(@PathVariable long exerciseId, @RequestParam float similarityThreshold, @RequestParam int minimumScore) - throws ExitException, IOException { + public ResponseEntity checkPlagiarism(@PathVariable long exerciseId, @RequestParam float similarityThreshold, @RequestParam int minimumScore, + @RequestParam int minimumSize) throws ExitException, IOException { ProgrammingExercise programmingExercise = programmingExerciseRepository.findByIdElseThrow(exerciseId); authCheckService.checkHasAtLeastRoleForExerciseElseThrow(Role.EDITOR, programmingExercise, null); - ProgrammingLanguage language = programmingExercise.getProgrammingLanguage(); - ProgrammingLanguageFeature programmingLanguageFeature = programmingLanguageFeatureService.orElseThrow().getProgrammingLanguageFeatures(language); - - if (!programmingLanguageFeature.plagiarismCheckSupported()) { - throw new BadRequestAlertException("Artemis does not support plagiarism checks for the programming language " + programmingExercise.getProgrammingLanguage(), - ENTITY_NAME, "programmingLanguageNotSupported"); - } long start = System.nanoTime(); - log.info("Start programmingPlagiarismDetectionService.checkPlagiarism for exercise {}", exerciseId); - var plagiarismResult = programmingPlagiarismDetectionService.checkPlagiarism(exerciseId, similarityThreshold, minimumScore); - log.info("Finished programmingExerciseExportService.checkPlagiarism call for {} comparisons in {}", plagiarismResult.getComparisons().size(), - TimeLogUtil.formatDurationFrom(start)); - plagiarismResultRepository.prepareResultForClient(plagiarismResult); - return ResponseEntity.ok(plagiarismResult); + log.info("Started manual plagiarism checks for programming exercise: exerciseId={}.", exerciseId); + var config = new PlagiarismDetectionConfig(similarityThreshold, minimumScore, minimumSize); + try { + var plagiarismResult = plagiarismDetectionService.checkProgrammingExercise(programmingExercise, config); + return ResponseEntity.ok(plagiarismResult); + } + catch (ProgrammingLanguageNotSupportedForPlagiarismDetectionException e) { + throw new BadRequestAlertException(e.getMessage(), ENTITY_NAME, "programmingLanguageNotSupported"); + } + finally { + log.info("Finished manual plagiarism checks for programming exercise: exerciseId={}, elapsed={}.", exerciseId, TimeLogUtil.formatDurationFrom(start)); + } } /** @@ -125,29 +118,37 @@ public ResponseEntity checkPlagiarism(@PathVariable long e * @param exerciseId The ID of the programming exercise for which the plagiarism check should be executed * @param similarityThreshold ignore comparisons whose similarity is below this threshold (in % between 0 and 100) * @param minimumScore consider only submissions whose score is greater or equal to this value + * @param minimumSize consider only submissions whose number of diff to template lines is greate or equal to this value * @return The ResponseEntity with status 201 (Created) or with status 400 (Bad Request) if the parameters are invalid * @throws IOException is thrown for file handling errors */ @GetMapping(value = CHECK_PLAGIARISM_JPLAG_REPORT) @EnforceAtLeastEditor @FeatureToggle(Feature.ProgrammingExercises) - public ResponseEntity checkPlagiarismWithJPlagReport(@PathVariable long exerciseId, @RequestParam float similarityThreshold, @RequestParam int minimumScore) - throws IOException { + public ResponseEntity checkPlagiarismWithJPlagReport(@PathVariable long exerciseId, @RequestParam float similarityThreshold, @RequestParam int minimumScore, + @RequestParam int minimumSize) throws IOException { log.debug("REST request to check plagiarism for ProgrammingExercise with id: {}", exerciseId); ProgrammingExercise programmingExercise = programmingExerciseRepository.findByIdElseThrow(exerciseId); authCheckService.checkHasAtLeastRoleForExerciseElseThrow(Role.EDITOR, programmingExercise, null); - var programmingLanguageFeature = programmingLanguageFeatureService.orElseThrow().getProgrammingLanguageFeatures(programmingExercise.getProgrammingLanguage()); - if (!programmingLanguageFeature.plagiarismCheckSupported()) { - throw new BadRequestAlertException("Artemis does not support plagiarism checks for the programming language " + programmingExercise.getProgrammingLanguage(), - "Plagiarism Check", "programmingLanguageNotSupported"); - } - File zipFile = programmingPlagiarismDetectionService.checkPlagiarismWithJPlagReport(exerciseId, similarityThreshold, minimumScore); - if (zipFile == null) { - throw new BadRequestAlertException("Insufficient amount of valid and long enough submissions available for comparison.", "Plagiarism Check", "notEnoughSubmissions"); + long start = System.nanoTime(); + log.info("Started manual plagiarism checks with Jplag report for programming exercise: exerciseId={}.", exerciseId); + var config = new PlagiarismDetectionConfig(similarityThreshold, minimumScore, minimumSize); + try { + var zipFile = plagiarismDetectionService.checkProgrammingExerciseWithJplagReport(programmingExercise, config); + if (zipFile == null) { + throw new BadRequestAlertException("Insufficient amount of valid and long enough submissions available for comparison.", "Plagiarism Check", + "notEnoughSubmissions"); + } + + var resource = new InputStreamResource(new FileInputStream(zipFile)); + return ResponseEntity.ok().contentLength(zipFile.length()).contentType(MediaType.APPLICATION_OCTET_STREAM).header("filename", zipFile.getName()).body(resource); + } + catch (ProgrammingLanguageNotSupportedForPlagiarismDetectionException e) { + throw new BadRequestAlertException(e.getMessage(), ENTITY_NAME, "programmingLanguageNotSupported"); + } + finally { + log.info("Finished manual plagiarism checks with Jplag report for programming exercise: exerciseId={}, elapsed={}.", exerciseId, TimeLogUtil.formatDurationFrom(start)); } - - InputStreamResource resource = new InputStreamResource(new FileInputStream(zipFile)); - return ResponseEntity.ok().contentLength(zipFile.length()).contentType(MediaType.APPLICATION_OCTET_STREAM).header("filename", zipFile.getName()).body(resource); } } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/TextExerciseResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/TextExerciseResource.java index 2d4f41229288..ec59a8308d6b 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/TextExerciseResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/TextExerciseResource.java @@ -16,6 +16,7 @@ import de.tum.in.www1.artemis.domain.*; import de.tum.in.www1.artemis.domain.metis.conversation.Channel; import de.tum.in.www1.artemis.domain.participation.StudentParticipation; +import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismDetectionConfig; import de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult; import de.tum.in.www1.artemis.repository.*; import de.tum.in.www1.artemis.repository.metis.conversation.ChannelRepository; @@ -29,7 +30,7 @@ import de.tum.in.www1.artemis.service.messaging.InstanceMessageSendService; import de.tum.in.www1.artemis.service.metis.conversation.ChannelService; import de.tum.in.www1.artemis.service.notifications.GroupNotificationScheduleService; -import de.tum.in.www1.artemis.service.plagiarism.TextPlagiarismDetectionService; +import de.tum.in.www1.artemis.service.plagiarism.PlagiarismDetectionService; import de.tum.in.www1.artemis.service.util.TimeLogUtil; import de.tum.in.www1.artemis.web.rest.dto.PageableSearchDTO; import de.tum.in.www1.artemis.web.rest.dto.SearchResultPageDTO; @@ -93,7 +94,7 @@ public class TextExerciseResource { private final InstanceMessageSendService instanceMessageSendService; - private final TextPlagiarismDetectionService textPlagiarismDetectionService; + private final PlagiarismDetectionService plagiarismDetectionService; private final CourseRepository courseRepository; @@ -107,7 +108,7 @@ public TextExerciseResource(TextExerciseRepository textExerciseRepository, TextE ParticipationRepository participationRepository, ResultRepository resultRepository, TextExerciseImportService textExerciseImportService, TextSubmissionExportService textSubmissionExportService, ExampleSubmissionRepository exampleSubmissionRepository, ExerciseService exerciseService, GradingCriterionRepository gradingCriterionRepository, TextBlockRepository textBlockRepository, GroupNotificationScheduleService groupNotificationScheduleService, - InstanceMessageSendService instanceMessageSendService, TextPlagiarismDetectionService textPlagiarismDetectionService, CourseRepository courseRepository, + InstanceMessageSendService instanceMessageSendService, PlagiarismDetectionService plagiarismDetectionService, CourseRepository courseRepository, ChannelService channelService, ChannelRepository channelRepository) { this.feedbackRepository = feedbackRepository; this.exerciseDeletionService = exerciseDeletionService; @@ -128,7 +129,7 @@ public TextExerciseResource(TextExerciseRepository textExerciseRepository, TextE this.exerciseService = exerciseService; this.gradingCriterionRepository = gradingCriterionRepository; this.instanceMessageSendService = instanceMessageSendService; - this.textPlagiarismDetectionService = textPlagiarismDetectionService; + this.plagiarismDetectionService = plagiarismDetectionService; this.courseRepository = courseRepository; this.channelService = channelService; this.channelRepository = channelRepository; @@ -495,18 +496,12 @@ public ResponseEntity checkPlagiarism(@PathVariable long e @RequestParam int minimumSize) throws ExitException { TextExercise textExercise = textExerciseRepository.findByIdWithStudentParticipationsAndSubmissionsElseThrow(exerciseId); authCheckService.checkHasAtLeastRoleForExerciseElseThrow(Role.EDITOR, textExercise, null); - log.info("Start textPlagiarismDetectionService.checkPlagiarism for exercise {}", exerciseId); + long start = System.nanoTime(); - var plagiarismResult = textPlagiarismDetectionService.checkPlagiarism(textExercise, similarityThreshold, minimumScore, minimumSize); - log.info("Finished textPlagiarismDetectionService.checkPlagiarism for exercise {} with {} comparisons in {}", exerciseId, plagiarismResult.getComparisons().size(), - TimeLogUtil.formatDurationFrom(start)); - // TODO: limit the amount temporarily because of database issues - plagiarismResult.sortAndLimit(100); - log.info("Limited number of comparisons to {} to avoid performance issues when saving to database", plagiarismResult.getComparisons().size()); - start = System.nanoTime(); - plagiarismResultRepository.savePlagiarismResultAndRemovePrevious(plagiarismResult); - log.info("Finished plagiarismResultRepository.savePlagiarismResultAndRemovePrevious call in {}", TimeLogUtil.formatDurationFrom(start)); - plagiarismResultRepository.prepareResultForClient(plagiarismResult); + log.info("Started manual plagiarism checks for text exercise: exerciseId={}.", exerciseId); + var config = new PlagiarismDetectionConfig(similarityThreshold, minimumScore, minimumSize); + var plagiarismResult = plagiarismDetectionService.checkTextExercise(textExercise, config); + log.info("Finished manual plagiarism checks for text exercise: exerciseId={}, elapsed={}.", exerciseId, TimeLogUtil.formatDurationFrom(start)); return ResponseEntity.ok(plagiarismResult); } diff --git a/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.html b/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.html index b0cddf737e1b..9bd26fc8c330 100644 --- a/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.html +++ b/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.html @@ -91,7 +91,7 @@
-
+
diff --git a/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.ts b/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.ts index 47505af1cced..e69d8875925d 100644 --- a/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.ts +++ b/src/main/webapp/app/exercises/shared/plagiarism/plagiarism-inspector/plagiarism-inspector.component.ts @@ -384,17 +384,15 @@ export class PlagiarismInspectorComponent implements OnInit { * Return the translation identifier of the minimum size tooltip for the current exercise type. */ getMinimumSizeTooltip() { - const tooltip = 'artemisApp.plagiarism.minimumSizeTooltip'; - switch (this.exercise.type) { + case ExerciseType.PROGRAMMING: { + return 'artemisApp.plagiarism.minimumSizeTooltipProgrammingExercise'; + } case ExerciseType.TEXT: { - return tooltip + 'Text'; + return 'artemisApp.plagiarism.minimumSizeTooltipTextExercise'; } case ExerciseType.MODELING: { - return tooltip + 'Modeling'; - } - default: { - return tooltip; + return 'artemisApp.plagiarism.minimumSizeTooltipModelingExercise'; } } } diff --git a/src/main/webapp/i18n/de/plagiarism.json b/src/main/webapp/i18n/de/plagiarism.json index 087164669afb..cc1737f42183 100644 --- a/src/main/webapp/i18n/de/plagiarism.json +++ b/src/main/webapp/i18n/de/plagiarism.json @@ -34,9 +34,9 @@ "minimumScore": "Minimale Bewertung in %", "minimumScoreTooltip": "Berücksichtige nur Einreichungen mit einer Bewertung, die mindestens diesem Wert entspricht", "minimumSize": "Minimale Größe", - "minimumSizeTooltip": "Berücksichtige nur Einreichungen, deren Größe mindestens diesem Wert entspricht", - "minimumSizeTooltipModeling": "Berücksichtige nur Einreichungen, die mindestens so viele Modeling-Elemente wie der angegebene Wert haben", - "minimumSizeTooltipText": "Berücksichtige nur Einreichungen, die mindestens so viele Zeichen wie der angegebene Wert haben", + "minimumSizeTooltipTextExercise": "Es werden nur diejenigen Abgaben berücksichtigt, die mindestens so viele Wörter beinhalten wie der angegebene Wert.", + "minimumSizeTooltipProgrammingExercise": "Es werden nur diejenigen Abgaben berücksichtigt, die mindestens so viele unterschiedliche Zeilen (im Vergleich zur Vorlage) beinhalten wie der angegebene Wert.", + "minimumSizeTooltipModelingExercise": "Es werden nur diejenigen Abgaben berücksichtigt, die mindestens so viele Modellelemente beinhalten wie der angegebene Wert.", "noInfoAvailable": "Keine Information verfügbar", "caution": "Die Plagiatskontrolle kann für große Kurse sehr lange dauern.", "detect": "Plagiate finden", diff --git a/src/main/webapp/i18n/en/plagiarism.json b/src/main/webapp/i18n/en/plagiarism.json index 2203a200344f..8bf6cb2a23f0 100644 --- a/src/main/webapp/i18n/en/plagiarism.json +++ b/src/main/webapp/i18n/en/plagiarism.json @@ -34,9 +34,9 @@ "minimumScore": "Minimum Score in %", "minimumScoreTooltip": "Consider only submissions with a score greater than or equal to this value", "minimumSize": "Minimum Size", - "minimumSizeTooltip": "Consider only submissions whose size is greater or equal to this value", - "minimumSizeTooltipModeling": "Consider only submissions that have at least as many modeling elements as the specified value", - "minimumSizeTooltipText": "Consider only submissions that have at least as many words as the specified value", + "minimumSizeTooltipTextExercise": "Consider only submissions that have at least as many words as the specified value.", + "minimumSizeTooltipProgrammingExercise": "Consider only submissions that have at least as many different lines in comparison to the template as the specified value.", + "minimumSizeTooltipModelingExercise": "Consider only submissions that have at least as many modeling elements as the specified value.", "noInfoAvailable": "No information available", "caution": "Plagiarism detection can take a long time for large courses.", "detect": "Detect plagiarism", diff --git a/src/test/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionServiceTest.java b/src/test/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionServiceTest.java new file mode 100644 index 000000000000..0f0e0fc8e033 --- /dev/null +++ b/src/test/java/de/tum/in/www1/artemis/service/plagiarism/PlagiarismDetectionServiceTest.java @@ -0,0 +1,140 @@ +package de.tum.in.www1.artemis.service.plagiarism; + +import static java.util.Collections.emptyList; +import static java.util.Collections.emptySet; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.File; +import java.io.IOException; +import java.util.Optional; + +import org.junit.jupiter.api.Test; + +import de.jplag.exceptions.ExitException; +import de.tum.in.www1.artemis.domain.ProgrammingExercise; +import de.tum.in.www1.artemis.domain.TextExercise; +import de.tum.in.www1.artemis.domain.modeling.ModelingExercise; +import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismDetectionConfig; +import de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult; +import de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult; +import de.tum.in.www1.artemis.repository.plagiarism.PlagiarismResultRepository; +import de.tum.in.www1.artemis.service.programming.ProgrammingLanguageFeature; +import de.tum.in.www1.artemis.service.programming.ProgrammingLanguageFeatureService; + +class PlagiarismDetectionServiceTest { + + private final PlagiarismDetectionConfig config = new PlagiarismDetectionConfig(0.5f, 1, 2); + + private final TextPlagiarismDetectionService textPlagiarismDetectionService = mock(); + + private final ProgrammingLanguageFeatureService programmingLanguageFeatureService = mock(); + + private final ProgrammingPlagiarismDetectionService programmingPlagiarismDetectionService = mock(); + + private final ModelingPlagiarismDetectionService modelingPlagiarismDetectionService = mock(); + + private final PlagiarismResultRepository plagiarismResultRepository = mock(); + + private final PlagiarismDetectionService service = new PlagiarismDetectionService(textPlagiarismDetectionService, Optional.of(programmingLanguageFeatureService), + programmingPlagiarismDetectionService, modelingPlagiarismDetectionService, plagiarismResultRepository); + + @Test + void shouldExecuteChecksForTextExercise() throws ExitException { + // given + var textExercise = new TextExercise(); + var textPlagiarismResult = new TextPlagiarismResult(); + textPlagiarismResult.setComparisons(emptySet()); + when(textPlagiarismDetectionService.checkPlagiarism(textExercise, config.similarityThreshold(), config.minimumScore(), config.minimumSize())) + .thenReturn(textPlagiarismResult); + + // when + var result = service.checkTextExercise(textExercise, config); + + // then + assertThat(result).isEqualTo(textPlagiarismResult); + } + + @Test + void shouldExecuteChecksForModelingExercise() { + // given + var modelingExercise = new ModelingExercise(); + var modelingPlagiarismResult = new ModelingPlagiarismResult(); + modelingPlagiarismResult.setComparisons(emptySet()); + when(modelingPlagiarismDetectionService.checkPlagiarism(modelingExercise, config.similarityThreshold(), config.minimumSize(), config.minimumScore())) + .thenReturn(modelingPlagiarismResult); + + // when + var result = service.checkModelingExercise(modelingExercise, config); + + // then + assertThat(result).isEqualTo(modelingPlagiarismResult); + } + + @Test + void shouldExecuteChecksForProgrammingExercise() throws IOException, ExitException, ProgrammingLanguageNotSupportedForPlagiarismDetectionException { + // given + var programmingExercise = new ProgrammingExercise(); + programmingExercise.setId(1L); + var programmingPlagiarismResult = new TextPlagiarismResult(); + programmingPlagiarismResult.setComparisons(emptySet()); + when(programmingPlagiarismDetectionService.checkPlagiarism(1L, config.similarityThreshold(), config.minimumScore(), config.minimumSize())) + .thenReturn(programmingPlagiarismResult); + + // and + var programmingLanguageFeature = new ProgrammingLanguageFeature(null, false, false, true, false, false, emptyList(), false, false, false); + when(programmingLanguageFeatureService.getProgrammingLanguageFeatures(any())).thenReturn(programmingLanguageFeature); + + // when + var result = service.checkProgrammingExercise(programmingExercise, config); + + // then + assertThat(result).isEqualTo(programmingPlagiarismResult); + } + + @Test + void shouldThrowExceptionOnUnsupportedProgrammingLanguage() { + // given + var programmingExercise = new ProgrammingExercise(); + var programmingLanguageFeature = new ProgrammingLanguageFeature(null, false, false, false, false, false, emptyList(), false, false, false); + when(programmingLanguageFeatureService.getProgrammingLanguageFeatures(any())).thenReturn(programmingLanguageFeature); + + // expect + assertThatThrownBy(() -> service.checkProgrammingExercise(programmingExercise, config)).isInstanceOf(ProgrammingLanguageNotSupportedForPlagiarismDetectionException.class); + } + + @Test + void shouldExecuteChecksWithJplagReportForProgrammingExercise() throws ProgrammingLanguageNotSupportedForPlagiarismDetectionException { + // given + var programmingExercise = new ProgrammingExercise(); + programmingExercise.setId(1L); + var zipFile = new File(""); + when(programmingPlagiarismDetectionService.checkPlagiarismWithJPlagReport(1L, config.similarityThreshold(), config.minimumScore(), config.minimumSize())) + .thenReturn(zipFile); + + // and + var programmingLanguageFeature = new ProgrammingLanguageFeature(null, false, false, true, false, false, emptyList(), false, false, false); + when(programmingLanguageFeatureService.getProgrammingLanguageFeatures(any())).thenReturn(programmingLanguageFeature); + + // when + var result = service.checkProgrammingExerciseWithJplagReport(programmingExercise, config); + + // then + assertThat(result).isEqualTo(zipFile); + } + + @Test + void shouldThrowExceptionOnUnsupportedProgrammingLanguageForChecksWithJplagReport() { + // given + var programmingExercise = new ProgrammingExercise(); + var programmingLanguageFeature = new ProgrammingLanguageFeature(null, false, false, false, false, false, emptyList(), false, false, false); + when(programmingLanguageFeatureService.getProgrammingLanguageFeatures(any())).thenReturn(programmingLanguageFeature); + + // expect + assertThatThrownBy(() -> service.checkProgrammingExerciseWithJplagReport(programmingExercise, config)) + .isInstanceOf(ProgrammingLanguageNotSupportedForPlagiarismDetectionException.class); + } +} diff --git a/src/test/javascript/spec/component/plagiarism/plagiarism-inspector.component.spec.ts b/src/test/javascript/spec/component/plagiarism/plagiarism-inspector.component.spec.ts index 0a6981a1d5d3..63b05fd3d43c 100644 --- a/src/test/javascript/spec/component/plagiarism/plagiarism-inspector.component.spec.ts +++ b/src/test/javascript/spec/component/plagiarism/plagiarism-inspector.component.spec.ts @@ -146,22 +146,22 @@ describe('Plagiarism Inspector Component', () => { }); }); - it('should get the minimumSize tootip', () => { + it('should get the minimumSize tooltip for programming', () => { comp.exercise = { type: ExerciseType.PROGRAMMING } as Exercise; - expect(comp.getMinimumSizeTooltip()).toBe('artemisApp.plagiarism.minimumSizeTooltip'); + expect(comp.getMinimumSizeTooltip()).toBe('artemisApp.plagiarism.minimumSizeTooltipProgrammingExercise'); }); it('should get the minimumSize tootip for modeling', () => { comp.exercise = { type: ExerciseType.MODELING } as Exercise; - expect(comp.getMinimumSizeTooltip()).toBe('artemisApp.plagiarism.minimumSizeTooltipModeling'); + expect(comp.getMinimumSizeTooltip()).toBe('artemisApp.plagiarism.minimumSizeTooltipModelingExercise'); }); it('should get the minimumSize tootip for text', () => { comp.exercise = { type: ExerciseType.TEXT } as Exercise; - expect(comp.getMinimumSizeTooltip()).toBe('artemisApp.plagiarism.minimumSizeTooltipText'); + expect(comp.getMinimumSizeTooltip()).toBe('artemisApp.plagiarism.minimumSizeTooltipTextExercise'); }); it('should fetch the plagiarism detection results for modeling exercises', () => { From fa8a10bed68e92c973fcd8d9cf6cba635d9a994f Mon Sep 17 00:00:00 2001 From: Timor Morrien Date: Mon, 2 Oct 2023 09:30:03 +0200 Subject: [PATCH 10/39] Iris: Add per-user rate limit (#7246) --- .../iris/IrisMessageRepository.java | 21 +++++ .../service/iris/IrisRateLimitService.java | 80 +++++++++++++++++++ .../service/iris/IrisWebsocketService.java | 31 +++++-- .../service/iris/exception/IrisException.java | 6 ++ .../IrisRateLimitExceededException.java | 24 ++++++ .../web/rest/iris/IrisMessageResource.java | 23 ++++-- .../web/rest/iris/IrisSessionResource.java | 16 +++- .../app/entities/iris/iris-errors.model.ts | 2 + .../exercise-chat-widget.component.html | 35 ++++---- .../exercise-chat-widget.component.scss | 10 +++ .../exercise-chat-widget.component.ts | 40 ++++++---- src/main/webapp/app/iris/heartbeat.service.ts | 13 ++- .../webapp/app/iris/http-session.service.ts | 9 ++- .../iris-sub-settings-update.component.html | 3 +- src/main/webapp/app/iris/state-store.model.ts | 18 +++++ .../webapp/app/iris/state-store.service.ts | 15 ++++ src/main/webapp/app/iris/websocket.service.ts | 11 +++ src/main/webapp/i18n/de/exerciseChatbot.json | 6 +- src/main/webapp/i18n/de/iris.json | 2 + src/main/webapp/i18n/en/exerciseChatbot.json | 6 +- src/main/webapp/i18n/en/iris.json | 4 +- .../iris/IrisMessageIntegrationTest.java | 77 ++++++++++++++---- .../iris/IrisSessionIntegrationTest.java | 12 +-- .../www1/artemis/iris/IrisWebsocketTest.java | 2 +- .../iris/state-store.service.spec.ts | 35 ++++++++ .../spec/helpers/sample/iris-sample-data.ts | 2 + .../resources/config/application-iris.yml | 2 + 27 files changed, 424 insertions(+), 81 deletions(-) create mode 100644 src/main/java/de/tum/in/www1/artemis/service/iris/IrisRateLimitService.java create mode 100644 src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisRateLimitExceededException.java diff --git a/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisMessageRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisMessageRepository.java index 0400efcdf8dc..749903a605b7 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisMessageRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisMessageRepository.java @@ -1,11 +1,13 @@ package de.tum.in.www1.artemis.repository.iris; +import java.time.ZonedDateTime; import java.util.List; import javax.validation.constraints.NotNull; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import de.tum.in.www1.artemis.domain.iris.IrisMessage; import de.tum.in.www1.artemis.web.rest.errors.EntityNotFoundException; @@ -26,6 +28,25 @@ public interface IrisMessageRepository extends JpaRepository """) List findAllExceptSystemMessagesWithContentBySessionId(Long sessionId); + /** + * Counts the number of LLM responses the user got within the given timeframe. + * + * @param userId the id of the user + * @param start the start of the timeframe + * @param end the end of the timeframe + * @return the number of chat messages sent by the user within the given timeframe + */ + @Query(""" + SELECT COUNT(DISTINCT m) + FROM IrisMessage m + LEFT JOIN m.session as s + WHERE type(s) = de.tum.in.www1.artemis.domain.iris.session.IrisChatSession + AND s.user.id = :userId + AND m.sender = 'LLM' + AND m.sentAt BETWEEN :start AND :end + """) + int countLlmResponsesOfUserWithinTimeframe(@Param("userId") Long userId, @Param("start") ZonedDateTime start, @Param("end") ZonedDateTime end); + @NotNull default IrisMessage findByIdElseThrow(long messageId) throws EntityNotFoundException { return findById(messageId).orElseThrow(() -> new EntityNotFoundException("Iris Message", messageId)); diff --git a/src/main/java/de/tum/in/www1/artemis/service/iris/IrisRateLimitService.java b/src/main/java/de/tum/in/www1/artemis/service/iris/IrisRateLimitService.java new file mode 100644 index 000000000000..b43979dd6168 --- /dev/null +++ b/src/main/java/de/tum/in/www1/artemis/service/iris/IrisRateLimitService.java @@ -0,0 +1,80 @@ +package de.tum.in.www1.artemis.service.iris; + +import java.time.ZonedDateTime; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Service; + +import de.tum.in.www1.artemis.domain.User; +import de.tum.in.www1.artemis.repository.iris.IrisMessageRepository; +import de.tum.in.www1.artemis.service.iris.exception.IrisRateLimitExceededException; + +/** + * Service for the rate limit of the iris chatbot. + */ +@Service +@Profile("iris") +public class IrisRateLimitService { + + private final IrisMessageRepository irisMessageRepository; + + @Value("${artemis.iris.rate-limit:5}") + private int rateLimit; + + @Value("${artemis.iris.rate-limit-timeframe-hours:24}") + private int rateLimitTimeframeHours; + + public IrisRateLimitService(IrisMessageRepository irisMessageRepository) { + this.irisMessageRepository = irisMessageRepository; + } + + /** + * Get the rate limit information for the given user. + * See {@link IrisRateLimitInformation} and {@link IrisRateLimitInformation#isRateLimitExceeded()} for more information. + * + * @param user the user + * @return the rate limit information + */ + public IrisRateLimitInformation getRateLimitInformation(User user) { + var start = ZonedDateTime.now().minusHours(rateLimitTimeframeHours); + var end = ZonedDateTime.now(); + var currentMessageCount = irisMessageRepository.countLlmResponsesOfUserWithinTimeframe(user.getId(), start, end); + + return new IrisRateLimitInformation(currentMessageCount, rateLimit); + } + + /** + * Checks if the rate limit of the given user is exceeded. + * If it is exceeded, an {@link IrisRateLimitExceededException} is thrown. + * See {@link #getRateLimitInformation(User)} and {@link IrisRateLimitInformation#isRateLimitExceeded()} for more information. + * + * @param user the user + * @throws IrisRateLimitExceededException if the rate limit is exceeded + */ + public void checkRateLimitElseThrow(User user) { + var rateLimitInfo = getRateLimitInformation(user); + if (rateLimitInfo.isRateLimitExceeded()) { + throw new IrisRateLimitExceededException(rateLimitInfo); + } + } + + /** + * Contains information about the rate limit of a user. + * + * @param currentMessageCount the current rate limit + * @param rateLimit the max rate limit + */ + public record IrisRateLimitInformation(int currentMessageCount, int rateLimit) { + + /** + * Checks if the rate limit is exceeded. + * It is exceeded if the rateLimit is set and the currentMessageCount is greater or equal to the rateLimit. + * + * @return true if the rate limit is exceeded, false otherwise + */ + public boolean isRateLimitExceeded() { + return rateLimit != -1 && currentMessageCount >= rateLimit; + } + } +} diff --git a/src/main/java/de/tum/in/www1/artemis/service/iris/IrisWebsocketService.java b/src/main/java/de/tum/in/www1/artemis/service/iris/IrisWebsocketService.java index 13ded18a2503..dbb6acfd6280 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/iris/IrisWebsocketService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/iris/IrisWebsocketService.java @@ -4,6 +4,7 @@ import java.util.Map; import java.util.Objects; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; import com.fasterxml.jackson.annotation.JsonInclude; @@ -18,14 +19,18 @@ * A service to send a message over the websocket to a specific user */ @Service +@Profile("iris") public class IrisWebsocketService { private static final String IRIS_WEBSOCKET_TOPIC_PREFIX = "/topic/iris"; private final WebsocketMessagingService websocketMessagingService; - public IrisWebsocketService(WebsocketMessagingService websocketMessagingService) { + private final IrisRateLimitService rateLimitService; + + public IrisWebsocketService(WebsocketMessagingService websocketMessagingService, IrisRateLimitService rateLimitService) { this.websocketMessagingService = websocketMessagingService; + this.rateLimitService = rateLimitService; } /** @@ -38,9 +43,11 @@ public void sendMessage(IrisMessage irisMessage) { throw new UnsupportedOperationException("Only IrisChatSession is supported"); } Long irisSessionId = irisMessage.getSession().getId(); - String userLogin = ((IrisChatSession) irisMessage.getSession()).getUser().getLogin(); + var user = ((IrisChatSession) irisMessage.getSession()).getUser(); + String userLogin = user.getLogin(); String irisWebsocketTopic = String.format("%s/sessions/%d", IRIS_WEBSOCKET_TOPIC_PREFIX, irisSessionId); - websocketMessagingService.sendMessageToUser(userLogin, irisWebsocketTopic, new IrisWebsocketDTO(irisMessage)); + var rateLimitInfo = rateLimitService.getRateLimitInformation(user); + websocketMessagingService.sendMessageToUser(userLogin, irisWebsocketTopic, new IrisWebsocketDTO(irisMessage, rateLimitInfo)); } /** @@ -54,9 +61,11 @@ public void sendException(IrisSession irisSession, Throwable throwable) { throw new UnsupportedOperationException("Only IrisChatSession is supported"); } Long irisSessionId = irisSession.getId(); - String userLogin = ((IrisChatSession) irisSession).getUser().getLogin(); + var user = ((IrisChatSession) irisSession).getUser(); + String userLogin = user.getLogin(); String irisWebsocketTopic = String.format("%s/sessions/%d", IRIS_WEBSOCKET_TOPIC_PREFIX, irisSessionId); - websocketMessagingService.sendMessageToUser(userLogin, irisWebsocketTopic, new IrisWebsocketDTO(throwable)); + var rateLimitInfo = rateLimitService.getRateLimitInformation(user); + websocketMessagingService.sendMessageToUser(userLogin, irisWebsocketTopic, new IrisWebsocketDTO(throwable, rateLimitInfo)); } @JsonInclude(JsonInclude.Include.NON_EMPTY) @@ -72,7 +81,10 @@ public static class IrisWebsocketDTO { private final Map translationParams; - public IrisWebsocketDTO(IrisMessage message) { + private final IrisRateLimitService.IrisRateLimitInformation rateLimitInfo; + + public IrisWebsocketDTO(IrisMessage message, IrisRateLimitService.IrisRateLimitInformation rateLimitInfo) { + this.rateLimitInfo = rateLimitInfo; this.type = IrisWebsocketMessageType.MESSAGE; this.message = message; this.errorMessage = null; @@ -80,7 +92,8 @@ public IrisWebsocketDTO(IrisMessage message) { this.translationParams = null; } - public IrisWebsocketDTO(Throwable throwable) { + public IrisWebsocketDTO(Throwable throwable, IrisRateLimitService.IrisRateLimitInformation rateLimitInfo) { + this.rateLimitInfo = rateLimitInfo; this.type = IrisWebsocketMessageType.ERROR; this.message = null; this.errorMessage = throwable.getMessage(); @@ -108,6 +121,10 @@ public Map getTranslationParams() { return translationParams != null ? Collections.unmodifiableMap(translationParams) : null; } + public IrisRateLimitService.IrisRateLimitInformation getRateLimitInfo() { + return rateLimitInfo; + } + public enum IrisWebsocketMessageType { MESSAGE, ERROR } diff --git a/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisException.java b/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisException.java index c1e5ded8ee66..4aca58b81234 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisException.java +++ b/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisException.java @@ -21,6 +21,12 @@ public IrisException(String translationKey, Map translationParam this.translationParams = translationParams; } + public IrisException(String defaultMessage, Status status, String entityName, String translationKey, Map translationParams) { + super(ErrorConstants.DEFAULT_TYPE, defaultMessage, status, entityName, translationKey, getAlertParameters(translationKey, translationParams)); + this.translationKey = translationKey; + this.translationParams = translationParams; + } + public String getTranslationKey() { return translationKey; } diff --git a/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisRateLimitExceededException.java b/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisRateLimitExceededException.java new file mode 100644 index 000000000000..68978d1e0812 --- /dev/null +++ b/src/main/java/de/tum/in/www1/artemis/service/iris/exception/IrisRateLimitExceededException.java @@ -0,0 +1,24 @@ +package de.tum.in.www1.artemis.service.iris.exception; + +import java.util.Map; + +import org.zalando.problem.Status; + +import de.tum.in.www1.artemis.service.iris.IrisRateLimitService; + +/** + * Exception that is thrown when the rate limit of Iris is exceeded. + * See {@link IrisRateLimitService} for more information. + * It is mapped to the "429 Too Many Requests" HTTP status code. + */ +public class IrisRateLimitExceededException extends IrisException { + + public IrisRateLimitExceededException(int currentMessageCount, int rateLimit) { + super("You have exceeded the rate limit of Iris", Status.TOO_MANY_REQUESTS, "Iris", "artemisApp.exerciseChatbot.errors.rateLimitExceeded", + Map.of("currentMessageCount", currentMessageCount, "rateLimit", rateLimit)); + } + + public IrisRateLimitExceededException(IrisRateLimitService.IrisRateLimitInformation rateLimit) { + this(rateLimit.currentMessageCount(), rateLimit.rateLimit()); + } +} diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisMessageResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisMessageResource.java index 2025a24d9de7..30eb0aab418e 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisMessageResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisMessageResource.java @@ -14,12 +14,11 @@ import de.tum.in.www1.artemis.domain.iris.IrisMessage; import de.tum.in.www1.artemis.domain.iris.IrisMessageSender; import de.tum.in.www1.artemis.domain.iris.session.IrisSession; +import de.tum.in.www1.artemis.repository.UserRepository; import de.tum.in.www1.artemis.repository.iris.IrisMessageRepository; import de.tum.in.www1.artemis.repository.iris.IrisSessionRepository; import de.tum.in.www1.artemis.security.annotations.EnforceAtLeastStudent; -import de.tum.in.www1.artemis.service.iris.IrisMessageService; -import de.tum.in.www1.artemis.service.iris.IrisSessionService; -import de.tum.in.www1.artemis.service.iris.IrisWebsocketService; +import de.tum.in.www1.artemis.service.iris.*; import de.tum.in.www1.artemis.web.rest.errors.ConflictException; /** @@ -40,13 +39,19 @@ public class IrisMessageResource { private final IrisWebsocketService irisWebsocketService; + private final IrisRateLimitService rateLimitService; + + private final UserRepository userRepository; + public IrisMessageResource(IrisSessionRepository irisSessionRepository, IrisSessionService irisSessionService, IrisMessageService irisMessageService, - IrisMessageRepository irisMessageRepository, IrisWebsocketService irisWebsocketService) { + IrisMessageRepository irisMessageRepository, IrisWebsocketService irisWebsocketService, IrisRateLimitService rateLimitService, UserRepository userRepository) { this.irisSessionRepository = irisSessionRepository; this.irisSessionService = irisSessionService; this.irisMessageService = irisMessageService; this.irisMessageRepository = irisMessageRepository; this.irisWebsocketService = irisWebsocketService; + this.rateLimitService = rateLimitService; + this.userRepository = userRepository; } /** @@ -77,7 +82,10 @@ public ResponseEntity> getMessages(@PathVariable Long sessionI public ResponseEntity createMessage(@PathVariable Long sessionId, @RequestBody IrisMessage message) throws URISyntaxException { var session = irisSessionRepository.findByIdElseThrow(sessionId); irisSessionService.checkIsIrisActivated(session); - irisSessionService.checkHasAccessToIrisSession(session, null); + var user = userRepository.getUser(); + irisSessionService.checkHasAccessToIrisSession(session, user); + rateLimitService.checkRateLimitElseThrow(user); + var savedMessage = irisMessageService.saveMessage(message, session, IrisMessageSender.USER); irisSessionService.requestMessageFromIris(session); savedMessage.setMessageDifferentiator(message.getMessageDifferentiator()); @@ -100,7 +108,10 @@ public ResponseEntity createMessage(@PathVariable Long sessionId, @ public ResponseEntity resendMessage(@PathVariable Long sessionId, @PathVariable Long messageId) { var session = irisSessionRepository.findByIdWithMessagesElseThrow(sessionId); irisSessionService.checkIsIrisActivated(session); - irisSessionService.checkHasAccessToIrisSession(session, null); + var user = userRepository.getUser(); + irisSessionService.checkHasAccessToIrisSession(session, user); + rateLimitService.checkRateLimitElseThrow(user); + var message = irisMessageRepository.findByIdElseThrow(messageId); if (session.getMessages().lastIndexOf(message) != session.getMessages().size() - 1) { throw new BadRequestException("Only the last message can be resent"); diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisSessionResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisSessionResource.java index 3d81309bd6da..6d80df7a6874 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisSessionResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/iris/IrisSessionResource.java @@ -19,6 +19,7 @@ import de.tum.in.www1.artemis.service.AuthorizationCheckService; import de.tum.in.www1.artemis.service.connectors.iris.IrisHealthIndicator; import de.tum.in.www1.artemis.service.connectors.iris.dto.IrisStatusDTO; +import de.tum.in.www1.artemis.service.iris.IrisRateLimitService; import de.tum.in.www1.artemis.service.iris.IrisSessionService; import de.tum.in.www1.artemis.service.iris.IrisSettingsService; @@ -44,9 +45,11 @@ public class IrisSessionResource { private final IrisHealthIndicator irisHealthIndicator; + private final IrisRateLimitService irisRateLimitService; + public IrisSessionResource(ProgrammingExerciseRepository programmingExerciseRepository, AuthorizationCheckService authCheckService, IrisChatSessionRepository irisChatSessionRepository, UserRepository userRepository, IrisSessionService irisSessionService, IrisSettingsService irisSettingsService, - IrisHealthIndicator irisHealthIndicator) { + IrisHealthIndicator irisHealthIndicator, IrisRateLimitService irisRateLimitService) { this.programmingExerciseRepository = programmingExerciseRepository; this.authCheckService = authCheckService; this.irisChatSessionRepository = irisChatSessionRepository; @@ -54,6 +57,7 @@ public IrisSessionResource(ProgrammingExerciseRepository programmingExerciseRepo this.irisSessionService = irisSessionService; this.irisSettingsService = irisSettingsService; this.irisHealthIndicator = irisHealthIndicator; + this.irisRateLimitService = irisRateLimitService; } /** @@ -125,7 +129,7 @@ public ResponseEntity createSessionForProgrammingExercise(@PathVari */ @GetMapping("/sessions/{sessionId}/active") @EnforceAtLeastStudent - public ResponseEntity isIrisActive(@PathVariable Long sessionId) { + public ResponseEntity isIrisActive(@PathVariable Long sessionId) { var session = irisChatSessionRepository.findByIdElseThrow(sessionId); var user = userRepository.getUser(); irisSessionService.checkHasAccessToIrisSession(session, user); @@ -138,6 +142,12 @@ public ResponseEntity isIrisActive(@PathVariable Long sessionId) { specificModelStatus = Arrays.stream(modelStatuses).filter(x -> x.model().equals(settings.getIrisChatSettings().getPreferredModel())) .anyMatch(x -> x.status() == IrisStatusDTO.ModelStatus.UP); } - return ResponseEntity.ok(specificModelStatus); + + var rateLimitInfo = irisRateLimitService.getRateLimitInformation(user); + + return ResponseEntity.ok(new IrisHealthDTO(specificModelStatus, rateLimitInfo.currentMessageCount(), rateLimitInfo.rateLimit())); + } + + public record IrisHealthDTO(boolean active, int currentMessageCount, int rateLimit) { } } diff --git a/src/main/webapp/app/entities/iris/iris-errors.model.ts b/src/main/webapp/app/entities/iris/iris-errors.model.ts index a115874a1732..fc15951e105d 100644 --- a/src/main/webapp/app/entities/iris/iris-errors.model.ts +++ b/src/main/webapp/app/entities/iris/iris-errors.model.ts @@ -16,6 +16,7 @@ export enum IrisErrorMessageKey { PARSE_RESPONSE = 'artemisApp.exerciseChatbot.errors.parseResponse', TECHNICAL_ERROR_RESPONSE = 'artemisApp.exerciseChatbot.errors.technicalError', IRIS_NOT_AVAILABLE = 'artemisApp.exerciseChatbot.errors.irisNotAvailable', + RATE_LIMIT_EXCEEDED = 'artemisApp.exerciseChatbot.errors.rateLimitExceeded', } export interface IrisErrorType { @@ -42,6 +43,7 @@ const IrisErrors: IrisErrorType[] = [ { key: IrisErrorMessageKey.FORBIDDEN, fatal: true }, { key: IrisErrorMessageKey.TECHNICAL_ERROR_RESPONSE, fatal: true }, { key: IrisErrorMessageKey.IRIS_NOT_AVAILABLE, fatal: true }, + { key: IrisErrorMessageKey.RATE_LIMIT_EXCEEDED, fatal: true }, ]; export const errorMessages: Readonly<{ [key in IrisErrorMessageKey]: IrisErrorType }> = Object.freeze( diff --git a/src/main/webapp/app/iris/exercise-chatbot/exercise-chatwidget/exercise-chat-widget.component.html b/src/main/webapp/app/iris/exercise-chatbot/exercise-chatwidget/exercise-chat-widget.component.html index 0ad22902b511..e6b5e8c55eab 100644 --- a/src/main/webapp/app/iris/exercise-chatbot/exercise-chatwidget/exercise-chat-widget.component.html +++ b/src/main/webapp/app/iris/exercise-chatbot/exercise-chatwidget/exercise-chat-widget.component.html @@ -11,21 +11,26 @@

-
- - - - + - - + + + + +
@@ -59,7 +64,7 @@
Preferred Model: -
+
@@ -16,6 +16,7 @@
+
diff --git a/src/main/webapp/app/iris/state-store.model.ts b/src/main/webapp/app/iris/state-store.model.ts index b62d2d406a71..0137ae10141c 100644 --- a/src/main/webapp/app/iris/state-store.model.ts +++ b/src/main/webapp/app/iris/state-store.model.ts @@ -9,6 +9,7 @@ export enum ActionType { STUDENT_MESSAGE_SENT = 'student-message-sent', SESSION_CHANGED = 'session-changed', RATE_MESSAGE_SUCCESS = 'rate-message-success', + RATE_LIMIT_UPDATED = 'rate-limit-updated', } export interface MessageStoreAction { @@ -89,6 +90,17 @@ export class RateMessageSuccessAction implements MessageStoreAction { } } +export class RateLimitUpdatedAction implements MessageStoreAction { + readonly type: ActionType; + + public constructor( + public readonly currentMessageCount: number, + public readonly rateLimit: number, + ) { + this.type = ActionType.RATE_LIMIT_UPDATED; + } +} + export function isNumNewMessagesResetAction(action: MessageStoreAction): action is NumNewMessagesResetAction { return action.type === ActionType.NUM_NEW_MESSAGES_RESET; } @@ -117,6 +129,10 @@ export function isRateMessageSuccessAction(action: MessageStoreAction): action i return action.type === ActionType.RATE_MESSAGE_SUCCESS; } +export function isRateLimitUpdatedAction(action: MessageStoreAction): action is RateLimitUpdatedAction { + return action.type === ActionType.RATE_LIMIT_UPDATED; +} + export class MessageStoreState { public constructor( public messages: ReadonlyArray, @@ -125,5 +141,7 @@ export class MessageStoreState { public numNewMessages: number, public error: IrisErrorType | null, public serverResponseTimeout: ReturnType | null, + public currentMessageCount: number, + public rateLimit: number, ) {} } diff --git a/src/main/webapp/app/iris/state-store.service.ts b/src/main/webapp/app/iris/state-store.service.ts index f457c7d17002..53b7342a6b51 100644 --- a/src/main/webapp/app/iris/state-store.service.ts +++ b/src/main/webapp/app/iris/state-store.service.ts @@ -7,6 +7,7 @@ import { HistoryMessageLoadedAction, MessageStoreAction, MessageStoreState, + RateLimitUpdatedAction, RateMessageSuccessAction, SessionReceivedAction, StudentMessageSentAction, @@ -14,6 +15,7 @@ import { isConversationErrorOccurredAction, isHistoryMessageLoadedAction, isNumNewMessagesResetAction, + isRateLimitUpdatedAction, isRateMessageSuccessAction, isSessionReceivedAction, isStudentMessageSentAction, @@ -35,6 +37,8 @@ export class IrisStateStore implements OnDestroy { numNewMessages: 0, error: null, serverResponseTimeout: null, + currentMessageCount: -1, + rateLimit: -1, }; private readonly action = new Subject(); @@ -151,6 +155,8 @@ export class IrisStateStore implements OnDestroy { numNewMessages: state.numNewMessages + 1, error: defaultError, serverResponseTimeout: null, + currentMessageCount: state.currentMessageCount, + rateLimit: state.rateLimit, }; } if (isConversationErrorOccurredAction(action)) { @@ -219,6 +225,15 @@ export class IrisStateStore implements OnDestroy { return state; } + if (isRateLimitUpdatedAction(action)) { + const castedAction = action as RateLimitUpdatedAction; + return { + ...state, + error: castedAction.rateLimit >= 0 && castedAction.currentMessageCount >= castedAction.rateLimit ? errorMessages[IrisErrorMessageKey.RATE_LIMIT_EXCEEDED] : null, + currentMessageCount: castedAction.currentMessageCount, + rateLimit: castedAction.rateLimit, + }; + } IrisStateStore.exhaustiveCheck(action); return state; diff --git a/src/main/webapp/app/iris/websocket.service.ts b/src/main/webapp/app/iris/websocket.service.ts index 68660454f5e5..0b0ffd81dcc8 100644 --- a/src/main/webapp/app/iris/websocket.service.ts +++ b/src/main/webapp/app/iris/websocket.service.ts @@ -6,6 +6,7 @@ import { ActiveConversationMessageLoadedAction, ConversationErrorOccurredAction, MessageStoreAction, + RateLimitUpdatedAction, StudentMessageSentAction, isSessionReceivedAction, } from 'app/iris/state-store.model'; @@ -20,6 +21,11 @@ export enum IrisWebsocketMessageType { ERROR = 'ERROR', } +class IrisRateLimitInformation { + currentMessageCount: number; + rateLimit: number; +} + /** * The IrisWebsocketDTO is the data transfer object for messages sent over the websocket. * It either contains an IrisMessage or an error message. @@ -29,6 +35,7 @@ export class IrisWebsocketDTO { message?: IrisMessage; errorTranslationKey?: IrisErrorMessageKey; translationParams?: Map; + rateLimitInfo?: IrisRateLimitInformation; } /** @@ -87,6 +94,10 @@ export class IrisWebsocketService implements OnDestroy { this.subscriptionChannel = channel; this.jhiWebsocketService.subscribe(this.subscriptionChannel); this.jhiWebsocketService.receive(this.subscriptionChannel).subscribe((websocketResponse: IrisWebsocketDTO) => { + if (websocketResponse.rateLimitInfo) { + this.stateStore.dispatch(new RateLimitUpdatedAction(websocketResponse.rateLimitInfo.currentMessageCount, websocketResponse.rateLimitInfo.rateLimit)); + } + if (websocketResponse.type === IrisWebsocketMessageType.ERROR) { if (!websocketResponse.errorTranslationKey) { this.stateStore.dispatch(new ConversationErrorOccurredAction(IrisErrorMessageKey.TECHNICAL_ERROR_RESPONSE)); diff --git a/src/main/webapp/i18n/de/exerciseChatbot.json b/src/main/webapp/i18n/de/exerciseChatbot.json index 787c656943bf..a85f1f53a8ed 100644 --- a/src/main/webapp/i18n/de/exerciseChatbot.json +++ b/src/main/webapp/i18n/de/exerciseChatbot.json @@ -51,9 +51,11 @@ "noResponse": "Es wurde keine Antwort von Iris empfangen. Bitte kontaktiere einen Administrator, wenn das Problem weiterhin besteht.", "parseResponse": "Ein Fehler ist beim Parsen der Antwort von Iris aufgetreten. Ursache: {{ cause }}", "technicalError": "Es ist ein technischer Fehler aufgetreten. Bitte wende dich an Artemis Administratoren sollte der Fehler weiterhin zu sehen sein.", - "irisNotAvailable": "Iris antwortet nicht. Bitte versuche es später!" + "irisNotAvailable": "Iris antwortet nicht. Bitte versuche es später!", + "rateLimitExceeded": "Du hast die maximale Anzahl von Nachrichten, die du in einem 24-Stunden-Zeitfenster an Iris senden kannst, erreicht. Bitte versuche es später erneut!" }, - "firstMessage": "Hallo, ich bin Iris! Ich kann dir bei deiner Programmieraufgabe helfen. Du kannst hier mehr über mich erfahren." + "firstMessage": "Hallo, ich bin Iris! Ich kann dir bei deiner Programmieraufgabe helfen. Du kannst hier mehr über mich erfahren.", + "rateLimitTooltip": "Dies ist die maximale Anzahl von Nachrichten, die du in einem 24-Stunden-Zeitfenster an Iris senden kannst." } } } diff --git a/src/main/webapp/i18n/de/iris.json b/src/main/webapp/i18n/de/iris.json index 95e45c8259e6..a43220623fb0 100644 --- a/src/main/webapp/i18n/de/iris.json +++ b/src/main/webapp/i18n/de/iris.json @@ -27,6 +27,8 @@ "enabled-disabled": "Aktiviert/Deaktiviert", "preferredModel": "Präferiertes Modell", "inheritModel": "Vererbe Modell", + "rateLimit": "Rate Limit", + "rateLimitTooltip": "Die maximale Anzahl an Antworten, die ein Benutzer vom LLM in einem bestimmten Zeitraum erhalten kann. Der Zeitraum beträgt derzeit 3h.", "template": { "title": "Template", "inherit": "Inherit Template" diff --git a/src/main/webapp/i18n/en/exerciseChatbot.json b/src/main/webapp/i18n/en/exerciseChatbot.json index d1f56b6825bf..d433f97403f2 100644 --- a/src/main/webapp/i18n/en/exerciseChatbot.json +++ b/src/main/webapp/i18n/en/exerciseChatbot.json @@ -51,9 +51,11 @@ "noResponse": "No response from Iris was received.", "parseResponse": "An error occurred while parsing the response from Iris. Cause: {{ cause }}", "technicalError": "There has been a technical error. Please contact Artemis Administrators if this error message persists.", - "irisNotAvailable": "Iris is not available. Please try again later!" + "irisNotAvailable": "Iris is not available. Please try again later!", + "rateLimitExceeded": "You have reached the maximum number of messages you can send to Iris in a 24 hour window. Please try again later!" }, - "firstMessage": "Hi, I'm Iris! I can help you with your programming exercise. You can learn more about me here." + "firstMessage": "Hi, I'm Iris! I can help you with your programming exercise. You can learn more about me here.", + "rateLimitTooltip": "This is the maximum number of messages you can send to Iris in a 24 hour window." } } } diff --git a/src/main/webapp/i18n/en/iris.json b/src/main/webapp/i18n/en/iris.json index 64480dde3d5a..fb5cb28308ff 100644 --- a/src/main/webapp/i18n/en/iris.json +++ b/src/main/webapp/i18n/en/iris.json @@ -26,7 +26,9 @@ "inheritHestiaSettings": "Inherit Hestia Settings", "enabled-disabled": "Enabled/Disabled", "preferredModel": "Preferred Model", - "inheritModel": "Inherit Modell", + "inheritModel": "Inherit Model", + "rateLimit": "Rate Limit", + "rateLimitTooltip": "The maximum number of answers a user can receive from the LLM in a given time period. The time period is currently 3h.", "template": { "title": "Template", "inherit": "Inherit Template" diff --git a/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java index 6ce1fea32261..f8a538730d9e 100644 --- a/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java @@ -12,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.util.ReflectionTestUtils; import de.tum.in.www1.artemis.domain.Course; import de.tum.in.www1.artemis.domain.ProgrammingExercise; @@ -23,6 +24,7 @@ import de.tum.in.www1.artemis.repository.iris.IrisMessageRepository; import de.tum.in.www1.artemis.repository.iris.IrisSessionRepository; import de.tum.in.www1.artemis.service.iris.IrisMessageService; +import de.tum.in.www1.artemis.service.iris.IrisRateLimitService; import de.tum.in.www1.artemis.service.iris.IrisSessionService; import de.tum.in.www1.artemis.util.IrisUtilTestService; import de.tum.in.www1.artemis.util.LocalRepository; @@ -49,6 +51,9 @@ class IrisMessageIntegrationTest extends AbstractIrisIntegrationTest { @Autowired private ParticipationUtilService participationUtilService; + @Autowired + private IrisRateLimitService irisRateLimitService; + private ProgrammingExercise exercise; private LocalRepository repository; @@ -72,10 +77,7 @@ void sendOneMessage() throws Exception { messageToSend.setMessageDifferentiator(1453); irisRequestMockProvider.mockMessageResponse("Hello World"); - var savedExercise = irisUtilTestService.setupTemplate(exercise, repository); - var exerciseParticipation = participationUtilService.addStudentParticipationForProgrammingExercise(savedExercise, TEST_PREFIX + "student1"); - irisUtilTestService.setupStudentParticipation(exerciseParticipation, repository); - activateIrisFor(savedExercise); + setupExercise(); var irisMessage = request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages", messageToSend, IrisMessage.class, HttpStatus.CREATED); assertThat(irisMessage.getSender()).isEqualTo(IrisMessageSender.USER); @@ -116,10 +118,7 @@ void sendTwoMessages() throws Exception { var irisSession = irisSessionService.createChatSessionForProgrammingExercise(exercise, userUtilService.getUserByLogin(TEST_PREFIX + "student1")); IrisMessage messageToSend1 = createDefaultMockMessage(irisSession); - var savedExercise = irisUtilTestService.setupTemplate(exercise, repository); - var exerciseParticipation = participationUtilService.addStudentParticipationForProgrammingExercise(savedExercise, TEST_PREFIX + "student1"); - irisUtilTestService.setupStudentParticipation(exerciseParticipation, repository); - activateIrisFor(savedExercise); + setupExercise(); var irisMessage1 = request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages", messageToSend1, IrisMessage.class, HttpStatus.CREATED); assertThat(irisMessage1.getSender()).isEqualTo(IrisMessageSender.USER); @@ -240,10 +239,7 @@ void sendOneMessageBadRequest() throws Exception { IrisMessage messageToSend = createDefaultMockMessage(irisSession); irisRequestMockProvider.mockMessageError(); - var savedExercise = irisUtilTestService.setupTemplate(exercise, repository); - var exerciseParticipation = participationUtilService.addStudentParticipationForProgrammingExercise(savedExercise, TEST_PREFIX + "student1"); - irisUtilTestService.setupStudentParticipation(exerciseParticipation, repository); - activateIrisFor(savedExercise); + setupExercise(); request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages", messageToSend, IrisMessage.class, HttpStatus.CREATED); @@ -259,10 +255,7 @@ void sendOneMessageEmptyBody() throws Exception { IrisMessage messageToSend = createDefaultMockMessage(irisSession); irisRequestMockProvider.mockMessageResponse(null); - var savedExercise = irisUtilTestService.setupTemplate(exercise, repository); - var exerciseParticipation = participationUtilService.addStudentParticipationForProgrammingExercise(savedExercise, TEST_PREFIX + "student1"); - irisUtilTestService.setupStudentParticipation(exerciseParticipation, repository); - activateIrisFor(savedExercise); + setupExercise(); request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages", messageToSend, IrisMessage.class, HttpStatus.CREATED); @@ -271,6 +264,58 @@ void sendOneMessageEmptyBody() throws Exception { verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); } + @Test + @WithMockUser(username = TEST_PREFIX + "student1", roles = "USER") + void resendMessage() throws Exception { + var irisSession = irisSessionService.createChatSessionForProgrammingExercise(exercise, userUtilService.getUserByLogin(TEST_PREFIX + "student1")); + var messageToSend = createDefaultMockMessage(irisSession); + + irisRequestMockProvider.mockMessageResponse("Hello World"); + setupExercise(); + + var irisMessage = irisMessageService.saveMessage(messageToSend, irisSession, IrisMessageSender.USER); + request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages/" + irisMessage.getId() + "/resend", null, IrisMessage.class, HttpStatus.OK); + await().until(() -> irisSessionRepository.findByIdWithMessagesElseThrow(irisSession.getId()).getMessages().size() == 2); + verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId(), "Hello World"); + verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); + } + + @Test + @WithMockUser(username = TEST_PREFIX + "student2", roles = "USER") + void sendMessageRateLimitReached() throws Exception { + var irisSession = irisSessionService.createChatSessionForProgrammingExercise(exercise, userUtilService.getUserByLogin(TEST_PREFIX + "student2")); + var messageToSend1 = createDefaultMockMessage(irisSession); + var messageToSend2 = createDefaultMockMessage(irisSession); + + irisRequestMockProvider.mockMessageResponse("Hello World"); + setupExercise(); + + var previousRateLimit = ReflectionTestUtils.getField(irisRateLimitService, "rateLimit"); + ReflectionTestUtils.setField(irisRateLimitService, "rateLimit", 1); + + try { + request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages", messageToSend1, IrisMessage.class, HttpStatus.CREATED); + await().until(() -> irisSessionRepository.findByIdWithMessagesElseThrow(irisSession.getId()).getMessages().size() == 2); + request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages", messageToSend2, IrisMessage.class, HttpStatus.TOO_MANY_REQUESTS); + var irisMessage = irisMessageService.saveMessage(messageToSend2, irisSession, IrisMessageSender.USER); + request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages/" + irisMessage.getId() + "/resend", null, IrisMessage.class, + HttpStatus.TOO_MANY_REQUESTS); + verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student2", irisSession.getId(), messageToSend1); + verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student2", irisSession.getId(), "Hello World"); + verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student2", irisSession.getId()); + } + finally { + ReflectionTestUtils.setField(irisRateLimitService, "rateLimit", previousRateLimit); + } + } + + private void setupExercise() throws Exception { + var savedExercise = irisUtilTestService.setupTemplate(exercise, repository); + var exerciseParticipation = participationUtilService.addStudentParticipationForProgrammingExercise(savedExercise, TEST_PREFIX + "student1"); + irisUtilTestService.setupStudentParticipation(exerciseParticipation, repository); + activateIrisFor(savedExercise); + } + private IrisMessage createDefaultMockMessage(IrisSession irisSession) { var messageToSend = new IrisMessage(); messageToSend.setSession(irisSession); diff --git a/src/test/java/de/tum/in/www1/artemis/iris/IrisSessionIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/iris/IrisSessionIntegrationTest.java index 263a2a048c9e..4e5a824f4023 100644 --- a/src/test/java/de/tum/in/www1/artemis/iris/IrisSessionIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/iris/IrisSessionIntegrationTest.java @@ -13,6 +13,7 @@ import de.tum.in.www1.artemis.domain.iris.session.IrisChatSession; import de.tum.in.www1.artemis.domain.iris.session.IrisSession; import de.tum.in.www1.artemis.repository.iris.IrisChatSessionRepository; +import de.tum.in.www1.artemis.web.rest.iris.IrisSessionResource.IrisHealthDTO; class IrisSessionIntegrationTest extends AbstractIrisIntegrationTest { @@ -70,17 +71,18 @@ void getCurrentSession_notFound() throws Exception { void isActive() throws Exception { var irisSession = request.postWithResponseBody("/api/iris/programming-exercises/" + exercise.getId() + "/sessions", null, IrisSession.class, HttpStatus.CREATED); var settings = irisSettingsService.getGlobalSettings(); - settings.getIrisChatSettings().setPreferredModel("TEST_MODEL_UP"); - irisSettingsService.saveGlobalIrisSettings(settings); irisRequestMockProvider.mockStatusResponse(); irisRequestMockProvider.mockStatusResponse(); irisRequestMockProvider.mockStatusResponse(); - assertThat(request.get("/api/iris/sessions/" + irisSession.getId() + "/active", HttpStatus.OK, Boolean.class)).isTrue(); + + settings.getIrisChatSettings().setPreferredModel("TEST_MODEL_UP"); + irisSettingsService.saveGlobalIrisSettings(settings); + assertThat(request.get("/api/iris/sessions/" + irisSession.getId() + "/active", HttpStatus.OK, IrisHealthDTO.class).active()).isTrue(); settings.getIrisChatSettings().setPreferredModel("TEST_MODEL_DOWN"); irisSettingsService.saveGlobalIrisSettings(settings); - assertThat(request.get("/api/iris/sessions/" + irisSession.getId() + "/active", HttpStatus.OK, Boolean.class)).isFalse(); + assertThat(request.get("/api/iris/sessions/" + irisSession.getId() + "/active", HttpStatus.OK, IrisHealthDTO.class).active()).isFalse(); settings.getIrisChatSettings().setPreferredModel("TEST_MODEL_NA"); irisSettingsService.saveGlobalIrisSettings(settings); - assertThat(request.get("/api/iris/sessions/" + irisSession.getId() + "/active", HttpStatus.OK, Boolean.class)).isFalse(); + assertThat(request.get("/api/iris/sessions/" + irisSession.getId() + "/active", HttpStatus.OK, IrisHealthDTO.class).active()).isFalse(); } } diff --git a/src/test/java/de/tum/in/www1/artemis/iris/IrisWebsocketTest.java b/src/test/java/de/tum/in/www1/artemis/iris/IrisWebsocketTest.java index 2bb97ffeba0d..dbfa2501ceb7 100644 --- a/src/test/java/de/tum/in/www1/artemis/iris/IrisWebsocketTest.java +++ b/src/test/java/de/tum/in/www1/artemis/iris/IrisWebsocketTest.java @@ -57,7 +57,7 @@ void sendMessage() { message.setMessageDifferentiator(101010); irisWebsocketService.sendMessage(message); verify(websocketMessagingService, times(1)).sendMessageToUser(eq(TEST_PREFIX + "student1"), eq("/topic/iris/sessions/" + irisSession.getId()), - eq(new IrisWebsocketService.IrisWebsocketDTO(message))); + eq(new IrisWebsocketService.IrisWebsocketDTO(message, null))); } private IrisMessageContent createMockContent(IrisMessage message) { diff --git a/src/test/javascript/spec/component/iris/state-store.service.spec.ts b/src/test/javascript/spec/component/iris/state-store.service.spec.ts index 587b734fbbf0..ad5cdba0554e 100644 --- a/src/test/javascript/spec/component/iris/state-store.service.spec.ts +++ b/src/test/javascript/spec/component/iris/state-store.service.spec.ts @@ -6,6 +6,7 @@ import { HistoryMessageLoadedAction, MessageStoreState, NumNewMessagesResetAction, + RateLimitUpdatedAction, RateMessageSuccessAction, SessionReceivedAction, StudentMessageSentAction, @@ -364,6 +365,40 @@ describe('IrisStateStore', () => { expect(state2.messages).toHaveLength(2); }); + + it('should update below rate limit state', async () => { + const obs = stateStore.getState(); + + const promise = obs.pipe(skip(1), take(1)).toPromise(); + + stateStore.dispatch(new RateLimitUpdatedAction(1, 2)); + + const state = (await promise) as MessageStoreState; + + expect(state).toStrictEqual({ + ...mockState, + error: null, + currentMessageCount: 1, + rateLimit: 2, + }); + }); + + it('should update above rate limit state', async () => { + const obs = stateStore.getState(); + + const promise = obs.pipe(skip(1), take(1)).toPromise(); + + stateStore.dispatch(new RateLimitUpdatedAction(2, 2)); + + const state = (await promise) as MessageStoreState; + + expect(state).toStrictEqual({ + ...mockState, + error: errorMessages[IrisErrorMessageKey.RATE_LIMIT_EXCEEDED], + currentMessageCount: 2, + rateLimit: 2, + }); + }); }); describe('IrisStateStore with an empty session state', () => { diff --git a/src/test/javascript/spec/helpers/sample/iris-sample-data.ts b/src/test/javascript/spec/helpers/sample/iris-sample-data.ts index c4bf288bfdb2..b3e9809c9296 100644 --- a/src/test/javascript/spec/helpers/sample/iris-sample-data.ts +++ b/src/test/javascript/spec/helpers/sample/iris-sample-data.ts @@ -74,4 +74,6 @@ export const mockState = { numNewMessages: 0, sessionId: 0, serverResponseTimeout: null, + currentMessageCount: -1, + rateLimit: -1, }; diff --git a/src/test/resources/config/application-iris.yml b/src/test/resources/config/application-iris.yml index 074ded544b64..dced5f46f5a8 100644 --- a/src/test/resources/config/application-iris.yml +++ b/src/test/resources/config/application-iris.yml @@ -2,3 +2,5 @@ artemis: iris: url: "http://iris.fake" secret-token: "secret-token" + rate-limit: 100000 + rate-limit-timeframe-hours: 1 From c66cfe0c8d2426377c3cb1178f78ef5854b7d2f5 Mon Sep 17 00:00:00 2001 From: Lucas Welscher Date: Tue, 3 Oct 2023 09:32:44 +0200 Subject: [PATCH 11/39] Exam mode: Fix an issue when canceling assessments (#7285) --- .../shared/exercise-scores/exercise-scores.component.html | 2 +- .../shared/exercise-scores/exercise-scores.component.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.html b/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.html index d15b1a5a3960..04db72ff7377 100644 --- a/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.html +++ b/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.html @@ -348,7 +348,7 @@
!value.results[correctionRound].completionDate && value.results[correctionRound].assessmentType !== AssessmentType.AUTOMATIC " - (click)="cancelAssessment(value.results[correctionRound])" + (click)="cancelAssessment(value.results[correctionRound], value)" [disabled]="isLoading" class="btn btn-danger btn-sm mb-1" > diff --git a/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.ts b/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.ts index ecfa39723900..9d42ed13d6ba 100644 --- a/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.ts +++ b/src/main/webapp/app/exercises/shared/exercise-scores/exercise-scores.component.ts @@ -396,7 +396,7 @@ export class ExerciseScoresComponent implements OnInit, OnDestroy { /** * Cancel the current assessment and reload the submissions to reflect the change. */ - cancelAssessment(result: Result) { + cancelAssessment(result: Result, participation: Participation) { const confirmCancel = window.confirm(this.cancelConfirmationText); if (confirmCancel && result.submission?.id) { @@ -409,7 +409,7 @@ export class ExerciseScoresComponent implements OnInit, OnDestroy { cancelSubscription = this.modelingAssessmentService.cancelAssessment(result.submission.id); break; case ExerciseType.TEXT: - cancelSubscription = this.textAssessmentService.cancelAssessment(result.participation!.id!, result.submission.id); + cancelSubscription = this.textAssessmentService.cancelAssessment(participation.id!, result.submission.id); break; case ExerciseType.FILE_UPLOAD: cancelSubscription = this.fileUploadAssessmentService.cancelAssessment(result.submission.id); From 79521bd50d6882a82b38b26082537cafe8d19fba Mon Sep 17 00:00:00 2001 From: Lara Dvorsek <73339358+laadvo@users.noreply.github.com> Date: Tue, 3 Oct 2023 09:33:51 +0200 Subject: [PATCH 12/39] Development: Reduce server test code duplication (#7180) --- .../assessment/ComplaintUtilService.java | 20 +++ .../artemis/bonus/BonusIntegrationTest.java | 87 +++--------- .../FileUploadAssessmentIntegrationTest.java | 125 ++++-------------- .../ModelingAssessmentIntegrationTest.java | 115 ++++------------ .../ProgrammingAssessmentIntegrationTest.java | 25 ++-- .../textexercise/TextExerciseUtilService.java | 15 +++ .../text/TextAssessmentIntegrationTest.java | 103 ++++++--------- 7 files changed, 157 insertions(+), 333 deletions(-) diff --git a/src/test/java/de/tum/in/www1/artemis/assessment/ComplaintUtilService.java b/src/test/java/de/tum/in/www1/artemis/assessment/ComplaintUtilService.java index eab4a7151d5a..e54910e5c7f3 100644 --- a/src/test/java/de/tum/in/www1/artemis/assessment/ComplaintUtilService.java +++ b/src/test/java/de/tum/in/www1/artemis/assessment/ComplaintUtilService.java @@ -1,5 +1,7 @@ package de.tum.in.www1.artemis.assessment; +import java.util.ArrayList; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -84,4 +86,22 @@ public void addTeamComplaints(Team team, Participation participation, int number complaintRepo.save(complaint); } } + + /** + * Creates a complaint and a response for the passed text submission. The response is returned in a form of an assessment update. + * + * @param textResult result of the complaint. + * @param tutorLogin login of the tutor responding to the complaint. + * @return an assessment update with the complaint response. + */ + public AssessmentUpdate createComplaintAndResponse(Result textResult, String tutorLogin) { + Complaint complaint = new Complaint().result(textResult).complaintText("This is not fair"); + complaintRepo.save(complaint); + complaint.getResult().setParticipation(null); // Break infinite reference chain + + ComplaintResponse complaintResponse = createInitialEmptyResponse(tutorLogin, complaint); + complaintResponse.getComplaint().setAccepted(false); + complaintResponse.setResponseText("rejected"); + return new AssessmentUpdate().feedbacks(new ArrayList<>()).complaintResponse(complaintResponse); + } } diff --git a/src/test/java/de/tum/in/www1/artemis/bonus/BonusIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/bonus/BonusIntegrationTest.java index f80bc1ea4342..cb225ebf105f 100644 --- a/src/test/java/de/tum/in/www1/artemis/bonus/BonusIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/bonus/BonusIntegrationTest.java @@ -10,6 +10,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; @@ -279,13 +281,14 @@ private GradingScale createSourceGradingScaleWithGradeStepsForGradesBonusStrateg return sourceGradingScale; } - @Test + @ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}") @WithMockUser(username = "admin", roles = "ADMIN") - void testCalculateRawBonusWithGradesContinuousBonusStrategy() throws Exception { + @EnumSource(value = BonusStrategy.class, names = { "GRADES_DISCRETE" }, mode = EnumSource.Mode.EXCLUDE) + void testCalculateRawBonus(BonusStrategy bonusStrategy) throws Exception { // Calculation results should be consistent with bonus.service.spec.ts - BonusStrategy bonusStrategy = BonusStrategy.GRADES_CONTINUOUS; - double weight = -1; + boolean isContinuous = bonusStrategy == BonusStrategy.GRADES_CONTINUOUS; + double weight = isContinuous ? -1 : 1; Exam bonusToExam = bonusToExamGradingScale.getExam(); Course sourceCourse = courseGradingScale.getCourse(); @@ -295,7 +298,14 @@ void testCalculateRawBonusWithGradesContinuousBonusStrategy() throws Exception { bonusToExamGradingScale = gradingScaleRepository.findWithEagerBonusFromByExamId(bonusToExam.getId()).orElseThrow(); gradingScaleRepository.deleteAll(List.of(bonusToExamGradingScale, courseGradingScale)); - GradingScale sourceGradingScale = createSourceGradingScaleWithGradeStepsForGradesBonusStrategy(sourceCourse); + GradingScale sourceGradingScale; + if (isContinuous) { + sourceGradingScale = createSourceGradingScaleWithGradeStepsForGradesBonusStrategy(sourceCourse); + } + else { + sourceGradingScale = createSourceGradingScaleWithGradeStepsForPointsBonusStrategy(sourceCourse); + } + GradingScale bonusToGradingScale = createBonusToGradingScale(bonusToExam); gradingScaleRepository.saveAll(List.of(bonusToGradingScale, sourceGradingScale)); @@ -313,10 +323,9 @@ void testCalculateRawBonusWithGradesContinuousBonusStrategy() throws Exception { bonusToPoints = 120; sourcePoints = 75; expectedExamGrade = "3.0"; - expectedBonusGrade = 0.1; - expectedFinalPoints = null; - expectedFinalGrade = "2.9"; - expectedExceedsMax = false; + expectedBonusGrade = isContinuous ? 0.1 : 10.0; + expectedFinalPoints = isContinuous ? null : 130.0; + expectedFinalGrade = isContinuous ? "2.9" : "3.0"; calculateFinalGradeAtServer(bonusStrategy, weight, bonusToPoints, sourcePoints, expectedExamGrade, expectedBonusGrade, expectedFinalPoints, expectedFinalGrade, expectedExceedsMax, sourceGradingScale.getId()); @@ -324,14 +333,13 @@ void testCalculateRawBonusWithGradesContinuousBonusStrategy() throws Exception { bonusToPoints = 200; sourcePoints = 200; expectedExamGrade = "1.0"; - expectedBonusGrade = 0.2; - expectedFinalPoints = null; + expectedBonusGrade = isContinuous ? 0.2 : 20.0; + expectedFinalPoints = isContinuous ? null : 200.0; expectedFinalGrade = "1.0"; expectedExceedsMax = true; calculateFinalGradeAtServer(bonusStrategy, weight, bonusToPoints, sourcePoints, expectedExamGrade, expectedBonusGrade, expectedFinalPoints, expectedFinalGrade, expectedExceedsMax, sourceGradingScale.getId()); - } @Test @@ -413,61 +421,6 @@ private GradingScale createSourceGradingScaleWithGradeStepsForPointsBonusStrateg return sourceGradingScale; } - @Test - @WithMockUser(username = "admin", roles = "ADMIN") - void testCalculateRawBonusWithPointsBonusStrategy() throws Exception { - // Calculation results should be consistent with bonus.service.spec.ts - - BonusStrategy bonusStrategy = BonusStrategy.POINTS; - double weight = 1; - - Exam bonusToExam = bonusToExamGradingScale.getExam(); - Course sourceCourse = courseGradingScale.getCourse(); - - bonusRepository.delete(courseBonus); - // Line below is needed to prevent EntityNotFoundException for the Bonus instance deleted above. - bonusToExamGradingScale = gradingScaleRepository.findWithEagerBonusFromByExamId(bonusToExam.getId()).orElseThrow(); - gradingScaleRepository.deleteAll(List.of(bonusToExamGradingScale, courseGradingScale)); - - GradingScale sourceGradingScale = createSourceGradingScaleWithGradeStepsForPointsBonusStrategy(sourceCourse); - GradingScale bonusToGradingScale = createBonusToGradingScale(bonusToExam); - gradingScaleRepository.saveAll(List.of(bonusToGradingScale, sourceGradingScale)); - - double bonusToPoints = 50; - double sourcePoints = 100; - String expectedExamGrade = "5.0"; - double expectedBonusGrade = 0.0; - double expectedFinalPoints = 50.0; - String expectedFinalGrade = "5.0"; - boolean expectedExceedsMax = false; - - calculateFinalGradeAtServer(bonusStrategy, weight, bonusToPoints, sourcePoints, expectedExamGrade, expectedBonusGrade, expectedFinalPoints, expectedFinalGrade, - expectedExceedsMax, sourceGradingScale.getId()); - - bonusToPoints = 120; - sourcePoints = 75; - expectedExamGrade = "3.0"; - expectedBonusGrade = 10.0; - expectedFinalPoints = 130.0; - expectedFinalGrade = "3.0"; - expectedExceedsMax = false; - - calculateFinalGradeAtServer(bonusStrategy, weight, bonusToPoints, sourcePoints, expectedExamGrade, expectedBonusGrade, expectedFinalPoints, expectedFinalGrade, - expectedExceedsMax, sourceGradingScale.getId()); - - bonusToPoints = 200; - sourcePoints = 200; - expectedExamGrade = "1.0"; - expectedBonusGrade = 20.0; - expectedFinalPoints = 200.0; - expectedFinalGrade = "1.0"; - expectedExceedsMax = true; - - calculateFinalGradeAtServer(bonusStrategy, weight, bonusToPoints, sourcePoints, expectedExamGrade, expectedBonusGrade, expectedFinalPoints, expectedFinalGrade, - expectedExceedsMax, sourceGradingScale.getId()); - - } - @Test @WithMockUser(username = "admin", roles = "ADMIN") void testCalculateRawBonusWithPointsBonusStrategy_nonNumericGrades() throws Exception { diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/fileuploadexercise/FileUploadAssessmentIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/fileuploadexercise/FileUploadAssessmentIntegrationTest.java index a50184014df5..f72a495c11cf 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/fileuploadexercise/FileUploadAssessmentIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/fileuploadexercise/FileUploadAssessmentIntegrationTest.java @@ -10,6 +10,8 @@ import org.assertj.core.data.Offset; import org.junit.jupiter.api.*; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; @@ -19,12 +21,10 @@ import de.tum.in.www1.artemis.assessment.ComplaintUtilService; import de.tum.in.www1.artemis.config.Constants; import de.tum.in.www1.artemis.domain.*; -import de.tum.in.www1.artemis.domain.enumeration.AssessmentType; -import de.tum.in.www1.artemis.domain.enumeration.ComplaintType; -import de.tum.in.www1.artemis.domain.enumeration.FeedbackType; -import de.tum.in.www1.artemis.domain.enumeration.IncludedInOverallScore; +import de.tum.in.www1.artemis.domain.enumeration.*; import de.tum.in.www1.artemis.domain.exam.Exam; import de.tum.in.www1.artemis.domain.exam.ExerciseGroup; +import de.tum.in.www1.artemis.domain.participation.Participation; import de.tum.in.www1.artemis.domain.participation.StudentParticipation; import de.tum.in.www1.artemis.exam.ExamUtilService; import de.tum.in.www1.artemis.exercise.ExerciseUtilService; @@ -126,59 +126,14 @@ void testSubmitFileUploadAssessment_asInstructor() throws Exception { assertThat(exercise.getNumberOfAssessmentsOfCorrectionRounds()[0].inTime()).isEqualTo(1L); } - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_IncludedCompletelyWithBonusPointsExercise() throws Exception { - // setting up exercise - afterReleaseFileUploadExercise.setIncludedInOverallScore(IncludedInOverallScore.INCLUDED_COMPLETELY); - afterReleaseFileUploadExercise.setMaxPoints(10.0); - afterReleaseFileUploadExercise.setBonusPoints(10.0); - exerciseRepository.save(afterReleaseFileUploadExercise); - - // setting up student submission - FileUploadSubmission submission = ParticipationFactory.generateFileUploadSubmission(true); - submission = fileUploadExerciseUtilService.addFileUploadSubmission(afterReleaseFileUploadExercise, submission, TEST_PREFIX + "student1"); - List feedbacks = new ArrayList<>(); - - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 150L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 200L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 200L); - } - - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_IncludedCompletelyWithoutBonusPointsExercise() throws Exception { - // setting up exercise - afterReleaseFileUploadExercise.setIncludedInOverallScore(IncludedInOverallScore.INCLUDED_COMPLETELY); - afterReleaseFileUploadExercise.setMaxPoints(10.0); - afterReleaseFileUploadExercise.setBonusPoints(0.0); - exerciseRepository.save(afterReleaseFileUploadExercise); - - // setting up student submission - FileUploadSubmission submission = ParticipationFactory.generateFileUploadSubmission(true); - submission = fileUploadExerciseUtilService.addFileUploadSubmission(afterReleaseFileUploadExercise, submission, TEST_PREFIX + "student1"); - List feedbacks = new ArrayList<>(); - - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); - } - - @Test + @ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}") @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_IncludedAsBonusExercise() throws Exception { + @CsvSource({ "INCLUDED_COMPLETELY,true", "INCLUDED_COMPLETELY,false", "INCLUDED_AS_BONUS,true", "INCLUDED_AS_BONUS,false", "NOT_INCLUDED,true", "INCLUDED_AS_BONUS,false" }) + void testManualAssessmentSubmitWithBonus(IncludedInOverallScore includedInOverallScore, boolean bonus) throws Exception { // setting up exercise - afterReleaseFileUploadExercise.setIncludedInOverallScore(IncludedInOverallScore.INCLUDED_AS_BONUS); - afterReleaseFileUploadExercise.setMaxPoints(10.0); - afterReleaseFileUploadExercise.setBonusPoints(0.0); + afterReleaseFileUploadExercise.setIncludedInOverallScore(includedInOverallScore); + afterReleaseFileUploadExercise.setMaxPoints(15.0); + afterReleaseFileUploadExercise.setBonusPoints(bonus ? 15.0 : 0.0); exerciseRepository.save(afterReleaseFileUploadExercise); // setting up student submission @@ -186,37 +141,17 @@ void testManualAssessmentSubmit_IncludedAsBonusExercise() throws Exception { submission = fileUploadExerciseUtilService.addFileUploadSubmission(afterReleaseFileUploadExercise, submission, TEST_PREFIX + "student1"); List feedbacks = new ArrayList<>(); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); - } - - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_NotIncludedExercise() throws Exception { - // setting up exercise - afterReleaseFileUploadExercise.setIncludedInOverallScore(IncludedInOverallScore.NOT_INCLUDED); - afterReleaseFileUploadExercise.setMaxPoints(10.0); - afterReleaseFileUploadExercise.setBonusPoints(0.0); - exerciseRepository.save(afterReleaseFileUploadExercise); - - // setting up student submission - FileUploadSubmission submission = ParticipationFactory.generateFileUploadSubmission(true); - submission = fileUploadExerciseUtilService.addFileUploadSubmission(afterReleaseFileUploadExercise, submission, TEST_PREFIX + "student1"); - List feedbacks = new ArrayList<>(); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 3.75, 25.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 7.5, 75.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 7.5, bonus ? 125.0 : 100.0); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100L); + if (bonus) { + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 7.5, 175.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 15.0, 200.0); + } } - private void addAssessmentFeedbackAndCheckScore(FileUploadSubmission fileUploadSubmission, List feedbacks, double pointsAwarded, long expectedScore) + private void addAssessmentFeedbackAndCheckScore(FileUploadSubmission fileUploadSubmission, List feedbacks, Double pointsAwarded, Double expectedScore) throws Exception { var params = new LinkedMultiValueMap(); params.add("submit", "true"); @@ -498,20 +433,14 @@ void multipleCorrectionRoundsForExam() throws Exception { var submission = ParticipationFactory.generateFileUploadSubmission(true); submission = fileUploadExerciseUtilService.addFileUploadSubmission(exercise, submission, TEST_PREFIX + "student1"); - // verify setup - assertThat(exam.getNumberOfCorrectionRoundsInExam()).isEqualTo(2); - assertThat(exam.getEndDate()).isBefore(ZonedDateTime.now()); - var optionalFetchedExercise = exerciseRepository.findWithEagerStudentParticipationsStudentAndSubmissionsById(exercise.getId()); - assertThat(optionalFetchedExercise).isPresent(); - final var exerciseWithParticipation = optionalFetchedExercise.get(); - final var studentParticipation = exerciseWithParticipation.getStudentParticipations().stream().iterator().next(); + Participation studentParticipation = submission.getParticipation(); // request to manually assess latest submission (correction round: 0) LinkedMultiValueMap params = new LinkedMultiValueMap<>(); params.add("lock", "true"); params.add("correction-round", "0"); - FileUploadSubmission submissionWithoutFirstAssessment = request.get("/api/exercises/" + exerciseWithParticipation.getId() + "/file-upload-submission-without-assessment", - HttpStatus.OK, FileUploadSubmission.class, params); + FileUploadSubmission submissionWithoutFirstAssessment = request.get("/api/exercises/" + exercise.getId() + "/file-upload-submission-without-assessment", HttpStatus.OK, + FileUploadSubmission.class, params); // verify that no new submission was created assertThat(submissionWithoutFirstAssessment).isEqualTo(submission); // verify that the lock has been set @@ -523,7 +452,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR1Tutor1 = new LinkedMultiValueMap<>(); paramsGetAssessedCR1Tutor1.add("assessedByTutor", "true"); paramsGetAssessedCR1Tutor1.add("correction-round", "0"); - var assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, + var assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, paramsGetAssessedCR1Tutor1); assertThat(assessedSubmissionList).hasSize(1); @@ -539,7 +468,7 @@ void multipleCorrectionRoundsForExam() throws Exception { feedbacks, Result.class, HttpStatus.OK, params); // make sure that new result correctly appears after the assessment for first correction round - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, paramsGetAssessedCR1Tutor1); assertThat(assessedSubmissionList).hasSize(1); @@ -577,8 +506,8 @@ void multipleCorrectionRoundsForExam() throws Exception { paramsSecondCorrection.add("lock", "true"); paramsSecondCorrection.add("correction-round", "1"); - final var submissionWithoutSecondAssessment = request.get("/api/exercises/" + exerciseWithParticipation.getId() + "/file-upload-submission-without-assessment", - HttpStatus.OK, FileUploadSubmission.class, paramsSecondCorrection); + final var submissionWithoutSecondAssessment = request.get("/api/exercises/" + exercise.getId() + "/file-upload-submission-without-assessment", HttpStatus.OK, + FileUploadSubmission.class, paramsSecondCorrection); // verify that the submission is not new assertThat(submissionWithoutSecondAssessment).isEqualTo(submission); @@ -617,7 +546,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR2 = new LinkedMultiValueMap<>(); paramsGetAssessedCR2.add("assessedByTutor", "true"); paramsGetAssessedCR2.add("correction-round", "1"); - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, paramsGetAssessedCR2); assertThat(assessedSubmissionList).hasSize(1); @@ -628,7 +557,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR1 = new LinkedMultiValueMap<>(); paramsGetAssessedCR1.add("assessedByTutor", "true"); paramsGetAssessedCR1.add("correction-round", "0"); - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/file-upload-submissions", HttpStatus.OK, FileUploadSubmission.class, paramsGetAssessedCR1); assertThat(assessedSubmissionList).isEmpty(); diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/modelingexercise/ModelingAssessmentIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/modelingexercise/ModelingAssessmentIntegrationTest.java index 4fb60c5b33c4..4a44b3440743 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/modelingexercise/ModelingAssessmentIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/modelingexercise/ModelingAssessmentIntegrationTest.java @@ -10,6 +10,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; @@ -23,6 +25,7 @@ import de.tum.in.www1.artemis.domain.exam.ExerciseGroup; import de.tum.in.www1.artemis.domain.modeling.ModelingExercise; import de.tum.in.www1.artemis.domain.modeling.ModelingSubmission; +import de.tum.in.www1.artemis.domain.participation.Participation; import de.tum.in.www1.artemis.domain.participation.StudentParticipation; import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison; import de.tum.in.www1.artemis.domain.plagiarism.PlagiarismStatus; @@ -399,37 +402,14 @@ void testManualAssessmentSaveAndSubmit() throws Exception { assertThat(storedResult.getParticipation()).isNotNull(); } - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_IncludedCompletelyWithBonusPointsExercise() throws Exception { - // setting up exercise - useCaseExercise.setIncludedInOverallScore(IncludedInOverallScore.INCLUDED_COMPLETELY); - useCaseExercise.setMaxPoints(10.0); - useCaseExercise.setBonusPoints(10.0); - exerciseRepo.save(useCaseExercise); - - // setting up student submission - ModelingSubmission submission = modelingExerciseUtilService.addModelingSubmissionFromResources(useCaseExercise, "test-data/model-submission/use-case-model.json", - TEST_PREFIX + "student1"); - List feedbacks = new ArrayList<>(); - - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 150D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 200D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 200D); - } - - @Test + @ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}") @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_IncludedCompletelyWithoutBonusPointsExercise() throws Exception { + @CsvSource({ "INCLUDED_COMPLETELY,true", "INCLUDED_COMPLETELY,false", "INCLUDED_AS_BONUS,true", "INCLUDED_AS_BONUS,false", "NOT_INCLUDED,true", "INCLUDED_AS_BONUS,false" }) + void testManualAssessmentSubmit(IncludedInOverallScore includedInOverallScore, boolean bonus) throws Exception { // setting up exercise - useCaseExercise.setIncludedInOverallScore(IncludedInOverallScore.INCLUDED_COMPLETELY); + useCaseExercise.setIncludedInOverallScore(includedInOverallScore); useCaseExercise.setMaxPoints(10.0); - useCaseExercise.setBonusPoints(0.0); + useCaseExercise.setBonusPoints(bonus ? 10.0 : 0.0); exerciseRepo.save(useCaseExercise); // setting up student submission @@ -437,53 +417,20 @@ void testManualAssessmentSubmit_IncludedCompletelyWithoutBonusPointsExercise() t TEST_PREFIX + "student1"); List feedbacks = new ArrayList<>(); - setupStudentSubmissions(submission, feedbacks); - } + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, -2.5, 25.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 15.0, bonus ? 175.0 : 100.0); - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_IncludedAsBonusExercise() throws Exception { - // setting up exercise - useCaseExercise.setIncludedInOverallScore(IncludedInOverallScore.INCLUDED_AS_BONUS); - useCaseExercise.setMaxPoints(10.0); - useCaseExercise.setBonusPoints(0.0); - exerciseRepo.save(useCaseExercise); - - // setting up student submission - ModelingSubmission submission = modelingExerciseUtilService.addModelingSubmissionFromResources(useCaseExercise, "test-data/model-submission/use-case-model.json", - TEST_PREFIX + "student1"); - List feedbacks = new ArrayList<>(); - - setupStudentSubmissions(submission, feedbacks); - } - - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void testManualAssessmentSubmit_NotIncludedExercise() throws Exception { - // setting up exercise - useCaseExercise.setIncludedInOverallScore(IncludedInOverallScore.NOT_INCLUDED); - useCaseExercise.setMaxPoints(10.0); - useCaseExercise.setBonusPoints(0.0); - exerciseRepo.save(useCaseExercise); - - // setting up student submission - ModelingSubmission submission = modelingExerciseUtilService.addModelingSubmissionFromResources(useCaseExercise, "test-data/model-submission/use-case-model.json", - TEST_PREFIX + "student1"); - List feedbacks = new ArrayList<>(); - - setupStudentSubmissions(submission, feedbacks); - } - - private void setupStudentSubmissions(ModelingSubmission submission, List feedbacks) throws Exception { - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 0.0, 0D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, -1.0, 0D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 1.0, 0D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 50D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100D); - addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 100D); + if (bonus) { + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 200.0); + addAssessmentFeedbackAndCheckScore(submission, feedbacks, 5.0, 200.0); + } } - private void addAssessmentFeedbackAndCheckScore(ModelingSubmission submission, List feedbacks, double pointsAwarded, Double expectedScore) throws Exception { + private void addAssessmentFeedbackAndCheckScore(ModelingSubmission submission, List feedbacks, Double pointsAwarded, Double expectedScore) throws Exception { feedbacks.add(new Feedback().credits(pointsAwarded).type(FeedbackType.MANUAL_UNREFERENCED).detailText("gj")); createAssessment(submission, feedbacks, "/assessment?submit=true", HttpStatus.OK); ModelingSubmission storedSubmission = modelingSubmissionRepo.findWithEagerResultById(submission.getId()).orElseThrow(); @@ -1333,20 +1280,14 @@ void multipleCorrectionRoundsForExam() throws Exception { final var submission = modelingExerciseUtilService.addModelingSubmissionFromResources(exercise, "test-data/model-submission/model.54727.partial.json", TEST_PREFIX + "student1"); - // verify setup - assertThat(exam.getNumberOfCorrectionRoundsInExam()).isEqualTo(2); - assertThat(exam.getEndDate()).isBefore(ZonedDateTime.now()); - var optionalFetchedExercise = exerciseRepo.findWithEagerStudentParticipationsStudentAndSubmissionsById(exercise.getId()); - assertThat(optionalFetchedExercise).isPresent(); - final var exerciseWithParticipation = optionalFetchedExercise.get(); - final var studentParticipation = exerciseWithParticipation.getStudentParticipations().stream().iterator().next(); + Participation studentParticipation = submission.getParticipation(); // request to manually assess latest submission (correction round: 0) LinkedMultiValueMap params = new LinkedMultiValueMap<>(); params.add("lock", "true"); params.add("correction-round", "0"); - ModelingSubmission submissionWithoutFirstAssessment = request.get("/api/exercises/" + exerciseWithParticipation.getId() + "/modeling-submission-without-assessment", - HttpStatus.OK, ModelingSubmission.class, params); + ModelingSubmission submissionWithoutFirstAssessment = request.get("/api/exercises/" + exercise.getId() + "/modeling-submission-without-assessment", HttpStatus.OK, + ModelingSubmission.class, params); // verify that no new submission was created assertThat(submissionWithoutFirstAssessment).isEqualTo(submission); // verify that the lock has been set @@ -1358,7 +1299,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR1Tutor1 = new LinkedMultiValueMap<>(); paramsGetAssessedCR1Tutor1.add("assessedByTutor", "true"); paramsGetAssessedCR1Tutor1.add("correction-round", "0"); - var assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, + var assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, paramsGetAssessedCR1Tutor1); assertThat(assessedSubmissionList).hasSize(1); @@ -1374,7 +1315,7 @@ void multipleCorrectionRoundsForExam() throws Exception { feedbacks, Result.class, HttpStatus.OK, params); // make sure that new result correctly appears after the assessment for first correction round - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, paramsGetAssessedCR1Tutor1); assertThat(assessedSubmissionList).hasSize(1); @@ -1412,7 +1353,7 @@ void multipleCorrectionRoundsForExam() throws Exception { paramsSecondCorrection.add("lock", "true"); paramsSecondCorrection.add("correction-round", "1"); - final var submissionWithoutSecondAssessment = request.get("/api/exercises/" + exerciseWithParticipation.getId() + "/modeling-submission-without-assessment", HttpStatus.OK, + final var submissionWithoutSecondAssessment = request.get("/api/exercises/" + exercise.getId() + "/modeling-submission-without-assessment", HttpStatus.OK, ModelingSubmission.class, paramsSecondCorrection); // verify that the submission is not new @@ -1452,8 +1393,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR2 = new LinkedMultiValueMap<>(); paramsGetAssessedCR2.add("assessedByTutor", "true"); paramsGetAssessedCR2.add("correction-round", "1"); - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, - paramsGetAssessedCR2); + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, paramsGetAssessedCR2); assertThat(assessedSubmissionList).hasSize(1); assertThat(assessedSubmissionList.get(0).getId()).isEqualTo(submissionWithoutSecondAssessment.getId()); @@ -1463,8 +1403,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR1 = new LinkedMultiValueMap<>(); paramsGetAssessedCR1.add("assessedByTutor", "true"); paramsGetAssessedCR1.add("correction-round", "0"); - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, - paramsGetAssessedCR1); + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/modeling-submissions", HttpStatus.OK, ModelingSubmission.class, paramsGetAssessedCR1); assertThat(assessedSubmissionList).isEmpty(); diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingAssessmentIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingAssessmentIntegrationTest.java index 3db8760bc506..c7b4a1587066 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingAssessmentIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingAssessmentIntegrationTest.java @@ -638,14 +638,7 @@ void multipleCorrectionRoundsForExam() throws Exception { final var thirdSubmission = programmingExerciseUtilService.createProgrammingSubmission(studentParticipation, false, dummyHash); participationUtilService.addResultToSubmission(thirdSubmission, AssessmentType.AUTOMATIC, null); - // verify setup - assertThat(exam.getNumberOfCorrectionRoundsInExam()).isEqualTo(2); - assertThat(exam.getEndDate()).isBefore(ZonedDateTime.now()); - var optionalFetchedExercise = programmingExerciseRepository.findWithAllParticipationsById(exercise.getId()); - assertThat(optionalFetchedExercise).isPresent(); - final var exerciseWithParticipation = optionalFetchedExercise.get(); - var submissionsOfParticipation = submissionRepository - .findAllWithResultsAndAssessorByParticipationId(exerciseWithParticipation.getStudentParticipations().stream().iterator().next().getId()); + var submissionsOfParticipation = submissionRepository.findAllWithResultsAndAssessorByParticipationId(studentParticipation.getId()); assertThat(submissionsOfParticipation).hasSize(3); for (final var submission : submissionsOfParticipation) { assertThat(submission.getResults()).isNotNull(); @@ -658,8 +651,8 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap params = new LinkedMultiValueMap<>(); params.add("lock", "true"); params.add("correction-round", "0"); - ProgrammingSubmission submissionWithoutFirstAssessment = request.get("/api/exercises/" + exerciseWithParticipation.getId() + "/programming-submission-without-assessment", - HttpStatus.OK, ProgrammingSubmission.class, params); + ProgrammingSubmission submissionWithoutFirstAssessment = request.get("/api/exercises/" + exercise.getId() + "/programming-submission-without-assessment", HttpStatus.OK, + ProgrammingSubmission.class, params); // verify that a new submission was created // We want to get the third Submission, as it is the latest one, and contains an automatic result; assertThat(submissionWithoutFirstAssessment).isNotEqualTo(firstSubmission).isNotEqualTo(secondSubmission).isEqualTo(thirdSubmission); @@ -672,7 +665,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR1Tutor1 = new LinkedMultiValueMap<>(); paramsGetAssessedCR1Tutor1.add("assessedByTutor", "true"); paramsGetAssessedCR1Tutor1.add("correction-round", "0"); - var assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, + var assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, paramsGetAssessedCR1Tutor1); assertThat(assessedSubmissionList).hasSize(1); @@ -695,7 +688,7 @@ void multipleCorrectionRoundsForExam() throws Exception { manualResultLockedFirstRound, Result.class, HttpStatus.OK, params); // make sure that new result correctly appears after the assessment for first correction round - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, paramsGetAssessedCR1Tutor1); assertThat(assessedSubmissionList).hasSize(1); @@ -737,8 +730,8 @@ void multipleCorrectionRoundsForExam() throws Exception { paramsSecondCorrection.add("lock", "true"); paramsSecondCorrection.add("correction-round", "1"); - final var submissionWithoutSecondAssessment = request.get("/api/exercises/" + exerciseWithParticipation.getId() + "/programming-submission-without-assessment", - HttpStatus.OK, ProgrammingSubmission.class, paramsSecondCorrection); + final var submissionWithoutSecondAssessment = request.get("/api/exercises/" + exercise.getId() + "/programming-submission-without-assessment", HttpStatus.OK, + ProgrammingSubmission.class, paramsSecondCorrection); // verify that the submission is not new // it should contain the latest automatic result, and the first manual result, and the lock for the second manual result @@ -783,7 +776,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR2 = new LinkedMultiValueMap<>(); paramsGetAssessedCR2.add("assessedByTutor", "true"); paramsGetAssessedCR2.add("correction-round", "1"); - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, paramsGetAssessedCR2); assertThat(assessedSubmissionList).hasSize(1); @@ -794,7 +787,7 @@ void multipleCorrectionRoundsForExam() throws Exception { LinkedMultiValueMap paramsGetAssessedCR1 = new LinkedMultiValueMap<>(); paramsGetAssessedCR1.add("assessedByTutor", "true"); paramsGetAssessedCR1.add("correction-round", "0"); - assessedSubmissionList = request.getList("/api/exercises/" + exerciseWithParticipation.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, + assessedSubmissionList = request.getList("/api/exercises/" + exercise.getId() + "/programming-submissions", HttpStatus.OK, ProgrammingSubmission.class, paramsGetAssessedCR1); assertThat(assessedSubmissionList).isEmpty(); diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/textexercise/TextExerciseUtilService.java b/src/test/java/de/tum/in/www1/artemis/exercise/textexercise/TextExerciseUtilService.java index 2ea7741f69c0..17673d74339a 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/textexercise/TextExerciseUtilService.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/textexercise/TextExerciseUtilService.java @@ -344,4 +344,19 @@ public TextExercise createTextExerciseForExam(ExerciseGroup exerciseGroup) { textExerciseRepository.save(textExercise); return textExercise; } + + /** + * Creates a submission with a result and an assessor of the passed text exercise. + * + * @param textExercise exercise of the submission. + * @param studentLogin login of a student who created the submission. + * @param tutorLogin login of the tutor assessing the exercise. + * @return the created text submission. + */ + public TextSubmission createTextSubmissionWithResultAndAssessor(TextExercise textExercise, String studentLogin, String tutorLogin) { + TextSubmission textSubmission = ParticipationFactory.generateTextSubmission("Some text", Language.ENGLISH, true); + textSubmission = saveTextSubmissionWithResultAndAssessor(textExercise, textSubmission, studentLogin, tutorLogin); + + return textSubmission; + } } diff --git a/src/test/java/de/tum/in/www1/artemis/text/TextAssessmentIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/text/TextAssessmentIntegrationTest.java index 015bf3bfd296..220aa4853d6a 100644 --- a/src/test/java/de/tum/in/www1/artemis/text/TextAssessmentIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/text/TextAssessmentIntegrationTest.java @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.ValueSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; @@ -232,18 +233,8 @@ void getTextSubmissionWithResultIdAsTutor_badRequest() throws Exception { @Test @WithMockUser(username = TEST_PREFIX + "tutor2", roles = "TA") void updateTextAssessmentAfterComplaint_wrongParticipationId() throws Exception { - TextSubmission textSubmission = ParticipationFactory.generateTextSubmission("Some text", Language.ENGLISH, true); - textSubmission = textExerciseUtilService.saveTextSubmissionWithResultAndAssessor(textExercise, textSubmission, TEST_PREFIX + "student1", TEST_PREFIX + "tutor1"); - Result textAssessment = textSubmission.getLatestResult(); - Complaint complaint = new Complaint().result(textAssessment).complaintText("This is not fair"); - - complaintRepo.save(complaint); - complaint.getResult().setParticipation(null); // Break infinite reference chain - - ComplaintResponse complaintResponse = complaintUtilService.createInitialEmptyResponse(TEST_PREFIX + "tutor2", complaint); - complaintResponse.getComplaint().setAccepted(false); - complaintResponse.setResponseText("rejected"); - AssessmentUpdate assessmentUpdate = new AssessmentUpdate().feedbacks(new ArrayList<>()).complaintResponse(complaintResponse); + TextSubmission textSubmission = textExerciseUtilService.createTextSubmissionWithResultAndAssessor(textExercise, TEST_PREFIX + "student1", TEST_PREFIX + "tutor1"); + AssessmentUpdate assessmentUpdate = complaintUtilService.createComplaintAndResponse(textSubmission.getLatestResult(), TEST_PREFIX + "tutor2"); long randomId = 12354; Result updatedResult = request.putWithResponseBody("/api/participations/" + randomId + "/submissions/" + textSubmission.getId() + "/text-assessment-after-complaint", @@ -255,18 +246,8 @@ void updateTextAssessmentAfterComplaint_wrongParticipationId() throws Exception @Test @WithMockUser(username = TEST_PREFIX + "tutor2", roles = "TA") void updateTextAssessmentAfterComplaint_studentHidden() throws Exception { - TextSubmission textSubmission = ParticipationFactory.generateTextSubmission("Some text", Language.ENGLISH, true); - textSubmission = textExerciseUtilService.saveTextSubmissionWithResultAndAssessor(textExercise, textSubmission, TEST_PREFIX + "student1", TEST_PREFIX + "tutor1"); - Result textAssessment = textSubmission.getLatestResult(); - Complaint complaint = new Complaint().result(textAssessment).complaintText("This is not fair"); - - complaintRepo.save(complaint); - complaint.getResult().setParticipation(null); // Break infinite reference chain - - ComplaintResponse complaintResponse = complaintUtilService.createInitialEmptyResponse(TEST_PREFIX + "tutor2", complaint); - complaintResponse.getComplaint().setAccepted(false); - complaintResponse.setResponseText("rejected"); - AssessmentUpdate assessmentUpdate = new AssessmentUpdate().feedbacks(new ArrayList<>()).complaintResponse(complaintResponse); + TextSubmission textSubmission = textExerciseUtilService.createTextSubmissionWithResultAndAssessor(textExercise, TEST_PREFIX + "student1", TEST_PREFIX + "tutor1"); + AssessmentUpdate assessmentUpdate = complaintUtilService.createComplaintAndResponse(textSubmission.getLatestResult(), TEST_PREFIX + "tutor2"); Result updatedResult = request.putWithResponseBody( "/api/participations/" + textSubmission.getParticipation().getId() + "/submissions/" + textSubmission.getId() + "/text-assessment-after-complaint", @@ -319,60 +300,30 @@ private TextSubmission prepareSubmission() throws Exception { return request.get("/api/exercises/" + textExercise.getId() + "/text-submission-without-assessment", HttpStatus.OK, TextSubmission.class, params); } - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void saveTextAssessment_studentHidden() throws Exception { - TextSubmission submissionWithoutAssessment = prepareSubmission(); - - final TextAssessmentDTO textAssessmentDTO = new TextAssessmentDTO(); - textAssessmentDTO.setFeedbacks(new ArrayList<>()); - - Result result = request.putWithResponseBody("/api/participations/" + submissionWithoutAssessment.getParticipation().getId() + "/results/" - + submissionWithoutAssessment.getLatestResult().getId() + "/text-assessment", textAssessmentDTO, Result.class, HttpStatus.OK); - - assertThat(result).as("saved result found").isNotNull(); - assertThat(((StudentParticipation) result.getParticipation()).getStudent()).as("student of participation is hidden").isEmpty(); - } - - @Test - @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void saveTextAssessment_wrongParticipationId() throws Exception { - TextSubmission submissionWithoutAssessment = prepareSubmission(); - - final TextAssessmentDTO textAssessmentDTO = new TextAssessmentDTO(); - textAssessmentDTO.setFeedbacks(new ArrayList<>()); - - long randomId = 1343; - Result result = request.putWithResponseBody("/api/participations/" + randomId + "/results/" + submissionWithoutAssessment.getLatestResult().getId() + "/text-assessment", - textAssessmentDTO, Result.class, HttpStatus.BAD_REQUEST); - assertThat(result).isNull(); - } - - @Test + @ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}") @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void submitTextAssessment_studentHidden() throws Exception { + @ValueSource(booleans = { true, false }) + void saveOrSubmitTextAssessment_studentHidden(boolean submit) throws Exception { TextSubmission submissionWithoutAssessment = prepareSubmission(); final TextAssessmentDTO textAssessmentDTO = new TextAssessmentDTO(); textAssessmentDTO.setFeedbacks(new ArrayList<>()); - Result result = request.postWithResponseBody("/api/participations/" + submissionWithoutAssessment.getParticipation().getId() + "/results/" - + submissionWithoutAssessment.getLatestResult().getId() + "/submit-text-assessment", textAssessmentDTO, Result.class, HttpStatus.OK); + Result result = saveOrSubmitTextAssessment(submissionWithoutAssessment.getParticipation().getId(), + Objects.requireNonNull(submissionWithoutAssessment.getLatestResult()).getId(), textAssessmentDTO, submit, HttpStatus.OK); assertThat(result).as("saved result found").isNotNull(); assertThat(((StudentParticipation) result.getParticipation()).getStudent()).as("student of participation is hidden").isEmpty(); } - @Test + @ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}") @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") - void submitTextAssessment_wrongParticipationId() throws Exception { + @ValueSource(booleans = { true, false }) + void saveOrSubmitTextAssessment_wrongParticipationId(boolean submit) throws Exception { TextSubmission submissionWithoutAssessment = prepareSubmission(); - final TextAssessmentDTO textAssessmentDTO = new TextAssessmentDTO(); textAssessmentDTO.setFeedbacks(new ArrayList<>()); - long randomId = 1548; - Result result = request.postWithResponseBody( - "/api/participations/" + randomId + "/results/" + submissionWithoutAssessment.getLatestResult().getId() + "/submit-text-assessment", textAssessmentDTO, - Result.class, HttpStatus.BAD_REQUEST); + Result result = saveOrSubmitTextAssessment(1343L, Objects.requireNonNull(submissionWithoutAssessment.getLatestResult()).getId(), textAssessmentDTO, submit, + HttpStatus.BAD_REQUEST); assertThat(result).isNull(); } @@ -1347,4 +1298,28 @@ void testConsecutiveSaveFailsAfterAddingOrRemovingReferencedFeedback() throws Ex Set textBlocks = textBlockRepository.findAllBySubmissionId(textSubmissionWithoutAssessment.getId()); assertThat(textBlocks).allSatisfy(block -> assertThat(block).isEqualToComparingFieldByField(blocksSubmission.get(block.getId()))); } + + /** + * Saves or submits a text assessment. + * + * @param participationId The participation id of a submission. + * @param latestResultId The id of the latest result. + * @param textAssessmentDTO The DTO of the text assessment. + * @param submit True, if the text assessment should be submitted. False, if it should only be saved. + * @param expectedStatus Expected response status of the request. + * @return The response of the request in form of a result. + * @throws Exception If the request fails. + */ + private Result saveOrSubmitTextAssessment(Long participationId, Long latestResultId, TextAssessmentDTO textAssessmentDTO, boolean submit, HttpStatus expectedStatus) + throws Exception { + if (submit) { + return request.postWithResponseBody("/api/participations/" + participationId + "/results/" + latestResultId + "/submit-text-assessment", textAssessmentDTO, + Result.class, expectedStatus); + + } + else { + return request.putWithResponseBody("/api/participations/" + participationId + "/results/" + latestResultId + "/text-assessment", textAssessmentDTO, Result.class, + expectedStatus); + } + } } From 65087f5d7eb50b59dfcbcb3e0807a82f0de2b919 Mon Sep 17 00:00:00 2001 From: Andreas Resch Date: Tue, 3 Oct 2023 09:45:00 +0200 Subject: [PATCH 13/39] Development: Make developer setup travel friendly with pull policy: if_not_present (#7290) --- docker/atlassian.yml | 8 ++++---- docker/broker-registry.yml | 4 ++-- docker/cypress.yml | 2 +- docker/gitlab-gitlabci.yml | 2 +- docker/mailhog.yml | 2 +- docker/monitoring.yml | 6 +++--- docker/mysql.yml | 2 +- docker/nginx.yml | 2 +- docker/postgres.yml | 2 +- docker/saml-test.yml | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docker/atlassian.yml b/docker/atlassian.yml index 6b8e33418747..ae663d5bc81a 100644 --- a/docker/atlassian.yml +++ b/docker/atlassian.yml @@ -9,7 +9,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" image: ghcr.io/ls1intum/artemis-jira:9.4.3 - pull_policy: always + pull_policy: if_not_present volumes: - artemis-jira-data:/var/atlassian/application-data/jira ports: @@ -25,7 +25,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" image: ghcr.io/ls1intum/artemis-bitbucket:8.13.1 - pull_policy: always + pull_policy: if_not_present volumes: - artemis-bitbucket-data:/var/atlassian/application-data/bitbucket environment: @@ -45,7 +45,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" image: ghcr.io/ls1intum/artemis-bamboo:9.3.3 - pull_policy: always + pull_policy: if_not_present volumes: - artemis-bamboo-data:/var/atlassian/application-data/bamboo ports: @@ -70,7 +70,7 @@ services: extra_hosts: - "host.docker.internal:host-gateway" image: ghcr.io/ls1intum/artemis-bamboo-build-agent:9.2.1 - pull_policy: always + pull_policy: if_not_present volumes: # The following path needs to be the same absolute path on the host because of the docker socket: # https://confluence.atlassian.com/bamkb/bamboo-in-docker-build-fails-due-to-a-missing-working-directory-when-using-docker-runner-1027119339.html diff --git a/docker/broker-registry.yml b/docker/broker-registry.yml index 74b9b79a3325..1e5dd59e0026 100644 --- a/docker/broker-registry.yml +++ b/docker/broker-registry.yml @@ -2,7 +2,7 @@ services: jhipster-registry: container_name: artemis-jhipster-registry image: docker.io/jhipster/jhipster-registry:v6.1.2 - pull_policy: always + pull_policy: if_not_present volumes: - ./registry:/central-config # When run with the "dev" Spring profile, the JHipster Registry will @@ -25,7 +25,7 @@ services: activemq-broker: container_name: artemis-activemq-broker image: docker.io/vromero/activemq-artemis:latest - pull_policy: always + pull_policy: if_not_present environment: ARTEMIS_USERNAME: guest ARTEMIS_PASSWORD: guest diff --git a/docker/cypress.yml b/docker/cypress.yml index 494d78473672..2e337c158c4d 100644 --- a/docker/cypress.yml +++ b/docker/cypress.yml @@ -6,7 +6,7 @@ services: artemis-cypress: # Cypress image with node and chrome browser installed (Cypress installation needs to be done separately because we require additional dependencies) image: docker.io/cypress/browsers:node-18.16.0-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 - pull_policy: always + pull_policy: if_not_present environment: CYPRESS_baseUrl: "https://artemis-nginx" CYPRESS_video: "${bamboo_cypress_video_enabled}" diff --git a/docker/gitlab-gitlabci.yml b/docker/gitlab-gitlabci.yml index c454136ffa4e..d5dac2dc635f 100644 --- a/docker/gitlab-gitlabci.yml +++ b/docker/gitlab-gitlabci.yml @@ -34,7 +34,7 @@ services: shm_size: "256m" gitlab-runner: image: docker.io/gitlab/gitlab-runner:latest - pull_policy: always + pull_policy: if_not_present container_name: artemis-gitlab-runner volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/docker/mailhog.yml b/docker/mailhog.yml index 70af79096071..fb93d5784b4d 100644 --- a/docker/mailhog.yml +++ b/docker/mailhog.yml @@ -8,7 +8,7 @@ services: mailhog: container_name: artemis-mailhog image: docker.io/mailhog/mailhog - pull_policy: always + pull_policy: if_not_present ports: - "1025:1025" - "8025:8025" diff --git a/docker/monitoring.yml b/docker/monitoring.yml index 9c237f83b69b..f9f4f5b7ac08 100644 --- a/docker/monitoring.yml +++ b/docker/monitoring.yml @@ -3,14 +3,14 @@ # ---------------------------------------------------------------------------------------------------------------------- # This configuration is intended for development purpose, it's **your** responsibility to harden it for production # -# Out of the box this setup just works with a non-containerized Artemis instancezs +# Out of the box this setup just works with a non-containerized Artemis instances # ---------------------------------------------------------------------------------------------------------------------- services: prometheus: container_name: artemis-prometheus image: docker.io/prom/prometheus:v2.34.0 - pull_policy: always + pull_policy: if_not_present volumes: - ./monitoring/prometheus/:/etc/prometheus/ # If you want to expose these ports outside your dev PC, @@ -26,7 +26,7 @@ services: grafana: container_name: artemis-grafana image: docker.io/grafana/grafana:9.0.2 - pull_policy: always + pull_policy: if_not_present volumes: - ./monitoring/grafana/provisioning/:/etc/grafana/provisioning/ environment: diff --git a/docker/mysql.yml b/docker/mysql.yml index f7b79b40ba63..97ae038e67fa 100644 --- a/docker/mysql.yml +++ b/docker/mysql.yml @@ -6,7 +6,7 @@ services: mysql: container_name: artemis-mysql image: docker.io/library/mysql:8.0.33 - pull_policy: always + pull_policy: if_not_present volumes: - artemis-mysql-data:/var/lib/mysql # DO NOT use this default file for production systems! diff --git a/docker/nginx.yml b/docker/nginx.yml index aeb196c5ea07..43807eed4a37 100644 --- a/docker/nginx.yml +++ b/docker/nginx.yml @@ -7,7 +7,7 @@ services: # nginx setup based on artemis prod ansible repository container_name: artemis-nginx image: docker.io/library/nginx:1.23 - pull_policy: always + pull_policy: if_not_present volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/timeouts.conf:/etc/nginx/conf.d/timeouts.conf:ro diff --git a/docker/postgres.yml b/docker/postgres.yml index 097c9530baee..9feba0d54638 100644 --- a/docker/postgres.yml +++ b/docker/postgres.yml @@ -6,7 +6,7 @@ services: postgres: container_name: artemis-postgres image: docker.io/library/postgres:15.3-alpine - pull_policy: always + pull_policy: if_not_present user: postgres command: ["postgres", "-c", "max_connections=200"] volumes: diff --git a/docker/saml-test.yml b/docker/saml-test.yml index 63fb677b0741..a71d69dee02e 100644 --- a/docker/saml-test.yml +++ b/docker/saml-test.yml @@ -13,7 +13,7 @@ services: saml-test: container_name: artemis-saml-test image: docker.io/jamedjo/test-saml-idp - pull_policy: always + pull_policy: if_not_present ports: - "9980:8080" # expose the port to make it reachable docker internally even if the external port mapping changes From fa029c1a8c30eec367012c9306f7c2a525406847 Mon Sep 17 00:00:00 2001 From: Markus Paulsen <39456125+MarkusPaulsen@users.noreply.github.com> Date: Tue, 3 Oct 2023 09:49:40 +0200 Subject: [PATCH 14/39] Development: Improve background image input validation (#7170) --- .../in/www1/artemis/service/FileService.java | 23 +++++++++ .../service/QuizExerciseImportService.java | 14 +++++- .../www1/artemis/service/FileServiceTest.java | 49 +++++++++++++++++++ 3 files changed, 84 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/service/FileService.java b/src/main/java/de/tum/in/www1/artemis/service/FileService.java index ac239e2b645d..2226bf6962eb 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/FileService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/FileService.java @@ -79,6 +79,10 @@ public class FileService implements DisposableBean { public static final String DEFAULT_FILE_SUBPATH = "/api/files/temp/"; + public static final String BACKGROUND_FILE_SUBPATH = "/api/files/drag-and-drop/backgrounds/"; + + public static final String PICTURE_FILE_SUBPATH = "/api/files/drag-and-drop/drag-items/"; + /** * Filenames for which the template filename differs from the filename it should have in the repository. */ @@ -248,6 +252,25 @@ public Path copyExistingFileToTarget(Path oldFilePath, Path targetFolder) { return null; } + /** + * Checks whether the path starts with the provided sub-path. + * + * @param path URI to check if it starts with the sub-pat + * @param subPath sub-path URI to search for + * @throws IllegalArgumentException if the provided path does not start with the provided sub-path or the provided legacy-sub-path + */ + public static void sanitizeByCheckingIfPathStartsWithSubPathElseThrow(@NotNull URI path, @NotNull URI subPath) { + // Removes redundant elements (e.g. ../ or ./) from the path and sub-path + URI normalisedPath = path.normalize(); + URI normalisedSubPath = subPath.normalize(); + // Indicates whether the path starts with the subPath + boolean normalisedPathStartsWithNormalisedSubPath = normalisedPath.getPath().startsWith(normalisedSubPath.getPath()); + // Throws a IllegalArgumentException in case the normalisedPath does not start with the normalisedSubPath + if (!normalisedPathStartsWithNormalisedSubPath) { + throw new IllegalArgumentException("Path is not valid!"); + } + } + /** * Generates a prefix for the filename based on the target folder * diff --git a/src/main/java/de/tum/in/www1/artemis/service/QuizExerciseImportService.java b/src/main/java/de/tum/in/www1/artemis/service/QuizExerciseImportService.java index 29638f7d66b5..7b4c96579929 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/QuizExerciseImportService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/QuizExerciseImportService.java @@ -104,8 +104,13 @@ private void copyQuizQuestions(QuizExercise importedExercise, QuizExercise newEx } else if (quizQuestion instanceof DragAndDropQuestion dndQuestion) { if (dndQuestion.getBackgroundFilePath() != null) { + URI backgroundFilePublicPath = URI.create(dndQuestion.getBackgroundFilePath()); + URI backgroundFileIntendedPath = URI.create(FileService.BACKGROUND_FILE_SUBPATH); + // Check whether pictureFilePublicPath is actually a picture file path + // (which is the case when its path starts with the path backgroundFileIntendedPath) + FileService.sanitizeByCheckingIfPathStartsWithSubPathElseThrow(backgroundFilePublicPath, backgroundFileIntendedPath); // Need to copy the file and get a new path, otherwise two different questions would share the same image and would cause problems in case one was deleted - Path oldPath = filePathService.actualPathForPublicPath(URI.create(dndQuestion.getBackgroundFilePath())); + Path oldPath = filePathService.actualPathForPublicPath(backgroundFilePublicPath); Path newPath = fileService.copyExistingFileToTarget(oldPath, FilePathService.getDragAndDropBackgroundFilePath()); dndQuestion.setBackgroundFilePath(filePathService.publicPathForActualPath(newPath, null).toString()); } @@ -121,8 +126,13 @@ else if (quizQuestion instanceof DragAndDropQuestion dndQuestion) { dragItem.setId(null); dragItem.setQuestion(dndQuestion); if (dragItem.getPictureFilePath() != null) { + URI pictureFilePublicPath = URI.create(dragItem.getPictureFilePath()); + URI pictureFileIntendedPath = URI.create(FileService.PICTURE_FILE_SUBPATH); + // Check whether pictureFilePublicPath is actually a picture file path + // (which is the case when its path starts with the path pictureFileIntendedPath) + FileService.sanitizeByCheckingIfPathStartsWithSubPathElseThrow(pictureFilePublicPath, pictureFileIntendedPath); // Need to copy the file and get a new path, same as above - Path oldDragItemPath = filePathService.actualPathForPublicPath(URI.create(dragItem.getPictureFilePath())); + Path oldDragItemPath = filePathService.actualPathForPublicPath(pictureFilePublicPath); Path newDragItemPath = fileService.copyExistingFileToTarget(oldDragItemPath, FilePathService.getDragItemFilePath()); dragItem.setPictureFilePath(filePathService.publicPathForActualPath(newDragItemPath, null).toString()); } diff --git a/src/test/java/de/tum/in/www1/artemis/service/FileServiceTest.java b/src/test/java/de/tum/in/www1/artemis/service/FileServiceTest.java index c38321adb4a1..7f441d5d2778 100644 --- a/src/test/java/de/tum/in/www1/artemis/service/FileServiceTest.java +++ b/src/test/java/de/tum/in/www1/artemis/service/FileServiceTest.java @@ -1,6 +1,7 @@ package de.tum.in.www1.artemis.service; import static org.assertj.core.api.Assertions.*; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; @@ -8,6 +9,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.net.URI; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -42,6 +44,18 @@ class FileServiceTest extends AbstractSpringIntegrationIndependentTest { // the resource loader allows to load resources from the file system for this prefix private final Path overridableBasePath = Path.of("templates", "jenkins"); + private static final URI VALID_BACKGROUND_PATH = URI.create("/api/uploads/images/drag-and-drop/backgrounds/1/BackgroundFile.jpg"); + + private static final URI VALID_INTENDED_BACKGROUND_PATH = URI.create("/api/" + FilePathService.getDragAndDropBackgroundFilePath() + "/"); + + private static final URI INVALID_BACKGROUND_PATH = URI.create("/api/uploads/images/drag-and-drop/backgrounds/1/../../../exam-users/signatures/some-file.png"); + + private static final URI VALID_DRAGITEM_PATH = URI.create("/api/uploads/images/drag-and-drop/drag-items/1/PictureFile.jpg"); + + private static final URI VALID_INTENDED_DRAGITEM_PATH = URI.create("/api/" + FilePathService.getDragItemFilePath() + "/"); + + private static final URI INVALID_DRAGITEM_PATH = URI.create("/api/uploads/images/drag-and-drop/drag-items/1/../../../exam-users/signatures/some-file.png"); + @AfterEach void cleanup() throws IOException { Files.deleteIfExists(javaPath); @@ -377,4 +391,39 @@ void testIgnoreDirectoryFalsePositives(@TempDir Path targetDir) throws IOExcepti final Path expectedTargetFile = targetDir.resolve("jenkins").resolve("package.xcworkspace"); assertThat(expectedTargetFile).doesNotExist(); } + + /** + * Tests whether FileService.sanitizeByCheckingIfPathContainsSubPathElseThrow correctly indicates, that VALID_BACKGROUND_PATH starts with VALID_INTENDED_BACKGROUND_PATH + */ + @Test + void testSanitizeByCheckingIfPathContainsSubPathElseThrow_Background_Valid() { + assertThatCode(() -> FileService.sanitizeByCheckingIfPathStartsWithSubPathElseThrow(VALID_BACKGROUND_PATH, VALID_INTENDED_BACKGROUND_PATH)).doesNotThrowAnyException(); + } + + /** + * Tests whether FileService.sanitizeByCheckingIfPathContainsSubPathElseThrow correctly indicates, that INVALID_BACKGROUND_PATH does not start with + * VALID_INTENDED_BACKGROUND_PATH + */ + @Test + void testSanitizeByCheckingIfPathContainsSubPathElseThrow_Background_Invalid_Path() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> FileService.sanitizeByCheckingIfPathStartsWithSubPathElseThrow(INVALID_BACKGROUND_PATH, VALID_INTENDED_BACKGROUND_PATH)); + } + + /** + * Tests whether FileService.sanitizeByCheckingIfPathContainsSubPathElseThrow correctly indicates, that VALID_DRAGITEM_PATH starts with VALID_INTENDED_DRAGITEM_PATH + */ + @Test + void testSanitizeByCheckingIfPathContainsSubPathElseThrow_Picture_Valid() { + assertThatCode(() -> FileService.sanitizeByCheckingIfPathStartsWithSubPathElseThrow(VALID_DRAGITEM_PATH, VALID_INTENDED_DRAGITEM_PATH)).doesNotThrowAnyException(); + } + + /** + * Tests whether FileService.sanitizeByCheckingIfPathContainsSubPathElseThrow correctly indicates, that INVALID_DRAGITEM_PATH does not start with VALID_INTENDED_DRAGITEM_PATH + */ + @Test + void testSanitizeByCheckingIfPathContainsSubPathElseThrow_Picture_Invalid_Path() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> FileService.sanitizeByCheckingIfPathStartsWithSubPathElseThrow(INVALID_DRAGITEM_PATH, VALID_INTENDED_DRAGITEM_PATH)); + } } From d2ff084a330140d22de4ac11af7c894032e4ae02 Mon Sep 17 00:00:00 2001 From: Lucas Welscher Date: Tue, 3 Oct 2023 09:51:11 +0200 Subject: [PATCH 15/39] Development: Reduce transferred data when creating ratings (#7168) --- .../artemis/web/rest/ComplaintResource.java | 4 +-- .../www1/artemis/web/rest/RatingResource.java | 36 ++++++++++--------- .../exam-exercise-import.component.ts | 3 +- .../shared/rating/rating.component.html | 4 +-- .../shared/rating/rating.component.ts | 34 ++++++++---------- .../exercises/shared/rating/rating.service.ts | 20 ++++++----- .../RatingResourceIntegrationTest.java | 29 +++++++-------- .../component/rating/rating.component.spec.ts | 22 +++++------- .../spec/service/rating.service.spec.ts | 4 +-- 9 files changed, 72 insertions(+), 84 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/ComplaintResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/ComplaintResource.java index aa44ed9df1b1..8158b1891e7d 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/ComplaintResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/ComplaintResource.java @@ -102,7 +102,7 @@ public ResponseEntity createComplaint(@RequestBody Complaint complain Complaint savedComplaint = complaintService.createComplaint(complaint, OptionalLong.empty(), principal); // Remove assessor information from client request - savedComplaint.getResult().setAssessor(null); + savedComplaint.getResult().filterSensitiveInformation(); return ResponseEntity.created(new URI("/api/complaints/" + savedComplaint.getId())) .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, entityName, savedComplaint.getId().toString())).body(savedComplaint); @@ -138,7 +138,7 @@ public ResponseEntity createComplaintForExamExercise(@PathVariable Lo Complaint savedComplaint = complaintService.createComplaint(complaint, OptionalLong.of(examId), principal); // Remove assessor information from client request - savedComplaint.getResult().setAssessor(null); + savedComplaint.getResult().filterSensitiveInformation(); return ResponseEntity.created(new URI("/api/complaints/" + savedComplaint.getId())) .headers(HeaderUtil.createEntityCreationAlert(applicationName, true, entityName, savedComplaint.getId().toString())).body(savedComplaint); diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/RatingResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/RatingResource.java index dc35510c7c3c..e1c622f47262 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/RatingResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/RatingResource.java @@ -11,10 +11,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import de.tum.in.www1.artemis.domain.Course; -import de.tum.in.www1.artemis.domain.Rating; -import de.tum.in.www1.artemis.domain.Result; -import de.tum.in.www1.artemis.domain.User; +import de.tum.in.www1.artemis.domain.*; import de.tum.in.www1.artemis.domain.participation.StudentParticipation; import de.tum.in.www1.artemis.repository.CourseRepository; import de.tum.in.www1.artemis.repository.ResultRepository; @@ -59,37 +56,37 @@ public RatingResource(RatingService ratingService, UserRepository userRepository } /** - * Return Rating referencing resultId or null + * GET /results/:resultId/rating : Return Rating referencing resultId or null * * @param resultId - Id of result that is referenced with the rating - * @return Rating or null + * @return saved star rating value or empty optional */ @GetMapping("/results/{resultId}/rating") @EnforceAtLeastStudent - public ResponseEntity> getRatingForResult(@PathVariable Long resultId) { + public ResponseEntity> getRatingForResult(@PathVariable Long resultId) { // TODO allow for Instructors if (!authCheckService.isAdmin()) { checkIfUserIsOwnerOfSubmissionElseThrow(resultId); } Optional rating = ratingService.findRatingByResultId(resultId); - return ResponseEntity.ok(rating); + return ResponseEntity.ok(rating.map(Rating::getRating)); } /** - * Persist a new Rating + * POST /results/:resultId/rating/:ratingValue : Persist a new Rating * * @param resultId - Id of result that is referenced with the rating that should be persisted * @param ratingValue - Value of the updated rating - * @return inserted Rating + * @return inserted star rating value * @throws URISyntaxException if the Location URI syntax is incorrect */ @PostMapping("/results/{resultId}/rating/{ratingValue}") @EnforceAtLeastStudent - public ResponseEntity createRatingForResult(@PathVariable long resultId, @PathVariable int ratingValue) throws URISyntaxException { + public ResponseEntity createRatingForResult(@PathVariable long resultId, @PathVariable int ratingValue) throws URISyntaxException { checkRating(ratingValue); checkIfUserIsOwnerOfSubmissionElseThrow(resultId); Rating savedRating = ratingService.saveRating(resultId, ratingValue); - return ResponseEntity.created(new URI("/api/results/" + savedRating.getId() + "/rating")).body(savedRating); + return ResponseEntity.created(new URI("/api/results/" + savedRating.getId() + "/rating")).body(savedRating.getRating()); } private void checkRating(int ratingValue) { @@ -99,23 +96,23 @@ private void checkRating(int ratingValue) { } /** - * Update a Rating + * PUT /results/:resultId/rating/:ratingValue : Update a Rating * * @param resultId - Id of result that is referenced with the rating that should be updated * @param ratingValue - Value of the updated rating - * @return updated Rating + * @return updated star rating value */ @PutMapping("/results/{resultId}/rating/{ratingValue}") @EnforceAtLeastStudent - public ResponseEntity updateRatingForResult(@PathVariable long resultId, @PathVariable int ratingValue) { + public ResponseEntity updateRatingForResult(@PathVariable long resultId, @PathVariable int ratingValue) { checkRating(ratingValue); checkIfUserIsOwnerOfSubmissionElseThrow(resultId); Rating savedRating = ratingService.updateRating(resultId, ratingValue); - return ResponseEntity.ok(savedRating); + return ResponseEntity.ok(savedRating.getRating()); } /** - * Get all ratings for the "courseId" Course + * GET /course/:courseId/rating : Get all ratings for the "courseId" Course * * @param courseId - Id of the course that the ratings are fetched for * @return List of Ratings for the course @@ -126,6 +123,11 @@ public ResponseEntity> getRatingForInstructorDashboard(@PathVariabl Course course = courseRepository.findByIdElseThrow(courseId); authCheckService.checkHasAtLeastRoleInCourseElseThrow(Role.INSTRUCTOR, course, null); List responseRatings = ratingService.getAllRatingsByCourse(courseId); + responseRatings.forEach(rating -> { + rating.getResult().setSubmission(null); + rating.getResult().getParticipation().getExercise().setCourse(null); + rating.getResult().getParticipation().getExercise().setExerciseGroup(null); + }); return ResponseEntity.ok(responseRatings); } diff --git a/src/main/webapp/app/exam/manage/exams/exam-exercise-import/exam-exercise-import.component.ts b/src/main/webapp/app/exam/manage/exams/exam-exercise-import/exam-exercise-import.component.ts index be3ba91c83fc..0f212060dccf 100644 --- a/src/main/webapp/app/exam/manage/exams/exam-exercise-import/exam-exercise-import.component.ts +++ b/src/main/webapp/app/exam/manage/exams/exam-exercise-import/exam-exercise-import.component.ts @@ -1,10 +1,9 @@ import { Component, Input, OnInit } from '@angular/core'; import { Exam } from 'app/entities/exam.model'; import { faCheckDouble, faFont } from '@fortawesome/free-solid-svg-icons'; -import { Exercise, ExerciseType } from 'app/entities/exercise.model'; +import { Exercise, ExerciseType, getIcon } from 'app/entities/exercise.model'; import { ExerciseGroup } from 'app/entities/exercise-group.model'; import { SHORT_NAME_PATTERN } from 'app/shared/constants/input.constants'; -import { getIcon } from 'app/entities/exercise.model'; @Component({ selector: 'jhi-exam-exercise-import', diff --git a/src/main/webapp/app/exercises/shared/rating/rating.component.html b/src/main/webapp/app/exercises/shared/rating/rating.component.html index 4631f776caaa..6b55339ca456 100644 --- a/src/main/webapp/app/exercises/shared/rating/rating.component.html +++ b/src/main/webapp/app/exercises/shared/rating/rating.component.html @@ -1,6 +1,6 @@ -
+
- +
diff --git a/src/main/webapp/app/exercises/shared/rating/rating.component.ts b/src/main/webapp/app/exercises/shared/rating/rating.component.ts index 2dde045d5be2..d7c81c0c68eb 100644 --- a/src/main/webapp/app/exercises/shared/rating/rating.component.ts +++ b/src/main/webapp/app/exercises/shared/rating/rating.component.ts @@ -2,9 +2,9 @@ import { Component, Input, OnInit } from '@angular/core'; import { RatingService } from 'app/exercises/shared/rating/rating.service'; import { StarRatingComponent } from 'app/exercises/shared/rating/star-rating/star-rating.component'; import { Result } from 'app/entities/result.model'; -import { Rating } from 'app/entities/rating.model'; import { StudentParticipation } from 'app/entities/participation/student-participation.model'; import { AccountService } from 'app/core/auth/account.service'; +import { Observable } from 'rxjs'; @Component({ selector: 'jhi-rating', @@ -12,7 +12,7 @@ import { AccountService } from 'app/core/auth/account.service'; styleUrls: ['./rating.component.scss'], }) export class RatingComponent implements OnInit { - public rating: Rating; + public rating: number; public disableRating = false; @Input() result?: Result; @@ -22,16 +22,12 @@ export class RatingComponent implements OnInit { ) {} ngOnInit(): void { - if (!this.result || !this.result.id || !this.result.participation || !this.accountService.isOwnerOfParticipation(this.result.participation as StudentParticipation)) { + if (!this.result?.id || !this.result.participation || !this.accountService.isOwnerOfParticipation(this.result.participation as StudentParticipation)) { return; } this.ratingService.getRating(this.result.id).subscribe((rating) => { - if (rating) { - this.rating = rating; - } else { - this.rating = new Rating(this.result, 0); - } + this.rating = rating ?? 0; }); } @@ -41,24 +37,22 @@ export class RatingComponent implements OnInit { */ onRate(event: { oldValue: number; newValue: number; starRating: StarRatingComponent }) { // block rating to prevent double sending of post request - if (this.disableRating || !this.rating.result) { + if (this.disableRating || !this.result) { return; } - // update feedback locally - this.rating.rating = event.newValue; + const oldRating = this.rating; + this.rating = event.newValue; + this.disableRating = true; + let observable: Observable; // set/update feedback on the server - if (this.rating.id) { - this.ratingService.updateRating(this.rating).subscribe((rating) => { - this.rating = rating; - }); + if (oldRating) { + observable = this.ratingService.updateRating(this.rating, this.result.id!); } else { - this.disableRating = true; - this.ratingService.createRating(this.rating).subscribe((rating) => { - this.rating = rating; - this.disableRating = false; - }); + observable = this.ratingService.createRating(this.rating, this.result.id!); } + + observable.subscribe((rating) => (this.rating = rating)).add(() => (this.disableRating = false)); } } diff --git a/src/main/webapp/app/exercises/shared/rating/rating.service.ts b/src/main/webapp/app/exercises/shared/rating/rating.service.ts index 34df5d2d2d16..728e9415a6bd 100644 --- a/src/main/webapp/app/exercises/shared/rating/rating.service.ts +++ b/src/main/webapp/app/exercises/shared/rating/rating.service.ts @@ -13,26 +13,28 @@ export class RatingService { /** * Create the student rating for feedback on the server. - * @param rating - Rating for the result + * @param rating - star rating for the result + * @param resultId - id of the linked result */ - createRating(rating: Rating): Observable { - return this.http.post(this.ratingResourceUrl + `${rating.result!.id!}/rating/${rating.rating}`, null); + createRating(rating: number, resultId: number): Observable { + return this.http.post(this.ratingResourceUrl + `${resultId}/rating/${rating}`, null); } /** * Get rating for "resultId" Result - * @param ratingId - Id of Result who's rating is received + * @param resultId - id of result who's rating is received */ - getRating(ratingId: number): Observable { - return this.http.get(this.ratingResourceUrl + `${ratingId}/rating`); + getRating(resultId: number): Observable { + return this.http.get(this.ratingResourceUrl + `${resultId}/rating`); } /** * Update rating for "resultId" Result - * @param rating - Rating for the result + * @param rating - star rating for the result + * @param resultId - id of the linked result */ - updateRating(rating: Rating): Observable { - return this.http.put(this.ratingResourceUrl + `${rating.result!.id!}/rating/${rating.rating}`, null); + updateRating(rating: number, resultId: number): Observable { + return this.http.put(this.ratingResourceUrl + `${resultId}/rating/${rating}`, null); } /** diff --git a/src/test/java/de/tum/in/www1/artemis/assessment/RatingResourceIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/assessment/RatingResourceIntegrationTest.java index 6c200b0e88ef..955be181c070 100644 --- a/src/test/java/de/tum/in/www1/artemis/assessment/RatingResourceIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/assessment/RatingResourceIntegrationTest.java @@ -4,9 +4,10 @@ import java.util.Optional; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; @@ -18,7 +19,6 @@ import de.tum.in.www1.artemis.exercise.textexercise.TextExerciseUtilService; import de.tum.in.www1.artemis.participation.ParticipationFactory; import de.tum.in.www1.artemis.participation.ParticipationUtilService; -import de.tum.in.www1.artemis.repository.RatingRepository; import de.tum.in.www1.artemis.service.RatingService; import de.tum.in.www1.artemis.user.UserUtilService; @@ -29,9 +29,6 @@ class RatingResourceIntegrationTest extends AbstractSpringIntegrationIndependent @Autowired private RatingService ratingService; - @Autowired - private RatingRepository ratingRepo; - @Autowired private UserUtilService userUtilService; @@ -70,24 +67,21 @@ void initTestCase() { userUtilService.createAndSaveUser(TEST_PREFIX + "instructor2"); } - @AfterEach - void tearDown() { - ratingRepo.deleteAllInBatch(); - } - @Test @WithMockUser(username = TEST_PREFIX + "student1", roles = "USER") void testCreateRating_asUser() throws Exception { - request.post("/api/results/" + result.getId() + "/rating/" + rating.getRating(), null, HttpStatus.CREATED); + int response = request.postWithResponseBody("/api/results/" + result.getId() + "/rating/" + rating.getRating(), null, Integer.class, HttpStatus.CREATED); Rating savedRating = ratingService.findRatingByResultId(result.getId()).orElseThrow(); assertThat(savedRating.getRating()).isEqualTo(2); + assertThat(response).isEqualTo(2); assertThat(savedRating.getResult().getId()).isEqualTo(result.getId()); } - @Test + @ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}") + @ValueSource(ints = { 7, 123, -5, 0 }) @WithMockUser(username = TEST_PREFIX + "student1", roles = "USER") - void testCreateInvalidRating_asUser() throws Exception { - rating.setRating(7); + void testCreateInvalidRating_asUser(int value) throws Exception { + rating.setRating(value); request.post("/api/results/" + result.getId() + "/rating/" + rating.getRating(), null, HttpStatus.BAD_REQUEST); final Optional optionalRating = ratingService.findRatingByResultId(result.getId()); assertThat(optionalRating).isEmpty(); @@ -103,20 +97,21 @@ void testCreateRating_asTutor_FORBIDDEN() throws Exception { @WithMockUser(username = TEST_PREFIX + "student1", roles = "USER") void testGetRating_asUser() throws Exception { Rating savedRating = ratingService.saveRating(result.getId(), rating.getRating()); - request.get("/api/results/" + savedRating.getResult().getId() + "/rating", HttpStatus.OK, Rating.class); + int response = request.get("/api/results/" + savedRating.getResult().getId() + "/rating", HttpStatus.OK, Integer.class); + assertThat(response).isEqualTo(2); } @Test @WithMockUser(username = TEST_PREFIX + "tutor1", roles = "TA") void testGetRating_asUser_FORBIDDEN() throws Exception { Rating savedRating = ratingService.saveRating(result.getId(), rating.getRating()); - request.get("/api/results/" + savedRating.getResult().getId() + "/rating", HttpStatus.FORBIDDEN, Rating.class); + request.get("/api/results/" + savedRating.getResult().getId() + "/rating", HttpStatus.FORBIDDEN, Integer.class); } @Test @WithMockUser(username = TEST_PREFIX + "student1", roles = "USER") void testGetRating_asUser_Null() throws Exception { - Rating savedRating = request.get("/api/results/" + result.getId() + "/rating", HttpStatus.OK, Rating.class); + Integer savedRating = request.get("/api/results/" + result.getId() + "/rating", HttpStatus.OK, Integer.class); assertThat(savedRating).isNull(); } diff --git a/src/test/javascript/spec/component/rating/rating.component.spec.ts b/src/test/javascript/spec/component/rating/rating.component.spec.ts index 381fb680c0ee..517d46f96a9b 100644 --- a/src/test/javascript/spec/component/rating/rating.component.spec.ts +++ b/src/test/javascript/spec/component/rating/rating.component.spec.ts @@ -6,7 +6,6 @@ import { RatingService } from 'app/exercises/shared/rating/rating.service'; import { MockRatingService } from '../../helpers/mocks/service/mock-rating.service'; import { Result } from 'app/entities/result.model'; import { Submission } from 'app/entities/submission.model'; -import { Rating } from 'app/entities/rating.model'; import { of } from 'rxjs'; import { AccountService } from 'app/core/auth/account.service'; import { MockAccountService } from '../../helpers/mocks/service/mock-account.service'; @@ -62,20 +61,19 @@ describe('RatingComponent', () => { it('should create new local rating', () => { ratingComponent.ngOnInit(); - expect(ratingComponent.rating.result?.id).toBe(89); - expect(ratingComponent.rating.rating).toBe(0); + expect(ratingComponent.rating).toBe(0); }); it('should set rating received from server', () => { - jest.spyOn(ratingService, 'getRating').mockReturnValue(of(new Rating({ id: 90 } as Result, 1))); + jest.spyOn(ratingService, 'getRating').mockReturnValue(of(1)); ratingComponent.ngOnInit(); - expect(ratingComponent.rating.result?.id).toBe(90); - expect(ratingComponent.rating.rating).toBe(1); + expect(ratingComponent.rating).toBe(1); }); describe('OnRate', () => { beforeEach(() => { - ratingComponent.rating = new Rating({ id: 89 } as Result, 0); + ratingComponent.rating = 0; + ratingComponent.result = { id: 89 } as Result; jest.spyOn(ratingService, 'createRating'); jest.spyOn(ratingService, 'updateRating'); }); @@ -99,21 +97,19 @@ describe('RatingComponent', () => { }); expect(ratingService.createRating).toHaveBeenCalledOnce(); expect(ratingService.updateRating).not.toHaveBeenCalled(); - expect(ratingComponent.rating.result?.id).toBe(89); - expect(ratingComponent.rating.rating).toBe(2); + expect(ratingComponent.rating).toBe(2); }); it('should update rating', () => { - ratingComponent.rating.id = 89; + ratingComponent.rating = 1; ratingComponent.onRate({ - oldValue: 0, + oldValue: 1, newValue: 2, starRating: new StarRatingComponent(), }); expect(ratingService.updateRating).toHaveBeenCalledOnce(); expect(ratingService.createRating).not.toHaveBeenCalled(); - expect(ratingComponent.rating.result?.id).toBe(89); - expect(ratingComponent.rating.rating).toBe(2); + expect(ratingComponent.rating).toBe(2); }); }); }); diff --git a/src/test/javascript/spec/service/rating.service.spec.ts b/src/test/javascript/spec/service/rating.service.spec.ts index b6732e01969e..9ee310a08e27 100644 --- a/src/test/javascript/spec/service/rating.service.spec.ts +++ b/src/test/javascript/spec/service/rating.service.spec.ts @@ -25,7 +25,7 @@ describe('Rating Service', () => { id: 0, ...elemDefault, }; - service.createRating(new Rating(new Result(), 3)).pipe(take(1)).subscribe(); + service.createRating(3, 0).pipe(take(1)).subscribe(); const req = httpMock.expectOne({ method: 'POST' }); req.flush(returnedFromService); @@ -46,7 +46,7 @@ describe('Rating Service', () => { id: 0, ...elemDefault, }; - service.updateRating(new Rating(new Result(), 3)).pipe(take(1)).subscribe(); + service.updateRating(3, 0).pipe(take(1)).subscribe(); const req = httpMock.expectOne({ method: 'PUT' }); req.flush(returnedFromService); From a0e37589ee69ef62053636ce3d4562c3934c5c5a Mon Sep 17 00:00:00 2001 From: Raphael Stief <118574504+rstief@users.noreply.github.com> Date: Tue, 3 Oct 2023 09:52:44 +0200 Subject: [PATCH 16/39] Grading: Fix course statistics to show correct numbers in tooltips (#7159) --- .../exercise-scores-chart.component.html | 4 +- .../exercise-scores-chart.component.ts | 63 +++++++++++-------- .../exercise-scores-chart.component.spec.ts | 10 +-- 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/src/main/webapp/app/overview/visualizations/exercise-scores-chart/exercise-scores-chart.component.html b/src/main/webapp/app/overview/visualizations/exercise-scores-chart/exercise-scores-chart.component.html index 7390a72a5907..02a0bccffc96 100644 --- a/src/main/webapp/app/overview/visualizations/exercise-scores-chart/exercise-scores-chart.component.html +++ b/src/main/webapp/app/overview/visualizations/exercise-scores-chart/exercise-scores-chart.component.html @@ -46,12 +46,12 @@

{{ 'artemisApp.exercise-scores-chart.title' | artemisTranslate > {{ model.name }}
- {{ model.series }}: {{ Math.max(model.value - 1, 0) }} % + {{ model.series }}: {{ Math.max(model.value, 0) }} %
{{ model[0].name }}
-
{{ entry.series }}: {{ Math.max(entry.value - 1, 0) }}%
+
{{ entry.series }}: {{ Math.max(entry.value, 0) }}%
{{ 'artemisApp.exercise-scores-chart.exerciseType' | artemisTranslate }} {{ 'artemisApp.exercise-scores-chart.' + model[0].exerciseType.toLowerCase() | artemisTranslate }} { const extraInformation = { - exerciseId: exerciseScoreDTO.exerciseId, + exerciseId: exerciseScoreDTO.exerciseId!, exerciseType: exerciseScoreDTO.exerciseType, }; // adapt the y-axis max @@ -132,9 +148,9 @@ export class ExerciseScoresChartComponent implements AfterViewInit, OnChanges { round(exerciseScoreDTO.maxScoreAchieved!), this.maxScale, ); - scoreSeries.push({ name: exerciseScoreDTO.exerciseTitle, value: round(exerciseScoreDTO.scoreOfStudent!) + 1, ...extraInformation }); - averageSeries.push({ name: exerciseScoreDTO.exerciseTitle, value: round(exerciseScoreDTO.averageScoreAchieved!) + 1, ...extraInformation }); - bestScoreSeries.push({ name: exerciseScoreDTO.exerciseTitle, value: round(exerciseScoreDTO.maxScoreAchieved!) + 1, ...extraInformation }); + scoreSeries.push({ name: exerciseScoreDTO.exerciseTitle!, value: round(exerciseScoreDTO.scoreOfStudent!), ...extraInformation }); + averageSeries.push({ name: exerciseScoreDTO.exerciseTitle!, value: round(exerciseScoreDTO.averageScoreAchieved!), ...extraInformation }); + bestScoreSeries.push({ name: exerciseScoreDTO.exerciseTitle!, value: round(exerciseScoreDTO.maxScoreAchieved!), ...extraInformation }); }); const studentScore = { name: this.yourScoreLabel, series: scoreSeries }; @@ -144,7 +160,7 @@ export class ExerciseScoresChartComponent implements AfterViewInit, OnChanges { this.ngxData.push(averageScore); this.ngxData.push(bestScore); this.ngxData = [...this.ngxData]; - this.backUpData = [...this.ngxData]; + this.backUpData = cloneDeep(this.ngxData); } /** @@ -153,34 +169,29 @@ export class ExerciseScoresChartComponent implements AfterViewInit, OnChanges { * If the users click on an entry in the legend, the corresponding line disappears or reappears depending on its previous state * @param data the event sent by the framework */ - onSelect(data: any): void { - // delegate to the corresponding exercise if chart node is clicked - if (data.exerciseId) { - this.navigateToExercise(data.exerciseId); - } else { - // if a legend label is clicked, the corresponding line has to disappear or reappear - const name = JSON.parse(JSON.stringify(data)) as string; + onSelect(data: ChartNode | string): void { + if (typeof data === 'string') { + // if a legend label is clicked, the visibility of the corresponding line is toggled + const name: string = data; // find the affected line in the dataset const index = this.ngxData.findIndex((dataPack: any) => { const dataName = dataPack.name as string; return dataName === name; }); - // check whether the line is currently displayed if (this.ngxColor.domain[index] !== 'rgba(255,255,255,0)') { - const placeHolder = cloneDeep(this.ngxData[index]); - placeHolder.series.forEach((piece: any) => { - piece.value = 0; - }); - // exchange actual line with all-zero line and make color transparent - this.ngxData[index] = placeHolder; + //if the line is displayed, remove its values and make it transparent + this.ngxData[index].series = []; this.ngxColor.domain[index] = 'rgba(255,255,255,0)'; } else { - // if the line is currently hidden, the color and the values are reset + // if the line is currently hidden, the values and the color are reset + this.ngxData[index].series = cloneDeep(this.backUpData[index].series); this.ngxColor.domain[index] = this.colorBase[index]; - this.ngxData[index] = this.backUpData[index]; } // trigger a chart update this.ngxData = [...this.ngxData]; + } else { + // if a chart node is clicked, navigate to the corresponding exercise + this.navigateToExercise(data.exerciseId); } } diff --git a/src/test/javascript/spec/component/overview/course-statistics/visualizations/exercise-scores-chart.component.spec.ts b/src/test/javascript/spec/component/overview/course-statistics/visualizations/exercise-scores-chart.component.spec.ts index 4cac347eb88d..76416a42e4f9 100644 --- a/src/test/javascript/spec/component/overview/course-statistics/visualizations/exercise-scores-chart.component.spec.ts +++ b/src/test/javascript/spec/component/overview/course-statistics/visualizations/exercise-scores-chart.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { TranslateService } from '@ngx-translate/core'; import { AlertService } from 'app/core/util/alert.service'; import { MockDirective, MockModule, MockPipe, MockProvider } from 'ng-mocks'; -import { ExerciseScoresChartComponent } from 'app/overview/visualizations/exercise-scores-chart/exercise-scores-chart.component'; +import { ChartNode, ExerciseScoresChartComponent } from 'app/overview/visualizations/exercise-scores-chart/exercise-scores-chart.component'; import { ArtemisTranslatePipe } from 'app/shared/pipes/artemis-translate.pipe'; import { of } from 'rxjs'; import { ActivatedRoute } from '@angular/router'; @@ -136,11 +136,11 @@ describe('ExerciseScoresChartComponent', () => { component.onSelect(legendClickEvent); expect(component.ngxColor.domain[2]).toBe('rgba(255,255,255,0)'); - expect(component.ngxData[2].series.map((exercise: any) => exercise.value)).toEqual([0, 0]); + expect(component.ngxData[2].series).toEqual([]); component.onSelect(legendClickEvent); expect(component.ngxColor.domain[2]).toBe(GraphColors.GREEN); - expect(component.ngxData[2].series.map((exercise: any) => exercise.value)).toEqual([61, 71]); + expect(component.ngxData[2].series.map((exercise: any) => exercise.value)).toEqual([60, 70]); }); it('should react correct if chart point is clicked', () => { @@ -150,7 +150,7 @@ describe('ExerciseScoresChartComponent', () => { setUpServiceAndStartComponent([firstExercise, secondExercise]); const routingService = TestBed.inject(ArtemisNavigationUtilService); const routingStub = jest.spyOn(routingService, 'routeInNewTab'); - const pointClickEvent = { exerciseId: 2 }; + const pointClickEvent: ChartNode = { exerciseType: '', name: '', series: '', value: 0, exerciseId: 2 }; component.onSelect(pointClickEvent); @@ -177,7 +177,7 @@ describe('ExerciseScoresChartComponent', () => { }); function validateStructureOfDataPoint(dataPoint: any, exerciseScoresDTO: ExerciseScoresDTO, score: number) { - const expectedStructure = { name: exerciseScoresDTO.exerciseTitle, value: score + 1, exerciseId: exerciseScoresDTO.exerciseId, exerciseType: exerciseScoresDTO.exerciseType }; + const expectedStructure = { name: exerciseScoresDTO.exerciseTitle, value: score, exerciseId: exerciseScoresDTO.exerciseId, exerciseType: exerciseScoresDTO.exerciseType }; expect(dataPoint).toEqual(expectedStructure); } From a55031ad2112277b12ae1f73158856627497a083 Mon Sep 17 00:00:00 2001 From: Jonathan Ostertag Date: Tue, 3 Oct 2023 10:27:56 +0200 Subject: [PATCH 17/39] Quiz exercises: Improve user experience when creating modeling drag and drop exercises (#7261) --- .../apollon-diagram-detail.component.ts | 5 ++++- .../quiz-exercise-generator.ts | 4 ++-- .../drag-and-drop-question.component.html | 4 +++- .../drag-and-drop-question.component.scss | 2 +- src/main/webapp/i18n/de/apollonDiagram.json | 3 ++- src/main/webapp/i18n/en/apollonDiagram.json | 3 ++- .../quiz-exercise-generator.spec.ts | 18 ++---------------- 7 files changed, 16 insertions(+), 23 deletions(-) diff --git a/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/apollon-diagram-detail.component.ts b/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/apollon-diagram-detail.component.ts index 9ca9b4796321..6caa91f19a16 100644 --- a/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/apollon-diagram-detail.component.ts +++ b/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/apollon-diagram-detail.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { ApollonEditor, ApollonMode, Locale, UMLModel } from '@ls1intum/apollon'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { JhiLanguageHelper } from 'app/core/language/language.helper'; @@ -52,6 +52,7 @@ export class ApollonDiagramDetailComponent implements OnInit, OnDestroy { private languageHelper: JhiLanguageHelper, private modalService: NgbModal, private route: ActivatedRoute, + private router: Router, ) {} /** @@ -153,6 +154,7 @@ export class ApollonDiagramDetailComponent implements OnInit, OnDestroy { */ async generateExercise() { if (!this.hasInteractive) { + this.alertService.error('artemisApp.apollonDiagram.create.validationError'); return; } @@ -165,6 +167,7 @@ export class ApollonDiagramDetailComponent implements OnInit, OnDestroy { const result = await modalRef.result; if (result) { this.alertService.success('artemisApp.apollonDiagram.create.success', { title: result.title }); + this.router.navigate(['course-management', this.courseId, 'quiz-exercises', result.id, 'edit']); } } catch (error) { this.alertService.error('artemisApp.apollonDiagram.create.error'); diff --git a/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/exercise-generation/quiz-exercise-generator.ts b/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/exercise-generation/quiz-exercise-generator.ts index 10128f71a4d1..0222ed96cf77 100644 --- a/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/exercise-generation/quiz-exercise-generator.ts +++ b/src/main/webapp/app/exercises/quiz/manage/apollon-diagrams/exercise-generation/quiz-exercise-generator.ts @@ -68,9 +68,9 @@ export async function generateDragAndDropQuizExercise( const quizExercise = createDragAndDropQuizExercise(course, title, dragAndDropQuestion); // Save the quiz exercise - await lastValueFrom(quizExerciseService.create(quizExercise)); + const creationResponse = await lastValueFrom(quizExerciseService.create(quizExercise)); - return quizExercise; + return creationResponse.body ?? quizExercise; } /** diff --git a/src/main/webapp/app/exercises/quiz/shared/questions/drag-and-drop-question/drag-and-drop-question.component.html b/src/main/webapp/app/exercises/quiz/shared/questions/drag-and-drop-question/drag-and-drop-question.component.html index 08f652e0df4a..6f8f8d96dfb7 100644 --- a/src/main/webapp/app/exercises/quiz/shared/questions/drag-and-drop-question/drag-and-drop-question.component.html +++ b/src/main/webapp/app/exercises/quiz/shared/questions/drag-and-drop-question/drag-and-drop-question.component.html @@ -96,6 +96,7 @@

(onDragOver)="preventDefault($event)" (onDragLeave)="preventDefault($event)" cdkDropList + [cdkDropListAutoScrollStep]="60" >

-
+
@@ -244,6 +245,7 @@

(onDragOver)="preventDefault($event)" (onDragLeave)="preventDefault($event)" cdkDropList + [cdkDropListAutoScrollStep]="60" > { return { width: 0, height: 0 }; }; -const question1 = { id: 1, type: QuizQuestionType.DRAG_AND_DROP, points: 1 } as QuizQuestion; -const question2 = { id: 2, type: QuizQuestionType.MULTIPLE_CHOICE, points: 2, answerOptions: [], invalid: false, exportQuiz: false, randomizeOrder: true } as QuizQuestion; -const question3 = { id: 3, type: QuizQuestionType.SHORT_ANSWER, points: 3 } as QuizQuestion; -const now = dayjs(); - -const quizExercise = { - id: 1, - quizQuestions: [question1, question2, question3], - releaseDate: dayjs(now).subtract(2, 'minutes'), - dueDate: dayjs(now).add(2, 'minutes'), - quizStarted: true, -} as QuizExercise; - describe('QuizExercise Generator', () => { let quizExerciseService: QuizExerciseService; let fileUploaderService: FileUploaderService; @@ -80,7 +66,7 @@ describe('QuizExercise Generator', () => { configureServices(); const examplePath = '/path/to/file'; jest.spyOn(fileUploaderService, 'uploadFile').mockReturnValue(Promise.resolve({ path: examplePath })); - jest.spyOn(quizExerciseService, 'create').mockReturnValue(of({ body: quizExercise } as HttpResponse)); + jest.spyOn(quizExerciseService, 'create').mockImplementation((generatedExercise) => of({ body: generatedExercise } as HttpResponse)); jest.spyOn(svgRenderer, 'convertRenderedSVGToPNG').mockReturnValue(new Blob()); // @ts-ignore const classDiagram: UMLModel = testClassDiagram as UMLModel; From 027ab663c4725f3e13849df7faab67167f70e341 Mon Sep 17 00:00:00 2001 From: Florian Glombik <63976129+florian-glombik@users.noreply.github.com> Date: Tue, 3 Oct 2023 10:33:28 +0200 Subject: [PATCH 18/39] Development: Update bamboo build agent version (#7274) --- docker/atlassian.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/atlassian.yml b/docker/atlassian.yml index ae663d5bc81a..1b3db46a182f 100644 --- a/docker/atlassian.yml +++ b/docker/atlassian.yml @@ -69,7 +69,7 @@ services: hostname: bamboo-build-agent extra_hosts: - "host.docker.internal:host-gateway" - image: ghcr.io/ls1intum/artemis-bamboo-build-agent:9.2.1 + image: ghcr.io/ls1intum/artemis-bamboo-build-agent:9.3.3 pull_policy: if_not_present volumes: # The following path needs to be the same absolute path on the host because of the docker socket: From 43ee4a5b60577a63c1dd8a2a843fea2434ee9589 Mon Sep 17 00:00:00 2001 From: Benedikt Fein Date: Tue, 3 Oct 2023 10:35:03 +0200 Subject: [PATCH 19/39] Development: Add additional tags to active user metrics (#7240) --- .../in/www1/artemis/config/MetricsBean.java | 74 ++++++++++++------- .../repository/StudentExamRepository.java | 10 ++- .../www1/artemis/config/MetricsBeanTest.java | 24 +++--- 3 files changed, 73 insertions(+), 35 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/config/MetricsBean.java b/src/main/java/de/tum/in/www1/artemis/config/MetricsBean.java index 47e02b7a6233..31a23f52c6e6 100644 --- a/src/main/java/de/tum/in/www1/artemis/config/MetricsBean.java +++ b/src/main/java/de/tum/in/www1/artemis/config/MetricsBean.java @@ -41,10 +41,7 @@ import de.tum.in.www1.artemis.repository.StudentExamRepository; import de.tum.in.www1.artemis.repository.UserRepository; import de.tum.in.www1.artemis.security.SecurityUtils; -import io.micrometer.core.instrument.Gauge; -import io.micrometer.core.instrument.MeterRegistry; -import io.micrometer.core.instrument.MultiGauge; -import io.micrometer.core.instrument.Tags; +import io.micrometer.core.instrument.*; @Component public class MetricsBean { @@ -57,6 +54,8 @@ public class MetricsBean { private static final String ARTEMIS_HEALTH_TAG = "healthindicator"; + private static final String NO_SEMESTER_TAG = "No semester"; + private static final int LOGGING_DELAY_SECONDS = 10; /** @@ -331,7 +330,7 @@ interface NowEndDateActiveUserNamesMetricsEntryFunction { * - the current date * - an end date (which is the current date + one of the values of MINUTE_RANGES_LOOKAHEAD), and * - a list of active users (that is, users that created a submission within the last 14 days). - * + *

* The implementing method may decide to ignore certain arguments. * The method returns a list of ExerciseTypeMetricsEntries, that each correspond to an exercise type and a value. * @@ -350,7 +349,7 @@ interface NowEndDateActiveUserNamesIntegerFunction { * This interface is used to calculate and expose metrics that are based on * - the current date, and * - an end date (which is the current date + one of the values of MINUTE_RANGES_LOOKAHEAD). - * + *

* The implementing method may decide to ignore certain arguments. * The method returns an integer, representing the corresponding value. * @@ -471,32 +470,57 @@ public void updatePublicArtemisMetrics() { } private void updateActiveUserMultiGauge(ZonedDateTime now) { - var activeUserPeriodsInDays = new Integer[] { 1, 7, 14, 30 }; - activeUserMultiGauge.register(Stream.of(activeUserPeriodsInDays) - .map(periodInDays -> MultiGauge.Row.of(Tags.of("period", periodInDays.toString()), statisticsRepository.countActiveUsers(now.minusDays(periodInDays), now))) - // A mutable list is required here because otherwise the values can not be updated correctly - .collect(Collectors.toCollection(ArrayList::new)), true); + final Integer[] activeUserPeriodsInDays = new Integer[] { 1, 7, 14, 30 }; + + // A mutable list is required here because otherwise the values can not be updated correctly + final List> gauges = Stream.of(activeUserPeriodsInDays).map(periodInDays -> { + final Tags tags = Tags.of("period", periodInDays.toString()); + final long activeUsers = statisticsRepository.countActiveUsers(now.minusDays(periodInDays), now); + return MultiGauge.Row.of(tags, activeUsers); + }).collect(Collectors.toCollection(ArrayList::new)); + + activeUserMultiGauge.register(gauges, true); } private void updateStudentsCourseMultiGauge(List activeCourses) { - studentsCourseGauge.register( - activeCourses.stream().map(course -> MultiGauge.Row.of(Tags.of("courseName", course.getTitle(), "semester", course.getSemester()), course.getNumberOfStudents())) - // A mutable list is required here because otherwise the values can not be updated correctly - .collect(Collectors.toCollection(ArrayList::new)), - true); + // A mutable list is required here because otherwise the values can not be updated correctly + final List> gauges = activeCourses.stream().map(course -> { + final Tags tags = Tags.of("courseId", Long.toString(course.getId()), "courseName", course.getTitle(), "semester", course.getSemester()); + final long studentCount = course.getNumberOfStudents(); + return MultiGauge.Row.of(tags, studentCount); + }).collect(Collectors.toCollection(ArrayList::new)); + + studentsCourseGauge.register(gauges, true); } private void updateStudentsExamMultiGauge(List examsInActiveCourses, List courses) { - studentsExamGauge.register(examsInActiveCourses.stream() - .map(exam -> MultiGauge.Row.of(Tags.of("examName", exam.getTitle(), "semester", getExamSemester(courses, exam)), - studentExamRepository.findByExamId(exam.getId()).size())) - // A mutable list is required here because otherwise the values can not be updated correctly - .collect(Collectors.toCollection(ArrayList::new)), true); + // A mutable list is required here because otherwise the values can not be updated correctly + final List> gauges = examsInActiveCourses.stream().map(exam -> { + final Tags tags = getExamMetricTags(courses, exam); + final long studentCount = studentExamRepository.countByExamId(exam.getId()); + return MultiGauge.Row.of(tags, studentCount); + }).collect(Collectors.toCollection(ArrayList::new)); + + studentsExamGauge.register(gauges, true); + } + + private Tags getExamMetricTags(final List courses, final Exam exam) { + final Optional examCourse = findExamCourse(courses, exam); + + final List tags = new ArrayList<>(); + examCourse.ifPresent(course -> { + tags.add(Tag.of("courseId", Long.toString(course.getId()))); + tags.add(Tag.of("courseName", course.getTitle())); + }); + tags.add(Tag.of("examId", Long.toString(exam.getId()))); + tags.add(Tag.of("examName", exam.getTitle())); + tags.add(Tag.of("semester", examCourse.map(Course::getSemester).orElse(NO_SEMESTER_TAG))); + + return Tags.of(tags); } - private String getExamSemester(final List courses, final Exam exam) { - // The exam.getCourse() is not populated (the semester property is not set) -> Use course from the courses list, which contains the semester - return courses.stream().filter(course -> Objects.equals(course.getId(), exam.getCourse().getId())).findAny().map(Course::getSemester).orElse("No semester"); + private Optional findExamCourse(final List courses, final Exam exam) { + return courses.stream().filter(course -> Objects.equals(course.getId(), exam.getCourse().getId())).findAny(); } private void updateActiveExerciseMultiGauge() { @@ -530,7 +554,7 @@ private void extractExerciseTypeMetricsAndAddToMetricsResults(List courses) { courses.forEach(course -> { if (course.getSemester() == null) { - course.setSemester("No semester"); + course.setSemester(NO_SEMESTER_TAG); } if (course.getTitle() == null) { if (course.getShortName() != null) { diff --git a/src/main/java/de/tum/in/www1/artemis/repository/StudentExamRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/StudentExamRepository.java index b880005a94d2..8f91a855d803 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/StudentExamRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/StudentExamRepository.java @@ -71,10 +71,18 @@ public interface StudentExamRepository extends JpaRepository SELECT se FROM StudentExam se WHERE se.exam.id = :examId - AND se.testRun = FALSE + AND se.testRun = FALSE """) Set findByExamId(@Param("examId") long examId); + @Query(""" + SELECT COUNT(DISTINCT se) + FROM StudentExam se + WHERE se.exam.id = :examId + AND se.testRun = FALSE + """) + long countByExamId(@Param("examId") long examId); + @Query(""" SELECT se FROM StudentExam se diff --git a/src/test/java/de/tum/in/www1/artemis/config/MetricsBeanTest.java b/src/test/java/de/tum/in/www1/artemis/config/MetricsBeanTest.java index 452203bea36c..f4074f1ad64b 100644 --- a/src/test/java/de/tum/in/www1/artemis/config/MetricsBeanTest.java +++ b/src/test/java/de/tum/in/www1/artemis/config/MetricsBeanTest.java @@ -225,11 +225,11 @@ void testPublicMetricsExams() { metricsBean.updatePublicArtemisMetrics(); - var totalNumberOfExams = examRepository.count(); - var numberOfActiveExams = examRepository.countAllActiveExams(ZonedDateTime.now()); + long totalNumberOfExams = examRepository.count(); + long numberOfActiveExams = examRepository.countAllActiveExams(ZonedDateTime.now()); // Assert that there is at least one non-active exam in the database so that the values returned from the metrics are different - assertThat(numberOfActiveExams.intValue()).isNotEqualTo(totalNumberOfExams); + assertThat(numberOfActiveExams).isNotEqualTo(totalNumberOfExams); assertMetricEquals(totalNumberOfExams, "artemis.statistics.public.exams"); assertMetricEquals(numberOfActiveExams, "artemis.statistics.public.active_exams"); @@ -240,9 +240,10 @@ void testPublicMetricsCourseAndExamStudents() { var users = userUtilService.addUsers(TEST_PREFIX, 3, 0, 0, 0); var course1 = courseUtilService.createCourse(); + course1.setTitle("Course 1"); course1.setSemester(null); course1.setStudentGroupName(TEST_PREFIX + "course1Students"); - courseRepository.save(course1); + course1 = courseRepository.save(course1); var exam1 = examUtilService.addExamWithModellingAndTextAndFileUploadAndQuizAndEmptyGroup(course1); exam1.setStartDate(ZonedDateTime.now().minusMinutes(1)); exam1.setTitle("exam" + UUID.randomUUID()); @@ -253,7 +254,7 @@ void testPublicMetricsCourseAndExamStudents() { var course2 = courseUtilService.createCourse(); course2.setSemester("WS 2023/24"); course2.setStudentGroupName(TEST_PREFIX + "course2Students"); - courseRepository.save(course2); + course2 = courseRepository.save(course2); var exam2 = examUtilService.addExamWithModellingAndTextAndFileUploadAndQuizAndEmptyGroup(course2); exam2.setTitle("exam" + UUID.randomUUID()); exam2.setStartDate(ZonedDateTime.now().minusMinutes(1)); @@ -269,11 +270,16 @@ void testPublicMetricsCourseAndExamStudents() { metricsBean.updatePublicArtemisMetrics(); - assertMetricEquals(3, "artemis.statistics.public.course_students", "courseName", course1.getTitle(), "semester", "No semester"); - assertMetricEquals(1, "artemis.statistics.public.course_students", "courseName", course2.getTitle(), "semester", "WS 2023/24"); + String course1Id = Long.toString(course1.getId()); + String course2Id = Long.toString(course2.getId()); + + assertMetricEquals(3, "artemis.statistics.public.course_students", "courseId", course1Id, "courseName", course1.getTitle(), "semester", "No semester"); + assertMetricEquals(1, "artemis.statistics.public.course_students", "courseId", course2Id, "courseName", course2.getTitle(), "semester", "WS 2023/24"); - assertMetricEquals(2, "artemis.statistics.public.exam_students", "examName", exam1.getTitle(), "semester", "No semester"); - assertMetricEquals(1, "artemis.statistics.public.exam_students", "examName", exam2.getTitle(), "semester", "WS 2023/24"); + assertMetricEquals(2, "artemis.statistics.public.exam_students", "courseId", course1Id, "courseName", course1.getTitle(), "examId", Long.toString(exam1.getId()), + "examName", exam1.getTitle(), "semester", "No semester"); + assertMetricEquals(1, "artemis.statistics.public.exam_students", "courseId", course2Id, "examId", Long.toString(exam2.getId()), "examName", exam2.getTitle(), "semester", + "WS 2023/24"); } @Test From 6346cfc4e9537256cf1b94b4a0ae241626d1fe46 Mon Sep 17 00:00:00 2001 From: Erik <53352472+theblobinthesky@users.noreply.github.com> Date: Tue, 3 Oct 2023 12:00:45 +0200 Subject: [PATCH 20/39] File upload exercises: Fix an issue with old file submissions not being deleted (#7276) --- .../de/tum/in/www1/artemis/domain/FileUploadSubmission.java | 4 +++- .../de/tum/in/www1/artemis/service/FilePathService.java | 6 +++--- .../java/de/tum/in/www1/artemis/service/FileService.java | 4 ++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/domain/FileUploadSubmission.java b/src/main/java/de/tum/in/www1/artemis/domain/FileUploadSubmission.java index 29bafff4bcb4..66f24f5ec12e 100644 --- a/src/main/java/de/tum/in/www1/artemis/domain/FileUploadSubmission.java +++ b/src/main/java/de/tum/in/www1/artemis/domain/FileUploadSubmission.java @@ -1,5 +1,6 @@ package de.tum.in.www1.artemis.domain; +import java.net.URI; import java.nio.file.Path; import javax.persistence.*; @@ -34,7 +35,8 @@ public String getSubmissionExerciseType() { @PostRemove public void onDelete() { if (filePath != null) { - fileService.schedulePathForDeletion(Path.of(filePath), 0); + Path actualPath = FilePathService.actualPathForPublicPath(URI.create(filePath)); + fileService.schedulePathForDeletion(actualPath, 0); } } diff --git a/src/main/java/de/tum/in/www1/artemis/service/FilePathService.java b/src/main/java/de/tum/in/www1/artemis/service/FilePathService.java index 8281338bb1ee..191c8f9037ba 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/FilePathService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/FilePathService.java @@ -90,7 +90,7 @@ public Path actualPathForPublicPathOrThrow(URI publicPath) { * @param publicPath the public file url to convert * @return the actual path to that file in the local filesystem */ - public Path actualPathForPublicPath(URI publicPath) { + public static Path actualPathForPublicPath(URI publicPath) { // first extract the filename from the url String uriPath = publicPath.getPath(); Path path = Path.of(uriPath); @@ -129,7 +129,7 @@ public Path actualPathForPublicPath(URI publicPath) { return null; } - private Path actualPathForPublicAttachmentUnitFilePath(URI publicPath, String filename) { + private static Path actualPathForPublicAttachmentUnitFilePath(URI publicPath, String filename) { Path path = Path.of(publicPath.getPath()); if (!publicPath.toString().contains("/slide")) { String attachmentUnitId = path.getName(4).toString(); @@ -148,7 +148,7 @@ private Path actualPathForPublicAttachmentUnitFilePath(URI publicPath, String fi } } - private Path actualPathForPublicFileUploadExercisesFilePath(URI publicPath, String filename) { + private static Path actualPathForPublicFileUploadExercisesFilePath(URI publicPath, String filename) { Path path = Path.of(publicPath.getPath()); try { String expectedExerciseId = path.getName(3).toString(); diff --git a/src/main/java/de/tum/in/www1/artemis/service/FileService.java b/src/main/java/de/tum/in/www1/artemis/service/FileService.java index 2226bf6962eb..814b47092fd6 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/FileService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/FileService.java @@ -791,6 +791,10 @@ public void schedulePathForDeletion(@Nullable Path path, long delayInMinutes) { log.info("Delete file {}", path); Files.delete(path); } + else { + log.error("Deleting the file {} did not work because it does not exist", path); + } + futures.remove(path); } catch (IOException e) { From 61ba7b54c7f7f2f8e78b96357c1a5b1c7754c95f Mon Sep 17 00:00:00 2001 From: Timor Morrien Date: Tue, 3 Oct 2023 14:10:09 +0200 Subject: [PATCH 21/39] Iris: Preserve settings on course and exercise update (#7265) --- .../artemis/repository/CourseRepository.java | 8 +++---- .../iris/IrisSettingsRepository.java | 14 ++++++++++- .../service/iris/IrisSettingsService.java | 10 ++++++++ .../ProgrammingExerciseService.java | 7 +++++- .../www1/artemis/web/rest/CourseResource.java | 3 ++- .../artemis/course/CourseTestService.java | 24 +++++++++++++++++-- ...rseBitbucketBambooJiraIntegrationTest.java | 6 +++++ .../CourseGitlabJenkinsIntegrationTest.java | 6 +++++ ...ialGroupsConfigurationIntegrationTest.java | 2 +- 9 files changed, 70 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/repository/CourseRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/CourseRepository.java index c7b97619da85..0c1e932ea3a4 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/CourseRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/CourseRepository.java @@ -143,8 +143,8 @@ SELECT CASE WHEN (count(c) > 0) THEN true ELSE false END @EntityGraph(type = LOAD, attributePaths = { "lectures", "lectures.lectureUnits" }) Optional findWithEagerLecturesAndLectureUnitsById(long courseId); - @EntityGraph(type = LOAD, attributePaths = { "organizations", "competencies", "prerequisites", "tutorialGroupsConfiguration", "onlineCourseConfiguration" }) - Optional findWithEagerOrganizationsAndCompetenciesAndOnlineConfigurationById(long courseId); + @EntityGraph(type = LOAD, attributePaths = { "organizations", "competencies", "prerequisites", "tutorialGroupsConfiguration", "onlineCourseConfiguration", "irisSettings" }) + Optional findForUpdateById(long courseId); @EntityGraph(type = LOAD, attributePaths = { "exercises", "lectures", "lectures.lectureUnits", "competencies", "prerequisites" }) Optional findWithEagerExercisesAndLecturesAndLectureUnitsAndCompetenciesById(long courseId); @@ -381,8 +381,8 @@ default Course findByIdWithLecturesAndLectureUnitsElseThrow(long courseId) { } @NotNull - default Course findByIdWithOrganizationsAndCompetenciesAndOnlineConfigurationElseThrow(long courseId) { - return findWithEagerOrganizationsAndCompetenciesAndOnlineConfigurationById(courseId).orElseThrow(() -> new EntityNotFoundException("Course", courseId)); + default Course findByIdForUpdateElseThrow(long courseId) { + return findForUpdateById(courseId).orElseThrow(() -> new EntityNotFoundException("Course", courseId)); } @NotNull diff --git a/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisSettingsRepository.java b/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisSettingsRepository.java index 99dccb456c54..c8397107e52e 100644 --- a/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisSettingsRepository.java +++ b/src/main/java/de/tum/in/www1/artemis/repository/iris/IrisSettingsRepository.java @@ -1,9 +1,11 @@ package de.tum.in.www1.artemis.repository.iris; +import java.util.Optional; import java.util.Set; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import de.tum.in.www1.artemis.domain.iris.settings.IrisSettings; @@ -15,8 +17,18 @@ public interface IrisSettingsRepository extends JpaRepository findAllGlobalSettings(); + + @Query(""" + SELECT irisSettings + FROM IrisSettings irisSettings + LEFT JOIN FETCH irisSettings.irisChatSettings ics + LEFT JOIN FETCH irisSettings.irisHestiaSettings ihs + LEFT JOIN ProgrammingExercise pe ON pe.irisSettings.id = irisSettings.id + WHERE pe.id = :programmingExerciseId + """) + Optional findByProgrammingExerciseId(@Param("programmingExerciseId") Long programmingExerciseId); } diff --git a/src/main/java/de/tum/in/www1/artemis/service/iris/IrisSettingsService.java b/src/main/java/de/tum/in/www1/artemis/service/iris/IrisSettingsService.java index 76a64e6d68be..02f75f29f7e6 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/iris/IrisSettingsService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/iris/IrisSettingsService.java @@ -375,6 +375,16 @@ public IrisSettings saveIrisSettings(ProgrammingExercise exercise, IrisSettings } } + /** + * Update the Iris settings for a programming exercise. + * + * @param programmingExerciseBeforeUpdate the programming exercise before the update + * @param updatedProgrammingExercise the programming exercise after the update + */ + public void updateIrisSettings(ProgrammingExercise programmingExerciseBeforeUpdate, ProgrammingExercise updatedProgrammingExercise) { + irisSettingsRepository.findByProgrammingExerciseId(programmingExerciseBeforeUpdate.getId()).ifPresent(updatedProgrammingExercise::setIrisSettings); + } + private IrisSubSettings copyIrisSubSettings(IrisSubSettings target, IrisSubSettings source) { if (target == null || source == null) { return source; diff --git a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseService.java b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseService.java index aa524f8fbbcb..272df0890984 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseService.java @@ -44,6 +44,7 @@ import de.tum.in.www1.artemis.service.connectors.ci.ContinuousIntegrationTriggerService; import de.tum.in.www1.artemis.service.connectors.vcs.VersionControlService; import de.tum.in.www1.artemis.service.hestia.ProgrammingExerciseTaskService; +import de.tum.in.www1.artemis.service.iris.IrisSettingsService; import de.tum.in.www1.artemis.service.messaging.InstanceMessageSendService; import de.tum.in.www1.artemis.service.metis.conversation.ChannelService; import de.tum.in.www1.artemis.service.notifications.GroupNotificationScheduleService; @@ -130,6 +131,8 @@ public class ProgrammingExerciseService { private final ProgrammingSubmissionService programmingSubmissionService; + private final IrisSettingsService irisSettingsService; + public ProgrammingExerciseService(ProgrammingExerciseRepository programmingExerciseRepository, GitService gitService, Optional versionControlService, Optional continuousIntegrationService, Optional continuousIntegrationTriggerService, TemplateProgrammingExerciseParticipationRepository templateProgrammingExerciseParticipationRepository, @@ -141,7 +144,7 @@ public ProgrammingExerciseService(ProgrammingExerciseRepository programmingExerc ProgrammingExerciseGitDiffReportRepository programmingExerciseGitDiffReportRepository, ExerciseSpecificationService exerciseSpecificationService, ProgrammingExerciseRepositoryService programmingExerciseRepositoryService, AuxiliaryRepositoryService auxiliaryRepositoryService, SubmissionPolicyService submissionPolicyService, Optional programmingLanguageFeatureService, ChannelService channelService, - ProgrammingSubmissionService programmingSubmissionService) { + ProgrammingSubmissionService programmingSubmissionService, IrisSettingsService irisSettingsService) { this.programmingExerciseRepository = programmingExerciseRepository; this.gitService = gitService; this.versionControlService = versionControlService; @@ -168,6 +171,7 @@ public ProgrammingExerciseService(ProgrammingExerciseRepository programmingExerc this.programmingLanguageFeatureService = programmingLanguageFeatureService; this.channelService = channelService; this.programmingSubmissionService = programmingSubmissionService; + this.irisSettingsService = irisSettingsService; } /** @@ -438,6 +442,7 @@ public ProgrammingExercise updateProgrammingExercise(ProgrammingExercise program connectAuxiliaryRepositoriesToExercise(updatedProgrammingExercise); channelService.updateExerciseChannel(programmingExerciseBeforeUpdate, updatedProgrammingExercise); + irisSettingsService.updateIrisSettings(programmingExerciseBeforeUpdate, updatedProgrammingExercise); ProgrammingExercise savedProgrammingExercise = programmingExerciseRepository.save(updatedProgrammingExercise); diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/CourseResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/CourseResource.java index dd503338932c..ed0bea1c69df 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/CourseResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/CourseResource.java @@ -151,7 +151,7 @@ public ResponseEntity updateCourse(@PathVariable Long courseId, @Request log.debug("REST request to update Course : {}", courseUpdate); User user = userRepository.getUserWithGroupsAndAuthorities(); - var existingCourse = courseRepository.findByIdWithOrganizationsAndCompetenciesAndOnlineConfigurationElseThrow(courseUpdate.getId()); + var existingCourse = courseRepository.findByIdForUpdateElseThrow(courseUpdate.getId()); if (existingCourse.getTimeZone() != null && courseUpdate.getTimeZone() == null) { throw new IllegalArgumentException("You can not remove the time zone of a course"); @@ -208,6 +208,7 @@ public ResponseEntity updateCourse(@PathVariable Long courseId, @Request courseUpdate.setPrerequisites(existingCourse.getPrerequisites()); courseUpdate.setTutorialGroupsConfiguration(existingCourse.getTutorialGroupsConfiguration()); courseUpdate.setOnlineCourseConfiguration(existingCourse.getOnlineCourseConfiguration()); + courseUpdate.setIrisSettings(existingCourse.getIrisSettings()); courseUpdate.validateEnrollmentConfirmationMessage(); courseUpdate.validateComplaintsAndRequestMoreFeedbackConfig(); diff --git a/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java b/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java index 66515fcfd926..c77b028240df 100644 --- a/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java +++ b/src/test/java/de/tum/in/www1/artemis/course/CourseTestService.java @@ -82,6 +82,7 @@ import de.tum.in.www1.artemis.service.dto.UserPublicInfoDTO; import de.tum.in.www1.artemis.service.export.CourseExamExportService; import de.tum.in.www1.artemis.service.export.DataExportUtil; +import de.tum.in.www1.artemis.service.iris.IrisSettingsService; import de.tum.in.www1.artemis.service.notifications.GroupNotificationService; import de.tum.in.www1.artemis.service.scheduled.ParticipantScoreScheduleService; import de.tum.in.www1.artemis.team.TeamUtilService; @@ -223,6 +224,9 @@ public class CourseTestService { @Autowired private ParticipantScoreScheduleService participantScoreScheduleService; + @Autowired + private IrisSettingsService irisSettingsService; + @Autowired private QuizExerciseUtilService quizExerciseUtilService; @@ -610,12 +614,29 @@ public void testEditCourseShouldPreserveAssociations() throws Exception { request.getMvc().perform(buildUpdateCourse(course.getId(), course)).andExpect(status().isOk()); - Course updatedCourse = courseRepo.findByIdWithOrganizationsAndCompetenciesAndOnlineConfigurationElseThrow(course.getId()); + Course updatedCourse = courseRepo.findByIdForUpdateElseThrow(course.getId()); assertThat(updatedCourse.getOrganizations()).containsExactlyElementsOf(organizations); assertThat(updatedCourse.getCompetencies()).containsExactlyElementsOf(competencies); assertThat(updatedCourse.getPrerequisites()).containsExactlyElementsOf(prerequisites); } + // Test + public void testEditCourseShouldPreserveIrisSettings() throws Exception { + Course course = courseUtilService.createCourseWithOrganizations(); + course = courseRepo.save(course); + + var courseWithSettings = courseRepo.findByIdElseThrow(course.getId()); + courseWithSettings = irisSettingsService.addDefaultIrisSettingsTo(courseWithSettings); + courseWithSettings.getIrisSettings().getIrisChatSettings().setEnabled(true); + courseWithSettings.getIrisSettings().getIrisChatSettings().setPreferredModel(null); + courseRepo.save(courseWithSettings); + + request.getMvc().perform(buildUpdateCourse(course.getId(), course)).andExpect(status().isOk()); + + Course updatedCourse = courseRepo.findByIdForUpdateElseThrow(course.getId()); + assertThat(updatedCourse.getIrisSettings()).isEqualTo(courseWithSettings.getIrisSettings()); + } + // Test public void testUpdateCourseGroups() throws Exception { Course course = programmingExerciseUtilService.addCourseWithOneProgrammingExercise(); @@ -3228,5 +3249,4 @@ public void testUpdateCourseEnableLearningPaths() throws Exception { final var learningPath = learningPathRepository.findByCourseIdAndUserId(course.getId(), student.getId()); assertThat(learningPath).as("enable learning paths triggers generation").isPresent(); } - } diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java index a39b981afe99..4f1e91219d82 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseBitbucketBambooJiraIntegrationTest.java @@ -172,6 +172,12 @@ void testEditCourseShouldPreserveAssociations() throws Exception { courseTestService.testEditCourseShouldPreserveAssociations(); } + @Test + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + void testEditCourseShouldPreserveIrisSettings() throws Exception { + courseTestService.testEditCourseShouldPreserveIrisSettings(); + } + @Test @WithMockUser(username = "admin", roles = "ADMIN") void testUpdateCourseGroups() throws Exception { diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseGitlabJenkinsIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseGitlabJenkinsIntegrationTest.java index a0adf0e6c17d..500f69e9770b 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseGitlabJenkinsIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/CourseGitlabJenkinsIntegrationTest.java @@ -171,6 +171,12 @@ void testEditCourseShouldPreserveAssociations() throws Exception { courseTestService.testEditCourseShouldPreserveAssociations(); } + @Test + @WithMockUser(username = TEST_PREFIX + "instructor1", roles = "INSTRUCTOR") + void testEditCourseShouldPreserveIrisSettings() throws Exception { + courseTestService.testEditCourseShouldPreserveIrisSettings(); + } + @Test @WithMockUser(username = "admin", roles = "ADMIN") void testUpdateCourseGroups() throws Exception { diff --git a/src/test/java/de/tum/in/www1/artemis/tutorialgroups/TutorialGroupsConfigurationIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/tutorialgroups/TutorialGroupsConfigurationIntegrationTest.java index 3a73c8fa67aa..24b88b89931d 100644 --- a/src/test/java/de/tum/in/www1/artemis/tutorialgroups/TutorialGroupsConfigurationIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/tutorialgroups/TutorialGroupsConfigurationIntegrationTest.java @@ -242,7 +242,7 @@ void updateCourse_timeZoneChange_deleteTutorialGroupFreePeriodsAndIndividualSess // when // change time zone to berlin and change end period - var course = courseRepository.findByIdWithOrganizationsAndCompetenciesAndOnlineConfigurationElseThrow(courseId); + var course = courseRepository.findByIdForUpdateElseThrow(courseId); course.setTimeZone("Europe/Berlin"); course.setTutorialGroupsConfiguration(null); From ed2810e6570b20e24fe65c433489bbdbf41db127 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Tue, 3 Oct 2023 15:23:34 +0200 Subject: [PATCH 22/39] Development: Bump version to 6.5.4 --- build.gradle | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 7844e0de376f..a86b1492c865 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ plugins { } group = "de.tum.in.www1.artemis" -version = "6.5.3" +version = "6.5.4" description = "Interactive Learning with Individual Feedback" sourceCompatibility=17 diff --git a/package-lock.json b/package-lock.json index 8564c97ca0f5..f723ed126420 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "artemis", - "version": "6.5.3", + "version": "6.5.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "artemis", - "version": "6.5.3", + "version": "6.5.4", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 486e88a2608a..9eabfb1ddb34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "artemis", - "version": "6.5.3", + "version": "6.5.4", "description": "Interactive Learning with Individual Feedback", "private": true, "license": "MIT", From de70473fac27a6a99efd5a0a73354ad6d3a4ca40 Mon Sep 17 00:00:00 2001 From: valentin-boehm <129070641+valentin-boehm@users.noreply.github.com> Date: Tue, 3 Oct 2023 15:54:23 +0200 Subject: [PATCH 23/39] Exam mode: Show number of accepted complaints in assessment dashboard (#7144) --- src/main/webapp/app/core/auth/account.service.ts | 7 ++++--- .../tutor-leaderboard/tutor-leaderboard.component.html | 7 ++++++- .../tutor-leaderboard/tutor-leaderboard.component.ts | 8 ++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/webapp/app/core/auth/account.service.ts b/src/main/webapp/app/core/auth/account.service.ts index 5fdc282d9cb5..810d930794ec 100644 --- a/src/main/webapp/app/core/auth/account.service.ts +++ b/src/main/webapp/app/core/auth/account.service.ts @@ -9,7 +9,7 @@ import { JhiWebsocketService } from 'app/core/websocket/websocket.service'; import { FeatureToggleService } from 'app/shared/feature-toggle/feature-toggle.service'; import { setUser } from '@sentry/angular-ivy'; import { StudentParticipation } from 'app/entities/participation/student-participation.model'; -import { Exercise } from 'app/entities/exercise.model'; +import { Exercise, getCourseFromExercise } from 'app/entities/exercise.model'; import { Authority } from 'app/shared/constants/authority.constants'; import { TranslateService } from '@ngx-translate/core'; @@ -238,8 +238,9 @@ export class AccountService implements IAccountService { setAccessRightsForExerciseAndReferencedCourse(exercise: Exercise) { this.setAccessRightsForExercise(exercise); - if (exercise.course) { - this.setAccessRightsForCourse(exercise.course); + const course = getCourseFromExercise(exercise); + if (course) { + this.setAccessRightsForCourse(course); } } diff --git a/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.html b/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.html index 9f64f3fb24c1..35f312e46c31 100644 --- a/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.html +++ b/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.html @@ -78,7 +78,12 @@ - + + + {{ tutor.numberOfAcceptedComplaints }} + + + {{ tutor.numberOfAcceptedComplaints }} diff --git a/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.ts b/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.ts index d6226a7bde4c..48c99e458d89 100644 --- a/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.ts +++ b/src/main/webapp/app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.component.ts @@ -1,7 +1,7 @@ import { Component, Input, OnInit } from '@angular/core'; import { TutorLeaderboardElement } from 'app/shared/dashboards/tutor-leaderboard/tutor-leaderboard.model'; import { Course } from 'app/entities/course.model'; -import { Exercise } from 'app/entities/exercise.model'; +import { Exercise, getCourseFromExercise } from 'app/entities/exercise.model'; import { AccountService } from 'app/core/auth/account.service'; import { SortService } from 'app/shared/service/sort.service'; import { Exam } from 'app/entities/exam.model'; @@ -35,10 +35,10 @@ export class TutorLeaderboardComponent implements OnInit { * Life cycle hook called by Angular to indicate that Angular is done creating the component */ ngOnInit(): void { - if (this.exercise && this.exercise.course) { - this.course = this.exercise.course; - this.isExerciseDashboard = true; + if (this.exercise) { + this.course = getCourseFromExercise(this.exercise); } + this.isExerciseDashboard = !!(this.exercise && this.course); this.isExamMode = !!this.exam; this.sortRows(); } From 76142708da690c0269b5aea80414f66e0d8ddeb8 Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Tue, 3 Oct 2023 21:49:22 +0200 Subject: [PATCH 24/39] Development: Update client dependencies (#7309) --- docker/cypress.yml | 2 +- package-lock.json | 2418 +++++++++++----------------- package.json | 54 +- src/test/cypress/package-lock.json | 16 +- src/test/cypress/package.json | 5 +- 5 files changed, 979 insertions(+), 1516 deletions(-) diff --git a/docker/cypress.yml b/docker/cypress.yml index 2e337c158c4d..a5f61a61b1ce 100644 --- a/docker/cypress.yml +++ b/docker/cypress.yml @@ -5,7 +5,7 @@ services: artemis-cypress: # Cypress image with node and chrome browser installed (Cypress installation needs to be done separately because we require additional dependencies) - image: docker.io/cypress/browsers:node-18.16.0-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1 + image: docker.io/cypress/browsers:node-20.6.1-chrome-116.0.5845.187-1-ff-117.0-edge-116.0.1938.76-1 pull_policy: if_not_present environment: CYPRESS_baseUrl: "https://artemis-nginx" diff --git a/package-lock.json b/package-lock.json index f723ed126420..6c9ff93a8221 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,18 +10,18 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@angular/animations": "16.2.6", - "@angular/cdk": "16.2.5", - "@angular/common": "16.2.6", - "@angular/compiler": "16.2.6", - "@angular/core": "16.2.6", - "@angular/forms": "16.2.6", - "@angular/localize": "16.2.6", - "@angular/material": "16.2.5", - "@angular/platform-browser": "16.2.6", - "@angular/platform-browser-dynamic": "16.2.6", - "@angular/router": "16.2.6", - "@angular/service-worker": "16.2.6", + "@angular/animations": "16.2.7", + "@angular/cdk": "16.2.6", + "@angular/common": "16.2.7", + "@angular/compiler": "16.2.7", + "@angular/core": "16.2.7", + "@angular/forms": "16.2.7", + "@angular/localize": "16.2.7", + "@angular/material": "16.2.6", + "@angular/platform-browser": "16.2.7", + "@angular/platform-browser-dynamic": "16.2.7", + "@angular/router": "16.2.7", + "@angular/service-worker": "16.2.7", "@ctrl/ngx-emoji-mart": "9.2.0", "@danielmoncada/angular-datetime-picker": "16.0.1", "@fingerprintjs/fingerprintjs": "4.1.0", @@ -30,24 +30,24 @@ "@fortawesome/fontawesome-svg-core": "6.4.2", "@fortawesome/free-regular-svg-icons": "6.4.2", "@fortawesome/free-solid-svg-icons": "6.4.2", - "@ls1intum/apollon": "2.14.5", + "@ls1intum/apollon": "2.15.0", "@ng-bootstrap/ng-bootstrap": "15.1.1", "@ngx-translate/core": "15.0.0", "@ngx-translate/http-loader": "8.0.0", - "@sentry/angular-ivy": "7.71.0", - "@sentry/tracing": "7.71.0", - "@sentry/types": "7.71.0", + "@sentry/angular-ivy": "7.73.0", + "@sentry/tracing": "7.73.0", + "@sentry/types": "7.73.0", "@swimlane/ngx-charts": "20.4.1", "@swimlane/ngx-graph": "8.2.2", "ace-builds": "1.28.0", "bootstrap": "5.3.1", "brace": "0.11.1", "compare-versions": "6.1.0", - "core-js": "3.32.2", + "core-js": "3.33.0", "crypto-js": "4.1.1", "dayjs": "1.11.10", "diff-match-patch-typescript": "1.0.8", - "dompurify": "3.0.5", + "dompurify": "3.0.6", "export-to-csv": "0.2.1", "franc-min": "6.1.0", "interactjs": "1.10.19", @@ -77,31 +77,32 @@ }, "devDependencies": { "@angular-builders/jest": "16.0.1", + "@angular-devkit/build-angular": "16.2.4", "@angular-eslint/builder": "16.2.0", "@angular-eslint/eslint-plugin": "16.2.0", "@angular-eslint/eslint-plugin-template": "16.2.0", "@angular-eslint/schematics": "16.2.0", "@angular-eslint/template-parser": "16.2.0", - "@angular/cli": "16.2.3", - "@angular/compiler-cli": "16.2.6", - "@angular/language-service": "16.2.6", + "@angular/cli": "16.2.4", + "@angular/compiler-cli": "16.2.7", + "@angular/language-service": "16.2.7", "@types/crypto-js": "4.1.2", "@types/d3-shape": "3.1.3", "@types/dompurify": "3.0.3", "@types/jest": "29.5.5", "@types/lodash-es": "4.17.9", - "@types/node": "20.6.5", + "@types/node": "20.8.2", "@types/papaparse": "5.3.9", "@types/showdown": "2.0.2", "@types/smoothscroll-polyfill": "0.3.1", "@types/sockjs-client": "1.5.2", "@types/uuid": "9.0.4", - "@typescript-eslint/eslint-plugin": "6.7.3", - "@typescript-eslint/parser": "6.7.3", + "@typescript-eslint/eslint-plugin": "6.7.4", + "@typescript-eslint/parser": "6.7.4", "eslint": "8.50.0", "eslint-config-prettier": "9.0.0", "eslint-plugin-deprecation": "2.0.0", - "eslint-plugin-jest": "27.4.0", + "eslint-plugin-jest": "27.4.2", "eslint-plugin-jest-extended": "2.0.0", "eslint-plugin-prettier": "5.0.0", "folder-hash": "4.0.4", @@ -199,12 +200,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1602.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.1.tgz", - "integrity": "sha512-EhK+4lQOwYE2Zhd5+2Un2+q7wTnXEn2pVIZ11f1x78fYAbf6QyYrBZTegGOj+j3NRMdfJM0v238r+ypMdnDimA==", + "version": "0.1602.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.4.tgz", + "integrity": "sha512-SQr/FZ8wEOGC6EM+7V5rWyb/qpK0LFND/WbES5l+Yvwv+TEyPihsh5QCPmvPxi45eFbaHPrXkIZnvxnkxRDN/A==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.2.1", + "@angular-devkit/core": "16.2.4", "rxjs": "7.8.1" }, "engines": { @@ -214,16 +215,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.1.tgz", - "integrity": "sha512-2CkBOk76O8ROys5NUcRBMLdFVPuBfr3oy9omP5nO0aQVA9mWc3TRy/MeqDbr0xcY8LyJBB4B1jEQrkjWaeSDcA==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-16.2.4.tgz", + "integrity": "sha512-qWWjw321+qKzQ3U+arPJ5fdqxZ/aeT5HuxAtA7xqNu/cqnqvRZ8RVbbnugFx4U1R271tABT+N+N1kkIep/vlDg==", "dev": true, - "peer": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1602.1", - "@angular-devkit/build-webpack": "0.1602.1", - "@angular-devkit/core": "16.2.1", + "@angular-devkit/architect": "0.1602.4", + "@angular-devkit/build-webpack": "0.1602.4", + "@angular-devkit/core": "16.2.4", "@babel/core": "7.22.9", "@babel/generator": "7.22.9", "@babel/helper-annotate-as-pure": "7.22.5", @@ -235,7 +235,7 @@ "@babel/runtime": "7.22.6", "@babel/template": "7.22.5", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "16.2.1", + "@ngtools/webpack": "16.2.4", "@vitejs/plugin-basic-ssl": "1.0.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.14", @@ -341,7 +341,6 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.1.tgz", "integrity": "sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ==", "dev": true, - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -358,17 +357,15 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1602.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.1.tgz", - "integrity": "sha512-gY7G+1xsOkPvO4/Ose1RnbflrTQkbQh6xQPeCa95I4GFFpk8De3d2cGNM9KuD8LCDc1GAGip8nRuVrCwQGZ5sw==", + "version": "0.1602.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1602.4.tgz", + "integrity": "sha512-QOnMfAOFrAQKOw+odgymragqzv6Ts5/Ni7/SJ1iLwlQcH6TajT6373fSCDFdKV40ntF53yjnexIsLx81/dK+Cg==", "dev": true, - "peer": true, "dependencies": { - "@angular-devkit/architect": "0.1602.1", + "@angular-devkit/architect": "0.1602.4", "rxjs": "7.8.1" }, "engines": { @@ -382,9 +379,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.1.tgz", - "integrity": "sha512-/QnIIvu9kW4UoJ2IWF8pxwHk+/O2ARi5bYV9jCgMxTs/3VuOHrWaDtxAvxd1gqj+vYvwLtdbBYNT/Hs/nCJeLQ==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.4.tgz", + "integrity": "sha512-VCZ1z1lDbFkbYkQ6ZMEFfmNzkMEOCBKSzAhWutRyd7oM02by4/5SvDSXd5BMvMxWhPJ/567DdSPOfhhnXQkkDg==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -409,12 +406,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.3.tgz", - "integrity": "sha512-+lBiHxi/C9HCfiCbtW25DldwvJDXXXv5oWw+Tg4s18BO/lYZLveGUEaZWu9ZJ5VIJ8GliUi2LohxhDxBkh4Oxg==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-16.2.4.tgz", + "integrity": "sha512-TsSflKJlaHzKgcU/taQg5regmBP/ggvwVtAbJRBWmCaeQJzobFo68+rtwfYfvuQXKAR6KsbSJc97mqmq6zmTwQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.2.3", + "@angular-devkit/core": "16.2.4", "jsonc-parser": "3.2.0", "magic-string": "0.30.1", "ora": "5.4.1", @@ -426,33 +423,6 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular-devkit/schematics/node_modules/@angular-devkit/core": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.3.tgz", - "integrity": "sha512-oZLdg2XTx7likYAXRj1CU0XmrsCfe5f2grj3iwuI3OB1LXwwpdbHBztruj03y3yHES+TnO+dIbkvRnvMXs7uAA==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "2.3.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular-eslint/builder": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-16.2.0.tgz", @@ -552,9 +522,9 @@ } }, "node_modules/@angular/animations": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.6.tgz", - "integrity": "sha512-NHnHdZFKLr1PB8RhscjsE/DMSVHhtjCqc3bhtOiOMYfAgm4nYrSFvp6nAaT5OoMTeAWuM0n8/HvAiFweEQgVQA==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-16.2.7.tgz", + "integrity": "sha512-6GM4xFprTjDN71nRF6a2Nq3xS/b69tk2mOpcXZeTvxl6b/hqUo1l0y1eY1XK211cwm36GtSjq2cHJAIRBT3CiA==", "dependencies": { "tslib": "^2.3.0" }, @@ -562,13 +532,13 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.2.6" + "@angular/core": "16.2.7" } }, "node_modules/@angular/cdk": { - "version": "16.2.5", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.2.5.tgz", - "integrity": "sha512-9VbdWSYVFQq9y7Dl8KMooE+Sa5nx0l4Neue1IMmSS2v8b602VykiYA5aqz0BsLjfoiboXlUz6LCBXxukJtogcQ==", + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-16.2.6.tgz", + "integrity": "sha512-vSaPs69xutbxc6IbZz4I5fMzZhlypsMg5JKKNAufmyYNNHQYgSQytpUd1/RxHhPF/JoEvj/J8QjauRriZFN+SA==", "dependencies": { "tslib": "^2.3.0" }, @@ -582,15 +552,15 @@ } }, "node_modules/@angular/cli": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.3.tgz", - "integrity": "sha512-XYewIme6CPxgyK9A4aBDUOwv88h8RHwCeLxuBQcOYY2kVhWIiQjFwdkODQPG0WZkRZxtwXk6wErIO80Nz1K8BA==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-16.2.4.tgz", + "integrity": "sha512-OjnlQ2wzhkc1q3iDbWtLeaXoPzS0BtevazT7vmB/MiNVgjDcF3bPFQTcBBvtWAF0wN9jgPC712X8ucwdEAOMlg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1602.3", - "@angular-devkit/core": "16.2.3", - "@angular-devkit/schematics": "16.2.3", - "@schematics/angular": "16.2.3", + "@angular-devkit/architect": "0.1602.4", + "@angular-devkit/core": "16.2.4", + "@angular-devkit/schematics": "16.2.4", + "@schematics/angular": "16.2.4", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -615,52 +585,10 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/@angular-devkit/architect": { - "version": "0.1602.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1602.3.tgz", - "integrity": "sha512-7f4U5LzAYRcQcOvRJwunSwLd5/nwbNxY/E4jTgwFxCNvCBSMysNJBi3g9v0t8zm2XYOv4ok5eYqIwriXVypRBg==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "16.2.3", - "rxjs": "7.8.1" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/@angular-devkit/core": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.3.tgz", - "integrity": "sha512-oZLdg2XTx7likYAXRj1CU0XmrsCfe5f2grj3iwuI3OB1LXwwpdbHBztruj03y3yHES+TnO+dIbkvRnvMXs7uAA==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "2.3.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular/common": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.6.tgz", - "integrity": "sha512-BjnahvtJHh2zXfCZjpWit+zMkggl/PrgUtPd02egzLmEKyXIMmQLYNpDZ+Pqgpb7eefU8yBPhL7WA2oKFjHjSg==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-16.2.7.tgz", + "integrity": "sha512-vcKbbtDXNmJ8dj1GF52saJRT5U3P+phnIwnv+hQ2c+VVj/S2alWlBkT12iM+KlvnWdxsa0q4yW0G4WvpPJPaMQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -668,14 +596,14 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.2.6", + "@angular/core": "16.2.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.6.tgz", - "integrity": "sha512-FKv9isn8BdM9TydyhdqcFhFD8nn11+fGqg3qbIQnOlnLb0ryYign93zBmlx/qFu46PvPtTmhsa4saE2NwvrSbg==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-16.2.7.tgz", + "integrity": "sha512-Sp+QjHFYjBMhjag/YbIV5skqr/UrpBjCPo1WFBBhj5DKkvgWC7T00yYJn+aBj0DU5ZuMmO/P8Vb7bRIHIRNL4w==", "dependencies": { "tslib": "^2.3.0" }, @@ -683,7 +611,7 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "16.2.6" + "@angular/core": "16.2.7" }, "peerDependenciesMeta": { "@angular/core": { @@ -692,9 +620,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.6.tgz", - "integrity": "sha512-rzyI4dKVj8T9dCnZCIffoxZ2PplYLmC9yd65VoaKxOQFxf/95/hgIRdt5kafjnZvzFN1qUbQuEfyviY+KFdQKg==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-16.2.7.tgz", + "integrity": "sha512-aMAmSyurmvdKIcRpATfJPyTa0RYOylmXb7TI5TyDico9pUR7RAlreuW/1NUeIPWfZdPrPyoGOYGqukSuSnyrNA==", "dependencies": { "@babel/core": "7.22.5", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -714,7 +642,7 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.2.6", + "@angular/compiler": "16.2.7", "typescript": ">=4.9.3 <5.2" } }, @@ -748,9 +676,9 @@ } }, "node_modules/@angular/core": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.6.tgz", - "integrity": "sha512-F7kJbkVHLupdVQbwjjEuWp5rtxmfnL571VtqRN/8OJZAI2OjZjnSbL+FRZGEZHDmOZ2cNgPKpYt/d3nbK8hpSw==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-16.2.7.tgz", + "integrity": "sha512-JQOxo+Ja9ThQjUa4vdOMLZfIK2dhR3cnPbqB1tV2WuTmIv49QASbFHsae8zZsS4Au5/TafBaW3KkK9aRU8G5gg==", "dependencies": { "tslib": "^2.3.0" }, @@ -763,9 +691,9 @@ } }, "node_modules/@angular/forms": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.6.tgz", - "integrity": "sha512-TsSpV6Oh0Z5WlCmRB6jEsChLA8ChBn8CY1uOkTh4YQEzdMCwvBvc1Q2DugER5iGvZU/hRNgjyHX7VR3ysB3JlQ==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-16.2.7.tgz", + "integrity": "sha512-zUEcYwoAiRmKBJd3NAnksbqTXm60L/nLmhv8OAS9MvV5tXNvEjavpy3eG16H7H2IPQ2ZkUICB0bssmmAVOCbmQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -773,25 +701,25 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.6", - "@angular/core": "16.2.6", - "@angular/platform-browser": "16.2.6", + "@angular/common": "16.2.7", + "@angular/core": "16.2.7", + "@angular/platform-browser": "16.2.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/language-service": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.2.6.tgz", - "integrity": "sha512-CfGAPLTfYluyMdmYGIK/9hvHDZffLbKc+YZYVE5obgdVszeAJhjC60corbzNu30oTx5a994Q2OtdiKBgAJJ+Kg==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-16.2.7.tgz", + "integrity": "sha512-J5Y5tdiHTyRzVb4rEQDUBvFzaPSZyj+tsq463UlbJECwIfDmPb2G+6y1WasQaH+UOWEanBxOZ2supk10KNS3+A==", "dev": true, "engines": { "node": "^16.14.0 || >=18.10.0" } }, "node_modules/@angular/localize": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-16.2.6.tgz", - "integrity": "sha512-sOkZcamHIpiklnbBXCplH7VhPV/aV1c0Cl62Q4lOa+pEnD1oPxE/oAQtFe+AHdf2rTnJhqCutvQDr5yGrIT+SQ==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-16.2.7.tgz", + "integrity": "sha512-8j7DgtrXTjzO7g1W8cm4Ewh1BKN7PkrpoxT+mXCkrbLup4krqNhlUZEM2N72mjyX4kN+qPJ3sOhw6rYLjRQP6Q==", "dependencies": { "@babel/core": "7.22.5", "fast-glob": "3.3.0", @@ -806,8 +734,8 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "16.2.6", - "@angular/compiler-cli": "16.2.6" + "@angular/compiler": "16.2.7", + "@angular/compiler-cli": "16.2.7" } }, "node_modules/@angular/localize/node_modules/@babel/core": { @@ -855,9 +783,9 @@ } }, "node_modules/@angular/material": { - "version": "16.2.5", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.2.5.tgz", - "integrity": "sha512-IK+Xs0IYnPUMzbUKzKzL59uDu0LVxwqyNOKj3ZU1MaZrbKIY/KCgjK2TcShYB0nLjuQhuz8Zr5AJW0m2pLZ+0g==", + "version": "16.2.6", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-16.2.6.tgz", + "integrity": "sha512-JFP12dLrsKwrQ4zZtSRJarYosnxikxLD2M9hfUtHVxgTJr7rdSQ8eE7G2l2zPALSUt+d44MWgQ79xu6inuvEOw==", "dependencies": { "@material/animation": "15.0.0-canary.bc9ae6c9c.0", "@material/auto-init": "15.0.0-canary.bc9ae6c9c.0", @@ -910,7 +838,7 @@ }, "peerDependencies": { "@angular/animations": "^16.0.0 || ^17.0.0", - "@angular/cdk": "16.2.5", + "@angular/cdk": "16.2.6", "@angular/common": "^16.0.0 || ^17.0.0", "@angular/core": "^16.0.0 || ^17.0.0", "@angular/forms": "^16.0.0 || ^17.0.0", @@ -919,9 +847,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.6.tgz", - "integrity": "sha512-jXtarSZ/n6ytZQ9+Y0aDuazz5POz4UmLN3GxIWtc4kqPOQp4o3DCM16Ig4ioSm53Z/WSDASVaMwtRWN5SXCKfw==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-16.2.7.tgz", + "integrity": "sha512-yQ/4FB33Jc1Xs+slWfddZpbKdkCHdhCh39Mfjxa1wTen6YJZKmvjBbMNCkvnvNbLqc2IFWRwTQdG8s0n1jfl3A==", "dependencies": { "tslib": "^2.3.0" }, @@ -929,9 +857,9 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "16.2.6", - "@angular/common": "16.2.6", - "@angular/core": "16.2.6" + "@angular/animations": "16.2.7", + "@angular/common": "16.2.7", + "@angular/core": "16.2.7" }, "peerDependenciesMeta": { "@angular/animations": { @@ -940,9 +868,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.6.tgz", - "integrity": "sha512-i3prfdjnOMMemQMLk7vywGueDsjRIcug+jNf4ZdSb4AEaAhv86mzt5z3iNNSSA3bec7oJfrxOayMz3o6zq3QXA==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-16.2.7.tgz", + "integrity": "sha512-raeuYEQfByHByLnA5YRR7fYD/5u6hMjONH77p08IjmtdmLb0XYP18l/C4YqsIOQG6kZLNCVWknEHZu3kuvAwtQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -950,16 +878,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.6", - "@angular/compiler": "16.2.6", - "@angular/core": "16.2.6", - "@angular/platform-browser": "16.2.6" + "@angular/common": "16.2.7", + "@angular/compiler": "16.2.7", + "@angular/core": "16.2.7", + "@angular/platform-browser": "16.2.7" } }, "node_modules/@angular/router": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.6.tgz", - "integrity": "sha512-huORA6D1UriaswbvVgfxpYQJofZ3hSDdJYRMI4lDcu1n6CaCoYnj8E3rqaU5U1Va0OeFmxzOuXG+3WyL+YfZgg==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-16.2.7.tgz", + "integrity": "sha512-CYhbhOqmBIraWjSzpiIZXV0JEx2fNAtRphQ5L/xdzU7G644+4v73SSQddoeX6l0FBkw2gqTisxr9w8/A6s2eCw==", "dependencies": { "tslib": "^2.3.0" }, @@ -967,16 +895,16 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.6", - "@angular/core": "16.2.6", - "@angular/platform-browser": "16.2.6", + "@angular/common": "16.2.7", + "@angular/core": "16.2.7", + "@angular/platform-browser": "16.2.7", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-16.2.6.tgz", - "integrity": "sha512-kLs+kQYI2w7OPi7B1F/YFwJiFos8+RJiHI7tDux3IVe5KeWr5XN9U8CEpTS2qL+CktXtWb6I9q3fFqcaaTQdDQ==", + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-16.2.7.tgz", + "integrity": "sha512-iuwiOBfWg+j/sWjD6KlEwmd/5w8hZkRMpwTyT5+5635XFGZFMK79yJXcq8UqpTk69BLH5MasSKRrF8OvdTrYbA==", "dependencies": { "tslib": "^2.3.0" }, @@ -987,16 +915,15 @@ "node": "^16.14.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "16.2.6", - "@angular/core": "16.2.6" + "@angular/common": "16.2.7", + "@angular/core": "16.2.7" } }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@babel/code-frame": { "version": "7.22.13", @@ -1011,9 +938,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", - "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", "engines": { "node": ">=6.9.0" } @@ -1077,7 +1004,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -1105,7 +1031,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", @@ -1129,7 +1054,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -1147,7 +1071,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -1160,20 +1083,33 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" @@ -1191,13 +1127,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", - "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, - "peer": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -1215,15 +1150,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz", - "integrity": "sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", "@babel/helper-simple-access": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.15" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1237,7 +1172,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -1254,15 +1188,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz", - "integrity": "sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.17" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -1272,14 +1205,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -1305,7 +1237,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -1333,9 +1264,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } @@ -1349,15 +1280,14 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz", - "integrity": "sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", - "@babel/types": "^7.22.17" + "@babel/types": "^7.22.19" }, "engines": { "node": ">=6.9.0" @@ -1368,7 +1298,6 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dev": true, - "peer": true, "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/parser": "^7.22.15", @@ -1379,13 +1308,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", - "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", + "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -1405,11 +1334,11 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, @@ -1418,9 +1347,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1433,7 +1362,6 @@ "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.22.15.tgz", "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1449,7 +1377,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1468,7 +1395,6 @@ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "dev": true, - "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-plugin-utils": "^7.20.2", @@ -1487,7 +1413,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "peer": true, "engines": { "node": ">=6.9.0" }, @@ -1501,7 +1426,6 @@ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1554,7 +1478,6 @@ "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, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1570,7 +1493,6 @@ "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, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1583,7 +1505,6 @@ "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, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -1596,7 +1517,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1612,7 +1532,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1738,7 +1657,6 @@ "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, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1784,7 +1702,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1801,7 +1718,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1817,7 +1733,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", @@ -1836,7 +1751,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", @@ -1854,7 +1768,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1866,11 +1779,10 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", - "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", + "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1886,7 +1798,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1903,7 +1814,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.11", "@babel/helper-plugin-utils": "^7.22.5", @@ -1921,7 +1831,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.22.15", @@ -1945,7 +1854,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.5" @@ -1958,11 +1866,10 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", - "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", + "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1978,7 +1885,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1995,7 +1901,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2011,7 +1916,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -2028,7 +1932,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2045,7 +1948,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -2062,7 +1964,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2078,7 +1979,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.5", "@babel/helper-function-name": "^7.22.5", @@ -2096,7 +1996,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -2113,7 +2012,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2129,7 +2027,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -2146,7 +2043,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2158,13 +2054,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", + "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { @@ -2175,13 +2070,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", - "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", "dev": true, - "peer": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -2193,16 +2087,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", - "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", + "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.9", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" @@ -2216,7 +2109,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-module-transforms": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2233,7 +2125,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2250,7 +2141,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2266,7 +2156,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -2283,7 +2172,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -2300,7 +2188,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", "dev": true, - "peer": true, "dependencies": { "@babel/compat-data": "^7.22.9", "@babel/helper-compilation-targets": "^7.22.15", @@ -2320,7 +2207,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.5" @@ -2337,7 +2223,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -2350,11 +2235,10 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", - "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", + "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -2372,7 +2256,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2388,7 +2271,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2405,7 +2287,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.22.11", @@ -2424,7 +2305,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2440,7 +2320,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -2457,7 +2336,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2473,7 +2351,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz", "integrity": "sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", @@ -2494,7 +2371,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2510,7 +2386,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -2527,7 +2402,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2543,7 +2417,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2559,7 +2432,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2575,7 +2447,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -2591,7 +2462,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2608,7 +2478,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2625,7 +2494,6 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -2642,7 +2510,6 @@ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.9.tgz", "integrity": "sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==", "dev": true, - "peer": true, "dependencies": { "@babel/compat-data": "^7.22.9", "@babel/helper-compilation-targets": "^7.22.9", @@ -2737,7 +2604,6 @@ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", @@ -2753,8 +2619,7 @@ "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, - "peer": true + "dev": true }, "node_modules/@babel/runtime": { "version": "7.22.6", @@ -2781,18 +2646,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", - "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", + "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.17", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2801,11 +2666,11 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -2815,12 +2680,12 @@ } }, "node_modules/@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -3257,9 +3122,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz", - "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -3311,9 +3176,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -3611,16 +3476,16 @@ } }, "node_modules/@jest/console": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.4.tgz", - "integrity": "sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -3698,15 +3563,15 @@ } }, "node_modules/@jest/core": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.4.tgz", - "integrity": "sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", - "@jest/reporters": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", @@ -3714,21 +3579,21 @@ "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.6.3", - "jest-config": "^29.6.4", - "jest-haste-map": "^29.6.4", - "jest-message-util": "^29.6.3", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-resolve-dependencies": "^29.6.4", - "jest-runner": "^29.6.4", - "jest-runtime": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", - "jest-watcher": "^29.6.4", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -3815,37 +3680,37 @@ } }, "node_modules/@jest/environment": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.4.tgz", - "integrity": "sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.6.4", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.4.tgz", - "integrity": "sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "dependencies": { - "expect": "^29.6.4", - "jest-snapshot": "^29.6.4" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.4.tgz", - "integrity": "sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3" @@ -3855,47 +3720,47 @@ } }, "node_modules/@jest/fake-timers": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.4.tgz", - "integrity": "sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.4.tgz", - "integrity": "sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/expect": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", "@jest/types": "^29.6.3", - "jest-mock": "^29.6.3" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.4.tgz", - "integrity": "sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", @@ -3909,9 +3774,9 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", - "jest-worker": "^29.6.4", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -4042,12 +3907,12 @@ } }, "node_modules/@jest/test-result": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.4.tgz", - "integrity": "sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", + "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" @@ -4057,14 +3922,14 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz", - "integrity": "sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.4", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -4072,9 +3937,9 @@ } }, "node_modules/@jest/transform": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.4.tgz", - "integrity": "sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -4085,9 +3950,9 @@ "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -4294,7 +4159,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -4318,13 +4182,12 @@ "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, - "peer": true + "dev": true }, "node_modules/@ls1intum/apollon": { - "version": "2.14.5", - "resolved": "https://registry.npmjs.org/@ls1intum/apollon/-/apollon-2.14.5.tgz", - "integrity": "sha512-Ic4EK8w7d0n8lpi/jbQQtdiTo0mV1WJaljZaufqIoEcwwSS/kVASJq1WKotmkU+cygV9jDaAmDMk/KUUGh2flQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@ls1intum/apollon/-/apollon-2.15.0.tgz", + "integrity": "sha512-F+gg6lRz/Er10gAH+2/w1h5APNO/ZS//y4FEy7OuJX4+HQqkzn8Jv69Jb61HTSx1dMSDkzQ9BVEIDqZYkulmxA==", "dependencies": { "is-mobile": "4.0.0", "pepjs": "0.5.3", @@ -5118,11 +4981,10 @@ } }, "node_modules/@ngtools/webpack": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.1.tgz", - "integrity": "sha512-fT7uwrw3Yfi7mqVHD+kTw0zDq6jZ1CaRp6pQ5b3n+qFL+a3c34Lr/kFVVWZNktfooxO9lYWRsJdTRtid25he9w==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.4.tgz", + "integrity": "sha512-ILri2xJ6vMUaFxHJABGF/H7/pYoBkuXTFlHCeFee9pHA+EHkxoiwezLf8baiFT3IGOmdG6GOUlfh/4QicGLdTQ==", "dev": true, - "peer": true, "engines": { "node": "^16.14.0 || >=18.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -5675,13 +5537,13 @@ "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==" }, "node_modules/@schematics/angular": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.3.tgz", - "integrity": "sha512-QZOh6iH3BQo4azmqGIoydW95KuxTGezTXl+cfekr4ru5IJ7FqCwrg4wQKWD8/3FkxakXjAFdqsWhlxn1kGtyqw==", + "version": "16.2.4", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-16.2.4.tgz", + "integrity": "sha512-ZFPxn0yihdNcg5UpJvnfxIpv4GuW6nYDkgeIlYb5k/a0dKSW8wE8Akcl1JhJtdKJ0RVcn1OwZDmx028JCbZJLA==", "dev": true, "dependencies": { - "@angular-devkit/core": "16.2.3", - "@angular-devkit/schematics": "16.2.3", + "@angular-devkit/core": "16.2.4", + "@angular-devkit/schematics": "16.2.4", "jsonc-parser": "3.2.0" }, "engines": { @@ -5690,41 +5552,14 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@schematics/angular/node_modules/@angular-devkit/core": { - "version": "16.2.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-16.2.3.tgz", - "integrity": "sha512-oZLdg2XTx7likYAXRj1CU0XmrsCfe5f2grj3iwuI3OB1LXwwpdbHBztruj03y3yHES+TnO+dIbkvRnvMXs7uAA==", - "dev": true, - "dependencies": { - "ajv": "8.12.0", - "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "2.3.1", - "rxjs": "7.8.1", - "source-map": "0.7.4" - }, - "engines": { - "node": "^16.14.0 || >=18.10.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^3.5.2" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@sentry-internal/tracing": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.71.0.tgz", - "integrity": "sha512-HRGsQOrA2Y3Ga+NTgCkTWO+qtU2SFTJ7t9pt/LR8Har9cvVcjLIlHNwPoDx6bVkICK3cGOF8ZtXVmLizVbXoAg==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.73.0.tgz", + "integrity": "sha512-ig3WL/Nqp8nRQ52P205NaypGKNfIl/G+cIqge9xPW6zfRb5kJdM1YParw9GSJ1SPjEZBkBORGAML0on5H2FILw==", "dependencies": { - "@sentry/core": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "@sentry/core": "7.73.0", + "@sentry/types": "7.73.0", + "@sentry/utils": "7.73.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -5732,13 +5567,13 @@ } }, "node_modules/@sentry/angular-ivy": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/angular-ivy/-/angular-ivy-7.71.0.tgz", - "integrity": "sha512-KBO7ctIc04AOG6tUszsZJAJI1QCxgsqkDSdjBBI5OVX9x1fQ/DdcG5iIABxmTrvTDp/WdDbm7DdONv1Oj81/Ww==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/angular-ivy/-/angular-ivy-7.73.0.tgz", + "integrity": "sha512-IH/1Giw/pJk38TSb2br8GgbkrQzfDX/blXutErgQophqhjhwo5DSpzD6PDBktrM7JT/xqXKLI8pu8E/2ZSfsNA==", "dependencies": { - "@sentry/browser": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "@sentry/browser": "7.73.0", + "@sentry/types": "7.73.0", + "@sentry/utils": "7.73.0", "tslib": "^2.4.1" }, "engines": { @@ -5752,15 +5587,15 @@ } }, "node_modules/@sentry/browser": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.71.0.tgz", - "integrity": "sha512-7xggzwW2QW9g4Li1M3VQEsQX7AIeSlWnweTkkT+62t3AcLHD7URnNNU7SBAj7x+8F0WqkvMws0XXar51+rv/rw==", - "dependencies": { - "@sentry-internal/tracing": "7.71.0", - "@sentry/core": "7.71.0", - "@sentry/replay": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.73.0.tgz", + "integrity": "sha512-e301hUixcJ5+HNKCJwajFF5smF4opXEFSclyWsJuFNufv5J/1C1SDhbwG2JjBt5zzdSoKWJKT1ewR6vpICyoDw==", + "dependencies": { + "@sentry-internal/tracing": "7.73.0", + "@sentry/core": "7.73.0", + "@sentry/replay": "7.73.0", + "@sentry/types": "7.73.0", + "@sentry/utils": "7.73.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -5768,12 +5603,12 @@ } }, "node_modules/@sentry/core": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.71.0.tgz", - "integrity": "sha512-kZcWnzxzMxyNuCwq65owu0yGbY+C9QJhWFMDBsqmKK1/dSt0bdhNjf3VQW1dJLnWaQTk7rUTHEHGH8JSdV5EAg==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.73.0.tgz", + "integrity": "sha512-9FEz4Gq848LOgVN2OxJGYuQqxv7cIVw69VlAzWHEm3njt8mjvlTq+7UiFsGRo84+59V2FQuHxzA7vVjl90WfSg==", "dependencies": { - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "@sentry/types": "7.73.0", + "@sentry/utils": "7.73.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -5781,43 +5616,43 @@ } }, "node_modules/@sentry/replay": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.71.0.tgz", - "integrity": "sha512-roB65ixEycAy1BrIJ3HOu7NLKo4EOBs6Q6xKEq5BvzjhDgvFXXq8X/lGriJXc9Q/hWIiDwTQ23yLuzVtPJRnCw==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.73.0.tgz", + "integrity": "sha512-a8IC9SowBisLYD2IdLkXzx7gN4iVwHDJhQvLp2B8ARs1PyPjJ7gCxSMHeGrYp94V0gOXtorNYkrxvuX8ayPROA==", "dependencies": { - "@sentry/core": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0" + "@sentry/core": "7.73.0", + "@sentry/types": "7.73.0", + "@sentry/utils": "7.73.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/tracing": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.71.0.tgz", - "integrity": "sha512-vKW750IP/IXI0WaOmddiCWz7jAQFVWxtdhp9ONvdbRuQkrs5BNQ/GMrs712FWexAcEc9cJ1SPk5fqRTW5UOgLA==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.73.0.tgz", + "integrity": "sha512-LOQR6Hkc8ZoflCXWtMlxTbCBEwv0MSOr3vesnRsmlFG8TW1YUIneU+wKnVxToWAZ8fq+6ubclnuIUKHfqTk/Tg==", "dependencies": { - "@sentry-internal/tracing": "7.71.0" + "@sentry-internal/tracing": "7.73.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.71.0.tgz", - "integrity": "sha512-30PRLZI1RoeWbLE9K7AHsRPWDH22CqC4WcLNeVmRfLC5m1vE1FHb53r98QSKFhLoONMPMVzDhZZgl4ZcC5mptQ==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.73.0.tgz", + "integrity": "sha512-/v8++bly8jW7r4cP2wswYiiVpn7eLLcqwnfPUMeCQze4zj3F3nTRIKc9BGHzU0V+fhHa3RwRC2ksqTGq1oJMDg==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.71.0.tgz", - "integrity": "sha512-aS53l/E/5XsSJMOXHKvS0GlX4gZHBgNAMfhEB3f8rUIn5iLF2uu8lCA1uEvX6VB8b7q/Cg4WFTi6BiJ0hvJHQg==", + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.73.0.tgz", + "integrity": "sha512-h3ZK/qpf4k76FhJV9uiSbvMz3V/0Ovy94C+5/9UgPMVCJXFmVsdw8n/dwANJ7LupVPfYP23xFGgebDMFlK1/2w==", "dependencies": { - "@sentry/types": "7.71.0", + "@sentry/types": "7.73.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -6014,7 +5849,6 @@ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, - "peer": true, "engines": { "node": ">= 6" } @@ -6066,9 +5900,9 @@ } }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -6079,18 +5913,18 @@ } }, "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==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", + "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "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==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", + "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, "dependencies": { "@babel/parser": "^7.1.0", @@ -6098,31 +5932,29 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", + "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, "dependencies": { "@babel/types": "^7.20.7" } }, "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==", + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.3.tgz", + "integrity": "sha512-oyl4jvAfTGX9Bt6Or4H9ni1Z447/tQuxnZsytsCaExKlmJiU8sFgnIBRzJUpKwB5eWn9HuBYlUlVA74q/yN0eQ==", "dev": true, - "peer": 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==", + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.11.tgz", + "integrity": "sha512-isGhjmBtLIxdHBDl2xGwUzEM8AOyOvWsADWq7rqirdi/ZQoHnLWErHvsThcEzTX8juDRiZtzp2Qkv5bgNh6mAg==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } @@ -6132,7 +5964,6 @@ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.36.tgz", "integrity": "sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } @@ -6142,7 +5973,6 @@ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.1.tgz", "integrity": "sha512-iaQslNbARe8fctL5Lk+DsmgWOM83lM+7FzP0eQUJs1jd3kBE8NWqBTIT2S8SqQOJjxvt2eyIjpOuYeRXq2AdMw==", "dev": true, - "peer": true, "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -6179,40 +6009,36 @@ } }, "node_modules/@types/eslint": { - "version": "8.44.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz", - "integrity": "sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==", + "version": "8.44.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.3.tgz", + "integrity": "sha512-iM/WfkwAhwmPff3wZuPLYiHX18HI24jU8k1ZSH7P8FHwxTjZ2P6CoX2wnF43oprR+YXJM6UUxATkNvyv/JHd+g==", "dev": true, - "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.5.tgz", + "integrity": "sha512-JNvhIEyxVW6EoMIFIvj93ZOywYFatlpu9deeH6eSx6PE3WHYvHaQtmHmQeNw7aA81bYGBPPQqdtBm6b1SsQMmA==", "dev": true, - "peer": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true, - "peer": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", + "integrity": "sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==", + "dev": true }, "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.18.tgz", + "integrity": "sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==", "dev": true, - "peer": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -6221,11 +6047,10 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.36", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.36.tgz", - "integrity": "sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==", + "version": "4.17.37", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz", + "integrity": "sha512-ZohaCYTgGFcOP7u6aJOhY9uIZQgZ2vxC2yWoArY+FeDXlqeH66ZVBjgvg+RLVAS/DWNq4Ap9ZXu1+SUQiiWYMg==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -6234,36 +6059,34 @@ } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.7.tgz", + "integrity": "sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==", "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==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-YIQtIg4PKr7ZyqNPZObpxfHsHEmuB8dXCxd6qVcGuQVDK2bpsF7bYNnBJ4Nn7giuACZg+WewExgrtAJ3XnA4Xw==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" } }, "node_modules/@types/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", - "dev": true, - "peer": true + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.2.tgz", + "integrity": "sha512-lPG6KlZs88gef6aD85z3HNkztpj7w2R7HmR3gygjfXCQmsLloWNARFkMuzKiiY8FGdh1XDpgBdrSf4aKDiA7Kg==", + "dev": true }, "node_modules/@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", + "version": "1.17.12", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.12.tgz", + "integrity": "sha512-kQtujO08dVtQ2wXAuSFfk9ASy3sug4+ogFR8Kd8UgP8PEuc1/G/8yjYRmp//PcDNJEUKOza/MrQu15bouEUCiw==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } @@ -6275,18 +6098,18 @@ "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==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" @@ -6314,15 +6137,15 @@ } }, "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "version": "7.0.13", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", + "integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", "dev": true }, "node_modules/@types/lodash": { - "version": "4.14.198", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", - "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==", + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", "dev": true }, "node_modules/@types/lodash-es": { @@ -6335,16 +6158,15 @@ } }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true, - "peer": true + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.3.tgz", + "integrity": "sha512-Ys+/St+2VF4+xuY6+kDIXGxbNRO0mesVg0bbxEfB97Od1Vjpjx9KD1qxs64Gcb3CWPirk9Xe+PT4YiiHQ9T+eg==", + "dev": true }, "node_modules/@types/node": { - "version": "20.6.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.5.tgz", - "integrity": "sha512-2qGq5LAOTh9izcc0+F+dToFigBWiK1phKPt7rNhOqJSr35y8rlIBjDwGtFSgAI6MGIhjwOVNSQZVdJsZJ2uR1w==", + "version": "20.8.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", + "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==", "dev": true }, "node_modules/@types/papaparse": { @@ -6357,28 +6179,26 @@ } }, "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==" + "version": "15.7.8", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.8.tgz", + "integrity": "sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==" }, "node_modules/@types/qs": { "version": "6.9.8", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==", - "dev": true, - "peer": true + "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, - "peer": true + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.5.tgz", + "integrity": "sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==", + "dev": true }, "node_modules/@types/react": { - "version": "18.2.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz", - "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==", + "version": "18.2.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.24.tgz", + "integrity": "sha512-Ee0Jt4sbJxMu1iDcetZEIKQr99J1Zfb6D4F3qfUWoR1JpInkY1Wdg4WwCyBjL257D0+jGqSl1twBjV8iCaC0Aw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -6389,47 +6209,43 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + "version": "0.16.4", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", + "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" }, "node_modules/@types/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "dev": true }, "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.2.tgz", + "integrity": "sha512-aAG6yRf6r0wQ29bkS+x97BIs64ZLxeE/ARwyS6wrldMm3C1MdKwCcnnEwMC1slI8wuxJOpiUH9MioC0A0i+GJw==", "dev": true, - "peer": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "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==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-asaEIoc6J+DbBKXtO7p2shWUpKacZOoMBEGBgPG91P8xhO53ohzHWGCs4ScZo5pQMf5ukQzVT9fhX1WzpHihig==", "dev": true, - "peer": true, "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", - "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.3.tgz", + "integrity": "sha512-yVRvFsEMrv7s0lGhzrggJjNOSmZCdgCjw9xWrPr/kNNLp6FaDfMC1KaYl3TSJ0c58bECwNBMoQrZJ8hA8E1eFg==", "dev": true, - "peer": true, "dependencies": { "@types/http-errors": "*", "@types/mime": "*", @@ -6449,11 +6265,10 @@ "dev": true }, "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "version": "0.3.34", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.34.tgz", + "integrity": "sha512-R+n7qBFnm/6jinlteC9DBL5dGiDGjWAvjo4viUanpnc/dG1y7uDoacXPIQ/PQEg1fI912SMHIa014ZjRpvDw4g==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } @@ -6471,15 +6286,15 @@ "dev": true }, "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz", + "integrity": "sha512-THo502dA5PzG/sfQH+42Lw3fvmYkceefOspdCwpHRul8ik2Jv1K8I5OZz1AT3/rs46kwgMCe9bSBmDLYkkOMGg==", "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==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.4.tgz", + "integrity": "sha512-IDaobHimLQhjwsQ/NMwRVfa/yL7L/wriQPMhw1ZJall0KX6E1oxk29XMDeilW5qTIg5aoiqf5Udy8U/51aNoQQ==", "dev": true }, "node_modules/@types/use-sync-external-store": { @@ -6494,41 +6309,40 @@ "dev": true }, "node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.6.tgz", + "integrity": "sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "version": "17.0.26", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.26.tgz", + "integrity": "sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==", "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==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz", - "integrity": "sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz", + "integrity": "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.3", - "@typescript-eslint/type-utils": "6.7.3", - "@typescript-eslint/utils": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/type-utils": "6.7.4", + "@typescript-eslint/utils": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -6553,31 +6367,14 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", - "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz", - "integrity": "sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz", + "integrity": "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.3", - "@typescript-eslint/utils": "6.7.3", + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/utils": "6.7.4", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -6597,58 +6394,18 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", - "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", - "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.3.tgz", - "integrity": "sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", + "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.3", - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/typescript-estree": "6.7.3", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", "semver": "^7.5.4" }, "engines": { @@ -6662,33 +6419,16 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", - "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.3.tgz", - "integrity": "sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz", + "integrity": "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.3", - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/typescript-estree": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4" }, "engines": { @@ -6707,88 +6447,14 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", - "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", - "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", - "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", - "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", - "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", + "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0" + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6883,9 +6549,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz", - "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", + "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -6896,13 +6562,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", - "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", + "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/visitor-keys": "6.7.4", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7045,12 +6711,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", - "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", + "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/types": "6.7.4", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -7066,7 +6732,6 @@ "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz", "integrity": "sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A==", "dev": true, - "peer": true, "engines": { "node": ">=14.6.0" }, @@ -7079,7 +6744,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -7089,29 +6753,25 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -7122,15 +6782,13 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -7143,7 +6801,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, - "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -7153,7 +6810,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, - "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -7162,15 +6818,13 @@ "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -7187,7 +6841,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -7201,7 +6854,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-buffer": "1.11.6", @@ -7214,7 +6866,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -7229,7 +6880,6 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, - "peer": true, "dependencies": { "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" @@ -7241,7 +6891,6 @@ "integrity": "sha512-7gOpVm3yYojUp/Yn7F4ZybJRxyqfMNf0LXK5KJiawbPfL0XTsJV+0mgrEDjOIR6Bi0OYk2Cyg4tjFu1r8MCZaA==", "deprecated": "this package has been renamed to ts-evaluator. Please install ts-evaluator instead", "dev": true, - "peer": true, "dependencies": { "chalk": "^4.1.0", "jsdom": "^16.4.0", @@ -7264,7 +6913,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7280,7 +6928,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7297,7 +6944,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7309,15 +6955,13 @@ "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, - "peer": true + "dev": true }, "node_modules/@wessberg/ts-evaluator/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, - "peer": true, "engines": { "node": ">=8" } @@ -7327,7 +6971,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7339,15 +6982,13 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true + "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, - "peer": true + "dev": true }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", @@ -7403,7 +7044,6 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "peer": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -7434,7 +7074,6 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, - "peer": true, "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -7445,7 +7084,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -7458,7 +7096,6 @@ "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, - "peer": true, "peerDependencies": { "acorn": "^8" } @@ -7477,7 +7114,6 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true, - "peer": true, "engines": { "node": ">=0.4.0" } @@ -7487,7 +7123,6 @@ "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, - "peer": true, "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" @@ -7501,7 +7136,6 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -7586,7 +7220,6 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -7626,7 +7259,6 @@ "engines": [ "node >= 0.8.0" ], - "peer": true, "bin": { "ansi-html": "bin/ansi-html" } @@ -7717,8 +7349,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/array-union": { "version": "2.1.0", @@ -7756,7 +7387,6 @@ "url": "https://tidelift.com/funding/github/npm/autoprefixer" } ], - "peer": true, "dependencies": { "browserslist": "^4.21.5", "caniuse-lite": "^1.0.30001464", @@ -7776,9 +7406,9 @@ } }, "node_modules/axios": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", - "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz", + "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -7810,12 +7440,12 @@ } }, "node_modules/babel-jest": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.4.tgz", - "integrity": "sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "dependencies": { - "@jest/transform": "^29.6.4", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", "babel-preset-jest": "^29.6.3", @@ -7905,7 +7535,6 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, - "peer": true, "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -7954,7 +7583,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", "dev": true, - "peer": true, "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.4.2", @@ -7965,14 +7593,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.4.tgz", + "integrity": "sha512-9l//BZZsPR+5XjyJMPtZSK4jv0BsTO1zDac2GC6ygx9WLGlcsnRd1Co0B2zT5fF5Ic6BZy+9m3HNZ3QcOeDKfg==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "core-js-compat": "^3.32.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -7983,7 +7610,6 @@ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", "dev": true, - "peer": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.4.2" }, @@ -8075,8 +7701,7 @@ "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, - "peer": true + "dev": true }, "node_modules/big-integer": { "version": "1.6.51", @@ -8092,7 +7717,6 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, - "peer": true, "engines": { "node": "*" } @@ -8135,7 +7759,6 @@ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, - "peer": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -8160,7 +7783,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -8170,7 +7792,6 @@ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, - "peer": true, "dependencies": { "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", @@ -8182,8 +7803,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "peer": true + "dev": true }, "node_modules/bootstrap": { "version": "5.3.1", @@ -8245,13 +7865,12 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true, - "peer": true + "dev": true }, "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "funding": [ { "type": "opencollective", @@ -8267,10 +7886,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -8359,7 +7978,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -8397,19 +8015,19 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -8443,9 +8061,9 @@ } }, "node_modules/cacache/node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -8456,7 +8074,6 @@ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "peer": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -8492,9 +8109,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001529", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001529.tgz", - "integrity": "sha512-n2pUQYGAkrLG4QYj2desAh+NqsJpHbNmVZz87imptDdxLAtjxary7Df/psdfyDGmskJK/9Dt9cPnx5RZ3CU4Og==", + "version": "1.0.30001543", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001543.tgz", + "integrity": "sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==", "funding": [ { "type": "opencollective", @@ -8578,7 +8195,6 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "peer": true, "engines": { "node": ">=6.0" } @@ -8737,7 +8353,6 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "peer": true, "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -8752,7 +8367,6 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "peer": true, "dependencies": { "isobject": "^3.0.1" }, @@ -8838,8 +8452,7 @@ "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, - "peer": true + "dev": true }, "node_modules/compare-versions": { "version": "6.1.0", @@ -8851,7 +8464,6 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "peer": true, "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -8864,7 +8476,6 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "peer": true, "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -8889,7 +8500,6 @@ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, - "peer": true, "engines": { "node": ">=0.8" } @@ -8905,7 +8515,6 @@ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "peer": true, "dependencies": { "safe-buffer": "5.2.1" }, @@ -8931,15 +8540,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "peer": true + ] }, "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, - "peer": true, "engines": { "node": ">= 0.6" } @@ -8954,7 +8561,6 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -8963,15 +8569,13 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, - "peer": true, "dependencies": { "is-what": "^3.14.1" }, @@ -8984,7 +8588,6 @@ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, - "peer": true, "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -9009,7 +8612,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -9022,7 +8624,6 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, - "peer": true, "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -9042,7 +8643,6 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -9051,9 +8651,9 @@ } }, "node_modules/core-js": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.2.tgz", - "integrity": "sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==", + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.0.tgz", + "integrity": "sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -9061,13 +8661,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", - "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.0.tgz", + "integrity": "sha512-0w4LcLXsVEuNkIqwjjf9rjCoPhK8uqA4tMRh4Ge26vfLtUutshn+aRJU21I9LCJlh2QQHfisNToLjw1XEJLTWw==", "dev": true, - "peer": true, "dependencies": { - "browserslist": "^4.21.10" + "browserslist": "^4.22.1" }, "funding": { "type": "opencollective", @@ -9080,11 +8679,10 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cosmiconfig": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.4.tgz", - "integrity": "sha512-SF+2P8+o/PTV05rgsAjDzL4OFdVXAulSfC/L19VaeVT7+tpOOSscCt2QLxDZ+CLxF2WOiq6y1K5asvs8qUJT/Q==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, - "peer": true, "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -9110,15 +8708,13 @@ "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, - "peer": true + "dev": true }, "node_modules/cosmiconfig/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, - "peer": true, "dependencies": { "argparse": "^2.0.1" }, @@ -9126,12 +8722,102 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/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/create-jest/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/create-jest/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/create-jest/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/create-jest/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/create-jest/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/critters": { "version": "0.0.20", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", "dev": true, - "peer": true, "dependencies": { "chalk": "^4.1.0", "css-select": "^5.1.0", @@ -9147,7 +8833,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -9163,7 +8848,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "peer": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9180,7 +8864,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -9192,15 +8875,13 @@ "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, - "peer": true + "dev": true }, "node_modules/critters/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, - "peer": true, "engines": { "node": ">=8" } @@ -9210,7 +8891,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -9250,7 +8930,6 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", "dev": true, - "peer": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.21", @@ -9277,7 +8956,6 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, - "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -9304,7 +8982,6 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, - "peer": true, "engines": { "node": ">= 6" }, @@ -9317,7 +8994,6 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, - "peer": true, "bin": { "cssesc": "bin/cssesc" }, @@ -9335,8 +9011,7 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/cssstyle": { "version": "2.3.0", @@ -9587,7 +9262,6 @@ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, - "peer": true, "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -9802,7 +9476,6 @@ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, - "peer": true, "dependencies": { "execa": "^5.0.0" }, @@ -9851,7 +9524,6 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -9870,7 +9542,6 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -9889,8 +9560,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "peer": true + "dev": true }, "node_modules/diff-match-patch-typescript": { "version": "1.0.8", @@ -9922,15 +9592,13 @@ "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, - "peer": true + "dev": true }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, - "peer": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -9955,7 +9623,6 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, - "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -9975,15 +9642,13 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ], - "peer": true + ] }, "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, - "peer": true, "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -9996,7 +9661,6 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -10006,7 +9670,6 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, - "peer": true, "dependencies": { "domelementtype": "^2.3.0" }, @@ -10018,16 +9681,15 @@ } }, "node_modules/dompurify": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.5.tgz", - "integrity": "sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==" + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz", + "integrity": "sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w==" }, "node_modules/domutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, - "peer": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -10062,8 +9724,7 @@ "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, - "peer": true + "dev": true }, "node_modules/ejs": { "version": "3.1.9", @@ -10081,9 +9742,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.513", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.513.tgz", - "integrity": "sha512-cOB0xcInjm+E5qIssHeXJ29BaUyWpMyFKT5RB3bsLENDheCja0wMkHJyiPl0NBE/VzDI7JDuNEQWhe6RitEUcw==" + "version": "1.4.539", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.539.tgz", + "integrity": "sha512-wRmWJ8F7rgmINuI32S6r2SLrw/h/bJQsDSvBiq9GBfvc2Lh73qTOwn73r3Cf67mjVgFGJYcYtmERzySa5jIWlg==" }, "node_modules/emittery": { "version": "0.13.1", @@ -10107,7 +9768,6 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, - "peer": true, "engines": { "node": ">= 4" } @@ -10117,7 +9777,6 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -10159,7 +9818,6 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, - "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -10213,7 +9871,6 @@ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, - "peer": true, "dependencies": { "prr": "~1.0.1" }, @@ -10231,11 +9888,10 @@ } }, "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true, - "peer": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", + "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", + "dev": true }, "node_modules/esbuild": { "version": "0.18.17", @@ -10298,8 +9954,7 @@ "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, - "peer": true + "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", @@ -10422,17 +10077,17 @@ } }, "node_modules/eslint-plugin-deprecation/node_modules/@typescript-eslint/utils": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.0.tgz", - "integrity": "sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", + "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.4", + "@typescript-eslint/types": "6.7.4", + "@typescript-eslint/typescript-estree": "6.7.4", "semver": "^7.5.4" }, "engines": { @@ -10447,9 +10102,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.0.tgz", - "integrity": "sha512-ukVeKmMPAUA5SWjHenvyyXnirKfHKMdOsTZdn5tZx5EW05HGVQwBohigjFZGGj3zuv1cV6hc82FvWv6LdIbkgg==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz", + "integrity": "sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" @@ -10655,9 +10310,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -10827,7 +10482,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -10836,8 +10490,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/eventemitter3": { "version": "5.0.1", @@ -10850,7 +10503,6 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, - "peer": true, "engines": { "node": ">=0.8.x" } @@ -10896,16 +10548,16 @@ } }, "node_modules/expect": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.4.tgz", - "integrity": "sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { - "@jest/expect-utils": "^29.6.4", + "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3" + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -10927,7 +10579,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, - "peer": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -10969,8 +10620,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", @@ -10990,8 +10640,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "peer": true + ] }, "node_modules/external-editor": { "version": "3.1.0", @@ -11160,7 +10809,6 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, - "peer": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -11179,7 +10827,6 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, - "peer": true, "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -11228,9 +10875,9 @@ } }, "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==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/folder-hash": { @@ -11271,9 +10918,9 @@ } }, "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==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, "funding": [ { @@ -11323,7 +10970,6 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, - "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -11338,7 +10984,6 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -11348,7 +10993,6 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", "dev": true, - "peer": true, "engines": { "node": "*" }, @@ -11374,7 +11018,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -11412,20 +11055,19 @@ } }, "node_modules/fs-minipass/node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/fs-monkey": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", - "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", - "dev": true, - "peer": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -11492,7 +11134,6 @@ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, - "peer": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -11574,8 +11215,7 @@ "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, - "peer": true + "dev": true }, "node_modules/globals": { "version": "11.12.0", @@ -11630,7 +11270,6 @@ "resolved": "https://registry.npmjs.org/guess-parser/-/guess-parser-0.4.22.tgz", "integrity": "sha512-KcUWZ5ACGaBM69SbqwVIuWGoSAgD+9iJnchR9j/IarVI1jHVeXv+bUXBIMeqVMSKt3zrn0Dgf9UpcOEpPBLbSg==", "dev": true, - "peer": true, "dependencies": { "@wessberg/ts-evaluator": "0.0.27" }, @@ -11657,8 +11296,7 @@ "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, - "peer": true + "dev": true }, "node_modules/has": { "version": "1.0.3", @@ -11685,7 +11323,6 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -11698,7 +11335,6 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4" }, @@ -11717,7 +11353,6 @@ "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", "dev": true, - "peer": true, "dependencies": { "@assemblyscript/loader": "^0.10.1", "base64-js": "^1.2.0", @@ -11728,8 +11363,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/he": { "version": "1.2.0", @@ -11786,7 +11420,6 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, - "peer": true, "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -11809,7 +11442,6 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, - "peer": true, "dependencies": { "whatwg-encoding": "^1.0.5" }, @@ -11831,8 +11463,7 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ], - "peer": true + ] }, "node_modules/html-escaper": { "version": "2.0.2", @@ -11852,7 +11483,6 @@ "url": "https://github.com/sponsors/fb55" } ], - "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -11870,15 +11500,13 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "peer": true + "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, - "peer": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -11900,7 +11528,6 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "peer": true, "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -11915,7 +11542,6 @@ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, - "peer": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", @@ -11930,7 +11556,6 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, - "peer": true, "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -11954,8 +11579,7 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/https-proxy-agent": { "version": "5.0.1", @@ -12020,7 +11644,6 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, - "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -12099,7 +11722,6 @@ "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, "optional": true, - "peer": true, "bin": { "image-size": "bin/image-size.js" }, @@ -12339,7 +11961,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true, - "peer": true, "engines": { "node": ">= 10" } @@ -12503,7 +12124,6 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -12554,8 +12174,7 @@ "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/is-wsl": { "version": "2.2.0", @@ -12569,6 +12188,11 @@ "node": ">=8" } }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -12585,7 +12209,6 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -12692,9 +12315,9 @@ "integrity": "sha512-4dG1D1x/7g8PwHS9aK6QV5V94+ZvyP4+d19qDv43EzImmrndysIl4prmJ1hWWIGCqrZHyaHBm6BSEWHOLnpoNw==" }, "node_modules/jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -12834,13 +12457,13 @@ } }, "node_modules/jest-changed-files": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.6.3.tgz", - "integrity": "sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { "execa": "^5.0.0", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -12848,28 +12471,28 @@ } }, "node_modules/jest-circus": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.4.tgz", - "integrity": "sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/expect": "^29.6.4", - "@jest/test-result": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-runtime": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -12949,22 +12572,21 @@ } }, "node_modules/jest-cli": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.4.tgz", - "integrity": "sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "dependencies": { - "@jest/core": "^29.6.4", - "@jest/test-result": "^29.6.4", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -13053,31 +12675,31 @@ } }, "node_modules/jest-config": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.4.tgz", - "integrity": "sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.6.4", + "@jest/test-sequencer": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.6.4", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.6.4", - "jest-environment-node": "^29.6.4", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", "jest-get-type": "^29.6.3", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-runner": "^29.6.4", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -13174,15 +12796,15 @@ "dev": true }, "node_modules/jest-diff": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.4.tgz", - "integrity": "sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13259,9 +12881,9 @@ } }, "node_modules/jest-docblock": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.6.3.tgz", - "integrity": "sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -13271,16 +12893,16 @@ } }, "node_modules/jest-each": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.3.tgz", - "integrity": "sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", "jest-get-type": "^29.6.3", - "jest-util": "^29.6.3", - "pretty-format": "^29.6.3" + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13357,18 +12979,18 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.6.4.tgz", - "integrity": "sha512-K6wfgUJ16DoMs02JYFid9lOsqfpoVtyJxpRlnTxUHzvZWBnnh2VNGRB9EC1Cro96TQdq5TtSjb3qUjNaJP9IyA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/jsdom": "^20.0.0", "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", "jsdom": "^20.0.0" }, "engines": { @@ -13620,9 +13242,9 @@ } }, "node_modules/jest-environment-jsdom/node_modules/ws": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", - "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, "engines": { "node": ">=10.0.0" @@ -13650,17 +13272,17 @@ } }, "node_modules/jest-environment-node": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.4.tgz", - "integrity": "sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.6.3", - "jest-util": "^29.6.3" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13776,9 +13398,9 @@ } }, "node_modules/jest-haste-map": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.4.tgz", - "integrity": "sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -13788,8 +13410,8 @@ "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", "jest-regex-util": "^29.6.3", - "jest-util": "^29.6.3", - "jest-worker": "^29.6.4", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -13825,28 +13447,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz", - "integrity": "sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz", - "integrity": "sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.6.4", + "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -13923,9 +13545,9 @@ } }, "node_modules/jest-message-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.3.tgz", - "integrity": "sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", @@ -13934,7 +13556,7 @@ "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -14013,14 +13635,14 @@ } }, "node_modules/jest-mock": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.3.tgz", - "integrity": "sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.6.3" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -14081,17 +13703,17 @@ } }, "node_modules/jest-resolve": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.4.tgz", - "integrity": "sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.6.3", - "jest-validate": "^29.6.3", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -14101,13 +13723,13 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz", - "integrity": "sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "dependencies": { "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.6.4" + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -14184,30 +13806,30 @@ } }, "node_modules/jest-runner": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.4.tgz", - "integrity": "sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "dependencies": { - "@jest/console": "^29.6.4", - "@jest/environment": "^29.6.4", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.6.3", - "jest-environment-node": "^29.6.4", - "jest-haste-map": "^29.6.4", - "jest-leak-detector": "^29.6.3", - "jest-message-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-runtime": "^29.6.4", - "jest-util": "^29.6.3", - "jest-watcher": "^29.6.4", - "jest-worker": "^29.6.4", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -14305,17 +13927,17 @@ } }, "node_modules/jest-runtime": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.4.tgz", - "integrity": "sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { - "@jest/environment": "^29.6.4", - "@jest/fake-timers": "^29.6.4", - "@jest/globals": "^29.6.4", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", @@ -14323,13 +13945,13 @@ "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-mock": "^29.6.3", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.6.4", - "jest-snapshot": "^29.6.4", - "jest-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -14408,9 +14030,9 @@ } }, "node_modules/jest-snapshot": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.4.tgz", - "integrity": "sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { "@babel/core": "^7.11.6", @@ -14418,20 +14040,20 @@ "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.6.4", - "@jest/transform": "^29.6.4", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.6.4", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.6.4", + "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.6.4", - "jest-message-util": "^29.6.3", - "jest-util": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.6.3", + "pretty-format": "^29.7.0", "semver": "^7.5.3" }, "engines": { @@ -14509,9 +14131,9 @@ } }, "node_modules/jest-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz", - "integrity": "sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -14596,9 +14218,9 @@ } }, "node_modules/jest-validate": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.3.tgz", - "integrity": "sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { "@jest/types": "^29.6.3", @@ -14606,7 +14228,7 @@ "chalk": "^4.0.0", "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.6.3" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -14695,18 +14317,18 @@ } }, "node_modules/jest-watcher": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.4.tgz", - "integrity": "sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "dependencies": { - "@jest/test-result": "^29.6.4", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -14784,13 +14406,13 @@ } }, "node_modules/jest-worker": { - "version": "29.6.4", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz", - "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { "@types/node": "*", - "jest-util": "^29.6.3", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -14827,7 +14449,6 @@ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", "dev": true, - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -14860,7 +14481,6 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", "dev": true, - "peer": true, "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -14906,8 +14526,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/jsesc": { "version": "2.5.2", @@ -14998,7 +14617,6 @@ "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, - "peer": true, "dependencies": { "source-map-support": "^0.5.5" } @@ -15033,7 +14651,6 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -15052,7 +14669,6 @@ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, - "peer": true, "engines": { "node": ">= 8" } @@ -15062,7 +14678,6 @@ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", "dev": true, - "peer": true, "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.7.3" @@ -15073,7 +14688,6 @@ "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", "dev": true, - "peer": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -15100,7 +14714,6 @@ "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", "dev": true, - "peer": true, "dependencies": { "klona": "^2.0.4" }, @@ -15122,7 +14735,6 @@ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "optional": true, - "peer": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -15137,7 +14749,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -15169,7 +14780,6 @@ "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", "dev": true, - "peer": true, "dependencies": { "webpack-sources": "^3.0.0" }, @@ -15466,7 +15076,6 @@ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, - "peer": true, "engines": { "node": ">=6.11.5" } @@ -15476,7 +15085,6 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "dev": true, - "peer": true, "engines": { "node": ">= 12.13.0" } @@ -15922,7 +15530,6 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -15932,7 +15539,6 @@ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, - "peer": true, "dependencies": { "fs-monkey": "^1.0.4" }, @@ -15944,8 +15550,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", @@ -15966,7 +15571,6 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -15988,7 +15592,6 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "peer": true, "bin": { "mime": "cli.js" }, @@ -16031,7 +15634,6 @@ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, - "peer": true, "dependencies": { "schema-utils": "^4.0.0" }, @@ -16050,8 +15652,7 @@ "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, - "peer": true + "dev": true }, "node_modules/minimatch": { "version": "3.1.2", @@ -16131,9 +15732,9 @@ } }, "node_modules/minipass-fetch/node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -16339,7 +15940,6 @@ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, - "peer": true, "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -16374,7 +15974,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -16394,7 +15993,6 @@ "integrity": "sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==", "dev": true, "optional": true, - "peer": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.6.3", @@ -16413,7 +16011,6 @@ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, - "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -16434,8 +16031,7 @@ "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, - "peer": true + "dev": true }, "node_modules/ng-mocks": { "version": "14.11.0", @@ -16486,7 +16082,6 @@ "os": [ "!win32" ], - "peer": true, "dependencies": { "node-addon-api": "^3.0.0", "node-gyp-build": "^4.2.2" @@ -16503,7 +16098,6 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true, - "peer": true, "engines": { "node": ">= 6.13.0" } @@ -16598,7 +16192,6 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -16728,7 +16321,6 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "peer": true, "dependencies": { "boolbase": "^1.0.0" }, @@ -16958,7 +16550,6 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -16968,7 +16559,6 @@ "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", "dev": true, - "peer": true, "engines": { "node": ">= 10.12.0" } @@ -16977,15 +16567,13 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true, - "peer": true + "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, - "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -16998,7 +16586,6 @@ "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, - "peer": true, "engines": { "node": ">= 0.8" } @@ -17234,7 +16821,6 @@ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "peer": true, "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" @@ -17248,7 +16834,6 @@ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, - "peer": true, "engines": { "node": ">= 4" } @@ -17345,7 +16930,6 @@ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, - "peer": true, "engines": { "node": ">= 0.10" } @@ -17367,7 +16951,6 @@ "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", "dev": true, - "peer": true, "dependencies": { "entities": "^4.3.0", "parse5": "^7.0.0", @@ -17382,7 +16965,6 @@ "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", "dev": true, - "peer": true, "dependencies": { "parse5": "^7.0.0" }, @@ -17395,7 +16977,6 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -17462,8 +17043,7 @@ "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, - "peer": true + "dev": true }, "node_modules/path-type": { "version": "4.0.0", @@ -17513,7 +17093,6 @@ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "optional": true, - "peer": true, "engines": { "node": ">=6" } @@ -17532,7 +17111,6 @@ "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.0.0.tgz", "integrity": "sha512-641nAmJS4k4iqpNUqfggqUBUMmlw0ZoM5VZKdQkV2e970Inn3Tk9kroCc1wpsYLD07vCwpys5iY0d3xI/9WkTg==", "dev": true, - "peer": true, "dependencies": { "eventemitter-asyncresource": "^1.0.0", "hdr-histogram-js": "^2.0.1", @@ -17547,7 +17125,6 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, - "peer": true, "dependencies": { "find-up": "^6.3.0" }, @@ -17563,7 +17140,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, - "peer": true, "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -17580,7 +17156,6 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, - "peer": true, "dependencies": { "p-locate": "^6.0.0" }, @@ -17596,7 +17171,6 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, - "peer": true, "dependencies": { "yocto-queue": "^1.0.0" }, @@ -17612,7 +17186,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "peer": true, "dependencies": { "p-limit": "^4.0.0" }, @@ -17628,7 +17201,6 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, - "peer": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -17638,7 +17210,6 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "peer": true, "engines": { "node": ">=12.20" }, @@ -17647,9 +17218,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -17665,7 +17236,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -17680,7 +17250,6 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", "dev": true, - "peer": true, "dependencies": { "cosmiconfig": "^8.2.0", "jiti": "^1.18.2", @@ -17703,7 +17272,6 @@ "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, - "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -17716,7 +17284,6 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, - "peer": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", @@ -17734,7 +17301,6 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, - "peer": true, "dependencies": { "postcss-selector-parser": "^6.0.4" }, @@ -17750,7 +17316,6 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "peer": true, "dependencies": { "icss-utils": "^5.0.0" }, @@ -17766,7 +17331,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17821,7 +17385,6 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, - "peer": true, "engines": { "node": ">=6" }, @@ -17830,9 +17393,9 @@ } }, "node_modules/pretty-format": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.3.tgz", - "integrity": "sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { "@jest/schemas": "^29.6.3", @@ -17929,7 +17492,6 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "peer": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -17943,7 +17505,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, - "peer": true, "engines": { "node": ">= 0.10" } @@ -17959,8 +17520,7 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "node_modules/psl": { "version": "1.9.0", @@ -17978,9 +17538,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.3.tgz", - "integrity": "sha512-KddyFewCsO0j3+np81IQ+SweXLDnDQTs5s67BOnrYmYe/yNmUhttQyGsYzy8yUnoljGAQ9sl38YB4vH8ur7Y+w==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", + "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", "dev": true, "funding": [ { @@ -17998,7 +17558,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, - "peer": true, "dependencies": { "side-channel": "^1.0.4" }, @@ -18038,7 +17597,6 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "peer": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -18048,7 +17606,6 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -18058,7 +17615,6 @@ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, - "peer": true, "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -18074,7 +17630,6 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -18245,19 +17800,19 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -18304,11 +17859,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -18353,15 +17903,13 @@ "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, - "peer": true + "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==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "peer": true, "dependencies": { "regenerate": "^1.4.2" }, @@ -18379,7 +17927,6 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "peer": true, "dependencies": { "@babel/runtime": "^7.8.4" } @@ -18393,15 +17940,13 @@ "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, - "peer": true + "dev": true }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, - "peer": true, "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -18419,7 +17964,6 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "peer": true, "dependencies": { "jsesc": "~0.5.0" }, @@ -18432,7 +17976,6 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, - "peer": true, "bin": { "jsesc": "bin/jsesc" } @@ -18502,7 +18045,6 @@ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, - "peer": true, "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", @@ -18519,7 +18061,6 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "peer": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -18534,7 +18075,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -18600,11 +18140,10 @@ } }, "node_modules/rollup": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.0.tgz", - "integrity": "sha512-nszM8DINnx1vSS+TpbWKMkxem0CDWk3cSit/WWCBVs9/JZ1I/XLwOsiUglYuYReaeWWSsW9kge5zE5NZtf/a4w==", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -18708,7 +18247,6 @@ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.2.tgz", "integrity": "sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg==", "dev": true, - "peer": true, "dependencies": { "neo-async": "^2.6.2" }, @@ -18742,19 +18280,17 @@ } }, "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "dev": true, - "optional": true, - "peer": true + "optional": true }, "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, - "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -18775,7 +18311,6 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, - "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -18794,15 +18329,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true, - "peer": true + "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, - "peer": true, "dependencies": { "node-forge": "^1" }, @@ -18845,7 +18378,6 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "peer": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -18869,15 +18401,13 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "peer": true + "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, - "peer": true, "dependencies": { "randombytes": "^2.1.0" } @@ -18887,7 +18417,6 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, - "peer": true, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -18906,7 +18435,6 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } @@ -18916,7 +18444,6 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "peer": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -18931,22 +18458,19 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "peer": true + "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, - "peer": true + "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, - "peer": true, "engines": { "node": ">= 0.6" } @@ -18956,7 +18480,6 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, - "peer": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -18992,15 +18515,13 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "peer": true, "dependencies": { "kind-of": "^6.0.2" }, @@ -19039,7 +18560,6 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, - "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -19096,7 +18616,6 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -19216,7 +18735,6 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "peer": true, "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -19246,7 +18764,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -19302,7 +18819,6 @@ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.1.tgz", "integrity": "sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA==", "dev": true, - "peer": true, "dependencies": { "abab": "^2.0.6", "iconv-lite": "^0.6.3", @@ -19324,7 +18840,6 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -19337,7 +18852,6 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -19348,7 +18862,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -19380,9 +18893,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", "dev": true }, "node_modules/spdy": { @@ -19390,7 +18903,6 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "peer": true, "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -19407,7 +18919,6 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "peer": true, "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -19422,7 +18933,6 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -19456,9 +18966,9 @@ } }, "node_modules/ssri/node_modules/minipass": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", - "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -19490,7 +19000,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -19729,7 +19238,6 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -19816,7 +19324,6 @@ "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -19835,7 +19342,6 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, - "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", @@ -19870,7 +19376,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19887,7 +19392,6 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "peer": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -19897,7 +19401,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -19907,7 +19410,6 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, - "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -19921,15 +19423,13 @@ "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, - "peer": true + "dev": true }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -19948,7 +19448,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -19963,8 +19462,7 @@ "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, - "peer": true + "dev": true }, "node_modules/test-exclude": { "version": "6.0.0", @@ -19996,8 +19494,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/tinycolor2": { "version": "1.6.0", @@ -20058,7 +19555,6 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "peer": true, "engines": { "node": ">=0.6" } @@ -20101,7 +19597,6 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, - "peer": true, "dependencies": { "punycode": "^2.1.1" }, @@ -20119,7 +19614,6 @@ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, - "peer": true, "bin": { "tree-kill": "cli.js" } @@ -20301,7 +19795,6 @@ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "peer": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -20314,8 +19807,7 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/typescript": { "version": "5.1.6", @@ -20355,7 +19847,6 @@ "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, - "peer": true, "engines": { "node": ">=4" } @@ -20365,7 +19856,6 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "peer": true, "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -20379,7 +19869,6 @@ "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, - "peer": true, "engines": { "node": ">=4" } @@ -20389,7 +19878,6 @@ "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, - "peer": true, "engines": { "node": ">=4" } @@ -20432,7 +19920,6 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -20447,9 +19934,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "funding": [ { "type": "opencollective", @@ -20511,7 +19998,6 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, - "peer": true, "engines": { "node": ">= 0.4.0" } @@ -20575,7 +20061,6 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -20585,7 +20070,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.7.tgz", "integrity": "sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==", "dev": true, - "peer": true, "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.26", @@ -20642,7 +20126,6 @@ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, - "peer": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -20652,7 +20135,6 @@ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, - "peer": true, "dependencies": { "xml-name-validator": "^3.0.0" }, @@ -20674,7 +20156,6 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, - "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -20688,7 +20169,6 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "peer": true, "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -20752,7 +20232,6 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true, - "peer": true, "engines": { "node": ">=10.4" } @@ -20762,7 +20241,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", "dev": true, - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.0", @@ -20871,7 +20349,6 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", "dev": true, - "peer": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.12", @@ -20900,7 +20377,6 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "dev": true, - "peer": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -20960,7 +20436,6 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, - "peer": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", @@ -20980,11 +20455,10 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", - "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, - "peer": true, "engines": { "node": ">=10.0.0" }, @@ -21006,7 +20480,6 @@ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", "dev": true, - "peer": true, "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" @@ -21020,7 +20493,6 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "peer": true, "engines": { "node": ">=10.13.0" } @@ -21030,7 +20502,6 @@ "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, - "peer": true, "dependencies": { "typed-assert": "^1.0.8" }, @@ -21052,7 +20523,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -21069,7 +20539,6 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "peer": true, "peerDependencies": { "ajv": "^6.9.1" } @@ -21079,7 +20548,6 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -21093,7 +20561,6 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "peer": true, "engines": { "node": ">=4.0" } @@ -21102,15 +20569,13 @@ "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, - "peer": true + "dev": true }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -21155,7 +20620,6 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, - "peer": true, "dependencies": { "iconv-lite": "0.4.24" } @@ -21164,15 +20628,13 @@ "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, - "peer": true + "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, - "peer": true, "dependencies": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -21210,8 +20672,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", @@ -21372,8 +20833,7 @@ "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, - "peer": true + "dev": true }, "node_modules/xmlchars": { "version": "2.2.0", diff --git a/package.json b/package.json index 9eabfb1ddb34..90a2fba3e4e8 100644 --- a/package.json +++ b/package.json @@ -13,18 +13,18 @@ "node_modules" ], "dependencies": { - "@angular/animations": "16.2.6", - "@angular/cdk": "16.2.5", - "@angular/common": "16.2.6", - "@angular/compiler": "16.2.6", - "@angular/core": "16.2.6", - "@angular/forms": "16.2.6", - "@angular/localize": "16.2.6", - "@angular/material": "16.2.5", - "@angular/platform-browser": "16.2.6", - "@angular/platform-browser-dynamic": "16.2.6", - "@angular/router": "16.2.6", - "@angular/service-worker": "16.2.6", + "@angular/animations": "16.2.7", + "@angular/cdk": "16.2.6", + "@angular/common": "16.2.7", + "@angular/compiler": "16.2.7", + "@angular/core": "16.2.7", + "@angular/forms": "16.2.7", + "@angular/localize": "16.2.7", + "@angular/material": "16.2.6", + "@angular/platform-browser": "16.2.7", + "@angular/platform-browser-dynamic": "16.2.7", + "@angular/router": "16.2.7", + "@angular/service-worker": "16.2.7", "@ctrl/ngx-emoji-mart": "9.2.0", "@danielmoncada/angular-datetime-picker": "16.0.1", "@fingerprintjs/fingerprintjs": "4.1.0", @@ -33,24 +33,24 @@ "@fortawesome/fontawesome-svg-core": "6.4.2", "@fortawesome/free-regular-svg-icons": "6.4.2", "@fortawesome/free-solid-svg-icons": "6.4.2", - "@ls1intum/apollon": "2.14.5", + "@ls1intum/apollon": "2.15.0", "@ng-bootstrap/ng-bootstrap": "15.1.1", "@ngx-translate/core": "15.0.0", "@ngx-translate/http-loader": "8.0.0", - "@sentry/angular-ivy": "7.71.0", - "@sentry/tracing": "7.71.0", - "@sentry/types": "7.71.0", + "@sentry/angular-ivy": "7.73.0", + "@sentry/tracing": "7.73.0", + "@sentry/types": "7.73.0", "@swimlane/ngx-charts": "20.4.1", "@swimlane/ngx-graph": "8.2.2", "ace-builds": "1.28.0", "bootstrap": "5.3.1", "brace": "0.11.1", "compare-versions": "6.1.0", - "core-js": "3.32.2", + "core-js": "3.33.0", "crypto-js": "4.1.1", "dayjs": "1.11.10", "diff-match-patch-typescript": "1.0.8", - "dompurify": "3.0.5", + "dompurify": "3.0.6", "export-to-csv": "0.2.1", "franc-min": "6.1.0", "interactjs": "1.10.19", @@ -93,35 +93,37 @@ "semver": "7.5.4", "word-wrap": "1.2.5", "debug": "4.3.4", - "tough-cookie": "4.1.3" + "tough-cookie": "4.1.3", + "postcss": "8.4.31" }, "devDependencies": { "@angular-builders/jest": "16.0.1", + "@angular-devkit/build-angular": "16.2.4", "@angular-eslint/builder": "16.2.0", "@angular-eslint/eslint-plugin": "16.2.0", "@angular-eslint/eslint-plugin-template": "16.2.0", "@angular-eslint/schematics": "16.2.0", "@angular-eslint/template-parser": "16.2.0", - "@angular/cli": "16.2.3", - "@angular/compiler-cli": "16.2.6", - "@angular/language-service": "16.2.6", + "@angular/cli": "16.2.4", + "@angular/compiler-cli": "16.2.7", + "@angular/language-service": "16.2.7", "@types/crypto-js": "4.1.2", "@types/d3-shape": "3.1.3", "@types/dompurify": "3.0.3", "@types/jest": "29.5.5", "@types/lodash-es": "4.17.9", - "@types/node": "20.6.5", + "@types/node": "20.8.2", "@types/papaparse": "5.3.9", "@types/showdown": "2.0.2", "@types/smoothscroll-polyfill": "0.3.1", "@types/sockjs-client": "1.5.2", "@types/uuid": "9.0.4", - "@typescript-eslint/eslint-plugin": "6.7.3", - "@typescript-eslint/parser": "6.7.3", + "@typescript-eslint/eslint-plugin": "6.7.4", + "@typescript-eslint/parser": "6.7.4", "eslint": "8.50.0", "eslint-config-prettier": "9.0.0", "eslint-plugin-deprecation": "2.0.0", - "eslint-plugin-jest": "27.4.0", + "eslint-plugin-jest": "27.4.2", "eslint-plugin-jest-extended": "2.0.0", "eslint-plugin-prettier": "5.0.0", "folder-hash": "4.0.4", diff --git a/src/test/cypress/package-lock.json b/src/test/cypress/package-lock.json index 8fd1c857ccb4..157aad694a3e 100644 --- a/src/test/cypress/package-lock.json +++ b/src/test/cypress/package-lock.json @@ -8,7 +8,7 @@ "license": "MIT", "devDependencies": { "@4tw/cypress-drag-drop": "2.2.5", - "@types/node": "20.7.1", + "@types/node": "20.8.2", "cypress": "12.17.4", "cypress-cloud": "2.0.0-beta.1", "cypress-file-upload": "5.0.8", @@ -182,9 +182,9 @@ } }, "node_modules/@cypress/request": { - "version": "2.88.12", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", - "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -200,7 +200,7 @@ "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "~6.10.3", + "qs": "6.10.4", "safe-buffer": "^5.1.2", "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", @@ -301,9 +301,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.7.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.7.1.tgz", - "integrity": "sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==", + "version": "20.8.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", + "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==", "dev": true }, "node_modules/@types/sinonjs__fake-timers": { diff --git a/src/test/cypress/package.json b/src/test/cypress/package.json index f957ff8b4260..9b47a74b6686 100644 --- a/src/test/cypress/package.json +++ b/src/test/cypress/package.json @@ -8,7 +8,7 @@ ], "devDependencies": { "@4tw/cypress-drag-drop": "2.2.5", - "@types/node": "20.7.1", + "@types/node": "20.8.2", "cypress": "12.17.4", "cypress-cloud": "2.0.0-beta.1", "cypress-file-upload": "5.0.8", @@ -21,7 +21,8 @@ "semver": "7.5.3", "word-wrap": "1.2.3", "debug": "4.3.4", - "tough-cookie": "4.1.3" + "tough-cookie": "4.1.3", + "@cypress/request": "3.0.1" }, "scripts": { "cypress:open": "cypress open", From 548738945cfcf68b7b35b5e4da735b3c5300ef4e Mon Sep 17 00:00:00 2001 From: Stephan Krusche Date: Wed, 4 Oct 2023 08:35:34 +0200 Subject: [PATCH 25/39] Development: Bump version to 6.6.0 --- build.gradle | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index a86b1492c865..38ef660f1364 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ plugins { } group = "de.tum.in.www1.artemis" -version = "6.5.4" +version = "6.6.0" description = "Interactive Learning with Individual Feedback" sourceCompatibility=17 diff --git a/package-lock.json b/package-lock.json index 6c9ff93a8221..b4a70dd2f53b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "artemis", - "version": "6.5.4", + "version": "6.6.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "artemis", - "version": "6.5.4", + "version": "6.6.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 90a2fba3e4e8..63d0b2833f15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "artemis", - "version": "6.5.4", + "version": "6.6.0", "description": "Interactive Learning with Individual Feedback", "private": true, "license": "MIT", From 14cf78c9efb1847b8ce9b4267ec61ba3eaf6e18a Mon Sep 17 00:00:00 2001 From: Paul Schwind Date: Wed, 4 Oct 2023 18:08:38 +0200 Subject: [PATCH 26/39] Development: Add client support for programming exercise feedback suggestions (#7099) --- .../assessment-detail.component.html | 84 ------ .../assessment-detail.component.scss | 17 -- .../assessment-detail.component.ts | 56 ---- .../assessment/assessment-shared.module.ts | 10 +- .../webapp/app/assessment/athena.service.ts | 22 +- ...ment-correction-round-badge.component.html | 0 ...ment-correction-round-badge.component.scss | 0 ...ssment-correction-round-badge.component.ts | 0 ...nreferenced-feedback-detail.component.html | 92 ++++++ ...nreferenced-feedback-detail.component.scss | 42 +++ .../unreferenced-feedback-detail.component.ts | 70 +++++ .../webapp/app/entities/feedback.model.ts | 82 ++++- ...-tutor-assessment-container.component.html | 6 + ...or-tutor-assessment-container.component.ts | 40 ++- ...-inline-feedback-suggestion.component.html | 28 ++ ...-inline-feedback-suggestion.component.scss | 28 ++ ...nt-inline-feedback-suggestion.component.ts | 38 +++ ...-assessment-inline-feedback.component.html | 5 +- ...or-assessment-inline-feedback.component.ts | 17 +- .../programming-manual-assessment.module.ts | 15 +- .../ace/code-editor-ace.component.html | 39 ++- .../ace/code-editor-ace.component.ts | 284 ++++++++++-------- .../shared/code-editor/code-editor.module.ts | 2 + .../code-editor-container.component.html | 6 +- .../code-editor-container.component.ts | 44 ++- ...e-editor-file-browser-badge.component.html | 4 + ...e-editor-file-browser-badge.component.scss | 18 ++ ...ode-editor-file-browser-badge.component.ts | 36 +++ ...de-editor-file-browser-file.component.html | 8 +- ...code-editor-file-browser-file.component.ts | 2 + ...-editor-file-browser-folder.component.html | 18 +- ...de-editor-file-browser-folder.component.ts | 3 +- .../code-editor-file-browser.component.html | 10 +- .../code-editor-file-browser.component.ts | 66 ++-- .../code-editor-file-browser.scss | 2 +- .../code-editor/model/code-editor.model.ts | 17 ++ .../feedback-suggestion-badge.component.html | 4 + .../feedback-suggestion-badge.component.scss | 13 + .../feedback-suggestion-badge.component.ts | 47 +++ .../shared/feedback/feedback.module.ts | 5 +- .../item/programming-feedback-item.service.ts | 38 ++- .../unreferenced-feedback.component.html | 44 +-- .../unreferenced-feedback.component.ts | 46 ++- .../text-submission-assessment.component.ts | 2 +- .../text-submission-assessment.module.ts | 2 + .../textblock-feedback-editor.component.html | 7 +- .../textblock-feedback-editor.component.scss | 6 - .../textblock-feedback-editor.component.ts | 8 +- ...grading-instruction-link-icon.component.ts | 6 +- .../ace-editor/ace-editor.component.ts | 2 +- .../content/scss/themes/_dark-variables.scss | 5 + .../scss/themes/_default-variables.scss | 7 + src/main/webapp/i18n/de/assessment.json | 14 +- src/main/webapp/i18n/de/editor.json | 5 +- src/main/webapp/i18n/de/textAssessment.json | 1 - src/main/webapp/i18n/en/assessment.json | 14 +- src/main/webapp/i18n/en/editor.json | 5 +- src/main/webapp/i18n/en/textAssessment.json | 2 - .../AbstractExerciseAssessmentPage.ts | 4 +- ...erenced-feedback-detail.component.spec.ts} | 51 +++- .../code-editor-ace.component.spec.ts | 141 +++++---- ...code-editor-file-browser.component.spec.ts | 30 +- ...line-feedback-suggestion.component.spec.ts | 45 +++ ...ditor-file-browser-badge.component.spec.ts | 50 +++ ...eedback-suggestion-badge.component.spec.ts | 70 +++++ ...participation-submission.component.spec.ts | 4 +- ...tor-assessment-container.component.spec.ts | 53 ++++ ...sessment-inline-feedback.component.spec.ts | 2 +- .../unreferenced-feedback.component.spec.ts | 34 ++- ...xt-submission-assessment.component.spec.ts | 6 +- ...extblock-assessment-card.component.spec.ts | 2 +- ...extblock-feedback-editor.component.spec.ts | 2 +- .../spec/entities/feedback.model.spec.ts | 94 +++++- .../mocks/service/mock-athena-service.ts | 7 +- .../mocks/service/mock-athena.service.ts | 12 + .../mocks/service/mock-resize-observer.ts | 21 ++ .../code-editor-container.integration.spec.ts | 34 ++- .../spec/service/athena.service.spec.ts | 4 +- 78 files changed, 1643 insertions(+), 517 deletions(-) delete mode 100644 src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.html delete mode 100644 src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.scss delete mode 100644 src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.ts rename src/main/webapp/app/assessment/{assessment-detail => unreferenced-feedback-detail}/assessment-correction-round-badge/assessment-correction-round-badge.component.html (100%) rename src/main/webapp/app/assessment/{assessment-detail => unreferenced-feedback-detail}/assessment-correction-round-badge/assessment-correction-round-badge.component.scss (100%) rename src/main/webapp/app/assessment/{assessment-detail => unreferenced-feedback-detail}/assessment-correction-round-badge/assessment-correction-round-badge.component.ts (100%) create mode 100644 src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.html create mode 100644 src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.scss create mode 100644 src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.ts create mode 100644 src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.html create mode 100644 src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.scss create mode 100644 src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.ts create mode 100644 src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.html create mode 100644 src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.scss create mode 100644 src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.ts create mode 100644 src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.html create mode 100644 src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.scss create mode 100644 src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.ts rename src/test/javascript/spec/component/assessment-shared/{assessment-detail.component.spec.ts => unreferenced-feedback-detail.component.spec.ts} (62%) create mode 100644 src/test/javascript/spec/component/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.spec.ts create mode 100644 src/test/javascript/spec/component/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.spec.ts create mode 100644 src/test/javascript/spec/component/exercises/shared/feedback/feedback-suggestion-badge.component.spec.ts create mode 100644 src/test/javascript/spec/helpers/mocks/service/mock-athena.service.ts create mode 100644 src/test/javascript/spec/helpers/mocks/service/mock-resize-observer.ts diff --git a/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.html b/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.html deleted file mode 100644 index 1aa0e32de2f5..000000000000 --- a/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.html +++ /dev/null @@ -1,84 +0,0 @@ -

-
- - - - - Automatic - -
-
-
- - -
-
-
- -
- -
-
-
-
- {{ assessment.gradingInstruction!.feedback }} -
- -
-
- -
- {{ 'artemisApp.exampleSubmission.feedback.' + assessment.correctionStatus! | artemisTranslate }} - - {{ 'artemisApp.exampleSubmission.feedback.' + assessment.correctionStatus! | artemisTranslate }} - - - - - - - -
- - -
-
diff --git a/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.scss b/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.scss deleted file mode 100644 index 1d1f32caac0d..000000000000 --- a/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.scss +++ /dev/null @@ -1,17 +0,0 @@ -.color-cyan { - background-color: rgba(23, 162, 184, 0.5); -} - -.color-orange { - background-color: rgba(255, 128, 0, 0.5); -} - -.assessment-label { - padding-left: 5px; - padding-right: 5px; -} - -.card-body { - padding-top: 5px; - padding-bottom: 5px; -} diff --git a/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.ts b/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.ts deleted file mode 100644 index a30c4b1ce861..000000000000 --- a/src/main/webapp/app/assessment/assessment-detail/assessment-detail.component.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { faExclamation, faExclamationTriangle, faQuestionCircle, faRobot, faTrashAlt } from '@fortawesome/free-solid-svg-icons'; -import { Feedback, FeedbackType } from 'app/entities/feedback.model'; -import { StructuredGradingCriterionService } from 'app/exercises/shared/structured-grading-criterion/structured-grading-criterion.service'; -import { ButtonSize } from 'app/shared/components/button.component'; -import { Subject } from 'rxjs'; - -@Component({ - selector: 'jhi-assessment-detail', - templateUrl: './assessment-detail.component.html', - styleUrls: ['./assessment-detail.component.scss'], -}) -export class AssessmentDetailComponent { - @Input() public assessment: Feedback; - @Output() public assessmentChange = new EventEmitter(); - @Output() public deleteAssessment = new EventEmitter(); - @Input() public readOnly: boolean; - @Input() highlightDifferences: boolean; - - readonly FeedbackType_AUTOMATIC = FeedbackType.AUTOMATIC; - readonly ButtonSize = ButtonSize; - - // Icons - faTrashAlt = faTrashAlt; - faRobot = faRobot; - faQuestionCircle = faQuestionCircle; - faExclamation = faExclamation; - faExclamationTriangle = faExclamationTriangle; - - private dialogErrorSource = new Subject(); - dialogError$ = this.dialogErrorSource.asObservable(); - - constructor(public structuredGradingCriterionService: StructuredGradingCriterionService) {} - - /** - * Emits assessment changes to parent component - */ - public emitChanges(): void { - if (this.assessment.type === FeedbackType.AUTOMATIC) { - this.assessment.type = FeedbackType.AUTOMATIC_ADAPTED; - } - this.assessmentChange.emit(this.assessment); - } - /** - * Emits the deletion of an assessment - */ - public delete() { - this.deleteAssessment.emit(this.assessment); - this.dialogErrorSource.next(''); - } - - updateAssessmentOnDrop(event: Event) { - this.structuredGradingCriterionService.updateFeedbackWithStructuredGradingInstructionEvent(this.assessment, event); - this.assessmentChange.emit(this.assessment); - } -} diff --git a/src/main/webapp/app/assessment/assessment-shared.module.ts b/src/main/webapp/app/assessment/assessment-shared.module.ts index beb87402f744..e6c49518d6d4 100644 --- a/src/main/webapp/app/assessment/assessment-shared.module.ts +++ b/src/main/webapp/app/assessment/assessment-shared.module.ts @@ -4,7 +4,7 @@ import { AssessmentHeaderComponent } from './assessment-header/assessment-header import { AssessmentLayoutComponent } from './assessment-layout/assessment-layout.component'; import { AssessmentComplaintAlertComponent } from './assessment-complaint-alert/assessment-complaint-alert.component'; import { ScoreDisplayComponent } from '../shared/score-display/score-display.component'; -import { AssessmentDetailComponent } from './assessment-detail/assessment-detail.component'; +import { UnreferencedFeedbackDetailComponent } from 'app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component'; import { ArtemisSharedComponentModule } from 'app/shared/components/shared-component.module'; import { ArtemisComplaintsForTutorModule } from 'app/complaints/complaints-for-tutor/complaints-for-tutor.module'; import { AssessmentLocksComponent } from 'app/assessment/assessment-locks/assessment-locks.component'; @@ -12,8 +12,9 @@ import { RouterModule } from '@angular/router'; import { assessmentLocksRoute } from 'app/assessment/assessment-locks/assessment-locks.route'; import { UnreferencedFeedbackComponent } from 'app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component'; import { ArtemisMarkdownModule } from 'app/shared/markdown.module'; -import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; +import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; import { ArtemisGradingInstructionLinkIconModule } from 'app/shared/grading-instruction-link-icon/grading-instruction-link-icon.module'; +import { ArtemisFeedbackModule } from 'app/exercises/shared/feedback/feedback.module'; const ENTITY_STATES = [...assessmentLocksRoute]; @@ -25,13 +26,14 @@ const ENTITY_STATES = [...assessmentLocksRoute]; RouterModule.forChild(ENTITY_STATES), ArtemisMarkdownModule, ArtemisGradingInstructionLinkIconModule, + ArtemisFeedbackModule, ], declarations: [ AssessmentHeaderComponent, AssessmentLayoutComponent, AssessmentComplaintAlertComponent, ScoreDisplayComponent, - AssessmentDetailComponent, + UnreferencedFeedbackDetailComponent, AssessmentLocksComponent, UnreferencedFeedbackComponent, AssessmentCorrectionRoundBadgeComponent, @@ -39,7 +41,7 @@ const ENTITY_STATES = [...assessmentLocksRoute]; exports: [ AssessmentLayoutComponent, ScoreDisplayComponent, - AssessmentDetailComponent, + UnreferencedFeedbackDetailComponent, AssessmentLocksComponent, UnreferencedFeedbackComponent, AssessmentCorrectionRoundBadgeComponent, diff --git a/src/main/webapp/app/assessment/athena.service.ts b/src/main/webapp/app/assessment/athena.service.ts index aad75ac34486..c296ca895e01 100644 --- a/src/main/webapp/app/assessment/athena.service.ts +++ b/src/main/webapp/app/assessment/athena.service.ts @@ -1,8 +1,9 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpResponse } from '@angular/common/http'; import { Observable, of, switchMap } from 'rxjs'; -import { TextBlockRef } from 'app/entities/text-block-ref.model'; import { ProfileService } from 'app/shared/layouts/profiles/profile.service'; +import { Feedback } from 'app/entities/feedback.model'; +import { TextBlockRef } from 'app/entities/text-block-ref.model'; @Injectable({ providedIn: 'root' }) export class AthenaService { @@ -13,13 +14,28 @@ export class AthenaService { private profileService: ProfileService, ) {} + // TODO: The following two functions will be merged in a future PR + + /** + * Get feedback suggestions for the given submission from Athena - for programming exercises + * Currently, this is separate for programming and text exercises (will be changed) + * + * @param exerciseId the id of the exercise + * @param submissionId the id of the submission + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + getFeedbackSuggestionsForProgramming(exerciseId: number, submissionId: number): Observable { + return of([]); // Will be fetched in a future PR + } + /** - * Get feedback suggestions for the given submission from Athena + * Get feedback suggestions for the given submission from Athena - for text exercises + * Currently, this is separate for programming and text exercises (will be changed) * * @param exerciseId the id of the exercise * @param submissionId the id of the submission */ - getFeedbackSuggestions(exerciseId: number, submissionId: number): Observable { + getFeedbackSuggestionsForText(exerciseId: number, submissionId: number): Observable { return this.profileService.getProfileInfo().pipe( switchMap((profileInfo) => { if (!profileInfo.activeProfiles.includes('athena')) { diff --git a/src/main/webapp/app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.html b/src/main/webapp/app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.html similarity index 100% rename from src/main/webapp/app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.html rename to src/main/webapp/app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.html diff --git a/src/main/webapp/app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.scss b/src/main/webapp/app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.scss similarity index 100% rename from src/main/webapp/app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.scss rename to src/main/webapp/app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.scss diff --git a/src/main/webapp/app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.ts b/src/main/webapp/app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.ts similarity index 100% rename from src/main/webapp/app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.ts rename to src/main/webapp/app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component.ts diff --git a/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.html b/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.html new file mode 100644 index 000000000000..da2d8e9b4c7f --- /dev/null +++ b/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.html @@ -0,0 +1,92 @@ +
+
+ + + + +
+ + +
+
+
+
+ + +
+
+
+ +
+ +
+
+
+
+ {{ feedback.gradingInstruction!.feedback }} +
+ +
+
+ +
+ {{ 'artemisApp.exampleSubmission.feedback.' + feedback.correctionStatus! | artemisTranslate }} + + {{ 'artemisApp.exampleSubmission.feedback.' + feedback.correctionStatus! | artemisTranslate }} + + + + + + + +
+ + +
+
diff --git a/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.scss b/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.scss new file mode 100644 index 000000000000..3b113eea520f --- /dev/null +++ b/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.scss @@ -0,0 +1,42 @@ +.card-body { + padding-top: 5px; + padding-bottom: 5px; +} + +.assessment-label > label { + float: left; +} + +fa-icon.exclamation-icon { + width: 16px; + margin-top: -6px; +} + +.is-suggestion .card-header, +.is-suggestion .card-body { + background-color: var(--feedback-suggestions-background); +} + +.is-suggestion input, +.is-suggestion textarea { + background-color: var(--feedback-suggestions-input-background); +} + +/* Slight opacity for suggestions until they are hovered */ +.is-suggestion .card-body > * { + opacity: 0.6; /* grey out the suggestion content to indicate that it is not saved yet */ + transition: opacity 0.2s ease-in-out; +} + +.is-suggestion:hover .card-body > * { + opacity: 1; /* make the suggestion more readable on hover */ +} + +.suggestion-action-buttons button { + width: fit-content; +} + +.assessment-label { + padding-left: 5px; + padding-right: 5px; +} diff --git a/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.ts b/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.ts new file mode 100644 index 000000000000..38a54fc0b58e --- /dev/null +++ b/src/main/webapp/app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component.ts @@ -0,0 +1,70 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { faCheck, faExclamation, faExclamationTriangle, faQuestionCircle, faTrash, faTrashAlt } from '@fortawesome/free-solid-svg-icons'; +import { FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER, Feedback, FeedbackType } from 'app/entities/feedback.model'; +import { StructuredGradingCriterionService } from 'app/exercises/shared/structured-grading-criterion/structured-grading-criterion.service'; +import { ButtonSize } from 'app/shared/components/button.component'; +import { Subject } from 'rxjs'; + +@Component({ + selector: 'jhi-unreferenced-feedback-detail', + templateUrl: './unreferenced-feedback-detail.component.html', + styleUrls: ['./unreferenced-feedback-detail.component.scss'], +}) +export class UnreferencedFeedbackDetailComponent { + @Input() public feedback: Feedback; + @Input() isSuggestion: boolean; + @Input() public readOnly: boolean; + @Input() highlightDifferences: boolean; + + @Output() public onFeedbackChange = new EventEmitter(); + @Output() public onFeedbackDelete = new EventEmitter(); + @Output() onAcceptSuggestion = new EventEmitter(); + @Output() onDiscardSuggestion = new EventEmitter(); + + // Icons + faTrashAlt = faTrashAlt; + faQuestionCircle = faQuestionCircle; + faExclamation = faExclamation; + faExclamationTriangle = faExclamationTriangle; + faCheck = faCheck; + faTrash = faTrash; + + // Expose to template + protected readonly Feedback = Feedback; + readonly ButtonSize = ButtonSize; + + private dialogErrorSource = new Subject(); + dialogError$ = this.dialogErrorSource.asObservable(); + + constructor(public structuredGradingCriterionService: StructuredGradingCriterionService) {} + + /** + * Emits assessment changes to parent component + */ + public emitChanges(): void { + if (this.feedback.type === FeedbackType.AUTOMATIC) { + this.feedback.type = FeedbackType.AUTOMATIC_ADAPTED; + } + if (Feedback.isFeedbackSuggestion(this.feedback)) { + // Change feedback suggestion type to adapted + this.feedback.text = (this.feedback.text ?? FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER).replace( + FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, + FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER, + ); + } + this.onFeedbackChange.emit(this.feedback); + } + + /** + * Emits the deletion of a feedback + */ + public delete() { + this.onFeedbackDelete.emit(this.feedback); + this.dialogErrorSource.next(''); + } + + updateFeedbackOnDrop(event: Event) { + this.structuredGradingCriterionService.updateFeedbackWithStructuredGradingInstructionEvent(this.feedback, event); + this.onFeedbackChange.emit(this.feedback); + } +} diff --git a/src/main/webapp/app/entities/feedback.model.ts b/src/main/webapp/app/entities/feedback.model.ts index 79ebbf29f0dc..4ca9457d7aaa 100644 --- a/src/main/webapp/app/entities/feedback.model.ts +++ b/src/main/webapp/app/entities/feedback.model.ts @@ -19,8 +19,19 @@ export enum FeedbackType { AUTOMATIC_ADAPTED = 'AUTOMATIC_ADAPTED', } +export enum FeedbackSuggestionType { + NO_SUGGESTION = 'NO_SUGGESTION', // No suggestion at all + SUGGESTED = 'SUGGESTED', // Suggestion is made, but not accepted yet + ACCEPTED = 'ACCEPTED', // Suggestion is accepted + ADAPTED = 'ADAPTED', // Suggestion is accepted and then modified by the TA +} + +// Prefixes for the feedback text to identify the feedback type more specifically without having to change the database schema: export const STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER = 'SCAFeedbackIdentifier:'; export const SUBMISSION_POLICY_FEEDBACK_IDENTIFIER = 'SubPolFeedbackIdentifier:'; +export const FEEDBACK_SUGGESTION_IDENTIFIER = 'FeedbackSuggestion:'; +export const FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER = 'FeedbackSuggestion:accepted:'; +export const FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER = 'FeedbackSuggestion:adapted:'; export interface DropInfo { instruction: GradingInstruction; @@ -61,9 +72,6 @@ export class Feedback implements BaseEntity { public type?: FeedbackType; public result?: Result; public positive?: boolean; - public suggestedFeedbackReference?: string; - public suggestedFeedbackOriginSubmissionReference?: number; - public suggestedFeedbackParticipationReference?: number; // Specifies whether the tutor feedback is correct relative to the instructor feedback (during tutor training) or if there is a validation error. // Client only property. @@ -77,6 +85,9 @@ export class Feedback implements BaseEntity { public isSubsequent?: boolean; // helper attribute to find feedback which is not included in the total score on the client + private static readonly programmingReferencePrefix = 'file:'; + private static readonly programmingReferenceLineSeparator = '_line:'; + constructor() { this.credits = 0; } @@ -88,21 +99,46 @@ export class Feedback implements BaseEntity { if (!feedback.text) { return true; } - return !feedback.text.includes(STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER, 0) && !feedback.text.includes(SUBMISSION_POLICY_FEEDBACK_IDENTIFIER, 0); + return !feedback.text.startsWith(STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER) && !feedback.text.startsWith(SUBMISSION_POLICY_FEEDBACK_IDENTIFIER); } public static isStaticCodeAnalysisFeedback(that: Feedback): boolean { if (!that.text) { return false; } - return that.type === FeedbackType.AUTOMATIC && that.text.includes(STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER, 0); + return that.type === FeedbackType.AUTOMATIC && that.text.startsWith(STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER); } public static isSubmissionPolicyFeedback(that: Feedback): boolean { if (!that.text) { return false; } - return that.type === FeedbackType.AUTOMATIC && that.text.includes(SUBMISSION_POLICY_FEEDBACK_IDENTIFIER, 0); + return that.type === FeedbackType.AUTOMATIC && that.text.startsWith(SUBMISSION_POLICY_FEEDBACK_IDENTIFIER); + } + + public static isFeedbackSuggestion(that: Feedback): boolean { + if (!that.text) { + return false; + } + return that.text.startsWith(FEEDBACK_SUGGESTION_IDENTIFIER); + } + + /** + * Determine the type of the feedback suggestion. See FeedbackSuggestionType for more details on the meanings. + * @param that feedback to determine the type of + */ + public static getFeedbackSuggestionType(that: Feedback): FeedbackSuggestionType { + if (!Feedback.isFeedbackSuggestion(that)) { + return FeedbackSuggestionType.NO_SUGGESTION; + } + // that.text is guaranteed to be defined here because the feedback is a suggestion, which must have a text + if (that.text!.startsWith(FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER)) { + return FeedbackSuggestionType.ACCEPTED; + } + if (that.text!.startsWith(FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER)) { + return FeedbackSuggestionType.ADAPTED; + } + return FeedbackSuggestionType.SUGGESTED; } public static hasDetailText(that: Feedback): boolean { @@ -114,6 +150,40 @@ export class Feedback implements BaseEntity { return Feedback.hasDetailText(that) || !!(that.gradingInstruction && that.gradingInstruction.feedback); } + /** + * Get the referenced file path for referenced programming feedbacks, or undefined. + * Typical reference format for programming feedback: `file:src/com/example/package/MyClass.java_line:13`. + * Example output in this case: `src/com/example/package/MyClass.java` + */ + public static getReferenceFilePath(feedback: Feedback): string | undefined { + if (!feedback.reference?.startsWith(this.programmingReferencePrefix)) { + // Find "file:" prefix + // No programming feedback + return undefined; + } + const indexOfLine = feedback.reference?.lastIndexOf(this.programmingReferenceLineSeparator); + return feedback.reference.substring(this.programmingReferencePrefix.length, indexOfLine); // Split after "_line:" + } + + /** + * Get the referenced line for referenced programming feedbacks, or undefined. + * Typical reference format for programming feedback: `file:src/com/example/package/MyClass.java_line:13`. + * Example output in this case: 13 + */ + public static getReferenceLine(feedback: Feedback): number | undefined { + if (!feedback.reference?.startsWith(this.programmingReferencePrefix)) { + // Find "file:" prefix + // No programming feedback + return undefined; + } + const indexOfLine = feedback.reference.lastIndexOf(this.programmingReferenceLineSeparator); // Split before "_line:" + const line = parseInt(feedback.reference.substring(indexOfLine + this.programmingReferenceLineSeparator.length)); + if (isNaN(line)) { + return undefined; + } + return line; + } + /** * Feedback is empty if it has 0 credits and the comment is empty. * @param that diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.html b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.html index 33d5ffd37fff..29206bf2c62d 100644 --- a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.html +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.html @@ -54,6 +54,7 @@ *ngIf="!loadingParticipation && !participationCouldNotBeFetched" [editable]="false" [participation]="participation" + [feedbackSuggestions]="feedbackSuggestions" [showEditorInstructions]="showEditorInstructions" [isTutorAssessment]="true" [highlightFileChanges]="true" @@ -61,6 +62,8 @@ [highlightDifferences]="highlightDifferences" [course]="getCourseFromExercise(exercise)" (onUpdateFeedback)="onUpdateFeedback($event)" + (onAcceptSuggestion)="removeSuggestion($event)" + (onDiscardSuggestion)="removeSuggestion($event)" (onFileLoad)="onFileLoad($event)" >
@@ -124,9 +127,12 @@
diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.ts b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.ts index c4ae286e166c..67e1f7fd4d88 100644 --- a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.ts +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-container.component.ts @@ -1,10 +1,9 @@ import { Component, ContentChild, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef, ViewChild } from '@angular/core'; -import { Observable, Subscription } from 'rxjs'; +import { Observable, Subscription, firstValueFrom } from 'rxjs'; import dayjs from 'dayjs/esm'; import { TranslateService } from '@ngx-translate/core'; import { ActivatedRoute, Router } from '@angular/router'; import { AlertService } from 'app/core/util/alert.service'; -import { ProgrammingExerciseParticipationService } from 'app/exercises/programming/manage/services/programming-exercise-participation.service'; import { ButtonSize } from 'app/shared/components/button.component'; import { DomainService } from 'app/exercises/programming/shared/code-editor/service/code-editor-domain.service'; import { ExerciseType, IncludedInOverallScore, getCourseFromExercise } from 'app/entities/exercise.model'; @@ -39,6 +38,7 @@ import { cloneDeep } from 'lodash-es'; import { AssessmentAfterComplaint } from 'app/complaints/complaints-for-tutor/complaints-for-tutor.component'; import { PROFILE_LOCALVC } from 'app/app.constants'; import { ProfileService } from 'app/shared/layouts/profiles/profile.service'; +import { AthenaService } from 'app/assessment/athena.service'; @Component({ selector: 'jhi-code-editor-tutor-assessment', @@ -90,6 +90,7 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe unreferencedFeedback: Feedback[] = []; referencedFeedback: Feedback[] = []; automaticFeedback: Feedback[] = []; + feedbackSuggestions: Feedback[] = []; // all pending Athena feedback suggestions (neither accepted nor rejected yet) totalScoreBeforeAssessment: number; isFirstAssessment = false; @@ -109,6 +110,13 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe // Icons faTimesCircle = faTimesCircle; + /** + * Get all feedback suggestions without a reference. They will be shown in cards below the build output. + */ + get unreferencedFeedbackSuggestions() { + return this.feedbackSuggestions.filter((feedback) => !feedback.reference); + } + constructor( private manualResultService: ProgrammingAssessmentManualResultService, private router: Router, @@ -116,15 +124,15 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe private accountService: AccountService, private programmingSubmissionService: ProgrammingSubmissionService, private domainService: DomainService, - private programmingExerciseParticipationService: ProgrammingExerciseParticipationService, private complaintService: ComplaintService, - private translateService: TranslateService, + translateService: TranslateService, private route: ActivatedRoute, private alertService: AlertService, private structuredGradingCriterionService: StructuredGradingCriterionService, private repositoryFileService: CodeEditorRepositoryFileService, private programmingExerciseService: ProgrammingExerciseService, private profileService: ProfileService, + private athenaService: AthenaService, ) { translateService.get('artemisApp.assessment.messages.confirmCancel').subscribe((text) => (this.cancelConfirmationText = text)); translateService.get('artemisApp.assessment.messages.acceptComplaintWithoutMoreScore').subscribe((text) => (this.acceptComplaintWithoutMoreScoreText = text)); @@ -223,7 +231,7 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe return this.programmingSubmissionService.lockAndGetProgrammingSubmissionParticipation(submissionId, this.correctionRound); } - private handleReceivedSubmission(submission: ProgrammingSubmission) { + private handleReceivedSubmission(submission: ProgrammingSubmission): Promise { this.loadingInitialSubmission = false; // Set domain to correctly fetch data @@ -250,6 +258,7 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe this.handleFeedback(); this.getComplaint(); this.calculateTotalScore(); + return this.loadFeedbackSuggestions(); } private handleErrorResponse(error: HttpErrorResponse): void { @@ -262,6 +271,18 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe } } + /** + * Load the feedback suggestions for the current submission from Athena. + */ + private async loadFeedbackSuggestions(): Promise { + this.feedbackSuggestions = (await firstValueFrom(this.athenaService.getFeedbackSuggestionsForProgramming(this.exerciseId, this.submission!.id!))) ?? []; + const allFeedback = [...this.referencedFeedback, ...this.unreferencedFeedback]; // pre-compute to not have to do this in the loop + // Don't show feedback suggestions that have the same description and reference - probably it is coming from an earlier suggestion anyway + this.feedbackSuggestions = this.feedbackSuggestions.filter((suggestion) => + allFeedback.every((feedback) => feedback.detailText !== suggestion.detailText || feedback.reference !== suggestion.reference), + ); + } + /** * Triggers when a new file was selected in the code editor. Compares the content of the file with the template (if available), calculates the diff * and highlights the changed/added lines or all lines if the file is not in the template. @@ -483,6 +504,15 @@ export class CodeEditorTutorAssessmentContainerComponent implements OnInit, OnDe this.validateFeedback(); } + /** + * Remove a feedback suggestion because it was accepted or discarded. + * The actual feedback creation when accepting happens in code-editor-ace-component/unreferenced-feedback because they have full control over the suggestion cards. + * @param feedback Feedback suggestion that is removed + */ + removeSuggestion(feedback: Feedback) { + this.feedbackSuggestions = this.feedbackSuggestions.filter((feedbackSuggestion) => feedbackSuggestion !== feedback); + } + /** * Show an error as an alert in the top of the editor html. * Used by other components to display errors. diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.html b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.html new file mode 100644 index 000000000000..119e6f622305 --- /dev/null +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.html @@ -0,0 +1,28 @@ +
+ +
+
+
+
+ {{ + roundScoreSpecifiedByCourseSettings(feedback.credits, course) + 'P' + }} +
+
+
+
Feedback Suggestion:
+

+
+
+
+ + +
+
+
diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.scss b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.scss new file mode 100644 index 000000000000..6d5886c01052 --- /dev/null +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.scss @@ -0,0 +1,28 @@ +.inline-feedback-suggestion { + max-width: 780px; +} + +.alert { + background-color: var(--feedback-suggestions-background); +} + +.flex-container { + display: flex; + flex-direction: row; + justify-content: space-between; + gap: 8px; + align-items: center; +} + +.btn { + width: fit-content; +} + +.suggested-content { + opacity: 0.6; /* grey out the suggestion content to indicate that it is not saved yet */ + transition: opacity 0.2s ease-in-out; +} + +:host:hover .suggested-content { + opacity: 1; /* make the suggestion more readable on hover */ +} diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.ts b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.ts new file mode 100644 index 000000000000..5bef12933962 --- /dev/null +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.ts @@ -0,0 +1,38 @@ +import { Component, ElementRef, EventEmitter, Input, Output } from '@angular/core'; +import { Feedback, buildFeedbackTextForReview } from 'app/entities/feedback.model'; +import { roundValueSpecifiedByCourseSettings } from 'app/shared/util/utils'; +import { Course } from 'app/entities/course.model'; +import { faCheck, faTrash } from '@fortawesome/free-solid-svg-icons'; + +@Component({ + selector: 'jhi-code-editor-tutor-assessment-inline-feedback-suggestion', + templateUrl: './code-editor-tutor-assessment-inline-feedback-suggestion.component.html', + styleUrls: ['./code-editor-tutor-assessment-inline-feedback-suggestion.component.scss'], +}) +export class CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent { + @Input() + codeLine: number; // Needed for the outer editor to handle the DOM node of the component + @Input() + feedback: Feedback; + @Input() + course?: Course; // Needed for credit rounding settings + + @Output() + onAcceptSuggestion = new EventEmitter(); + @Output() + onDiscardSuggestion = new EventEmitter(); + + // Expose functions to the template + readonly roundScoreSpecifiedByCourseSettings = roundValueSpecifiedByCourseSettings; + readonly buildFeedbackTextForReview = buildFeedbackTextForReview; + + // Icons + faCheck = faCheck; + faTrash = faTrash; + + public elementRef: ElementRef; // Needed for the outer editor to access the DOM node of this component + + constructor(elementRef: ElementRef) { + this.elementRef = elementRef; + } +} diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.html b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.html index 74bd0b5c4d91..ba1fd2c03ad6 100644 --- a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.html +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.html @@ -1,12 +1,13 @@
+
@@ -20,7 +21,7 @@
- +
diff --git a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.ts b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.ts index b2681f9126d1..0aa1de8ab0be 100644 --- a/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.ts +++ b/src/main/webapp/app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core'; -import { Feedback, FeedbackType, buildFeedbackTextForReview } from 'app/entities/feedback.model'; +import { FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER, Feedback, FeedbackType, buildFeedbackTextForReview } from 'app/entities/feedback.model'; import { ButtonSize } from 'app/shared/components/button.component'; import { cloneDeep } from 'lodash-es'; import { TranslateService } from '@ngx-translate/core'; @@ -18,7 +18,7 @@ export class CodeEditorTutorAssessmentInlineFeedbackComponent { get feedback(): Feedback { return this._feedback; } - set feedback(feedback: Feedback) { + set feedback(feedback: Feedback | undefined) { this._feedback = feedback || new Feedback(); this.oldFeedback = cloneDeep(this.feedback); this.viewOnly = !!feedback; @@ -47,6 +47,7 @@ export class CodeEditorTutorAssessmentInlineFeedbackComponent { // Expose the function to the template readonly roundScoreSpecifiedByCourseSettings = roundValueSpecifiedByCourseSettings; + protected readonly Feedback = Feedback; readonly ButtonSize = ButtonSize; readonly MANUAL = FeedbackType.MANUAL; @@ -79,7 +80,15 @@ export class CodeEditorTutorAssessmentInlineFeedbackComponent { updateFeedback() { this.feedback.type = this.MANUAL; this.feedback.reference = `file:${this.selectedFile}_line:${this.codeLine}`; - this.feedback.text = `File ${this.selectedFile} at line ${this.codeLine + 1}`; + if (Feedback.isFeedbackSuggestion(this.feedback)) { + // Mark as modified feedback suggestion + this.feedback.text = (this.feedback.text ?? FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER).replace( + FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, + FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER, + ); + } else { + this.feedback.text = `File ${this.selectedFile} at line ${this.codeLine + 1}`; + } this.viewOnly = true; if (this.feedback.credits && this.feedback.credits > 0) { this.feedback.positive = true; @@ -111,6 +120,8 @@ export class CodeEditorTutorAssessmentInlineFeedbackComponent { */ editFeedback(line: number) { this.viewOnly = false; + // Save the old feedback in case the user cancels later + this.oldFeedback = cloneDeep(this.feedback); this.onEditFeedback.emit(line); setTimeout(() => (this.textareaRef.nativeElement as HTMLTextAreaElement).focus()); } diff --git a/src/main/webapp/app/exercises/programming/assess/programming-manual-assessment.module.ts b/src/main/webapp/app/exercises/programming/assess/programming-manual-assessment.module.ts index 41a3e5b6033d..c088da18926a 100644 --- a/src/main/webapp/app/exercises/programming/assess/programming-manual-assessment.module.ts +++ b/src/main/webapp/app/exercises/programming/assess/programming-manual-assessment.module.ts @@ -5,10 +5,19 @@ import { ArtemisSharedComponentModule } from 'app/shared/components/shared-compo import { FormDateTimePickerModule } from 'app/shared/date-time-picker/date-time-picker.module'; import { ArtemisAssessmentSharedModule } from 'app/assessment/assessment-shared.module'; import { ArtemisGradingInstructionLinkIconModule } from 'app/shared/grading-instruction-link-icon/grading-instruction-link-icon.module'; +import { CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent } from 'app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component'; +import { ArtemisFeedbackModule } from 'app/exercises/shared/feedback/feedback.module'; @NgModule({ - imports: [ArtemisSharedModule, ArtemisSharedComponentModule, FormDateTimePickerModule, ArtemisAssessmentSharedModule, ArtemisGradingInstructionLinkIconModule], - declarations: [CodeEditorTutorAssessmentInlineFeedbackComponent], - exports: [CodeEditorTutorAssessmentInlineFeedbackComponent], + imports: [ + ArtemisSharedModule, + ArtemisSharedComponentModule, + FormDateTimePickerModule, + ArtemisAssessmentSharedModule, + ArtemisGradingInstructionLinkIconModule, + ArtemisFeedbackModule, + ], + declarations: [CodeEditorTutorAssessmentInlineFeedbackComponent, CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent], + exports: [CodeEditorTutorAssessmentInlineFeedbackComponent, CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent], }) export class ArtemisProgrammingManualAssessmentModule {} diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/ace/code-editor-ace.component.html b/src/main/webapp/app/exercises/programming/shared/code-editor/ace/code-editor-ace.component.html index 1e430e9caa7c..1b29468e8bab 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/ace/code-editor-ace.component.html +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/ace/code-editor-ace.component.html @@ -5,11 +5,36 @@
-
+
+ + + + + +
+ ; + @ViewChildren(CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent) + inlineFeedbackSuggestionsComponents: QueryList; @Input() selectedFile: string; @Input() @@ -78,7 +81,9 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr @Input() isTutorAssessment = false; @Input() - feedbacks: Feedback[]; + feedbacks: Feedback[] = []; + @Input() + feedbackSuggestions: Feedback[] = []; @Input() highlightDifferences: boolean; @Input() @@ -94,6 +99,10 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr onUpdateFeedback = new EventEmitter(); @Output() onFileLoad = new EventEmitter(); + @Output() + onAcceptSuggestion = new EventEmitter(); + @Output() + onDiscardSuggestion = new EventEmitter(); // This fetches a list of all supported editor modes and matches it afterwards against the file extension readonly aceModeList = acequire('ace/ext/modelist'); @@ -108,26 +117,30 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr annotationsArray: Array = []; annotationChange: Subscription; fileSession: FileSession = {}; - // Inline feedback variables - fileFeedbacks: Feedback[]; - fileFeedbackPerLine: { [line: number]: Feedback } = {}; - linesWithNewFeedback: number[] = []; // lines with new feedback, which is not yet saved, but must already be displayed to be editable + newFeedbackLines: number[] = []; // new feedback, which is not yet saved, but must already be displayed to be editable editorSession: any; markerIds: number[] = []; gutterHighlights: Map = new Map(); tabSize = 4; + // Detecting editor resize events + resizeObserver: ResizeObserver; + // Icons readonly faPlusSquare = faPlusSquare; readonly faCircleNotch = faCircleNotch; + // Expose to template + protected readonly Feedback = Feedback; + /** - * Get all line numbers in the current editor session that have inline feedback or new feedback (which is only shown temporarily) + * Filter feedback: Only referenced to current file */ - get linesWithInlineFeedbackShown(): number[] { - const lines = this.linesWithNewFeedback.concat(Object.keys(this.fileFeedbackPerLine).map((line) => parseInt(line))); - lines.sort((a, b) => a - b); - return lines; + filterFeedbackForFile(feedbacks: Feedback[]): Feedback[] { + if (!this.selectedFile) { + return []; + } + return feedbacks.filter((feedback) => feedback.reference && Feedback.getReferenceFilePath(feedback) === this.selectedFile); } constructor( @@ -138,8 +151,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr ) {} /** - * @function ngAfterViewInit - * @desc Sets the theme and other editor options + * Set the theme and other editor options */ ngAfterViewInit(): void { this.editor.getEditor().setOptions({ @@ -150,15 +162,23 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr if (this.isTutorAssessment) { this.editor.getEditor().setShowFoldWidgets(false); } + if (!this.resizeObserver) { + // When the editor is resized in width, the inline feedback text could wrap. This would cause its height to change and we need to adapt it: + this.resizeObserver = new ResizeObserver(() => { + if (!this.editorSession) return; // not yet initialized, nothing to do + // Adjust height of all feedback line widgets + this.updateLineWidgets(); + }); + this.resizeObserver.observe(this.editor.elementRef.nativeElement); + } } /** - * @function ngOnChanges - * @desc New clean state => reset the editor and file update subscriptions - * New selectedFile => load the file from the repository and open it in the editor + * New clean state => reset the editor and file update subscriptions + * New selectedFile => load the file from the repository and open it in the editor * @param {SimpleChanges} changes */ - ngOnChanges(changes: SimpleChanges): void { + async ngOnChanges(changes: SimpleChanges): Promise { if ( (changes.commitState && changes.commitState.previousValue !== CommitState.UNDEFINED && this.commitState === CommitState.UNDEFINED) || (changes.editorState && changes.editorState.previousValue === EditorState.REFRESHING && this.editorState === EditorState.CLEAN) @@ -178,7 +198,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr if ((this.selectedFile && !this.fileSession[this.selectedFile]) || this.fileSession[this.selectedFile].loadingError) { this.loadFile(this.selectedFile); } else { - this.initEditorAfterFileChange(); + await this.initEditor(); } } if (changes.commitState && changes.commitState.currentValue === CommitState.CONFLICT) { @@ -186,30 +206,24 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr } else if (changes.commitState && changes.commitState.previousValue === CommitState.CONFLICT && changes.commitState.currentValue !== CommitState.CONFLICT) { this.editor.setReadOnly(false); } + if ((changes.feedbacks || changes.feedbackSuggestions) && this.editorSession) { + // when feedback/suggestions change and initEditor was already called + await this.updateLineWidgets(); + } } /** - * Setup the ace editor after a file change occurred. - * Makes sure previous settings are restored and the correct language service is used. + * Set up the ace editor after a file change occurred or the file finished loading. + * Makes sure potential previous settings are restored and the correct language service is used. **/ - initEditorAfterFileChange() { - // Setup editorSession for inline feedback using lineWidgets + async initEditor() { + // Set up editorSession for inline feedback using lineWidgets this.editorSession = this.editor.getEditor().getSession(); if (!this.editorSession.widgetManager) { this.editorSession.widgetManager = new this.LineWidgets(this.editorSession); this.editorSession.widgetManager.attach(this.editor.getEditor()); } - // Remove previous lineWidgets - if (this.editorSession.lineWidgets) { - this.editorSession.lineWidgets.forEach((widget: any) => { - if (widget) { - this.editorSession.widgetManager.removeLineWidget(widget); - } - }); - } - // Remove open inline feedback widgets for new feedback - this.linesWithNewFeedback = []; // We first remove the annotationChange subscription so the initial setValue doesn't count as an insert if (this.annotationChange) { this.annotationChange.unsubscribe(); @@ -230,19 +244,6 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr this.editor.getEditor().getSession().setUndoManager(new UndoManager()); this.displayAnnotations(); - // Setup inline feedbacks - if (this.isTutorAssessment) { - if (!this.feedbacks) { - this.feedbacks = []; - } - this.fileFeedbacks = this.feedbacks.filter((feedback) => feedback.reference && feedback.reference.includes(this.selectedFile)); - this.fileFeedbackPerLine = {}; - this.fileFeedbacks.forEach((feedback) => { - const line: number = +feedback.reference!.split('line:')[1]; - this.fileFeedbackPerLine[line] = feedback; - }); - } - if (this.markerIds.length > 0) { this.markerIds.forEach((markerId) => this.editorSession.removeMarker(markerId)); this.markerIds = []; @@ -253,11 +254,15 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr } this.onFileLoad.emit(this.selectedFile); } + // Remove open inline feedback widgets for new feedback + this.newFeedbackLines = []; + // Remove previous lineWidgets and create new ones + await this.updateLineWidgets(); } /** * Fetches the requested file by filename and opens a new editor session for it (if not yet done) - * @param fileName: Name of the file to be opened in the editor + * @param fileName Name of the file to be opened in the editor */ loadFile(fileName: string) { this.isLoading = true; @@ -278,28 +283,28 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr }); } - finalizeLoading(fileName: string) { - // It is possible that the selected file has changed - in this case don't update the editor. + async finalizeLoading(fileName: string) { + this.isLoading = false; + // Only initialize the editor if the selected file has not changed in between + // - prevents console errors (see https://github.com/ls1intum/Artemis/pull/603) if (this.selectedFile === fileName) { - this.initEditorAfterFileChange(); + await this.initEditor(); } - this.isLoading = false; } /** - * @function onFileTextChanged - * @desc Callback function for text changes in the Ace Editor. + * Callback function for text changes in the Ace Editor. * Is used for updating the error annotations in the editor and giving the touched file the unsaved flag. * @param event {string} Current editor code */ - onFileTextChanged(event: any) { + async onFileTextChanged(event: any) { const code = event as string; if (this.isTutorAssessment) { this.editor.setReadOnly(true); if (!this.readOnlyManualFeedback) { this.setupLineIcons(); } - this.displayFeedbacks(); + await this.updateLineWidgets(); } /** Is the code different to what we have on our session? This prevents us from saving when a file is loaded **/ if (this.selectedFile && this.fileSession[this.selectedFile]) { @@ -315,17 +320,17 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr if (this.annotationChange) { this.annotationChange.unsubscribe(); } - // remove all line widgets so that no old ones are displayed when the editor is opened again - if (this.editorSession?.widgetManager && this.editorSession?.lineWidgets) { - for (const line of this.linesWithInlineFeedbackShown) { - const widget = this.editorSession.lineWidgets.find((w: any) => w?.el === this.getInlineFeedbackNode(line)); + // Remove all line widgets so that no old ones are displayed when the editor is opened again + for (const widget of this.editorSession?.lineWidgets ?? []) { + if (widget) { this.editorSession.widgetManager.removeLineWidget(widget); } } + this.resizeObserver?.disconnect(); } /** - * Recalculates the position of annotations according to changes in the editor. + * Recalculate the position of annotations according to changes in the editor. * Annotations are affected by changes in previous rows for row updates, * in the same row and previous columns for column updates. * @param change @@ -355,7 +360,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr } /** - * Sets the annotations for the editor. + * Set the annotations for the editor. * Checks for each annotation whether an updated version exists in local storage. * @param annotations The new annotations array */ @@ -401,7 +406,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr * by the parent container. * @param fileChange */ - onFileChange(fileChange: FileChange) { + async onFileChange(fileChange: FileChange) { if (fileChange instanceof RenameFileChange) { this.fileSession = this.fileService.updateFileReferences(this.fileSession, fileChange); this.annotationsArray = this.annotationsArray.map((a) => @@ -419,7 +424,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr this.storeAnnotations([fileChange.fileName]); } else if (fileChange instanceof CreateFileChange && this.selectedFile === fileChange.fileName) { this.fileSession = { ...this.fileSession, [fileChange.fileName]: { code: '', cursor: { row: 0, column: 0 }, loadingError: false } }; - this.initEditorAfterFileChange(); + await this.initEditor(); } this.displayAnnotations(); } @@ -459,18 +464,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr } /** - * Displays the inline feedback of a line of code using lineWidgets. We first go through all feedbacks of the selected file - * and create a lineWidget for each feedback. - */ - displayFeedbacks() { - this.fileFeedbacks.forEach((feedback) => { - const line: number = +feedback.reference!.split('line:')[1]; - this.addLineWidgetWithFeedback(line); - }); - } - - /** - * Adds the inline comment button to all visible gutters in the ace editor. + * Add the inline comment button to all visible gutters in the ace editor. * We use a MutualObserver to check if children of the gutter layer changes * in order to add the button to all gutters. */ @@ -482,7 +476,11 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr const buttonInlineComment = document.querySelector('.btn-inline-comment'); gutters.forEach((gutter: HTMLElement) => { const clone = buttonInlineComment!.cloneNode(true); - clone.addEventListener('click', () => this.addLineWidgetWithFeedback(+gutter.innerText - 1)); + clone.addEventListener('click', async () => { + const lineToAddFeedbackIn = parseInt(gutter.innerText) - 1; + this.newFeedbackLines.push(lineToAddFeedbackIn); + await this.updateLineWidgets(); + }); // TODO: Check whether this causes an issue when having annotations if (gutter.childElementCount < 1) { gutter.appendChild(clone); @@ -492,42 +490,70 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr } /** - * Get the wrapper div of an inline feedback as a DOM node - * + * Get the component of an inline feedback DOM node. * @param line line of code where the feedback inline component is located */ getInlineFeedbackNode(line: number): Element | undefined { - return this.inlineFeedbackComponents.find((c) => c.codeLine === line)?.elementRef.nativeElement; + return [...this.inlineFeedbackComponents, ...this.inlineFeedbackSuggestionsComponents].find((c) => c.codeLine === line)?.elementRef?.nativeElement; } /** * Add lineWidget for specific line of code. + * (ACE line widget, needs to be manually handled because ACE is not well integrated into Angular) * @param line line of code where the feedback inline component will be added to. */ addLineWidgetWithFeedback(line: number) { - // Create new feedback element from the DOM - this.linesWithNewFeedback = [...this.linesWithNewFeedback, line]; - // Update DOM so that the new feedback DOM node exists + // Get the feedback DOM node + const inlineFeedbackNode = this.getInlineFeedbackNode(line); + if (!inlineFeedbackNode) { + throw new Error("Couldn't find inline feedback node for line " + line + '. Make sure that it is rendered by Angular.'); + } + const lineWidget = { + row: line, + fixedWidth: true, + coverGutter: true, + el: inlineFeedbackNode, + }; + const displayedWidget = (this.editorSession.lineWidgets ?? [])[line]; + if (!displayedWidget) { + this.editorSession.widgetManager.addLineWidget(lineWidget); + lineWidget.el.querySelector('textarea')?.focus(); + } + } + + /** + * Add lineWidget for specific line of code. + * (ACE line widget, needs to be manually handled because ACE is not well integrated into Angular) + * @param line line of code where the feedback inline component will be added to. + */ + removeLineWidget(line: number) { + const widget = (this.editorSession.lineWidgets ?? [])[line]; + if (widget) { + this.editorSession.widgetManager.removeLineWidget(widget); + } + } + + /** + * Sync the line widgets of the ACE editor to the current feedbacks. + */ + async updateLineWidgets() { + // Make Angular update the DOM this.changeDetectorRef.detectChanges(); - const inlineFeedback = this.getInlineFeedbackNode(line); - if (inlineFeedback) { - const lineWidget = { - row: line, - fixedWidth: true, - coverGutter: true, - el: inlineFeedback, - }; - // Check if lineWidget is already displayed - if (this.editorSession.lineWidgets) { - const displayedWidget = this.editorSession.lineWidgets.find((w: any) => w && w.row === lineWidget.row); - if (!displayedWidget) { - this.editorSession.widgetManager.addLineWidget(lineWidget); - lineWidget.el.querySelector('textarea')?.focus(); - } - } else { - this.editorSession.widgetManager.addLineWidget(lineWidget); - lineWidget.el.querySelector('textarea')?.focus(); - } + // Wait for one render cycle for all DOM updates to be done + await new Promise((resolve) => setTimeout(resolve, 0)); + // Remove all existing line widgets + const linesWithWidgets = this.editorSession.lineWidgets?.map((l: any) => l?.row).filter((row: number | undefined) => row != undefined) ?? []; + for (const line of linesWithWidgets) { + this.removeLineWidget(line); + } + // Add line widgets for all feedbacks + for (const feedback of this.filterFeedbackForFile([...this.feedbacks, ...this.feedbackSuggestions])) { + const line = Feedback.getReferenceLine(feedback)!; + this.addLineWidgetWithFeedback(line); + } + // Add line widgets for new feedback that is not yet saved + for (const line of this.newFeedbackLines) { + this.addLineWidgetWithFeedback(line); } } @@ -536,7 +562,7 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr * @param line Line of code which has inline feedback (lineWidget) */ adjustLineWidgetHeight(line: number) { - const widget = this.editorSession.lineWidgets.find((w: any) => w?.el === this.getInlineFeedbackNode(line)); + const widget = this.editorSession.lineWidgets[line]; this.editorSession.widgetManager.removeLineWidget(widget); this.editorSession.widgetManager.addLineWidget(widget); } @@ -545,36 +571,33 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr * Called whenever an inline feedback element is emitted. Updates existing feedbacks or adds onto it * @param feedback Newly created inline feedback. */ - updateFeedback(feedback: Feedback) { - const line: number = +feedback.reference!.split('line:')[1]; + async updateFeedback(feedback: Feedback) { + const line = Feedback.getReferenceLine(feedback)!; // Check if feedback already exists and update it, else append it to feedbacks of the file if (this.feedbacks.some((f) => f.reference === feedback.reference)) { const index = this.feedbacks.findIndex((f) => f.reference === feedback.reference); this.feedbacks[index] = feedback; - this.fileFeedbackPerLine[line] = feedback; } else { this.feedbacks.push(feedback); - this.fileFeedbackPerLine[line] = feedback; // the feedback isn't new anymore - this.linesWithNewFeedback = this.linesWithNewFeedback.filter((l) => l !== line); + this.newFeedbackLines = this.newFeedbackLines.filter((l) => l !== line); } + await this.updateLineWidgets(); this.onUpdateFeedback.emit(this.feedbacks); - this.adjustLineWidgetHeight(line); } /** * Called whenever an inline feedback is cancelled. Removes it from ace editor or just aligns height. * @param line */ - cancelFeedback(line: number) { - if (this.fileFeedbackPerLine[line]) { - // feedback exists, just re-align height - this.adjustLineWidgetHeight(line); + async cancelFeedback(line: number) { + if (this.newFeedbackLines.includes(line)) { + // Just remove the new feedback + this.newFeedbackLines = this.newFeedbackLines.filter((l) => l !== line); + await this.updateLineWidgets(); } else { - const widget = this.editorSession.lineWidgets.filter((w: any) => w?.el === this.getInlineFeedbackNode(line))[0]; - this.editorSession.widgetManager.removeLineWidget(widget); - // also remove from linesWithNewFeedback, it should not be shown anymore - this.linesWithNewFeedback = this.linesWithNewFeedback.filter((l) => l !== line); + // Feedback exists (not new) and we keep it, just re-align height + this.adjustLineWidgetHeight(line); } } @@ -583,14 +606,35 @@ export class CodeEditorAceComponent implements AfterViewInit, OnChanges, OnDestr * @param feedback Feedback to be removed */ deleteFeedback(feedback: Feedback) { - const indexToDelete = this.feedbacks.indexOf(feedback); - const line: number = +feedback.reference!.split('line:')[1]; - this.feedbacks.splice(indexToDelete, 1); - delete this.fileFeedbackPerLine[line]; - this.cancelFeedback(line); + this.feedbacks = this.feedbacks.filter((f) => f.id !== feedback.id); + this.removeLineWidget(Feedback.getReferenceLine(feedback)!); this.onUpdateFeedback.emit(this.feedbacks); } + /** + * Accept a feedback suggestion: Make it "real" feedback and remove the suggestion card + */ + async acceptSuggestion(feedback: Feedback) { + this.feedbackSuggestions = this.feedbackSuggestions.filter((f) => f !== feedback); // Remove the suggestion card + this.removeLineWidget(Feedback.getReferenceLine(feedback)!); + // We need to change the feedback type to "manual" because non-manual feedback is never editable in the editor + // and will be filtered out in all kinds of places + feedback.type = FeedbackType.MANUAL; + // Change the prefix "FeedbackSuggestion:" to "FeedbackSuggestion:accepted:" + feedback.text = (feedback.text ?? FEEDBACK_SUGGESTION_IDENTIFIER).replace(FEEDBACK_SUGGESTION_IDENTIFIER, FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER); + await this.updateFeedback(feedback); // Make it "real" feedback + this.onAcceptSuggestion.emit(feedback); + } + + /** + * Discard a feedback suggestion: Remove the suggestion card and emit the event + */ + discardSuggestion(feedback: Feedback) { + this.feedbackSuggestions = this.feedbackSuggestions.filter((f) => f !== feedback); // Remove the suggestion card + this.removeLineWidget(Feedback.getReferenceLine(feedback)!); + this.onDiscardSuggestion.emit(feedback); + } + /** * Observes whether the children of the DOM element change. * We need this to detect changes in the gutter layer, to add the inline button to each gutter. diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/code-editor.module.ts b/src/main/webapp/app/exercises/programming/shared/code-editor/code-editor.module.ts index 4eb724c25905..674c1acb03da 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/code-editor.module.ts +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/code-editor.module.ts @@ -22,6 +22,7 @@ import { ArtemisProgrammingManualAssessmentModule } from 'app/exercises/programm import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { TreeviewModule } from 'app/exercises/programming/shared/code-editor/treeview/treeview.module'; import { CodeEditorHeaderComponent } from 'app/exercises/programming/shared/code-editor/header/code-editor-header.component'; +import { CodeEditorFileBrowserBadgeComponent } from 'app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component'; @NgModule({ imports: [ @@ -40,6 +41,7 @@ import { CodeEditorHeaderComponent } from 'app/exercises/programming/shared/code CodeEditorFileBrowserDeleteComponent, CodeEditorFileBrowserFileComponent, CodeEditorFileBrowserFolderComponent, + CodeEditorFileBrowserBadgeComponent, CodeEditorFileBrowserCreateNodeComponent, CodeEditorAceComponent, CodeEditorBuildOutputComponent, diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.html b/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.html index 0d97e7078d47..3de902dc9781 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.html +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.html @@ -30,6 +30,7 @@

[editorState]="editorState" [isTutorAssessment]="isTutorAssessment" [highlightFileChanges]="highlightFileChanges" + [fileBadges]="fileBadges" [(selectedFile)]="selectedFile" [(commitState)]="commitState" (onFileChange)="onFileChange($event)" @@ -44,13 +45,16 @@

[commitState]="commitState" [editorState]="editorState" [feedbacks]="participation?.results?.[0]?.feedbacks ?? []" + [feedbackSuggestions]="feedbackSuggestions" [readOnlyManualFeedback]="readOnlyManualFeedback" [isTutorAssessment]="isTutorAssessment" [highlightDifferences]="highlightDifferences" [course]="course" [disableActions]="!editable" (onFileContentChange)="onFileContentChange($event)" - (onUpdateFeedback)="updateFeedback($event!)" + (onUpdateFeedback)="onUpdateFeedback.emit($event)" + (onAcceptSuggestion)="onAcceptSuggestion.emit($event)" + (onDiscardSuggestion)="onDiscardSuggestion.emit($event)" (onError)="onError($event)" (onFileLoad)="fileLoad($event)" > diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.ts b/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.ts index 5383a7282842..758dc2c0bbaa 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.ts +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/container/code-editor-container.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core'; +import { Component, EventEmitter, HostListener, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { isEmpty as _isEmpty, fromPairs, toPairs, uniq } from 'lodash-es'; import { CodeEditorFileService } from 'app/exercises/programming/shared/code-editor/service/code-editor-file.service'; @@ -9,6 +9,8 @@ import { CreateFileChange, DeleteFileChange, EditorState, + FileBadge, + FileBadgeType, FileChange, FileType, RenameFileChange, @@ -36,7 +38,7 @@ export enum CollapsableCodeEditorElement { templateUrl: './code-editor-container.component.html', styleUrls: ['./code-editor-container.component.scss'], }) -export class CodeEditorContainerComponent implements ComponentCanDeactivate { +export class CodeEditorContainerComponent implements OnChanges, ComponentCanDeactivate { readonly CommitState = CommitState; readonly CollapsableCodeEditorElement = CollapsableCodeEditorElement; @ViewChild(CodeEditorGridComponent, { static: false }) grid: CodeEditorGridComponent; @@ -58,6 +60,8 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { @Input() highlightFileChanges = false; @Input() + feedbackSuggestions: Feedback[] = []; + @Input() readOnlyManualFeedback = false; @Input() highlightDifferences: boolean; @@ -74,6 +78,10 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { onUpdateFeedback = new EventEmitter(); @Output() onFileLoad = new EventEmitter(); + @Output() + onAcceptSuggestion = new EventEmitter(); + @Output() + onDiscardSuggestion = new EventEmitter(); @Input() course?: Course; @@ -86,7 +94,8 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { // WARNING: Don't initialize variables in the declaration block. The method initializeProperties is responsible for this task. selectedFile?: string; - unsavedFilesValue: { [fileName: string]: string } = {}; // {[fileName]: fileContent} + unsavedFilesValue: { [fileName: string]: string }; // {[fileName]: fileContent} + fileBadges: { [fileName: string]: FileBadge[] }; /** Code Editor State Variables **/ editorState: EditorState; @@ -103,6 +112,13 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { this.initializeProperties(); } + ngOnChanges(changes: SimpleChanges) { + // Update file badges when feedback suggestions change + if (changes.feedbackSuggestions) { + this.updateFileBadges(); + } + } + get unsavedFiles() { return this.unsavedFilesValue; } @@ -129,6 +145,23 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { } } + /** + * Update the file badges for the code editor (currently only feedback suggestions) + */ + updateFileBadges() { + this.fileBadges = {}; + // Create badges for feedback suggestions + // Get file paths from feedback suggestions: + const filePathsWithSuggestions = this.feedbackSuggestions + .map((feedback) => Feedback.getReferenceFilePath(feedback)) + .filter((filePath) => filePath !== undefined) as string[]; + for (const filePath of filePathsWithSuggestions) { + // Count the number of suggestions for this file + const suggestionsCount = this.feedbackSuggestions.filter((feedback) => Feedback.getReferenceFilePath(feedback) === filePath).length; + this.fileBadges[filePath] = [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, suggestionsCount)]; + } + } + /** * Resets all variables of this class. * When a new variable is added, it needs to be added to this method! @@ -137,6 +170,7 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { initializeProperties = () => { this.selectedFile = undefined; this.unsavedFiles = {}; + this.fileBadges = {}; this.editorState = EditorState.CLEAN; this.commitState = CommitState.UNDEFINED; }; @@ -202,10 +236,6 @@ export class CodeEditorContainerComponent implements ComponentCanDeactivate { this.onFileChanged.emit(); } - updateFeedback(feedbacks: Feedback[]) { - this.onUpdateFeedback.emit(feedbacks); - } - fileLoad(selectedFile: string) { this.onFileLoad.emit(selectedFile); } diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.html b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.html new file mode 100644 index 000000000000..96b381b0a65d --- /dev/null +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.html @@ -0,0 +1,4 @@ + + + {{ badge.count }} + diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.scss b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.scss new file mode 100644 index 000000000000..0fb034e8cf98 --- /dev/null +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.scss @@ -0,0 +1,18 @@ +:host { + display: flex; + align-items: center; + margin-left: auto; + cursor: default; +} + +.badge { + user-select: none; + background-color: var(--code-editor-file-browser-badge-background); + color: var(--bs-body-color); +} + +.badge.on-colored-background { + /* Only slightly darken the background and always use white text */ + background-color: rgba(0, 0, 0, 0.15); + color: var(--colored-btn-font); +} diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.ts b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.ts new file mode 100644 index 000000000000..ea851defda95 --- /dev/null +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.ts @@ -0,0 +1,36 @@ +import { Component, Input } from '@angular/core'; +import { IconDefinition, faLightbulb } from '@fortawesome/free-solid-svg-icons'; +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateService } from '@ngx-translate/core'; +import { FileBadge, FileBadgeType } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; + +@Component({ + selector: 'jhi-file-browser-badge', + templateUrl: './code-editor-file-browser-badge.component.html', + styleUrls: ['./code-editor-file-browser-badge.component.scss'], + providers: [NgbModal], +}) +export class CodeEditorFileBrowserBadgeComponent { + @Input() badge: FileBadge; + @Input() onColoredBackground: boolean = false; // Only slightly darken the background and use white text + + constructor(private translateService: TranslateService) {} + + get tooltip(): string | undefined { + switch (this.badge.type) { + case FileBadgeType.FEEDBACK_SUGGESTION: + return this.translateService.instant('artemisApp.editor.fileBrowser.fileBadgeTooltips.feedbackSuggestions'); + default: + return undefined; + } + } + + get icon(): IconDefinition | undefined { + switch (this.badge.type) { + case FileBadgeType.FEEDBACK_SUGGESTION: + return faLightbulb; + default: + return undefined; + } + } +} diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.html b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.html index 087d648f22a3..8262c5fd205b 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.html +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.html @@ -19,12 +19,14 @@ (keyup.esc)="clearRenamingNode($event)" class="list-group-item__input" /> + + - - - diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.ts b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.ts index b690b3753fb8..b5738903dd33 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.ts +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-file.component.ts @@ -2,6 +2,7 @@ import { Component, Input } from '@angular/core'; import { faEdit, faFile, faTrash } from '@fortawesome/free-solid-svg-icons'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { CodeEditorFileBrowserNodeComponent } from 'app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-node.component'; +import { FileBadge } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; @Component({ selector: 'jhi-code-editor-file-browser-file', @@ -11,6 +12,7 @@ import { CodeEditorFileBrowserNodeComponent } from 'app/exercises/programming/sh export class CodeEditorFileBrowserFileComponent extends CodeEditorFileBrowserNodeComponent { @Input() disableActions: boolean; @Input() hasChanges = false; + @Input() badges: FileBadge[] = []; // Icons faTrash = faTrash; diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.html b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.html index 5f0f6785f511..cbf4cc053eb5 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.html +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.html @@ -13,26 +13,26 @@ (keyup.esc)="clearRenamingNode($event)" class="list-group-item__input" /> + + - - - - - diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.ts b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.ts index 5541c585219f..d1693b244d82 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.ts +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-folder.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { FileType } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; +import { FileBadge, FileType } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; import { CodeEditorFileBrowserNodeComponent } from 'app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-node.component'; import { faChevronDown, faChevronRight, faEdit, faFile, faFolder, faFolderOpen, faTrash } from '@fortawesome/free-solid-svg-icons'; import { TreeviewItem } from 'app/exercises/programming/shared/code-editor/treeview/models/treeview-item'; @@ -14,6 +14,7 @@ export class CodeEditorFileBrowserFolderComponent extends CodeEditorFileBrowserN @Input() onCollapseExpand: () => void; @Input() isCompressed = false; @Input() disableActions: boolean; + @Input() badges: FileBadge[] = []; @Output() onSetCreatingNodeInFolder = new EventEmitter<{ item: TreeviewItem; fileType: FileType }>(); // Icons diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.component.html b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.component.html index 71357b7d07e1..8ebe218274f2 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.component.html +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.component.html @@ -53,7 +53,7 @@

- + [onCollapseExpand]="onCollapseExpand" [isCompressed]="compressFolders" [disableActions]="disableActions || commitState === CommitState.CONFLICT" + [badges]="getFolderBadges(item)" (onSetRenamingNode)="setRenamingFile(item)" (onRenameNode)="onRenameFile($event)" (onNodeSelect)="handleNodeSelected(item)" @@ -88,11 +89,12 @@

(onClearRenamingNode)="clearRenamingFile()" (onSetCreatingNodeInFolder)="setCreatingFile($event)" > - + (); @@ -152,10 +156,9 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function ngAfterViewInit - * @desc After the view was initialized, we create an interact.js resizable object, - * designate the edges which can be used to resize the target element and set min and max values. - * The 'resizemove' callback function processes the event values and sets new width and height values for the element. + * After the view was initialized, we create an interact.js resizable object, + * designate the edges which can be used to resize the target element and set min and max values. + * The 'resizemove' callback function processes the event values and sets new width and height values for the element. */ ngAfterViewInit(): void { this.resizableMinWidth = window.screen.width / 6; @@ -163,8 +166,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function ngOnInit - * @desc When the commitState is undefined, fetch the repository status and load the files if possible. + * When the commitState is undefined, fetch the repository status and load the files if possible. * When this is done, render the file tree. * @param changes */ @@ -224,8 +226,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV }; /** - * @function checkIfRepositoryIsClean - * @desc Calls the repository service to see if the repository has uncommitted changes + * Calls the repository service to see if the repository has uncommitted changes */ checkIfRepositoryIsClean = (): Observable => { return this.repositoryService.getStatus().pipe( @@ -250,8 +251,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function onFileDeleted - * @desc Emmiter function for when a file was deleted; notifies the parent component + * Emmiter function for when a file was deleted; notifies the parent component * @param fileChange */ onFileDeleted(fileChange: FileChange) { @@ -259,9 +259,8 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function handleNodeSelected - * @desc Callback function for when a node in the file tree view has been selected - * @param item: Corresponding event object, holds the selected TreeViewItem + * Callback function for when a node in the file tree view has been selected + * @param item Corresponding event object, holds the selected TreeViewItem */ handleNodeSelected(item: TreeviewItem) { if (item && item.value !== this.selectedFile) { @@ -285,8 +284,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function setupTreeView - * @desc Processes the file array, compresses it and then transforms it to a TreeViewItem + * Process the file array, compress it and then transforms it to a TreeViewItem */ setupTreeview() { let tree = this.buildTree(Object.keys(this.repositoryFiles).sort()); @@ -297,9 +295,8 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function transformTreeToTreeViewItem - * @desc Converts a parsed file tree to a TreeViewItem[] which will then be used by the Treeviewer - * @param tree: File tree obtained by parsing the repository file list + * Converts a parsed file tree to a TreeViewItem[] which will then be used by the Treeviewer + * @param tree File tree obtained by parsing the repository file list */ transformTreeToTreeViewItem(tree: FileTreeItem[]): TreeviewItem[] { const treeViewItem = new Array>(); @@ -310,8 +307,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function buildTree - * @desc Parses the provided list of repository files + * Parses the provided list of repository files * @param files {array of strings} Filepath strings to process * @param tree {array of objects} Current tree structure * @param folder {string} Folder name @@ -372,8 +368,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function compressTree - * @desc Compresses the tree obtained by buildTree() to not contain nodes with only one directory child node + * Compresses the tree obtained by buildTree() to not contain nodes with only one directory child node * @param node Tree node */ compressTree(node: FileTreeItem): FileTreeItem { @@ -392,8 +387,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV } /** - * @function toggleEditorCollapse - * @desc Calls the parent (editorComponent) toggleCollapse method + * Calls the parent (editorComponent) toggleCollapse method * @param event */ toggleEditorCollapse(event: any) { @@ -553,8 +547,7 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV }; /** - * @function openDeleteFileModal - * @desc Opens a popup to delete the selected repository file + * Opens a popup to delete the selected repository file */ openDeleteFileModal(item: TreeviewItem) { const { value: filePath } = item; @@ -595,4 +588,25 @@ export class CodeEditorFileBrowserComponent implements OnInit, OnChanges, AfterV const fileSplit = fileName.split('.'); return fileSplit.length === 1 || supportedTextFileExtensions.includes(fileSplit.pop()!); } + + /** + * Aggregate the file badges for the given folder. The numbers of the badges are summed up. + * The folder badges will only be shown on collapsed folders (otherwise you can see the file badges already and we don't want to clutter the UI) + */ + getFolderBadges(folder: TreeviewItem): FileBadge[] { + if (!folder.collapsed) { + return []; // Only show folder badges on collapsed folders + } + const folderBadgesMap: Map = new Map(); // Use a Map to preserve order + for (const [fileName, fileBadges] of Object.entries(this.fileBadges)) { + if (fileName.startsWith(folder.value)) { + // file is in folder + for (const fileBadge of fileBadges) { + const folderBadgeCount = folderBadgesMap.get(fileBadge.type) ?? 0; + folderBadgesMap.set(fileBadge.type, folderBadgeCount + fileBadge.count); + } + } + } + return Array.from(folderBadgesMap.entries()).map(([type, count]) => new FileBadge(type, count)); + } } diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.scss b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.scss index 6007eca9a3f4..0196a59b4237 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.scss +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser.scss @@ -65,7 +65,7 @@ File browser tree } .node-selected { - background-color: #428bca !important; + background-color: var(--code-editor-file-browser-selected-file-background) !important; } .file-icons { diff --git a/src/main/webapp/app/exercises/programming/shared/code-editor/model/code-editor.model.ts b/src/main/webapp/app/exercises/programming/shared/code-editor/model/code-editor.model.ts index 67e614e230bc..15e715b290ef 100644 --- a/src/main/webapp/app/exercises/programming/shared/code-editor/model/code-editor.model.ts +++ b/src/main/webapp/app/exercises/programming/shared/code-editor/model/code-editor.model.ts @@ -103,3 +103,20 @@ export enum GitConflictState { CHECKOUT_CONFLICT = 'CHECKOUT_CONFLICT', OK = 'OK', } + +/** + * Enumeration defining the icon in a file badge. + */ +export enum FileBadgeType { + FEEDBACK_SUGGESTION = 'FEEDBACK_SUGGESTION', +} + +/** + * A file badge is a badge in the file tree of the code editor with an icon and a count. + */ +export class FileBadge { + constructor( + public type: FileBadgeType, + public count: number, + ) {} +} diff --git a/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.html b/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.html new file mode 100644 index 000000000000..9e5fc45821eb --- /dev/null +++ b/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.html @@ -0,0 +1,4 @@ + + + Suggestion + diff --git a/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.scss b/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.scss new file mode 100644 index 000000000000..a45866692cf9 --- /dev/null +++ b/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.scss @@ -0,0 +1,13 @@ +:host { + /* Shift the feedback content down a bit to make space for the badge */ + display: inline-block; + height: 12px; +} + +.suggestion-badge { + position: absolute; + top: -8px; + vertical-align: middle; + background-color: var(--feedback-suggestions-primary); + cursor: default; +} diff --git a/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.ts b/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.ts new file mode 100644 index 000000000000..ae4f37acc1f2 --- /dev/null +++ b/src/main/webapp/app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component.ts @@ -0,0 +1,47 @@ +import { Component, Input } from '@angular/core'; +import { faLightbulb } from '@fortawesome/free-solid-svg-icons'; +import { TranslateService } from '@ngx-translate/core'; +import { Feedback, FeedbackSuggestionType } from 'app/entities/feedback.model'; + +@Component({ + selector: 'jhi-feedback-suggestion-badge', + templateUrl: './feedback-suggestion-badge.component.html', + styleUrls: ['./feedback-suggestion-badge.component.scss'], +}) +export class FeedbackSuggestionBadgeComponent { + @Input() + feedback: Feedback; + + // Icons + faLightbulb = faLightbulb; + + constructor(private translateService: TranslateService) {} + + get text(): string { + const feedbackSuggestionType = Feedback.getFeedbackSuggestionType(this.feedback); + switch (feedbackSuggestionType) { + case FeedbackSuggestionType.SUGGESTED: + return 'artemisApp.assessment.suggestion.suggested'; + case FeedbackSuggestionType.ACCEPTED: + return 'artemisApp.assessment.suggestion.accepted'; + case FeedbackSuggestionType.ADAPTED: + return 'artemisApp.assessment.suggestion.adapted'; + default: + return ''; + } + } + + get tooltip(): string { + const feedbackSuggestionType = Feedback.getFeedbackSuggestionType(this.feedback); + switch (feedbackSuggestionType) { + case FeedbackSuggestionType.SUGGESTED: + return this.translateService.instant('artemisApp.assessment.suggestionTitle.suggested'); + case FeedbackSuggestionType.ACCEPTED: + return this.translateService.instant('artemisApp.assessment.suggestionTitle.accepted'); + case FeedbackSuggestionType.ADAPTED: + return this.translateService.instant('artemisApp.assessment.suggestionTitle.adapted'); + default: + return ''; + } + } +} diff --git a/src/main/webapp/app/exercises/shared/feedback/feedback.module.ts b/src/main/webapp/app/exercises/shared/feedback/feedback.module.ts index ec5791635c9d..83234b612392 100644 --- a/src/main/webapp/app/exercises/shared/feedback/feedback.module.ts +++ b/src/main/webapp/app/exercises/shared/feedback/feedback.module.ts @@ -8,10 +8,11 @@ import { FeedbackNodeComponent } from 'app/exercises/shared/feedback/node/feedba import { FeedbackComponent } from 'app/exercises/shared/feedback/feedback.component'; import { FeedbackTextComponent } from 'app/exercises/shared/feedback/text/feedback-text.component'; import { StandaloneFeedbackComponent } from './standalone-feedback/standalone-feedback.component'; +import { FeedbackSuggestionBadgeComponent } from 'app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component'; @NgModule({ imports: [ArtemisSharedModule, ArtemisProgrammingExerciseActionsModule, ArtemisSharedComponentModule, BarChartModule], - declarations: [FeedbackCollapseComponent, FeedbackNodeComponent, FeedbackComponent, FeedbackTextComponent, StandaloneFeedbackComponent], - exports: [FeedbackComponent], + declarations: [FeedbackCollapseComponent, FeedbackNodeComponent, FeedbackComponent, FeedbackTextComponent, StandaloneFeedbackComponent, FeedbackSuggestionBadgeComponent], + exports: [FeedbackComponent, FeedbackSuggestionBadgeComponent], }) export class ArtemisFeedbackModule {} diff --git a/src/main/webapp/app/exercises/shared/feedback/item/programming-feedback-item.service.ts b/src/main/webapp/app/exercises/shared/feedback/item/programming-feedback-item.service.ts index 042731176811..2e4f08452ded 100644 --- a/src/main/webapp/app/exercises/shared/feedback/item/programming-feedback-item.service.ts +++ b/src/main/webapp/app/exercises/shared/feedback/item/programming-feedback-item.service.ts @@ -1,6 +1,14 @@ import { FeedbackItemService } from 'app/exercises/shared/feedback/item/feedback-item-service'; import { Injectable } from '@angular/core'; -import { Feedback, FeedbackType, STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER, SUBMISSION_POLICY_FEEDBACK_IDENTIFIER } from 'app/entities/feedback.model'; +import { + FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, + FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER, + FEEDBACK_SUGGESTION_IDENTIFIER, + Feedback, + FeedbackType, + STATIC_CODE_ANALYSIS_FEEDBACK_IDENTIFIER, + SUBMISSION_POLICY_FEEDBACK_IDENTIFIER, +} from 'app/entities/feedback.model'; import { TranslateService } from '@ngx-translate/core'; import { StaticCodeAnalysisIssue } from 'app/entities/static-code-analysis-issue.model'; import { getAllFeedbackGroups } from 'app/exercises/shared/feedback/group/programming-feedback-groups'; @@ -39,6 +47,8 @@ export class ProgrammingFeedbackItemService implements FeedbackItemService { return this.createSubmissionPolicyFeedbackItem(feedback); } else if (Feedback.isStaticCodeAnalysisFeedback(feedback)) { return this.createScaFeedbackItem(feedback, showTestDetails); + } else if (Feedback.isFeedbackSuggestion(feedback)) { + return this.createFeedbackSuggestionItem(feedback, showTestDetails); } else if (feedback.type === FeedbackType.AUTOMATIC) { return this.createAutomaticFeedbackItem(feedback, showTestDetails); } else if ((feedback.type === FeedbackType.MANUAL || feedback.type === FeedbackType.MANUAL_UNREFERENCED) && feedback.gradingInstruction) { @@ -88,6 +98,32 @@ export class ProgrammingFeedbackItemService implements FeedbackItemService { }; } + /** + * Creates a feedback item from a feedback suggestion. + * @param feedback The feedback suggestion. + * @param showTestDetails + */ + private createFeedbackSuggestionItem(feedback: Feedback, showTestDetails: boolean): FeedbackItem { + // A feedback suggestion should look like a manual feedback + let titleWithoutIdentifier = feedback.text ?? ''; + // Remove prefix if it exists + for (const prefix of [FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, FEEDBACK_SUGGESTION_ADAPTED_IDENTIFIER, FEEDBACK_SUGGESTION_IDENTIFIER]) { + if (titleWithoutIdentifier.startsWith(prefix)) { + titleWithoutIdentifier = titleWithoutIdentifier.substring(prefix.length); + break; + } + } + return { + type: 'Reviewer', // Treat it like normal feedback from the TA + name: showTestDetails ? this.translateService.instant('artemisApp.course.reviewer') : this.translateService.instant('artemisApp.result.detail.feedback'), + title: titleWithoutIdentifier, + text: feedback.detailText, + positive: feedback.positive, + credits: feedback.credits, + feedbackReference: feedback, + }; + } + /** * Creates a feedback item from a feedback generated from an automatic test case result. * @param feedback A feedback received from an automatic test case. diff --git a/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.html b/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.html index 1d1f5008ca1d..c2ded6b20eec 100644 --- a/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.html +++ b/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.html @@ -1,27 +1,33 @@
- - -
-

Feedback

-
- -
-
- +
+

Feedback

+
+
- +
+ +
+
+ +
+
diff --git a/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.ts b/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.ts index c79c8f6f9c09..7a8e29bbd4b8 100644 --- a/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.ts +++ b/src/main/webapp/app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component.ts @@ -1,5 +1,5 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { Feedback, FeedbackType } from 'app/entities/feedback.model'; +import { FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER, FEEDBACK_SUGGESTION_IDENTIFIER, Feedback, FeedbackType } from 'app/entities/feedback.model'; import { StructuredGradingCriterionService } from 'app/exercises/shared/structured-grading-criterion/structured-grading-criterion.service'; @Component({ @@ -13,7 +13,6 @@ export class UnreferencedFeedbackComponent { unreferencedFeedback: Feedback[] = []; assessmentsAreValid: boolean; - @Input() busy: boolean; @Input() readOnly: boolean; @Input() highlightDifferences: boolean; @@ -25,13 +24,16 @@ export class UnreferencedFeedbackComponent { @Input() set feedbacks(feedbacks: Feedback[]) { this.unreferencedFeedback = [...feedbacks]; } + @Input() feedbackSuggestions: Feedback[] = []; @Output() feedbacksChange = new EventEmitter(); + @Output() onAcceptSuggestion = new EventEmitter(); + @Output() onDiscardSuggestion = new EventEmitter(); constructor(private structuredGradingCriterionService: StructuredGradingCriterionService) {} - public deleteAssessment(assessmentToDelete: Feedback): void { - const indexToDelete = this.unreferencedFeedback.indexOf(assessmentToDelete); + public deleteFeedback(feedbackToDelete: Feedback): void { + const indexToDelete = this.unreferencedFeedback.indexOf(feedbackToDelete); this.unreferencedFeedback.splice(indexToDelete, 1); this.feedbacksChange.emit(this.unreferencedFeedback); this.validateFeedback(); @@ -55,9 +57,17 @@ export class UnreferencedFeedbackComponent { this.assessmentsAreValid = true; } - updateAssessment(feedback: Feedback) { + /** + * Update the feedback in the list of unreferenced feedback, changing or adding it. + * @param feedback The feedback to update + */ + updateFeedback(feedback: Feedback) { const indexToUpdate = this.unreferencedFeedback.indexOf(feedback); - this.unreferencedFeedback[indexToUpdate] = feedback; + if (indexToUpdate < 0) { + this.unreferencedFeedback.push(feedback); + } else { + this.unreferencedFeedback[indexToUpdate] = feedback; + } this.validateFeedback(); this.feedbacksChange.emit(this.unreferencedFeedback); } @@ -94,12 +104,34 @@ export class UnreferencedFeedbackComponent { return Math.max(...references.concat([0])) + 1; } + /** + * Accept a feedback suggestion: Make it "real" feedback and remove the suggestion card + */ + acceptSuggestion(feedback: Feedback) { + this.feedbackSuggestions = this.feedbackSuggestions.filter((f) => f !== feedback); // Remove the suggestion card + // We need to change the feedback type to "manual" because non-manual feedback is never editable in the editor + // and will be filtered out in all kinds of places + feedback.type = FeedbackType.MANUAL_UNREFERENCED; + // Change the prefix "FeedbackSuggestion:" to "FeedbackSuggestion:accepted:" + feedback.text = (feedback.text ?? FEEDBACK_SUGGESTION_IDENTIFIER).replace(FEEDBACK_SUGGESTION_IDENTIFIER, FEEDBACK_SUGGESTION_ACCEPTED_IDENTIFIER); + this.updateFeedback(feedback); // Make it "real" feedback + this.onAcceptSuggestion.emit(feedback); + } + + /** + * Discard a feedback suggestion: Remove the suggestion card and emit the event + */ + discardSuggestion(feedback: Feedback) { + this.feedbackSuggestions = this.feedbackSuggestions.filter((f) => f !== feedback); // Remove the suggestion card + this.onDiscardSuggestion.emit(feedback); + } + createAssessmentOnDrop(event: Event) { this.addUnreferencedFeedback(); const newFeedback: Feedback | undefined = this.unreferencedFeedback.last(); if (newFeedback) { this.structuredGradingCriterionService.updateFeedbackWithStructuredGradingInstructionEvent(newFeedback, event); - this.updateAssessment(newFeedback); + this.updateFeedback(newFeedback); } } } diff --git a/src/main/webapp/app/exercises/text/assess/text-submission-assessment.component.ts b/src/main/webapp/app/exercises/text/assess/text-submission-assessment.component.ts index a93861fd89d3..da5c98c72e58 100644 --- a/src/main/webapp/app/exercises/text/assess/text-submission-assessment.component.ts +++ b/src/main/webapp/app/exercises/text/assess/text-submission-assessment.component.ts @@ -326,7 +326,7 @@ export class TextSubmissionAssessmentComponent extends TextAssessmentBaseCompone return; } this.feedbackSuggestionsObservable = this.athenaService - .getFeedbackSuggestions(this.exercise!.id!, this.submission!.id!) + .getFeedbackSuggestionsForText(this.exercise!.id!, this.submission!.id!) .subscribe((feedbackSuggestions: TextBlockRef[]) => { for (const suggestion of feedbackSuggestions) { this.addAutomaticTextBlockRef(suggestion); diff --git a/src/main/webapp/app/exercises/text/assess/text-submission-assessment.module.ts b/src/main/webapp/app/exercises/text/assess/text-submission-assessment.module.ts index 5e3dadba8536..0c119a592dbe 100644 --- a/src/main/webapp/app/exercises/text/assess/text-submission-assessment.module.ts +++ b/src/main/webapp/app/exercises/text/assess/text-submission-assessment.module.ts @@ -20,6 +20,7 @@ import { ArtemisGradingInstructionLinkIconModule } from 'app/shared/grading-inst import { SubmissionResultStatusModule } from 'app/overview/submission-result-status.module'; import { TextblockFeedbackDropdownComponent } from 'app/exercises/text/assess/textblock-feedback-editor/dropdown/textblock-feedback-dropdown.component'; import { ArtemisAssessmentProgressLabelModule } from 'app/exercises/shared/assessment-progress-label/assessment-progress-label.module'; +import { ArtemisFeedbackModule } from 'app/exercises/shared/feedback/feedback.module'; const ENTITY_STATES = [...textSubmissionAssessmentRoutes]; @@ -38,6 +39,7 @@ const ENTITY_STATES = [...textSubmissionAssessmentRoutes]; ArtemisGradingInstructionLinkIconModule, SubmissionResultStatusModule, ArtemisAssessmentProgressLabelModule, + ArtemisFeedbackModule, ], declarations: [ TextSubmissionAssessmentComponent, diff --git a/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.html b/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.html index 8ca70fa07d89..ba6a1e0b6556 100644 --- a/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.html +++ b/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.html @@ -1,8 +1,5 @@
- - - - +
@@ -32,7 +29,7 @@
- +
diff --git a/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.scss b/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.scss index c5062d6a8b43..d2f4bb444cd3 100644 --- a/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.scss +++ b/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.scss @@ -28,12 +28,6 @@ label { width: 100%; } -.badge { - display: inline; - position: relative; - top: -25px; -} - .close { display: inline; margin-top: -0.5vh; diff --git a/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.ts b/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.ts index d79558b17af8..8b7db3fd5d12 100644 --- a/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.ts +++ b/src/main/webapp/app/exercises/text/assess/textblock-feedback-editor/textblock-feedback-editor.component.ts @@ -7,7 +7,7 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { ActivatedRoute } from '@angular/router'; import { TextAssessmentEventType } from 'app/entities/text-assesment-event.model'; import { TextAssessmentAnalytics } from 'app/exercises/text/assess/analytics/text-assesment-analytics.service'; -import { faAngleRight, faBalanceScaleRight, faEdit, faExclamation, faExclamationTriangle, faQuestionCircle, faRobot, faTimes, faTrash } from '@fortawesome/free-solid-svg-icons'; +import { faAngleRight, faEdit, faExclamation, faExclamationTriangle, faLightbulb, faQuestionCircle, faTimes, faTrash } from '@fortawesome/free-solid-svg-icons'; import { GradingCriterion } from 'app/exercises/shared/structured-grading-criterion/grading-criterion.model'; @Component({ @@ -31,6 +31,9 @@ export class TextblockFeedbackEditorComponent implements AfterViewInit { @Input() criteria?: GradingCriterion[]; private textareaElement: HTMLTextAreaElement; + // Expose to template + protected readonly Feedback = Feedback; + @HostBinding('class.alert') @HostBinding('class.alert-dismissible') readonly classes = true; @HostBinding('class.alert-secondary') get neutralFeedbackClass(): boolean { @@ -49,9 +52,8 @@ export class TextblockFeedbackEditorComponent implements AfterViewInit { faEdit = faEdit; faQuestionCircle = faQuestionCircle; faExclamationTriangle = faExclamationTriangle; - faRobot = faRobot; + faLightbulb = faLightbulb; faExclamation = faExclamation; - faBalanceScaleRight = faBalanceScaleRight; faTimes = faTimes; faTrash = faTrash; faAngleRight = faAngleRight; diff --git a/src/main/webapp/app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component.ts b/src/main/webapp/app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component.ts index f27db9d542f8..5702a3ce76c7 100644 --- a/src/main/webapp/app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component.ts +++ b/src/main/webapp/app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component.ts @@ -10,7 +10,7 @@ import { faLink, faTrash } from '@fortawesome/free-solid-svg-icons'; }) export class GradingInstructionLinkIconComponent implements OnInit { @Input() linkIcon = faLink; - @Input() assessment: Feedback; + @Input() feedback: Feedback; instruction: GradingInstruction | undefined; confirmIcon = faTrash; showConfirm = false; @@ -18,7 +18,7 @@ export class GradingInstructionLinkIconComponent implements OnInit { constructor(private artemisTranslatePipe: ArtemisTranslatePipe) {} ngOnInit(): void { - this.instruction = this.assessment.gradingInstruction; + this.instruction = this.feedback.gradingInstruction; } /** @@ -26,7 +26,7 @@ export class GradingInstructionLinkIconComponent implements OnInit { */ removeLink(): void { this.toggle(); - this.assessment.gradingInstruction = undefined; + this.feedback.gradingInstruction = undefined; } /** diff --git a/src/main/webapp/app/shared/markdown-editor/ace-editor/ace-editor.component.ts b/src/main/webapp/app/shared/markdown-editor/ace-editor/ace-editor.component.ts index 428d253f58cd..a34af62f828d 100644 --- a/src/main/webapp/app/shared/markdown-editor/ace-editor/ace-editor.component.ts +++ b/src/main/webapp/app/shared/markdown-editor/ace-editor/ace-editor.component.ts @@ -56,7 +56,7 @@ export class AceEditorComponent implements ControlValueAccessor, OnInit, OnDestr private themeSubscription: Subscription; constructor( - elementRef: ElementRef, + public elementRef: ElementRef, // needed for resize detection in code-editor-ace.component.ts private zone: NgZone, private themeService: ThemeService, ) { diff --git a/src/main/webapp/content/scss/themes/_dark-variables.scss b/src/main/webapp/content/scss/themes/_dark-variables.scss index f3043215c3f0..618f1c6e2232 100644 --- a/src/main/webapp/content/scss/themes/_dark-variables.scss +++ b/src/main/webapp/content/scss/themes/_dark-variables.scss @@ -411,6 +411,7 @@ $code-editor-file-browser-header-border: $neutral-dark-l-10; $code-editor-file-browser-tree-hover: $neutral-dark-l-5; $code-editor-file-browser-input-background: darken($neutral-dark, 10%); $code-editor-file-browser-input-color: white; +$code-editor-file-browser-badge-background: $code-editor-file-browser-tree-hover; $code-editor-diff-newline-background: rgba(46, 160, 67, 0.22); $code-editor-gutter-newline-background: rgba(46, 160, 67, 0.6); @@ -581,6 +582,10 @@ $apollon-gray: $neutral-dark-l-5; $apollon-gray-variant: $gray-100; $apollon-grid: $neutral-dark-l-10; +// Feedback Suggestions (Athena) +$feedback-suggestions-primary: rgb(181, 78, 254, 1); +$feedback-suggestions-background: darken($feedback-suggestions-primary, 50%); + // NGX Graph Colors $graph-light-grey: rgb(182, 182, 182); $graph-grey: rgb(150, 150, 150); diff --git a/src/main/webapp/content/scss/themes/_default-variables.scss b/src/main/webapp/content/scss/themes/_default-variables.scss index ec166f7576ee..6ff40fcbda9a 100644 --- a/src/main/webapp/content/scss/themes/_default-variables.scss +++ b/src/main/webapp/content/scss/themes/_default-variables.scss @@ -334,6 +334,8 @@ $code-editor-file-browser-header-border: #ddd; $code-editor-file-browser-tree-hover: #f5f5f5; $code-editor-file-browser-input-background: white; $code-editor-file-browser-input-color: black; +$code-editor-file-browser-selected-file-background: #428bca; +$code-editor-file-browser-badge-background: $code-editor-file-browser-tree-hover; $code-editor-diff-newline-background: rgba(63, 185, 80, 0.4); $code-editor-gutter-newline-background: rgba(63, 185, 80, 0.8); @@ -504,6 +506,11 @@ $apollon-gray: $gray-200; $apollon-gray-variant: $gray-700; $apollon-grid: rgba(36, 39, 36, 0.1); +// Feedback Suggestions (Athena) +$feedback-suggestions-primary: rgb(181, 78, 254, 1); +$feedback-suggestions-background: lighten($feedback-suggestions-primary, 24%); +$feedback-suggestions-input-background: darken($feedback-suggestions-background, 2%); + // NGX Graph Colors $graph-light-grey: rgba(153, 153, 153, 1); $graph-grey: rgba(127, 127, 127, 255); diff --git a/src/main/webapp/i18n/de/assessment.json b/src/main/webapp/i18n/de/assessment.json index 00bf8c24e7b8..94c4f64b13de 100644 --- a/src/main/webapp/i18n/de/assessment.json +++ b/src/main/webapp/i18n/de/assessment.json @@ -9,7 +9,16 @@ "feedbackHint": "Dieses Feedback ist mit einer Bewertungsanweisung verbunden. Du kannst zusätzliches Feedback für dieses Abgabeelement geben. Der/Die Studierende sieht das kombinierte Feedback während der Überprüfung.", "feedbackCommentPlaceholder": "Du kannst hier ein Feedback abgeben...", "additionalFeedbackCommentPlaceholder": "Du kannst hier zusätzliches Feedback abgeben...", - "automaticGenerated": "Automatisch erstelltes Feedback", + "suggestion": { + "suggested": "Feedback-Vorschlag (nicht akzeptiert)", + "accepted": "Akzeptierter Feedback-Vorschlag", + "adapted": "Angepasster Feedback-Vorschlag" + }, + "suggestionTitle": { + "suggested": "Dieser automatisch erstellte Feedback-Vorschlag ist nicht in der Gesamtbewertung enthalten, solange er nicht explizit akzeptiert wird.", + "accepted": "Automatisch erstellter Feedback-Vorschlag", + "adapted": "Automatisch erstellter Feedback-Vorschlag, bearbeitet" + }, "subsequentFeedback": "Dies ist ein zusätzliches Feedback, das nicht in die Gesamtbewertung eingeht.", "error": { "assessmentDueDateOver": "Die Einreichungsfrist der Bewertung für diese Aufgabe ist vorbei." @@ -44,6 +53,9 @@ "feedbackWithColon": "Feedback:", "scoreFor": "Bewertung für", "tutorComment": "Kommentar von Tutor:in:", + "feedbackSuggestion": "Feedback-Vorschlag:", + "accept": "Annehmen", + "discard": "Verwerfen", "points": { "one": "{{points}} Punkt", "many": "{{points}} Punkte" diff --git a/src/main/webapp/i18n/de/editor.json b/src/main/webapp/i18n/de/editor.json index eb94710c7b3f..6e2846ed44c6 100644 --- a/src/main/webapp/i18n/de/editor.json +++ b/src/main/webapp/i18n/de/editor.json @@ -72,7 +72,10 @@ "renameFolderDisabledTooltip": "Um Verzeichnisse umzubenennen, deaktiviere das Zusammenfassen von Verzeichnissen in der obigen Leiste.", "deleteFolder": "Verzeichnis löschen", "deleteFile": "Datei löschen", - "compressTree": "Leere Verzeichnisse zusammenfassen" + "compressTree": "Leere Verzeichnisse zusammenfassen", + "fileBadgeTooltips": { + "feedbackSuggestions": "Anzahl von Feedback-Vorschlägen in dieser Datei / diesem Ordner" + } }, "errors": { "participationNotFound": "Deine Teilnahme konnte nicht gefunden werden.", diff --git a/src/main/webapp/i18n/de/textAssessment.json b/src/main/webapp/i18n/de/textAssessment.json index dc0d09fa994b..40195cb6021a 100644 --- a/src/main/webapp/i18n/de/textAssessment.json +++ b/src/main/webapp/i18n/de/textAssessment.json @@ -23,7 +23,6 @@ }, "assessInstruction": "Markiere den zu bewertenden Textblock und klicke \"Bewerten\".", "predefineTextBlocks": "Textblöcke automatisch anlegen", - "automatic": "Automatisch", "lock": "Diese Abgabe kann jetzt nur noch von dir bearbeitet werden. Bitte bewerte diese Abgabe, bevor du eine neue öffnest.", "submissionLocked": "Abgabe gesperrt", "studentSubmission": "Studentische Abgabe", diff --git a/src/main/webapp/i18n/en/assessment.json b/src/main/webapp/i18n/en/assessment.json index c4fbab171aef..1c35c2845dff 100644 --- a/src/main/webapp/i18n/en/assessment.json +++ b/src/main/webapp/i18n/en/assessment.json @@ -9,7 +9,16 @@ "feedbackHint": "This feedback is associated with an assessment instruction. You can provide additional feedback for this submission element. The student will see the combined feedback during the review.", "feedbackCommentPlaceholder": "You can enter feedback here...", "additionalFeedbackCommentPlaceholder": "You can enter additional feedback here...", - "automaticGenerated": "Automatically generated feedback", + "suggestion": { + "suggested": "Suggestion (not accepted)", + "accepted": "Accepted Suggestion", + "adapted": "Adapted Suggestion" + }, + "suggestionTitle": { + "suggested": "This automatically generated feedback suggestion is not included in the final assessment unless you explicitly accept it.", + "accepted": "Automatically generated feedback", + "adapted": "Automatically generated feedback, manually adapted" + }, "subsequentFeedback": "This is subsequent feedback which is not included in the total score.", "error": { "assessmentDueDateOver": "The assessment due date of this exercise has passed." @@ -44,6 +53,9 @@ "feedbackWithColon": "Feedback:", "scoreFor": "Assessment for", "tutorComment": "Tutor Comment:", + "feedbackSuggestion": "Feedback Suggestion:", + "accept": "Accept", + "discard": "Discard", "points": { "one": "{{points}} Point", "many": "{{points}} Points" diff --git a/src/main/webapp/i18n/en/editor.json b/src/main/webapp/i18n/en/editor.json index b1fff67f2580..ce7791f0cd2f 100644 --- a/src/main/webapp/i18n/en/editor.json +++ b/src/main/webapp/i18n/en/editor.json @@ -73,7 +73,10 @@ "renameFolderDisabledTooltip": "To rename this folder, deactivate the combining of folders in the toolbar above.", "deleteFolder": "Delete folder", "deleteFile": "Delete file", - "compressTree": "Combine empty folders" + "compressTree": "Combine empty folders", + "fileBadgeTooltips": { + "feedbackSuggestions": "Number of feedback suggestions in this file/folder" + } }, "errors": { "participationNotFound": "Your participation could not be found.", diff --git a/src/main/webapp/i18n/en/textAssessment.json b/src/main/webapp/i18n/en/textAssessment.json index 16b9ab610b57..5b709235f3f0 100644 --- a/src/main/webapp/i18n/en/textAssessment.json +++ b/src/main/webapp/i18n/en/textAssessment.json @@ -23,8 +23,6 @@ }, "assessInstruction": "Please highlight the text block you want to assess and click the \"Assess\" button.", "predefineTextBlocks": "Add Text Blocks automatically", - "automatic": "Automatic", - "automaticGenerated": "Automatically generated feedback", "lock": "You now have the lock on this submission. Only you can assess this submission. Please assess this submission before opening other submissions.", "submissionLocked": "submission locked", "studentSubmission": "Student submission", diff --git a/src/test/cypress/support/pageobjects/assessment/AbstractExerciseAssessmentPage.ts b/src/test/cypress/support/pageobjects/assessment/AbstractExerciseAssessmentPage.ts index 110e055d0c55..5c96906dc4af 100644 --- a/src/test/cypress/support/pageobjects/assessment/AbstractExerciseAssessmentPage.ts +++ b/src/test/cypress/support/pageobjects/assessment/AbstractExerciseAssessmentPage.ts @@ -4,10 +4,10 @@ import { BASE_API, ExerciseType, PUT } from '../../constants'; * Parent class for all exercise assessment pages. */ export abstract class AbstractExerciseAssessmentPage { - readonly unreferencedFeedbackSelector = '#assessment-detail'; + readonly unreferencedFeedbackSelector = '.unreferenced-feedback-detail'; addNewFeedback(points: number, feedback?: string) { - cy.get('#add-unreferenced-feedback').click(); + cy.get('.add-unreferenced-feedback').click(); cy.get(this.unreferencedFeedbackSelector).find('#feedback-points').clear().type(points.toString()); if (feedback) { cy.get(this.unreferencedFeedbackSelector).find('#feedback-textarea').clear().type(feedback); diff --git a/src/test/javascript/spec/component/assessment-shared/assessment-detail.component.spec.ts b/src/test/javascript/spec/component/assessment-shared/unreferenced-feedback-detail.component.spec.ts similarity index 62% rename from src/test/javascript/spec/component/assessment-shared/assessment-detail.component.spec.ts rename to src/test/javascript/spec/component/assessment-shared/unreferenced-feedback-detail.component.spec.ts index 7761cde44b21..8e75963dbe07 100644 --- a/src/test/javascript/spec/component/assessment-shared/assessment-detail.component.spec.ts +++ b/src/test/javascript/spec/component/assessment-shared/unreferenced-feedback-detail.component.spec.ts @@ -2,28 +2,28 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { TranslateService } from '@ngx-translate/core'; import { DeleteButtonDirective } from 'app/shared/delete-dialog/delete-button.directive'; import { MockComponent, MockDirective, MockModule, MockPipe, MockProvider } from 'ng-mocks'; -import { Feedback } from 'app/entities/feedback.model'; +import { Feedback, FeedbackType } from 'app/entities/feedback.model'; import { MockTranslateService } from '../../helpers/mocks/service/mock-translate.service'; import { ArtemisTranslatePipe } from 'app/shared/pipes/artemis-translate.pipe'; import { FaIconComponent, FaLayersComponent } from '@fortawesome/angular-fontawesome'; import { GradingInstruction } from 'app/exercises/shared/structured-grading-criterion/grading-instruction.model'; -import { AssessmentDetailComponent } from 'app/assessment/assessment-detail/assessment-detail.component'; +import { UnreferencedFeedbackDetailComponent } from 'app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component'; import { GradingInstructionLinkIconComponent } from 'app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component'; import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; import { NgModel } from '@angular/forms'; -import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; +import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; import { StructuredGradingCriterionService } from 'app/exercises/shared/structured-grading-criterion/structured-grading-criterion.service'; -describe('Assessment Detail Component', () => { - let comp: AssessmentDetailComponent; - let fixture: ComponentFixture; +describe('Unreferenced Feedback Detail Component', () => { + let comp: UnreferencedFeedbackDetailComponent; + let fixture: ComponentFixture; let sgiService: StructuredGradingCriterionService; beforeEach(() => { TestBed.configureTestingModule({ imports: [MockModule(NgbTooltipModule)], declarations: [ - AssessmentDetailComponent, + UnreferencedFeedbackDetailComponent, MockComponent(GradingInstructionLinkIconComponent), MockComponent(FaIconComponent), MockComponent(FaLayersComponent), @@ -36,7 +36,7 @@ describe('Assessment Detail Component', () => { }) .compileComponents() .then(() => { - fixture = TestBed.createComponent(AssessmentDetailComponent); + fixture = TestBed.createComponent(UnreferencedFeedbackDetailComponent); comp = fixture.componentInstance; sgiService = fixture.debugElement.injector.get(StructuredGradingCriterionService); }); @@ -44,33 +44,52 @@ describe('Assessment Detail Component', () => { it('should update feedback with SGI and emit to parent', () => { const instruction: GradingInstruction = { id: 1, credits: 2, feedback: 'test', gradingScale: 'good', instructionDescription: 'description of instruction', usageCount: 0 }; - comp.assessment = { + comp.feedback = { id: 1, detailText: 'feedback1', credits: 1.5, } as Feedback; // Fake call as a DragEvent jest.spyOn(sgiService, 'updateFeedbackWithStructuredGradingInstructionEvent').mockImplementation(() => { - comp.assessment.gradingInstruction = instruction; - comp.assessment.credits = instruction.credits; + comp.feedback.gradingInstruction = instruction; + comp.feedback.credits = instruction.credits; }); // Call spy function with empty event - comp.updateAssessmentOnDrop(new Event('')); + comp.updateFeedbackOnDrop(new Event('')); - expect(comp.assessment.gradingInstruction).toBe(instruction); - expect(comp.assessment.credits).toBe(instruction.credits); + expect(comp.feedback.gradingInstruction).toBe(instruction); + expect(comp.feedback.credits).toBe(instruction.credits); }); it('should emit the assessment change after deletion', () => { - comp.assessment = { + comp.feedback = { id: 1, detailText: 'feedback1', credits: 1.5, } as Feedback; - const emitSpy = jest.spyOn(comp.deleteAssessment, 'emit'); + const emitSpy = jest.spyOn(comp.onFeedbackDelete, 'emit'); comp.delete(); fixture.detectChanges(); expect(emitSpy).toHaveBeenCalledOnce(); }); + + it('should mark automatic feedback and feedback suggestions as adapted when they are modified', () => { + comp.feedback = { + id: 1, + type: FeedbackType.AUTOMATIC, + text: 'FeedbackSuggestion:accepted:feedback1', + detailText: 'feedback1', + credits: 1.5, + } as Feedback; + const emitSpy = jest.spyOn(comp.onFeedbackChange, 'emit'); + comp.emitChanges(); + expect(emitSpy).toHaveBeenCalledWith({ + id: 1, + type: FeedbackType.AUTOMATIC_ADAPTED, + text: 'FeedbackSuggestion:adapted:feedback1', + detailText: 'feedback1', + credits: 1.5, + } as Feedback); + }); }); diff --git a/src/test/javascript/spec/component/code-editor/code-editor-ace.component.spec.ts b/src/test/javascript/spec/component/code-editor/code-editor-ace.component.spec.ts index fe8096113a70..397958564361 100644 --- a/src/test/javascript/spec/component/code-editor/code-editor-ace.component.spec.ts +++ b/src/test/javascript/spec/component/code-editor/code-editor-ace.component.spec.ts @@ -17,6 +17,8 @@ import { MockComponent, MockDirective } from 'ng-mocks'; import { CodeEditorTutorAssessmentInlineFeedbackComponent } from 'app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback.component'; import { TranslatePipeMock } from '../../helpers/mocks/service/mock-translate.service'; import { CodeEditorHeaderComponent } from 'app/exercises/programming/shared/code-editor/header/code-editor-header.component'; +import { FeedbackType } from 'app/entities/feedback.model'; +import { MockResizeObserver } from '../../helpers/mocks/service/mock-resize-observer'; describe('CodeEditorAceComponent', () => { let comp: CodeEditorAceComponent; @@ -24,6 +26,7 @@ describe('CodeEditorAceComponent', () => { let debugElement: DebugElement; let codeEditorRepositoryFileService: CodeEditorRepositoryFileService; let loadRepositoryFileStub: jest.SpyInstance; + let getInlineFeedbackNodeStub: jest.SpyInstance; beforeEach(() => { TestBed.configureTestingModule({ @@ -48,6 +51,10 @@ describe('CodeEditorAceComponent', () => { debugElement = fixture.debugElement; codeEditorRepositoryFileService = debugElement.injector.get(CodeEditorRepositoryFileService); loadRepositoryFileStub = jest.spyOn(codeEditorRepositoryFileService, 'getFile'); + getInlineFeedbackNodeStub = jest.spyOn(comp, 'getInlineFeedbackNode'); + getInlineFeedbackNodeStub.mockReturnValue(document.createElement('div')); + // Mock the ResizeObserver, which is not available in the test environment + global.ResizeObserver = jest.fn().mockImplementation((...args) => new MockResizeObserver(args)); }); }); @@ -55,14 +62,6 @@ describe('CodeEditorAceComponent', () => { jest.restoreAllMocks(); }); - it('should know the lines in which inline feedback is shown', () => { - expect(comp.linesWithInlineFeedbackShown).toEqual([]); - comp.linesWithNewFeedback = [15, 5]; - expect(comp.linesWithInlineFeedbackShown).toEqual([5, 15]); - comp.fileFeedbackPerLine = { 50: {}, 1050: {} }; - expect(comp.linesWithInlineFeedbackShown).toEqual([5, 15, 50, 1050]); - }); - it('without any inputs, should still render correctly without ace, showing a placeholder', () => { fixture.detectChanges(); const placeholder = debugElement.query(By.css('#no-file-selected')); @@ -111,7 +110,7 @@ describe('CodeEditorAceComponent', () => { const selectedFile = 'dummy'; const fileSession = {}; const loadFileSubject = new Subject(); - const initEditorAfterFileChangeSpy = jest.spyOn(comp, 'initEditorAfterFileChange'); + const initEditorSpy = jest.spyOn(comp, 'initEditor'); loadRepositoryFileStub.mockReturnValue(loadFileSubject); comp.selectedFile = selectedFile; comp.fileSession = fileSession; @@ -121,13 +120,13 @@ describe('CodeEditorAceComponent', () => { expect(comp.isLoading).toBeTrue(); expect(loadRepositoryFileStub).toHaveBeenCalledWith(selectedFile); - expect(initEditorAfterFileChangeSpy).not.toHaveBeenCalled(); + expect(initEditorSpy).not.toHaveBeenCalled(); loadFileSubject.next({ fileName: selectedFile, fileContent: 'lorem ipsum' }); fixture.detectChanges(); expect(comp.isLoading).toBeFalse(); expect(comp.fileSession).toEqual({ dummy: { code: 'lorem ipsum', cursor: { column: 0, row: 0 }, loadingError: false } }); - expect(initEditorAfterFileChangeSpy).toHaveBeenCalledWith(); + expect(initEditorSpy).toHaveBeenCalledWith(); }); it.each([ @@ -137,7 +136,7 @@ describe('CodeEditorAceComponent', () => { const selectedFile = 'dummy'; const fileSession = {}; const loadFileSubject = new Subject(); - const initEditorAfterFileChangeSpy = jest.spyOn(comp, 'initEditorAfterFileChange'); + const initEditorSpy = jest.spyOn(comp, 'initEditor'); const onErrorSpy = jest.spyOn(comp.onError, 'emit'); loadRepositoryFileStub.mockReturnValue(loadFileSubject); comp.selectedFile = selectedFile; @@ -148,28 +147,26 @@ describe('CodeEditorAceComponent', () => { expect(comp.isLoading).toBeTrue(); expect(loadRepositoryFileStub).toHaveBeenCalledWith(selectedFile); - expect(initEditorAfterFileChangeSpy).not.toHaveBeenCalled(); + expect(initEditorSpy).not.toHaveBeenCalled(); loadFileSubject.error(error); fixture.detectChanges(); expect(comp.isLoading).toBeFalse(); expect(comp.fileSession).toEqual({ dummy: { code: '', cursor: { column: 0, row: 0 }, loadingError: true } }); - expect(initEditorAfterFileChangeSpy).toHaveBeenCalledWith(); + expect(initEditorSpy).toHaveBeenCalledWith(); expect(onErrorSpy).toHaveBeenCalledWith(errorCode); }); - it('should discard all new feedback after a re-init because of a file change', () => { - const getInlineFeedbackNodeStub = jest.spyOn(comp, 'getInlineFeedbackNode'); - getInlineFeedbackNodeStub.mockReturnValue(undefined); - comp.addLineWidgetWithFeedback(16); - comp.initEditorAfterFileChange(); - expect(comp.linesWithNewFeedback).toEqual([]); + it('should discard all new feedback after a re-init because of a file change', async () => { + comp.newFeedbackLines = [1, 2, 3]; + await comp.initEditor(); + expect(comp.newFeedbackLines).toEqual([]); }); it('should not load the file from server on selected file change if the file is already in session', () => { const selectedFile = 'dummy'; const fileSession = { [selectedFile]: { code: 'lorem ipsum', cursor: { column: 0, row: 0 }, loadingError: false } }; - const initEditorAfterFileChangeSpy = jest.spyOn(comp, 'initEditorAfterFileChange'); + const initEditorSpy = jest.spyOn(comp, 'initEditor'); const loadFileSpy = jest.spyOn(comp, 'loadFile'); comp.selectedFile = selectedFile; comp.fileSession = fileSession; @@ -177,14 +174,14 @@ describe('CodeEditorAceComponent', () => { triggerChanges(comp, { property: 'selectedFile', currentValue: selectedFile }); fixture.detectChanges(); - expect(initEditorAfterFileChangeSpy).toHaveBeenCalledWith(); + expect(initEditorSpy).toHaveBeenCalledWith(); expect(loadFileSpy).not.toHaveBeenCalled(); }); it('should load the file from server on selected file change if the file is already in session but there was a loading error', () => { const selectedFile = 'dummy'; const fileSession = { [selectedFile]: { code: 'lorem ipsum', cursor: { column: 0, row: 0 }, loadingError: true } }; - const initEditorAfterFileChangeSpy = jest.spyOn(comp, 'initEditorAfterFileChange'); + const initEditorSpy = jest.spyOn(comp, 'initEditor'); const loadFileSpy = jest.spyOn(comp, 'loadFile'); comp.selectedFile = selectedFile; comp.fileSession = fileSession; @@ -192,11 +189,11 @@ describe('CodeEditorAceComponent', () => { triggerChanges(comp, { property: 'selectedFile', currentValue: selectedFile }); fixture.detectChanges(); - expect(initEditorAfterFileChangeSpy).not.toHaveBeenCalled(); + expect(initEditorSpy).not.toHaveBeenCalled(); expect(loadFileSpy).toHaveBeenCalledOnce(); }); - it('should update file session references on file rename', () => { + it('should update file session references on file rename', async () => { const selectedFile = 'file'; const newFileName = 'newFilename'; const fileChange = new RenameFileChange(FileType.FILE, selectedFile, newFileName); @@ -207,22 +204,22 @@ describe('CodeEditorAceComponent', () => { comp.selectedFile = newFileName; comp.fileSession = fileSession; - comp.onFileChange(fileChange); + await comp.onFileChange(fileChange); expect(comp.fileSession).toEqual({ anotherFile: fileSession.anotherFile, [fileChange.newFileName]: fileSession[selectedFile] }); }); - it('should init editor on newly created file if selected', () => { + it('should init editor on newly created file if selected', async () => { const selectedFile = 'file'; const fileChange = new CreateFileChange(FileType.FILE, selectedFile); const fileSession = { anotherFile: { code: 'lorem ipsum 2', cursor: { column: 0, row: 0 }, loadingError: false } }; - const initEditorAfterFileChangeSpy = jest.spyOn(comp, 'initEditorAfterFileChange'); + const initEditorSpy = jest.spyOn(comp, 'initEditor'); comp.selectedFile = selectedFile; comp.fileSession = fileSession; - comp.onFileChange(fileChange); + await comp.onFileChange(fileChange); - expect(initEditorAfterFileChangeSpy).toHaveBeenCalledWith(); + expect(initEditorSpy).toHaveBeenCalledWith(); expect(comp.fileSession).toEqual({ anotherFile: fileSession.anotherFile, [fileChange.fileName]: { code: '', cursor: { row: 0, column: 0 }, loadingError: false } }); }); @@ -241,7 +238,7 @@ describe('CodeEditorAceComponent', () => { expect(onFileContentChangeSpy).not.toHaveBeenCalled(); }); - it('should update build log errors and emit a message on file text change', () => { + it('should update build log errors and emit a message on file text change', async () => { const onFileContentChangeSpy = jest.spyOn(comp.onFileContentChange, 'emit'); const selectedFile = 'file'; @@ -255,21 +252,21 @@ describe('CodeEditorAceComponent', () => { comp.annotationsArray = annotations; comp.updateAnnotations(editorChange); - comp.onFileTextChanged(newFileContent); + await comp.onFileTextChanged(newFileContent); expect(onFileContentChangeSpy).toHaveBeenCalledWith({ file: selectedFile, fileContent: newFileContent }); const newAnnotations = [{ fileName: selectedFile, text: 'error', type: 'error', timestamp: 0, row: 4, column: 4 }]; expect(comp.annotationsArray).toEqual(newAnnotations); }); - it('should be in readonly mode and display feedback when in tutor assessment', () => { + it('should be in readonly mode and display feedback when in tutor assessment', async () => { + await comp.initEditor(); comp.isTutorAssessment = true; - comp.fileFeedbacks = []; - const displayFeedbacksSpy = jest.spyOn(comp, 'displayFeedbacks'); - comp.onFileTextChanged('newFileContent'); + const updateLineWidgetsSpy = jest.spyOn(comp, 'updateLineWidgets'); + await comp.onFileTextChanged('newFileContent'); expect(comp.editor.getEditor().getReadOnly()).toBeTrue(); - expect(displayFeedbacksSpy).toHaveBeenCalledOnce(); + expect(updateLineWidgetsSpy).toHaveBeenCalledOnce(); }); it('should be in readonly mode when the file could not be loaded', () => { @@ -281,13 +278,13 @@ describe('CodeEditorAceComponent', () => { expect(comp.editor.getEditor().getReadOnly()).toBeTrue(); }); - it('should setup inline comment buttons in gutter', () => { + it('should setup inline comment buttons in gutter', async () => { + await comp.initEditor(); comp.isTutorAssessment = true; comp.readOnlyManualFeedback = false; - comp.fileFeedbacks = []; const setupLineIconsSpy = jest.spyOn(comp, 'setupLineIcons'); const observerDomSpy = jest.spyOn(comp, 'observerDom'); - comp.onFileTextChanged('newFileContent'); + await comp.onFileTextChanged('newFileContent'); expect(setupLineIconsSpy).toHaveBeenCalledOnce(); expect(observerDomSpy).toHaveBeenCalledOnce(); @@ -305,45 +302,57 @@ describe('CodeEditorAceComponent', () => { expect(editorTabSize()).toBe(4); }); - it('should temporarily show new feedbacks which have not been updated yet', () => { - const getInlineFeedbackNodeSpy = jest.spyOn(comp, 'getInlineFeedbackNode'); - getInlineFeedbackNodeSpy.mockReturnValue(undefined); - comp.addLineWidgetWithFeedback(16); - expect(comp.linesWithNewFeedback).toEqual([16]); + it('should temporarily show new feedbacks which have not been updated yet', async () => { + await comp.initEditor(); + comp.newFeedbackLines = [16]; + await comp.updateLineWidgets(); + expect(comp.editorSession.lineWidgets[16]).toBeDefined(); }); - it('should not show an updated feedback as new', () => { + it('should not show an updated feedback as new', async () => { + await comp.initEditor(); comp.feedbacks = []; - const getInlineFeedbackNodeSpy = jest.spyOn(comp, 'getInlineFeedbackNode'); - getInlineFeedbackNodeSpy.mockReturnValue(undefined); const adjustLineWidgetHeightStub = jest.spyOn(comp, 'adjustLineWidgetHeight'); adjustLineWidgetHeightStub.mockImplementation(() => {}); - comp.addLineWidgetWithFeedback(16); - comp.addLineWidgetWithFeedback(17); - comp.updateFeedback({ reference: 'line:16' }); - expect(comp.linesWithNewFeedback).toEqual([17]); + comp.newFeedbackLines = [16, 17]; + await comp.updateLineWidgets(); + await comp.updateFeedback({ reference: 'file:src/Test.java_line:16' }); + expect(comp.newFeedbackLines).toEqual([17]); }); - it('should not show new feedback that is cancelled anymore', () => { - const getInlineFeedbackNodeSpy = jest.spyOn(comp, 'getInlineFeedbackNode'); - getInlineFeedbackNodeSpy.mockReturnValue(undefined); - comp.editorSession = { lineWidgets: [], widgetManager: { removeLineWidget: () => {} } } as any; + it('should not show new feedback that is cancelled anymore', async () => { + await comp.initEditor(); const removeLineWidget = jest.spyOn(comp.editorSession.widgetManager, 'removeLineWidget'); - comp.addLineWidgetWithFeedback(1); - comp.addLineWidgetWithFeedback(16); - comp.cancelFeedback(16); - expect(comp.linesWithNewFeedback).toEqual([1]); + comp.newFeedbackLines = [1, 16]; + await comp.updateLineWidgets(); + await comp.cancelFeedback(16); + expect(comp.newFeedbackLines).toEqual([1]); expect(removeLineWidget).toHaveBeenCalled(); }); - it('should explicitly remove all ACE line widgets when being destroyed', () => { - const getInlineFeedbackNodeStub = jest.spyOn(comp, 'getInlineFeedbackNode'); - getInlineFeedbackNodeStub.mockReturnValue(undefined); - comp.editorSession = { lineWidgets: [], widgetManager: { removeLineWidget: () => {} } } as any; + it('should explicitly remove all ACE line widgets when being destroyed', async () => { + await comp.initEditor(); + comp.newFeedbackLines = [1, 16]; + await comp.updateLineWidgets(); const removeLineWidget = jest.spyOn(comp.editorSession.widgetManager, 'removeLineWidget'); - comp.addLineWidgetWithFeedback(1); - comp.addLineWidgetWithFeedback(16); comp.ngOnDestroy(); expect(removeLineWidget).toHaveBeenCalledTimes(2); }); + + it('should convert an accepted feedback suggestion to a marked manual feedback', async () => { + await comp.initEditor(); + const suggestion = { text: 'FeedbackSuggestion:', detailText: 'test', reference: 'file:src/Test.java_line:16', type: FeedbackType.AUTOMATIC }; + comp.feedbackSuggestions = [suggestion]; + await comp.acceptSuggestion(suggestion); + expect(comp.feedbackSuggestions).toBeEmpty(); + expect(comp.feedbacks).toEqual([{ text: 'FeedbackSuggestion:accepted:', detailText: 'test', reference: 'file:src/Test.java_line:16', type: FeedbackType.MANUAL }]); + }); + + it('should remove discarded suggestions', async () => { + await comp.initEditor(); + const suggestion = { text: 'FeedbackSuggestion:', detailText: 'test', reference: 'file:src/Test.java_line:16', type: FeedbackType.AUTOMATIC }; + comp.feedbackSuggestions = [suggestion]; + comp.discardSuggestion(suggestion); + expect(comp.feedbackSuggestions).toBeEmpty(); + }); }); diff --git a/src/test/javascript/spec/component/code-editor/code-editor-file-browser.component.spec.ts b/src/test/javascript/spec/component/code-editor/code-editor-file-browser.component.spec.ts index 77e66207fca4..679c1fa41c98 100644 --- a/src/test/javascript/spec/component/code-editor/code-editor-file-browser.component.spec.ts +++ b/src/test/javascript/spec/component/code-editor/code-editor-file-browser.component.spec.ts @@ -4,7 +4,7 @@ import { By } from '@angular/platform-browser'; import { DebugElement } from '@angular/core'; import { Subject, of } from 'rxjs'; import { ArtemisTestModule } from '../../test.module'; -import { CommitState, FileType, GitConflictState } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; +import { CommitState, FileBadge, FileBadgeType, FileType, GitConflictState } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; import { triggerChanges } from '../../helpers/utils/general.utils'; import { CodeEditorRepositoryFileService, CodeEditorRepositoryService } from 'app/exercises/programming/shared/code-editor/service/code-editor-repository.service'; import { CodeEditorConflictStateService } from 'app/exercises/programming/shared/code-editor/service/code-editor-conflict-state.service'; @@ -820,4 +820,32 @@ describe('CodeEditorFileBrowserComponent', () => { loadFiles.unsubscribe(); })); + + describe('getFolderBadges', () => { + // Mock fileBadges data + const mockFileBadges = { + 'folderA/file': [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 1)], + 'folderB/file1': [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 1)], + 'folderB/file2': [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 2)], + }; + + beforeEach(() => { + comp.fileBadges = mockFileBadges; + }); + + it('should return an empty array if folder is not collapsed', () => { + const result = comp.getFolderBadges({ value: 'folderA', collapsed: false } as TreeviewItem); + expect(result).toEqual([]); + }); + + it('should work for single file badge for a collapsed folder', () => { + const result = comp.getFolderBadges({ value: 'folderA', collapsed: true } as TreeviewItem); + expect(result).toEqual([new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 1)]); + }); + + it('should aggregate file badges for a collapsed folder', () => { + const result = comp.getFolderBadges({ value: 'folderB', collapsed: true } as TreeviewItem); + expect(result).toEqual([new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 3)]); // 1 + 2 + }); + }); }); diff --git a/src/test/javascript/spec/component/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.spec.ts b/src/test/javascript/spec/component/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.spec.ts new file mode 100644 index 000000000000..bd4037cfa910 --- /dev/null +++ b/src/test/javascript/spec/component/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component.spec.ts @@ -0,0 +1,45 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; +import { EventEmitter } from '@angular/core'; +import { Feedback } from 'app/entities/feedback.model'; +import { Course } from 'app/entities/course.model'; +import { CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent } from 'app/exercises/programming/assess/code-editor-tutor-assessment-inline-feedback-suggestion.component'; +import { MockComponent } from 'ng-mocks'; +import { FeedbackSuggestionBadgeComponent } from 'app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component'; + +describe('CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent', () => { + let component: CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [FontAwesomeModule], + declarations: [CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent, MockComponent(FeedbackSuggestionBadgeComponent)], + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CodeEditorTutorAssessmentInlineFeedbackSuggestionComponent); + component = fixture.componentInstance; + component.feedback = new Feedback(); + component.course = new Course(); + component.onAcceptSuggestion = new EventEmitter(); + component.onDiscardSuggestion = new EventEmitter(); + fixture.detectChanges(); + }); + + it('should emit onAcceptSuggestion event when Accept button is clicked', () => { + jest.spyOn(component.onAcceptSuggestion, 'emit'); + const acceptButton = fixture.debugElement.query(By.css('.btn-success')).nativeElement; + acceptButton.click(); + expect(component.onAcceptSuggestion.emit).toHaveBeenCalledWith(component.feedback); + }); + + it('should emit onDiscardSuggestion event when Discard button is clicked', () => { + jest.spyOn(component.onDiscardSuggestion, 'emit'); + const discardButton = fixture.debugElement.query(By.css('.btn-danger')).nativeElement; + discardButton.click(); + expect(component.onDiscardSuggestion.emit).toHaveBeenCalledWith(component.feedback); + }); +}); diff --git a/src/test/javascript/spec/component/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.spec.ts b/src/test/javascript/spec/component/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.spec.ts new file mode 100644 index 000000000000..46564b3b190d --- /dev/null +++ b/src/test/javascript/spec/component/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component.spec.ts @@ -0,0 +1,50 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; +import { FileBadge, FileBadgeType } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; +import { CodeEditorFileBrowserBadgeComponent } from 'app/exercises/programming/shared/code-editor/file-browser/code-editor-file-browser-badge.component'; + +describe('CodeEditorFileBrowserBadgeComponent', () => { + let component: CodeEditorFileBrowserBadgeComponent; + let fixture: ComponentFixture; + let translateService: TranslateService; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [FontAwesomeModule, NgbModule, TranslateModule.forRoot()], + declarations: [CodeEditorFileBrowserBadgeComponent], + providers: [TranslateService], + }).compileComponents(); + + translateService = TestBed.inject(TranslateService); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(CodeEditorFileBrowserBadgeComponent); + component = fixture.componentInstance; + component.badge = new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 3); + fixture.detectChanges(); + }); + + it('should correctly display the tooltip for a FEEDBACK_SUGGESTION badge', () => { + jest.spyOn(translateService, 'instant').mockReturnValue('Mocked Tooltip'); + expect(component.tooltip).toBe('Mocked Tooltip'); + }); + + it('should return faLightbulb icon for a FEEDBACK_SUGGESTION badge', () => { + expect(component.icon!.iconName).toBe('lightbulb'); + }); + + it('should not have an icon for an unknown badge type', () => { + component.badge = new FileBadge('unknown' as FileBadgeType, 3); + fixture.detectChanges(); + expect(component.icon).toBeUndefined(); + }); + + it('should not have a tooltip for an unknown badge type', () => { + component.badge = new FileBadge('unknown' as FileBadgeType, 3); + fixture.detectChanges(); + expect(component.tooltip).toBeUndefined(); + }); +}); diff --git a/src/test/javascript/spec/component/exercises/shared/feedback/feedback-suggestion-badge.component.spec.ts b/src/test/javascript/spec/component/exercises/shared/feedback/feedback-suggestion-badge.component.spec.ts new file mode 100644 index 000000000000..17b263ffd254 --- /dev/null +++ b/src/test/javascript/spec/component/exercises/shared/feedback/feedback-suggestion-badge.component.spec.ts @@ -0,0 +1,70 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateService } from '@ngx-translate/core'; +import { Feedback, FeedbackSuggestionType } from 'app/entities/feedback.model'; +import { FeedbackSuggestionBadgeComponent } from 'app/exercises/shared/feedback/feedback-suggestion-badge/feedback-suggestion-badge.component'; +import { MockDirective, MockModule } from 'ng-mocks'; +import { ArtemisTestModule } from '../../../../test.module'; +import { MockTranslateService } from '../../../../helpers/mocks/service/mock-translate.service'; +import { TranslateDirective } from 'app/shared/language/translate.directive'; + +describe('FeedbackSuggestionBadgeComponent', () => { + let component: FeedbackSuggestionBadgeComponent; + let fixture: ComponentFixture; + let translateService: TranslateService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ArtemisTestModule, MockModule(NgbTooltipModule)], + declarations: [FeedbackSuggestionBadgeComponent, MockDirective(TranslateDirective)], + providers: [{ provide: TranslateService, useClass: MockTranslateService }], + }) + .compileComponents() + .then(() => { + translateService = TestBed.inject(TranslateService); + }); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(FeedbackSuggestionBadgeComponent); + component = fixture.componentInstance; + component.feedback = new Feedback(); + component.feedback.text = 'Test Feedback'; + fixture.detectChanges(); + }); + + it('should have the correct text and tooltip for a SUGGESTED feedback', () => { + component.feedback = new Feedback(); + jest.spyOn(Feedback, 'getFeedbackSuggestionType').mockReturnValue(FeedbackSuggestionType.SUGGESTED); + jest.spyOn(translateService, 'instant').mockReturnValue('Mocked Tooltip'); + + expect(component.text).toBe('artemisApp.assessment.suggestion.suggested'); + expect(component.tooltip).toBe('Mocked Tooltip'); + }); + + it('should have the correct text and tooltip for an ACCEPTED feedback', () => { + component.feedback = new Feedback(); + jest.spyOn(Feedback, 'getFeedbackSuggestionType').mockReturnValue(FeedbackSuggestionType.ACCEPTED); + jest.spyOn(translateService, 'instant').mockReturnValue('Mocked Tooltip'); + + expect(component.text).toBe('artemisApp.assessment.suggestion.accepted'); + expect(component.tooltip).toBe('Mocked Tooltip'); + }); + + it('should have the correct text and tooltip for an ADAPTED feedback', () => { + component.feedback = new Feedback(); + jest.spyOn(Feedback, 'getFeedbackSuggestionType').mockReturnValue(FeedbackSuggestionType.ADAPTED); + jest.spyOn(translateService, 'instant').mockReturnValue('Mocked Tooltip'); + + expect(component.text).toBe('artemisApp.assessment.suggestion.adapted'); + expect(component.tooltip).toBe('Mocked Tooltip'); + }); + + it('should have empty text and tooltip for undefined feedback type', () => { + component.feedback = new Feedback(); + jest.spyOn(Feedback, 'getFeedbackSuggestionType').mockReturnValue(undefined as any as FeedbackSuggestionType); + + expect(component.text).toBe(''); + expect(component.tooltip).toBe(''); + }); +}); diff --git a/src/test/javascript/spec/component/participation-submission/participation-submission.component.spec.ts b/src/test/javascript/spec/component/participation-submission/participation-submission.component.spec.ts index 87c6053f53f8..a40cd5280952 100644 --- a/src/test/javascript/spec/component/participation-submission/participation-submission.component.spec.ts +++ b/src/test/javascript/spec/component/participation-submission/participation-submission.component.spec.ts @@ -7,7 +7,7 @@ import { MockSyncStorage } from '../../helpers/mocks/service/mock-sync-storage.s import { MockComponent, MockDirective, MockPipe } from 'ng-mocks'; import { ActivatedRoute, Router } from '@angular/router'; import { BehaviorSubject, of, throwError } from 'rxjs'; -import { AssessmentDetailComponent } from 'app/assessment/assessment-detail/assessment-detail.component'; +import { UnreferencedFeedbackDetailComponent } from 'app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component'; import { DebugElement } from '@angular/core'; import { By } from '@angular/platform-browser'; import { MockAccountService } from '../../helpers/mocks/service/mock-account.service'; @@ -89,7 +89,7 @@ describe('ParticipationSubmissionComponent', () => { declarations: [ ParticipationSubmissionComponent, MockComponent(UpdatingResultComponent), - MockComponent(AssessmentDetailComponent), + MockComponent(UnreferencedFeedbackDetailComponent), MockComponent(ComplaintsForTutorComponent), MockTranslateValuesDirective, MockPipe(ArtemisTranslatePipe), diff --git a/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-container.component.spec.ts b/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-container.component.spec.ts index be6effb28663..0f79e93f24f1 100644 --- a/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-container.component.spec.ts +++ b/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-container.component.spec.ts @@ -68,6 +68,9 @@ import { TreeviewItem } from 'app/exercises/programming/shared/code-editor/treev import { AlertService } from 'app/core/util/alert.service'; import { Exercise } from 'app/entities/exercise.model'; import { ProfileService } from 'app/shared/layouts/profiles/profile.service'; +import { MockAthenaService } from '../../helpers/mocks/service/mock-athena.service'; +import { AthenaService } from 'app/assessment/athena.service'; +import { MockResizeObserver } from '../../helpers/mocks/service/mock-resize-observer'; function addFeedbackAndValidateScore(comp: CodeEditorTutorAssessmentContainerComponent, pointsAwarded: number, scoreExpected: number) { comp.unreferencedFeedback.push({ @@ -191,6 +194,7 @@ describe('CodeEditorTutorAssessmentContainerComponent', () => { { provide: NgbModal, useClass: MockNgbModalService }, { provide: SessionStorageService, useClass: MockSyncStorage }, { provide: LocalStorageService, useClass: MockSyncStorage }, + { provide: AthenaService, useClass: MockAthenaService }, { provide: ActivatedRoute, useValue: route() }, MockProvider(ProfileService, { getProfileInfo: () => of({ activeProfiles: [] }) }, 'useValue'), ], @@ -225,6 +229,9 @@ describe('CodeEditorTutorAssessmentContainerComponent', () => { findWithParticipationsStub = jest.spyOn(programmingExerciseService, 'findWithTemplateAndSolutionParticipation'); findWithParticipationsStub.mockReturnValue(of({ body: exercise })); + + // Mock the ResizeObserver, which is not available in the test environment + global.ResizeObserver = jest.fn().mockImplementation((...args) => new MockResizeObserver(args)); }); }); @@ -237,6 +244,27 @@ describe('CodeEditorTutorAssessmentContainerComponent', () => { expect(assessmentLayout).toBeDefined(); }); + it('should show unreferenced feedback suggestions', () => { + comp.feedbackSuggestions = [{ reference: 'file:src/Test.java_line:1' }, { reference: 'file:src/Test.java_line:2' }, { reference: undefined }]; + expect(comp.unreferencedFeedbackSuggestions).toHaveLength(1); + }); + + it('should not show feedback suggestions where there are already existing manual feedbacks', async () => { + comp.unreferencedFeedback = [{ text: 'unreferenced test', detailText: 'some detail', reference: undefined }]; + comp.referencedFeedback = [{ text: 'referenced test', detailText: 'some detail', reference: 'file:src/Test.java_line:1' }]; + const feedbackSuggestionsStub = jest.spyOn(comp['athenaService'], 'getFeedbackSuggestionsForProgramming'); + feedbackSuggestionsStub.mockReturnValue( + of([ + { text: 'unreferenced test', detailText: 'some detail', reference: undefined }, + { text: 'referenced test', detailText: 'some detail', reference: 'file:src/Test.java_line:1' }, + { text: 'suggestion to pass', detailText: 'some detail', reference: 'file:src/Test.java_line:2' }, + ]), + ); + comp['submission'] = { id: undefined }; // Needed for loadFeedbackSuggestions + await comp['loadFeedbackSuggestions'](); + expect(comp.feedbackSuggestions).toStrictEqual([{ text: 'suggestion to pass', detailText: 'some detail', reference: 'file:src/Test.java_line:2' }]); + }); + it('should show complaint for result with complaint and check assessor', fakeAsync(() => { comp.ngOnInit(); tick(100); @@ -612,4 +640,29 @@ describe('CodeEditorTutorAssessmentContainerComponent', () => { } }, ); + + it('should update and validate referenced feedback', () => { + const feedbacks = [ + { reference: 'file:src/Test.java_line:1', type: FeedbackType.MANUAL }, + { reference: 'file:src/Test.java_line:2', type: FeedbackType.MANUAL }, + { reference: undefined, type: FeedbackType.MANUAL }, + ]; + const validateFeedbackStub = jest.spyOn(comp, 'validateFeedback'); + validateFeedbackStub.mockReturnValue(undefined); + comp.onUpdateFeedback(feedbacks); + expect(comp.referencedFeedback).toEqual([ + { reference: 'file:src/Test.java_line:1', type: FeedbackType.MANUAL }, + { reference: 'file:src/Test.java_line:2', type: FeedbackType.MANUAL }, + ]); + expect(validateFeedbackStub).toHaveBeenCalled(); + }); + + it('should correctly remove feedback suggestions', () => { + const feedbackSuggestion1 = { id: 1, credits: 1 }; + const feedbackSuggestion2 = { id: 2, credits: 2 }; + const feedbackSuggestion3 = { id: 3, credits: 3 }; + comp.feedbackSuggestions = [feedbackSuggestion1, feedbackSuggestion2, feedbackSuggestion3]; + comp.removeSuggestion(feedbackSuggestion2); + expect(comp.feedbackSuggestions).toEqual([feedbackSuggestion1, feedbackSuggestion3]); + }); }); diff --git a/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-inline-feedback.component.spec.ts b/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-inline-feedback.component.spec.ts index c1d92c5239ba..cd085467d831 100644 --- a/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-inline-feedback.component.spec.ts +++ b/src/test/javascript/spec/component/programming-assessment/code-editor-tutor-assessment-inline-feedback.component.spec.ts @@ -9,7 +9,7 @@ import { GradingInstruction } from 'app/exercises/shared/structured-grading-crit import { StructuredGradingCriterionService } from 'app/exercises/shared/structured-grading-criterion/structured-grading-criterion.service'; import { MockTranslateService } from '../../helpers/mocks/service/mock-translate.service'; import { GradingInstructionLinkIconComponent } from 'app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component'; -import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; +import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; import { ArtemisTranslatePipe } from 'app/shared/pipes/artemis-translate.pipe'; import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; diff --git a/src/test/javascript/spec/component/shared/unreferenced-feedback.component.spec.ts b/src/test/javascript/spec/component/shared/unreferenced-feedback.component.spec.ts index 97e571ab842f..f4ef3363ae91 100644 --- a/src/test/javascript/spec/component/shared/unreferenced-feedback.component.spec.ts +++ b/src/test/javascript/spec/component/shared/unreferenced-feedback.component.spec.ts @@ -3,9 +3,9 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { UnreferencedFeedbackComponent } from 'app/exercises/shared/unreferenced-feedback/unreferenced-feedback.component'; import { ArtemisTranslatePipe } from 'app/shared/pipes/artemis-translate.pipe'; import { MockComponent, MockPipe } from 'ng-mocks'; -import { Feedback } from 'app/entities/feedback.model'; +import { Feedback, FeedbackType } from 'app/entities/feedback.model'; import { GradingInstruction } from 'app/exercises/shared/structured-grading-criterion/grading-instruction.model'; -import { AssessmentDetailComponent } from 'app/assessment/assessment-detail/assessment-detail.component'; +import { UnreferencedFeedbackDetailComponent } from 'app/assessment/unreferenced-feedback-detail/unreferenced-feedback-detail.component'; import { StructuredGradingCriterionService } from 'app/exercises/shared/structured-grading-criterion/structured-grading-criterion.service'; describe('UnreferencedFeedbackComponent', () => { @@ -16,7 +16,7 @@ describe('UnreferencedFeedbackComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ imports: [ArtemisTestModule], - declarations: [UnreferencedFeedbackComponent, MockPipe(ArtemisTranslatePipe), MockComponent(AssessmentDetailComponent)], + declarations: [UnreferencedFeedbackComponent, MockPipe(ArtemisTranslatePipe), MockComponent(UnreferencedFeedbackDetailComponent)], providers: [], }) .compileComponents() @@ -65,16 +65,25 @@ describe('UnreferencedFeedbackComponent', () => { comp.unreferencedFeedback = [feedback]; const newFeedbackText = 'updated text'; feedback.text = newFeedbackText; - comp.updateAssessment(feedback); + comp.updateFeedback(feedback); expect(comp.unreferencedFeedback).toHaveLength(1); expect(comp.unreferencedFeedback[0].text).toBe(newFeedbackText); }); + it('should add unreferenced feedback if it does not exist when updating', () => { + const feedback = { text: 'NewFeedback', credits: 3 } as Feedback; + comp.unreferencedFeedback = []; + comp.updateFeedback(feedback); + + expect(comp.unreferencedFeedback).toHaveLength(1); + expect(comp.unreferencedFeedback[0].text).toBe(feedback.text); + }); + it('should delete unreferenced feedback', () => { const feedback = { text: 'NewFeedback', credits: 3 } as Feedback; comp.unreferencedFeedback = [feedback]; - comp.deleteAssessment(feedback); + comp.deleteFeedback(feedback); expect(comp.unreferencedFeedback).toHaveLength(0); }); @@ -92,4 +101,19 @@ describe('UnreferencedFeedbackComponent', () => { expect(comp.unreferencedFeedback[0].gradingInstruction).toBe(instruction); expect(comp.unreferencedFeedback[0].credits).toBe(instruction.credits); }); + + it('should convert an accepted feedback suggestion to a marked manual feedback', () => { + const suggestion = { text: 'FeedbackSuggestion:', detailText: 'test', type: FeedbackType.AUTOMATIC }; + comp.feedbackSuggestions = [suggestion]; + comp.acceptSuggestion(suggestion); + expect(comp.feedbackSuggestions).toBeEmpty(); + expect(comp.unreferencedFeedback).toEqual([{ text: 'FeedbackSuggestion:accepted:', detailText: 'test', type: FeedbackType.MANUAL_UNREFERENCED }]); + }); + + it('should remove discarded suggestions', () => { + const suggestion = { text: 'FeedbackSuggestion:', detailText: 'test', type: FeedbackType.AUTOMATIC }; + comp.feedbackSuggestions = [suggestion]; + comp.discardSuggestion(suggestion); + expect(comp.feedbackSuggestions).toBeEmpty(); + }); }); diff --git a/src/test/javascript/spec/component/text-submission-assessment/text-submission-assessment.component.spec.ts b/src/test/javascript/spec/component/text-submission-assessment/text-submission-assessment.component.spec.ts index b809ddb3d066..9b36b144b0e8 100644 --- a/src/test/javascript/spec/component/text-submission-assessment/text-submission-assessment.component.spec.ts +++ b/src/test/javascript/spec/component/text-submission-assessment/text-submission-assessment.component.spec.ts @@ -486,7 +486,7 @@ describe('TextSubmissionAssessmentComponent', () => { component.unreferencedFeedback = []; const feedbackSuggestionTextBlockRef = createTextBlockRefWithFeedbackFromTo(0, 10); feedbackSuggestionTextBlockRef.feedback!.text = "I'm a feedback suggestion"; - const athenaServiceFeedbackSuggestionsStub = jest.spyOn(athenaService, 'getFeedbackSuggestions').mockReturnValue(of([feedbackSuggestionTextBlockRef])); + const athenaServiceFeedbackSuggestionsStub = jest.spyOn(athenaService, 'getFeedbackSuggestionsForText').mockReturnValue(of([feedbackSuggestionTextBlockRef])); component.loadFeedbackSuggestions(); tick(); expect(athenaServiceFeedbackSuggestionsStub).toHaveBeenCalled(); @@ -605,7 +605,7 @@ describe('TextSubmissionAssessmentComponent', () => { // Set up initial state with an existing text block that doesn't overlap const feedbackSuggestions = input.map(([start, end]) => createTextBlockRefWithFeedbackFromTo(start, end)); - jest.spyOn(athenaService, 'getFeedbackSuggestions').mockReturnValue(of(feedbackSuggestions)); + jest.spyOn(athenaService, 'getFeedbackSuggestionsForText').mockReturnValue(of(feedbackSuggestions)); component.loadFeedbackSuggestions(); @@ -627,7 +627,7 @@ describe('TextSubmissionAssessmentComponent', () => { it('should not load feedback suggestions if there already are assessments', fakeAsync(() => { // preparation already added an assessment - const athenaServiceFeedbackSuggestionsSpy = jest.spyOn(athenaService, 'getFeedbackSuggestions'); + const athenaServiceFeedbackSuggestionsSpy = jest.spyOn(athenaService, 'getFeedbackSuggestionsForText'); component.loadFeedbackSuggestions(); tick(); expect(athenaServiceFeedbackSuggestionsSpy).not.toHaveBeenCalled(); diff --git a/src/test/javascript/spec/component/text-submission-assessment/textblock-assessment-card.component.spec.ts b/src/test/javascript/spec/component/text-submission-assessment/textblock-assessment-card.component.spec.ts index 0baeb2a6f021..a11f7b7f6692 100644 --- a/src/test/javascript/spec/component/text-submission-assessment/textblock-assessment-card.component.spec.ts +++ b/src/test/javascript/spec/component/text-submission-assessment/textblock-assessment-card.component.spec.ts @@ -7,7 +7,7 @@ import { By } from '@angular/platform-browser'; import { MockComponent, MockDirective, MockProvider } from 'ng-mocks'; import { FaLayersComponent } from '@fortawesome/angular-fontawesome'; import { GradingInstruction } from 'app/exercises/shared/structured-grading-criterion/grading-instruction.model'; -import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; +import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; import { TranslatePipeMock } from '../../helpers/mocks/service/mock-translate.service'; import { FeedbackType } from 'app/entities/feedback.model'; import { TextBlockType } from 'app/entities/text-block.model'; diff --git a/src/test/javascript/spec/component/text-submission-assessment/textblock-feedback-editor.component.spec.ts b/src/test/javascript/spec/component/text-submission-assessment/textblock-feedback-editor.component.spec.ts index 8ad1f57ed8e4..c9b7431c5f85 100644 --- a/src/test/javascript/spec/component/text-submission-assessment/textblock-feedback-editor.component.spec.ts +++ b/src/test/javascript/spec/component/text-submission-assessment/textblock-feedback-editor.component.spec.ts @@ -9,7 +9,7 @@ import { NgbModal, NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { MockComponent, MockDirective, MockProvider } from 'ng-mocks'; import { FaLayersComponent } from '@fortawesome/angular-fontawesome'; import { GradingInstruction } from 'app/exercises/shared/structured-grading-criterion/grading-instruction.model'; -import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/assessment-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; +import { AssessmentCorrectionRoundBadgeComponent } from 'app/assessment/unreferenced-feedback-detail/assessment-correction-round-badge/assessment-correction-round-badge.component'; import { GradingInstructionLinkIconComponent } from 'app/shared/grading-instruction-link-icon/grading-instruction-link-icon.component'; import { ChangeDetectorRef } from '@angular/core'; import { MockNgbModalService } from '../../helpers/mocks/service/mock-ngb-modal.service'; diff --git a/src/test/javascript/spec/entities/feedback.model.spec.ts b/src/test/javascript/spec/entities/feedback.model.spec.ts index 5b95db6c7ba0..c91be0692a92 100644 --- a/src/test/javascript/spec/entities/feedback.model.spec.ts +++ b/src/test/javascript/spec/entities/feedback.model.spec.ts @@ -1,7 +1,15 @@ import { GradingInstruction } from 'app/exercises/shared/structured-grading-criterion/grading-instruction.model'; -import { Feedback, buildFeedbackTextForReview } from 'app/entities/feedback.model'; +import { Feedback, FeedbackSuggestionType, FeedbackType, buildFeedbackTextForReview } from 'app/entities/feedback.model'; describe('Feedback', () => { + const createFeedback = (text: string, type: FeedbackType, reference?: string): Feedback => { + const feedback = new Feedback(); + feedback.text = text; + feedback.type = type; + feedback.reference = reference; + return feedback; + }; + describe('buildFeedbackTextForReview', () => { const gradingInstruction = new GradingInstruction(); gradingInstruction.feedback = 'Grading instruction feedback'; @@ -49,4 +57,88 @@ describe('Feedback', () => { expect(buildFeedbackTextForReview(feedback, false)).toBe(expectedTextIgnoreSimpleText); }); }); + + describe('static detection functions', () => { + it('should detect TestCase feedback', () => { + const feedback1 = createFeedback('Test Case 1 Failed', FeedbackType.AUTOMATIC); + const feedback2 = createFeedback('SCAFeedbackIdentifier: Code smells detected', FeedbackType.AUTOMATIC); + const feedback3 = createFeedback('Manual feedback', FeedbackType.MANUAL); + + expect(Feedback.isTestCaseFeedback(feedback1)).toBeTrue(); + expect(Feedback.isTestCaseFeedback(feedback2)).toBeFalse(); + expect(Feedback.isTestCaseFeedback(feedback3)).toBeFalse(); + }); + + it('should detect Static Code Analysis feedback', () => { + const feedback1 = createFeedback('SCAFeedbackIdentifier: Code smells detected', FeedbackType.AUTOMATIC); + const feedback2 = createFeedback('Test Case 1 Failed', FeedbackType.AUTOMATIC); + + expect(Feedback.isStaticCodeAnalysisFeedback(feedback1)).toBeTrue(); + expect(Feedback.isStaticCodeAnalysisFeedback(feedback2)).toBeFalse(); + }); + + it('should detect Submission Policy feedback', () => { + const feedback1 = createFeedback('SubPolFeedbackIdentifier: Submission rejected', FeedbackType.AUTOMATIC); + const feedback2 = createFeedback('Test Case 1 Failed', FeedbackType.AUTOMATIC); + + expect(Feedback.isSubmissionPolicyFeedback(feedback1)).toBeTrue(); + expect(Feedback.isSubmissionPolicyFeedback(feedback2)).toBeFalse(); + }); + + it('should detect Feedback Suggestion', () => { + const feedback1 = createFeedback('FeedbackSuggestion: Consider refactoring', FeedbackType.MANUAL); + const feedback2 = createFeedback('Test Case 1 Failed', FeedbackType.AUTOMATIC); + + expect(Feedback.isFeedbackSuggestion(feedback1)).toBeTrue(); + expect(Feedback.isFeedbackSuggestion(feedback2)).toBeFalse(); + }); + + it('should determine Feedback Suggestion Type', () => { + const feedback1 = createFeedback('FeedbackSuggestion:accepted: Consider refactoring', FeedbackType.MANUAL); + const feedback2 = createFeedback('FeedbackSuggestion:adapted: Partially accepted', FeedbackType.MANUAL); + const feedback3 = createFeedback('FeedbackSuggestion: Consider refactoring', FeedbackType.MANUAL); + const feedback4 = createFeedback('Test Case 1 Failed', FeedbackType.AUTOMATIC); + + expect(Feedback.getFeedbackSuggestionType(feedback1)).toBe(FeedbackSuggestionType.ACCEPTED); + expect(Feedback.getFeedbackSuggestionType(feedback2)).toBe(FeedbackSuggestionType.ADAPTED); + expect(Feedback.getFeedbackSuggestionType(feedback3)).toBe(FeedbackSuggestionType.SUGGESTED); + expect(Feedback.getFeedbackSuggestionType(feedback4)).toBe(FeedbackSuggestionType.NO_SUGGESTION); + }); + }); + + describe('reference extraction functions', () => { + it('should extract the file path from the feedback reference', () => { + const feedback1 = createFeedback('Feedback with reference', FeedbackType.AUTOMATIC, 'file:src/com/example/package/MyClass.java_line:13'); + const feedback2 = createFeedback('Feedback without reference', FeedbackType.AUTOMATIC); + const feedback3 = createFeedback('Feedback with invalid reference', FeedbackType.AUTOMATIC, 'invalid:src/com/example/package/MyClass.java_line:13'); + + expect(Feedback.getReferenceFilePath(feedback1)).toBe('src/com/example/package/MyClass.java'); + expect(Feedback.getReferenceFilePath(feedback2)).toBeUndefined(); + expect(Feedback.getReferenceFilePath(feedback3)).toBeUndefined(); + }); + + it('should extract the file path from the feedback reference for file names with an underscore', () => { + const feedback = createFeedback('Feedback with reference', FeedbackType.AUTOMATIC, 'file:src/com/example/package/with_an_underscore.java_line:13'); + expect(Feedback.getReferenceFilePath(feedback)).toBe('src/com/example/package/with_an_underscore.java'); + }); + + it('should extract the line number from the feedback reference', () => { + const feedback1 = createFeedback('Feedback with reference', FeedbackType.AUTOMATIC, 'file:src/com/example/package/MyClass.java_line:13'); + const feedback2 = createFeedback('Feedback without reference', FeedbackType.AUTOMATIC); + const feedback3 = createFeedback('Feedback with invalid reference', FeedbackType.AUTOMATIC, 'invalid:src/com/example/package/MyClass.java_line:13'); + const feedback4 = createFeedback('Feedback with malformed reference', FeedbackType.AUTOMATIC, 'file:src/com/example/package/MyClass.java_invalid:13'); + const feedback5 = createFeedback('Feedback with line that is not a number', FeedbackType.AUTOMATIC, 'file:src/com/example/package/MyClass.java_line:xyz'); + + expect(Feedback.getReferenceLine(feedback1)).toBe(13); + expect(Feedback.getReferenceLine(feedback2)).toBeUndefined(); + expect(Feedback.getReferenceLine(feedback3)).toBeUndefined(); + expect(Feedback.getReferenceLine(feedback4)).toBeUndefined(); + expect(Feedback.getReferenceLine(feedback5)).toBeUndefined(); + }); + + it('should extract the line number from the feedback reference for file names with an underscore', () => { + const feedback = createFeedback('Feedback with reference', FeedbackType.AUTOMATIC, 'file:src/com/example/package/file_with_an_underscore.java_line:13'); + expect(Feedback.getReferenceLine(feedback)).toBe(13); + }); + }); }); diff --git a/src/test/javascript/spec/helpers/mocks/service/mock-athena-service.ts b/src/test/javascript/spec/helpers/mocks/service/mock-athena-service.ts index 51cad1ffcd14..904f3af9560a 100644 --- a/src/test/javascript/spec/helpers/mocks/service/mock-athena-service.ts +++ b/src/test/javascript/spec/helpers/mocks/service/mock-athena-service.ts @@ -1,8 +1,13 @@ import { Observable, of } from 'rxjs'; import { TextBlockRef } from 'app/entities/text-block-ref.model'; +import { Feedback } from 'app/entities/feedback.model'; export class MockAthenaService { - getFeedbackSuggestions(exerciseId: number, submissionId: number): Observable { + getFeedbackSuggestionsForProgramming(exerciseId: number, submissionId: number): Observable { + return of([] as Feedback[]); + } + + getFeedbackSuggestionsForText(exerciseId: number, submissionId: number): Observable { return of([] as TextBlockRef[]); } } diff --git a/src/test/javascript/spec/helpers/mocks/service/mock-athena.service.ts b/src/test/javascript/spec/helpers/mocks/service/mock-athena.service.ts new file mode 100644 index 000000000000..830e3396dd80 --- /dev/null +++ b/src/test/javascript/spec/helpers/mocks/service/mock-athena.service.ts @@ -0,0 +1,12 @@ +import { Feedback } from 'app/entities/feedback.model'; +import { Observable, of } from 'rxjs'; +import { TextBlockRef } from 'app/entities/text-block-ref.model'; + +export class MockAthenaService { + getFeedbackSuggestionsForProgramming(exerciseId: number, submissionId: number): Observable { + return of([]); + } + getFeedbackSuggestionsForText(exerciseId: number, submissionId: number): Observable { + return of([]); + } +} diff --git a/src/test/javascript/spec/helpers/mocks/service/mock-resize-observer.ts b/src/test/javascript/spec/helpers/mocks/service/mock-resize-observer.ts new file mode 100644 index 000000000000..935dfb56800f --- /dev/null +++ b/src/test/javascript/spec/helpers/mocks/service/mock-resize-observer.ts @@ -0,0 +1,21 @@ +/** + * Mock class for the global ResizeObserver class. + * https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver + */ +export class MockResizeObserver { + constructor(callback: ResizeObserverCallback) { + // Do nothing + } + + observe(element: Element): void { + // Do nothing + } + + unobserve(element: Element): void { + // Do nothing + } + + disconnect(): void { + // Do nothing + } +} diff --git a/src/test/javascript/spec/integration/code-editor/code-editor-container.integration.spec.ts b/src/test/javascript/spec/integration/code-editor/code-editor-container.integration.spec.ts index e393997af0b9..b44a77182d29 100644 --- a/src/test/javascript/spec/integration/code-editor/code-editor-container.integration.spec.ts +++ b/src/test/javascript/spec/integration/code-editor/code-editor-container.integration.spec.ts @@ -4,13 +4,22 @@ import dayjs from 'dayjs/esm'; import { ChangeDetectorRef, DebugElement } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { NgModel } from '@angular/forms'; -import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'; +import { NgbDropdown, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; import { BehaviorSubject, Subject, of } from 'rxjs'; import * as ace from 'brace'; import { ArtemisTestModule } from '../../test.module'; import { ParticipationWebsocketService } from 'app/overview/participation-websocket.service'; import { ProgrammingExerciseParticipationService } from 'app/exercises/programming/manage/services/programming-exercise-participation.service'; -import { CommitState, DeleteFileChange, DomainType, EditorState, FileType, GitConflictState } from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; +import { + CommitState, + DeleteFileChange, + DomainType, + EditorState, + FileBadge, + FileBadgeType, + FileType, + GitConflictState, +} from 'app/exercises/programming/shared/code-editor/model/code-editor.model'; import { buildLogs, extractedBuildLogErrors, extractedErrorFiles } from '../../helpers/sample/build-logs'; import { problemStatement } from '../../helpers/sample/problemStatement.json'; import { MockProgrammingExerciseParticipationService } from '../../helpers/mocks/service/mock-programming-exercise-participation.service'; @@ -64,9 +73,9 @@ import { AceEditorModule } from 'app/shared/markdown-editor/ace-editor/ace-edito import { ArtemisDatePipe } from 'app/shared/pipes/artemis-date.pipe'; import { TreeviewComponent } from 'app/exercises/programming/shared/code-editor/treeview/components/treeview/treeview.component'; import { TreeviewItemComponent } from 'app/exercises/programming/shared/code-editor/treeview/components/treeview-item/treeview-item.component'; -import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; import { CodeEditorHeaderComponent } from 'app/exercises/programming/shared/code-editor/header/code-editor-header.component'; import { AlertService } from 'app/core/util/alert.service'; +import { MockResizeObserver } from '../../helpers/mocks/service/mock-resize-observer'; describe('CodeEditorContainerIntegration', () => { // needed to make sure ace is defined @@ -169,6 +178,8 @@ describe('CodeEditorContainerIntegration', () => { commitStub = jest.spyOn(codeEditorRepositoryService, 'commit'); getStudentParticipationWithLatestResultStub = jest.spyOn(programmingExerciseParticipationService, 'getStudentParticipationWithLatestResult'); getLatestPendingSubmissionStub = jest.spyOn(submissionService, 'getLatestPendingSubmissionByParticipationId').mockReturnValue(getLatestPendingSubmissionSubject); + // Mock the ResizeObserver, which is not available in the test environment + global.ResizeObserver = jest.fn().mockImplementation((...args) => new MockResizeObserver(args)); }); }); @@ -562,4 +573,21 @@ describe('CodeEditorContainerIntegration', () => { container.onError(error); expect(alertServiceSpy).toHaveBeenCalledWith(errorKey, translationParams); }); + + it('should create file badges for feedback suggestions', () => { + container.feedbackSuggestions = [ + { reference: 'file:src/Test1.java_line:2' }, + { reference: 'file:src/Test2.java_line:2' }, + { reference: 'file:src/Test2.java_line:4' }, + { reference: 'file:src/Test3.java_line:4' }, + { reference: 'file:src/Test3.java_line:10' }, + { reference: 'file:src/Test3.java_line:11' }, + ]; + container.updateFileBadges(); + expect(container.fileBadges).toEqual({ + 'src/Test1.java': [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 1)], + 'src/Test2.java': [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 2)], + 'src/Test3.java': [new FileBadge(FileBadgeType.FEEDBACK_SUGGESTION, 3)], + }); + }); }); diff --git a/src/test/javascript/spec/service/athena.service.spec.ts b/src/test/javascript/spec/service/athena.service.spec.ts index 57f3dc890070..309099cfdefa 100644 --- a/src/test/javascript/spec/service/athena.service.spec.ts +++ b/src/test/javascript/spec/service/athena.service.spec.ts @@ -32,7 +32,7 @@ describe('AthenaService', () => { const mockProfileInfo = { activeProfiles: ['athena'] } as ProfileInfo; jest.spyOn(profileService, 'getProfileInfo').mockReturnValue(of(mockProfileInfo)); - athenaService.getFeedbackSuggestions(1, 2).subscribe((suggestions: TextBlockRef[]) => { + athenaService.getFeedbackSuggestionsForText(1, 2).subscribe((suggestions: TextBlockRef[]) => { response = suggestions; }); @@ -51,7 +51,7 @@ describe('AthenaService', () => { const mockProfileInfo = { activeProfiles: ['something'] } as ProfileInfo; jest.spyOn(profileService, 'getProfileInfo').mockReturnValue(of(mockProfileInfo)); - athenaService.getFeedbackSuggestions(1, 2).subscribe((suggestions: TextBlockRef[]) => { + athenaService.getFeedbackSuggestionsForText(1, 2).subscribe((suggestions: TextBlockRef[]) => { response = suggestions; }); From b4acfaa860c0d059a15ee5ec97a2285838597bfa Mon Sep 17 00:00:00 2001 From: Lennart Keller <44754405+lennart-keller@users.noreply.github.com> Date: Wed, 4 Oct 2023 18:15:13 +0200 Subject: [PATCH 27/39] Tutorial groups: Change channel prefix for tutorial-groups (#7316) --- .../TutorialGroupChannelManagementService.java | 11 +++++------ .../AbstractTutorialGroupIntegrationTest.java | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/service/tutorialgroups/TutorialGroupChannelManagementService.java b/src/main/java/de/tum/in/www1/artemis/service/tutorialgroups/TutorialGroupChannelManagementService.java index fe331781717e..e5a8831a577a 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/tutorialgroups/TutorialGroupChannelManagementService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/tutorialgroups/TutorialGroupChannelManagementService.java @@ -249,8 +249,7 @@ private Channel createTutorialGroupChannel(TutorialGroup tutorialGroup) { private String determineUniqueTutorialGroupChannelName(TutorialGroup tutorialGroup) { Function determineInitialTutorialGroupChannelName = (TutorialGroup tg) -> { var cleanedTitle = tg.getTitle().replaceAll("\\s", "-").toLowerCase(); - // we use $ as prefix to make sure that the channel name is unique (users not allowed to start channel names with $) - return "$" + cleanedTitle.substring(0, Math.min(cleanedTitle.length(), 19)); + return "tutorgroup-" + cleanedTitle.substring(0, Math.min(cleanedTitle.length(), 18)); }; var channelName = determineInitialTutorialGroupChannelName.apply(tutorialGroup); @@ -260,14 +259,14 @@ private String determineUniqueTutorialGroupChannelName(TutorialGroup tutorialGro // try to make it unique by adding a random number to the end of the channel name // if already max length remove the last 3 characters to get some space to try to make it unique - if (channelName.length() == 20) { - channelName = channelName.substring(0, 17); + if (channelName.length() == 30) { + channelName = channelName.substring(0, 27); } - while (!channelRepository.findChannelByCourseIdAndName(tutorialGroup.getCourse().getId(), channelName).isEmpty() && channelName.length() <= 20) { + while (!channelRepository.findChannelByCourseIdAndName(tutorialGroup.getCourse().getId(), channelName).isEmpty() && channelName.length() <= 30) { channelName += ThreadLocalRandom.current().nextInt(0, 10); } - if (channelName.length() > 20) { + if (channelName.length() > 30) { // very unlikely to happen throw new IllegalStateException("Could not create a unique channel name for tutorial group with id " + tutorialGroup.getId()); } diff --git a/src/test/java/de/tum/in/www1/artemis/tutorialgroups/AbstractTutorialGroupIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/tutorialgroups/AbstractTutorialGroupIntegrationTest.java index 4d8b9266e026..b50da453eb88 100644 --- a/src/test/java/de/tum/in/www1/artemis/tutorialgroups/AbstractTutorialGroupIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/tutorialgroups/AbstractTutorialGroupIntegrationTest.java @@ -292,7 +292,7 @@ Channel asserTutorialGroupChannelIsCorrectlyConfigured(TutorialGroup tutorialGro Function expectedTutorialGroupName = (TutorialGroup tg) -> { var cleanedTitle = tg.getTitle().replaceAll("\\s", "-").toLowerCase(); - return "$" + cleanedTitle.substring(0, Math.min(cleanedTitle.length(), 19)); + return "tutorgroup-" + cleanedTitle.substring(0, Math.min(cleanedTitle.length(), 18)); }; var tutorialGroupFromDb = tutorialGroupRepository.findByIdWithTeachingAssistantAndRegistrationsElseThrow(tutorialGroup.getId()); From 314a0b446b81201380ea7abb8511d08de7ecebfa Mon Sep 17 00:00:00 2001 From: Jakub Riegel Date: Wed, 4 Oct 2023 18:16:00 +0200 Subject: [PATCH 28/39] Development: Update screenshots and the button location in plagiarism checks docs (#7306) --- docs/user/plagiarism-check.rst | 11 ++++++++--- .../confirmed-plagiarism-cases-management.png | Bin 30671 -> 225308 bytes .../plagiarism-cases-navigation.png | Bin 79741 -> 262940 bytes .../instructor/selected-confirmed-case.png | Bin 63443 -> 280443 bytes .../instructor/student-notification.png | Bin 31979 -> 230933 bytes .../instructor/verdict-select.png | Bin 0 -> 89470 bytes .../run-results-selected-submission.png | Bin 44317 -> 445420 bytes .../plagiarism-check/results/run-results.png | Bin 28281 -> 211106 bytes .../student/plagiarism-case-navigation.png | Bin 26381 -> 251595 bytes 9 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 docs/user/plagiarism-check/instructor/verdict-select.png diff --git a/docs/user/plagiarism-check.rst b/docs/user/plagiarism-check.rst index a1a77ce31796..f1971970dcf9 100644 --- a/docs/user/plagiarism-check.rst +++ b/docs/user/plagiarism-check.rst @@ -120,7 +120,7 @@ We visualized the process in the following diagram. 1. Open the plagiarism cases via: - a. For course exercises: Course Management → Course → Plagiarism Cases. + a. For course exercises: Course Management → Course → Assessment → Plagiarism Cases. b. For exam exercises: Course Management → Course → Exams → Exam → Plagiarism Cases. |plagiarism-cases-navigation| @@ -145,13 +145,16 @@ We visualized the process in the following diagram. 6. Make a final verdict by selecting one of 3 available options. The final verdict must be approved by clicking 'Confirm' in the dialog. - |verdict-dialog| - a. No plagiarism. The instructor can deem the accusation invalid and resolve the plagiarism case. b. Warning. The instructor can write a warning message to the student and confirm the verdict in the dialog. c. Point deduction in % (minimum value 0, maximum 100). Deduct exercise points and confirm the verdict in the dialog. d. Plagiarism. If a grading key exists, the student receives the :doc:`plagiarism special grade ` for the exam or course that the corresponding exercise belongs to. The next steps must be made manually by contacting responsible persons in the university to mark the student's grade as "Unterschleif". + + |verdict-select| + + |verdict-dialog| + Students ^^^^^^^^ After the student got a notification that the instructor asked for the statement, he or she has one week to respond.  @@ -179,6 +182,8 @@ The process is visualized in the following diagram. :width: 1000 .. |selected-confirmed-case| image:: plagiarism-check/instructor/selected-confirmed-case.png :width: 1000 +.. |verdict-select| image:: plagiarism-check/instructor/verdict-select.png + :width: 1000 .. |verdict-dialog| image:: plagiarism-check/instructor/point-deduction-verdict.png :width: 500 .. |student-notification| image:: plagiarism-check/instructor/student-notification.png diff --git a/docs/user/plagiarism-check/instructor/confirmed-plagiarism-cases-management.png b/docs/user/plagiarism-check/instructor/confirmed-plagiarism-cases-management.png index 3791a0e7ff1e0dce03d47733c7a0b63072e0a9d9..ff313bdc9800acb8c6250512c4cabf3e51a94437 100644 GIT binary patch literal 225308 zcmbTd2Ut^0*Dg#EP?4f2AV{$QDugP%Dkw#o(t8a^38D8QU`GLofJg~~^d2Cg7m*rz zhmZtmp@$Ah2>kfG@ArN0be2JGXECS8qV*IMmma#Ps_JX1s`Bc4gPmO5ffN)P?-NbvObxnOGb|F~ z;|HnEYg}l&a7*iM#cmB;0m6DYp_Vn2W1-|<;%b*4QfXWjj*Ny>`b{;cg7HZ{X9 zeigPRm>(}oNj-;4q^16dQ`udp1g^i)hmK+&Vp$j!??3AAxUBrNW&Gv&I&VO)a;m*x$~mhP0EX5#k^KmZWL9C^!0J3iNNm}biFs6 zBNI}#zkfKk1t^p%gv+q4e^B|Q#Xfp@;nOGfGZMyX%q`8b@Tx0N;+@s*#knsI+rL6tvMWtS<{#e{E-oG5!@TLVfuq0~IB; zhMf*I9-Tzkhf}LXotZ(4<*!t+q8$-w16EWovrXz25`nXpKQ_7^b>$`TGCzX6~ zX8D)tZMt@B<=LjxwzdN0Pl~U}^S7xMtyP5jF$BjXc0w5ZUY%}9A2|Y3dVLE0R=tQ> z%SbkDNLV&y2rRHp?d#{10ozuthb^=30%LEp_v`ixQ*<4$wd2-wK89jdd@Y)Nc26l< zaKBnwT0Y|~CofPO1hq_@ZUywexqx6aqUh&Y(&VGL$e3((eoOE>Blba9O+*Scrwott zEMr5Y@_8yd-iyDY9YrrcfnJ!XJ*Q10(W;0iOI0&!o?_L{w@=0IN_fC(R*$WwtI9(Nq z!Fw-mntv32IFUKFEL_E{_}cmrIFoCczKVzX>;2rA6njQ?76*rCrWcc9HOr?=?-@rL zIry2fg!WIAGZwRv-m!Se^|x@%USw=%@#I#bfqoL{nD{Nf72H76{3c*7>`0pGldVR% zK;UJWR~4@={WN@Z;d@m1C(n1Dv`tUZuL9I=JxhL}v-c8jFD@1%6J7JQCZpzUV8W#C z`mF$BGD9^J(G z`zA&ig`xaz@qljYg}dTVh4h9m4T&>qP1>9M5xFm(7vEF*5~#%r=k6}= zu2`%%FQcc`KyIK||0MsE1CI@<4J9rBmr1%>x{F+*T&J&`ub7pfRjfzs=5sW;PTEhI zL4u=$gP$G#!W3Oz)P`AOnAn|QSx#Kt7^?q%s0sbf^8;GaY}x$qG?LQ8)|uHsbj&uo z^?Ees_jFt1+ub+Gj9BI4(wnX?oY~!E+B{?IitL&{S3G<7dGbZckW03;gOx+XywH4N zN9U&y?PdNZ{zs5RegW+a314=hCyWjZ*{_G3U0-mx-j_tXPdgE(dZ&e2i@V(8rl@^B z$c`wWLvw;EgP^b9x3kBjuvW7M0J@X3k=n?yB%Bb|!pwrt3{dV`9_&=&+*cu7Ra)Hy zR;}EwOtCir`Jj_tAglV|R^X6!#%iBRWK~gBy?fkrJ&Jx~0)>d<{kV1GCdV_yxg_eb z$VL5G{k6fB{5AI9rVEp^N8Uf$yS{uzs%LN#`nvn>b-EOdG(I!W{`utECs&UB>8bt{ zoaIU=`t{P4b@9%ep~b|a#-bL#=rxdZ9f}=6WY^5mf;pSZ%O8> zOuvUr(S1=8QEt(sM>CI{UZq{)d-dk6FjHf@*xZ(kWLlGGT)CMY;P>cO&6eNqxLfPD z?p)S!7!MREc|!t3r&_kMi&^#yc~ zJRj9j!ZD$U0fnCJ+bqQb+Nqv)S*^d)-gojB=*{WM#cOHkXrWVxuQ}UGmJaf~h6{&@ zf$kVr41JSw1YfiI?Cra33Oa|HB6<-?zabU3vIRy&DsNSqbg`DQH1%BUoBq15B!537 z_qw+bzH|cs>xez2E{twI9q~@#?%p<7u;53w^UKJJ-2U>X8R|?{lkl5vffth$BB|e`1|xB?2YBIe+URPXw>htNvT^(4-;1mz&ROo3~4{BzUy_U$TIjYg3!uJs z2268+P&HujQJ1!Nhrw))FmmLLRvg`BQMJ5H&q)?mH zrc_efp)`*zcfS0Kpz>8_vc8MrbLGaSvYVCPv&CvF$exqGm-z9ys_Hl5+?8E}t9HKj zSLAfw>x_wGO1rBt6!AP1c4*j9P`aeqcc>eu7}m&_o3o*Pl(Op_J&>W)DHkx;FhIy= zYY@KC)YUNQ*-d^PR%EgE9g7ZE9$ms1M@-Fo&tDr5)Y-^J#o6rF2d|pXR##5QPKco2 zH4KGI{9f9ym*whfHXY*cUNA!ocZ{j>0S3L45Q6x3%S%CjE@ zB?kq~UttOgElSS+4nL>7`|mtd6cle=D9-&mkNMgA&lP`mpHct&O`Y(Dg6{0=%Gv!Y zlj^^6(+_4+|5uoL^em0yp@FKV=Goi8!5awl@Oc6D{cLzu<}BiZr-qpi1qCbLpPN$i z`JF8a3aUvLLsMT<9c?)WFi64g`7rDThKKQ0^=U0{YtV27=r@eB=TZZ~c`+ z?kxN#TI3e*Us-(J6mOa8=<}+Ay@9+^!lJ^Wx0EjO^71NpJ37fdS9|hr^0P0+TQ7Wl zJ>^710s;br10;mO-p(Rova+%wqT(Xr;()Up0G}WaU%NnnhtKVQ74l!@r~!Q(yj?tf zUBDi^f6BG92mARd-n#XtqW`}B)lOib%m38m;q&iqopn&;Pl||`u&BuYiOko<>Hml9 zPs+c@{_5Ais#Ew=n4G>#Akf`Z%>{JE>a(UPNr;L+Q248!|1If%TKX?iBOjo*Dj0M| z>8tcVgY|FX|4jT}3ID3o?0@Q%l@a~VD*q$pKPdn7LGC%w2kh?mhlfTUF1||Q3L^if z=>L_dnRd07ZpVQTWXaqGHYo)qM%Tr&{TV97)ZH}rVG6>;kSHR8AC%Eb?!m} zZwsye^E-TnG55dxy44K>Y6`;^JaS~b<`NFB;M%=Hk}T4ae`&7c4g#*odTHK4!Rm~J zp8Y7+DlC7RH7Wn>-6LkuVMIR#^(BAjkXGTN`eE;YJPav4MLuQ#HzN_*kqh~(BFfv? z820EP1?4$rmH+n#FH5Axoht#=%R!p~*u%&THMP?booVrH>))P}tnr?A)`c9fZFc0% zhPA55!wRFsx-^Y)Aw&L16<&|WDUlRZ=XqcLzduwo>0fMxf^EuP&2$kHJT4`w|Gzi< zFACmBm3*N)51#^gE}df$>Ja)zEI2Dk%Y>Kt(g!{$Q&M8$`*T`|o1-`W89ON=)u=8r zWCSD(ye0j7pX9*(&lp5O#Rp&>nzmpiWOHa2%y&(l(6i7-H! zXs?KLTmEAf8LG4`@!ep2I=G5Op)9icGN=F1*#BwK<#+FvPs!Jpkv%;LLVfQ4yh$z3 z2i0$Viwx(z7WQ5$+VvlDh&NvUPv6)tX^Cb%+oO!h&HE=p{bw48UZfH7z?{&p#!wKS z1-^8-^3R69<>gEMbi`@YZw+>qf6AOE6)I{!f0v(&rqp>T;iw$mjA`w}|($c<%m-MOW)p^la2NEd#m=mU=2(9ann2+N~GA604z` z5I@}L$?-Lyz>j5_NN;F1X;D&Kg<0>xrn7b zwP5n?f>UpJZy#R}FY|D3D2)BK!WA6nt~543!|7JolcVrU1^>*))8+i%;m2cM=F#UjUX4!+O;#l zglAK9cI-LwCPY_Dj9`rPz-mqVUEwYxAS2hoZt!h;kk* zAMqh=MD#@4HGBsCrtNajcAu25!M6$U4fzbf1BiYFISq5vz7l!fQFOz0uwMPnC|{^q!xtEio^x%2i>HHu1;y z^qD*>J_R}1CQaluauz}<=wRQNP|qYZ+WGcVQ*+Q!NSWw_P{`jCzsoTV}pH!=E{2T);E{6bsquT zI$0amd)@p4C$W9E^M_tG7n@F5!mebtx9`f%CE6HncGgCBv2c+$KAojZ(t((d{#+X$ zzXy}M?h*RNot*0!9tCx_8#pA{{an6!ci*kpFt#VflPh+wb~HPp*lere8fhjkqVjc` z@;oswk=T6PXtJsvPy9QJoqjM?*l#7ByWC&&RiZ_25pBd0N6>bJr8ZKUEvP7&KOvER z$ru^r)A6*g#@oex?K8Sl9#}~`fk<0Tl#cc7nb@2HM1-P+`eZE3v~{j0`UQDg_)Jso z>3OUTz}@rJz2O#XS5ux%$@t}YdI>Q9J&+l zEV8?n(LC&7bEbW;J39x{*IP+_Zp>+e3_=eFxn9)pc zaQW{jpuDG4t+s;~GMUV-hKXIH@AWU*i;cebYrcq>`xHv3}i#DW;NN(#e~+SWVK3l3CEWn#-UzQDg%I+4v@T+Bcv6JeT2U zdHVXWDDZCENvtXtj68d%m+r^Y))w)Ro~w`Y88y(Qc;dDyp4Kq!bDg&lr- zWO#Jw_9BonMZC!}$&Dmz^WYikvz321%KB^v83%(uBQoUMCweVJd@wcjeJO^y^_%n| zxQ=k8(V0b|h_lUtvD#O&mYb#0CBI}89+#}?dfBR>DJIvb+wHAhw{A#*1G2!nV*PvN zD1Leo!s672@L8CW*6rc0md__4{MIBbw%yUE$HWTnQV#z6c_BYxcIq*v9S%r;_dJNA zY%5i#@W^_XmE5Uwv*LaKevGeOiT3#XoQb&X8}JQTK2HCPFRomMXHbXNQ49vG zK+fw{`5_B7%SV?99&0uwsKX2-2IT0IHsi;%M);isRR~jywkMTM?e5RWMCi`BwONTw zk*or+AU$0Cn42+jbb8t`Cax=VqK){)cOWPLZ77sIP!uLm=eVo1(OeZFS1{2zY&O53 zYQl(T+nBK^BOh^x?Y!E5Xk5&cY9Vc0Dp$ns0>z+FDl$N&(^iWn1HqY)x!sI+ITZ~*de>Kclac6`$Ik2u%8Pr1ydAgK=mx_&J-ki z`?m!K8O7!8Z}^8kq7HkD$~D9fOx<8ZY#taU? zIpwwd1ru`LaYGh@9!op)T}$m&98*l*4N~5QJ7iev`IoqlyPZga4o$;8#G`kyS%>Qd z!KZM0lTnGX>Se_eRmRn@mT<_FUriuUruK!kI~KakvAZdcJ{c+ah=aPv<~U2ZM7X=V ze~CDaJB=SJGVXrOW}Q!V^l#o6E>)owyi><$FlEV)g9X&5a2KiJ66(p?tE^$^e09wj z#CFX|>AGKk5GnndmE0cqBW};ST957~euVT?jZ|};SU+*%Ut|C5)9CU@Lsrb8Tvw+g zdt>u5o(`ts!2z5Ne`nKrslq|U5q}ky|KsK3J=TX6EkX3A zRpLRR8pgu03|F>`a%o7`-y>5}B~>s{L4f#LSm@oaT~zN*vA5|KUefjlJ%!L_n`RO^ zq)}-UYjMp$V{QFPntoH!R2pBti<#hY3P+3n9*cq0EXqCAkm;Iwqi=pT#(8h8J$$L! z-zq4&gW$;WMh;JK-q(^f+D}jLBUF0a zLDia@Sl^#!7OfOB0Pas`i=$b7eu>!VXZt*Q2%O>G_&KTuLL&tT|b^ z92UNHL)I-g(K45sBkO5y=a#A4;VfKa)b?jY_>0roARtMml$KS22xG(?{m8%#xTS{| zQ!XnuvL;R12$>R$6m$JErXW1WQOlsMU(!4?0`;-}bw#rHCC8C*H~nQm@_4r&#}T^~ zOjb8_j{~+gX3;waFrKia8I+ck>=rC*xTRNWA%M%Mw;V6E5{zLL_6;z)ihm8;%P^tO z{gjATmTHKQEyblHOtD)}H`-|DI_aFbkAm_8R89(m2uvc zo42K3VnUj0en;KoP{EfDoo4hYBH{6U1hEGGwq~F=ms5!DrLu=hSf^1#nXpW9|BJDc zX|9$9bG~|IR7RzuF#HppwcO1^kb)f#T?|7FEYfDpZz~n;aIicpE1!&!dCtwE0(A|m ztj!B9BZZ>%X8b3^NCau~^pH;8cj4tB6*{M?T(&aJO)Mk zD39^SUXt3x*8ptFiBowPFhr zMS<+BXJpxsOZAyTdq{QOAFBPLgKn5GgOS#XoE}nbqnbs@EgbGPnBpyiQeB*wbhkpiehtI`8LC>O1d);!?s8t_A+va^SjIk%<4+-na#O!R-)Oqc_ydp$ zpw=XLNmK#Nj79u`^d?FW8gZylQ235PHvo~`N0MWRt<3x!@8pHhPD|RZFrYpGAd9Xc zX$il^Pl|sf1!2YK%sc#$cU>N)s_Xg7Uq1j??`FF>GZuZI2|q?b-lnw}`BZLLIE}}S zG{USXQY4b_eNjD=jV9?YXR&5f{d zuAt4gklI&bI11OK?gV5vrqc%~`I(*!l$~*v44_rsQ6huBbJyTjC zBIr6>(`$gylYYOqw9)KEok`u#(cv4fyq&+%T$qxI_)a-$0LWDAAGsnftBbHU#yiHs z1vGA4Kd%9gyzdV%tC&wOdTus!`rw_$o%M6W7NTLQZSJ*B8yvOESuts`5+AnG5M?9@AtA<%YdptGhAf~pB`#$5+ z4UeI=zX7c5M`Y}c8<#Q=;kGNi_w$rJhEI^Rmm3RG>hXJyzK5mIqJeSs(^U8v*B$$P z)2xkhx14N2p#c}$%6)p)uP?%OoH1e(L08nHo#>mNL51wvX{pRAlzPD}u@Vyf%C!y7 zK=1Hh1xXUJ=rvK4&#h-x!|Be4L5N9+Vb)U^$wxRghJol6joVNHHLI@Atd7>1Vcic` z&e(1$#2E%lC~m5)$usBL@l*CfIqQYV=1e4__15o+jF(N?Qqj93^5DmLn6los(#~z7 z#mWsbgT3Bx#k?JL|9XKG(^`vKeO!sDXe-)X3qNJaQ>&14&q&Jk`_4}Mfjp2yA1wd? z^z9%+Hb2vGhiV8nuZx>iI#rL3jXf@TcEbi@^)|e^_rS6rSJ4Ca@CbpRZP1HZSkTrI zb`2|hfI{|sc+HZQH~h8IN?m>r<2KR5w1*+SwpfyFewvLCyE0*`bb>)HnL5sY-2l(K zA8>^U5n}(+>;G?$f(z%UAAXWwh3Jb;p5Ck;+o}ITbGZgsLA$h+HA7ynXq^qBhmj!& z$rssgqj15JFLrGn1Wr@w2zgFM$peZ!l|Ilojlb}mw3(5ySmpnC9ZpYww|drAkoEW^ z51hK;*oeR~uQRyZ+yfX@aC9!!a^2e?Uj(ce8W0L|ZG@Z4ub zN;O$iw*V;io5y*QuvUs~^74xVtSU{eD|ZOBa%Q$9yS^DEE9!Rg2cQI^mt=f)a_ZjR zx9IQYsI47J0Y-j`C{SWGU1p`PsYHk>jVY@gy>GG@TJ~dO zx^t!#wl>nU6HOK^W6Fx<1KmGeuD1bDu+*HXCG45{m5~iPc$PH4EpT=WFSgsL5;~DO z-yU@nB>Glyqb1}<+O>VCb}WQpv^<$c0#)n07|f7~5KvvH3thO)lSD7lpf53~d`}*Z zAAIYp=6HG%w!;&ESvhyF)Vx}&v~EZ1y0ox#n4#3Z$PZxhfe2VO00w!eRM+nhnvrIH z;E{JCPzH{#%+A;=e=M;)t-`WKhabB%gX=38e<-O+p0%P5`v5}GMjWRcL~c@CNFAS^ z5{x)3YSiU%!tNTa-{bX9x2Omdp}>kn*K9`n z_shHmJ$4hO_x<`86$K%?x1Vv1)H3>b>E0=PDz_`t;x$oW(0_kXuB9;8{jSr#+M%(eO)204AVqcGwb3g(@B;xrZJegx4^OUydaG{jn>4M53+I%rK_ z1?h1*<4>plKGe9{p$Xo52)bdtNIQT6n~)gRSVOK1J|Wl7(KW9$KjEIB ztmCni?MqiYQaYQkrKcF=!GBL!#Xx4l-vj?$E}VPdp_Knj>!I|uFmpGYiyeKuFY;I6 z_uh`pDqpOg%Xm93V4sd&@4Ag}L||X9UF$Afkv{j7I^Dx8u|&anO23|zHb6MS4S2j` z$Uu-yd2?xe%qnbqms@Py+=)_&fK&;@K8!+7; zJfHx5EJIBNekDneRqrbOqbhr|<@rPb#i_lG_f*>-szW~0UYS;j#Eww#N}nIAZ=l(j z&{^jZwT&#=?&*}wmzR5if)!zdUC_47#lWV$B<{X(4^oq>%cs!g!pYfN@~mK_nqc)Fx~md@LtD# zm}Yc+)g=OEHYn9j&$)&$R}hU{msPs@E65!BWvi=5r@!IN^hLt*x8Kp{+}{9a5N^G? zI-I?Bk?q@B{GInOaBoF4?R%k#**3kf9mo!0AVSyJt)(F~@noSJ;*D=S>~TIhsN5NW zo*2g7Q2e%r&TDLZWM*!QsW&-tmc*221IzV-Cin~-qHrb8a4&eaVk38vL>|trIac~` zl;~EYlVyH$*|^ex1^@O9EgQLcQn?0P+E zl$n$U>h4r5(#NU$qAC>yvd+|}LxBgPVW;m;!m+fn?Sk8z1GO^3se4L867hUQYQeQX zwd;<9Neqln5lyuXc}w%*bD%he8p12anzQ{6lwn1{kLAS%(hVLrVSHvDMsE_6&L;T{ z^QjPp6AH*=ngbWxm)xx=9L*5yBqh zB9h9&_uY2ZD+e^e_(A-dBdTxW*sx3$e^UA9j9UyVNkyc;-z>u{W+|f}g2jfb_|X`} z*4<5SwiPUk)bhxQf4M;CQR3$sS|9SEHN5kdL8s-hRKG7ayfeY&??HXvRPJ0!ddF|W zWd0)|?CzW4@2xQ&1ssqt3bIpQ;0)U)Hj9Qngt}^mJXud8gMGlv3qpd&dshf|S#1?d zobJxU0(c+~TCf0PyfDLRtZ-5ZftBGLg4ejH(!zQg#gp$&xx}i!WD>=p7QP`%rW_sb zpw?-N?jn!Bmj+orp0drIz*&R+#FN!ULVn~}_`i4)ELikF6iwwjm-zl$B9`j;2Jm|9 zeByNok$TY`6%LH@aJEaMxS49AY#Y%~?L4_!^q_p^0F)vt_(+wSrGdUL?ZKC!lXB-% z(u1P%5W-A;$|m4Ey3Ev*FeZ1N_s>?N5D**ja`_Awimtbj8&QrgY=zXGs-fa{lc+bM zDTgNjP;qtzg__n#rl)(|ml>+xQ*%ft>JE|a{|Z3vgrGnO7v?#W1-Jz`v92!I8KJ0% zhK0A$*3Lf-=t4A;PaR3IT(9$WdzCJ_1cgVrjVMNdG7}WVZdnHvDM_|)74N~EU%s{) zkz#NEus_Bsgg0^b{KSykZBmiv6o|jRz52|;s`UB}XIh?-sjYpfRw>@>wSsaM!x@xv zCcc{ioL}tBwl*%@Jn*F!JUAD#HlGH4|CbPNzWlKg%u{FYwa#KVbI_;`<(>=Dh?SRJ zQhXNXg_n^uN1L2!KJF}`xnjsedhu&}FXbkh^%?t^Btii!@ z?z2%aE#JDlSFos0QGJOo2EdD3Nf$_;B{)kf}GI@C%t<~B|*R_+txsmyF6Ne ziwMi3^j&TFz{tSpP3-}wFSJR4woD`;c&{P%up3Xhh#<8*GhQ%i#kzt5YEWl`R9dIC zdt5fx7raJGdMq*@4wYcOv>YCQ^$EK)FZ*#KlF4HmxdYx6${eJXH$}_>-YS}rK=SYV zD=QYsqza$jvR_5ediTQ4ZmT9{d}3lEEO_75EN5yN0mk0cD-C%L_n0blwpW9DpjI0? zK5+^}oPGjd&60~I-TeV$1IS<-XK-3{!N#1KGhOLH~ribK$wXf9hv)V`q9J0$Himn%1sJcqE%A`$`6 zGmH<;g1^zT6h2pCljYWheyjM94+GBRXmkde&sF!Kts6p~mB!`NH(NFgq|2Lx;{w9f zJ!%(O&6>j-o20tB$05Vh)AtXt5zV{A?6@%Pe#OHX%XN=QDQ_<>MwD%u$VwXWwUY75 zXdkMQ8MoZ*^5ap9s6S1&twu)MyM^ly#B2Q?R_hck6t{ThSq zNZCZ8jFtW#UPq)#daZPIaJJnu;pN<(bovwr#=V*KC?4dZIJV}VrA>EUd*agU`ySsu zQ4cd4Kx$3Bb=IOpiZs8jzfXY09|IF%NtLuP+08A$yC10|@XMO@2;ul7(X!4nO9;#^ zl9VzAu+Ec?^XtK$90~^*|2!mrlT}Q$r<|mJkWDDfPKS9|?3Pmma~^Mfq#d)U4QxGk z9oL-%eE~%=`FDYBHZSO{0L{MOaR?)PWLcv5Pkaj=G zJr)ume|vk1hy)^&NgCN0`Q8pb(tee)9$HZoa(;cEnr&)^Iw ziIqPbP2TGkK7iTl71ZcMZ}=22c9cBbBKh7aZM8gY#ML#Z`0e^1+ zv}w5_keryP*_9APm)5ntC!Me+S=h-)Grc)(yX7NE3YN+V;C&yK0w3V?-9+f5+T@m% zJMrK*48B~xo3yb9#!3!!S9zGBZRA6Hx-&zjyPGhjBPig{NpZptffx@xLo30AbJ=E| z^)$}rOE~u!;CBQCvF#frHVOln&q;K~4)*SuI}5t`rZ~12dSi3vcLtH4q9beIu`~^F zBknk(YY)Q`yE)Z~5=Z$+Vg7yo^{Vz{R$q`9QbYgpWvPIwRBtUc|g@-`KSst+ql zz9#QnxBsegy>(j)_fm83__M;BA;0&BjS~`G{E0rja0ldL1ORjJ)TK_b+JSViv9kdA z_BwnG{=6{QdUe_@JC;`Kek&XUoN0pl%)Y-p&Lpr_)VNkp>Kh9QoXxPK)?ROVw*1`n zusBeuRz_eBgaQYvf?iuTprM4Tp6)h&#*s~3n|ou z4NpN%D8%tn>couI666b#<+4M{Cnzu-TW%K(d5x)0-{!D{#wEn9iKhCQ=@z10n7g9;10a4|~@fm;R31!}%k6(_6rpbf(1DJrDBT?otd#Z2#1*=0#lW^Pb6hxPE2_ zM#>9keA|fy)YR5yt4C)bX`>el>BOM{YX|NpXST%}R3$;NE-lfO;dz{J_p2F|!R7s7 zvIpg4k_*P#ilf?@`U0Fsfsa%2Zije?xf3=b)D{|gk`!c5dFa6jQf3`IX%bu=K?6IG zHlk(b{0bIJqbuDYKs4pv8XO^mO0$tRcA7BeN1yb!aqVQ%9+_4+>>bd%rhggts7hahGTZY?=bIip|ZlQ{*=+Z(Mw%91OE)@|;K&OU;n4ZVvOm z!1ZF?8@AIa^gyaRezla%oN?Nnnc*#|X?f_N+5d4tfxmsq%#-}K5z-eQU~G|_J@ zBf+6FmQgCZp}|tPcHznyLO0#&;yg@;C%93Dbbnx|@rprB)S1E}SYf9)K&V+34P@ znKW=*eGq?|pFtw&9%1Pk{Ne)2wuB+eyBb&nma&pi+%=-9(_FRl0JrnYi4GkRO&gmC z(Q1%$$H(h1|2_^}cw)Cdqy+LG!o*jp9neH3`yzAv`qyeO_3jj z-6XH$^*7rvmw;53kL!J|8TsL?LWB)AYkFdvG_7#_YO3uHD3TJX11ZGhX zsdZEzf+USp*JwaLB3Y679@jfM1EUJluT!6zzVs`Nq45+MD&9P(BV?Hq${5raQYIeM z*E_jkf-~E?@4A>Z0W`W+leKKEh1b}hJ0M+MrT{imsHID`GMMT48+53FLSUN&RVV6D z3KVlq{v;y2ZM~+o(*Kf=m5^Wq!}D@`5MefPBsAc%$cunj=a((x)EgJ5ml4aM&Eg52 zgJnwLBmBXo7vu+$`c@;RUt(d|py|)q>OeGPZD9(Rkyu*#-KV@RII6ggc)ymoS_C{k zTF*#&*5l-VGCjhvZZ0>dFdEn420=|sL-=M+M&$=PmIN+lDrb^I8xlYfRuUdB;uAOW z1}XQ>#G}3P-ol<`8q4cqFf43wu4c0FC)M&{#_|`&u&nMHndmcUKf|9khp)&Wi*P$g zPsgxqNW3h*Q{1Q$gR!2fae=VNGzZ`@tz%Sjm%OH6K-j^zYM5_#LhDM-&P|k$EVT1J zs%~+OeKHJbEjUp4IXak!L@Yay(W4I5JcZv+q9C5_EXi>WpFcP>g>&Y?@S*9-?reX< z6)aNXu}bB@(?Qq(9kpr-T)l2vkX4tx_-BN&&*%jrdm8hZvFWwxRzu?Jk;1guAksR+ z4!MLjqf?OeB{*`$W4qL(%*+Ap{R<*HmA=%3mzm@_w;8T?h>l7C7&tblY=|=$H?RDh zZtbgkm@j2F)q7&=MBh-^3)%hv?8X+D-P;%&7W- zGV2qUwRsS+Y|1}9o)Ou*Ud_@oPuo8|LNnu#_QGPNUqS-e?*i<8>2QkpeLBr@`B zR)Ch|goIB@)=58n1F9cqV!HIoY_%4{!Ee&jV#*g3jMEH}`v9)U^Hw9UK&jufp-CWfTqR}|emaWq8cvQHis;)((n z4ar~p=i%+F{d+aN>2l*!69uK^q4@1+IZv?zA@JIIB3_C0G*qhqRyU}DF)%1`xF=%L z<&e@_kdyOxvmPH#Kn;W&Z#L}ep1~PNWM`L=iS<1w=@_@b0zC@Uq#dw0LrVSyK3KpU zQr(*v(yE&|*T+UN^Yt}ANkrabGZ)!0L6BTvo~f4b84&jeIbUv+cHBY9q=vB}y?${2 z9pK?hmI^Ps@09^MWY2>mgmQQAv#R-H*|F$I{M&E!i#9wMyrX5DNp13BRkvP-lDG_M z+J~PhJj2@HCWFEKG(3E!t?U6~|897B3(kZ#DwWe!(D7R-E~(Z)5FNMU#t?NN$cc4N zH-fNm^F-TQvE>&h9P_lu)$ZC|0X6P+a)P31&HNce^ z5o`5!bMVwHwG8v-$c_4HNys(25 zhUmXo*1R@^y89YmTV+|18BzX`;R#{Wf$kSoWcJe{T~bEB4_&ckU3oJWwzz(eV{_z& z6y7cQt+mqS#=2dyGE}ZO`r{nal^%FAoFX)UQ;L1by3wE9qZ&Lg32RpUh6>5ir5jR9 z7CVD$wCWCDTh3HwttG_a3)1ALGFS-t0lBE&cCQM7wBDk%Q^oCX7`LXf!;A8r!M?Vs z43EmOmk&5ID*y-FUp*StcQU?tSUvS3JmN+MDsgdf?X>Znq=p{&K$G8chignv6C*-& z(qx`_G!dK#t0qlC_=r;y&^#=xLFdb_J@wvA8lAPuR!=|mf3Q;u=B^V`&cR#j&%>`bgslx@d*3>ot?5J|H`{pZQm@V zZ+$;Q{u$eUus*)6T<-lXlxz}`rs7HefHa2&_xK?NA^scE+ zy)yxnT))&5z_}BS9>-!46Ww=?i`e4acr_7cMpw**@ha_Z3rU~(5$Y)%Af8BVqU~ei zhXJ$&>KL6WNjFXL10z+v$w3B=!$(6RUjrxKB!rq(yC*2*qAJ?FCMr9B z6bT4Db@~V~lcUINtkkm}rle>NY*OZxHDrz7bvmRgK{*YiD_UdxPp&e^fxb9!+}(}i z(D13H9TQ1;meVSJQ+9NiuX((cTAnWI7`L2BA<<=IR^o^K5xJZ68}p&P&!(jF)|kB+ z6tFx)b)lIs8}4l721z`#u`Pb?(+TQU0;3SNSyKl0(~GCbe&>-iK1IL`Cwis)6c}Ll z*rDz;FeM+v2|tz>$yhzt9pL(85K2DC*I|{{EqxyrarmJi_!61gTb;;mPEJTvuJg~O z?ZhWSzP0ZOGsG%;!%*F6%6fD@lbH<2C}MnubJDYs9@GF&u>B(#C{HfJbzi?6#_(cg z{NsZ2il4on!dFo#Y08aM>tIdYv}LAQZi(DS!u9LV&FY;#of#5y%=;2dg_Dz{-YuoQ z@rr)9c={tOp5dZbWiNO_z}M6Ut+2H~Z!zB3VO1Pgntsow-Z_p%I~3c&qI+6rNs2W4 zmVWZ-cAg{TAoAeq+rkf-rmW!Rgfq9Q&Fc|)hdi9j4$-B>{kXpCb>Ay@c0Mu;>>xgFStV7n2s3h{iX)L3D zC3Zfh>a_f!%fVh8bPdY@=3evl_uFn5&A6BdY8*CGHi^IkeS~0sy-Nr$I7zqj8}M(r zINEBo+)4+~hjnEwM@OEx*Q!>k9~glAYLEB(eA3R`x33OoQGR4K^bl#brxZt6S&JmO zh}W6s9xz$S_H{o8x2~{$Sz`O@^w6DWbWw}`9`mTaSz!fbd zNe;C$j|eCHLY0z5D!A!IA*5s`s+2@s5+|S1hi;KW*}is?f*+WAeniX^Q_kpcd~v2E z>kewCtz$>rI?i0R-iagwxA*R+h}GJQcA=>R01{z^?NROn6TH45S}o5QdJg2rlYV>c z9C{>V9(NNkc7+InblDaLIP!$z*ON5Q1>v-Ft0(4gvD8$Gr{KQR(( zHekU5UuCQ*8bJGfq6kA`yN^~9p*1`?XaW#)V)*0s+I3k$ugr?RGXO95aTN!6y^E=mE@0obql zFjL>`57ZqEqQfiCtaQCN!e!Tz~cx|%GMdJ)rk-J zvNJ_*CC3rCY+2lxG<#-BR;2^~Vw|Z7-Tu{@`Iz3LDmf7!?yI@yWZ&c*GVo!_mYe@a z@TOyk?!x!g>tJ!V&URWt=uS!HLMLbJa%TKVrm_44+IuSNf;aL*U5y^nEBWbx((vJ^ z<31etWPOd&P&u6`+X91YQcD=oXacicFSsqi|UpalZ)-&eQy-o48 zQX1o2cikeA15f=;bE%EW#v;4gjlK8(GJkM(x<~w3$?fGcM(O^Js{8!PdDoYZ?`EE! z69NW)PAvFFAV)O&loq4Lv&x(V)>TyU}{)EOgFREow zNFv9=CV+Jos#PJhlO%cK!4R&TdHtY1`1ZGSxN=NwwV$ z!_>Tta))))J({th9mZo3-we$ASPBi0Z61)SX_*GL$~a_CF9|mXuiSBtj|#KdfP9|H zwP-1@sc_h?aC7Qu=BB)crk29#@|e490JF-TLOtur@f+Hp*_s zRyl&??#$e6Apb4Ltjqxctp=_aaG8jtES%eJFKSlQX`wxuDZ0MAA?H0IO@}Nboh0sy zPf5sh;>~-{G?zN-Gr07i@)}21=p*Z);zR$8dcTT1u1S{r?(y%?dB;78a$k|c-3;=& zjI_fc$@B~}J|$MyzEAE7p+bxmY`|RWJ`GA@!L`eHIN7kY?d)JTMDlMIs8gB&J`d6x z>wzb3cvXNV$+IHhwA^frd2V=FYUAxHIi%yy=hjQ;&CS>it`PG>kO;|494pc(&W_ ze_K_RR#j1>rPQj{tev*@E^4pZTWvwima5vTs8O?K%-E}HkEl&Z)QYVLDKUQOeLv6l z_qxCLGt~EAl25MdI`8v7<2vVjaKmAwcFQ9G4Ocss+a!uQ!C%6wQ8u$&lf}>RqpRU6 zI2e1f#p=vTH$`oy$)3^DPX)Al49*oP7{Z60Fh?C`cJ9`OBDRgs z%1So1B>PO$ZOcudarxf4n{NJ0^%lW3ILGSjC238jJa(QA`?uKM)~dM+IrRlOg(SY< zO<1t&>KP>U5ecvmiO@D0zJfuFD514Z7fZ-g%7Bd)ir;Td3z)R&-TZ9fkdb91IG3%~ z5&1$^J7a|HJ@^V0N{n5Tjbh;#XwQ%OO9;D+Xd;O*wo_g zScnoNb<4TDO=8@5O2dBx9{U;GxIo>oWTKIzGmcSRAMvW-#)ka^kgbl|Q#pn{Q`CL) zv|;fiQeg3LiN3^)%KA2MgXh7O86obn#`t%$sxCW!p*VGs@lmS(PH`qEQk{>Qjn~DY zCtDbaGWu{dBnqO`sQtK@B-y>W<138!VAga2gK$sT6X!DP(z3PpsFlPA>6R%`-|9W0 z2M;p~%;F7Ls+7Jmni_AzyTwguk=GG)-;VFnjH;*q&E42lKQ6g3ysZ(Edes`gLj!ow z5G7$2(iP!RIxwWvx*G2!USWJy$kQ&ZZ!x@PFo`4MeeF#OS14&$+JK&xnrH@Pg8Ji- zoBSCA)$yNC3i>O}1k{o89Q&NP7A_7pCrN}U`E>SM0!8C~nIZ>Ih~Uz(euL8fX`ABh ztK`R&V{9cY+|iq-8q@MONproo7Uw^9XQc=m3(PK5Y?_1~&+VMzYHp9_FHdSX9b>n{ zt@5LB!0xlMZ^jROgwr%OK0aB~SR0Yq)k&;3gzT%L4IV6(E7Ukn>HREm3U1`+tE~P0 z)1fM0WWz5uyain$esk)vCFYMn_lH_J=Xuif3i_>hZUU{%8~$elR?XJm_8k}fY--+3 zGpl*wlIHkYI5oK0B--@xGCI3tgl+w2{kgho6wS5CYm@9#AK zyDnCKnFYCHx)n7w(BxLhOH9$}0pj!DMWg8B2WanS6c-x_$~!g`tKhS8Gx8Ds0_vR7 zwaI#8VhwR%H%XT2sHKm0e-}9Q9=0EklDo6<+KoA#NG89OhGm^xlFs?_pU5w5Hguq|HB0$E=A;L=VAq<&U20P z0EFTeJ)YykMq|4yWE}#8*t-TW78obVBmZb^8y26Ca1F5S8UG;!K!n#sEAI3JH9+5_ zUW6OtPT6(oaG5W_oC^CJCO1f{JPvxFH)&6vyc}OtD7Z~|yQ74DR(U}uad2lzCtq|Lm#vB^Zh- ziGRhy)dq;3ne-!md%m)jzt?+ZKWhz3je1LfIpQY+{c56h*0CWx*X_yQ+L-}WfXBBJ z0T1tgs;J;ilf?n?Qy|V2+5BCdWI_Q_*jy?L*Qd9B?^cK}Uu;1*c-haHK4bF%juN-F zM*LBvf9TWSf9=0EzXg7~PcbC3-!+(|%hI%zeeq82BZ8wZAeH$;698A@Kf2(~b;a-( z5Vo$|xI_?S`f2Y7+(aoQDMHRy@`t9Kr%&#$o2LlFj%kR=Y!;3|MgL8l=UmuBTEd{V zOiBP_#eMIK%SjLL3@Pv)etn2o#$D9r_QmAgn#?&gF~MeGVR8Km0l!!J&qF@6Qs&ZM z4)2`13TVAgeTgV&n0o7vD&?2)HA%~N{;oaedGyCmc(@U%ow=52>UuKB^5jon$QM5VZ0l>zJ?Bj4&FvqmTnH#c!KI+;ji24rveWJ z#j_B^@HBT+gR=hPN*SpnvUdbTo)3$k`kt!`<6n45Cj6Il_?trp?QohXlO$=0QQpqb4Dhmf?=aAo46 zu$4XcX(bq$h)-yIS%=&%BzvrjeuZF&SnAoTtiPSjor_Wid*-9PYXeUis}}cSn&Etu zfm#>T%a1g8*J9LK@2&(}Sjhz2+`Hg{XxJ&P^#Q;g>fbI7KY(sP6;vMkG;4B|9qpY7N{(N9WWG> zT>;|1{BKC|znyvDlR!DCr+2S~y=D#``FSz(gbj>7U%y1~ahZVmds*}wKTUc)+Te?k z4Fxv^$uFK+Gv^(Wh5ewv*se_6E=low8R0$owsLr?iOSB_t-`z5lW+pRjNTKO)lrb=iDiiu(`q{IN^C;M#7@1R|ykxy~_zL{`Zp>SPkgnpW zTOAV;zLBHK#kU~-q+7>}Xye42WH<8S^I9ADCozzON>h%r{fzB+YPfY|^5E;Ac&_V( zi|gKLuX~Sprh)aJ$y7dG)p^s>}>nhU}V0@Nrn_ZG2j;-hMiE{6DaszZ0`KY{u z(_$ywMCamwJQ4$n&)5I;r|K>0w0>d6x_k;TQbTBM%gGkAuJ|4=va5OVr2y%}RvWE) z<@+fq2)7;-wjazX*FGALFi?rGIK$yHJ*W1Aq68=cqS=g*rS4vH&9kf*9)E@th>Lq< zuR{16B$Meya5qMRgdq63%P^GM>DYJYE!n7fM^?`x8Vt9_-X2(p%FwVt&H1vq>s9yt z*C4tVqMx4j2H~!f#tF_)ck?}>^M_i>?8}N~NbDaFR`?DQ9G)^a+=By!3a?q;#uKJ^ z>$y2(g~Ulx{#We!@BU_UnE)^4hS&_-9Sj8thIlEjZh+5pr^Od}mrZR7rbC+P4;4z^ zSDEL-b0(}14()sqf9P0K*AzMjG)|rjoBG-1=-{SW&V||+NZ5Uo;ka;2I~$rZz9b(Y zA*xztfAcqVsT;sVaY;_f3>kbaBCAFdg>};I`vryy(o@luT{C2u@nZ45j=0tx);g>^ zw)^QtrE3MZU{Gr^DN}_Y!jx22g=O|G1&GaM86P&?y3w@7&l8RU; zmjuQ9?s=NAN0nGTl!~nS7@52!)Q0W2UkW-DFh$1HrBo(FmP*(RyILc5G%EaHBvU9$ z#it_%>CfW2qGITHl372^{b;+Ue~>n62HTj3|6p?{W*nQgpp|T3kn|`*;o+U6Q@@6u z{CvdeuJ~r%M9N23pM%lD4~DvkdG4M_Pj-~eI0I=Z#LsMLSg!zF5bf=dPw4LHf$o8u z<(q?z)|X9nk7g@OznKeL9T1?`=P=pe+hZ6-4ee~rK%m?wJ(ma{y8yiPrnn3*nL-BH4 zRM?vRlTBk^gnF{h3kiE|!J#&?83w^;EjoGM$qiVI8+r+h+;Ora(d zorrZPe&%NHhFe`_y>b)@j|8=x26+RaRD2zHc-i4&7BT|a1g7kd}M>uqzjr`n~Jn)%%^%kGI!)mWtRKN zqnKz$%Jz6eD zp7jZPis2T?=B`!QBpZL~*=?A}O>;(iK!ze)1Dnp7go_bmJ4C6RxY}sMV)$u}SYDV9TOmykqvWlD0g!M@?dVO}#gu@e; zw6_`9;a2Cc#D!o3q7X%$>m~s^yQf98i^hzTO9ZD4>#{9Lf53#Yx`+Z~eWx^Z#jNLi zodtioVwur+Pq41Niz$+O+A%&pnrIcYEN&&7+^%60i@g+z<@qQn-~405L1i4SIo`L# z8^_AwveAR&k_Vm)d|qi-pq zIXDTD&Q5Y~(Kk7KLu-Cm$LQqFMsPNQ6%tof59nr`-D+&m7R zZT5)dd&^OOy3?$mc(msp4MqA@aKrD~D63BN5bYlia4VW0e*79-f6P&CedKl6xy_Zd zEm@(@0GjeIi$ZvB@%K5NEs=A%5}DPF%s0X2V$b#?r3W)#`(#LRVa-6@LU7;LwP=NM z(A3E$v7R>Fj|3HVtPvPt)fYs7tRESWucnlV{f1GCE(HMayO=>BYyvP?h3REI-Tm<; zL=nvb&j-d-dLdm9woS;wl`+gTdDo8ZtEGFCc9N?=-}Z!ro5wVE^35jq*!x~YEvQZ@ zLvuB412YxWK0=c2DP%g8dbXPuo@@KwKhfN?&eW?W|C;aqGh`0E*meo#jW=9($m(Nq(DUHXU;`V8^-?M_j01Zazl(3`+;hS2EJ!%jurtT#t{z z@Vfh38j>?h*t_tqo}&b4BU|Mhu;#&&rXBwc?mY{vE4q~vk3bY9FKo)QuHNVqbP9&R z{r8LGgON?Jnn3-;Cz5IE9Q#W7$`E@jshQR?3=6yj{)P+8WEl9?G95b>H0G5KLPj-N zD^83_%*YNbT=QTPr_BqdVC5~+wnxbiJIsLBs&NQB7KicXdcQwjRVK| zVmEeggjX3K1s0Xu+sE1_k#*%_4($;_)2XydZYyXylmE{|;FKe))jIW&ZRemb>9ZIvpIL*>Y1t$t9-3y+R0`3lR!(GTAFA}>1^%Uw2sQ)s)@$4&b| z-omn&B&mDFLI=&S=0)qp-It==)kZ(4d7sRhHyP*X+f$4s!CRCZo6TkFi$wZhnStb` z3Qi{a1*3e1(Y^lcl}TOEc^T`DPCmkSlET7BE- zTx-bXx_gCe8G`c_Yf!i7_#Fe^FphGejGOJcOd?wLemD;Bi!GYz!m`8PaGvg`rG_f2 zTyKADue+UefSn?90!ZB$($=>E_kS>8_lfkl@?f{TX3&%O=qh&X&Ewfwwy0(oCBMqU z+S`s2+;_;{XXFN!-Sh&ERp=oEc~T^d;GjdLy7g83bnbnBt_hqzM2m-Gznfc)Z9;?2w-*16BOvdS;FXhKQ!E*Pho8kxZCh;Kq$o|8 zxs+VxD8r@p7?h%>d-dupT-F@xI}8>-&3Fbsy0PoKvnBKmiS-V`AdKQXNv9nvG_%;A zJXk=Amu`z{l}CQlq3PO4@vh*{6*M?PvbzIsC<6{hfa%BlN(_Q)OC%e1=2t7MJAYQe zGS)7KeYAfCElC-`HW{~^ttUnHnt>T8i=1@UC2fvx)mgucXx#24LSWvI5tQQ+K#b}; zeAE4#bdBJ%cN_NMn&9B^L;=k{{XsCgsjL4ZukXW<{cva#oJAj9jop{j&7##ME9JyW zOD&96NBYl)y0DSaba5RNzKRoPKK zPwK?qC*-%2q7z-CA8D<2m?xyaxJn59taHYtGHk?HXTM{Pn7uvGKV*D7 zVRO-N-|Y>@?C9-2q*A=%!Uw(9ykrLZ+ako?{F!iplYwQk-9uPnrx;nQ>DmB_(Qm(g zB>rjoGoyy589Z=M7v^KpIxqa-BoEo!a!dSVI(3u3!DGQ`M!-7a-HAR zx3PbFoEW|%3A0euY=N9f<=YQsdegl}eOq5%I!;XPx7m4bOJiKHFq`#`aMoWQ^L+&q zwQm^J?5mVM^^N81M+5Q*GEotkPX}=F9PtO4Bo!k(Ov_jy+lV!Bci5@m;a)1W!o#+0 z61v-#&4%LN+x9&f?Bha(=o6rD$XB8EW(R2c#`js|T(7f4yn^_GrsVfU1N5g3FL4$E z6V~4`9uWbZInsAuDvN`^HDhzZ_JS|m)*UAR5~M~4L{J}28(e=$!xn_7&5ue#b}c&( z_)}`qtH-CzJHf~j32nQZz!p=Qx02`uhxQ<3c2Z?)2N>QoBJ>zRL|{;Eu7KjGFpcpq zYqqdBJ645s5I`H~%H}#6{Cw0-yV#1F8kEW#jX{u>g6bVo$yq@zFYLe+Y%)o-E$7?F zCWdg&&V|8zy(U9y7$Hzj@TYdqD*Gc=s_ct<4nPM|1>o4?FhG~whK zV4Kq~*U>Z=vG{uAbhBLC8GnlV?WxteS%&$%;}DTHXn%_yyE!a2K`#%dp`Hq6ss4$F z>|z>6bu-X=BbM)20xKRyev}~ATaJnQ5 z)(5IM>?(p)f(3+WR znN^p>OEVKzF@R z=%e=j;gLA+zUrV+4)k76 z+}Kl~zr7$7-H{G?8T=+swKTqiuh8OY5Sx<@>mG3|fvV5?^Y@^XF{io%yCYP>2h%C! zw$GhvzX5Msy4$E^^hc`7G&i=Kd2?7*o7fp5+h=&Tv9htcM4qof*2=ktEh+NV zw^OGZEOviBdQ>ziF@tkdKzV|$F|3@_&zsZi%QNIw8Mp15Gqk^#zIuRPLc(`Xw#KX- zLTL&%<=B}{1Y;2kQ~V#qDjpnS6TY$Bv9Fp5-}@_OL_6Odq!c~YdVodinsA*61W~z~ znA;@UqoHUoT+>*OHlG1FdnRkbHJlYJM0XO)jXaC5HY%_M`!qUiKK>wv11C}z@O10r zr+>Z7eN)p3oo>DaFx$=dV}Z$FeJx$lEF?0UoEx%!r+&cqT-A~PNJ_f!m^_b3353J> z6D80v#!uYM=}#Zl>kA0!%$!K5Zx;~URG~HA(re){O*EIRc{Iv?>Ki=}}vQZ3OLB*8G3?(f&F%rUE^sStFecrEJ3NpRl1nOD; zPUeUnuUpcLLfa{1ERfy)K}4cjJRC~-6MN-=LMJH$vQ?>E1liMVG<=R6`gL<%sy=x+ z^i3Sb7EkAT8G6Gs?bG4dc1Txjd8aR?&2V?dPT6KV>lTLJPO4F9W9R6r6d5#!=RMqr zL*?6gv4M!RRtDdT#KA%jyv1zf9?0$T;va&3>Bb*=pUYLOV|D%A*2U+?4p_Mlzd??f+Q$vEFFzLeXp&SxY7(2uut==BzuolNl?>2Pr04DC?_-tb*erL(;n{Qgr=VzLElH?qV74Ya)J4kYPPTX zGL+D@3l|zi^bY3Tz^qF~I#BX@8R=8$);WWVXA|!<99Z^kftGogWe--03YeUc$!Xyr zdR@RF<$ZA1v%@&ci1XK?W%ghCPz!w2gB(#;zm(3y$Efg@YO22BVePEAULR_0tLB<} zjlCN8oYz*s_@)mYaSFuo#>wuqQ0cW-z;CE4i2{;CVzgrg*FSs4__ZnN3%vKE3-51? z_aT5m=BJGnfUe=79WU1OTI|LMg~9F)x{A%|6o-Pginr5J#@_n|J?^yEYAL)uTHx0z zTr9{<>if_mS4pq-p1CM59b`LB4jPV2Ed|ZFaX+f-nYtf^{f+aBEWQ|El>Py=1dL5e z)vh45w0TZyPZG=Bq}ovbe4r??M+foAX08?LP|9@T@PtD0o(&x`exlAUZM0*0?Gwf3zr()wPSlIx6&x_5Oc^9zmyrKQR(%h}5+oDxM48`-=o z*r}Z)9;F^K<9zB(DLWa#X@@&0Vt7kCUUCc|2*LSvOhG!6i3u8)lxi2Wr@%^4rYXoT ze^bPBDKda2WW-K8v6S0Zx-lWt-G<`fEsfxZ+D?N%2CdpsTHDrWuOKRw>9@VUi$t!^ z-k-TI(eAn3w*%a6v@xhD9HH5*4#OsQA{6d)ITHGk;zeK;gQhD$E zKDL@I9ue{`?CP+$7ku1{bv zu(KzmSZWj7%FZdYnXnH#5Ox9?@rX}z@dOb<95fAy4s1909BPI1gUy>I3w`Qyyua|E z)XlEhOl9RgshBqQQ!u-uHQjA|Ge|hEbE>=4pczHKNFoQC9Pk zJ;M)Y%{W&2^~#y&IzPJ0x!S1n_)4ce0nsXUSqAFwTzb6l*hh;Gxe1W2xfkow**0*O zCc>E`695!r;F#i^QP#CB zEIVF)+;COdPNBASN1=eB?r`y{dcODE#>T?3{R7@@`EbaM)qL^k53N7fRjnC$-x~3? zA)GCd(F+7A*e*~a4iQN*1F{#9Yl#m|M8-)46k=Zb_jA|Jim1b61QvS(9iB1J(+>If z+0f_eEoI@Batdz67}88hC+3SQ*fMggp4^-3Ol(UpKUzrsNnXjX)CDE=?bjCQ+9@Ng zmoEw#3wB%qjAVtRQ!7;1&n8g4a&Cf+kxe32S07bBJ>9N_xO}#8e;ovP7`W>pMgY5d zt~Yx8vvMTnQjYaXBRiqZ2uW5HfpQl~V#3K{vodpD4lV}dmd9H4DAy8NR-lBT`&0VmZ~@|(}@HMJ1T&hZK| zY59v$o;^tnS^b<$C#^quNpo$im_^layggmjyQ=AQ&=s)8v#_tL1x@|?xmAb&h_CvU&7H%D6E0tvULWJ$Z@s!c_v5alZ`-8Iw1 zqi;lC_m#+znx4bOYl4Us_6n5TWSVc-++{B3WYkjV=4iw@v;sji7aIV-V>)ny#|6TV zx?3jX%X)E}VB=IL`qemfC5A~I#GnH)2^`3rnwJJibJ%OrPyiC;ztziCj z+7--QDgUli;_vJSsJkKes1E5`d5@ciCkoJTU!qOg&T|T|4~TQKd!dg~?SuE?fofnTUc#T%bhCAz|9{wtya1z>CTs zS1(#p7HkCx= zCO$_604T!1v5Wi)`3*iaCE)*3!&LY{jRF3Zi)Ctgw;i!=F_8GaEH(GZM8^yGu}$)o zj7GuIDZBA0A%8s%Nfkpz7YUz(rS20(Xo9jR@3Tm1`?-A9TYjCpn{7nI84BVYeA~oNspS@$HF^mPy7SA1_#`jm=Py7N- zbneTeWMQFI;fGR&Nda{AW~zz8gUG(p_a6h=!?W|X-1Hpv2*MyMNynrJ9$xO)jc^b3 zPOu5y(yG^I6GpPs-zYdCxzXL%7jq-3i(tqu({rc8o9$IXUuSWJi_20qW0IVfhhsrW zw55q=?m#r@J;ka*4VlGHRsx-#$*sqFHeQT7}%6&JFzNp~h!3^4Yt!XUt@6*kSj8 zr_X$Ld?@*-CRu5)?H%P%Xy6dm&H6x>iD`d!by( znhj(rA|dsln?nO=onk{{HVgUUsuxZa2n`J6m}B`O4{h`Gf2<$5Jt9SP;K))!ck=<_ zWHvjY0VQ_Ovt6W=c)TGesj%%8rlY;x|E@fHrr0VTxiJhcjeX4U&bh{9{O{!TZ^Z?W z3%o(Ol4fO!)Nlk@)dQ6iI_#LC_H-_TRQ4uI{83ecZHo>{4;Lbvrm$RfFAmqxd~Z-G zxx&jX%$EOAU5clkS$0hD~>}7-IsVL)${873Bc=BBK>)I zr15VSKH=?EuAcks;>80gNDB78^5|Bh9sFd|J@xjQGhtWDXDw~5YMWCet^5vq7D+?w z&crDD4S(3?KiaM~4qbM4Ao8XJNHVKtuTq0yFAi{Yng6u+*Y9VRxT7}Jz}>gcvP&#$ zdHbnp+Qt@MpQLst;KOQ<7CqO{J9Vnc4--CbOt{B@&Uo;q;HK-dq_kgxnr7YQX_1me|spPv-BLqnqs!xPIHyf~9woZqN3Dolap>oSqb7jA|k2 z7B2!8J{9}%7XQY(6K{kEg!HGf)D?uLd(58DO0~FqYL#<^Cg1(TlT_0paBWWJ{jPJG`k~pwSd-fOWCzmVbJvvyUy%s!tw{L;K7($KQWp zaJ!?{N%)wd_b2h!we$Df0L<|Sr`AYiA;9$keY9QrDENi6x>)-06%;$Wc_t4*HtDaZ zkx7>@j|8(XTWuScwJPxUC7{P!~<6_$!28kt z`s|FWWk0+U$jjEcqqZz@UF*{Mi+aI z$C!=DRC>2JV#}lz(!sVB#(mSn<+=l9ZF}nwi|%aWe)PBosfZa7lUgSM_CzL$zpVX+ zD^yOpxV-#UcGu+|^!WLoRga%9;n8_+#EHUF*|C8~n2&3c<0LmZh!<*E6y;;tj}xd) zG3Rxk(Cuc}zvZI8{Ueuk4x1{`AgA};JTa}QCXmQd!BQzisa_~>-|QL z{VA)Ae#$g7I_-(>HjbpA31_hyET|#czCU&>yf>2Rm6l9jdZKLKNbhL0hgr2Nb+a~_ zcs+oW>n+*t@1~?=t9^~*jUa#R`3KukX=QpRXnt$4r+l1|oW|*+)QN2`qWY!0S$@0r zf8gqGqWM=e`RLN)CtJ9z?!VY&cVT$|c6`+-ps|_fLlnJf11a93yD7-&^y8uQZ2+P; z(oieq!9!^=5zc?M_T9oI`@m+MZipM`iyKLNKydyrNbY7}{0%x`r(tO7)qg(i{9yja z*5uhuOqT`vn!0i_k{Um5LfWilLI^0 zr(D)uiCfFIFuUM_jtO^NI^yPcKETa0(KX-2&&_au5g@?j(qi%)P=4oaSUOZyI^%X~ zht^-E@RyJON0yr7jL!PBm$!JPNYMnox_!ZY#mX^3?G@9BhU|zhEOQnrxo<;1zWD8Xl9&eQgf=s=^{lPb~CjIhv}_F3@s=9zY`0##3M@AW9Y zJrhm^|NlU!5s*uPI5+?td8sFw|MAkWw-TVD5}A{i_pU2`w~@YB^kQgrO# zDg~xdwx9rQK-{3+Mq_CIo)M+U1%(l- z2Ebnt@PKF2U%2NuR<|`ZFrDeh{Pe@r#hMy3O-Zf$eQj-R{fNAkrO)?PyuVnUKjqIv zL-_FnFp9mW7GzI(u`|WNGYZ_;urL3%S65dDPj~x$;r{uJXnQ;x8=Lu_zCKDedQgP} z6YPRrgaH9v3)hszGGu;;iQ->uPXJ!*JAWHlGiqp7;(*UCD576|r=;Szs14%tv)4Zp z>3@7fo+mms_AbLo=%24U{*ScxmoNVF_W%`_t!I249Uc8}nmp7l2zLrOnZU+Iu?Ag+ zlZl0Lo}SvYiy{R;NR2H;pp|lBMy6RGU3UDkeEvM+UpCKDfGvrs!9~$3|DS-Lv&WFn zOd}NQaKY&pfL3`CRUB~)-UUH6{42bA*A;asWm~>0V+Ccq^QX z`B0gQ9VwL@fD#I0@>YI!@e|c0hj>y1V>0RgJ3|G}dE$3@0!wPMRY#bOhy^t(gOpNRMi)R{~O z#8|zI6i-_qasK~y*Z<`oaw@+x7;hzRFWaK%zkK%J?dUeP3qK<@m6IVN>%!w}qBrme zhS)G{{RbC24JrdBHa1yx4UG=-EVSmU%Yuym!leC0JO1@%nUeptD++QcM~JQ>-T_%993|NjV}zJ^@eO+*>+%;dbL|uAqynwkx4-#!8 z-q81in1N|^l}y2VUxxwj9!E4+S9NfrjbDZz`hAV$$dV{G2AS#Jk?@oC|s*?k^?gm{Fiya z!1?QP^77@CDvxkcz>ezZ*bm^+)0FCUDWT6cah(U%EQx)*u^L!K(AEO$G9NKP9*1v% zmHSWivc31`4X*6TFg?H}OKhjc8a+Q3B9`&Qc{A zu~?;hyxWA=IA!$fm#HN_(7z+9EM2B2V5iU?vN~KTD+Ht85Bh**hu#E$rAMjnV~;n! zk``$MJ}I8jB$+MVYWf8lX^4%bwRS9|s(-~l!1P*(PCDCovF>f;KkrD>#5WHJ&r0A=U z-?!m6IsFb@?kT1ceOkKqno!@o=V*4fe@Q&oJ7F|>ffrlWIZyqwS4{P|>_Z0I8s9cu zX;ZJ?L|0`e?Ftw@R)xp#_dLU8!r|dz7G)>zq$EImM5oTAmDyN9=n!ON93XO1c>*RciOZFbP zmxfk!EAZY}ea1zm;Sk6-USnh5VgwIZFu5-yVXTom{QNbg`8TJ)<>MuD;$qR#2j_XJ=p@Th% z1NxA+e#8de-+&ehPlKPxM4T$$Hvh4_@W7>`6lSvT5Y0)Cf2~3$tcLBK*!qPMdZPd|XCj zLi>_~RbvvlQ$tg@3Sa8gX$R{FRBpUWD3X#C)dEsIjW>@Mq9qFoWIZ9xUG^TvHcKn@;iZHsEPYKcx0(o&KKcjgt ztp<=-@>cBOthj@`8`QW=ZmaI>CFO0kDm*oozKJU>;N~5O{X;~%wt@FcmbkA1kwz0L zANe~@Z@%A8Z@WZ!L)icHsn4n7RK**z$oF=+A8PwAOMwhhUsLwHG9bnPM3NDhJ!Q3W z4Rw}|8I1LIV>Q@Yx!fHl=+rXKt>5csDC&aW5c zXr(r=_skHes}9lBF_^%o4Z!SJ9hQ)OOyhgZj<+(4=@?z*lRkS&RlHM!Mi<<`w4F)BJ;9HP(W}lP%^X4GBm5-Q^OTY;!Q2PQJ_~w< z+C{9h^&XE}NUp}6E_*%!0y`;s<6qumRx?1piPgo#8ung_bC)pq(O4-%SF;`GDa)O- zu5!Q03U>kN6!Sf9yti>oG}mW+dbbsb5iaWD#FJ;vM8_gH0+C_fl3tT$sy(i%5~j@y z`m#%CSgoYR@`i90)T@dxwZB;DTfp(vP1v;E@$3O_S_ zMvBu%enA6*l6D6(Z!7Qc2#{YwZO@`5D+Z=)AD+AnMe$AP7j>K@TbXa{Sw4Q}W?78z(14~O>Bb|t6`|Z9XVC*~mAR z2`^0|Lazr?pQ(RDF3CZ@ffzvOlvug;WW7p zig9mgUDqnr<0h9leqF3vQ`*h3w7A@zQf=p8p-XnFX+J}#yY1xYCQTHBg=}UqV{k6; zD(9B!Y6~l6I?+uTb@hP(+_U1Q7loP-Tn}1vWW2map3I5<*JKEbkpSuG5HVwzuot{3 zQtwfV(X2>Tf<0E-S(cKijdqBJWOgjc{@we=UZF?dx-9FFm!U3OLY5YM_5=)h%sU|+# zWKTLC#-UD_p_YikE-*`?`^;}qRge+t@nACFxHSK#8-;zIN@{xp)uz1XY#k5`YoA8^m zRaeBR8O!{ggu69$-l0E=?sgeVfwe!*z3xrmP%P5o&dC*S*_^EFBkHsxdc`ey!rR;I zk81M?*QDUWf_D=wK|%JV)FuVz>J5PLALxA^T#tP<>dOi)i=KPbL)W8yLXGNNs%Q3E zAMVZBhc|dC%^p46#-}VUn%E|v!8jE>XNC~(?=AC0V?x9o(d<^zw8>XeuofbwH-R&` zShvr-gd}#v9_6E4HdrQ`5xWN!*Ld(4U0fR_ZUt;))%pjt6^q@z)hVY5w!8+w z|HwU%A{Y}wHu5aO=x#g8^GPd)A2?sK0Z!i45M!4fm*vb^tMQ?USk&_)JKN^y4-T0D675pXVa#AwRQI@ufL|pvOR4Pt|1E6URl*e;plHC&_ z+0VM+qQ<}On>x;&n^@=B@MVV7pxh$hIgct zuS7V6HK0S5t+&w_uT(O&Sk-62kpg|A9C0NsKf4*9sbmRkSC2QHj+JQ0MvBd=(J5^s zzPffN|0LVMMt@>^U)%jaKz%rYi&AdHFqg3KbND48PE2c)r-CtMnfwmb5J2Q4JDwXi zXr*r)**5+9=1+nZ`>nY{R!N&r0a~&3sA2;$t`=;@RnDc^gJG4y>-zB(A427Cw zUEOBs3RtetnGxj{Mi-Ad4k!2cubJHwJ}+`cPQTjpJ+Wu`W@oaNqFIVx9W zT23stxc5RcD@#i=Q$xi)G6(LBWR~Utx2P<0p`zeI1O#60=Y5~!J)ZybjSqZ->%7k2 zJd?KOEp#bd_x($tz-8Uh29>#!-2ClT3jn9iG+S?sZ!~tNk0>?Z8luS>Pn)xkl2SYw z=c2)9vVB2h$enve*p{+j`(7v4bT#f3u|1URB72?JOa5p3?CG`P(v>oE#Y&Y=?+ihP z>=dMG7s9tq;Z%K+heVO78e_neZ&k+XyMYS(T`Is>MdHe}gn$2`<5PC`t_${tT+Pd} zc3hvRkGfiv@kayJxe@$h(e$f^jYRa$eQocJ8`9k4WcKI%J6zTwC(t~7jOo`i3P{rm z;l`Z6U(XZ%EN0qY|7f<+VYx$F`F3l5AstP~_y87d;(e=40YAh?FKU)^k%sbl*pV}* zW;-6fzUq|noAjdM!g*5g!KarKbDhm4sX|DCR<)xJ7^tGrU&DjUTLUA__Rb1(i*vvy_ zsir#g?pY8!xGOW$Yd9_=1DQP#f0q)>7XhTUt$z{Xzn|WpZWh!5n`Y0m&jCw$mf^A% z#*lyh{F#y#gdC_g;2+W!D@)hPjoP$oC8F%0j;G);9!gW(MybAJyRuLpyUhYKQlZW2 zD!Rg*XNM5Z)TQq-Q$zPt^w_3+CzmBdhGPt5d+r_iVtLT#J@Q6*dAYg!IIQcHw`2!J zp_Nt5EX)N4nBDZ+@%ybr0`yvZB2}{!o_xHSuZvF~KEZJAWr@~Uo#jMuAK^dyMh>fl zY}$Rfha<_Phmwou$1WoYmSx$KQto}+OV{zqt7p5VBXO0YIu_@GE31mn2H)X2k-B)B zyr*R-;Jwy~_2<3>j27B8DR=(jc(uZ7Q*Oo<35Q84*lhg z;RJPr6^p@GfNTR4rYQfe>`z_B@Wa;Cwrs=rl}1BlpOw|?+k?>mR9N&4PY*LOww^e? zVdByf!zEPi{=4>slW8RbnF$WXY5~|16KPHSVWgz55`LM-8yQ$MEgie>`sD)$^mr=b zu-Nm7Rn;xvm`=NzD%1O@OIn^@P{trcnNV#$R{F7olbXP9uZnAG-4>a8E^nun*)6C$ z<*ri|eKVq8Wkjw}b}&zkhOKrG8>!sK(MVo(0oL21K*DnTPXIf|iAmGmIDiQzR89w( zHFZMNl6qVEu>5q&D((|^%f0md=8mWd$5Bx zK`y;0Xdv0943l`2yy!7$EN~Ixt~BF|ZMiS=v|LUc)0~+sK6C$Rklr`9I*+|fE-~Vh zm5P6noS>pf`q0IWUuROKhVAN~DA+gra_fDdezMB!6F$Z**TGZ``Opx3zaE4Hw%k+u z%1=H2Yo_JVe<8yX_Y~g(sYYqsR}Wsbxmq+mgjJpd#qln6l%mgYZ;Odk*?&WynHf#aCEyHU z*$s^sBnHadhd$I%|;PZ!D>CVh-mdfWs^z|#T`@glnyEUCSqeJ)1LG@2zYU39z(br z3uEmMoU>_-Z1lNRz@=G7%PslsRvruivj(5{CPN>W2VT=8?O3v;X`PA!>Xe^C*hjg^ zB&Y0Zbb*B~tG3tq5Ge`B#fC$p1XK;Ggub@@%8``cJ8x0o+d?v+(r-V@w z=^?*@PHtsey@_NFeB(Y+OOEYGWR^;;{9QW#Q2Xtj$cL0JI2FZgYQ_&77txm_g;)jv zwMmIg#k;UF)#DuQZfGb}H2&=o&XFk*wss)Tbl>-QSeObya`Qs>h+MA?fa8N}@@a>k zEur!4;9uj9qoYcC#m4}%tf%gJjPnDOm3ye;T9ju^W@TfaPxQvN_tfeFJjJ?$$1;4= zdJ*;)A=9may`s<(VDIb@ck>hdm!6GKCFnG*kwI2==vrF8r-bK|vcxq)XYPsRk%!-{PC8uDoOJC~ z!nGG=Bx#kDl>P~kZfH&y;@WrJnst?B(dVg@TwguJPoiEdiXay|h?C>S6mJbh4-&^3 z-Uj#%cep1Yg^o7D1u&AiqS=iSthp0)rkpAsoyzmNHf^c$9uWC<-8t26tTkhmE2h6)^ zzsFaQ&(7iN*dkiJIw?#>Hf4PeGe`y26w(r@?GL%ud%rS~r7VlQkq|XRg>9qvDQ_hV zV3M-$QLPLWo^6F*>5~1Q0?ss|tA0G7mfzz`9IbolNhQ>;wkeunqm%0E~tD z!Y);^Qr}^9&ym>~J9b1o*l9(=v9!%W{hK|sY0jvUv~nT5)?9KZ*tY8qk4Zz}yNowU zX9tGceHE1kQUI*Sdh~r048j7I8;I9*5APkJ#*$0W29m|RGLl~tuX8$m-c?=v3)tt% z3K?eE>L&3Fs?WfwFahu%oek7(@)9uBK-TdDc;nF~p|{uKt4rC)%eg4CP&-aSD=_Q9 zp~!f%coGlqFlV21E^5uiZIK@w`7}TOuJVXO2>n{2{6BkV1zHf4f3fAKGXY}V?>7!sWKDXeudV(U=WMdB<+7%1D9?5+1cq&zqTeVV zXKK+Yo>I#}S?iMrP6~V(R|=UirLPUZe46>L@*U4dXQK&c4_kPae2b*6&Uo(Rc_g=n zo6TufcgWhm)tYJcvAit2y0317cnU2fAPN$5$MV2ish5ik>ho59F=prgUE2eyPZ-Vs z5hQ3}A1@Jd%(YD0Z(Vb;HN!u0RdWJ21Sd!_IxZm96qJPba;V>JtGs?3U_489cW)oS zbi$@D8t-q^*E4=I7;$~aU%X49%e*bSAG7;geOLW;{ZAojj*qqlfa=n^wUq?L?^;RbYB6KkVS}l9-B5K# z)I5|1Xz&x%s)1P?fLrVMFBKrfW0ZW^RWaq;Wx#0pc+-m`RJ6Tk{3Dw&EOg|zWNed`U zw0?yq4B5u{#nHDB#1p;b!wSteY zb9bp-k7z28Gr5i6OT>mS5ew~<*qSb?s;O*3+@WQY0VG`f{hESbZ%DomngAHm;Uo?b z&wF&#uvGrsu+O)gf?SPx9UjAP#AKC%5bi^c5e$0f0_=SnkME#6Fy;!sL=6I~w!kN( zu_jiz)M+$KDB!40_d}y%w3Okr`7i!xo=ph~DsUe-ugOmzswjkqk>M+$Byd-Q3iHUN ztKIi|1yzKrI1TA`AqK4K?^gAtLn@p0>cX_f`s!~{qPFGWsUi!0)BPg!0@^+VlH)-R z;FYP3j{OyQqPOmXI~a$F{K1AJ{ZgaW-Iq>;IZ~&)eD3;w_GN|yMAAEY7*Sf-h)cOX zW5T8x^MFbHzaC}TZm))*vk}zer$E*5JQ=s@)gzgbwZOIuqph9XJlx|T4!}Z6ZtAkA zjppOV#~b=PZ>0V(`e0|LK2Y(ZkYsMWyl=s9DPp!*HE{D$)q;VL{yO^@nvT%+f*gHG zgG=W_C?UBBQ^Lg}H{VaOxuYX|zuSpbIA>%eVvqG=d$2d`o!k7=Om0#xwO4_BiRvW+ zC#Qr=*P54s_U6Z_O)uj3=rmuur@8E&=F7F#d=DvUOtsV`W^+bwXO5y}<{sX8JRl~o z-iDiIyBr3cFqDBr&@;pBv83>aWsFd96@S7F#`M22SflJj;inQ9>*V!x&IwEO04_03 zxw9PzP)2yr{M_|^Q@`K$@om}t{;3}QU{n#Yn-P|CHaDj7Pmnz2$E#$qw^#++zFXW^ z&t{|7M8nWn!{Yb#B~c$M1hJbOAr9C$msUeQ7p9o!t1AfbBXc=8n%ppW=o!V(;rZ!g z-o#t)h}wWGlBt7dE`}Z*-0>f&qIVDVoo#k#Ft~D|c!`xn%&bJ~-m4(6lI&`m$4zFr zH1wh$eD{@o$nR^Rdj>*#%;75*{jN_P6e-#K%I}ZmqJQk0C~5&EE=0P&zv)qW57|^@ z=;zY0F-qFK-4XTIk4*$q%t&Jvx?JLe>L- z*$AZhRDG0sws`&HE}pYU-zYR(uy5{~2`(+8oIK*(``&F#T$?Nyu`;3FK`K3HM8k4w zbl5xFk65hjruJXuv$If}qhZ)!+ys8;Ai^Tar(M0PCE$r+TE z#RrSbN4#G(XI&KWY0~BXfH_0(o$nf5+gX=PB>BqJuMcKai~8q9@BY4AKkmE|mjFhW z#~r;I#6M$^eQON=WG7F zX9bD0@Z^f{rizv_D|G><o&O#1Y!D3bCCbpqn;q=fBgR)xV-@UUw~k3`%ZDaQHX18$4SY}c=d3{SoLLUnq#-7Vf^F9S0*ag za-DBZ5)9t!BwPyw$etv4=pCoEq?MVbCrHNHHiR503tq?eS=WTR=c0oUmX9CQKJKiJ zXNLPv-gpEvAI|412gyDG?C)2w9Q<2b6*n6_;g`l5@SolV79Q0J?tgc)cT};cCo*;{ zC;DfA-faVv4i?5$Mb8fT5v)Fk!i>s z^;LrS7&KU~Ydg{rP5OsMcaYt|g%ZJrWL7J*bC02&Hygn+dxU)A__6p`R0qGEkq$B6 zX}j_|tMPLqU!kUK4psd4@0at1|C^@$W)i&5h=)d@9uac{Ny{L zEx!HbMe$8YUg(>n=cD=f!qf61Vmbx-C%dF2h7C@B z2!z;3S?=d;Zz%&o8?5IJ=kI;|?pYVx73uPIa5)x9IPJ7Thfn$pe2UV`S{KNLdDRtC z&~+KXHzA{zy7a$WHq#MXdBDtp@H8`=1Afo*y~RefrSoKknRvNf(T3*F{fYL4)FEQ4 zbUlun%lh=xNMZA6F3bw4Q*mzqSeo3xZHm!h{MMOvZ|Xw)YFm3&7NiKQ-$tlhMl23K za08El&a&0en{O=~rSEdoF=9F}QIhI*dwbxo4~yChxRC)|eIstOO+$G+B)aGDo_5zZ z!=?>zmSsv{yF$EGY&eY`)(k1?_bF=dQURt~X8zCB~$i7tsn;{(fninp1esK%pbvwxbqWp?0~x|I=L-=fTUhJ$-CS zzN+lfpqvuCKhp^6i*V0-&S|iwBPbF2b#?WoBAEk=3qt%5$-StBA`87tNi(AzGrLy= zm!#kbRCuKF-nT0!(~DBH?#wiUNIMF(Pm%Z{2t?(kg?K!5L@EGzUa3}Oh#;lH zHs26ud|AfvI6Z|wC#xxqpSyU8&_(2Ok>HuU=p{o;LnU7e$MsdQ#jWJHM1|&$o{3bl zwr?uegEAGt*%|PNSZP#W7Z8*d^WmQ_nx4+_-i@`$elDxzp+Drd4Utp2y@6{JaVr=x z{hDnid(c)T2@h=+Ol=EUouZxhhCxJP#J97nbn@f$?)tW&PRfEf9yeQJLmxO8!$nm> z7$54I+D=tj;MzhKdPwY{CYgMp4!2jwR6vnj-gS-0c~yRW_HYw0YC>2qZt=VZr;iAn zUgSE(CK@jK!`BF9nNL(jov6?I%iO-YjSkN$3dF>c%Z=CWp5+LSC7fe~{VGWK;~8&p z8i!EPej6k)${#}0+xWK3t|$qENfb_}sOFomH%>3WOnZJDO_RbTsGomWN;-9)-qnzk zZ|JwX!f3C@E8gt7$x-M!U>0mv`NLJm=Rv$)NCWyOApa?&#f{o zNVjcx{9xM+xv(E}oQM8-@$0)^EtM%kl$Z-c?1)}@bvp@N3Y@*$-ekw4XQ4}f{lfKl z*x+x_X;OeyrI~fYUV+rJ{*$3`5eC==jQnDtD;Wj6OhBENM^pbJ~sSea^~1?o)n$uv9immw6nli zkmO^>FeJcb_9eUN@$)iFPxEC<`39YxRWo7=ol%JaO5bXaP>OH3ADqw5c)!OoE$ zEzLL%B$O`3rJ3G@Ibz<(ZeEDr+?RSVt|>Rdv?&C4)A_}!Z#Q)x;vEu%n_#(8Fx*Yn zp+g06Czx;q)*COcj%N#ql@5>>W#^z~KUTyb5hTh#oXO`66D{h52;dHL3x#2OX4Uyg z_%rTBk2ANId-v&ojAJeF-aPR1C2U#0xIqUKZ zLmu(26;v6os@93%)OT_NIk>*zB(@;=us*rb#q zb!3E@N4Dm1X8rq;Nej0>zc-4>5_xsmOcYOz+Y<&u>K>Bg1D?_aU*9GSZgpfYM4^-`|9ZglATypHx^OJg`-*^dU4G5pnC=LcP>~{?aKa|u=ZMwjnq55!(2$fkV$*v)@!$~0M5G%{4D*w)Hd9Wg$^0H z$fQVBrOPIJUU9G;|D4HzrLg$4NSi-@SttT=(%x^La~7?~X$cpC^EImeEK{H$zqSb- z9sssMCH!lv^yCclghEb=9%7jJ&~`^+ukk7HQi8;|#ZE+LOc^P{I_<|wy*}7c=lPtA z=E7`D=)OS=k#yp&gZma1^?Cb0;#&G24lzF5N$OpB7oc|(Y6?mOZA2qF`Oh34qGZJ4 z0#XEi-80yTZv1Yw-o2PWZnwink%YN0-(>D&F0jq}jeXEO;wKyVRTI@6TCld*UhJ-Dyjec7gbNa&Dfk)=@gv%+ zOuqh=%g>Rx$h-SpQIs9MBP01Ow|V&gaA`7pZlg~ z>6Y&-c4ex#uaY5>KXMZMuYZ|qL94~gqOOxoffy@R59)#Hjv!Wm;Lb+apZ1v+Lbhq); za}6Kst}_Hu<^7nu zKlz({Y@0tsIqYN^@qijUl6Y-b?#K?V##F_wV;XOvPpeNmJrFnMF>2t=aw=)5hTsOY znIFbnYRVs$bZy(NLNX-CbecT*(ZbJdRE7}0zz$n&m{b!>U|3M1s=nIgAl7%9$7`76 zTC^Xk^-g@4pHjLq)%IbMThOE&F7-=za+d*HD$&J(=VRJ3OKzkyZc@`8kuUmPHM}#j z@p2j|q^ikZ_18XIXMV>r>4ajR1S7jjBhk9U&qt<3-mX*0W0K@5YyIb61y0y;&XzwY zX7t!~TNNj(`ayn~G55hOcD3j*=g8RSrxW@`(=jCxRcA?l`Qa&kW=6C2y&7Pupi&Qz)(a;Uy~~9^ko^r@1L0S||vlYJT%mdu)p@%W*uBjmoo*Df{ZA zW_i>CkpL~E1vMxor`@tolUvp;_}8#1YG|~-kwlx?+Lc=#rqpmrTLS7X_fM*UKE_*g zIQl&;Tu@`|Rc>u={2gR{;R(!An;JSpOlYLvq!5<4VkseEab{<`2GSPGkuo) zQmzxTiQX5!6SgG?__#$rzZnx7?tZ59%E-V-RKZinm|8BbJ4+~gYQf}|C8b|8$<&1I zs^)?s@QggcF(q1e~!Wd_$z*bkltLK{uS=Ewb&6+evPn zVeSS0MKxt2L^?Sq*KmK@xbZ`gM$tg8=bsR}mP2ELUQ1O^9>EhM6g-;-Zd5dXbuos} z(y3dKCNzM~wRniO_jyoL(6d+n`Y; z|28kIFFlZRH)YzzH(Q8_>`Cbk%)>rcQ}W5&XaMoFG8q0`n1-2HCn0qqGJ1Av^EggwA;}) zr^JTcSMplZfap1wwrVb6&e*pI-=h{kkQCaeYFrak>w=sA@M~GQEM6^oNwwRiWlrZu zNJ`nkmQ07}IHW=4cEpH^VO7^ANzJ>a$ibg%qxPd$_amRe>wzhJhmB?Sd-Ke4$ccF2 zkN^qq*4~wostS)%8+pd3AALIW5@mN2Lh;R@NnyV8APXALzD+%GMvRP4HA~V*=0IH!H8Zkt@SfmB#m%|R(` zAtayO;vGJEmm}(Br&LlYn|>BKx^@Qnt@QRby9AVJ9=Lpo+?KiOgtt3MnO!^RbLxStz}i%+Wy2xwfG@1J(4*lehmX}p>WwE9+p1_k8gTfKUQ-7F6y!D9M=8Ssa){ZDL=!OPeO-9ztQBmY!v@)b7l-dPz{m2 zpXBy3q`$9MFi?x9Gh?YSmx&cag1NG-Ul?y})vVBRb2cA8$&bo4S zyIwtw7Mr-y!C5~6;I=-}S7EB3pDUFMGQF#@L7`8xsmxl%(?U83Zd;^>RFr(1Lc-TY zO+%h`L8Y$Itb;(sF{tSt%AeS1-T1(~4EZe9BQv<%Wohxtd8;w+(hwqi+qS~?uP%dI z2JOQeS1py)+P*`2X0bEmpt2wH^VQD-a|8ShO>qozKtsC)rfsys%mLzcXg`F-JqRL? z+IMyctsJAnvO57<`bM$Hd~QqV_ca-hQ?s95d9%nXATf2^Q#EgbdozgJeC9clpM~6) zfF(s~&VcPJG+vLxCS${R)A0|adg;GitFPW@gjFT(N3GOics$*CRIj|^N?}he~jSj;xKMC|lZ%vN5P3e9v9z)tTwt8_906M+ zRm7_Kc5oUCCq?~tQkz!#%*8QL_05bSi{?JoP16K^OpHKvK>uauC2j_FfV;HXMSwqs z0TfWIdJVI?;z65Pzas60iMvuS@X`{1hizXoWJKP6J2Ku7;Jh*dMi|Id|Itz5mi4+( z)CemxS-mZQ-hqAIqz=NmR-E3SJu*|$Wu)-h){kNBE8p)uak(9%8!U--TMf%59bt`; z67QGZcPx9|R_fpLeyLG~mKUBv9JQx;d|>rXR2JGbEvZM50hJnfP)WzV#P&Nso7ORg zvhh8(YwmUrTdiR8D%;UDqn$otm@|z{*K4`fQ0A4>tN7}$w8GZ@3Eq0U^2UZwHQT%8H09Pg4|XkE>X-`5pOxqe zFv<68q0%I)1^-CK?0Z^z%5Kd@a3a3!M!^&O8;l`pPXCkD1RAgK1Rr~y+4BZQkuBjyMv*!GhA5w&kv8nE*+z{yO#*g0XAKnZPW1s29x+h#ykk{cX4 zIUfF2g%4DEqrSOHZCyCyrP-%3C?37$dqZZ@$83j7dOK*7bmN>1DIl*m_Hd(TbqyQ2 zo*e|qt_&gpkUCKQB|~a`rfC=W8Vn=aiRY$6*Mk6s8r6$X;d|Vjle7uDy@1X(T|?&% zn_K(fWwRRFYmdJ2#eHi#s;1Z>z5YxKc2;8gfyy=mHl`jPzf4VitVTNy?)VI{Pkr-9;ybTT zQF!kkFl5oLts>u+JcB5xs7uhUN1T-PGn74^(B8RY@pCuTGgZg_RkhivtHa0KLVo5u z8*+AHwqVXZGsK~pxw@v%?}o8FW>CFusp(PTYgUR5R$I30n%jE8{i0XGALTb-8_;D+ zv_ohO$ut+k%XC>z`Tr5(e?R?G&ZX|gzkXH{(nn0Xyq@$9sIn8`BJqrJlj;_u2F*}` ze84Z4Pk{CDw6#3Gnq&!O^PUe(oXZFbaj>lG`+01o&74Ymdj?!oboV*UBdyEP&n0?u zlZnq?zE^waW0|0XB-q2_+oL-t$Ffh%EU>8R1h;rXhztB+>;S;;NNeu-FYN7aw|4mw z+}e^$3?4%+{>HvbYWl`GlO~Godq%20mw!8spGK1HJ-H0L+8)y|aD%+rxI(+#d-9W( znq4;y{~OHsjc!_TEb|0WUfvXMO93ra8>Ew}JC&T8cJ2{j>bd6Xy<=wy(L|_0Gwnww zGm4-sPEHtGEsXu!|J@3-7Jn6&hchJbSF{w}4l+Lw&-dBWdcq(BW2V0frvbc`wY=U= z!VoMx+q0C-U4)v{kEPt4b^uF=Wa*!SZxYW)cYoQ|o2szBsIfmBzdq}tDfP++6tN;n ziLu9Wak}PPEiO(U2}xdTk*W4ETZqOq`Z!BmZoa=DSCpG+?J*`5K($cB?i}oSecy5| z1i7jTTHjwn0WWq-fMu3Ir>cJJAvaQYZ}(%l)-qXz43`^KEa_9dL7r7nI(ZgjrDhMf zg=F@I0C&69iSqg2{=oXYFl7kJS^oUOyuFEs;T>eMM5RYfhoheyuys_=U_7YMI(g&2 z=UI4yZ0@=0zHX%Q%-@w2L!X=o58eTf2bYs?J2+mB5i+dDqgsB~=3N^_+YH@vRCUH~ zE5fa-PXYo61=7@9?_4~ag&5ssqz{ zKK?=&>WW)u`L^wcn<$B+8Fu^iik+LEm;Go-iW*NH!>=LU=u@~_SmgYexIf~>gv{n+J!T|>^>d)`bjNU zu3^yJeGvA((^uv_$X(!kSg!ox8Glxcr>kw;sEdBK*`gY}sR|S`){>GMPRZl5tsYZM z9T+JFbj2vIgqA`GmjCrEw`GJ4jjfn-=N5C5GQt`fS`jMhT@9#S`%>Zzgw%>#s_=IOqs zHEzONy1Fqo3s%~G^eu(Zt@CtsTwkREZW)a66~*4q@n%FG2iE`97TqLGRJ!nNs#->Y z(jd4S7}KW6u!!e-FKC#2oQe9{=EQzs0R5f)ZTyVvBp|N4FE2N9YER6Arts(iHg2A2=1lfRe31b46;$`SH;F=W?r zAS~DC<34A){kTT?cg2_U?(Ui7lc!FV+>d8vru{+P*lfD_WsMSz zOTLGOFxvBop(yR&!2eL_3=Z$G%h*kW!<-yB%zL@(Hrtgm;)j71)&iW%s_ioh+xoHl z#fbHaCw-4cCsoA1Ll$kDJft!m0t>)ZDxxK-!~nOj9o6DF=Ef;4>DT;AD7ZZH zm#TrH%-7$12G3enlMZwg?&<8QH%D%4vwQO(Yvfv8{o{_I^sPlxzT7cx^T6GB<7-&h zSzpHR9Uw78*MtwT-5IU718Uc)y7+B+6(|4aSKZ~RDQZifhK}OV+ox(P6|pLBLiVrD zM=MnN2olecYPtn|u8oBO{d%-gGFP|=>QH>JNQ6yE`QbY0cw4!2@c{_Qx6GR$vG)&7 z6h&A#9guM%+CT+4lUd?~mHfF|+fkUyLPMdf9x5J1CIQx+El{XD6x{)9P>x z{u5FUZPT4m%0?H;>tRF31e#uKayO$j3MD+F{9uqHcNxBDA**cx)w|2SIla`l_zygx z;PyzjG22Pqkmps3CgabyY^$&6$oFi%t-u(Pdt3EWN|5JMDcMA1A*4|bHV&jixmY?Aw{&gV4wLXVydJEF5kWl~sP89@v%Zwx5K|G6Z(1_ZP2i z4b#nvz393}qf|`52$QUVjr#+OXb8xK`#sJoI!k~5xzs;E;8{roB3M^Ooe56^69CUY zh}(s&*)*X(|7n8{o}G7-(y^(tKaD@&Hu&@)+_>~;-cAX6Tu^t0V0{Kn44-+xxU>Xm z7cpy^`=S(}S0wv~5}k|Dq@0fZkIdR>VgI=$<(;>4_=hUX4oQ00!2T=_J4kDtP=#sA zT3U)};$EGX9oX!ZaOPPRyxB#RQmr_8BGCZnw99RFmgwhHFqx{tMMYy7dV zFNLcvfLnW9hL0;)mLYG>&~&vyJ~)Y@bd4|bUq!{D{K_nr&giqN7>kk6XaR?A;QaO z`vUxtsJ|uXLzDT!%E{hAUp-6?k{@@uTnS8ciz0d0zJ6Eoi}@0%3vW^?5VXYQ9j&cY zo>9rVy*iVtTTEQcoRX4L{WR>BsA7}TxE!Bl%oO-^kj2O<9V8`15vVOO+v&ujs-MY% zs1K6Xdf|$CO6O0mKLoO}6BCiem zd%k7v%iuK=DC%7-4(ai|Z;rzh7RTWSHI zpA4RNlhJJUzz^~zgLvmU64efJHi^KQ`_@&C@;ppH7J7kK$vmFP5R66<4jC58PEhXp z2$%yhMHKqE6GZIdjFO{{paNnxK`gc8hC?4r6NpaRZzO81&&N|bD@TYPht&iAQth_;o&ig9LQU3olx24~NbgE()Y$;jRDFGSC4|3wA=|1R1 z#@ojJL^nl>lTurhJOJXf7d`;1pZp^XU47%7=Vl40wGv?3w#KxZ0vm3Zy8C`2Aa^jK zOM2S&Zc0-CMxR{7ZhywXimIpZ276H58qhO?nR0YC@A;CLx_i~2T_@3&0>1@$T>tpK zC+1t?lj}lLk8vjG3tlqM`Q((mQ?&Rq!_n)5dCSqLefp+4M1fuljv^^h=~mR^ z4)|qzY)hNK0vF`bb()i?4llI+=Q44y`6W^x#`~i>qpjSXb0`#4 z6IEO&m<*8A8tlAmCgj_KLhG+4h*@3lR@r7(_?>7XO`7ifPIR3zjp^5}` zmbx#@FqJ&*9k&!di}7kJOZ`uj;*Qw`45%11iaLTLnL3>kIzxTp?2NKg|OWZzA)erox z7Z+VRn8~-hQh{l8&vwfsPP@$#kw7P&XL&ZcF4vj-hWvSiQAvG|CQ zV`RuD@J$U8VOs5-qim3YEDWJ)(7C@Vrac|u(Eew!G(@KAhxJUfpWiJ4CVPNeN)kFIgijO*4%DwTZ{oH4+lv@VJb-q1S`d9gGMQMkxUp5 z8kQ-vBoqMMdD_9~Hu5YfteHrNle+QVvZ3yw<8NI&*mptIqH?|?mr`48T$V&tzMktU zvd|Fe?Q#4Xx2_;5(x;5}g{b(wK|Qj9*-rFoL1t89$~ z^U)%fk&a<$@FBa(XSX8!Hb9|vNvk1g))zdc3nQM%ROL60KDj&|sE=c@(r2*5drF;Q z-PPC=a^I*1wut|?(a>xC45|Bhjp0Qn*a6SSKai8l_@JD6m$VOA-sG~UGMCOuK7GnP ziZJ(~DOUAeXVAdv!S2)RBTlnC$KlGcw}fW# z9ljCF)lgG$i026)!?#*aHI8O0g>rD`S(eREaN}7DBkp{L+Dtz#dx1}X2MsY`h>_aj zi59_~vx`@Y008^XwGL5CrG}D1N3=sa(Je-ME-GR(U44H{N4*9(o`H?T1(wlsfy;T) zw!IqLmDJw6-kCo0wed@}l-7BoY;0HP+bOd)){fl_ofBi4S!@JYj-s44Y z5Z(CJI4|U2a$#G(e-M69&3O_~=No2;F%NCj5D^L)RRtZYpD~7Bl9V1+pA}7GS@A?S zczonIqL=Urz9qf|-uElL5SE@I1KzV9uef4!6+Y{(au#IjEQ3-p;W}9n}+{$tf_J6{ZJzyprRuZ?4-~4+wY6E@y}BUVv!( z#psI&Lqpp=7xjBt+EKpxV|iNUvR9UMTIY$c!4|=7E*UNtdi(VBu7HO$rw4*L&`P&1 zk!-V`LCv0FlTEL=#g45y99@^fyHr0LoaS2hC_Y{&vhfyVmWho?JNiRbV!L#;aq1UB z8e<*2Q_x@BXStR0bf^F!P1K7XKdNftRD7DOk*yn6?I9~`Yb!aaG<&HrN>fN`t-OUO zA%TTY99~FZdJE*DaCw9C(pbGVv~V?MfSxnxBiQUi*EEGWWAkp&Ypb1;wH_yf&}vJD zpqK5Io=;NNGl61P8DiI9g>lY=X!TKZuBBzueZWziA#!XSS zB49&6Iu<~>0)liDRHP~>y-Kg4_bN*fL3$5Odhfj#siC(30RmD2gq}bMknn%m=iGbt zT5IqBUd!|4ez>3HM`Fl3=a^$WbCl!-nxt~p>Y-%TitCVRcEyp- z%-!6hcd4R{2syZ1A{6Vx3*C3;hU0{zdYZHPu#(oZe0665>yL?th`~Ji4Z1|vlDSL1 zC4sha%gRK^UKA8kKTy~57!uPLUJ;hhO+5LK;_yA3Y{y|aMTTp;|A0Zx2ZN2AlQx(zSCPbVcD9`A;&t>_{#2qOp`wZ$!ulPy zl3itr*}b92Z~IMo(P<^_oPsB>*y^`s5U7%;OrnvCkxbwkFB@CJFQ*zV9NelUu&&en z0`I1iMYgxDijqdj>6CrRqcaCyO4`rH;J+w@Zz_6t@fB`{bvcHlaQaU~ks zIt5*1_yZ57{S|YauNGBL#6varL8HDvn=L6cZJ&m9SB<}zO|n*05}#Pp>t3czf~p=H-*zy{M=NV)G5 z&uY^puENMFtGHQbct<(F0XBBqyq;XcjvzhBW;9LNRjrw$xL(#gtwEn%k`;mWxG{lkT<)Z4y9!}r@|+^d%pMh9oDvXt)~QstxGE}B z5n?gY$C{Jkm7X-VLIx}8?yV(>vUbHftSqBdmG^5N?WfcQ0o$1hvp-H%TUa}rlE&jt z*JQiwlR}op=03K;vnOKgR??0SP6Jx#gyjY$kOJVgPMX|{*&s3>sHwWkXO?|vK~Nlu zBVvm?*F8VpK#%WD95vIubkeKP6q%nWxO00Un+kjj_mi2Ubc4tTc zL3Xf95<}@3Ua<9f3n`x>%gX^T{n1K-pSPPB$87AhIP5~x(d^XXLeE8@z~G5nEBy1#@L(ALXu zF}}MH&YDvd+1J42wW(h@81*%)xz1;d40T+$SCnTr+9^(L%($^=)pXT%%_$Q#xXf{1ZtBsvaz*lLwz#}cmUy2HV| z$OF+wGZ?VxV`!RwQ($fj`!SH2oNuv*FO3YP-~ke~?SWPNJQVe_)r0r}<>0vsHEQ%C zdZA@%NCt(giF@iKBJv?|LKrQD6_7W#ZnciU$>!Jh1;$%5&e_gcqbiWggI0%b-YrY7 z(=sT>DxYr-8TnQqebGTV%je?@f`&dj7OndLxsAE@+<4HF@D}9u$#WM|l>XaBTiTNo zrtB41NfuHwN3_B4%<^Y=4IJAl+3yX9Au)j!!{!LP^2wz_pz^6#yn@n7g?h_>Liw)g z%bWCsd2YW&tWes_etFGl3>)NH_nt}dtQ%Pka&8p8f?sU+{9La7(ozIMqKg4XtB^kfV3ppNk8xl+K#n8YG}Dp1B9E-l{V#(Bi@1Cw9*8 zY;Z*lTegDtd70>z!cXR{O{xO&&8FX7fre|b^$+VF*xZ9g( zl4oJ*T~AW)@Kx}-^`$k`UF}BHLbqldv<0GG7>&^Ldb05WNRsHclDm>WXSDtpU1gqK zXr(wDt_n1^tI&WxDhVa}Ro={aDG$pCyUkV*OoSJi7Swn54nGw)$!Ew>%(Gg}X7Zt5 z8ZzJEDq%jee52NVt$W&LJa8-wd_ij<8V+=yvFjHX_VX)VJI^~Eb_Lt27f5T#0+Jl0 z4irXuai)tNM?j_hOJnTm?${6>+e{;&;)6ZF_$kQYBixx<+>*DQDHfVX#T3RyJB>$N8HYC>=NDb_GMHx~FZVdEqc)Lhd3AbyYP$jH0)G8G zAnS=}=eHX4%>k{+(za*i^OdxF-TF&gd%2K_Kobu~o``hK`!fvQ(Q5%5+?NJiLTGVO z-m*E@PguczM&ur2Y0BI)DpJA}Vzfo(f_-5U*mfdCg(J^$u_+7*?18g1g;W0YWEcK0 z&?xpTv}}lcO7-iS;@)MdDW{!%olJq9W5BMym13NHk2VpGDT=$ z^@Hy(K+zj}Z_1t%3irLca10U4Wk4S`2pZK$SmTDo%%K>C3U8%j&#y(Tb|F}?F{+17 zNwG#@!ZTii(J0@pX@C1uYNUIbe*!K2=D|~?uDx{$rm7de!FKB5^uacpb#A$JBSkNU zy30-ariSE-j!Y^g(x-QcF+?TI1Irck>+EW(N8iVt*gB(&lyCFd0L*E$peGP(j; zS%q!K8qF|TNQ_+vaw@IC8Xvj zIMg(<`W37i=qG|2Vc()pcG^5oWYnNyb{QdaDyMpV;MQ)oqWbLvMMI z7cEt;m8Esta>TNJqw53to?5sn@;~O)tABURV!q!e5Q+JMFSg^jcN>lO6ef;30QW%5 z?sRKDV|v`HpK98de6Z8P>gV*mMMaBm(qV0Th_(bW+TU?3x_n-E@;zAtsp7~Pl-Wb9 z#Cco%8&lxNCrgLg9faBWA@yDk{7lw#lmeR-_JMJ9wf9BBeweSmZ| z;DUpMbYQC6waAN};+aq!6zb? zbW@yLoC#KGIo?UH(G)VCr_yKY4>iD+@vFgX@-?#K>8DG}Pc6%bt=y4;pZMI{JivGL zDh7vyG~usKo7!hD_2|C9C7KGqcia(9@-ip)y@2D3%4!^fsjdtkQ?4-c54;3V`&9L7 zRT0?cBX zNbWw!2!hCiVRt&N?)5FSaH>T2ID+@MN$2}>ca(QifAy8qvG_8)=ZC}vg{XUV5P&~{ zT?pC)=z5fGbV08mO~#1KlH_YCg&TyT=$AIQM|KPBjchZt#S5s zrb?Yj+;ec=jONQv`ztGbkOoM_89=|{f$vmb&O#6+l2w>kw>rS?hm}r`3xunK{MI1A z91iXsb{$cc4pY0c(pao(JXtt>__FWwH#(cKwZ+6&Aj6LvpoaC&?NdMEC-d6cXm8LL zulcMOJc7tjgwxB9^ieB?e^}_x#=)(roChB5CG^VX zKReLMe_z0H9qt=9>%Jq+`o*z;tG~ap#E&qZ(YrNsdQ+QmRLt#NKduQ>J9Dg*AUJ1w znT&cjjdaYQ2EtqSD0@XskS437cJqU~RnJKsBne$pH&T<6AZK=$MS+!kz+k%YwUJpk z&U3w!x+j0a%D6I5;X5Unz?}gSSx05Jg^R>JO|EmRj1Tf0lrC>Z7v$6n3)(i~Ex}ux z8%PjUk#YJ(w3dM13s9|P=}+x>(=EHxN-2&XLXHJXN34RRDX=084|{? z%hjEbLLGL%WX?HnVHeWy{)%p>n(g`&UIRN?$#W|&$xthHSWZ!^@+W*3Aj_CboES|G z8oEYyJcQh%fJhJ(@ns5)oV(gUYuSs}hP5gw6b#(?f>V^Kb?u5R{FfER^1tyezR-8W z3#$~mJ*Kg4E;y+1XH?a4=T;e+wBN2@qJr@$>ROe%M)?JIwbFNQtwm%-8IP9cV%L1J1`VGXC8m{SxG_{`!U7&lssfJ&F z`~yxm7n(1vDjv4^@=+HTl{yPjdPTh#fB{7w(G>yJJlT?xCH7CwMR9AOG~*;VOTY7( zH0A)HP6?qE@2ae<7{Dt{3_UCQZ5Y>%vNkm#PYZi@6~aAw_{a->Lw0hfRihbB3swv8 zfZKg*JnBOVzV%ZZc2*yC{&C>Ab!=5q*&?27*n12PL5Yu6KRBkjZQ*|M(@xQiuhdr` z?DygA>IeC>m^TNM#cO2_33aa!vuD>*vLEUSt>dT^uVip*ZZy62CX5TXCicd*d2eQ+ z?KM!nfe3G|cybtLP|%03Re4oTxX;z3d*Hz`oBNY%pICFBB)&OalB5T-cRwlMFp+0P z*e`&9%1o$k9i3K{mpw4vjg1$SyR;>F#3Hn&#y^!>FIsR!xV16mcfev*o!~b|Pb1`6 z`6ZP1R#k$FeW@2jDP-;K}B+_&3&9BXYd} z8%w#j;CGU`$`=QQe6!*SiWi)^i<+_=vRWMrm|IZpw$!_^!+%h(x{>48Ma+f>)lA}a zQ7%q!dg55o@Kp20!819oY2`W8OQfy02E;r{hM}bDx`6By1DeU16?(b8<*Yx&C{Td! zdSUyMwt3(#73J(1GUr<)yE}No)a$ISZwQ7pu@hDf{Elnw0=xKj)DWe2 zE*`m4m%zFur*nqYQM91qq{3}ohc>4242qXDXm?v=2LRm~rc8XN#(Xquo|_u$9k&Nu z>}JbsvcSFZ$noW2?A403OD^PJc?wn1W%lCLwrrI|vuSiFELvyJ^nB(dmpvTCETqaB zZVOFEd+0({x82i97*4kXQ@@ygC{ba-WM|Gl^*miXu?}CU-K*2oO~xKHi8nfP*7eW_ z5QD9I+dAD#?lY)vuS4SdVPO(ZC1ki`QS32n@$imAmszHnEHKNR8PMBDKl`9kDFgQX z1%{;-C|U^64P%ef?xrWS%yAQ#r{$WuHIBOf$I;tuZ zD+Y5?#x>Dy4sq#jO0_kTliLH}nkh%!3UR_Xl`MyfNh=~7SN9=$qnVF>f|rW9!+xj$ zeo;VM?=y+4>({s?jkv{?qjBtkj@!bv=(1JRf$R7hQ)eC*6+Kzj#RJT&d$1RJI_}WT zxtY$H=2f+@PGwaj@8_4-+(HmZs1H968b@*LAu1($y1p!*;r*_rEf>Vxjn@OXGjsdNT9#vLZ!{G&28_1o+3EtYLZlu@RP*BC2p)kkN@_MCyrvNV>E`v zR!QFW#qMZKkRDrIu#efi^U1*eXaQ)(fUSsZ?e>!mpSME7$6o|*URqmnwu{|59Vl^p zQ^MAC%IZ)(gf!E5#$-0=f)WxYpw&58Qf`^*6Y14V@0D@?kW(7tagSSa#<|G!c*1Wd z3lbaTv%2B^QAW;C2g!0w_fQj2QyrOwc~i;4(F7{DQjf*jJ~S&?Vd$`dIqY1#tRE=4 zMA|W+Ddejv&pcDNJ+EETa>-e<%&TSHX(k@t!c!S5RNg;wy@!7I%l(xHRfHZ4aVQO0Mu!zh6HsujMG7z#z&*w}CJ zMVV*RPGjskA(%iO-bu$Ph({8NjcUm5B)6mSG$j;Ww@?UyG*eEXe1A4pmD{aQ1v2OP z3V|Sz5v*e#&XP($|n(~D@7f+#PAB>4dJrwV5j#1B(Fb5h3Y#^Ls&|j3_mugc z;c3_O^W8kQrJ!g3NFO*&bn=fXtPqaT>IV&P+1n&;aiuKsW0ntRsU5?3t2})U$mfMh zc=oI_Ji)Vb4BGE1PL6TQF?`-5M4t3di*D5Ba29Ug>Ks7*V5nt7|xL9T3(XEQQ*ZB*f-YC&orSxv6b8GC3G3 zk^c?5-7Hh-jIvv)b+H*}YM$9Idu{zarapO6-DyUSl5-|D&-1W$Jhc(hM79IRdJdu% z5JTGsPv^vH93LD7|Dj(w%y0hwghr!4)SLj@Xh*vnRs34z^+WIHUBo7BVnF>t27GJY zP;fT^p&zN=g=Z9WV@+}1kg#msQe?d#I7;sC7F$!JP%wS0UaZF*)8DbUk&T^g_u{>u zU=1_nbLG;t1vyOQRp?JKXUU?d#&<<`+}~smCB1)BK&lZ&B-(@@tw5f@p2Tq{>f-gy=Xn78%sN8TuCHp8MWH`G|;)O9!Hy`H8A_giG$=vxvoeF z(ePP~OR_s=G}CloL-2}Nth;k!x}DORONz@O_LwbG%nigO+%6`o9yr#Z$7~`OS4}fv z7Vju4S(C~%rGG77U)cjb^J*0guI!LFX%!^*fFxrQuS&4ZgrGfCr!B~zsi!?7P!>Bj z=&9fL^n)%PLVH*LBP83ZrYNyvuPxC#4wnC>=*Wk6)nCtVQWeqL-G z3Y`q{nDa85YK`-7M$UvpK;lYD{U`a&aGZ2PwpVM3pveCGY!zKcRD!oGD%&BNq>%^o z@g}NZ%|11uZi?s>`M88TWn2i(tF_LZ^3xaOs_rvJb-D58$SsGHhz}Srp zBTRAsTVB%UgN0n}oY2P8cB!+Y^x23IxPO^X%eruW%L>pA@qvRXP7rgaU=_JDXtyKZ zi14g6k)e%UGkcQ>NIBVIyze0JZazhv^D7&mE`aMe-U=17`gGdzV|Q?G+W}HOS)^)7 zDg0;4HcY-4OdkyK&;xPmuDc$G3+cNML9`stK)s_Tg3=&G)phZwcY}P}A2H}POFG$? zrF7^)DNM(fXqSDJDQbc1`n{49wReMOam`>(Nrl%+CK$VHV({h`j@RaxloO>ap$p3xrt|NG-u4+i9TZ1I+B$6xl|j|NozD+^)eBi zI)B0eB<@;a(n^X%t>}m|n~47IF{%JwAkSAVA4Y7G@J!Mya^mYp=oZHsB8c{ONs!V{ zZjV%T?T8Uih^FRrc1$!!I(P05PhRDgV6{YJ`kAj*&W^mVcM3YSPT|)HcauwyGt?=t zPRk*u-&L7f=b6)5Cho;7*em(gwrm^DBtzwmkWP&!B`(A*=!9a4z~12?QhqlX{yaiz zn{3r!Q`K=|L$hR`uZ<^d-F(wx55^dRa?B^k)VRT5*7~8ECqI`GY91;S2yy(Z(|mj9 zB-1~IR-r*CPF|5{3}7C7u)V}dbK;b4ajQ0$a0uyR6}u;!FcY=-lS^7MRiIWp<$|l( zd?S7XIBxp-dsNBl6;5lM5h}L_N#;t*S(z=PNTh<)1i{3c0J~PjG!CF;%&Z;6H0;!N z68&b?YHN7Aq`M5dq>6xsaE*L5y)0Tfe{qCWzR!)9Rd28$)7p!kbYydpf>kke>eP!q z_^ZXJ2}JFOfbOmgC8ydAn}}}tpp~a%UtjBmJtn{Rg)N-fEwzzevTW06_xR(9GYwFP zb(=n1*y%EIq+MKNs`6DVxN^K z80or0xm%s+SGU4yH^^R}lCD!p2=I%y%v6uB4Cco5NLXamtZ=GP^?)*Es)rJCN{bI} z;mB|AU~$mepnWuocV=$lYtE1uRzqsiy?ZeRN{rPW1fGtEOUTUgfEQ7vZ3JIa>H;oy zEpRk_QG;*t^H1L}USVcN6gaZ4W(;`}MR-$dV=eWuIOxxn`XOXJMM4YE`j|~%*(qas z;B_W&4jwS?o{LfmsQNVL=wXU-lg`e#zWH1i{32dFUk4F_6myL|aDGFCsijhpqOf|2 z_L%5U|JZLu(Qm_$r}?-HE|%!5due-#q}~-IpN>>=lEBoXDq!bE&;3-|hc9;BnT8N6 z_BNFv$$OH9#HM_{W9+1K|xKG zxS0^4L>kA2JY4Y$-&sqdM%pL&(_9nZXa&P#xf8o}!4d{5=uHZO0kB}%bO|8Fa6f_H z)qiuUEGJ?3^ujP*2CV>m@5m^tpqKI4GXv0V^ZClM(>>@>F4$$*|6qCV6=P{aZM$M4 z#A|U4(GcrFJWd`j6QI>N-%75*EPmz3!!)R*H&f%Q&(}`W&J*HXUxqVnLV_WV3yU1cYpmX}k<5+Yw1fT-SR>$szz;Kx?Ng(944H^m zVImrj2u>pXB$T~=zD;4oy&B`DT|~K8q%qC-lS=WO zrtm4g458(&Ic(Mw==rC;4)?lfL)Zh1K|zakQ`Fx8{dBPOaH4(7VRsHH#Yc}&slFzk z^JGPQ+n!IC8fG+I<1yg~m@Is&doAC00cb{-bHNDN%yUt&;?{P^JqF zKkTlGIzS5bu%-H13{E7EZYA-kR9VKP@4J*IU%7n698#F-E39w`E2&QMUbRSvH$;D= zShIKLMd>!n<;P!jke>IdTTtsyyzz+OjA!nF{%M`eBxpXtDJ-&cY-L&6st33Vv3XB( z0g8QpR*&_UB{-gaqC&!mKnI>68MEiyo60LHw%joKTi1Ln%2@%8T+^4!=7$1*(k1!F z=H%T=6B@4k&;d}AZt_f&s4D|NFrK5K+vgt==nvjXX;)8KaL`*?1!u{}$^DGfy#2c! z{~ztu(jAhg{yU3@Vs1%eOxq=%@h*r12jW4bQ=30ZsfD$4WY0M5I%fM3*}r;-KmG3A zWnRAjhYR3O&wMT?`X=n%$8KTVBECM*!d0)t?R=2CNx5Q3l=Dkv8QH79Ai4Xm-jbGk z70|Hv@Tfnklnz*9|7Y9&pC|p#KV_!-QSk5ZvruBfynk8AoA+Fy0?@FZo}R}0|EdBn zbGRh|4GqmtNN?{=K*K(Ni}~aaS-}7NH2<&!WCsko@GC%qECCQN;0bBQ3)UoT*7tlw8lhWOXzq-CU*M(_VK?B^5}g@wAFO>8fy z@BQrDdIa`JS-{GIC^~*|-M-fQQAF=JihMo3R)+g)tMvP*b8f-EQP@QeQb;i=1seY1 zN3gSmCns}DutiE_9fl^8>Ep4qUS{o=7? z4o@Ty78brdoU^J8(fh>@c?ukD2~kmPFWMK%ziO$>6NFdNln-3valf`2hxYz};?iqn zW$LJ)`I<1*(vx4@nmn%X*jUzcye^s$6?I?4@0WdNKFQM{gf|c`FAwF+G(hlw$+Z4# zct?Z+>y2H5Cp}_2Lfm2;n{R?3XtvhVYbTjU-)pr6$4q7x&2K z;C zI^X-tK=pTP_uy@7?>?h##9*z*3G}K^z0_xmpYC9f=F*P{Qe$3Cl7DlX`44}rRf2or z@~+u!(?fS};;VoNnS}S{Qq(W)pwunGB<2IV;C?He+Vv=Lg{VQK;L%l2>BuG{uIvBK zz5Ivxv4?rPBy+0LG{ukejyrrRezQFXcceu-6En2m$o% zUo(b_msQ@MBXa=Bo@M;I6Y!swJ-m+qh%ONsp7Bxl6C+c8{hW}P|HRT$2<<=y`|i0( zOw8*Z693ip{QdiwrI;Z<22Z@!*DqdL|MmEA*&zVo9T^cT=h@l(tBZ5v!2$}q89sX! z@N)DI6~zB=2L9)mNpX+>mzFQQY%zylynp#|WPxLEW@ZMy;6d@fLN#8`FL>v-bZ;{K z($OweCN&1|>Uj!aRDr|eUnfoelf?lmm&ftns3yYn@KLw%cj(1mKLU!aHKKcsyrQDu z1?)Rd*J-9-JWMTqtjW+R_tYy12pq?+W)w1${D_8gva*7dMgKQ<3jmS4MPDAt*@yKv z{~8KDsrKvY&&kONR(>EviEAEco4@~;E%twG7x*bN-;Xr~`jemKJthM8%jue{n=@7N zUaS;N#%5;HzwBfBt{NK~n_ut_eY(D;>Y_aT_}8}D-&?H}ftvn-qLI*_kqB-L{ne#u zmU3~aHs5y#`%4_S#)-@P*~kBt&@dH8C_oB;oRj^VtK4f=7%C0JDT~SQ!X-PJNT($=FP;9zOzRp^O}nU09i(JF|hN|szqE@Wh3o|Ly)z@Q#z^5>Q&YN2_= zHQ`Alfh+Vn+GE>?`&wlIGVl(LJ9?vK(kJ&?V0rcWo+orsF)`edA&lGsfsOZl@xnaW z14TM@kx5QKht#&PE~fV?*WjtBN>@^ukLRPP8uIQhmQg1=s6S8KlMB^ubygoeYy1sPz^cz-grDiSN_8|NjcLz;EwLl_C41*_l9@HI>Hez9{qu?|1T`Q)LoKg z%0x!7!S(AHsJKD{%EN-sonZ%GFxOV{vojb{tlRJ-JK0t3jjYmZ{i5xuIO)J%8na|> zpkAzaysv8Ezv!h_sKMTX!+S=|54@WzX*y6GaojHU+>Rn<^mwqi;65i*G>Do;=*uA} zlw+8DX)9{Bd0?OZ!dLtKTi#qI^pZ$D5^$4H9Fxc~0PHSL$8C>=&%3Mt_H4uQ<|v?B z-NBP0$)=en&kU2Wsp;{>bO3D;`^#R65UcYQIO z)Otb`cX;NQOBOH78Chd0v5AV>)esPs?IHk)j~$yp$ra-FXH-ID$HKZ zR>lTahNBvi*$$9Q51o=k7XBQ)Yux=nbiz`S|w*YVv0n zFRehnOAmzBb${W~ie|?hOR|JX9@{NkInEsPIq5ZH@_i^h@2(7(#NAg6?!S?{@N5X2 zZw2gRf0mT@C0Po{(aow3n@zX%n6hyWC>Y)LequHGuDE$a&K*_M#<#nUkO^3wJFizc zK*ce=xi{e|7rV%%h5r5#oF$+YO*O?sM$C_!zU#P8RPB$&r(P0VnTXR5VfUL)umGs& z9M)IVznG@D#znHo_c67El3Z!mjZR=^5J_H6Q4mEGEjjCNkcxBcB zeO^u|D5?tV(zj~Ukm;51L8Z>xK2NtUvr@P=vQnfpJ({B#qedi;bN%`^qlc9BXN>H% zMBJQi65h^tuA@@4B#x*P`Co-CpbMj42?5joh?u*hSAQMk9X|`W!0;E=fNuC_p9AL} zJ0hS2drFW<(>yeX`AnYDa#}9GoX2+33CJ*O4`%}?d`0AoJ?uX=@_lGN#qRj>`F2uinh|Wcny&ODl8YK2jwqAFhEm)x!XY#?m+-^HHAPr5WQO< z#Rw8dXaaBk)S*41n4U)1;uG4#CejOwPzkcHo}wCj_ZL9yKfmS8GNHizrXfUB2yle% zweYuzrio6LNqZ)U*m$(&0>wc>G+Txlz=yYw%N^O@*_^|OeK zYDBY(%qvK=RtJ-TlC1DJUboINCYtBH98Y5!ILT#$9q$e({>?ZejnQjNCi~HO<(3nc zXD9hQfG3E#KSR&66(*@9m*D)0bL7wra9#TYH61HEy-@?64H|;hvk!^Ki#UNEfoRj! zBjMxR`}c`5%}h)nslGUt3R9d>SerX)RX*qzOC}&*uhQZpE{qBplb%PJ!{{JKpccBD ze42^8ij3}S7d=k{Lqd$C;`oQcYlyB#&=eaG~Izi5OQ&N1h%1oX{k<=Lmpb$qvc!#havNe!;LnXgeIA zio1_ev%bbi>3CMnFugyh9K6YA`*ekw{cS%rs!`#~-*lyU+-c9y7ORrrT%nPWk=_UO z`}tNYIgcfYx%L6i6FrzLa+xeR3(>H6KT~~2n}D_G&G(NA^fhc6UJ)cRJHzXleioq? zo|R-Yr>3o?cH*kpN-^DxJG@J53S>ee2Ju8_Cg0gIhqESE$VH&b`#JA2odx`#e#wZE8|(<=AP&snz8pDAP~SgAF^ujE&n4xGHssP0jo!Q}mjT z1xs*u>Kdp#Iqa%tpzmUXs9Y@9UFszGKrJSg&!q2i*dgZC3==ug*(Qp2xi=@JI)?X@ z|FW}rDLx9vRMR%P{g#4FDH1>jGNy?@Nvv~RJY0!ERIa6)F#-scuM)Y67Xec9Xu($u z_s^R*<99xyhN8NUCFmbjfZo82R4gVU=Sv%UDp9 z$jWjXX`<|7RD$f^yqNo+QV%b;Mab*~oD-8qR_N)-Qq^}Gc?`_dak7>goH8~?jrP>A-i`XQzSg`JiEz(|DY!2&% zNzW@DiHB6{11v2%N>8x@*g@lCD27W5KqU=iJ|_&KL;ac+>57bx^e|?vt!B%E4ci0! zZhB_NRBBP(?#Js5I9C!2t^NJyTy^rwWU)oTF&I(jN9+wY#DLJ=P2F^OdFFkHDqqRO; z87|3`huW_0l*UJpe$f9g7r!N1VY7-g2BcN$&3NV?mW0MLAx$4K{LN^eSu3Tc78{>A zn3s^?ImCqzUZn>70ax7W`>Yv&EWbiKD{=hchk9fW>Y z-={g=s3%tVV38uvj}~Lu5a%Y_a+<=qj;LwfH$>YulOfAH%@}{rH!2OU&W@sH9gqyG z;(ZPKQnfL~8f7Xx$Pv|5UX2^JPE&?(u+c({y8d-ho>{3PsqYsjv9pqy+jo&c?E_l18B^s((x!(r0t1Kx2BxoWQ93-+uk}TTW%a*+6TP3ks`UQ3S z$79VK-913h$#SDDb(fBCH+i~0x@KV9YxZjs=C@{z2L8=(^Wt^u>mMm^qXk7$ zY#4-myn2=aZD}$ZDx@D!XIMX5_6zT&-2aR$iIH#6e-Oi|e(jE=d*3^E^qvo&{Re~H z8lov*^YSnHt^*Sn$3(>w6+MBuU8RyU5TM~^vx}-jByqFIMekmRS6W033>GKk2!ZB* zGNo*WeiZmpxnDW+n`1|a8&+XP- z=7skcaG2M{~fncN{y^ZnVIvy22a zlgF!hO5jdO*PT0@Q$EhAmt3`(TP*F+`czoJOmutv9|sDV?aUpdCkaC@qa_f2Oke zy5z&_;&!P{+v9D3AFkBJIc3BraS8!&Fs z0BHMe$3604vSVejd3B!pT`ylCT!2$jcx=KXjH@cg`d>Ph&v;3G ziQs2dde4~hL0l*UEU>@9ZSU3yW<*}IN<_e~S*yxYk1Aoe5r`eDn8)X-C3n0p@8_rH z!>2h+zRV1wmDkT7r_=;pmR-M9c+5&Hw=>Lhv{iY#U8Fv_oa#)ZRhOrE{APl=G-xvrO+ zD4EUrR<#doOjtc%Ex0v){JiHfRv;}cwD(lv<>za3tUz|+%A0)MhSWWkP>3m!`d9P9H(e&ACG3VM<9yk|36~^nEh)uy-hFZgD z#7`P4jwzAVkoFkuBt87!tUb0$aD+#2oD@}ElsH|ZpgHPyEVtD)e`z#8rB|di@tbRn z%ht>}h9y{)+(|0Fh>P$@d}3u8U;v1dP&C##Bh@smsw*NnjT*N*fN1`SD;p65T;|il zvdm*~JZ8yv^{+8dL6+?mRc`>REL%~f@9`QVn;}k)Nr=7t5mKDo@R9fv+UnD%0uQ~r zuxcArm?*y12sbw(!n5Y0SNZyZN&yML!>w8A@KP`9U7pHlso|vrVMn!AV@~zrt7~C7 zW*uGM${i7d;hG%ODi^$;F+^d#L%f8%jK8d3!pu=Tahp$Ap9FhC%u;>Xky{=D>aXNX z|0%Y&&hv)H#F#{>nq^uT@9XIRmpz^;%gHMZp9&PKu~<^7DdrK$GkUX2FFO=9zCS0d z+ev9?|Mt~Ap6F#a1^t#@DJ`_bH%$R7I47>*vU#Qdskr-obol1{@u7~7g_r-5y57ir zeS$U8cIFE`6RJCY9_LOU8ounzIGG=#kaXnQN&xq=Dy;1XB2yw z?IX_kfkXr}S(z8jrOC%EtFJ!1x;y!}2ob(IAWg8=LD#iRL<$<>x2^Hpj&U_D(v2x_6P)4n%@O* z4+%{Q)DPfVfZ=rOoiz2LD35A2$nM#^1KjexZ~J16ieSP0uC%s`kOY3S;v`r6i&5k; za(P@;Df0YE6@r-=%XYTDxVyf-ZaSBB>734?(X=Hj>#`YBm`O@wHoJOp(m6D%23;>a zEi)bPRWWP9?I${y&{HGNS5VfD^y1ZtvW~s#&#GePBFc6bZ~&})P8E@Qa;v=j;iXC2 zt2P77vs@-}*^u*DQd6*nK?PN1>}89S3jK3`B=}^jx-C}%sikQunJg* zSK3E~q&|AQk*;2(N69y^Sah9~h6>_$U*V0L-6I<=6bqjsANjqa7Num7h?nk+^Vy14 zBV_a1HMZm$ljjuJ=XvNrM)!B2qSeXt?lN>1W2<%+qqPwT$84>GMt&Hvwd@<^vJagy z0c%DaH~G4{1wg+A<-afD0GRd2?=*NEZ1~~Zw_hLr!wUOiz9Vo5eX=K-lS`^eVkUAu zWCiVwyx2P4yL2~9T7k@7xlQH0M)y`hufEwEPvW89Cg^=W+#3{ z9j?dar%`$zAm{l)Uh4W|-n09#CU}Z6hGQy*!{B>Rli@|mOxc|#dQi&2K%%ksAx~5T z>|_NcESR9c$`4nF6yNUs5ySYS9mt6q_fPHdIUhSE2%~^{l8^L_&c1zrDq}{m0qg-pwYvwKZhy5tBskzKi!<$+s#FrmF;MM5Z*7i%UIWlNk;xat?l!3h+AB zSL>sBQSsG+(}$%^I)S{72M0rq%z#0}fegpE$36QioFT&NbdP^3X3yLL z>GzK2zvn=5`sqQY48Ad*ZKW1unKa4uepRSf!gT-LK2a8RWh0s8T%vjRyl#Jmg32VFo5VHN;KiKfipgR6 z0m&p$s!q)ePaCyd(BJgbZ@4ZCm^M4DkKPJ$nP5In7jZ^{b<9A(}&2*a2%2*Jm>MWgmXFo1uVTRy{u^R(N6{_h8j-X+2Z&L*KT6DjbpM`ojZ9Gno z@pjbfONbLaukYv6gDTTkqm>1pSdKq3x#0b6qwFGDa_E>vvy23aGa&RO7XD;%!#J5# zB{qfG24hQs9dW3{(Y}#1>Y@fzNZrme(?(yR20J;#WYI!;o-C%itSoDn2%cEJi(3H( znJviZB<_`7I36+T>RnOS+xjqeVU5>J;TzE~wM!~le%N@v=GcUit~tyFglzjh_;@}0 z)<;YE`U5LiZGLnw4-2e%N1@)r!YUdcIB3c8&8h)DYL8j>?CXZ}#+Y^E6P!GC^I(%b z>|j17n!i$*|EIooW=Fzm5S&L-#Inpa8qsg#fY&;l!$|g&n?Q8vtRC$cg^As!$rF3O z+h|*Byr%*^+@snU&tr%>?d(q|w?M7Nqm4;Osd>KAEhJlm-yz%iWZ#FiYw1^8Yg*Kt z`9zGYOCB%i(meT)D*(j6Y!ML^@9b3NYdhD7I$eHa~693~w*WAx@S zt@uBry?0cT+qylhqM#t6qOt)Yx=}!BN|i2KDI!HgKw1z10V$ChLI|j+Sm?b4kSbm2 zJy@yIA@raS0t5&UAdnF9t?Yg7x%Z6w+xK42_lILR9AL`3*0bg_pE>6Ohoz4Da*)tV zo=UYOoZ4~Hcka;$cCU7rWnVE_a>!{7ZGqLTHOE_*<=B2__aH9~o)K}cQ&>$z5&dHB zYW=SZ;a|R>C&z_>{+|xp)2MnHb;t!nn%$*SaF-Dj987)Qe<14e{OWP$%^7b_F}PuI zV#O1?v^U`oNvS}Da1nx%9Zib$4E)k+bb*|ma#lRpn`m-(n=+DDeAs{c>zvb^ud2N3 zuqcKusI1i3sAjAdp;+fKo;&VCL6y0URn-u8gpUX+>Fw?!1NAmb(lY3olOpuZsG;J` z1(sj`7D&T&huF}C zA{rHx@$Pb4P1g#Cqjrtmby$C~L2UhPufTN+w)QHu@}eny!}SN>WMvXxIPGbG7uaB$ z6fXQ&i+uap!Ev(d8FA?(z9S*#NJw=xPgZ(_3iTQ3-Y5X$tv97G$0y|9CA~lVw4fB{ z39TqPqS_EcB;d_hw?`Y?C#)SxRVgpqXjmKa{XS`l9~mrMu`EZNc>0Slvt4n8rHyJh zjdd~8qR2cp6@Fv){G!`^#YCf$_4m~5d9~YMK08tE`+Uad+rA)4kwEPg7>Z!9poHz3_ZF|GL8_mPfiAW}{zf)TpJ`G~zY;CHw2mMA>a_#AYpFy7+a< zP_fJ6yUmVxsf5C!jG1D~>TeU@3?oD4#(@>luR$f$ivTLJOuSAT@M zqWHqVqJioyrw3BaS-E&m#VqUnwlOs3*_M;gG5g&zwe1EWLUq<@#Euew86m7sz22op z`Xfn(5RvGUys`wx-7Hmed^ObZKX7k+jHE3G-Re?h{9#_@ znuI=0FEYxivx0v&>2*K~7pd`TK@?Y?O`jLZE1Rfj%?tknN9!!dca%2y<{)_j=}QXp z@a?$ETwROKjRLmmsBxjOkls@;`i?kpYK0!|ei1nU=ieHUH&1h?4aHB7EhUR{5dWpn z{O_k##{NTdXZl8{T*jVH8pkT)9}apt;M+|~LgBbEn+M;inoLs4dElL`_XHfrI0I`^ z)YS?-eNvySY+UEMU6Y*SNU zGjF7t*6ZH{;5quw*qrPnXjQrlMuUxA30CJMEUO+BTb6m} z?~tNe@Mt*BD~I^$#}Ze}`1p9@x}N?ON@}@%pGbOZD6foN@)jXIsI3x<`;C{E9vfpA zEv%oS^LfHIW?`_f1Kb{N58CvX;Y#YZpRSwNI2m(r?lt_!I?S`ahy zx}#c__k9;+-dZJz*OJ#&XSO|p+GZejkn9z6y>lrWj}qrv$-o|xr3L-9nkdb52>RTc zb9H+Fg{I9tTGv}W&>k=0a-cL#k|hl>6sIvEs{;)J$|oRaF^vL$zJ~6%F0nH2joS6O z?yMfe%4*~5Y=iJ`Zcbb@y&QE925YXC$zmN$2kB

{Iag=~S+<=2}=kSpnzQsF$Q9 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

k?-xR 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�d`NqynY-~L$nP9^Zlvb?{(EgV_@ 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≠ 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

FPi9H2?C6uSU&|M0Iwq<8$Z4dffGd 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 jNWLvhl6$2uC(993Y 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

)FpBQ5*c``w!ZERMPk? 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 literal 79741 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 G_x}OxW?sPn diff --git a/docs/user/plagiarism-check/instructor/selected-confirmed-case.png b/docs/user/plagiarism-check/instructor/selected-confirmed-case.png index 4e7df919a9b9e14886d699523cdf5ad353f1ad13..bf06a107505499f6584a4bdb682d966d93cae3cc 100644 GIT binary patch literal 280443 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

|rd)#LkBTVVTLlP?%-rn@4eLx5*CHz;Q^jn!8HA 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 literal 63443 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 diff --git a/docs/user/plagiarism-check/instructor/student-notification.png b/docs/user/plagiarism-check/instructor/student-notification.png index 2b64fc45eef4ea946d41998a303122d22e41ca80..179b328be336b13d2403649d4e20bf55ddc8f18e 100644 GIT binary patch literal 230933 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%0A*qZ6 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�kr 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 literal 31979 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 literal 0 HcmV?d00001 diff --git a/docs/user/plagiarism-check/results/run-results-selected-submission.png b/docs/user/plagiarism-check/results/run-results-selected-submission.png index fb38254a2a8b9728baf20fb28e5acd08ff20754d..0ee80281ba2d06f14e79b963ff1c2eaeffa83f11 100644 GIT binary patch literal 445420 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

?io@XF09Dw*`64&(L=R__m!g_Kz9RECDqzw{yXX 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�{i0mm=(HOY7ua_uaFAU?o?U(Nyl| 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%0DQA9Hi%9fI`TP)oDoZB6eoj9Th*gv~1A;e*6UN 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 JIL^2;e*pv$2aEs! literal 44317 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 G)BgcrU}z=) diff --git a/docs/user/plagiarism-check/results/run-results.png b/docs/user/plagiarism-check/results/run-results.png index 45c8dbebee82c3318c0b3f1a65e4780b7cf4a3a0..152962931bbb9ab71f1866ef1701ac6a235bfb18 100644 GIT binary patch literal 211106 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 C_3_96 literal 28281 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 F{TI8Lba(&& diff --git a/docs/user/plagiarism-check/student/plagiarism-case-navigation.png b/docs/user/plagiarism-check/student/plagiarism-case-navigation.png index cc86ad32ec0533b811f879eda9e4361168ab4a12..6f97961d78d2e4551cf6f03d2f747f7983e10887 100644 GIT binary patch literal 251595 zcmbq)1yr0(vM7Nh1o%UO1QIlO(7^)1-Q696>)<{}1cC*3cXxLP5+KOn3{KF2LBjwO zW*B(aMThB%x}42(Y{?4_jC6{MtItGm0{*gIKcV8}-#>tX9_{UFIPN{EY_!h9l+(~U#> z_CwNhLyQBNI)Vg@{K1z`SiG$?`kM1B9*}pi6f8cdr}HNHzD_Ewo#a*jUT?kVLk(&a zv4`3N2j2<6b9tcPZVzmX%S7Y)ci8h7ul14u5l?a6e^pU6kITX2=6tOE9?!VFOPGsQ zP!RJQ_u_4LS0~PM1JHy-$>rqjogwe_Ct)fKdEP<$8(~w9LF@!L@}gaxrn|s zV;iW$1mgVhd@GbYEB~7gcUH+a&@SJvdZ%zB4E22X_Jlt$=4!-qG`@{}Aae+OE)?-w zk^lqtM|hxz2NRq|HFWXuayU)O0ncpE)Q{hpHp_90shM0MFFfK&lf}(*-h~OF@05q{ zINAkfB&c=kGl*|Hy4Jus6dVKE;UF3Nc#Y?d5;qbfsVh=nHMxuPad1I%ajC;! z1h6`u3;k;UxcQu1l7ekC;;Z_({XzeG{6W{yyxEZJEZ^|U*QReq@FKOAof4E|bdZvV zvkXot31XAUBk0ipkt7?Yx+G*R&m)Rr(GuOXSGf1Xr}Zb+UF<4V&!zzwW=Z9+&<*#wxFAkPA{Fl&uOXm6pf(|_eh-n?fQt`QD; zM|u<~KB)L|j$kJ``ehcL+4Gl0X+l@ZuNA|!U;)pe*n=!XTf}avO*2&dL^~lPzC7V3 zaNMmV%U^>5ZLeP-eLLQX37QfxnWlYz8l^k<8GuFb;VI?=EO~PktV9Wt=Pj3f7yUvq zYMehYaYisOf96>|mZSdxl0GBD#_h{}jw8N4)rR3$i$N@Yd-%MvP4I)KpUcMpX+B>} zH;yOR0%xWy)C^?jDNm@RWPd+9HP-jzT&K{tM&IR7TlMm=jYz+Fb&x0b1)0ad75-BG z4~EA?KsT&aQp6D5&v|NH+pGu>K6txRWD_Sp`z+k`^OQszkAgn^HS;J}9u^Fn)g%7O zlEam??BEObPf>MBmhFzV2d>{t@~KHquthp0QmVfirMwtYTMo|bd!{C3FXv5LxMOY= z+%PdoH-9v@`bFES{gz8CQh)Z#`2-d0dPxiwb_6#kzinh_c`o!JdqCBkw60Je>-~GC zI@zihLW~1am522KUQhj_l7|zYdWGDb@&C56P9OKE@PfG^3--rIl@kLCAAlNsJEYU% z(jA&R_y!&P_U&8zsqrEX#+BbU z$laL__zO-ez77VMdQXAj5iWkJ$&)kIeEbdGz_#FYEb@2Mwmn9=X$>zI5A-i6eM{L!y1iIe}SF4{HR z^>L5VT8NJ{twySy%EgCM3vRBccc0tR+H%^$d=nN`k7%zF<>>^dTPuuD81{>nC=eC6CN(rfeKaNI22@*Avm2H+ckI7h%L13c_u&Ud2e$ib%hEtcV2pQ)clwp{G2gK$ zB|D{Fwsf|=V6xz_r=Ta739CtrbIgh68oGnuOYA8R*$^4y%N9HRwYtiI^~0wSID}|F z8FoC~nU7G&&8IHPt?o7MmAL!(!1=xHb4$+o_n-S-eO}*O9_S8(e@VsP5WA_Naj>&} z>G*EIHOjowyf?mHBRqc5u6o+O(A3hzGI*P9J9%h08l=3>*uyB9n9RteoWtY!l1&!h z@@Zk{w5@|3nFGt)HK%18;&^^K#d%5Pqu z4}tt0D=%9gIZrs7t%4yQj&8_D@xr(L@S@}WF`a|dVz@?U%ZPDi?-E6`NenJ75A^;*n& zsi8r?Qy+kpg-QP)40FA)d$Dnm39J5F+_#x;Ew8KdLh`&Mo_(J9#PiAVGfHw*(k3M9 z4~CF0VI0r8zjJM!y?dM0!x>v=V9vfdch+|1wHZr$L`zSgVmZZSZmIjVo!b5tbEH!^ zrbbrT3yo(5)rFk{azCo7Pfd855c(sUxhQEc3CN7z{xnog1`$~Y2He|iqADikOjq-Q zzQL@BVa9T`EmgrdMR^s)wRB`C`SjJtq#z#YqXSEH~iYM zPh9zawMFPQOkB%cS#qJ!&#-bH*M;L3eZ71p*Q4V=hn873_-UkWaAxkXHHS6JTN+W) ztlFB{V~3pW|JlD`^OMJyC&M-aoW}2Enbx_{^r*Mh0prICnxlG>&y@fv0?9f_ zfd=D70ly#`y*1Zf?-h^2)o{_Fa*B@xjz)GXT{Ef9BvAMl< z-QcBd_w5&xtSZNaE3symo&GSxpUsUB0SI6%ylXm$XLIk^XxqhWb#Eicn+Xc8?0n=S zwvh?Sb?v?QIP^I(?8~#tyE?R`S{P`!9{dfwAmDMchd+fo*4Tae0?{+%->RrO5U0OcKF@pV#6u;5ZTf$ z)^WGlx$2Xh^$ju4LL55yfPw1`Gs%-T4u2GLrzI^V%V0>MR@t8Fu z2mjmQF~(HFgS-LwE9m^L>pOH^$7Y(!ThM#FuZ``Jdio7QFMgeU6x9k1Ox^l)DoAK%^lc z-4MDwd>>P!SnDg;sHkAD+_#@#JbFNgfpy<{aQ}z#fDGf&U)mTLiVw*Dv#t5y&EMu= zVqk>XV?6xZ9K-wfpP#t<=N|fRZ>)qb7})pU2=AYeJk0-?jR(%d`j0kN*8LcUgqDot{oV232uV23wcDJ$-)RdO}8~FV<5n4M>Pgg+zz{kgj!-t2%#oZRbB_JRG z;N%8ybF<&iVE6EI_B8ipclMzBE0X`fBW>+r>2B}pY476v`cJ&(7A{_%BDA!B68g{2 zU)O2vYyWpj&K`f;*8K(ne~tjSI5+|S9hj%R&Hn)Q=g42d{<5#Xk`w+DnV`D8ueFoD zv_0^i)%Qyi<>BP!7XAyJ|7+;)EBz~|j)%3olnd}4(o^*B!ulKVKMwv^z`xKm_&ZGj zZr*<+`41!i0Qu)01U0QaT%5fAj={|aUBcQ8>d-g{bq0s6<@{|cf1 z-$MLj?|+3*bGN_egZZCJ6Xp6Fg@5e(+k9cbpR)glv+&o0_LtuKlO~EQ4EWDeD~h{a z{_sBB7spVLmeBTnaFmVhOE1^lqBOIYNJIB0V(=$IQcd$5`%w!YTtSPO&axS zGXco4SmgL^=rJ_Q!-f))>2YQQOuERewN+$^?qG^7n(mRCECUH@>-CzL=!l@RwcfJo zR@=M3eE1sU!4q)|%;z64{{Ne=@jjN6+!R6GRzkB#R(-sb7PR`ZI?ATjg-i~E9=y#TXndqNu6@Nig=JxjO+b7V<-?#~0{|>GZ z$vj3wNQkQ_9-XelzsQHbEy>PZrKY}~U^C!_nN$P*zs^<+OoJ!9Z~59gIs`-D1~2Pz z|266Sbu$%d;?)s*?EAv~*DO6>tSJ8-Tn*3doa|hqqoZq#Qh@r8{+%5@FEhk^+x(UU z*h8`zFmEcs{crJ0;K^KDhGCeiC^mzx)W0LdWI{V9Cr=d>mHU%*fs6#R#f)^4imr9H#gUjkwF#$ zH#vv7YyLaPe%_-ov9zS?_Z!9h|JOf%m$at}=DpBr77D-+?}^#%s((kTy|-mj-*zxA zl*yKR*V~x-5KR5AOHW*nL4CU*9KKeud*jW^+wSa@;&^`;%HDmvu54*5T{k`*`s3sP ze+Bsdd#qjr7Mnrie0BB4<`u;XG*Tz&xXZP@>mq^FvXFb)HqGYiL zu7ij(1v|^ zXT9mT#mUigmg&+X?8q=XFpH0=H4)%DgRH`8O*{NmCP3;=M65M>qQ_J4Yv!O_|yl;i!xRLAmP3~rrM;z>0b5fR*BjX z)ce(ZsR?)C_CcEz%FAc?M5N6m=7$7}+=oL0ftI2_{;B2=CuMpMu*f{Bo$c{6y;#uo zLE%-dWsbqt1c~-kssr^VUt>ZZDbtoH;|pygC>N-L4*-p8-b4*5RMRVgx8o5)bYHv$pqV+Q2Prjc zDTsRdm!gLsHvL@8Cdf4>eZZAal#W|_B@cCGUtnh^&DAUZrqY%9VVXC(zZ!MHmW!1=oB2YBhf8x-A;UGVzFv6C{3bVURmHbXFvd!*+V*&7fRnfwZlRiC2$Ky<@9@J|{ zB?u*VVQOPx60v99A-8ozGghdKPm-D=N|P}J9B!zQ5vQfTABz0>RVU^f5n~!_$ghTM z`FCc=mjSzqD#Im5D4pw_f?An)G3VUA6X5I@*-wjYfx3^5+iTh>D5X$ig=3jAaM0HS zasgCy6YBMBO$Sh-k?7>3*5fub6GH9l``mWG22C8`fk-dM+u?y}K8smXzAXY>Doip3 z$&%Y&HXs{Tggk$H4(q4~Noeu;Ao*d244mx2(b*cdEZxT+*H1o+HxurEMHtqzm7hj2 z3yT^TUnpg_0OF@UwQXvWpGxdX4*?`81vbTfVcB>?m1uMXmET8LX>%x zro9&B#WB@00M$<+PsXaBE;Tjxq2cK|Cj#Wx&_oyV)5jOihm))tXm5{-V$vfLPRV*YC?b1#SRxO)r4!zS7>O5^^R5${ETaqzJ z?Cs5F8guW*c+x+ZCx=q38Xm31UzhJ$LdeFq5w8+_aRKbB`$2(-tr3Zx6@IXno^e~{ zp(&~MY6PgEAOnY@<50Zx*@Eapd`^us1ynN$P3vU5(5XflROqx>1I&njc&rM34h|DY znVr9kt#2oM#D6`62+{OuqWu zTx;A1Pqc9!MDucaS#?<|Cud3aEoHfY%ekXtKK}1KUva-Dyu5rJj6_*;DNOA%T7GVQ zviy$IC2#Tve5iNUEeU9(rUQH*$`swqtS~L%U93-Uf!HwDU{A|wRtJvL!u|{~K8_MD z`UHsixCxHd%3}J#CN7gjUYGyHX%n9(ddbsPin=J@&ZLxFSdwRjh^3I(Gi)R}I&tp? zEbka+T1Dyu617qb_$~juPl7@pkDr$NJI>|pbW}IyVqJg!-vlvJOHbw&7COjKo`-C& zIxpLGG<5yFYrUY<8A6&(1+R01_vQc8$x&Az2e7}7qNLT>?qN&2oT(8srFsRnkjZH) zp6l#9_bun-{<3$_=T8VnonQ6eJax9~Jvn(26_jfwM3%8i38-l~L#v!Ly&5oXeLZtt zSX&!KyRVizw-HUfJT_rcFQ5pIw$3z}bZ$OL*dA^oJd?k<8{JZIjsdoM9`o^Ah(F^u z*H>#rv;}cMl;D(mkAB@Nnbkujez{@d;Z3ZLPOMUV*UlJNViJ097p@1a4?HZitX*ju zh^Af`Q+c^Od(2_~LtA)vy>!_VB>=HSj&lgL`P0eV_)@pn)}KA zMrEeZy?UKM5gV#DZ96K#)_6Q1ojQlDofC|@x&k@|@v{n|1$FE#lURUSH~3LUZS!Gu z1D~IC?VC?cqpAtOdo_3RR_?`8I!~Ao`4P=DZ$LZv`lrcb#*__fT`;vDuzD?XWmQ%Q zw0duyBLxPJxEs{8g9ZlicKwI(Dzm}xG7;?ddm|gB@OIK=dHHA3WN2lptlu#ZDms3W znNHH~jhOz0P+_(%y#9v6(}6JKW}-DAa;Y%8d7CX<(7NIxxnkG;Ju6JDmqJVCjM7Qt zBSgRFg~;!^HO=@D9)t3r057*d?Pm^y&rMFp<@+nf=zD_KMt_esNzI+zuC1L|BBd`4 zOcLaDTxmP>s2dJDoQ`$%dYh+DqD`IkI&*ktHH30oE=Y}nNRR=V2*TH8jmQS~rY76U1gzT> zOzV9`HF{`WPSKC$EOM6zoCw@VT7o^r8XSC*Cv z1gW9P?SgD2Yn5rTRs$@!nW()gt)s8hV6^*Sc7zY8jWP$KGspNlzb|a;+fH)BJSZ9= zKlj`dfWh?|e#-SrCrBd{kH5NFX^X+6UjC2ZZSO;mifSElcCDtfx~g*Ld7{4Th0@t8 z+as~@<&>6c-Ni{!uq-M9^mz96F2LJ5DdxQJinB@boazJ$jcUgpUAjUAglLJBin^eS z2)tdw3fGd{)rgVC1bcE`QyvS?49(H}zh*q2uWh@FLOXqjo>? zLRnG$4a=$aj_N~Q_3k7rm{BoGtssbb}@yb(-gOf3{ z^{uQ|#_7t?nqE4jY!2yFd}%}-U>)5o*4G$r5{s_>+SCol6X=|4>CkO-ngc|aH4KV= zu6E)3UehirI2oWaDS~TCqw8Qh&kym)%E@jppn-6(LE3}Je{|t1AQaPDH4TVoNcN02 zY_Ez3ZiXgO{i%nF%dLy+$~P9`dc<0#C*6@xm3Af3j3RW51~k@m9MRy_*6=aF*gua6 z%S17wpFW)y>LjsN#LkiGj?iP!PR-^UkTzmunH;7^&MJ|2+s)%$DkqBXWuQ`|0f{`2 z?tMPltq#d7%-h>@JJ48RFZlM^@+NkL36^L=if{K=I|T?G+Nih{!Jc;Oty!QBnUk zGg8%E->pfNg4_(Y(d%BZc3MJ~{YQ>j;#VDEDKZ7uoPoPik_<}*j3I$57b);JNr%yD z#e;6{&f!F0rJak|3qEryV`NYKnd-DF4}!hesYy_EJaxE=>I{0Sr}P_ooM-a5shu=R zV51R-F9OfeM_`%wI7n@(D+liyomi)(2EFqisgtIAtCo8&FNVWX z+tsp!dy*GLR#o90*!0SHDwpZfgFg4AH~SIWt8_yKk_62JggcO{Q(*8rCmi;621uhiaQZKj*88kuP{Y?gp0 zLWd!z>*6A!dYKRC5qn$<)P5Awe|@$%d?d0MczEhTH~mFTZe#!}c%q9GgMqMsi>b7#u-O%U*- z-0??%&BBwCyg?kPmLH*o?oDd40ve`G6KXDIFO#1o7b@qg1&ADHjh4X{W0%lPlfM_h zmWupr+ZmG!chgtDh83KjHN~H){Aoy^0G!l}bf z{WmhcHV8(e2*v6Z;PfN@VP<766<4z>xG6K4Yg0cINLlb zlJ9e4vOrR-yr-Kz8Gsh2l*;4D@z}dt7osOoQAqmy`)~+>+s%X9$%nNffw}N1_fU(UHl@!g);cwUW!Dm+&q3Ark0-5E9x^e zxVJ$bKo*qY*^Rzs`J5{N{6ubp@9U@83HH zqY*i6YIsqO)Eo1REz21@PjilmdwP-qO4S$tpl$HWKB9M7kIVONx)8mkJ1bdhLW3~$ zrEFMZ9aR_5A57kK0-E<+2HFI7y!iGNP`n=Y>W7S(l6B#RP3?UweB_aa&$;%=vFk2v zIzG|c_eOF|wykzg$YX<+r#9d(j{N`l8%~}-&fLO$2c?jATgN0CLfSJuUHYpF=RGk{ z&%1B4kjU(0XjiM?n-;s^?gJ7UL0*~9n!NrvnAU`>j+uojZFyy%9aS*8CJH{X_8%x+ zxf}F{ob48vI>TfNX#a4?rPt!Mq&B%BCejS)_hV1}tw}I^(XS4eB2G7uy!k;=?d3wG z^2R-@1vN{@{IR5fCdVA}o280t8R<}DT*(`gTVcug((|HJt<;To{E=1c<~KPc64#5} zVbariEz&4H>8_J!}t9WJCw@c(o%lEGy~pXU(x8qhg$WVPG{zw{%)V zhYHgDj=f01vL_oJ$D#HvQH%jy)rgYwz0lQ2+)R~swesJ#3Q(#Vf>McEpQPKl1!5_z zjMaEW3G0|+N23a0tXqrYKgvO!>NR)%e7jS$o9;GCXcQ4^hKwAc`jI7O{q|8#V&T^U z@WF57zVVCiX7Qcf$(notWC~g`F1nsJ$$)5O8m)E>PuFD1Kw^<)BWCF4tbB&U9G=Vz z$lHZxu=TT^4vq>(+4O(m@6s|nesbeb8B*lXqb~s6=`rYH8)PFsY;Xz{mzU4wc~ZRlRe8!H!Pa83aIsP zhqIyc>JkwUeO;>{UUqX}{9UFiS#6&EKER5Gy-JoUE-c%0sN}7El2~D+E#|0ABx8vv z5j?Ob5B=UiJ&%2O)RWDZ-z&5}notwFFlH}~NE=-NsNBzwBUE+d{R3w+Ik-6y$;SOL zZS=ieqLX=^(zC&x!I+WT>WbB@F!Bty>os?HLx*tjbmk zopRNvqgO<1+(0E0Ci4;sHY>u3@~=u?i&1hAambc^B^|w!rWrG@*^tL&aFZI>@kcRT z&3o%m0l%!gc^j2kaZ}!-9qhB6GAGX!Bs9NP;bLXVS#<5(j#y(ksb4&^4b+t%@3U2-eOVlbpF>02AJ*!y5$ptp4m3v9mPYMfqCzP{mo0N=fz_7~zr7f3rYmW`u zUp{Y6t(>S=J1!Z`SiV&rmM^a6lesKV-qoCxWifIWU4Fl-wfYwG>x}NJq=RdXJ(^~^4U4nJ1}mvNIDGViKPH}_to zE=}{~&dl-T1<6edT-8Cj*T!I2qIPH`(UAaeBR(#i0DNfNV+Ss9P`Wv#WdXoGBX3KQ zz3zGQaNk8A{928CYv%FK6vExx)i4OU>aN=Mm}VhX6I6oK!RPkRnR3DLmklRZVN>SG z(xdz}dBIb2Z=rH&6JJOTmp0bdJpc6=xE?eQ#Eu9fg!WgPC&_q zh7P{A=+2uG(N8(O)+_^L?CLlD$hNcwg1vU0EB5{yu4n(FmHIPxBo1YqDkAN$cWijB zeA`LlD0-iyUhq0333Nd}o;zIwYdxi5n~h4}#4?o5FSe2*2)OK5W8ADNaQ2%Wb4oAx ztr$|CDi!&8rBW4~YeU@UdZ{)s;g)5_RG2|}EM;Dk>`YUBxVKa?)uJZzE>(5s7kzMuxrqdgQMHcthklj z$`;;|nD+A!svINzFsPfhUGXc6Ev^|Oy2D-d#gfW&iM8AG(Z#vh>czRXMzmUb3j-n3 zi?O#nr;)U!hYX4D^(Z7IhL*6S!v`&TyT!hvT8GeL?8_EeFAVv%W}c+}a1*DFAo0BA zj;NQa@7n0ex;GO3|4OA$hn|PdI+niW^pVxi`y#c zhG=;^T0OG_B&W*BjpHh5n`M`e*2;dpIa^wFf=_9`^Ys_dqb)&RHGa>U?CtgkaSA~E z!sLnZ%VvVe6Q@NwnxG~(syk0792Rin$XPx-+B^B(-QnKDqL$ssST>&x!C*y?$cjzk z2PP2lE1ak@08KJ~akI^=H=_9v$_t?jGHEXv2z%OZv3) zk`BGgI^}UM%I*WvnvI3`#}lh|4RCBc@Imm7-dOv zbu}y0E%G?{O~bL;xPl5}SXyna5X08iq{MM@7D12&+UQb--dHCXV)UnSN0f*K)s$0b z?`D0LYZ`4`))kNr+Pz!YUQ^(16O@k149yG?4~CJcI{9vk_)?L{c2e21>5Ly2z=#|0pZ>dI~$wVOJ&}w zZMA@(AOLzxY%Rx#>o?Yh`yv|q9^a`aewYNRq|@drah|Fm!jVQBjX~)rnYqjR3c1Za zCdl}87ZR1mc>+R7lso(zt78FoB~+l7O?f0XgF$Y3oKIiXIqXz)3R!?x;O*aXX>{57 ziT@I3&byMD1fg7pe%sK$%MXq^&)eT43mr2m-vy>52U8kdy#?Xp9Xbni$Und7&fJsP zHKTL0j;ZV0{3$Ijp52T!D4JU zX-Vy2Y3!)ZgBWUP4^B&7@()uA?@<7b;=G5SR;47}cYc5QW^nD{3p zNaCb4?=k)D6O1IIynp&J&m^#YMd~Pe?=Zj4Z&mIO!;5|SB6C$nF2*5f+M`m2RIS@4 zdabD_ln{24`ZSS>DML@1x4SLrKqiTFA`Cl8-cX|mpTEAS1yK_Inb3BGqxs^pL1dPm zcv^0ct_%h2vNPS-4#|#eKp$u^Ne^EE25)+bRY4c~oA@F-&k?(Tz#oBEjk#Xf6r7C$ zKd#}>&dS>Mp}>PNGjE>_kJ!pu7lL?Rm$?`oLU7QybZ9z67NDy0rR(6kIde*N*8Xk{ zwT0={AArYrv88A+OH3CP>(-*e>1!apa9o-cBX;yVi8|@m*V3d2dlJFQ};bXP2aIY{Xz~%c!C?F zU+1OXHMBL9?{=oOv8nRbdR2_w+;%{?>Eay8>u*PJn5S!70>`D}^8IX|2-M2I$zkT5 zZ6TZq#XNVt8^6Ab4{?XU?rZ{FY%Xj>g!nLpdz89 zAL_^+xbh6g=8ES*jb>v<%tuS_=nS+;leu+1O7H=)@ z+(Pg6w82TVuso`!?ywJLGM`%UH05wFuePb&fu|P(fjNr=eKP4^B*Tdsb(h} zw?DDhlFHd>{RDhX+;)>sP-4G7g7(sFjisad+XQH>se^`KzeRm74)ZP z6xr?++Qiy8T2?S06NLKcv@}rh4TqL}_f>xJw09&o$oX|fEXlH1gq^4@8b8@QVq+(Z z)YdR}?yg)LB!2JBA}Y5=BYmF3Ek@gbEX`GOx1MRW#=z`THR4&9XR%sNcTyJoI7(hF zUjm0Xff3s~WvsJ}pHFlQ?zI&&!iEL=8m)(_@@Jo&6Ppqkn~RO(6lgkBnX0%lEObVf zMuhOlz?ZM27J{#6H-yaO1pv>p?i9;yuYL~Jauz;prLc)?M@P} zufaI{+NF4}I}0Js1?&}z)hzkGPIOJ71+0{Pn@}E18o7tQjTFDj-yW7WyBu#3Mt?nl zpzK=&`&|+pD?plstYuZf=SjcnV;luzTvpIe6hzm;syB|YNXuN2jphK-h>*g zqfM=vW0}%x+-3`b9YGbg-=1Yil_Hlm%gllTXS63hEebY*Zra0ED)7~*jY{$!D(E^H zAT#G_+F=lnV}rrimSoSHqFpixc`!du>4gt9|L}}D?%4Z zmQ`8%(I1+Zc}IJtTB=FYq$s^|N9gRc(xsDRO@pKvk}rO2);)75&V$9`hF^3aM?Vfl z?G0F#2hPKbPbQ|78wuQ}O6Qt&MZv1!F{Rt`J9&rf8kcND59Qy_PF%%bzsd49s7*al zC?U-!TN8(BJL8?IM38MsE8M0LDzoW#&lmh|eG-oDuqf@oHZ@3aAAC0-@`&&${gPkU zSEraRz-_w5_hvIta`d=x3QCxJb`sI~aEFlUO+u~muGj%pnms}z;krW^6DRs4&I*-o z88%v5a4g0JGO2u$;VbIbQ%sqD=GiUr z`^KLtl(mYM=_RH(NUFV4nsGWxyL}lv?(TD4a`7&^`iWNN(#x)yb=50E;rmq1JmWC_ zc>%%)2QNbf)hS;}*FBq^?}7=rR08K-i7kI6z1}CYEBZ*ExcvdFVsWOJA^gV+bJN^V zJkkzqs(>jGhvOt=Ra3~#RclRfFp>T88|E-7|FXjs{`Q-c1hrq2-r0f6?#Lg+-wp(Q zr*BTF^tZezMdoP>IAUrlTLQxb-h`BZen9SQmpa~=r?lwt>O_b$WI#k-krMD5b?TO1 zeF#dHu{zyBSJZV~Uq7&q&*^a_PAKY_b}<8&yL^s3Rtxj{QCiJ9>=tC*X8FgL!9JcZ$v1-%5vci^6>Mkqbxw)-e z{$Mx?#AH~^#U)aqEpToM2IZx-Y~-3T&sv;B1jLexhJA1L5~aLU(gx3q<#f6?&W1~* zr&Py`tnwXnW|51zDvvUA*pstE?4%THJ>cWmMA)kd3fZM`^O;da5w`<3_~gmIQAx`iaD1u*UZkPT`wxmHoo&K4 zoqCGq8V*J;Qy~^9$?nuPLZ-}4Ni{*Nb1q-p)9mdiNKhaZ zI4_e|Up`HHUoD8g*%dpO^UAMQzbH!C>5x5j%4KybCrGPxznc980a%G5-HH(Zu(&DY zxldQ!GJC_5kYW7`Mj6mJBa5#8vM!&sm63!^6D?Y8>pfs5?v0zQpk)5TGE?H~LL-uQ zPfx2y29ile!~F1|*iXrJRD~|JeP$wuWw6f$^LgE2};$d-m)BrhR;Ea0W^!xV;Up&-0Ubb5{G!e$Z9u^VK_OFV zDBlm}B3cZ8H`SJ7TodS|6v}=d;lx-P(l)ZaboHazdH!*fGtk(|O>)mQ80XobD#TkN zBe=~JeyqdC9cy#~A5j*&;V{*^ag=BqF)iR1ka?WSIg(kB5!_!u&1mpu4!k;)IuQV) z!dYgRF(G?m3S*}h1tcmf=SK?WD>n~ zYlWDCLOYYKO(g*`8WYwEkn?W281Gt+n%EPfh-Tt>qup&HrdG;q^S%lau7k9f(`ISd zYq5l2P*|92_8#0G(qvL|Xd-`a`4y$L77S22qQRTm7Je=w%EYTVx(>mD^?m!8nJ_y4>k&XW@J?c2zAy@ei6pxDKQqAr~E<^oQ@K!-POGD->Wg)G(Vw7# zG`+zn*XY_2K;5dq3!13v$}W)MOLOsos}HnLomj^V z1~oUsRCOVtYn?tm*p$BSFVgv4a!}s^!LK5Sl6SD42~VB$U#tIo$wFzt90CEW6NAWpmP@L9mf-) z|3mX>*$M}7Z}gi?}YWz<5Cf2&a_yCsS>-o$dS^kF-YU}Q6&($!o?e^-lr*L?s~Qse+oTi+EH^7QVP8}lnpJ=oY8|pW=lC~j%Gcxa>bk2a&6o96xPG7;VIQWHfYmq+p? z!Ow0D04qJ_y+XM?x;BQzDg4DueYYq!81j@_pDfzdV|JD`Ta@Jv^!0cfpDPSYAdGmH zIJ}RpHsXgYldbXw^oMY))5iT>JLJcnOyeq44jtCQW3v4nAWMjgfW!Sy{I;UKrd?!N ztAoz0!L^fbb%YLsgO!#Sgw`FqW1yk%+kr&~3mNQU>FeLUgaKJXT_o^194wI|BG(O=lF}^?J!EHH~$7v(3r|9x?oa zfYU7iV*DN0W(MTl59jgJWuObt+{r5UPNO+^Yz}XYz|3sRmjyqSsn>i^bt9#RGxT24 z?+N2f-8O4frKZGw!^SD{*HAW zikL_0`uW@oh1Nv9_LcW#`X$6#LYJ8!QhvFhOZ#%;N>RO)!t-6a0pz8!2hkZs^Q%XC zt(rSfFXED%-`Ocfkh)}}H~6INZ1d_^K+MK9wk&vei4jM60LhWt6AG4~WiyFY-VA7g z!y&bV#}CjIEjvP>Uf5G|KLwJQFVk0SqrFAO=mTQ`$J%YHJ-Vad-yqc$`6QFF~zVtlMljBs#p-JHU*;(gK*67l8#R`e6{dKe#g z9(|JHmeA`xz>4>M3VUg0p~GUy&P>3&3v$wJ>BKu4c7*6-I`)wi5gJjr3c_p1kChck zlsZZ4tCr(qEpZAtzAqQ31Z3W}7tRFYx%K_?5}|#`hex5|O-lkhp~oKmo34v@E#Zee zSkvM)6#I`3NuqLC>gz~d@#XP;rQZKzfFr^V9eK%40D~{nEXot;j+sZ6F%pD``r~xo zyO#0$GjjejQKv4qfia#VqHYk`v@&W9=N6CkCpzBj*yI|rT#RrxJ} zd3nAKp0GkHjh!a^mX%bV|D4#sGxsxavOjv;QoBL#-N6~VJ$Ukx?JE%zYeSt=Iu5yD z|IM%eL)u%1wb^Cs!!4zyEpLlMix+o_yB2pT?(XiI(iSi7?pEBL6fc(G!GpV%0Ko!Z zI&x~8weM;~JvV^l)JyFwOP@j8{BD|@YKL73shVU+FqbEbduZ=-zhv|C`%de3F zGj~R$2Ba^H{EGtvcPI|j6&$)^?p&jKC=+TfrB9Z}SXpkTA!bRo7`s|UEIM50<>#Vj znNch6Ml=B>pwfW05)9K$}?33jk*Lfo~v&b$g<$+*9|R+t$a zvxuBRm|sv%dyY(lFKMi{*Y>sob@)oKn;FvUCAz9v%Dk{gZqGz0y`RmxzSzmh%D@Hz z*|<7!-XCIserIF@ZOkACZGE*X1+A8?)lvhx%v?GUj8e%R#+ zFF(=4j!G|9^*XC1TM~rQlOUR0Kw^~nShfD0TX4W~p!)TR-Wi!j&q<0Mq3c9_+GiZ| zdjIS_4!BmpswB+y2VcO0$%IRX_ngy17GQLQzb^Ufsjm_otQv?ca*Q@KCgn-jYOOZ# zKJ?#~{~cYWD&M<0sP6})G9%RHzV3aG$qkGX#vUtwrB?H5`9lQu!x7O=Yju`Tt4|^> z&?(QN7g|sx?DetEX$>4j|K|ahL9l34d993E*6)*pq_0VSiZ@&vx6(fthMg*}P$hGL zP3V7hH63}_jZiBoBIxlgD@fsyy__9LUaJf}R}80ZaH#CDPeaxWvmbgkkZj|codk=L*LdZ?7Mb{tY?$x&6NKE z29(t5R4+}>o?k?)L3eSz+5|53AwO3??iexRnM0t6cz@EyLw)nc_CsKE zNw8oaeTs9Sm@cmfZz<6N2T*o!pJ8VW42C?&Zh@Ri%2=T$g;Fzm40_)wp*1Pj^Ae(j z{RJQWTmt1*eL&rmnO|WpG(nFwd4uR_GQC)fGKp}5#-(#(S2`n}caeEQmQ*jYeDl1_ z>Bu9q#msI#_8b16`ad17dm~BI=b@4D$qWRTjo-y>+yipDM%IaH2iH5PfKb z!)?^BS0V03#E}w+a$$GH8hiHJjL74^yU1a1vBd*bwg}to4NX|pe<2n=CU19$ z06cx_^EJ|@cO>+Uceo{Bty!wqj&?=yV%QzErZBA z7D+`9C+`wWfO0?exp?-G_EMJstd5>i4Wjx-U;ubs0v7|=#EtDp<){*ZhYVx9nxQVC zw`W>i>s4Lb>6-aI;ajY?13XKiBIkKZtm#^d4+rh)OfmCz&YPLud3-%Xq`n>wFrlru z;EQu691lwlNhXb(`QybxMDIpofzat-o{@$Df}ydIM>xrL2anIkwv7c2sTV3Px-5Z> znfZ~>(u?fl_y#Q`;B#>!@y{jju{Q3DiAD!+FupoZB9gps#I8jNY~PiG$pVL+fltAK z2_em4VrXdzjbu+hL`%&pL@#C?#UTE{1@Ild@4#6_wU}I#QyEZPbemLPp?q)4AAd(m zla4_teZXhm+z@NHXstJYE?aq9xb@RdI%RCPkG~sO*fa`1l6Stw+>6UN)<&4 z%ragcvM%;#?jgeb(iVq;sP=>}Km@)tqngnd0zYG%40fxoAfI=6o{$tE5rpU}-<72} z&(z`3_TzqJGZQg0h=={w&W0v}yZRBTZ1O>KULnGj8KYG&D-d6KK^p5KvX*BO_{3uN zv579B#)t?oWP}5`N`e`CUfgNf8C$uBmHH5tJww>w5EpZ>WSN7B<%;VJJZ;V-b>GT|ojn1)eflg^Ttu5E>5`x%GL&yFu9>X&V=Z%s&JYm;Kg<> zIf&f_{yA;b|Kq+N+>u#Wv6?yD>f@`OIM$qAFXbdfzK}bbNNrt@WP&f|$tPaKoJ(cQ zv3m;^QpqWEd$i50-%yqB4TpIEYn~<&LsV=rU!OD!6952TZP=j6pZe52Ci4ew9K>$dqPsu>{-U0o{%e#?!==(AGG{;)B}-jKu}Hsh;e$C+**7p=R~ z&}03K*JRnmCbjxL^wRuV&~_@@js8o0B5E-bFbD)owya1_Vf^;g9s8@#Qr~Vf(q4hsN041ef`eE1IHw+; zlnSW_#L-$+d&Q)>X~rXt!tqo);nyOd=>2Zz_Uyg;j4R9fq03Bqw(mDI@cH^&1yvu8 zG1e*W1A`_2&DuogbeDuhY;BxcY zM3u_LmwXrKVvCfBgEWnBFkHIuc6r|jaR=%Tx49d>*>oM(LiITDuAod(TiH}OO*+_- z0E*om2NgMRWE<913D2;;<)8yX$)rlsb~AB_$wBAe4oOtjXH(in-Qr-;*+Ux&J(mX+ zP8#2$6dv&F--kUTE2gv>016U5{6Xqia^21hkW~@~XTYk787=(KqKCIyJX?<&cXNI2 z7?XmlVG%ay0hec$Cy2|mDYcW{(epdF+MG2fAwu{n>A`PG=u*nIkRivB*T6}MtB!sT zN+VBCG&9-!9Gv6xXO#huP`_u0CUn+Ul$Rd}_V{#4v|qKbVQGZ-RbN5;y?PTE7ymG; zB$#|?An1kyeFE!0onbG6fh}h#TLIEhm-YDc4ngYXk}t%})8%k~QR*EZb#`Cs7VkO` z#%o_{;mBCuj-QL4X8>{*nXEA&cG;HnDnJU~ zs9$%j*2GOzMcl)YIR<18Wlnbf=VcSf&55R_1-49f2Xx$emL+YG4dpkCp%aDbYJG3?pVdrCC^@I|)(aoQ&q@;$WS zE9PXvCKc+}7sXu(`)`k6z_;s-NGyxR)$$y{cEKj@(wQkml@13{mWrKL*TvO>hlSdz*k5tTkKO6=M$g2oPE{`_A8)h_o?2 zf3q>*@Y`25(G`I(4o1pf9VZX+RMo=c%40*L5Na#Z@tYNvqTkuVQBS2ce#vQwkG>67 zolz=q!a+XfifYGPNK5$CRc_S(l;z3d^BLtV;nAZs(r$$w%@^`odJhX3H_-i@QiJ#` z!7(XRyE3%`3(CnJ%`GvoaTn{`%0KRB<^uf+W43O&g>Rf|(lXfSsf*!@)?`N+Hpq$t zj>NH1H(T%tvgQ5!kGnm0GWCnOq|40QrWujYGW>+OE4^8*iAD%4l3-hNUC>`g)v$_f zhZl-}psiaBMRoLX)L75MW4`%R_9Xw}dqQ=WSFO6}fqf}{pb9aa!0i;ap|xAFwOwe@4}cwGpxRrDSK^0;o^uoeI1vp8U|toYFSM;<7HruwVrsS|;FUn6=@`HvxgY{nn=fSEf)sqbiJfE)PJmE;qj)lp>sK48}w?!J&wAb*GHgu7HgtYrk-AfE8;jS{k`erQ{uq z)fDQpD^s!?+@FqGw=<6}D+!q$0iUGrYO@C5$vQe9F1HENd>=o&!|Ak$pjKjcX+UMg z9u&H{Y1=L6IB%p|&eQ(D`a{^|tVMHv37nsL(4TI24m4-&Kc9%4HbMBc;2kt`xy3)< zTBadoX;w_*r^bG#wCI$cgUtEf!Yc~{+hI||iv9rm6x+`rvj4Kz~3d#Z?{^h>1+kb`e;nXHoqp;aP< z4$w>4B=%_Ne+1u=ANf<7d=X9~_Q*sYW!L>V-2~>rXF=fcfzZNARnO}c{S6uCPU`BJLk*0^(dxI=ejs$?X`bsI9UMwDv6+p1`Jw4hwO061a58F^~ydIN+7_*|!XM0Yy_2p#Rk& zy#HWzIS*o^r4hOLs$8AemN)G;wexQABPHrko;p|(*upq7Yjt_DDRH+_pqt4X;Oje} zMz-$icbPD57`JtyY9wKEC0x~{MaB#=kr{FF^|eSWl+v7(zS#DH3e8;X#knq=4<^tV zdQ>ZThQ-oEbwTB5c`;^5IN8EHGy*-)5IRV?`p_U)J`CFS1R-N9{p zrja`bF^jE94jL(?t0ex=@L6aQPFdyx)xfMYyk-KRIY|B8T@vB1zv7QFEIAdc+maX_*%9yM)n77U7Tvep4d6{zL5Kap4=Tp5YU0VCK zvF(x5H4>OI0V~f=*~+Z6`0mB2`$YlDS_9?ev{j{6(7%V$Z!AL|_-XmKqdXrD5_F_C ze^!bY7^SuUyB3mfkFOdlbf1I*$A!x!P$U>QU(xYQOW=8RUTM~AuS9NNU?XrN!{{dTwwZhLn1!?a31` zPjk`Do{M|*Zj&4vfvars*(;Q!vtc$(oA2N*ARe(FRhpWK*%Tu~=W6OSY@aBuvbr8> zWT-Hizg^RYV!yzp`k|!*V_opbwjzBmh;1bzEZ}49=m6L8iwi^o-jowxhQAT~aS-^? zoWHXn#aVcW>h5}fK0#4o+|}uZy_~Z+o%bfd6CnEsrj?Hi7wP>H`;^MZMW<|$8L4V* z8zd0TkzLS~R4T{%C7`d#`QelS*-F*Jxv{MQq(?}Pz8f&2<(vAdIgG6A>>KklO2&== zGJZ{xy1uIBpw$tg2`&3*fNv-=BTcJJw5~MQ?C=%x{sDUoaoS_BOtf87xAfIXuZd?) z9%1OXUSl|x-@uIDsfWMKdXsG!d(bAA`{03u|HXGuaJuMn?nz^>6e&|>jJJYeX?t64 z;9GtkHz?i49$@)E?IqQxBoQ@99vxlf2_4-Z;z?d7;lws?a-8aIijeTTm)>4BcWs6I@izWJ32%XY zq$pg-R2zTuw4|=g_dN59E=5R)0I6l1{+2r}TD6^`OmW*hynGrQmjHRCTosnDVh60j zD2lTN)d?paS1Q1+l^AH(E{ht_Y~ek=JtgwM;RNf4GT^1GwB~g@&OUE@O3aFz^Ynw_ zg64=vR05MePBLQjC;-`~*}4Kin!Tf`pPE*;4oK5?@13UJsGgF=(~p?CiN{VoAU!kH zV|C8HgZ8*86r{#&1_GJkX70iI#M|8ZyGIno45@v*K7(&F4fU*u9>r_$k*7UEnL>AyhTMevM z5HsxPtTciLgM9m=az7)WU8y51-v@E*){RA3@aak5t+VbZ*Go7Y=9_(emxi-^fsec9 zL*$^eJrV}e13yRBwj5L`39Q^8&eG)c?`G<0TcLXI(fGO#e6L|sPQtE-8eapSn#NjO zcKh?~np|u>R(~dOkw*M!i*6HEirAE>_Wj7jQHivQ2ZkeX{={MN9SvJOZJB_ap$P!% zmhkylYL%6BQJw1T^|IFqHec$fZX$yf10_3DTIE`W??vTw-Nf5l{I%CwsApBx)kEBMJYNBC7~(Dz7{Wb7w5mbmFWYk(c(z!w|Z4Xl&r} z!tx7+V_eGK-Te{uM}%a@)R?b*XR|1Ie}#CFan{IpU=O5BG}a}zr_n10{a z?jZ`l$k7>k>>xq9)-=BjNgo%ps2V@ppPKG0^S9?>b7Qkf9M&MFnpSBL4iCS;7UWdLmZ(p}Sgu^+L(W91jOsG!4iB+WH%G3eAa`+46L3yuj^VL8bq>+SnTqX-z=!#7 z0@at=$tP}-SHv_{xk0m9%$qCpJFPO_RjQUZX*IfFw%~2bjuqEbVh0dMaKo>ng{g|E}DfS6VS4maux-iAAvLHY&+jf zE-Nye5NdMsyN3ahRI^Nf+BJRn4K@8do*pA|kwqV$hm2Xi1iE<$eqChYLM9mtU*zHD z(v7X0_Uc5N^gkC8I$ADi-fAgxL*IcJ57Yct9hKLCTlw-B_vcR(EP*GV4fK`WRKhtV zAziZ+T*JsbNWSEVx>=Y9K1#$e?GuI2jDd zWOR^~KjSlX#|*Bt#UG0ynZ%js2%QQqj(FzZNBSk77_m{7blkL~C9V3gmkFfT+K*V> zz8<5*&SZ1*Zb|<)z|gYuCCk)&A9Df_Ji)RsKg>RPU?b)Hgy;K$1&NV-Fc zOt5FSHrn41?-@zs`2~k#I0lQyZ^9?3sxpmj>DPyAuT$B7WC^>amfJLjux3SlVp+~& zt@8Yxb+bX{41JN5Y&fA8o;zgxJyCC$IQ07k|2$XwFY59>ri#*egFQ?CvCDGLcW%j% zGpqcsnQ17As%~pJ%^g!UkUF5)p{qn|ybE$bk_Dc5EG{*XC@O(45WX`SYdWzOe-7yV z&wVra^0!Az{exr}4-*96TO9oSi@U{fo_&=6@8coa_TDTtXH21$JE91+&9osC!y0he zSik@DX_&i6u0zErnoKA6Mv~+wum7B?^55-qDfwf`y6Va@NnRtd0jgJjnzr~iW0A<@ z4$QPjMe-~6UBB*lPE7d!PD=U+l>s>zmP^-XZ`r>z41c<4f}7%{bl-J!7bfvvph-o} zNGi7s$(-E38vp)37S4aFXme)@`c0$AjI|?h$?oj_AMgG@v0#_t2DL5l6NK+DdOVs8 z{x`exFI48AXGIkhG9U$+p4)8mFsI?={wr@NnyZFtYiDPmuAWd{IsI6M;IGI5`FI>E zArYZ|l*OYpe`&*~(SJ!q@hDaFvCYOGM0}zloS5qJIl}=O4txf8`~A zi`LN0%nVZCO+U%L`71;5CyF{aRN7fvyK|wD`KU2m`iEMEe)&r;3LziY%y$fex}`eA zuF!DVTu)y5wSd4pMV`uJrSw9}X7FWwMa5TGJ8t7vTz^GyKGHv)8WjlNwJYa*Femye zt3V!`@Tm{>e80h$-ZEqfvxpXx}W)YM;`M)m6zqG&4pHCw?N%)do)5f6I$eeTZ(ROuOhItZayPUzYtrAiB_?((&X~4aF&|_qbeaULcukrYs!H%_ zL;U~emH)phOpq;&GhN(v`Sn?x*YgI(pbvHej^;1Jx5Ig%RVf)?{%-`k|4qt+sy-Nh zn=bu*Nk@?2^KZwiH=n~`KKfML|8aovcQvz?&uu!QNdEm&VbtSq_ai~Eq1wDmU;o=< z|1+ITlta2#zOS$%HFLmU@dmqzs8s3IWqaa1*9fb_oxs2ujOBi^7P=dExqb8h{0fYP ztRK@u2?|=Cc|@Gn#_eS7OK693J8F*Hg@2EwFvBQSC}%o!kSOI$6BBhZ@cnQT>iJ65 zJ@nv?N&P>45j^VmW;cP3XN4~uM|V{nYhE-!Dxs^%%tmY5V58k^-)$Ypob{TLK+y7e zvq;NA!zYFLGHAzqC#)w@Kn%o?5De6Z6YNYdMVcpaJE@QYlv=`Vz8FBT|d z@~*rh6RwzvFep*7xyWMun|T|*c#ixpp4J6h5iZG$!T%Ws{<#rspbdKW1+CpK&?o8k z7Y3`B-$|pi=0wMt1~M@BT=XD-BSwJ7Rh`>b4t?!MY4EH)Z6^`fGp`UdG82s zYzCuAu8-BmJ=JNIUCSXAE_RTr5kCnaLDQ1K z-Gs80V)-qUD@wVBWO=2j(0S25dfAIo{GTtoJNp zcR*H{HOIoBUME7!Pfz%HA~xR}ivn&ZYFKPf4h{~MOIQ(gdL8CA?}lobQIVjAEG_Xt z2nNwYCLjrMOXgpA?Prz4cezWMpJx#uoKmg5ciaVk{E$SC+D82NRf+%HJG4gr>UR69 z6+A|*M%@8||4jjmcPMkiW*`s02qEoS)%i+>D85Gz$B``I=Yo>dJxV@U<0oxsha#P0 zO*2=~1&mqp8R$JIe;-Wr>5Eiwrk$-Ti;sQoOVW-^*%J{;9o}k>8$qO$ZV8%~$jWE! zm@1&$FzYq7T@Z1%P|K&Z9^AWk`rU<>M9MNONUx`Xjc#OltXD-DKPnza&ATnpiohhB zJq-a!q<*KlLA4`@9yK_8?|m@xFm*NapugAVb+WRLiwSD(=}yT? z{4pqeM|Nzm)7g8mJJDOVoIrOmVg&T3Et;q;5pw?V2oB4+A0O&w0foGNdl-@y_GZnW zm?YVQ3uOwvI2Zu4GqU#39Z9Y%C0y%3?Smp_we+?CW9g00cl5B<giL&2m=6^&~APyqGFCi350JFdJXb04XC zXt$#%HSZ>#H`$>epXjLg9tifgQuxjH|mP#tU%W1FUL;& zWqMA)kl0Jl9Z{f=w(>aB&B z){rUv(Sln#oMXSSy&2-;Z*bLy0IaorlfcSJOV z-XG6^<5|Zk3dItU0?NuxQ11S+PvSoy&)-`asv9;`t@|&l zJ(?!?2z=ehJ5K+|7yHIw4zP-eY^sJ%Vm|+c?Ejjo=o*M7i8LJu+nZhYJJz4KIf{7t zvCQ|0@6~Buk+9G@gB=~hZJnw!K{$)Fh=d@pc?p;MSwsz&@40lMSg+L7cP^qnYkA(n zEoQv$&ylM_uK(^)d5s({$}y&Poqtg=DvhJ2Vy0lPLG61*Kb-1=u!=`18m$m!yECtJgt1zxZ|p+&?NJfBNUEF6#YZwbNdw&>$OVUB+qn zEtAjc-AuLmlz107g|<1I*Qm>07G+R6C6a)3YW7IrBKL?5OxsFl7II#EZqN=Wp0Wa^ zuM0k{vm8>8L?(wl(Do262#?gjwzPb6*J9%X1Ur5-oQ{CC2&FvBjV*yJWU=$((nY@iA7P1 z%ZAEmD%&1%pWF{FN%&pXahdg6LjvK(TMKj6ePLLor&c*?;ii&4OR}7lW>{$-JYrrY z8UkIucp^?YDh=C%NQHdunJoD+j}eZ#Ln*Kp_%X>@p)b zT0$h03F$n7NP&pS(&II&43&|ddun~MhU-x3!cKLec?z=&OK^i5l*uOzeDKk)zXIG< z0~9O*@P78-_cPY*zV*=SvSk+XIqP##e}AakYWh|^(3?rv ze>0U{37<}@`0M2&;Z&DiUHm-)Ze*5t-eKCRmdI%3DVIjU2XKm!R=yH`B7y-QtV^<6 zHr$zf361@^$yKf@xBZEIZ@e5!(s)IDJMII0@>mD6CO)eXsjt&E?oFqKfbT#E;E4t) z3~>|o3b*&Hg9Sr5s~AwNKl9~rfWlPU)Bcg$@Uj@Kt7~V=b#wL1mvpH9QICpaogIw`ZTI?NWXxr$LPUd=+}5 zCF6yU@K7al1Oc<55;^mN?DxbWX4w=L0~d*O>F(I%X3na=OZO-7)hO{t$LK^{cJdB- zTzP+-6c&thl(D-EE41Y=sa{`rDa8q<6$#yO8^QnZKeCq})cE>u49-7n$ltUFIX)hW zY-%jyOBro)GJ&`qaL&}+i-bL#0=NeY&~lkZ{nu*;J!=Uov(1$NG|svfHYGu)$x>1a z3zS+_`r`#uj!wNETW+91#&nHmYr&p-i>XJc8wxg`Dl5!TWvtx9^`hSDnD zOe)insrQ#JPU^@xd2Fte=nXLX%qIOtilfeRJyFZroNHZ+d4*zG90*@M!30`-cFOzF z;yz@G3R2%lKH_q%XR0QJaF&wBRDLg}${pMr>7$Z_}NS zM}%yJWLx0dS~gh$G)t9zYn5gihxtpPi+!H2&a7ABqMIkn1spirMhRgTzAj^dhMOF= z^A+!+ayYZ_SsQm6_AHzgMj^@GV~;W@jMDMmf3rAuTWVKvem^`gwzzCanYGZI&t4Rv zH=Os{7`}#fqFRRC-@q>wjnGsVeLu@8fJWLsotCGqFS0BEqQV(ehOwfq`zvDAYjZh#s|v z8igDjDjx|Gd!_9sBO8YKX?91PreyMzHyOH3M|azQ&=E&d`M8#wt~hv> zZ%IT76TjB-(D_r>_}?W}wxiPe?WBWFL? zDQf!9#&NY01})SpM+Tq|=M2V>4+D+?b7iFKAte5rQw`Q9gwzoqeCciHmbPh*S%NqF>!(UJXOUzo2UWg1CmTVsl1 zV~bP0p%@nPOfKY`@ZAM5xpV>!fNDdm)H>E z69smp-7nHPs0lh>A$CvW$Lj_7#e>W*8-A%x0xM9oCqqrqaph?gvROv*>6b<`_`+9| zV7hU}gCMe=thn|!Z#h(wYbohaz&zb?+Jdw{WneKruYq;0T+1T&1pQ-aU*a_?C9vj* zzNm^$$ABU@FqCuHq|m0X(JynIO;*H@SabP{`3o?gJELlAvH4@~xcQ$4F*g87c`I~M z2slt{%cJqpGMT^i)j9dTVfixru~e3$_*;_jSAhmQ*>=E9j$S2?)BB!vokT`RRitXu z8q%~?YE%EyS!k65HD7`osGYyw4mWJuhUrj#r}#JC`@j449IUH^p=9>Gg)$Pvh{Qlt zM)Oeo6XDl|t2WT+OPO?@*Hkz-dR7XgBb(Qn1J;Xf+6i9L={)!qYGuR-1XxzO(5F-1 zb35_X+wsUY_mcu?ACJ+*UnJEsFyF0J_Mp)vr&VX&W|v6PN)oZ{=6ZdnVLDXfLw7!$ zGkLAjcZIwdU3UQkd;?3`98A}&Mx2pyF1Jcdy?{(cv>^ABkL$J6zm$v`T@M<6s2j}J zb;F4w7!EZ2e~T=zQhd zP#-}&Jzz?eJhPsQ#>>2nGfIsY6*^kID)B>N%)znI|RUfv6XBrikcP6A9O z!rh1_4|jq2i?hu?Kbs=rnUAUYl9i_N}yO=cva&*`D!Vlef*85p&{^ghc>a{AIT8jk{LW^iJG;kg1@7?Gck-Q{SSmlm zlDN?OO_XU>YP|h_Q9N)WWz1u^)O@nk`{rm7riD>ptVK9^*6pZ`_wj!{_y0HJ_AkC(Rg*iPO}}mPgOm2- zhXKgH!jC7?Y&FYe7`3Xc4qzF(dyJFj-anotgEj_ZtoHYrFX;kyKn4*+JkiXp1o&f- zZ1244pNLn*aX#E#qqn(UeAo0kx1LZqqWE<0ZiZ5$dd^;J)}NosX7(mQf9EOs=FIc{ z7}7M^vZ_BEm5kX8EN$-hXY3jdLUZ;oXd(v8;@1cyg(+hvCHLmKio$s@?1k@Eh1iHX zjkBj>?EB8gC(H=DbW*KvENb(0fl+BVY;g^qQ4E|;YuIKD1#ZSdmRFDTChxWwwf63= zBXPO*^$2T?LTIZ(13SBlk2{}v+pANJ^{U2_-uOWanFt8Xc1z` zsKq32H|vzY0qCTWH~WJu;Izw~E*L$4uqq6;PM&?H@7`gD;oI&YkIttz8tMG;GWXr^ zysUaS>q~Xc=e^{fy~7=0S`yxy-hh6&gMI_)Z`30#aaHe?vX|SH(HK4! z(Y;vLoBZ~6gMdl&>dPlyAkf^$tj;sLO%g{=|2wLrIR-Yn&*kc4gVgp|7FGim`Puaq zQ%Cz^lP}K;{Zx_X^HND6vw~Q_#qI}qG=j#`1^1bb@P}$r+_apme5&%Zx>x#Ofak6_ z^6-ma-_m2F+nn1+9hp&Eeae2leN48uxw@9U`WZ<>B&-k7+EQEb&9Ewgl|Fu3YN}vS@2}3nj3e6e^eJv_)UfIlRXAm6}Iv zkn#s?S2T^klJzmmTKCCTc2#|0=v}-X{{Dq>1e^C+;13)+e8+K?r5YO|M8gh2ZK}f@ z4!#Cs3ZwxZPc1JukuOyweTVtAX)oL8a(?!0Bv)@Pb!r;HlJiL-GQMO!8PjXto!nw{ zzq=CQ^jo3$eD(zg3xJV0Q9C)eHIzX(pfP@ zX-Ks{Q>D~G8c!oz(Wx!*4O6vV%0H`d`+i+=nJF-Kt@(L)M-~m&OsTFa5&CIwuo&(PC} zg^yA>p{(tOl|DhQMn$>mj|@8a0c+SX59G|cb%GKbgQ=%I8fE@(htoDFd(frwC0LF4 zYjm8`s;BCASjX>zRbE*UUTpE0NQU6vO9|UU)l(N|Csmfa&fgQ2A2)nz(lbhhgNA~!VEBenbjV!Jt1*| z7QHo+Of{O*cGu6E_^{Y+gwYm#pNjLr*Pxx>&Tai<2ek^;RGDrIYi@EGn4;wl(``Pn z?GZ9q;7lep3&hNUdjg|s-*dAKC$WeHqvNeAMtv1b87wSy>hzCZ>Gad`)2x8DB=KxC zg?bD3KGV`@GK^!G8EJf+O$5Gr3cEaNzdLLZ1D-~%f0i5}Zk6DS788VD5K2^#nY0x2 zX`kw?UZe5==5jx8J(O2aci6x@b&(`fP;UF$u2K+dP#Syj&MS5p>hBJb_4&|qL>1W{rbteYoPShn zg3D?kvr+L^Pejpn1$veO40P@f|(JDU#S+4BaJYZeJ^t$VQF;4^9} zKpH>AC~B9l8$7m~UybO>?ruW|TP_jYTzF>eXbF~NRrDV%U>qU826Sr99B`37K`f8W zX?axr3HBxW4s-7Ls6kDtE~f+C5mgtD$MJXwf0L8q4k)LD@=oZsBnOa32Ds1J)BE1w z{7E9)s=UR>$9SCA%aF5KSj(jGES_LhoOMvmZg}VzkJhHp<5pm!a)Na%aEdfTIZCe*8fE^ z^JKiKND>R>Xw5G$A=!v+{>G`(=SVvmc;db{uDJntgA;+zQX0^E8wK3r!_pT(VoKwe zz>B*U+JPuS^LODJ?aFCtMw6p_=;syDF{{Sm111+eDx9gjJ|RPD!dR?o;^q z**&SmhBnX6kZ?`t;2*2al2@BkrrlPNA>F0$Ltn+8_!(gJnihO6m(llQZ5^r6HQCb1 z_$%w?+KEhB29$jv=1j=QdQv9Zl!T=1d=q(Vkc6<)HWdo}Af5Jm)3xW1b?nwM%LdG) zcgU4f7>tDawk)DdetiTgc@VrXNS2QIa(USCRGyew{HW%~y30)=+vHPv!)NA^9)kMy;^2~s(ch@Z9kS0zmVcI<;oDnb70TTVb{Uj*osFY| zY{YVWAXPsnwuS(WzNJYs`#=hsj$xlzP@YweSXIi)c7IcUB*OaQ=!ZulZMXc86b(i+ z@h!8^dC$yC{L3%5@aeGi>;+N&pUWh`W65U6WzYC!)oe1a3R>^r_YuP2AXM%eWiOiA zk;cArc5U}B#KOLJ=2P-tvXPhIHY+=5XH@?NOk7iGgV;w?f2rH!spV2l#uL0>83y}Z z+8VOCT0X?me0yul@S4J4&9tI(Pb_y&$Zp?To}~n~kFf~RF%GFvxKjC zONtcDd=SKtsSrgy>mRYIhF~iTpAW?*ox0K4LEgutd^bcM$Frd|N~codcCSniKZLJK zmf<+{MQDztZ1*DiReAV2WNfVB1VP8 z8SppdfrZCTT(UwG2U(VHZD0C5J=@7!`*M>S;;}c0$6z#L$TycbZ$jSie()LTY=cx# zym7cID~}dKGHYceP_Xhv?hhWDVWy^r`U&l%MYoF3#YWrW&XO=YG95Ado9L|f^9?~& zJ5PLkHun2{$A4k<-K`gur=E>$3ys=HzQijuTo%yFmZZ}^g|Vw`5dlCx+O#*eiln+= zKAiE_C|$$}wS4}CKm6iVZ~l1monD7%qtC4a&8(g<;;9lU^I%YqtYO) zW}Qhfe!>tzfzIJ~iRglThQ-$2XN1l)W?k;F>ke3VC2?H5ZS9FSPQ-gtBy3OHEc{?D zHO6e?@%$_bwChpmSLjQuNH(uI=tVu2!9YiR7_SU@{Rd9*mPymM-#sD@Xusn2(T4)s zS2@e8HTH*GC(SDORtS80ea@TX0`H1-BrXTK31^GUo1%Y!Wy#yz(@=XMY~Xyt4h#@v zoy<~wX5L4dhZ%8SDXy2rn9iqKm&h{Mw{+@9W)`vNk^Ss!rC2w3cb9uydLw@;c?M$1 z7Su(vl5hw|#7)7>i^6xc)ivJ!n^^W^%;bl|c&L9mx~wseSDWozISL_1lD5ai-%2V~ zLx!9D#QoN&U@5}+DzPZS^pRWI*?LvD)lI$f+11O((yFK*9@-1czDDoCIjx$;&m|zC zR@<+M@Q}{q;|Dw!qklMlnE|v7(1Jxxf>O@LaMLP0ocOyqtmV+&dA3Uj(QqdkG%^<% zSHBrd8-X|S^s#^!#HF!P@@|>fSoTciybJCdlhYmo78^hS|2QFqi*3l*=?}H!H7(S?Y zU!9aUr-S8=(FuEhl2@~TTu6SipO9*ya3+{B=KT8ysnV0L2#G(Yt-!*OSP#uWZbSR2 zZgvr@1{kgy$%h@f-G|ORU#YN4!#ky^59kr=!Ic{tr~AC`m|m&do_f2b9HQz#q6aNN z@*YjDyt2Ej=8x5DI^C&^u}Zjr>_}x`KKw(k5{j)CY6tQb%JnoOYf<{b^(3jJ_hR`K zP4^9*(IS*TfBYId&wfTQ!V1--4Y}SxERP9LtkT?f*1#*Iw;1RpsGykv{DGEiZL zOcS9!t@y;CaU2`~RbI;%r*LyvG+~{hh4XkZ3d>O{r$QY$H_A=slFQt_w`GdCvLp|a z%wH4hDv~ad-~xd!liES9_`OrdfN5*8jUWhyH*93y`4l?28cp%RodqW zn8433zkO)wI_Qs$WMIt3oCr9v2D{Zye3ZN2mjNV)`Eu6D7E>Z6wmTm5s`+@fT5bJC zVLg?CZjHv@k?e@G1fZr#KC{=b+{9V#cCWnSJ zK5Y(ws&RxbQlPPhEbnui+Fo%W*NCaozsur;;~|?Ukf$x(Cg>f4py^6T@Zp{SH$FRP zTiqJ%mX&uM0B-yAt$!*Q-&JdmYN=3@?@+KFE8uFLgh_ z2n=(3%Nu3qjDpl`wLCWPkieVm<|c{typXT!Y>lGCe`=Kemmxw4$>)}b7dh=GZoSY~ z$1;s>5gpw{Nah&#JCIUBYqkrmfr;!fKD~+tLzNwcy2&9GNghbJgWV4ASP!r50J9){HS=qN18eEz zq19${G?ITBqqXl8F`ydDcM`zB|Mq+j(mlRH+DnK(_~`IRsw~$ldE3@Wq}(4%{VJo> zlpMs4HV`!HwfP0fO8&5TqL9XhT|N=(&g!28Jtr5)XxaUYzccka>>?P9c?2!t8OXqTPIaiynG}lIyzG zJW-s)osVBPz{bEn0^5;)eH~qtJW=e+2E2~g-Np2PwKDp!WkCpv!yHyQuvNv!Q5_+a z6niWwU*K$KGy!@4YVlfRq)&rH(pyo(kHgCq@<9&eWZ_rJ0H@qb6zpA5jDXt|r-CHr zU%?Vld1Gysh7xnkVasf2JO~E+(AYuVE5hw2L=@K6Z?mUEgMl<7FOGJW$>g$;x0C~2 zv_>O8Z(2x%g!Ij!r4^im*w;y%j3l4&aHbGG z8=lsb;P@gW_G}#}{g8BA@v(8q;ILkCJ2s20K^-@&CLq)D|9ar)imJ?rl@wlgoyG?q z3DAh2NMLWCAQ^G0CDOMhPiwCfvbcGd-h{o~?mb`HQO{VIm{l+z#yh z`F84Xr2M1x8b0_C|!1JKhM1+OLmxI0n~*pvT?yUowoJT;O&Pmf+c zu_R@&Sk-hI(_od`)po2=TJWEKs?ek8C(0Y}R#=^~vq9j$x~fztohI@PajC+I&pskp z>s|l;{J{d@!`J5NDJP+X(R=uP`z4v1b?3(PoeFftS zs}ZG4W=Uv-&G`ek{V3T+225-utnn~ig?<`BB!YPZ-KNzQd%gJZTOd;S*(ZEuHjx+( zVe``?iB=@KR2xlUvZT9CWKs)MJeN9P(lHtd01bS_*_Z!knJ3IUX>RmM_|%Eg7?@(% zQ|V`~&3J=7^EF>r5xy_2zxmOzHh+oPV;rp#P`7!;gCzxx+F>k*XEb7AnDE4W08E5+ zHZ~56t|cAr5jv@|;NdAfJC$5SF_uhk7=WYqEQn9T+aUgi7~bYCrz>ywoXd$iLSB)1b?OAN@VS&;`kp8Z-}j{g z;ukBo|ImoH)>k^c?XBHv{&Id3_ZUW`OX<{>9wKP^n@E()o%bPz3s5;VH65~`Q^8>T zIQ3PqU*GXrDCp`smMM{lnf(fqjJky$wkz&?Y#oM-uE%OVs1gh`)0dr2UtX~Vr z!aEwT^{)MsRCJd`z!{FZSSmBrbuofSKYx6(au>Xymo08&X93`>e5FR%v`e>>?!RQG z)rd<7n_g+pwv)&X8E`js){_`{Z+1ULmC46EjY}3Gg0PirPVa?8@MY^6`<-1$vfT-X zF>~$VX)J-#*g%bnqQJ;r^Vr@;z|Iz>Fb9R?{T*(Y!~D*rpJLdPZF*HGqt#Cl$@!6m{#fr$A<4!+y?DsW<3tiXb zOI93<cXAQxkpH$l%zg3e!%_Fnp( znfZD&;;H2rW%6&2XQX$d;z(r5KiRC+uBVFep~;=~5577IhT4)d&T0*r^%RY%A5mMI zt*m>}MohqJfY7Y3?lO-ePPK+8%d;`70~kCxkDW3vbhp7;r_Mw5*}Is}E`Mdt>24po z(_Xc3hwY)^xOwVOjid9&JJc~C!sGJwt}yqT*`ttjx~LDRAUfogtx&(sVo~0s&Is3s zknd`U0D4N359ZVO%hHd)0ZbbcBcEi1uYu%QEYMS@Hkz9a6^LD5p8XGD7KmH|IAF2b zGNmmhg_}9I*`~9w9lb03or~PiwurCQ(7TVD<5={-TiuV+Z|-; zKx~p|yAwp*ZvEPLIK{(Kzp&ToHQ55A7LTW89M8T_OApph?LbazxNcq7_0&Tg+8xp` ztDJe6WH+6Dhl~pYOK8hAH*f*Y)NMRC)?$1L6nVOWum|9==;r2H_ZFub@ZWQ>S;Sxw zP0(7c_ms=7NYi~#Aou;t#E8%+n-r>^E|hRIQ3FPX=^L0$N~Gd7D^CTFM5C(TUoFNd zcJU0VX0x_Dv#UhK*FuD;yeL*`+>^}apaCInR{%mv(Hu_un(M01XuBfX3oNsMXBVqY z>6gh6d)Q8l<%b4sPMoR%PBcmQis1x-^;IJ^mB-hh#a9}Y05XT`M9~ppkNaJ3zi|*SmPEn8a#O@@sACe^OUcK2S}ii)&0X(iAp1%~OiH=2 z-YiZx#@FMevAFxvI!(IpgF)Gv)nkY2L*0eK0!fm*vP$89i2V;W!Z^tnKu+Mt2|`arl>NAr|Qw#QpwKhcAN^ zaK3SUW3-n_^Mq-f*35F_b{%CMWxHLOu49d$GO&<>17Cd^xJqRY-CwG_4{QtXW&>KF zc-}0W&$V^wAW;|YPk$|!>su+L)nKnMHy^I z%?wW)d0+IBj=a8hb^MdOEl%%s(-+D@4=;Ou_OjtT^)0VYq6uEGaww%T8M^Mlu(o&vGdrdXOtyLYwbnS;AVG)FA$C0qloOO5UW#%w&OiFA zB7T7l>y!Eoc|CnYN6Wer8WBky<*#6Rk;8V`{{jK6jdHC@sqcA~?|8Q5q#L2K=BKIj zUogNZd({b#H&UT-rjWxEBN}B8JJ;%BL*c9olW&|C@bskR-9h{99;jbcRg~-^3?1-* z)~xFJ{@MbBFE`tv`rr=>Hp@tsLx6UAdxs(xmv#7Z_{5z8WX=@o>(Cv#DCRacm|sDW z?Pt|@!v8j`&wKkb2ba#GW$}((hvD+`Cz0%|LaD5k#NRDq#eP`nOZa?SRWChD#b-o? z)q37=+SPq)Fkm|{sQkU74aWK+z5x`$tv?>t*<5*71KsNcN$9QZdX|rp(OAXoSip3uN}2!VRc*(kLiL7J z@4!AIw zPQuGI&mqcM9uKwsv*Gw^iMhJ*UuU0-R~P~|qw;|c+hErj^aX*-b_(hBm3fQlcxRA?+;FB#2p9Qgd&v&a zROd=Yh`Q-`LF4^%e;H?-%>UZtCODI@w%Z|VzrS3!_zGn|=8@sspBlz)c&m794+F{n zDDnu^g1^ZE{@>(OG*1EVaA%7*i{&~S81L`v&TxwljorpX88n)D-Km|O5&<+{yIIvMkbwh zc_}7odpRyccd2#@#!LEaprlIKO@Rh)Mv5O^=w9d_s#0tuH!(xqEABtwt|Z)(%FH*E z-zL1fpp1dBCY4n7BO3PwAjur&uTh}GMyE`xbh%}D2kwV*Y5s4-B?ug~u zaAkT}8jbzV;f;}C@qzDsQ4njc{R@~6)nF{9W4e7^X?qz_4*LwDT;--95ks7X(a*(@ ziWlL(bRs{RL}!@+CYS1Q_9MnpsRy z@Po#s#UKD*vx7MBQwTOLi9qFy!N{C5@&kXoKZ1)QYyusO@N@ZF*_Db7*+J|vUXpz` z9)o93Myyd-8V&KPFW7`hqzj`aBekkOnv`Uaz_Lc((VhDU;z~P9@<4I&5#&^k_2=b- zzq|`ri(KXd?>igiv(+u8eJCueZ27es8@k-ClSBX(EiUnGD#UPwLl&KStj$($8V0R} zSS{CTCvVHL{?FT|Jn%SE42cY;7Tb5nM~(@ls%^~4j@uh}qoT{Oaw|((UOu`q!;_E@ zPLT#I_LK(vr11xF!E$=#+NQ*420VnLruin@<|X5Q?$xtAB^QAneBc3q4xA}p`0hBZ zAF$bFRS`UA-mUl?#+6&G6d|a@(@o+;Ja|^c(b9E^GRJBfs}agGYKNKkx7~FU0tw(o z^GC0w=Jq?@LM2;-P>?`F<$$BDp)FPX!89qrV_WkR464#UfE`Z^yfqTsE^2WAI@&aS z;IZ@m+YY`!?{;;%f{~uW2IG0qf}J@vk^&XtVO7W=T4YC7{Ae zp;0Jiu`!pdbr0pm7bIfH$iWFP0m)gZDO=0$yJx$W&;RA8aj8O;0?kZc>0D)nwIvZ@ z6SM?1H~Gy0Qedn+4AEz$c?j08E?5zlFU;c5mi6@9;C$3pQPGq6bAG<#)1IWLS$nqa92X zVmVu*hk`bw`%9JRykjbFw|AZro!+EJ0Y+boK3Xx0>^6SKFP2JQA>lY^n~M50hW>o` zYse~%)U^fjYqncQD8G+@jJRQI8QQ=R4I?7mfa~{x;fj>N&Q{+J;m!erY;X`m@;>_m zk+MG>bRSiWVm=KAuralRA^a6w#J`C~vhp|$q|@^k9nYRRsqc?BEbNvivSY(SMxR*M z%eqgBv+nFVP{FP-M9pxPsqNm-m>Q;@$=I5zYMBKUQn>Ar;p+yexA5wG)-Mo;(1|j# z+Nc=B6+l-DcqhtOZOye66x>7KqJgvR0~L~Bvz?to@291d7I zvHGh%5`l$so<4=kY<|)(NF7U|i)j!+Ig9pqwu?#pi4hrPOL~4^8e&lV(sOhzeYw~l`nBfr_sA@VoE0mv)_rI4cMRL%9eu1u+k-b7P21U6(s;wD zG}A&)8^6#Uma|uP!BFG5K3CAXF@{F$!H#SUW=wTBugeY=s}=<>9HhGd`+?|~K}RI~ z=^=FJ@X}mD1zI~%`05!rbkR`waK<;hOZ3h3nJ8c<68sUtYk%plFe98GT$2E0xN^y6 z%*ZbJz=N67HsvR_;(YKTwAGnnE9&6^t7l*fMqqr|?(qFHc?4?v-7)=9M3kzFRNLYPX75p|7N(i7tpwtPm7<`4BIp8VhNBZ?xN- zKVK4}uIe@Unf5XkBjB~Etaf09af-U^w4i~fr(Y?xHr(?kMsN?`o{__1Mp`BJb}n1+ z0N`6O!XGuCa_rAd?e+@;JGkLa^o5x?WaAlFIdcdc|0b<9@-ja%TT(PdW!$HTj4Pl9NhSBr6{tt*5|x?(QG|IW&0HD?iR z6@&e)m@20k&T{0lJh@PINQot$Pj3?n4dgEWSBxKxb15@ta@x+hc@#s_mLY1JHJh1y z<}O;b2EmCpl(zk!!$5TTen+4mCIALJD+H{#C{RUHCZ>+Do4=Svq~^lMUkizOOEFSa zMJQ>#x^${-{2QIx0hdxr9n*Y z8yXi(_wSkc@^T)&lfS~TD1uo>&fRU^^&Y2ZU=p|L6zHVA>dYaUU{J#H{k@q+DvaVg zX5u4%Pmv(oR^3S0$f_i6(V~SqLo4Gw2H+Afhl1hyGp7CzdPmhfsB>mHaO1I3t)PIn zmG0#*gOgfbva;R={ETaf=_M}E7M#*sT3Oz{2D3@T(F6yYT5Av zjuW`NOs?y?uVonsbNn88$~T!z>=D`cd~;-|QIw<^yfAx55qiJ|yutrgxLDU5%>h*X znMJ4|wBSMy6&zV>5@hN_(E}waCTk%MaRCJz!!Ev@-8WNk=0SVkl4SAr8Z-}+is@?X z1~E8>EqU^sGY;8iOVc5XH?feLrR8^VFXxLC20H;}*`{ayL<$K+tw+0)Pn=>qpRJ6| z;K0X`_*`aZ56}#OFAS{{y4cNfhdlG{H@KNtr7goATGI8U4pE>v*;XVxDI8qCCt7k~wyF3C%8HTc&rBvpq} z<0);vubNgJTET~gE>5)JHs_G)A^8S29nUD}1x4GQuObabcf2y`M@G~7*0Jy=KCmZW zBDS|+><%(vDi7n|z0$!6Fg>yA=o0yynmHb;wWesWfY+yxdLbyH_}v&a0OL2U zqSo&R7#hfHzyf3*m0=VQXD{E?w~eqZJwlE_5B_cp@lF6q#veD~g%mHx33GY_cmwZz z{aNl_!nE-~u%I?2@B6abJg^$4yZ@eg^V&e&L}+Z$54V$=ecfQ&e&8TrzCkWQqFQYi z-{CZx7;8E@6h|R;5C1JOp<0~d-f=ehJlWjSVi7b2R$ts*ZytBckpKG@uqT52=i(4} z++wG3h4;6Xt9*7k{AFf9mqNLz5=LcOat^B{;HG#n?MaGFua?|;eM{!Q4QH`qY7VnqnqR7Zaa=kU~ zWXd#kOBrfGF`X78j?!dqC6S?u67N+j=s8D2ID86G2Za&n2Wc#aE(3$Pkxf4`3c06D zpF^D0*Qy{DE?d!&KblWI3U(X$6n6nOBmEy7nM6_QTgS(yU%6^o=+ z7xJ9kJo$&vDu6bUuw4iE6Wjoywtc`r4tLjnp9#+Z$=1Woiwepx-E({eqe2C9WUIrY zhYV`BWY70jf=>mgR*I{QxTHc$2s4*7b<8XgbwG)MF7Zzbn0*;0?pz5)V|A(BTTwQv zH5q??Fj~{c3s$8q8B4Q6PiFJm!;dJKQofF(l$?t z>mA768W=Cj1ULt8j3o~w@~cV%xdL|dHKfeUr?OHyKc&-ugBChldVjN%9%O+M??Ku< zS6?YFlJ+u`otbp4fzic3?u)-tg~p;3cwx_><8h`xO_k5&HgzANQ~AUFFL1aEns1k* zQF+V5_M@_Ici_Qh9L|#^#}K$V7%}|=xpF=o6v9VLd4tPKqp{KH6f#-uva%Y$kQH9O zwbRd$R`%Tvl9Wcoc+=wUW?dG)i0Yrg5I&UJdUvL9W1cY*Th#d~@{%Q&#zTscerfbF zl;fLL`vmrnHqeTNI}wF;eL$U1wUm}?ay}4Y*?=^<^Yw9j%f4dUVs2kJ5o3Ae5j@Ck zo*Jiz7&82T-CDAm@i)E%)d(DB3#+kGiy-K6B>Zn09f{?pFl@1iS%{2l)*JN5EWh)E ztbHqlh4w;f6HB*dA2KR`6xd-l?FL+HfZsY3bycZTOa`EB*aU=kdZ1AA!5rF|JMpp@ z7k2QcyJ`KG=PC=bXsfv+0f;y)TBZ=kKUVh>y#<%BxP5h?2QJzc-rHtqFJNn+y@DZP zb&gfAR#LUX?i%D6aA#X}kySS3msjk@`e~o>H7H0(bEfR~eP)QyqqW?{ukp@d+)!iQ z-qYjQ@sdM#C;9qV;yWhbP}Ij;t$rPwNk6*N4={-YR-J>9A6^})>Q5gI!Rv8*8@{i^ z|BaUP`CO_EBq)+j>YX=qu*^K`YC*gl;XDuyg*_l=JDyA^+_DEY*|jur+iuNRoaK2_F`>-uN71=?N3o3-01}5;>SJ<)t%hg0LDWs=p}crRdwh!= zOcRQh@V<1(`5|H^o5ERfABDL&ojIyX9o@TBtdvRcCmffhl2hJTGZPNOkvNlH$$*Mv z6E6!dO?G$?Gmv7Z$z1bGbBy8F(X32C-|2Yd=-JjNZN@A5UM~1T%jv}UA77n56u*Ve z4H0mZ9L8k1r(DX}Z$xU54}=ehUV0Yy^t;h?&=Jk}jYB@Gs3G$zw;5IgVdLJf!&O&E zLJu9?m}7=uH+J?XzAI5WeP_Rf>p?Lr7f{oc2khJOf3J|l)i&}sH1+HuW~}o zDl(&16eJ42eT7`_XeF)Vu0{jH005pOPNNI^#xyDR#kEuGSA_d|&O#ExKD5m82 z?-Xu(oaR~=6XqBb7UQ0pM#Qlil#F`LH-EnhnHfr{Ta`t0Xf}IjwOcVcJqsursm$RY z6ET8a)K13;8eUUbS4_?pi}9C`=nJ)=#Xvn*!*2|Fp%@vs+~Ok?HRY&dXXJK+Y_&IE zHa`r)U4;IWCFw#g}#m+iV1#$ZE&Lf z6za5p)%9MpcSGay-cG^@wI9mBxsqMm9@^%1TuUWIIj+U_`=_YIL>Sqz3n_pmmmT}) zS}5P0;T|k*6;c-w@Oxj)Bt4fEP#nO2ri_{@nOyg18-4affrM+0V>ldB=TTRN>TEV+)@{X*RBU_3z!+B=u|nHO(m}zO&#k8k zFU@s0e?}=Y$N2pFa3a%0$ph;Y33zE2l3gLPB1q#zymGmi4k+BcDt^u2E*?TnYRdh} zgm^$pn}|#}m%-MaATN7QPxSw6u*4hd?az)s%>GMRL-h9(&IR)#|F+S}E<{rqrG`=L z_7i>4>PBdYoB`UYY<@1-h8tv5Zc?zT)|lu-5ck%HMr1mXI&D>Y@*G7NJsNx{`xqsZ zZ@*Z>mqf4s{luC5MPl;noMSiFjeW^@;m;&%>*S+5w>S7c10E;t8|d7WxGN8%q3Hdi z48skDadDhGUc*N=#XYWjBj$vFr<>t?IY$3VUIyp zaaxXJ-0tX;J85PC@vE5m6o%5yP~Dtm6BOU`cNV+`1Grqg?7=^zcoN0_-f~xtKM!&f@2oO*OdvG2 zaH(4QZy<;75D?Q)RP)#RX8otIF@_E)&z|VE3X{K%ezPs+r_%$)^F`bW-<>K(K)u&| zs(7GjClZEELjP^R1OS9t%oBJIL7GkLcvgHV+3gD$2ph&JFlu>>mueMhQNDG&ATm;G zGE8FtC$J}yS4^=1K4)va%%fxMT&8#7zm4`ZJ6sAFtwVQAy2Mx-J3$r0&l$lag`~=- zwT?HOR@3!)#J|2c>h>@|ybFc%xjlxO(S3yEydNg*d#VSKaW7X}0vC%G?UwSRR)-*P0BPoD(f(Ha%d5X6FA6?uDqXQfkOAD>KT$&8Heu&)5--&$c_h@6Mx0 zFK*7(G^=?ZGZMQsS#&(T&jLHv|Cp>BpT9%qfDHqr>y1zvYxs@1ePDYY2TgFHui;zf zXKX1Ew&bnk0k2m&`(NFoB04T8co9jSMnmCJisAmXFpTjup(LBeca}36`i<4c+tvf0 ze5-_WKT&z0Lf|RlSNHr6p&~{^F##C1*QqG1(`Y0=$8h-=S!W2c z8ujO zEWdXw>TZG)IuY|WN|tCz0S0IhO!8Q0skvLrPxqF%I89v*l;ggaM_5cAKf=xH zdT4fjCT+@H)ZU>kzg=6tx4)K;%P6u5c$}d%BHm%zu69OjrS+GALlo~i|0A83bVZDo z{I~9;0l(JbxoA{hA>2W5yRLi)`~F9b*&cuHoX=Ixu{x8av@$sJWn?t^~DefsU%l1@+m)R9@yT#SdfFY%{wN~$pg>Qldi^Obggz_=6Y zxt7~)^xtwvC>0)PyR~-9okJBF3MZ0)E)?kL^9rn(VKal8VX zsdHqPp1KoyF7cw320JtDlI%~$(P+egJrMNt9qsuN*lReM_ROV|M{ZAGW(u?IR_4F& zPtrhlYtyxs9uJq#_mh29Z?dNiCxj}S$^npRaH;nuKe6Z(;^B`Ys+6U}PG>>E9bYj_ z?MX4H7d}2+a|fKl7&AySzGvekp^)_=`7yIBIh=r*EtPRsl;pqe%wwF+Q?-Ldwdo+98{L*~w->^ft7v^){ zE|!doZ2U43PnE}#fIYuv;V&D^R_*fmMY|^?=>BgqCXIsUI<#K%wE7j7OguNMZtLp| zuU$N)+3AZ1MQ68`3);~g+(YxvI}apB;)VUF{wF{=9aF2kcB4_$!XCkfjb8+ZZZ%mP zxD)}ig%d>6atEF;=fM;ICXD{l)64%%7y%!sHFfY!ZP8E5eOT++pEDJ7*1%=*S{ z?v%i>3~rmXIdI86sB(4NN%S0rnvt03TJaWB17Xg|Dr>Kt3H>uVg% zqoQ7$a5uz!F}~~sJ|TzVsyuHCI2dp&_Kaj8qPy$Rq$wV)aejPI#btMNl^>u4f#rlJ zlL}_*#YM+Fj>9ML!fg#$o5v*{gf{Z(^Jsuqb637;YiQp1#U(&vnbmrqZ$E_6l%3R;Jh69@qyq2F|2x!G{TP27JZyTZbA78pw{=7dc7zKN|^1Nzwg;Q)1G( z&9Lx>QaPLf&S%dkJq3TVx=RQ9YrfNoU7I8`b|Iq)Y8emsrLgDz$+lBc#u0Dtcj=q>3v>_9D$sw6=&kT{aL7RG|KYU z3vOpwxaaHF#ujktM;ZDAO9XZim|jV0WD@T!rRWSIgxOXZpQvjS=vK+-z6r62goAYz z-2rf?%>ViEx3fl=&U|UuF}(@e*wg;m{hDCDu+Tm7h3VbpttVjFj?8V;>9Qw$e*NI7 zigM%d&|fkW&JnD$%^u-9O_E=Cz(wr;PdW)pzgi=PcO!=@&>-szB9g=j=gc2IE^kg# zVly>bf0+9-2HaVwcjni}8LIFeKqwf|(n{~DF)m@a5D;uL#s?`-ZxeE+Da0a~KR6(@I$=KWpxL2GcZ_MfhU?##&?KN>NWmUnP-VYp;lMadqb&OvsP@GEl7xAnA%)*9_qcb1k^vp%Q(9 ze;$UMx18d8-(#EmY<(A+=67cH{ayw+0sB?A=i9U*$)9~=9x*E|6&-z_sjfI1 zSIo9fL~47xK%)2-TvNmzG?vI{hu9Zzx%rVfx8w5hSQiAZQKMt2@_u`~!5L(4)YIKh zsq`A8s{y7zHB`BOeRjjl!Mup=4PGtgkSVhT7OxBjfU6NKFr8{?AD#xr7BO(FW1pk6 zG23mq(QPjM4Az?sbyu3rSfdDeH0pkz6_zIemi`8ETt3y&ScjWb*D}(Z^OVtiz8+4@ z2>{xVt@hu~o3Y27|bl?(hETNsK*dI{nLv~f;0_8FdiZs<>X zlXXl8$7^d1v2oL#vTbZX6IlQBHNrhI?hQ#o0d~$}apxJ(+m*gR0s}*0lz}d~HiC1Z zwtmBCGPkLxP379+*kc)s^+xZ1|LEVZhS`Qt5)p5%i?Hdbs{Qx({_HcJfK@;uiyvqj zn8Nh;z8DE-`1HCKDNy4p8#L6{Q+1|Vj^FG?x1zJT2Du7YUiO-;4%9tH9g}cU0~=0; zFh0|3mS;h8JdR4`+Gqt)Wtb8wr#Ml%$#*p$3s1lWb|XoB{)}UIq?Jnx{OtWheov236sh+e6QZGt74?H>dlfj_3Ms2s-MDYBkWfxiKSt*Ih(?1XgM4ZL+bWTn!n{KyV zNXo(;_hqGl{Y@a0<=x$IV^`k_Y!=Ji8YzOSk19)|&4#hPWm8E7P)-(S^YH>|?Q2DS zY1T6UfUfBC!F$mD`Bf%H7(Zj1P)U3|alw8tyn3r$AF~gI6ldV))072@?Jd&PXjh3LZXM3k}8~YdI zu&K>sp^HVl)ft_GVZJWn!ny?ghxN>7-rLxuKiSPn3*Y5GUn!sx-nGVVBjfcxx1Taz7vi~DukIVT?yLUxNr}6j{PlIf zX^h(o|7uSkxEi}P4?4?3&uk^Bv(B%M4MCguZF&oV8B;}7A0~)KqA}#pI-b>)%4xeX z$Z#)rU`u`(`@PA$vfm!}E|18>y9 z59dnZi}Z8;*XH(=zdTpuNfO{37z@vtTU~aD6hldN98xtpy5QN z%v18!s8EG^T9>;gEaU#~d%auYlb&kV=3PM|I|>HVeeo4sPbc0E0D;jj0@e+ONsqbV zBKi#kR`eF%O|tj-8}=!`K)-6uGg$j(Ul*Y1w%%POGHuP8k829e1J&wjNxFA$?xTS4 zgD(cMEQY<%(0ww~1!8rP2pY&F92?kO;G(OEzxfOS3YWHax783@x~+!&CL{66kd3*F zFXFAP9}u`hJsL43H*(spmrY6WIJMj>wEB&O_YZp`m=$t5DlTkZx6rN5FO9lCQwKJ^iqOGx`L)~V0rBw@kAs25BB*iBf$>(mlbUkx?WaSOQl z8+61o}K5*OtRnXq_Xd?QS-oEn~zNTr=!xh@@99bXW*R7-Ts8Ts-VcLq;|eHp>%6&HB~mqv--mBnYz<1f|gu&+oYN1)HJ&{C&^Jh>)5#O)lvW`6*x*xHliS+WC zZ07mkHptaPw=cR?F3!BJ?*Rv$$Ij*Ulgh=C!r;=Y)zeWE7Lh{-`)BX}uM1#O*J0i% zQ2&!yi_1ALlkWCD#~@mcg+1#6tZ8NrW%{a-b`OI60j@BGBeAoW-t9N77LShNbrz2( zjV{B8vb6I}5GT5VaPklm!f+W?I4;M&n8Eq;#J{ixQd@O9NgT)R^)2{Gp*AS78{rkJ%riFiR6t#D;CX6#qNw>CO2f zhGz;K-tsjJc7b%3O|@Q+JJ`powy^8Nus%YWs5Y)auh_KIZ$hK7r$v^j|HV;HH90 zc(3(361g`Qc0>EgEN-%iK*DQPT%fAD14g6GOLix%)^H<2oGjALz4L~XZ2z8}Jq+c? zTNm*hGPApi3z(21_~^-C^G|&sa}pJgOv}|Y#(fFdWCc^$D>;7nD>jcpxnnBz^*W_rBGTFE28I*;$!l;EUwny6LSXIj(4i;kMmyZ-w}u?MVGuuC zYH^gLrm>}8isKK1OSO(J@+f{;^;qGke#)k$SO-qp{jV5;1#aRISav zR)P!5NsoQRCSOkOUFfOz6w6EGfbQXYFZ1UMxW(N0Fa`8~D?OVZSR10IlHKg^j2Wyo zt1RL92FuXWBbLR-<2l*N3D1nMV#^0n4cl|D5dccI^gXgRqE?2?0hgJQHX~x^Ob-V( z-@o$xdTqrG&>I^wHxRaLA@O-8K_TW$H{f5(`gK01=0teJ93wb8nbT!q$=p1Oga57F zxQw9?9c-UVo|5|Q3fzganMvA@yl?eD$z(D@5>6TqDlELmqROylBNcu24rVte0R5eUt-d#1#TZQAcP zi;Ex93A{<=e96sMoAL$j+p!8J_`^W>EXs{1Am^f>~=s#W51RWx( zp3daE&l2h0G*1Ob69K)of36HApSS)kFWcphUs57*qp;=klEWNCcGlwOu%7qlZLk+h zTIy}*f;6@|%CNckltN<}-=BQqV>X3jAMm-j2f?Cpg()b zPt0E5y;?b__$??2{eD3dmL!(zU{GR^dl+(en+h^3E-h1LlX}JH=k-p%xN2%P2hh01 z57}^oEDBPxDHRpYVgw3@9e4k#9N2G|?z6@od?)8}eG_`@b2IY2g%C5M3WW3h_#T5I zt$Oh_d=%CR(_5*3E(p%%>5UrmT?~Rpkj)p!g&-JnCJB11@UfrICTDA6Ra;=h;+L}$ zh!Iy9fac{5Br9vwgdCT?yE;O=qtR& za>{A5P(F8*cGBA#&Ky#-~Ypz@Gw`7!v6b#o)oRikD45{gW zB7(F@t66I@6Htw4g{9GrH5BQoa?7X$ZXu{Qs@||kRDrb>Fa}J%h3V$5qmkp#69J$% z<_>>{iodt3ap_d&D|T9ai79lSOG?)d2aKeBJ7m-p!of{4WK3(1gzx7VR?SAMaa=Cd z)PAnFpbH3sw($tNzG!1Plw#eGdb}ZrDar^1pNe_WHq*V};JNManij7mU;TCW_efgO z2=l`f9ec6cfE`hwbdv+rI7^cm9T;X4O*?6z?8OMPly~gE5T-ynnG;fIch;s zwIERow2d%{$ZVm@LQ9%1)|N`)gatdPn-2j;kfoX$SLomT?%`BERs!g`o1W7WrEIpE znKD0se*A-4-rOg&e74Nn)~yyNu*~?Q@uw}4rQQ@25pdp4)EgFgzFnXolCNd3Z~_dr zDe+XQ+_$-Z!>NZN7FD4(cRim@d4E4FY%6ZCew5(6)vVLQT)oPLRM7i@5q+ir%W^sk;$$>j?!3$1v6M@O@gnQOJHF4#|)2F*` zLweQDV6(jgRwq?a_u=HDa}zvI>h8A)d!37w?glq-HFLeU?`tvnkXY6KBJC=}>e#Yu zLa+o48iEFQg1ZHGcemi~4k383;O_43Zb5JG;O@=^F3wcCd*e_# zz4zK{uhn_lWpK2AUqCP&`7ydSEkcZ10saQcpTdhlZ?z$So|a}uVIB>B(htK z*@<|BZGPNA;h)GCkz%2_XoQ@&3a7Bo`a4cLdLO!2M>u76k5At3f7Qvvn zwuF$W@2M84CJGdM?LxBxrZ|!h%C)O$e@k9d(U(D08TwpYYNRlGec`&-_va!HsA--SpYS?Z*Aht_GqJ4ySgU zr2udhb+_^O*LFqIAdBq*%4K~?=jt-gmr|yG5{&&nvh=SA(E48~LdroxT~{|pQ(kc# z2A`Nb0-z1v!3Lc@dQfOZTwQY`h8*3Dq|E2Ndl@ySG z4{seYl1;7ln8zvc1ONGSL=eJL3Z*C--D)oyn zA?$5%YwWKeTYJ^~dw_=lxkxO7q^g5vJq=;iAUnNVSU-C?qSffzISIrk?h!}CI7it` z&cor;6X-`eoov|ck^9&FB#uEN`?{9P@k-{v`6}>>eH{Q3}SLF5SnpC%`Ibb@90Uo~!1x zz9BLTk2D$Zfs0@{Af!Y}8~tw?h(x;$=YD7DJFURj z%9JWwgNbV-Hbj|9N&S1HH9NZ58I&W0Aj-c|Cf92WB8u&TzpH!)IT>I;`<(LxsQDE? zuf2^dIh&Q_uj`KJb7z^%Q{WBX4gIa-wE+g-N@%CVM(k4Rg`RrN-wMp&1e%v3s^jX<<2HfR0lN z23Q_8)mZem8q4-Za~y~LC!?up*RGFHx1iY332i1DIgv8kVlf>b}zUv_&Np>}Gidt|rr zZ%Mr?rJKiiGYyRt!dFI|dooAYFcgHAoJz*ZBfQhp9K`}!!j%XQr(=D|p26g>nS*42 zN76R8+1oYvU@%B23K<8+Oct(yF_X66JUWDb!=pRc~?=ms3$rB5n;aRYAjYpvPE?vTAbm5K9}%^-dV4AQUk26!6T3iYM3Zp(q^^tOm@ z&2MmJ&vfW$D;R{Zr;CAH1XUV(TsloU8TPvV`)2aUTTUCiMa@d4V6@rI_+KPho-v_j znPf+bKz^CP#s^T!#;AE{dxN*+R5@wKH%~h$fBQ+0A$(3^(TU*jnsTioaR{rHCQ4_} zXc(SMhd$p_D!eYIJ+FZ`gLB#cB}y_V5{fqO%+rt6=S@Zw*UeN;xy;qrh+5vygl~ke+Z%YhUjm2O!NY3Lh703LF45ZbtPlw5#IakYC{b=s@@Gl zvmc55VL#zcO~LA{6{j7%t&(6m&AXJg0@LXBHKEjNK)m9L)+UOOY5xpNoS9sqq~DRK zGxcMO%JUnlh;kn4RR7012Lq~Kl)q;_VCPkqg|xmn7ARm>amaqf`2mVz#Znw}99Fi&p3}19vXFX|8M#-Z&5yM<~6OX|Xf3_1=l@+CopFtw)fwH>gKsA|p ze>g%m`<^8D(s6qEy$VgucIb5Eg-0rt{6|32KRnl&rVTotT49t)nnx-^l}Ugr$Qku9 zW#Fx45P8HX0U9l4d)SZUM2_@TE$opQA9xgz18L&45p0SzKx-on}I3pj0Rgp2pi zQ##`=5CW}`^)80e0E%$|Z6M|GaQriwwN!!H+o~<&HVV58Vt1zS?;$$3m*%Stq}|(< z^uL$-`QIn1_HRo6Sf1p6jf<`!gZCoYtR$o6(L>SQyCr#jolj)|(F@1#kNoLyOGHnZ zJj?+Ph)VJST-gg7fN+*j{nMEuXIYI4Ks0P9(-W=gBd>J{sqR8^QP-e>U?y<8KIdr+ zVI7t#XCq!cELfGxjlLqj`!cV@!p>p1@awfwUlD4c2`OLGjYhju#*XL@oo%3fl>=z4 zXw-DcM4>~}6Ta|;`CSt)@q|K6PHo&W!&j6YLFe59@-GtYM6`O%v&x9?(>rS#@+qr) zT7a5*%sD2hAXw0hkgbUQZ~ijdT<^;>h#h(h$}3nNp&{dqM!|=IizKugBeaPG98P@= z(&A`8XY=eyC_#hGR;8hs%;a=hELvfVb+!=|OP7)b<4KkZiUJEo2Cwo+Iok0eZ!f&0 zje<~EM9p_m2zhJj!@M*NZ#iLB6NzX%NUCmZF`~bH+t_zKQzn?@<_-PZY~h-D8}%}Q z|C;Wc?S|tg;r*w8dqWIXq!Q5VG`hyd6+9}e8X!w|E}K(05*hpppHSN%>`Tj!;bKCaQ%Xd|u=)$BG>K*zWphb9GztftdT~iyV^fbBMhSmMb?BRNu zT&3IJDqt4&k7Zl-|i<4AJzO5ClsCuRA>TN_kJXfP&TV8;lw zAEUx(&dR=1Dtv0Eo}1X42YAk6xxZ(b3tidgqOxWGVL$SJ=$`+dUP<4&09E*X@$?`k zk7Y(#bECV|c6EyHa7ex>6~cQQ7pTLpL_P_^>{v@oQwE-mS;?u61d7K6!rmbYZ8R z*%UId9ICYEwTZRmdV#TIg&G~pJlNdjE~O!YO&{s?vo)=Ft_Qj^cQ}BQk}hOll~WjM)<&(jRQw6&>@raj+2SRq!_^ z9_?|LX4^s71JW-STV3xml)G@M#SkA=m^O*HtkC;XlguH!IzWH>-x2r z#C~2K@WUJWaJsu$2FN@cqh*Wi6#!%1mj!V+gVQzJrY))B9h*g4+?ZCY-ni3vEZS$e zOaU_CGjzC9`vkr5jm1tm*K^%vA``jk>&>zefbTx3s`M<_n@@yz42z7nHRm>6(1Qs>B1Cl<`g7)*9WD*ZE;C9iIMB_x;u3 z?6gfz;tJp8-Z{FCx3bFF{nuIw24J^wv9axPjbCzkiTf_J8nqi_Q9TP>5^^k^eQfKC zIt!9nbXs)N&Isv2cDD4EDpt&oTQDB`uE7O?AvQA`{;JS7m_^6!ay+G)JX^Uc57!2U zRf~D)a?zxK^-4?Tm6tk)-Cjt8WPOLxobF7E%QonhuX(BRVJjlJO40j}_@uhnqn!RIVG-8rvmxqur&cv$Qc^N@B^KnXPyAJvvB67cj#^Ub!680ni>( z8hqcX797N?K(O;VfxO}zg8O{!aD9-hG%#^s(ka!cvGDjvXOnxgwoYQr+7AFL!}Ykz zu7)uvUn*@sOXElp%-0O7Ofo;OIDCe*FV2P2?j2Y!`BBJ<*5N%I+V&b1D;?r$R=Z`; zuO(MDH+4wldc0jW`F6QEy1Pj(&Af!IH;A{;sN&2!Syb{( zY6sAV%C*K-oA{+5lyAx9Q+e*JmaIq?QVDZoitDq%x$vjMs`R;k0(p*gK{lQrUSymz&K?EUkSD01vf)M#n3!? zPN(B_%fJ?=1~*%Vm9Y~9?g`fsGFv|ht+ef#`J9kSd!pW*iRmM^sPu&O+?&*pCmxg5 zP@yO2<%)3Z=A|TCvcBj>=}Gs<$Wxx$#0|v@d_Z`s6az!KNPkZ*6V6z&f6L z*JrDFh?k~^EIG`8C88rz%4GaF@7~JR{-wj}%QpzfuyGMkY1X=5MZd>J92=Es6o2nW zgw)%ezv;aTQFi!jk^5+e&(G1s*MWtM7#UV0=9Lxn%=UpgC=A^wjn6ZKS6tNAgF<2c&D z3L&Ua&!)wHa!h5R3eYQj3`U;1k=WsF4DY%j(BXb}61=Jw{5-pgBRHRQ4>?$o&@j>5 zfgr%qEhrie(--ieG^8;v?7isr*}_k4l(>s`xNH_j#wD7~IW}l-BynZJC$|CZgyswGwpgGJk!h7!vf893f zq^deS{Lr20U5cr*1P4q<-V4{+$v>p+qlXSMskyaYBoWv0JKl$kTs`=1Ij*UFdXtja z?u*a!B@#bsiH?e6?2k^|fL=IWQz%u}!0UX6 zhlI;Hj&bxZCf%NB=*3$<-}O$Z&#k9RV2Uv`jq7G>)K ztKTx)?<~Oxy}91jC%PU_;%hg+ZDt}OiuUsI+E$riUKRX=+^1qKUuI_))ePPSuXT}X zNlDN5_w9DiI*M}F3mC8b?Zn60X!W2~uankg_1ekO&dqYq_{HYCuGq`BLro!}mX)G!D_p zW$$WgLRhoFxQZpasK;}{HSWAMe#MPqv2=s==7+K^Znq`<1;Y~L!$E)x4Q6cQI92H=J(x6V zy>*|wptYQ{|3>pi4v>l zXpV1-5LI7}y_gOz4gB?kCA!%+*bZQJgw;&d>hM207(?1)X5SgA^VnAcPwZPIJyXXs7qD($3i~)#Mi!Bf(WQ9$GCfr)cr#$FO4}YY%Vir66+-N~xK8oeh<8c2(Pmd9yBf^G|6J4YIvhigqlf(T%Dceg#U6 z9g5MX%bvPeshwd0@=X(dX%iiv+fVapj~k%R?Bp5Ya8#cgI%fQi)Lc4rMF$5pNJ$hc zbUG#U!i>_mj56krmWS;*g*f1pytEoa`=!Cdd~KtG^H$xb=KQ|C$DfzE;I3tom|`ua zZKUCl@h7a=OV-vt`b0e4LcYpm;v$=ER(BRp33E~8GUnz)p1$wi257aDbF8=%V<=$20Tm7{dle;MT^-X zx(P9}wm){iKjG~yczQWose;IDL2cBdT`Og-G7byc)o4^eXaVN`6_}Oq<%qWqV{H$9 z`7HOJDk1yq4rM=ZHg2Z`bn?4>B9)u2b^de!DPNHAf4F`~zha}kh`l!i&O-8vA(DG; zQ;*(XO{nR+#+Q(j%|SV&sBf#Q{Pl;DUSjAOwC2TUt6W|(qc4vh8hacWy9Y9Q<_7d; ztOS6vr)J-lfR8QXvUl$BRd8fYOX(hg9-rS{n`%7dt=h9oY!nLU57+t)Ju1Pf+>1e! zm+*Z_0#-hHc5Wo5X>!UPl1L*lkrRFP4?kAmqei={((sovm`v~b;7v*rAqv?C>=(ot z=+Q4$2RiiqAL7{M=!cVg1JcsbW2FpDTj-&h0CFF(3BuM|(J%TF^C|iDPcW3G<4191 zO5`3CPn$=nY8ASL&-A+0obM|C! z8ulXHk~n-v_!{!zd{tMy)-sfi=0kQCQk|FG&f$y;axUA|1{Y5 z=xK1Z*wT!rQ~D0Lu1Y5}nZ!Zu-?rW_-G)1iq^5ok zgHZSuJfqLWQ1sW2Zc+?%*H5^z5Q;_0I8snhP;2I)#?xzPw~QkrBIW`6LSk+fn_jnJ zKa!acB;46Ipy#8ja;GbvxRS0&E+^}=5s41!^SsYU+VhY%o@y}pQs%P-VSSjV(yn?D zPp|Xoj=&Dpmjf&uA(dD$InL{wa)?ECRehe0y*#(2a1Mlf8>h_J^1)tTBh?D!?o0M1 zZpN7OP6*Jkv1P4Vnf3m0JQ;eL!%(7slt3KD(GwPrTP6`{B7d?#b~TU|TV zeS3s1XHWZ^VLm#|GP*nPS_*umPzh1l02e?}r3_}g(Q+zmLF8ksr!dqm=a26JyCjOl zHJu?xaNhsODgJ18{qImC;Ptj>XHP&T4R2#)eS_n}3x7(~8`K;dXHrfx9h;^Pv}wql z^$DYz-{=Rsr11GG+Vm7FaOqM}(stJYY87B{{+>PPd7ajhc)xvFV~yl}-xJ?r?&CeT z=L!FNRu@IYLw(o3_CWs#gG4q6ZeeBPC&ZgxSoWr-7{6oW4zz4wd+sr@9bdzn)#lXL zpM#nM?%Sb`Y;Ia_;Ht$$s-1n?DvJQ*2#55npHehL2*dhKQWm_cez(!$9isJs`T z!Fn~g!B_r8m^ab8%LiEo#EOsAZg>d3Vq$#IV~%Gn+r;m^%)tNiu^Q6s`DCHTwP3qc z|6NG`gJ(bu;fEspGLH#|x9AT}`jzX(SOxz_fBx@&>1(OA^pFLyHLo5I8GE+>=wtjN zJvkHfV_v3^jDzojL=5a^CwFghQ z2ZTSo=fAnjYiWUTj??I_afHHG|DWpsL$Rcv2HXQ-vHnD2_b+cm^zwC^=O6_b*&qCR zkF~$}|MRi|CwK*7T?t|2FfQ6pf1GIk%jfy~zoEr-amTo5h zLp&Z==ZDT&hSy9QhSM<}j1F>rxe`mmMj04BElN}$ z5$O-E`9}-Ke-BMuX*qD|;sYK>ix;B}DYS4_OKt0`{F1aJv_e;+Orc5=M)heYOeHD# z|L6q$y|DamNV}4E-m(y8>Q>7^)Nj30>Z%;ephBQ;zINTJd%v!7{7(;rUkuT8FPO#_ zD}xBC$xu^I)sR!}10~uE9@cYth2@?cB!)?8MmfVd**@ zq5Y?qjKM(fJ30@qXC6>qI0V}WDO%l)PYGHU{g}l7HofmgLv}2oP!n3Tz@{;r} zIv(1mF&{Hi&8YD}AUpjzOa>kr8&g@3fzThD1K4|=$zsLcl64!7=VeH@a+&ytne#{j z{`kmDp7N63H-CTZE?s|NJXX0=R1RAPyoEo5QT+4f`uQdgu)X7Lb;+_&p^mAoz4aI5ZA{%+e;mZ;UfV*&AU zZkoG9mG#XJKx|e8Oh)3AQ9|mWY2*u>UN1N2OD2C;%$F=K6@&TjHK9P!HK&*6wDK@L zP_&3G`d8yp^cplkzLt~19xI5WQWV}>`c5Gy%3Sy@cWlvR@hAMN`K)3n_#cjGiU z@k;7(n7_Et-ugq`f+z1(!b$L0DtUguI$J8NX6VGJsLT36O__oU8*Nuh#;xW{>PxPY z)a~shXxnYm)6?^~Nza&9IbZ(1n;-4k(VDbOI9o0iYoTIpPsGqfx5CO-Q}{lqm&hsD z)!-i-gbaGTcr5?@CjWWK{Oj}t)e;IBIn-<+Z$j~B^@QNp;LcoNPJgNy0egR(SMK6R zN}yyst*kqED+h6Z3dcDc&>f#B2SkGpua|=s6>y$mPFBEZ8q0?Y;Lk`@#Xqh)Y&KN^ z2rTrOB8VBdD_UCDmZlPwX!V9+{ov9l;oc((W`M_57_HZh=Fp-)nUvxD)7EQU^_^6@sn)QuV@1y-sd+EdhkrZKz z#KBX-sEe*!aeP#+!IT%B-m9T?;A#SnOdfZp-(6rbsgyW8e0;L#pFic_AhABJ1qKGj zWOnic1ivrWN8AF7E+?U^efGIQia?E@_lQlSne@ADs5fVYVL1pcK29<{uFyE=CUcQ3 z=hV?2Io5SDuv4yo5;LpbO_6DGFk`faV z>a}=0!ai0zVe&SjPW5_ACQ{R*kn!5iH-tk$LFJnO#kd900KH-!>h@54z|zvvUVnJv z*8Y`W!|4J|J7N!8Ofhfz>eXkBMZ*Om>c;y%XKVMv(R-dU2 zdd`eOi}Jl zggjPr(Zk?q?vrKLpB82BIulb_N+?`oGQ7PXNf}h~yWdagDrSYLaxO3nMX)~ipX#$ z-?Bn@yL1{gyjtz%llkI6{9C>k$W?kB7Ibv#b+kQ3!gZU~y`E0k6+q7-8^Dty_oDYq zgS)=3n!bI0sjvK=-Bt*|?3orY3J-pV3&8Sl8fJ_JrRLL&ZCoiEgRgG=_oni>XDb`q z>FDQQ#oFx&6Xer^e>!jXms4B=rQ?Ri22vvos(a~_G6sJAN?BS?FPF-aLLEnwYpHfs z%5}LjhO5J?Hhp((d9ainf$_uU*P0NSsY<*1AzK6iV;hR|176kM75 zj#9x#4_C7BVcQBGkB6_Kks0EczGW1y{~T@OSrb*z_o%h`20ESRy2Vg zMb>i!o*1xF*sK-}i1)VD5&03n$q&n|b#vajao!wjULkJYx2#%?4sYF! zM@p8Yf%zyEvbp2w3fB6k>gJNMdB?_XqkOCa+|V zxHfz{73U}OM}3gDuGs-~&1{l^PzgN9Hg&J*lNAPSv>wxMW?z!m`9c*w^#}b@fmvAz zYikQNZc{kZ61}3ADwjp#V!Tn438kr2v^=8~j5#^yL0GB8tfPMIos;E>2^6gJtpSS3 zQWIIA;G!1ZGhcyrmrMB>vOP>(63}W)$9jOfpsJa0Cd%>(zqj^8B~9bd2;uc`%tg-G z6)N@<(zXbkIUT|C=FyR`wXcN)p0M@)7a}g%7*j-QgiViS->kB*>+N`{or!KFL$okdlSO)C4 zUyc#ew6qI?m!bl`Z2QscCQ4;2ac+yufJ2^>I(P5Q-Z|`? zukdndAY!>VI_7Ik4JZNJi@bFXcjMR~XS(b4pyP!HfpV?lSDAG9QMtK*=g4Y!5b}{F zqglq_np<)+GsT43OsU5E$sKF{1}o9h#77&YpFAij#3BwGL#TL5)|U28Rdin&lm-x0 zfyc`P2t>K=wd6|R0winRuV&_RfXCSTOH12cP`E=d&jqP>X@GqADGG{UqBhG^l@Jt=f$I<$gd_Kf+3MRcGy@TR#1E>9 zjQk0h>72yf_XBnh)x4>z%9ywf&cq@3&R?Ts&05BfKt z$Uh|jnRNo2u+B&z-?5eulRoe32N-X)%4BK-Gc&Uy14J}aUIv|-ru8Q}6^9_p@vW1C z14&#q+uG^ry0MI|(+Lu|sg6hAeWt)vSZ4LT=?>Q0o4d)`<5r}GlF~O@BT_ib1!`)V z>YMLsSA$S;y1IyJlUM1S*sV9RY-LYyVtQ~UY*#vj(&+e0hHLnDidHCQ2aXr^O&5s0 zNSLyF7ks(g_FTfD?_h`dK_95`s9f#j$j7!LT?fU`sV(B?)TENQ!DB!{1a@P>{T(0R4E9XFmbS-4lAKU$xN+UlhlQd~Y&+_nQT^6Ry=c z88zq&{#y&+g*rXZ^?Q3x+o3q?Oi>uc$bE4Q)M4VuJKN4a33qPyiYY9`PK>$^tpKa9 zj>=9Kmj$$Yf05tFBCQ!yu8ku`8Z`zY5pj8XUyn;uYNdPqBO(4^`eC5T8z9i|`dq}F ztol-pGqBo6*H22F^u3%=z~KNTZ*BJsG2gPj_C}Z7LAQraE1PKcVKMsB4-Q)F!A!(_!~Yh@@>t~TwGsg_l=Kl{F+MH=-_w?UzM`Y zmQH0EaME7bJb!!Ac)F5Xmdvaagt(8$Z)qfo9JAtSyV{}R49W`K-H3S5pwp|UOY(9M zpTVL*4YBq&uQ!z^KF`$dSqW6Aogt*?`*!~sD&Jm)#5N(r^Y}+90?5e4uQchU}LHvLNisNrlDPUyc3ah@fTeY|nRHmRRC8TVQ( z_T>NFi7iGleS13FoNlhu+U33Ax-TN? z5Op+_&hv5y7Y*3E%1LoLx`jv}5x)AMf<)W|nAY+vG?~Cv*K5OG9!dao(l|94(Dq0I z8y(m)kWl+33FT1Si_Oh<50-=_Pww&Xrwk?B zz=VWq3gGWFclh+`u31TLp+1A%kqadaJHzwQE`^iQQia8@%Y){|k@6NR-<2tz5sYVRV?>x6SimRAf z2QrVMl=FSVL-$6!Q@fT(;J`t8@cL-oob&vo+z^}S=`$-OP3p#PE>OYjA$#&Yjog<# zzTlBNFw%n{KIN#Xp%>#PJ!IW+tLuq-?jVf=B$)1?(n#{4%ya;$|Wp4u*<~BK>5YF&n zfqbKoD~3WYv;Qy@VL|^n(U8qV88f53m^NeLK`g~V@2`Z_*9t@?lFmG^nYo#jdUY8V zxp(zLlvDRtxQ%9gd#_8f-1(xhiE-~ythwHrzMD(%a(9&KJ^<(_TyUX|FWQ*QG8W6! z+cQ+lmy4|F%N_Nd4qcX&1;K6p==qW9AIGZXDzrHf4WBf;uUj?!~|NiKt;OW0J8*C~Q9hQU#j3gDwG25L}%$ClMR0L(tXX z9tF|OJ)AhYY#fmFWIbe@F8hY8n~s?=bEkz1+p!L8FRHaSU<%2 z!!Qc)IBO&tDKEfal8i_9%>nCD@9k>00mJd5`E8X86vXM};SgKG-dd7vhv#*YeO2MM z3;??*dDKA~K8cBN3tDH6X@9!dE_DJ(cpH9pxf^S1MA!QU3jigX7LPWa+Z0)8M$6uk zNb2Pj-nXY^c0EOa4nWo3go!98-UJl)`(IQ%5Amn6s_VL3-^uHap5rz_7y^tQ%(QiM z`qPoA#hE|dHb_4N54}2Xxgf*^im8cqxH`BW%o4XQVxnYX*H(tA8-vp4mHmg^Mq+tq z_fi_8?S*mHRfvBc)*#Z?^<&PnM1U(1Gi4kmB>>P&{MM`LrbWKTU`czGg}z9-4qMVM zU5Oe;o@bRLEic@fdjW^P5at@ok>aV{z3XMq1q*ZU#c^JiDqjX2EC_&nO!{Io;9e`J zI>6ooe%Lgn$|GPb`s^AL$=^th@)eFSPh7jkvAdtot00MLo#F0pUoy6jD|Oq+E8$R- z?X}v*NGw&GCGs*E!kTKFaT}8GcN^_v%|Q*$EyoivSGtX{D46lo3Cw9*)e^=(_#Ysh zJ1s!9_h`PmGt=k#I%KRzb-`%u9czcwtImNPNdRZu`&~+(B7eY+WZZ=0I$TJAIs(iF zrtOu9^mO-aUa#=+vFQJxRN~2A!Umy+oI-ub{;&lZPF#vDAfbTsPI3^6iPs%3Bbaxz zRx9AO|Jhn|6Xs3W;i;}+;+$MN+iLa&v@QFve$AhkzJ-!A6epQkAV=?P3q@i_i5ad+uXr(jiKC2D-Zx0TzNX(N zHHP=@(mb6KW_7g1B+y$G>eKW>hCf5btF$ zaCu(hi}SRC6x|8CGR4^gW)ulM8{%mdq@hdIl%40R+*`-RW{ASn+y<;cHu%NH=Z2Gk z;mzx}D1JbGFvTwxb(q3pt(|#yxmQ-2NV7ARLdzft`mn*qqvvJh?ee{3Dj0K)l+YCQ z{QkvX$_*T#7Koe(B8;qZYTb-S3UGY@*Lkd0?#-_##=IW3s7%K5BJ)dB>%Y%*-F8Oe z%^WLLtc60Qr77W5_Afs1c}UwB-W(C43Z#8i*7(M>Pt!Ou@(BANr^|BBqrXSF&|#l% z;~7!OR|v?P9URc9xGnqYo7b*4>=K)oFs)OuOCD`l{bD1IFO=09mpq|4@zTF+*&2)G z9xyDk@Y2z7wRpHq`e;&6p{voYF=smdm=61F;m#CNBj-fRZk`u4WvFKPT8eY!?7=s& z$jaPV;IOer2#1649fq(qw^LN4&|ng32s4zU+-UZzMu^m4ug1^9nUoJud&??=i33+g zOcpb++-l#+WkoZ?vuv$3JY1?9h7UYMqCkj?w0vN=Ecue(hpWnK zzB3;Nx8J*Yquy{u1A$+%JB;>1sN;q({)h6X`G}gryCikbsqKiCu3INVCMY=!c!XyT zm-(`7Wuvp(|Pu6PA zA)7SB#huC<-fKLWfsKs}CZkDDk2s;e@i;5nlH(oiRug!`ap#ZLh+7`HrsEd6jkArH z^*^*hjd*}sT!jL2@4Wp&(89N~HgCY?KzVxD+Rd$Dvm_tE3=o{EQyiWAHr#`A;+x5= z!p<$*iXtW^WPf>_BAJvL}joW3OU^MCy(ao4bj( z6D^JD$DprmVUare(to})b|&!}I-E4b#-^ggQ8tzBZbOhGa)|P2?+cQ~!YvVi9v?#O zDiul=bNS@PlRT><$9dkf0h6|+o*5W8yL9n>egZmcZTZ(1Y_jjnrBr>9wRefEBi$7f zXf>E<)JW<_=MQU5LFD~~_IUD=F>Ud@oKo(A4tL)=ViuAMYU}5|rrskMSs$h4<_3Ju z+tb=kVz)kj>%ZF&w@Cr|HA$6Ud+mQ@Jo&nF95qbCOB!e?Z^WL6(wRB zj!qu310DqH8~L9n^3vAvP~Vxo&rzS~QNC}j91@bw5~o-R2Vy2#Epg@)AjWP!lM;au zA4?$3-4FHW`*-3mpnQmv^VmNAHpfXeCGj{Ao!@aUn=&0=WZBv-ohvpBtSM=*shE9* z#p&4GPR7Htv_j8TzYCq(fThRpJ4xOkojJZddlGc~p1nvaQ>|1O2E3b_CsDqLgNz0f z50prCT#~}N?43duUm;f1!SQ^Z^U#Z2Nybvd0x$9>ZA+h{E*vQFFVELp*|SUbr^WE0uvP191g69 zxl`;O9Av`q=1R#iDB8;uxakPV1l9&HZ##p;%$FzShe-{4;-w@v$}VSzJ2S+JKR;=f zd{%K(Wri6~9M+b^q!~uCbzjXpb3OHqb-(zumMS1gUIQKp3^?VEKa}QAG#7(-x9=T* zOPw~JUbkEv)hv+;@=+9h11}J2AD1ftZ7Cz5QQatb3+~bb_~jq+gd%!#7Qzbl_JxQkyM&%Vwt4yMH6!>VW;~kUF_6nBwTHSt19tYTFnW%D%%<6i zQb3s)!&J+$N^Z6o329VcW8)c7(Fj65C`3r{z1d@YtTrY~2c}1ETt1S8Vdl#oYbp6Z zxXb9=Laq6}x>tx;h>&q^`&s2<{X4k;CRyWP#yyQkB#{n^`7a+*blzfLF)F;lrq+MQ zLP)Ibdh`_gn^wELL8-U0G^z6@u9AUJZ-O|mNTgP@&f-{f-wyEd6X5Ywr3Z%SW3lsh z^J!*_8lEWzqQr+vk{^Hg3Scm(ehor;5@8Qd8U&@&6ke`a&g4+(U}Db)^p%&^W#)$9 z!QK6N`jh`x(lt86j}Dfylv1A${cTg|*(yJelzy<13l$+_pgzO*05NKzBDxY2L@o$UTy5*4J``98AE>?)ap zukUk}`!L2`mv1SYb+%xQF(I>5ifTnF&B4AA@2Nz)FAs+GU%DJeS_HA*R6baKz7 zx8v)C?@AoOZY~)KFW6n4b4^Wf_h;UnqfysW8Kl7*&7_gB*;kl7IsjHIi>rZcC-N!gEn_Im&#v;Cvzi^e$9qe)s!+ zvlL1b>E%rVcay*L23-~!kPH?th=Re|pH9nArC&*2FW z52HjuvKG>#@6jSODj3hjvLi@4Xh%IL4Z1PB2|Z)nW>sf_X1!Ki6ge!D&R z-!-Mm^IS}Bo&E$9)sGD3X&R|HS^lXC-ury%6W3GsxBOcNB0ii|6OBZ0>{&{%v6ec4qFL9yAf4*3;AkI*zZjre4 z>0pLt85J410gljtHm;%VJ~~iUi%@MYwyEitmzl)(y~Uuw!1*OTn;%1RgO6;|n7w4S zy|wNyNi5aW)WG;GT5*hyDKd;T@3CZDWkO;C24#s*;h=jA_aObe#oX~fv=v!dG-An8K4 zM}N79e|1h8*vT73S!#CMY_fH*CCPf>lUp)ZVMpXWBu$n-NZ8{rca^?Ce(v%3$P?mv z&TW^$;1q;%s{;8{wpi7#Ja;#^Q(&UIhC@W>b0Ch=cl0T@XTA%UicUa@ehds25M$d{kK^2LZvZ^@a!t1UWJjOG(ws*P?pRJ!WR%wHp;(21$7}wB zdDmzs3aD1DT*ki;&a$9dAt!|ktd@J@6+Z1Lb;k1+I_-3rok)bFWcSJq>8<*VKs!5@ zr=5=+HNMdiN;a~X5&N06anm%{EqktVl`^&OcDoE#12Ts1RPYVQIaRmKt+=#Sxw|7* z43QD>Z)mnI3PE(Dn-0+ZC%3gFyZ~m^GB}$*yF^(f1j(K)K0Lmn6uNUN0gqNnc$6*_ zX-LFq6SkF@qpho8C-$k{-`(EsM?M2pbDhN%Y^k@1%P)vE22Kefue(J%p(b!bx*#}} z{uD~IUZLm;|@b z={F1-hL8Wn*?UGc6?I#~f+#A|q$yogs(|!f6c7;*rAm!T@4a_X5L7^V54|^Op@gD{ z^w0@4bV5z&0RqW)c%FO5xbLq|{lm}!XJ=>ceb$<5t-0nV5;He6!EM6s+8ER%7oV2Q zfJTmNr@72y;)+jG`5kUs^njdfWVag{4CxEpRt1;0)=D=DjI9k%ErFzOoZz4>qyv74 z0gdd6FZu1hQ?lyox|^H+plfm!EbY(U%qMLs=*oWBF<34WXwYnRlaw^?q7kqQPx`32 zMLM<2AbwyC==4e1V5@4o1CWv+(j_ZVc|1ki8ghm2hdxvDQLMLl=S)8p7Z-mm{q7c1>8jT9bUul zp+DQ_CY46(9~++*`-m8`kfkB_fENE*(Q;0XTTiBLiGzVwTw{D@CabZrQF$dtQp!?d zjS>SocedQPg6Gy(8`I(X{zzkNZjzv@id>)-LQ!gz1A^MzERaH~(Jm&%ecfM%6@50= zbb!>Pv3)!Y!U8-n1NtXZM|*kKGRB0L!r7&i`tAa}KngLUs@$$8Y5m5A32EmFhUWXH zBW)Og&K|Nft_-2du+T8>lDrjZYY`B23N4Kc_eRTrNvpql314Y$h$opQkY*dbXS$~* zTmrLGcRc4N?h@mg(iYLrG#Ym?i=zoF`1o+wq{T#d9UVSQHq6m0Pg50Npvm^B<<05) z<)p4xkR^T>|KvyX`YdW-nhpa$Y?VSSom`GAPZ`=jB{-59Y&1 zmr-`InMt{4^F^ADU-xw_*f+z3+G>e~49~1Zd|dr~=t`{(@vHh6#Jq??!Vc_b5Ak_d`ZvYVdQmZ)|mHMYnXx z8{E1V8|9TyZs)&wOZ?+WpMUxQ$Oa_i0~y4U`>yo6Vxd=KscV+*AGk+W4AZ{IXeJWXE5)g_8ib7{W>@)LcNE42?&nLMQjk2)lQ!*fVD%k2Rt zrBAlomrg1`%Wz?vJmv|;uG*AvdZx^1i-$y==Dg9{n%@0 z419Kvh`>0^>*Wu9q})^X&aBI*Ic5Csx|JPTK9d)KPZAR8|2ErR(?=q$HUC@v{Bwy- z?(1FhodRtxImB;Pf1iDV)d&Y#x&h;QE9WNYH^+r`I#L(sTX)d+43F7TEDyQ(sgKX< z>|Z|y`nmG@4Lt`<1l|T+UNEiJ<^+WTl*D|=4?uQunz5#Q<90X=UE=*>gq@kK1b*&8 zF`zu5ah@j**@fU^_bTAiPl7iq;#Ii*&`#O~Rk8Kb531y5H? z_;c$e%?-C*${bts9c}%JiZcXFBjaYYb;4<`$+P|>l+Z%vLaq1LPw~zc-^yVb5rdU4 zeV7l@hB?$LHgu)6u5TE%kd!sohl-20KB!FzV;{GXlOq)E`LFi!q$GtHx zE}F*&#iSmkM$I1W`Qv_{6W2IRIbMvIrz1bdLcLvH;ag6#j6~5ijmy|YjZC|yg#VQ>>h1I}1vmXN8Z@T3MMzY?gr4CI)H%*LlIE&{8 zegav|ROVTqa~lCG69lg%7>sQ?O?UuF0V`b1qpp8tF@;j zA6Z%XXbOVQw3cak=p>H;#H#w3QE7K#KUL#wdzrpHP76V9bEPF|8%9uT5=(PKEMalq zX#0|jOC$DsSKp1umb?_z>_n}*gWrc71}CIl!oUM$Zg#GUmjO(#6n}nOsaY!QAT4f- z^vu7ep>nkt7V#nfyRIqUIr>8(A=;=(8&RFoS3h z-eP}%2~MxEI6+g#3YZs%{J251m?e*iI7L&UDI8O)OARGgWW+oe9B_gdy_!ti6N5Rw zdxvE+Q8D8B;QQ{2IOo~dN`lniexKy^R0yv(aS7v6uP<*El2^jr&t85h zeS2(T=)sUiry-y8%98f{^&UrY23B?BM4#X0Wqnp1kFmE0P%WF|QLLBf*lhDAOG4gB zu$Ocz00^_2CQ-sgS|uCIa^BenkUE#8aVDME+^ckY#aBg3ceZ2gxXw(OnO3^wIt%B5 z@cK~JWi^bns{7vYD>th--3!`*HE+(+gjZica}(9Ta4bpdZ~s6h?uy?Nu5}NS-LaD1 z8>Qtiqbnf!T^9PD7%r`=D>gNJc;B=8hYaF<2ag)RMmJoZm#eGk%#Z^yyY{~V+He2# zAjwJugRYW^slDqGkn{I-&y$&kzXA{wmF4hijBL8pSjj%qR|UGuHSE8P=Xo6 z9E+qS$bNCgdH@X&R{M=B#aoy(&KMz!3ghpCk6wBWv|OfL3e}d1H05FZ0CiYlD}LGX zBe|WOv7sTxolEeNZ01*X=t6j z(PPF63)=>ub}xPeX2iqNDP_>jF}H1cXcyB zSq%KLdQOAVVHQ#y9kKJD$pIasb_HLm(@nmi^(2-BzIuqh_ghyLgRKGO|z>{R7b5@ z_0s)DAY^l)+uC)d`q`#>x2gWT!{L`|aC9^Uy?_s!GrMihJOoe*)dad>^1{kEjx~ST z-n=9GyV4tjXdMO;_-@#qXjvxpRAGbXF4}FD=dE~4a4K$`E@-{H-XDl0Lswll_vlS{NUketcoKbSYBRJ+~s|3;vEUyLLxP! z@5<{Rr-?_WRv)zb(!G%KMCS-l<#VOJHqH?7ygOEQSoT(pp2O7`P^B6ZC>1$I51U_< z$ja|%WC9|(K&Nva09!TR_8VUnA8ZZ;qedZ?bX-ngQxXX$gi&&u z(D)hJjV*AWehF~U{ixS8vo<^9$yE_Q5N>BU0b_qfo~zqT^0Brr9_U$~GpQ{LbU^Nv zVI6rzc#fKl@_fn2Nb@@^ahald(-(&Rg^ak0d3A!8uD%h%+n(dFIBuY_Kd&J1=4OM- z1TIVXtoK{ogOB#knOl-(_%~d)=e9C;oh}piyE4|FIHF!l7Xj7YL7@=Cj0xXo2*k!D z%N?PK#9gV@r1+wTj~_qo8S`rHqx%_KFz}5Tpd-dvpyN4B;>5jXt=<#Np*~su9&?>(!MP%5x-gOWMVXL1r7{U=$*{u8B&@#iY$l5@S>3#yTf#cgTj(MiGt4F15 zrZNNbIGTU?5)yEma$~iyNW>BrSi7CElCh0id@8g zGC`bmt`O+TS7MCr`*HmA?Ef5TwJl+*#XVfR<32f_?Bh2c z``nB>tM?~Pc!x{<)R*u9W$;tdgVzc7t^yw;E22u@lpCPD zaYv^+Qfh(BK7gw1YG;I>gKK}FrNu3wQO_0(w>dxOm7ex^>0++BUgzsG3m;Qbz5+@UD+KilAK31OwQabks%_RiysuG?%MLhFJJ+u=zghDa zA^vsa`Qz}B(Zzzu1MEyu=;OM&G(1Q-au~13x|1sA_)rwoU~zeN{~&ueCv1|Y5Wkow zR_g$dKbDZCWdX_2OTK$}F6tNkcJTXAn)q=FC>Htc*^Hzs41J*Kb+|V5SPHsuy5;@3 z5Qyn^xt#(|dfc@OR>ee#V;M5)lY92xRViTknynCh-M^Bj%4jmy2D5A(*PHFjcpZ_L zy=TsyVQ&=zbUHkfH#gBN@_ zOYXae}3K0h7kP1P>YaDVCE9gW_#$M{N zFwqcHoLe7cz0!2@fsHnBDpVa%AG3cdmuY=oK|^)fP9nq91b<5ouy6pcVVR9^9DO>I zXUTR6#8>y_9>iT^gRfZKt^tbE(-p(qI(1$ zTQ1l7^l9wfzOOXk&BOP*Cw9V}0sG@j>ZGq0-d}NZ2Lj~>K>Tw6=m(DZJTYEid6yxA zQP_MjY@Zf~JkdX?>H&NaBXwy@yFAKB!d`anozjh>slC!+V)8@%EuF8~Ru9a3s7H&8 zZAWr|)`#Jb4Q1{7vsZ?5U*y@qsuN!QO*85NVOsZT>Xdr!yr)TB-iMDLhgNvtYn|Yx z;h?+s%C7eJnlj6H#Mp>gJqA>o@}u=CmTlTC$r!-`z68J>4a4sS{k-aBZ7UaoB7i%` z4zXlpqOb&hPZBb+1UmHrz-#84tCEC~;T0}~WB^K9d{q-e?MgUt+Io}j`RX@7hpf}2 z*5e*2qhy5m+LTd)Kax)b|6QgG;EbIS_CaE?tpWCFU-c1ua>~mh3oTD8f}^6q(xs>q ztnT)Ori}&KEpzjY@|D(B;G8`6v%DJ6%0NRVJlBBKI4!nNSUk?vyNb4U1c7qO0Uf!! zHnS}}-ag6rzTIO0;w2)a_(>7AS&pN3vg4%|F;s!F5>3suABy|}qzP7~c9})!ga=H? z=}#G)$Gy$<8{d8H7$~UXO#n0~lBlkckmnfkI}X1Z$Z=cP_0}1LHY@)yO{X(Ws}D4y z5q2C9PmZzftD4`x9fo48vE<~E&)^`mYi|5_G&7;D2R1%2d%vp0$*&KFnbTR$ z*g)MonKwqNKXcojYLumDwG!Z~eKG;Jqj|VQ1~~cJDgHVJE1@!;C}hdTSeH7HQt!${ z_XsWjEyuZLWjwQ-3P3=OYl;pFvxk%jxL2A6^RJ$~d%&iYe8&XEA9eU*W_1Z>tkE#F zii|CQ4JU%MMQSl!2_J_GTnj99Epqn0bM|`$0W{~&pPBdR4D!boc$0y$e**C1X#|HGevFnCiB) z%A2ajqkaB+wS7LwKVZ3U;c>@jnk)d6MfiUh0Z5H&KRZ;}2C=5B(!{U#+cg*7_yxS? zq4ZYw>SLL5s}ilTk?Pb_&k!~A*=Ybkx?W0B+jUEc5`YdVrn9|mynxw=UNBW0_qODI z%?cI{a1ro$^X5^yglC4sY)c9KFap!{H5F1cNiL^~4vC=Yi5M`XT^t~2eF}up>;a&z zSc>Dtu5y9h!VHBvf~^#MYDjmZ%wb) z;>NdPNyN)<{-+OCBDmpjRm%oGy1e{`5!J81lL!V`luK>U5HbpbIbRV1swny(Pn5SN zDosMIzyx4`3@i0r*}Z30p8GsLM$*$NXR41*0txGEo`1V-2L(KQain2`U}2!6i!1iF zI38Rtz6LNatHK?U`Pt(-taRBNk%puXG&0m0UuxGuER!9be?@(YTT(tMZUj`(o|<_@ z%`g!rR2UT8NJGBa>t0fRRZ^F(gB>nE8!l)%4(U|aX?6utQHN_Lz)cp{&Gpn=IE@M~ z#q%4cya437oZ+OKW7$BTO39QL_V`)g>q74DKojbp#(k`BINJnxzI`-5XS!A*gf%kk6IrPZ7=d9ZCN@?8rXeg1DHzV}vHd z`4~vZj}0OFV?WdOr@mMf#A4_k?*k#D=HbG1#uB(bn5%e$x;y?(HL~RCJo#CTN={L2 z{nGmeO@LH1+UiI?yXwxch)bt+BmR2h&)4<;^c6<~q%;%amvght>&NG&*LSwEk#Szx z1eWPyuvr!v?3eggQOr_Y{U1tRmVdFvU$j&IOjj%&C)~A<>AwmyJa7S8w&D@b!6|!2HM|| zu!z~HQ=8fz`VK>5fi!zD<|^@kr_Edn{io7Bzf{(YyQjrVy) zm^gU;GV&yEQ_hOW-k>RNW+eYra}3a~R1kV-TXNAQ$P4ua6HIN0SGRa9(H0vOz2ESf znK3Hz=%?45orXB72k#?ccn;n`o#vEc8Da$a8eB`qvZl&=`UT~u3Ya+PLX36f?BpPp z-0kb4N=LhLlyzg$!@(wHjxkCpNl8tBSDzPV6JlYG#woA|_UBuH&H>{66x8ER-m`B; zwG}{bJf)nM%ZI$ZjWJsrcu`^=`^441c!~edVWS`=+!n3<8v07E|E|Omv`bE%4E%H5 zb;lP-Uticpk93r(Bg+t4xzTr^w>&^#@_2OJ^%uEeFJP6ee#RwJ(^_EFr~;}>=W4$G z)=0^k?gtR?#>STWI4MOZ_qfA^+WA$odl?_zXe`{sw?B=nE>MlDBfW7WpH|L2lbD=k zQl=aTaI{;kd4P^ANE5&0A6ugT^Cd3+$y$ERX%KoXEb_eV1mb8H6{4#KOyQST0N?dk-4Le+NJZ#Q=MemPP5b{PIxJQNF$=O|;1MxX7gGQK#r8yMst~hwHM#BKk9IJuWYzCdYtD2(hmP&ee9U9+7{$y z2Fdr4Ox*UyMIMl{^i?O^Has{P+&&-aq&aVNNrj%htzcnWSs{X7*+Wv@tqxy{B~6Pu z@w|TYuNqvzg_K=WuZUnA5h>pv-5|1~J*LQUC~M|(GCA;lgvW2q5_@UuoObStr5_C5 zx<>H?Z7g5F zy(dbIo%G4I1z*3=hQk?OIZul=Ff;vNxz7au!7ubV%H#(4ChLFj2QaXs7Yt z6K6SsRZ{%z^yDuE`#g-6vxHFdu}OoX94QOxl;!0LuDE)#yd)JIc z?FRr;^1YiGk33XT$PBoilg-s$Y!5xJSq?avYv&28G1u%6lBDO+t^w67I|2PGL>v8ex z9dVRtj`El|)yIGTu3bE_b4^ikP3?oCPl7=BKQHGkP9byTb(mP8VNb_Dyh|6m>UE`N zL;8nz#kG-tTu#y#LGykgO?gHX|L~>(pBZ%TrS8)X@6Pw0e`x{#$7Tj!WzWny`E>35 zKIvAS%fB9q$e_^GBH$XaO@)G>Q}c{@(_fzhPx1%k~r6qvo0@82oQz1j*kH-gr9DZjUskbudVj=uKabK={jo zXLaG5H9}}L-?^p5#oU^jxQP9?D2~tn;P)MGVJGiP!Fg!AnT^y7V`rsc|h4eA7vYO9TRRO#7A+=lNVux(KQBnV^ z1@I5U#?kGZ_+>AgbnTV=>-q$>{ov2c@@B}8JLdn$^Y?J;zfWXdxZ-3*Ma5@sCpr)R z-0}xYQgZUf3xcfE86!eigW7O(pFTz03K!<5|DT;2x@QcQ`)(;d?z8 zP1N&THP`E>UKKVLFPhuCXh0!ebEW)N`1Yt4TcKp2RUldYe}HSS4;O_#|3F0SKY-5v zxXw2$S9*GSaz~}N!{^UrpHxZxlS7c^pI(g~kM+qBvN_!8wkip;lDs3*np0cmzM@S zz%f*d5MpBcFGTx;ZD}(h`Nin`{(ib=p5m`xD0h~vPnQU>dYN{5-?zNh-%_RFo$$<` z5S0Hts&Bwo*f2MrJrHjlh;#en&ye4~uBh1YOwo?<$H~+^;9DF;$(xPh))P(sXV}c~ zE5gzmPA%j5>;DiFT&!oN?6qS*SuP%)d*UD#hpWgxp4MSQtLPT~a*!Y30enZ1c*%asthXC{ZxVQu+K{)K=pC5z& zU53%JpsUD39W*yg>L$Kv$;mPX08m!)gdaQds<;bYBJQ*rtd>sQb<}vxn@HYoBd^z$ z_xH|nlVexOhmO3y$RV?B>IaT{2xmme9kW4adQ4tweuS5%lIJO40v71FTJt+ zQsuv%nEaaxqM9jb8YCtnGX3v&{69~ST_q?Jt>8U*sx&MmGVkR=4a+5hX7N3{sb#98j#;re!Xa3;?C$3p|*j8&dD;LS#xFU>VK ziXlJ!&v^Or+S+m3k@J4`#lv)eY}m0X@+F`Vz*eBH9HYjXC6xbrzA{Cx_{oCTcp62e z^7#LJZvU^h-}o$VW|kWlAAkLS5B2~1`#;@s8=cIWn$aU=rxsoP^_zdb$^Uo!%$95a z#eO-9e*O)2(||qy`*#$GtG5B@Zo)u=w1vkb{_psIarigF{{wB5l>rpOfe9J;w?&~S zG!O3Tdd9`e8^30NN<{tTWB@3z>X3FX$0EwbH@V3=G9C2|F@nz+YHtAzZo*NbY8R_R z+|-u%xh49$YG+r^O#C9xKGRm>$fJSQQlCT`O3J(TBU3$_nHgRx4sRv>o2#2O?Nf{o%X67KnjhKh|n}KQsNpcMr(#H_#nU z1_bEphM{|z%s_wlG9GEZ`31rB&ZxWgY?ozWnAc@;l|$vkK@OLz+phl(BSAN*f60Q{y=&}@Yi1emDh#(R zc1QAySJj@K7LJciC4Bw66JGeNEp$pIe$_V@BOH7}!d>?BZTnO#F1&#O*(FttNcfUV zyO)a7V?4l=X3Zp?x-gwidS66FVCgxD$@2=ik=9^ zo4~?Qq?kQ_0=(6b3jhr+lYPc0ZQ|k3smd}u@#<`!bcQcP2afU~!?4WLWG}h<7mQBM1e=*tnY6YIkX3Nf1H(+Qe zMXwAOn9o&WB}l~R>=GOkza)Tl&p98M=LyyyzL98IabbmENGp*Z&bwyMgGmRbH z9tv`_uK~a6s=?cQlT{NYo&^@^WuVr+fYoN(k67j|8p%iV zMJyR{&_!weO7CC*u6SjH2Hm4zp>hnMTTLD~ymhDbUE0~^R^kJ0!5;m7DZ;}i@*(>} zLqlN>P63DwCXp6OVlA(LzEX8TckA-z-?3QpPoeoGBhUTK_uvBw&s40FXU{YW+@qg< zf3+9LE-YugpxdP%tU1Ir` z_MS03JmT9N`I*8RyRS$^d>sh4GUqWzP(~K(us+*+m;=WwE(i8__Wr(FHqF~)UUz+D zbF$bJqhV28^U+H_z&-utD^I>QH!*h0=dOV{bv1Om|&k?c6 z06$%iL{vg&ryO@w`hjADf7%sCm{&WnsJPR1yjkQoAYduLKrCC#qbkzRJlfDbhj~a3 zxR~ceFafNGNGrKjVI)#>gD2kHFtIV~AZpd$3W*j9J>-&Rd3%+8_R+G&-s%^z{&O1x z{>wv>oJ+OV6$XnYygpQEp0alC#~JYn4?_B=So2GhAENtx^g`XmTgF=~-M#KG788)f zB_u=)Af?=RVCcJ)@hII|7VlRllxFeUT85jE>qBa|{p}mmvqrAWCsL~Si(ZXo ztqBN;H5E8%wz_$q4rl3CmA!#%aqo8Pv{%ors4>nEg3qCkEh-M=_6jYhso(DtW44#K z{v=o}tdmbIsfatM9w>D3ohvu4a$T{R6!iIGceb0e03IhXJiJ0J!H#_`p&A_uTq252DGEfO9 zE|N#pylp1@aZ=Y$wOqvG)4i{ESmbf&Q^4}S37G$1>`lfO+%@r9Wo;A?&hf3SX{rUcjxD<(CH^bZYnratc?R=W^utjuc35 zdK4`j_g@KKENgsH(jO>|zUP@L71_)K{0R?i%Ol}tH~pf+{?X0A=o$UYyY8fWwwuGH zsnxF=Mab1ErdoQ8QEJqQ)TuTHQIqbc zI{v#MaT~!qG9V3FG%)Xh0W6-J-pj+v`y(3h2d*%;DC0+g!KG)@a(Pa>x5A&R#f|>B ztOR~RF;Wxm-zX0+U`d?RGve*o9B;rrdgV`0u-Am5q_?UF;9r3p=vLv;9V~IvtTh{c z4W!(!D;pkB1fgfMqZE~%ew-B)5Pelce;#4avvtZyl?In@9?7o&vl|2(80s1ruE#In z?VZP^(10IQOB+019*g~@w;J1ZEzo|xcKY&MHJQ4UcvI3+ooj&}vOI=Nop95wqh!S7 z+qTsCoyOECs8YQmgVvrBqks+(?hOFpR@sWONCo)jF@UIV=;-nM;kma)2ixm_w_-e=?dcJ;F1KK1*C zDu+%3>+~su#sW+<9K0GC9}to5}X4qaHSiBe^PmZ&C+n{n#6%AmIUIu=RlQ zWLW&2&HUazQX%uQ^(J!{5^H#UbK2;-S$I@9KO7_Wxs?`~!Y=|2j+g=UHX%CH*exk3 z%nNlXm8gS^;fLS#^NcrGbC4@B2I zwSJ2=d>bj_v3^@03^A!o_D!{^vyD&VQkW*EYKBD^Xe-7sB37M}E8o4RM)B3OUO%07 zVoj0NUo3U7R2}(X5knEn>fN-b*vcc>wf0#F{F$uyx_!GOBmcR<5xKD)5<+YLZGAI; z5*>^vC{Dp$HL8ILTDwrMdyyO^`U}V&_l`R@zxzA;8Ozx* z)9m94baOZ^@V0rbNDS2}5pGDQTw&n-K!84f!b zY+26e6x1sQT*bTR^x1^e@Feh+-o?X{TPzF@m<;Zx=*8Sb%}ku--2d6s(7X!iueG&( zTW;%h1)dkeBztUKc5)Y^qFYTQk*~ZGD6tWH1%V$z*IKA%`SxiPlqRzOer*We5?&t@ z?J(~AGeU{5QSb~4hsuxajvsW#t5TxUb1U7-TYDB9=`S5a_I=*xotzxe_)%g#%ln8b z$yNvb%>1Bc$s9Mtc^!X0)c2Y;hLy(ACP9ZL(B_+-OS$_w^CagUqLo!d2j0}WXY&Ko0|4XlCOb$oc`T}NOnjVoJoGDr-U&6Zux|# zU#cwmda=*+O{zwZDIi566}y5EnNPR=*#Kbu$;|VrGS$4C>o;vxBT3AXT|U<}{P5$T zu9(hEdQ%Cp9>h*R$l1=$QLpruFKLICV61&0j*vdYqu!&eEF;J0nd$GL9_g+#Nv+?1 zzC2{FhFSNQTvL{smO$@|4a8nRHOny*IVyTUcR&(XZ$>Gg!z)6E_+ zhUolt<7(F0rJLsutw%WcM%|rSoc&C_&z3ntWOID@PLszHbvxh%(lhw&<|EgN%`^|S zqwgNk;X*8@0S1X9+icDFK=8qnwT;XZ&|xF%8W%nNGPvRG(}sbPYAv14@$GWyE$(E; zt9D;*y9PE~3Q#js8{AC`Xm8$ZBM0(i6`iE;K!0P}w>Z)q{`dPdGg%q>!L3$26S)Zf z$cQh|S?r23J{qhztVHU{OnV6ai7Vd|h1nNfAPmEBUU+p+3%}@FG&#o!-etJWvwr@J zPD`vSu*I0N1`M+r^Cc|;3smMA36$Co`pAfpmfDWI@pAFoQFfUOB|HIN|0reuy235| z^KKNITLSNE260H1OsbxgI3D&vq{>yVNLUa)A|a%L3bf1^$@8C!He?iT6@w$)DxK^z zq{VH5WiqPO<}Ay0qAcu29-5$JTT5~aem9heP@t163pliIrw#CMfAb97AztvUQ7IA> zZ|x=8N)MO~Ne*{*y^NASJJ9=e)tfQio&sDa@ z)guykV|DnUoV@(F+FT|9#YF>)3GUNWIjp9r|5?#22RE0>6vD0fzQ^{%SJ$s=LOs&$ zzkc|L{xY!WtNa|VfwP5ZFu5fuDk`h$tEdbf z6s6E%HlQmki6HX#*@Q8eThp*G`Y{UdY$;|R81Ae0$D5) zBV}D>2PmAuELIRpf`Yk+EP?#tOi~j)$9YO0HEaCxN>AW{xmGL1F4JP8SF*Can_+{4 z&}y|3odF=Y(fo1|`i6ek+>VHrlT7Lvrq4wfH%@EYm~f52HN?h}upjLnh+a$4+rrxq z0%i2v`JV*_$rb#`PW*U!{$mtJ zr<{YO$OJCzaiE*-SPyoK6t}TCrQey)#IvPU;%HlFFx^y*5Xo9{xJAd*^=aLu7VD(3 zV~ixOWiEB}9lJ<sija*o>4nWIU6rm8h7Bf&SRYvEb01sOA6FbJS$#$ATWGJD{<8)1M{WDFhgqF+mLr=df>9D^2B@>2Z*=1y0@A$3}<)Ix9WLpb3_WpKt*HuFoGOVWsS2 zJQZdVg~HDKvgBc`&zjymoI5!Aib5(UT5G8yv1R)tqWqQ9%}&4P+5?`Zq4OQEvEJP6 zADj7yyCtnpy#p4$1jb<_KQbGE{dRtFX>^ZJWmGNT1`l=mSuDBHw%71kXl`ajTGVx_ z0yo*(pYwh?ouh~BNA}>GyT7_My6x|R6F0V6A=8Y7OQ`J=-8!&tI{6DOy}HA@Rj41I z8&#vOQlxk~z_0rY&CH)A>C+G+Ibh^pj-|3~we~~qFuw3SEm=EHd@$Yfag_=vfL4m{ zJiAfGS3$F&vCeWkT%=IT^u$TS$s`1u6?_h+b0n2qR-+Pz`$O$lBaA$Cc_8o_>yFbf z1V27%|9B$k2f_rL(R(K1?SeK8rhH953eP+nhZD~ zq<;aQht~a8X5s=O%;M*f z35iCWWolL?C9zWK?FjmON55qX6$ZiA2{K#cHIkc$#*p>%aa;DA%xJ!G^Y3@oV=RsU zL#-L*;E^6Wkv)syMeyZ9@iFsz0Gk?iSEtWlIxV1u9>O?Ww_t1Tj zXOAvm)IY`-7vA-EYN;fOMBb#vPnA}ZQ4HZT0xREkN&+T`o z+iYCtr#=Wf+r16_~5$GeeKRYAFF;<0Hf&Toss>}>>{^aTynfGIT zlN=u_ZToY4iW!HxE782UJ}kHYNb9SV@i^)=Pps}awYER@v>mwo<^_7!V`~Nlv-nW7 zxLqzx#T#>ZvZ_oecdnqXp6M2fp28u9f|C{-Q*^_` zs@T%Dsh{X;ExnI@ox9YTl2z>hUw@fVK;mqb-ysHccoy$wHT>Am zT(;Wods!}uD0W)JfuplVs_rMQ*dQzGB>%d)`L9ai`y<+4`GxR+P%4l2Nn+r%aji|g zXjy&$zLGLq2Un|ZD5lPQg5&ov2pLyZp8)ZM!E>#}4f{3Lyt0jEknb>D1S9Hm8fsoM zSF3B$1GE9`$V2f~c4NKzZHd_d8vpe-mpHr-B}$II=L;Ug162qTd&#b)0p(eXt8d-v zbPDwx46WrhPaDRI4-Mk+0$N#eftrH&1b{frU3bUN;U)k zEp2SuZo0zwWe3ZtzlQ;Xkk@i~7N%Z9=Vf(bK6Fht0&g>v`1pr66QlFMTGPyYD+13D zI>R~J$4Yt*IMnY?Wz(?1WuIE_IySo|xu7dF0(m)w@tr^5Q%hD(CM5@Ws6~XKxv{@V z`cbhFm4$pnM(c>1yu5LpZ&VXMkUzQn;9wuq-gDif@+;YM>x_w+jF`|LfnxJLH$wJL zXT9w=N<60Ho^rY577YS_n>OC5T@L4XyG%ojXUf|=^kpn(Yb8Ss_3TK#&a2Ar^az+f z;9{K2mm|eWsbd4JjzP<^S|Y94b%>cwCk?W}?L(7L+gj%tr}Obda|3%5hV|D2OwLdC zUDbo8i&{|n#LYhdMgSKpgaZWcfA2AfnQ~pme%XOE5JKuiTcTAIwr1dwK=8 z`$`Aj7;utL=)Kskgvv*fT0bZtv$|^?E};3+h;3McJPiX|VSet2+N!3OgET(z>{>UwfB)XR~nfd9k{vN}cIu!{FC*f!F0o`+4c%QltO zG%gC_ON+Ekpw6*dM$Nx<@50|y*Rd-^eM>LVCDwTc-*Jzk!>@*}_C8lNFDPO(u_4^P zo?q-`W@MBJ3PkJRtqC;^XiP9;b<^6P`3=7RB&tn)=9h5&DEZJJxTTjWs_TrwfovK~ zmBQc8AH7J*kXtjz@{6=-H{;`EV9O9`OCl|8cOA>wUDUE{vm#I4W?N9?J#_5Fy`w)% zXqH8UQPT}tdr1E1+gj#w2<>fn{(_I;_UwmM5w-Fk?xg9Rkls3Y%xFoNu-uaHp1 z(L0`(&sF2n;0z!UhI_sozg@H5uAvCZ;@z+MJPR~xJFX&7h(`5WO>R{ocSjqx`^6@L z2@y6s#$fNCr2TXiLOT0_$qwKb(K96l{y!h*h?eEe+C!3TFy!@Nqvq+%^b4V@>Av)H zqP+;c*~)f*&u*w3PUS`-pDRWxi5;lkn{u}g#P|F>r1`kou9NCn-mLtT9I^?V(*F6Pq=IHU}^lWV4bcYZ5*Ev-71) zTl{I2Zy|D$-_ItQ}@Ig7fjJF44BSJQI@IlC*CVpnY|z-HU?PlKTABAV4tXE!tMm>lXcEiJhW63si78u*FZmhd0A@dVJHRsjzl3@nnn<`K66%{k=Zk zf)Vlu4I?$Z`-#eGc?CkQkSQ8gdbg;V$V@UDkTT0IP)Y^0NhEIlp4=O}PTuH zbTgJvH-&@O>Y4s@?wFiJYR^t&JFqi+qfY16#xEf8t4PPAuuaz+t~1efO{Q0<47mK? zYzAk86M<4$NSQF&uK4cxX4uRdIk@Dbw=E51jw72c8G@PcykHxq+Y2@0TxHuh$si># zJ!QGIIOy`pixFQhATJ9mEh+}zH!wFQzINuiC%3hCQ8b-9Xkz0WEaMsdd1pCWXREhw zPT<9x$!#Y&wKe%`jh!VXHh8cbI!C;J0z9;v-=bm$a@BMw(Ip2SeneCai*IsMw)z|yu0O|g$UUeZ| z3_A78MDM#ym=dqF2-ngVBOIu6kc!O9z|FtX!=8DcB`b%DE5&Dv3zu?*RtixVM2L#L z5Pe-aI;y%W(kt;Na_$JT+5EA}$)(ZV>Kj$u>an2oS?~3d4xJLyy73cPCPpEIqXXH2 z_Qa|kveNEg``xj-b8_50Lt(J<#EfxTN11hcocT*HRPyT320PEiX#WN~?`ozrgr`L9 z^f6_9XS??3v*zBboudCr_x&#sbPZF|%0Z|jV|f;T#m}Li^)s;>BDuP4w348Br@+A8 za&^g-w>i`P>8s^m6Bj%S!g8&R57TolE*TEI;2J@Ew9Ej-Fs1b!xyExdY`up<$#;o? z$GK(Kv-|nqE4Yffuy=bRFD}X+E^!xcPZc+m&w!}flh>(rlGeB9^F^*hMliyp)3ykiJM`>8sX6JQn@7*q7HPL?TdyTr?g`F*bX)qcG%E^*y(nFlUx zx7eQ?#P|+{ZR{4GL0OfoW5uz*Y|V6;<6+~eL!mjBAu16a^!TN)6j#)njrxNJ{2=X- z5LzK2*;n01dmh3!AawKcEt`I{X*96om5eA*Hc#PCzlIBYdZUJEpF3PN7bxrP`t`Wt z?1wZUdPe1?!os=>nMtM@Sd|G-*{1(XY}EYGc)kU+DDsFiQ$6t|b4(4=#&XS?L&m&F zo2lSuB1yR$v48VmpKeZpWWZ4T;BDz`2MuGcRYawD5O_*GR@;DUQkPW$+Ji5Rzh)bd zFsQOAI!KDf7wif@F?5xx+_fEVr|QM4U>SZ(168jNmPQHMX0uQC4x7#Hlv{^R9h?_D z({iB~GSw)uCPMVf1tQu<^@ukQXWXoPA{kV2LiCPtU0q%Svl$9bE;2F_8e4v-LPE8j z_Y%f{f@P_sP?alNf7CCblHVF~eXQ%Kb82^&kn{1H z^pa7*s6Yc^g(Ui`?Nj3L8Bmb*qm~`>Zta`b7Pu>)6#?PV_G+e;@$a&!SCj3ssdL={ zH*_%hxev(Nq-z-i!edA7f*l+$SWN=Won;TGMY|z%Q!S448u7 z+9MGA^_%6kbO$slmV``pIk<(oqG^p_i0DUkug@w*NnGjG^vH|5jMWGcuunM{AzOZZ zbX2eGmn(>>PO?BD?SzFZYILCvd1>Q@_izmKOByXE9Y;x@hDNLowTKGPp{mjvs>$rP zCm)h{1rctS_ykY77*bd#ow8(U`Zc9ZqE}gD`N(*c?ZW;_zx5VarMlZPU1vJ6rlc*~&U>Imh~ z;>Rp#UP&8c1wl=}UQGmc;>*{(p3hbOdkgx?q1S#)8gR={&G=2!ivo#A?y4yRp`i_I z`}=DSATH*6(~fo`I7G6N&a2>~8{(@TUxIL?q|E1MsCrgK(q&J6UMhc}OQ1;q+{2#2 z!obAUXbjDmqWKA;^7d`PRb5GgaJB*gia10OY;mLTEUL7Udm!gGYf>*esv2$dHaRQ1z4-CQ zPPhX?*A06ZNHqa+7}QkmetnK=3qyyAm}q$QeZrLI@KKh`t^vNm-q*zNjl_$g$Qd_P?a!lZ4^j;hp+8fpd=a0qYDPBaW;whh zI(zrJmzKG!@#|@^0g8Ay;+TAXrNA&vk$M>{fqL4eFdzH(WRw8ouO|c;wFw$(1 zcmb%bm2x5TTOEt6n;JuVSqvHrRK51^8}ka`12b9Gxo}Bb5A8j>K|8m}v>hV^QbJw! zynoB;!KIaft;&f8kunie{j#Te)BGGnVv1_~s{(DScy5zqJ|rawxv~wIDD~k-UV77k z4t9(gre8TX7v2G}rxCyVtFIS6PCLn62f1beT>CHx>=W2=1-n& zV}2ml_LhrX1xoeZnKBS$aPD#TB9_I#JAK`B$aRr}_NJI1_=~AGBPsn&fz`!&Eaf9@ zyUVbw%6?PN<7Q3V!WZgy3u1yPxkUz9!*3yGVxXi`RqV=5UGO;UB4O{}=o7JNG6USs2lG=XK7M+HFa2LwpS?QueMXv#Zw>{*3X%n(7{nSio*d zR-S`az^Rk^AJX>@QDiK55;mCErgc6*R`yX}V0vyRswZ5N*ih;)7xIdws$CJ?BXt2b z;&CcTcLGW9NleL#SbczdvlYPwMIm5*bct!ByjP~a=OV2M$Pn7Lp3(UQ%iN6@c;OOY zKadqjk^=j@l5d>Q#9z4$u1%U{Q2Cbc{j^rq4r~yK>7*$vuPyC1UcM53mxK1mB|9oWg8Z9~2vTPKX9I)H#)9X-$vUi)b^YlI=nm60f zjOcFw%3AvUjR6BM_`uT#tGQsm6=-Mx3BIQ^-M`gvH(e|O9uW@gc@Uw`7IbV^4 z8L+@d17(LXcQdxrrPF_rC40q~{<^~FjXmRhR$vQ{R;`6??a0gIAC?x1>8mHKN>lX& zu28>6)iYjil~p|C`z7@u)HM;t)#ejBjAR(kqPHp6JL@+Xm4w+=Qmj;`n$OVPykntI zd)cppeZfj!>ZrjZVCNyz^;kiYa}y~45OCuB;?L@c1dF3|=dSV$o`t<3vfP(j{qKG% zE6dXpFw!I8EzXx4bST8$hGBYO5yE(TQ=^rpvxD35ly`H%k`WHW9aLTVV-WGZ0}whn ziQd>uR7phrMt^da_SfRq*|-JKZ(D&ZdKB) zPFvO<;6597Kho`^oG(!@ozNgwdJfs$$cT-&WC5#`@UE?PKne^*PEHJC2t%gtTgSE^ z>X&UE9WwBBjIfwk){JbzP1FtZH{o4gw~v9u_<@Zy{d$Bl7F8JX^qW@2JS~nP+xFas z+R)jvLp>NpQ$xq2frOjM*OYiNMsyq1jYV~{uH(l{sJQ#F5i(VB>0yLjoT(<#>N7mt zp0Ul#(Cx+kS*{J=KKwWDz9Hre&t78rpj^3-SD!XZh9_}#O425OnEnt{K;GTA;^j3a z&xfq%c5pEv*@#UgKGz)La1c|k*>oDZogXe)qR!o~XLAlK{ziO|yE)J~tXh_LNfb4e z%Sa1VCTS+X7;-e<$%jtO%Q1_tb*?QuVix)cv7_dn?8?7E3bnOqEJp^3ExzYfU0^Zg zP0%t;^_LZWS}yT5lPW4u)UU#iz>($x1}1E{ZqlfD;`{jSyNZrP?lZFXjcalb;Ynu@ z4xI7drNO|-A_2>EZ2B;`%4bi)V;rzq;VB1I&ql@#ovU2IfKP9G$Jwt7120W>wsQD3 zvX@CaVjpnQUbW}BH?30VV3Sl4c}nFrM~zgOGOE=`xS_OC=OR5%Qd!|={9ZQuv(!HQ zb(|uzl!kWL{HvOradDzBCVa&*G{>Ry7&nox(83G4RjTqhi>=nFb@kk5TbUrn$T zsG?7y-bB*ZX_MAi!ctQxkTdr?JywqY+3QD8IfX6v&BxeNIFWF4H(IlA%~DVCs( zc~g^3xhb8YM%$Q__jR@?j%%dU8e2L#$_q1nk$9<1`|ocsFzYJOTp#DlXr{HDz17Uo z$et(>qI`D!;XZW>tfWgd+vdKbWHUjW$(o|9Pek_%5E;??fXMMyaD)}jHq_XG6_Ao$ zCkJ!xPP#mf6jF}nbbBa63AVwBnaw5N~ zJ0Mhfyo3)bs<#mBtwz_37CYV%=GFC>j-amfe)WCs;Y)B4lD7vMDN`(m94vcwpQ@Kn zaHOxLs&Zclv~^#*7#3(12$J!5Rpk>LGBh}Q^dlkD2Lo=;VuknWSH7!obc8woMBnSd zPiiyw=byDL<2CUt=@n^)9fEp^+Z&~zVEVMWW=Coo-<4o;r04q>5%B$>p&cNNsm(h( zc)GM?MY>baCHK?E*=E)WeA>GGPtO`r62;1dm76t_XIBT#VQ?D9M#iyfZh_g6+5}jx ze!6~pZHnT+nS)r$>bH7f*-*Rioo?kg?4pBPYV5knmf~$t{`&|W+KZqxy-@h>T5qpI z0hV*CnFSWa%+!@UBr>*w_YHt^Z^b@{2C^N>%MMR)0-wxjee5Ugn9{Oqe8XGQl(!@< z%OP{5XAYEU>gl=cR}bQQc1^rJn23g7i#4nulTHxVm^vCYqRqC%z`Bqe%fx-+k=Lb1 z_?I_NSAp~?rYR4(5r2;M1LWQ4aW8VR|8Ufm)}jlMuZn&)X%>Kh%kU^oLCINulHOL{ z-gfjncv5Ca2Ela~?5xkFmiP(~7gwkH{Rg(`eq{)JG&_DYUgcB4e5rps&lLIEYeag) zpR%kUzO?7J7Sp-dkWMYB$H?LrO;x=5hzhuJ(s&5&n2`pY;e4B^_=;=7r>{FDJ#2IG&T3!hk^7cixp1macRnH+&lUOqVDdH z1K?dR=nC5ppi99f^c`>ckAGqS#WJq0@S<<*CAf8MMfp7`xM(iHPmBMxrz$VnkNNtsVN>EX2Gvg zt@x$W?(`@Nk_bta$tO^Yh(UsoY1M7)OBWX6qg;=!|gCdxW1WUOO@kMrx%p^ON zTPo;%h@J|KzAf51>+_6`F4~BcS!`x<6`0$oh~JU3+=MM_x2yr?TQ!7>;>FzrJ@t4D zyNo$p)G)#ywMZC*SWYW3&@r3uwKbigJj#&r`8o8Gf~IszQ--t*>?Pbxz$U$`nhJ#N zb1|W)LEOxDu9iQlcUskXgjoJe9?vbRuH}+Os{>lh1YtpsT24F%Mz6DAoj*^kV&7Fa z82fCmwH8ec)h@p^a`<9G@4(yPn(W8nak-s_i+xPtNRWb*%HP0j!?D)u31a%8#Q~Gv z0Co%r>&GDqVT|SJ7n7@m;V&gvn`|Y!@dbH%xHQh~!4E*AM&tYiVR5H-5;A9)h}~xW z9V9N3zV3=e+r&>1Gl3d*#K*#)us15IiREg696tAd#-`ROC8gS}Be#!YBN+PGRA=YT z-8TF@l{97vJDn;jJ|0 z9#bDM`crPHA&}VgmILE&HwUXO@AKmwU%ueh)|4c$owu<)$U=;okX$E<2XUNvEJ5$2 zw{dS9&0#HxC5F8?xhIAdC_G)ha8UiVw~i>4y!fl@FNKF2*7#yO_p*!XbA61jWRFO! z+0vCgf0?{`%xFX7cp+0ldE$L@ZWLFh`r5>gay~B3I3L8M8Og*CCeeDjodn{}XOEK! z!&Fi8!cy-=pVWX+!ncKVey18$bum6vcv(5^ytnFQgJ00kfm#zh`Cz}ZO`wm8My6Y7lM9Y2^7Gw??%rh2vcXf*_c z7?;s)RoTI-Cp%@4prhMWVcBG$b`r4}DvuT0?x}gmN7HdmTW{2be!L=<(~l_)52*2T z;$S^52dbZbTzC4O%fi0(SPp*9p4`o4+d9kcu~G??X$hTOlH2GqD94(s>?1C$*6@#1 z&zWCsC}~l1=A68BlC~XhoSd4$us4y$aX|S~BGo} zh5D{+`N2RYwP-GzF;%@p4-`^Sn%h{TMs*0gT>hxq1mB=K!eUWb$NIh*mqz6v+>v<{ zKmcucEQN-3RYf*5>ZPr$stw5z;(4M}b@2s@P6WzhiB+L)DWKBr1~TANh2s6s8yikv ztY2keYNkK*7KKsuIP*;07pEg_fcj)j=U@(dyKCfWUP9&~wqlcwHn_z~N93%vfO?P@ zFYkJky^`_SwE!Vo44D_z{5W>}id6&UXY=M7O7@UDhpNpl_t4a}gVK7%5FPgN3>#C% z5BRV?`UTRg(wU7M+Qn@b z^!s6hMG5zdbZdQ-W zy3eRpgO)1gw&YAT373>6WK8T6@@|K@c)pC9Pa163$plR#&}MPdOQFmjtwGemBjb;G*T8X-#^bHpg?t@no%p>O&oQ(69VhEW zn1WXQ*{N1Fdktb7_V}s}RfB#MYN6Wx6QzVORp`6j3PwidJ|Oj#PsO)!uuFYM>dM2i z-G~dh>z~&0C!1LhQo(>qnwvgG#Lb6t%r}3f8AAYmlv?Dkdan6i2=={XW4$UW(;&c< zYJnGB-#vvg`Y~mE-73#`j(TJ8jh{@y#yP><#61>9$wBBn8wtUJ#215jEztPM;<0}D z$&Q2%c)~s}3lH{#Odcy2Yz+n-`pzUw6+nBcfUZn1y`#W=X!vAbvEC*P zxIV;7-)uvFX5$gk{gJ~+i0NL&cNzH67q{Rg>mRl}J=k7pc`Vh%&Kd!|+mF6uv=OSF zUd5YWpbn)~Qtkg|JyEjkF_cuf_9j1_#+kns05#7r| zIXd4d?M!&8WXF2A%M|jIQQ@hAB0{fI0JKZZAl(vZQjdKd6QsN&Av;F8Ty-BBwzFH% zb72UXYItmJ3UN+k;NEP49>=K|TApC_@rjj>Pu?0~bo8CJPwwX8a!JleR4T@gbJZYK zWsfXj8GhcIa~&QJzK17_iW`sYOBctTgv)_4tj_I+zwt)Y%6pxv+CNBMPmW}SQ47&j zujl6sUZBgZ_z1sa>Lg5&~?;AHk>T#njeh;Um@R;XHfKY!FFkSs;bdD z9UB|ZLoPVmG?GKdRRf1kE~ZwvR@=PSYnj6PyVu-6S^X;6Rv4Vsb|hOPq+_~vJclOB zX;nIK2pFFSCNl!4sd{qU5D=C*auLZmKVr%GPD`QXJ4DUz2i1yQt*1+ROQtcG|H-QX z`fuJ{z(Cx=#$=_{4{{4`ShdVFFE{IUZi1fLnnyhM1I)Tk4)#UJ{QW{3 zPLhjWJ`R)lUdKQ^FFjR1zH5!oQLDltli~T+$Sj|uhOubB-LkcZbc<6-Adt{?LmPZ( zAPJfAU|t)5SjyU(Z{UE+o_UfAhuysqFWAN^v)D^|z0IdU?e+#El`D{w%H#HUG%l~% znYmQJi6Dm0n52?t|5asF%HKZfShYMIq)zXDwNe)-rLskcA*a}F3R3F;Re2sY07CvK zQCT9c&_LpY$|#il1UDa-0A)_TSjqxEr~&+2 z(R+~9od_~KjbGE$+T=}4Vu=-mtIGGtkG|2lCMxohh14%ikNU9x;YGSCT8XTCEfXv( zUb}&XjofJN!XYHC?0@YETaYvWtj!C}=8t>8!FdkY7?RjP??O8j|rb5%c&*CBmLFJVIk z`pDmKWWO1KPePRJr-pzQPa@vwP8d=Qnz6=E&zV;sD6!MQ+!~m9g#h=eAzk5ne;r*u~2DoQFQo z4-|8v6gGAaYEX&SwX0-~N{1Zx$BkdQU9C$f1k&GS;(65%NMbkYmDxoa1eGVyVCXuR zXaCDQK4)ZNg~F?J;a%Pd%<|y(M?mFmsgU$Q=!nYAqFrpDwdt$!hnP&j`+I4;j{QA@ zYZ77?ih|U3CyCsEw8uCn^JKF4-CMK$kg7rai7|P9=yQC3s$O#-GEu9+DHAO5I&8e6 z{3rx0&TO;m4Rb0wfLHhK=s?oXk)vW!@{|73!44 z$}?c!hk)nG$@C#p>QR#HapjmfMVZ*9ptOK*q+TXsvr>er3efDoA`<6I>hl0c@0ht5 z(pC}9{t!%+CmVP`DKMym9%U^TDQhT&xRiktsNJxxcqQc*1gy6a?Zik<8LbrX^&Zni zyy_Rv`OVGjhuCV=#oclCOa6NJ3Rp=<;Rx6zy;%TIlnIDFzRnZXz^SsdvXM>obvMKQ zy^+*TmEI3Jv*t%-H}ZvBStFk^W<3@FUaLpF-fQ9Ds*ABe4+!H@-3exE z4lxLqQ1>x0NWTjnc$_??CL4Zm(UH+VaKH8GopGFjOy2qxfq)-kpq#gQ`FOpLpo9MA z+aMZPJ9$;6Wg?6t)sAog^B}J)9jkt{v*5UgyOzz46YatAQl~Zc`g;k)8+LHuWW8k3 z^+6_40kXYS5<6#=C7gj%Y&4`S%&vo=QhT}n4<{$?vg`JYT-m8pO}F6 z@Z5Napk;kAsVrJ&4IvU>5(DF=`7phamY;J^}v$QOnMaxtQlwH4GXuGgEg>)_>33{%;ddbT$JsTcBg>+ zzHqqL*A*<^&$MLI#Q8>8fo8hMH~SXy&U9fTWv}_vX<}2;Vipdv^rAXI)RNx zDD^Ww>wU_FTBn00?eQwhs4^)?=7Cr0>zX0|f?k~kY+<&GBO#$r5w#}HE*DVsxD6}5 zk=5TI0o1!Vj&B}QJcK5#cRG>s>~!0Z?H-Mc9-)o2YCTe^8jyB`TnYh%0g!IWU4P`n zX#!{SDC;JyvwXzO(I6i{K`yV!=aQqn73-z(ACI_gHc?0`(>=+~#s&52dVh^Cs2k3p z4KIU({@d}ge&rx~N!VsJ^yA!HzdP&awc{oQuRqjZF(W;?wAjZ9H?51I?hoG9#XRj) zq+LU?IJTw`@pVR25i))&?%QD(($xh=QZvuMYRt<%zmRJC z8D+og@5tx@TVFytE`XppVSzUH_Md6*n)JzYVfBBzBLgLh=jme6nMdW^CxLq#Bo89( z?5FpYLPAk~3FW_$Y1#(=7H4<1IQZhZTam`i6mQ4mNWXFg=LNHV%3*!g9GnwO#$@ap zhmvILOc$)}QX5}$x~L>_LIe}N7JD-#-2(-o&NwlA_c0Y}&X2k%Xf%;hUqo`^hW$-iOI4lKYUh|wH=IVSHX+vX(Pi(PA2@agK7?mgXU$Q#JM_uy;d_OlDQC+} zA*QUv7;J^ZCRyr-K{>S<##p-sd7)iU)%v9U=Oy#mNK7$F zRyCsqs&ZC$uuKoc`Jsyu{s|doBCOJg+$>W$u}_ePVp75fO zX}tSHB)DOH;g)%xdTf-lK*-uUQfd{>XmBW9;8grfItsIHOmZSjd)T5%4mAnCqa?sV zx^#yzb92_{+>uC{nLmii-fP3Js>F3l$fePsU@<8|P}ccmyvC?&+jowWb|g|qbah8& zASd9+M0I1#H>>EX8iP9P^V>tmDfd_3b>7{}o4Z(j=T0V3HEv>#+^@U4pLYh1X1hXe zvuTK#>6VnPXqEc;G~^wN$nx_iDyE!WH8<4SZ)X5G0=a_Es(t#*WQmSN4RvM-b%u9L z)lyyB>z;zWC&tjimjfm_PEtl{MELladEI-P#+^yus1ux`ZhtWX4bIuHdbLneGRbNk zCL5U^>c(V<5p(_Pt*HcoA&0)beUkH;&VA%#2;pxKnsxuZXRRpSeqRVCkY8{f^DZi> z23y^G&kHFkJSXYRZDNuMH#wg0AG?%;UpM6t^ss-S$H*Y!w4mdk*C6DadDyu1KD7!p z#Lh0EQ#l>( zuJl*jGLn$#<4RMNDt|;K{&l=VdE=_fx}QW{iC$c-GJT3J5pHyc(aec&VS~}kA|Gp} zcQREGd!-xJg=)ptTXFPh&pnDj2g=1j1kd&MYIo>7R*808T1*f@eDu-1ZUZ`K8ao5B(O(O>~D3_GMQeXY*cmi0Dm5NI5m|r_PM6R6Sh3 z_R=Ee9W*DHzd0{D6=njl_f>oF2|ps$<@4r%usdZS_{{IyGkcg-F3b3~E1JF7MB zw#R3Btg>E+doF&s;s8fGrx!6{l>=ui8>@OG!jOHU za!n*Njm>JZ@!^v!DA`Wmn%4#hg00%*UWJ0kwXFjIgt_^yc#KzU80>-jY^4}DP~KP7 zs;M&Yq-%wEW1KfW>f;k}OuqFXv6f-{B$d=$ZzEURZQr}0b@6R{Jej$I;E(WUO6&X7 z47`#w86PIU4rtYDWPoSwzp41qWQ%+|$c_*8aZ}VZ7YOe92(iGcJLSi$?k|(#p4~Am zPhmY-m94u;;*9gB9`egmnHJ0?JI#%bF=ZWYLY7_=V~MnhaLO#`cC1N*+Kg^4z=%d( zeSV!kv>dy&t-`iK=Q!r^t4@^;)?`6D*A%;&e5CdL%%G$19JXqQ6)pD&bkHQGhXlc) zyFgK6oST|lh%hm55^?F;sKYAOGd0Vh?a1BlTd3T`g*B;q?Ts|Se&o!OeHMR~nZ^(3 zhQa=JHs9llQu~3|+r`F(J|YF<#C9(0u3_22l%wUxS2H!PDl4rv5j0{{k(bH7nN9mg z^QUT7^gaz28~$Qjo;q!P{DsH3J-@xf=^^eSBQqUanu4+E%yTWt#=|EX^^ICuk@H$)G=^FC z-+1oxzv;E?pAy6j;lRE(Xo7_3`!C`4rU_R}Wz#-)Z|C(LM9OuWL zH9wNLumt|3ZdY47e|H-bBio&S$@D>Y0}UUyZ*H91_bFA$D~tU zgQ(_BzWTixkDYoHvbcNwL*-SM!sq4M-(rUEYa%ZxXYF?}X~7*x2G(%Dk@gnJVV@B@ zHX&g@d==r|zPuM5#g;pskWs>(`1%r30CP$_>K6o_Coc~w?G#Itm z1Ey1z*L(bhMvQD1GRD4W9!3I>ti?a{sq0x`}4O2mpaRk^BviNUCk_k0^j*2KRIW)ofwCJ_{pP8 zM8+?rs4FUe*||Y?6j4Zq-=y%E|HqnscD+WiMuCuQSb@CW zWyK)5SFiGHHvK&=?pf0Rg|3XO#-w`z#|2AK!E#<#HmRa(DEdo+j51}JdIZn~di2Gb z4TW&_;i9i{5mI+8d=U(85;K*LpI(hmZENtL|0vhHl#!Ppw&S@p&o=I66Lmvapg)=K z`9tMJ9?mOmCk6Tu5z%o3Ya-c@@1n3Mq{ z|0ZAhul?3C+w_GT1W0}JFw&T-TfS@zHtCOG^-*VoHaz`(Tt+;7|FlmQWqiXGqtk^q ze-GG*Vb5i;`ijFN^81Kl;;jFKY?&u#d~ug96-AME`o6+{X4s}|ISW#@o@0ma1u}v! z%s0Nd)TLklJ8f+ZG;;idwhcB*#TPV41-2PE05m>&bPhmcomr*Ae{HVyXPExEIH;1& z#-vzb!b{OPRV~NoM>MpJQH+I|S#{dK5XvRS_7`aN_h0`OCzt-&v0#}@-!lJ-H6&N0 z%q6k1e1g4&oSBa9uGOZ0Sms%ZC%>=$-yr>d6#qdnycG11Y9s0A8?G+VRd`Ylh3KFJ*?v!6@zF){tn&6Sgi z4B>39rYwXES4Tug3qi$**~RPcj{X`|{jrsf&~uDZ>TLuS@0VhC{|0gabOjAl-eG5t zv})p*^IzdvKKp;c*S{e*$bpt5@|KnFMP-4Ax>ygl$R1nT! z`Lk>JX)!gfm!k+38TVSdbR#JGx9N)HxPu!^|9~f`@=AXxZoqbk4)$Nly8hG@QqK3{ zhsJ`U@gtNE?(T6@^N!SS;M=cXv*n~N3frJ?<0NGNv)6BhudOl=kEZ=c8v-(fPbog+ zM1Jc(V-oCLG4sZ{NQh5FKe(nD}SXNp}K%PZ3p3mrOrH{~-XU!ms z$yR<4o_sqElIzmg8%=fEGx~j9hvHePG~j%nn4FDyCnrKb_6=XlsqxLsK_uC1{}0$t z`?SoN(~KKf_BnI#i|^LXrP-Q*D$?+eI;kPS&HOk&vup5i{hKq#*Fw+}KeEo|JX6{|4qqC%rY9hEa)JI?V1IEAdBnQa19(|!}|LF%#^I2&AuYT_U)m{j~ z&3Jn<(4LlwlIRqb#cnHYZ5iwxio2423z5@0wB^@AScT^bJo%?U`_>@$=uxmZ`8iC* zVS&Y|hqKMxaan}ibsN5}@%Xn~=@}1WhG*Uv?%ZvC_FXnG9FcSVe`M9m`vCgxZnd@Q z1Q>@elUY4K&31nw-$0vnrUw1k^tV5YT}7DOY@m8XgbG-H=TDO8Uj%uY&*T=t%fyq^!vmecyq5EmM{$#nhpBi8hbj~_GCIlNQi|DTiiuFE>s?_T58=;_pDh$+T% z6a5g}+gXnFYX-n`V|#0Biesl3OF8K7+-Y~yv2)Hk#NonB=MH@&?H^*jWAGfK1xsqd z)27bTG$Z~`hd&LpkiPY3M`5~wh4u5_)B?WC17_=HZA|pJzegxd?C(E(xO3sc1&fTD zx-XG`iCF)&7|?Nk*Yr|esE7T{(Pn0}zXk(QWyMyGRQydqUduf{f9K8}MZiLO9R9=R z`srE;{!5(xL53p0kcEo6#ZEEjke76S53{WPq(a_V(YP6RX@(1@6p8=B=s(Hjb?h%& z50I=^#IWYyZ~eWO$Xy2}4n2O`m?!Eub>&IRt9yU!@-ICt1G*ESz&fp$dSVW?hV2oU zq=aruW59!LeA4%Ve#;_G6!9*4J3`62;wJ|?d*;-hX=Zg-CYM@#^udyuT87A9`n5kT zwh%vi8`-dQ!lb!}`Mz5*c~9)+-xOy!w#yDnbw-kCi5kl?+^}EL5sU~Zf0ljq*5i0- z>)wp`_wQNbFeGoy{{u<<38Mf1Z(SMzmjRx%H{01KCj9?%ny38J#e`JIMdsG6;Ak91 zAsrZIcFOciQoI1bmL2DQ|%+rTT~-(^fx7(ManO|?ok`z5|s4D z^}oqRFfu?txsajmY;o{6W)1zi5<9M+?fErxM`_x>ZPWdKE}(zc#Qr-$0nSiBJPFWT z`TM3j0E@sQR(^iX9lFdb6quA#QPjU5>p!UBW6kdh7XxO_&R8nNELuMC_}r&u!s6~F z{AuQ-TpA#b-`Z&SeApU{UK4*6tsiqeq9?VbRK0@4(&g!akzqSPr{t#RPdSI;JnMTH zS#O5Ydvgx8jxE}v`43lw)c-W$aN7U;Qfqf;=wn<#f=Fz(7-%@-$)l|Km@j6sfB(7C}% zCHcB)WBX#0vY$RO^}8-gZI^=1--ZQztV$F9?>zTAIOi42epaRm038cSd%}aC82#%% zgT7o7bJ=|DFJ+yjl6m~F@Olw>AFWt6CodVtX_b)obYvoqsQYNXV@|Ft2~6}K(pIjX zlKUqqJW&`a1@PICmiw81{qFC8{bvO_$mQB6jmFZ}_V#exWd^1{VTJSBTiFDk04_i< z|45Ew{+pC8P$8$K6%Xh+=Yw#mg!`^e|BIjggV6X7_sB1I1pzQM&SA8e|_5GFZxVXk^@40)`hgnQSJoWPA$RL$8WaG3&7B7+kv}aR=}g92Qe@g zKl%RV;5VP;|nv~B9Ghbe4Wx`*RQTx zjsA5XKpk0s@f6_RYKRwWXGx>+?q0QNplVuLADmyyh zc>(`Li!i_p!@_qkg6 zZ3$w?WjTVYnt|>44OuTXXd5sh7@Bk_B zRGRKIoA{?5r8hkmL0h~Y{AU;ZdHbO5&2)nhOojh+1BRDVukuqg%W9TqKwCGBRFC(m z)e6=g(wJa`yKqRvez*2%cQ zvTHF3yv9|6D2+1>G-f~97-K_LJ0?s)@rupCWCaeX0$PPCw#5c>w~CEwV!$;z5bW4j z?c;qMpFxdNrg%A+NTax{Rq)Zj?wi)vR|>YM(&E;(w!#CkX0II4F+TV)JC}ZWyd$!v zD~ZQw;gc(saw0dIWmi(7K*2Mmijp+t+(&PM*R_&(h{kFeQp=8}gG(i|Wc1#M-8AqX z0h5OXpb>?nsuh0HtNQ#hAmTSZy>8@aV-Di^(P;V6Q$T8PQBdC$Lay?!mjqG3kV0f^5K>Pvp=>Grd^hODA+gazMHsOg{W(Bui6L*Xl1$3CsWhe*+bK3%;6}k z;UTz_`*`MQM0BN$OP*#6`Pudaz+&tQIFV1{Hn=Yd+7Rg5+MH>Lhsy;F6v=$xHqa_} znC!3ZvriFpKlJpTZaQmFXIBNng}qB}=*oJ7y%xY%WjC@@nucBYnZ%D}c~;Q%vsk-m zo~RII*%I~+MO05uyh(Sg5>yk|k={GLEReMkC%*lODH|V}R;$DMmF; z3CwL6Q=UrIDm&eUZ(S=&<+WnyDV{F-(egyylF^jxsgV-ITM2qTlgWJ)Fd#V^D+G(x z*51RS`6%J0cYK|Us-1)zv%QpW&Ji`>2|qvZ@(4#C^NBW|c!=mexZ95}+RHURI7r8; zM6DxF=!8pkit}{Jv=r_$VTGfy-=%!E_oXKbfrfTO_=#@~b_&`DT{GC6_x zATj!kn>xX9T%gXqAC{$y1GjGG4&n+o1orAMmfx8YxRD+UTDPaCc!1{7FW~!bK@F0Y zpKsTW4n$~b0@AT=H_61!G2H7R#YX*Zz9%E=(LrcLOy{}1y*HHf@c}ivaW|)+hU}Ne zkOf{xfJ(o;+&~a;9W;7!<{<6$l;`S%f-l;)fS!E`#qxgZT9%}gJ#<5qzz*8Ty*tIb5LAZ-2Y!9)NdGI7?6x)HqG8kO!0>#0#D zm)&{2gS9ThIp)yPptAY3Q5lETYseZjD8bx-V{iwHeCo6^(33GaYcs8#docf1lZC%6OV+!e4X`EN%o#4PnM(Z=kD<_VAH+>9ABdYd1@@!>Vr<1 z;SX)*VJLYv9Jit416uJri_|ZF(RmnCyD_l`n2re!eu3z0QG9*pj`!MD(PQLTmwH<$ zrTT!M#hPG#fl@+S*8MJGX{>CVz6p3r%i456Noy}civ{2YPu{vQ)bI<$1?grrYM1rb z|NXjYVs|<4XebNQ{TFos!qtTqpf3hGG00X3W1pR>__|k;L8+P`711gQpK<)~c8GV5 z+uA?H5;JJ5g!fu?Sow@YJ-l`HUMrh!~kOr~@X zY*6^u5(cv?_7jZi*PmmJGI_h0M4Ue8Ir{r$zWcowfJDdj+h5QLoihDF!>d@qORVmWA(KvInp8f!cAT zs}iy&i5k-tnwH|}>dk~kH%;H1P1lt8aEz@dn)ujnOXjY$2(PrYOAPOr&iUf z+FOUJ-BPtj?XC8RP}Npz@4ag8*s+q(VV2lI5NZp8kcb$+k8|$ldG7o9o#%VbegB6L zpS;KQzOL8nb-msL%EDg~?S^bR4P8Qx#;FMsQdeOivYO}m-ySZtBh1t$NNi&Qwtro6 z?a@lOe{A(dNI3q}JhUpYu?I>!R2zd8$?2MUe9j`(7R?F2euOpa7_N$RqRMS4KveC- zb#?%1x}vt5v}H&vHZCow(i9p;9KS8oYaA5qG!B*^Q{B3og-m1j#Zz3}Af{(o%R}j9 ztus^w5+8lI^qFGRA<+t&6O>1sB);{RaBuRle%?@bxn6^RQ`j6dy zEZoR&oDpQ&)y~ZnLK_F@!_27pfwXvXkWlTHqynTK5nYs}R&xdFiB6db+?kA=m*J## z&*ptaB_(p*klc~D%WmW_kEaG;srP~efWhljj*K&E+vg~mz4Bl&QP zxg+lyEbwW#zt(iBNE=$SwA3(_=Bx~@l>S$f5?!Fj%&iP-!6S0bAZqqicOpNpPU%ar z4YbUnr!kNK%pG{h9~!CqSj1jwa>$0JO*XoH#!0S?H+Q(EfBkS-dEkyBjJ*7A8coO{ zx<_R~$4X&XzjT!Zfom*C19n~*8eEcv3xHC`;}C}`mu}vjnG$b25536LTVa3i#Q<

%tMR}pcU}~ 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 z zZ^tm47jD*T*LbE+wwiSjS?u%c9-9*utN~o&=3_ak!q6-^+leni9$p$PhqtAif7PC{ z_PA!E76kxBpmpof&kin^c9-cH{amv$ox z{Gc{=))*38mdCW+J$ATsMs_!(gmJ#eH!zVJO?tQzv1dZGl_8h)+>K#)WZmQfqkNEq=-om0htLufcrIfUFmL^{f>}FuW_2y z{V0Y8$$BP{Z5{f&a&X1z=`fm_))-%$fV%hxonvJE<__Zma{)bcuIs?8l@9f)f>P^U zQSP9Iz$_%OPc$jvViMoMQupZ0p-IU>^9Z|piAvtZ7Pe`Uo*S6aEc$%Xmihs{!v~k( zsSlO2F9OCGKXZGKyIdFJi=;PHN5*7eQNU}>S5+Jwe#0$bK%Hf-&Dj<6#+4WiHLs}~ z`LftHDk+qp^}+CR4p|Z4%9EYO&93AxPbBZw8TzDl8pa10P@JAX%_Q(0@}t;TF}Byz z%3QeU~FdC96*QZLLz_2w0_OR(*AlN4w5f&PEYO9*Tc$lBqZ067(;jAP3;Jvyxs*D(A^o zUJ8b}x_W5}=as3YW<76p*>TQ&)Ok!fg!P1sRcwOKDaw4O#Q$UEUBY}$qYb7^?|nQF&Ghf-#CNPjCYI=IDq4En$mQQ}kvFtQc{}LCtZ|m#W%0S*i;p%+0IIyw zk1kQuFiqRqbg%4{4==XWig3%9CN-#O#6lNr+xoH^Bu#2mPNzO}{N&rYBT7BsJMw*x z>d~e5%>jeK$GW)hEBY?vVDJtj^w{Q!dukC+h+XINKtvx4Io4m!{u{ zF7w7qvDakx>drz}C!fil8gR?U?YNG0cYl%de#tmC+5FO?cr>_NdbnIwCH_XWu6d`% zrrRjO!Y%;4(YvUK)!kC^#QKi<=SZ)V1r72Ot@L>OtClwjAdj|xnsVw??DMFgS`_ou z{p2Lfssg6uMxvDWuot09`VAXowrBK|tmkx0laO&ds3eAuns+E2lWi@i8?Ek!uU{vQ zvu>*oyB8z~fKz*wB`)Of(JVKMFVd?IFGry6gbs>-Fdf^Rsu_Pb_;B{>Ld4JD?dvJ@ z0gy}eZJ%AW0fLxD+Fq3_1DYgkTvNWHqg1kDAiUDI{mrsSb#e$UjESw)Q1nvJ>NHW>_CnHefpX~*19*z;Xl<_BTQZ-|g*&y|Wwt$U^>ox(Eut29F>B>0&*_em+rV6Y zyE4E-pooAp44awApI=_gbm?}Hr|FOp7U>aKZpA%0%9v*h*@<>8j@Sat=1o|wUcSkM zBS`!STpS5$-;fi?7pBOb>a*W#0m<^aUmmTftN~N+@dhY=%bpH=7q>e+XxJs zup7f~1it?OtLtGGGloj3B`;}BIqW%KoHJ@*Yh5y~liodq)Cmet`6#Z^%~J$t1P@XZ z7cXcG)Y)*k6}g_cqb)ZBNJmZJIuP4kG#oKMelJzlT}7I`HmBsuuA+ zTn)yyv@PfX$3U)cYukpjJT^a#`KL0#YaPU{1$9g!|>>L2H_t=S6^Zs_Q8x)x35TEHw}~YntMO)7%CxyO>64F zK1ILGR*#4}M@s0nZcI8KE@AyHir#hL$Kw#kXA(m1I8p_#=lJ$moq%o3<;$+nm`>{& zfP$1Y&}@s_Q_4$7j3m4ko)hx)GQ}V)-?X+*eW%*!BZ-ppP|>CkXKhsKlrFoVe3XFq z?<+)6-N{~iRTh^^@~hO@UiXlFY3RuKhSPV$6qS=#Di6T68O8?m`@t?T`N~oE8s1~a z*t4zQJaNU8Yxkc`^J$QwxhV#cURn~=gDaNHF;!7dJ{9@T-V*r2*vSW?jO4r*oumRw ze|$N~fRnV!zft={WLFFCwe)b-KnO5(R%Zk0x+wDao1{Xh3F%GpxFXpB*y{U(l&AS`Y5Ra;1 z<#^Q8#uIM07`TO8K=y0B-5OVmw*x_^YL1E-=PtC-vtROQLp04QTVl+ zYIXB`U3KLxNWRhwlRqp) zz&Dx_NLygL-BWzqIS(*tG@pBwan@yO3J2C;+Nf*2lSArRSC)T*Wq`8VMQ`jiUc+cV zb6uOosf+))C4uxZp(bN-kpAjb@kaN2yImGlUWu4I<>qVLk`*-u3FW#6Bk@NJH^#r{ ziwpwRh+`~KuFQd7Bm9Piju9C+f+tEXc+L+(L>x@RRz`X*}=6A*rKrOV_1C#mQsCj9ixDnBz$%eV4m!m0xO}H-?ZbC z7Q8mM6>nd&(@8#jI_8_#-esJ-sCJ!Y7>iu71<@PL#*S#GtO&h2wAvfp6ka=^pRFA0 zjhB9-OWeBkuBtP&NXjX`Z+@smla%v=!_O|7ic1fFcXt9e;%tra&IqwALE7miEAm;_ zhb(YHP=U3x1rNif7i0&m+c)iyHAA0Dyzs-{q!R5@kE@iI5sF~jRAW;Km`DcO@0Cx# z-SaA%irKBvN{3?(ZMxWRG=Dj2KE9Q5Fm!cH#Qex<2Q1bd6O3P$^rU`W=6lA-1_>tJ z7Oc17#Z+5mp_g0%V!+l0xY(Ewy>+1)hM>O_E!a@2;CIjJs3I1PA~oEW}% ztJp8`L$;N|@W7HPCNCXkXD7eklGDwEAnU3be=)D{NiZOk4BxHA;n`A93DVIQ&9(|F zw^@%a)!kDgM(&0ZZZfsS3Pfzwyu%YE*8+K$7@08-R&}MHb<#dMbl=;!+bcL!4yzmS zns^}?rk@u}wpe;yvnHePUl}sy6#5+wK}4<0sTTr0VuS4m1|El%eEDTxpu)rzi!|DbY)es$~P{qjk8VK z6Zsn0wOmK>b|*HS1(`Hr+E3*4SU5m3MnaG{S*V0Me7miteTq;4PdaZHHZ55_{dvPv zH{CXZv$f)KwmBcm2)1TQqdW-Fs$tz!DH6s=i~~~iwt8ByP4`28F>fue>A()H?KaW6 zDkO95EE z112R8@?@o}MLQ5mR^tb&k4>0>lh`{K(UShgm6SA4WO4l9k#{A#XOurwa4c-z!%N)@ z^OMMc0kiXB#|cyGHBv&a?wZf&*qmf{gUx{o_X6q)L^u9cSd-*Ak{rNWtnl znVq;N>^QoPA9z@@xc$9jz$$E-^d`C7yXPwBl4PAS-99M_k9D&%Um_B>(c^+?ZXUe*03jRJd*j@r&BulR6Ufl?%514F?>)rhs@1>s5o&5Ky3FrW7FK1X`vIb0{z|n%(Knzb zW2)h_Z{HG|hi)+hmGyrA(v7?;y;8WuX0yaJzgboBAsFTSB|V(xwO~5r%P$v$+*mE7 zx4X0C+XpivaVgWZR(!0+(0=Wxt0)LoFnLFJl(P4>#PzM|WcTNvK0M`o zUC9+76?>Q9+rdUX|%THOR>jzgg1U5q#)AgF=LOzI1F7bm$>UB2I|`S8gW6$ z2>!s^tXoBpnra+m{&rI7VLSgGy?p0Z$tlvpfvVM=z-ITVJ zKJ8@wB~c5j;IEoP?8#!-y_M)xRtQNakF+yVq$kkSEm0`k{a%{$k?V$x$Y znwQ$v$L2p&!WmTE)hGE8shtxA*atfpknZ%xPQh$sOijHp7{R*@?R*C(iv&b-1f{{Hl4G_*nX)y5$-ZOKgx&aH-^auoss(}A50ad@O)RI*->tj|EX* zNOzRNt1JZF*Rs`FxE&-1R#3{@GJ0iYYD`mek-L2|KDg@T+EXJl40?w_>X&G10wmZK z@IqPVkNxPlO0py%=@!74ec(=%>lJZe&fe!-8fN~*)f1GCt8dfL`rOpxIPXgHN~ZR9 z^RXg`uu!~6Y-Skao8t{$sk|iv;v@k-J0=T_|GEOLDBdH{olTp5fVS{$?FUeut+fZ~ zCse9(Vh@oFdvUtr2LrBOJB-gV=)1p3jR!I^2=>NdT9f7ZUJ($g9eXydKm-u(*es70 zwLPvqF!m{KhxpkKrmg$lFtxCdt8s>TaL*3e2R5GGFi`ark@Et+0)@ zxT15lH3iwu18{a0__M+hPdy@OPKt#~@?~D{`v_%jCl^e(DS0B=%)*m)i31Tf<`m&B zUu~JrJdGki4&-i%uWftJ->I(}Zi>(Kc-ULQ;CV$sFHo2HV`oU!;SBeC#&i7%0Sy2Rv$(VtVF(`==KG!6+cE#{a>$ z=GZw13`rVSDFDp!=e=;`HjRl;7RjpgyjR`p>OTu|p{gf6wB_7mCMmfFvVKb$BhXFP z`%0ob!TIDbrV@k0c4KQ}fm3Vrq3i}NiKnYe0~h*340`C2fb`<~C=L|^7^7NkoThEB zQG%8DeKRNYnDdPa<0&uFyaVxr-(Q4exR-yN51Lba`)5E=QZ!FAx zzmToWCB(qU>XWbWB52I!-F=o%h7#E|o$-^Ra=RwJbZ5V_FH)K=QF&!2-0q^fPjbDN z*Nn+$ZDG{Fv@}S68aSROk*IkkPc|Yp6qeVm;V6=0FU2^$49;M(uxXj@UNzhJ5wiuV zpl%k!c!p?$d^_*%0V$25uJiS@KoD)wn+UeLl-YXsevB zw;td+1$vdXL5dFMocdaq|5$qhr)7}I^Z0WD5eXMrWNdjpc9m(LWhdTRK^~^V@2Kgn zh1ZHk8wQw5ID>r9vkU{_W->nW6=qZ92QQFXNfO-+YE62o?l^obfB)F_`j-W=3oiHg zx&O!6dxtf(ZF`_1MNk0+Q2{9`MY_^^Kt)8Fg7l`+JJKN#MC>3Sy@N>ay@hI_L+AlQ z0Hv1@dVmn}Chu&|+2`E5@7wSE$M>bMR@Pi|jqz)PK7B8_*OC~(D(@$VUJCx>9Nyn= zhQRv(ZAiNR%k=|uLyKG0o;7+Om?j;|Gc?j#GS^OQJbV-cw2>-6vf4cfgmwJBO<;PJ z_4_>JO=+8>OkIJwctf#oti1uwHP)J|fm?6=#^ycVc0?*$=hJ$;;7Qdy*09#;e1Tl~ zDVzjvbt|yRI#@`MwJ+;KsVn=m>|gq_c%g!{o}~V`Z~FTBbS>g4kYm!bq{%q6D=bY_ zS05gB39Y#oHC?@#hAyPkuHDZ{L?=wa@IAwKbPkL4*4f`2i{BMnKpL0Dz0$YirYLti z6B*J3*zVz$=32uygZ|@yvj6pB{YeiD%-6uiu0($vG9hSan(9hBDb$l7zapGdY}jxQ z5M4s8Bf!cV+Hb{tM8L5becbWE@3H_@ZElHw6?SxKBw6*MXZ53#x@+|!LG_!Ps_88X z%;GSi1OvCKSi?{HWYn2`6KORb6pJ%pS0CR z9$+NR=VK%I$8-kZdbHIhH6I{nGOW%E_&R@bF|lk5HE}|Jlz4++U6THx&1p6{AsBqv zYXVVmFj%N|*xx8n9u64#*$Eu3%&s~v7rU{IA3KK_%gT#y35qc7)oK5cD<625Bdz6! zd7Ju8Yf)&gajwD4l4L6SaQ}?48L>cFV!|cJerj`O3~OY(KrBfg+sxO=zvj8#Jl|vV z)#^o4_~1}r8e+(Cdd*g>x!$Kdt8`5m*z%kRMX4~?orlq8u=l+#Ma7N|mTUFS82~CX ziN(F8j=?{;;03mYT;0kKem7mC#(LgRGYh$UJ)Z=LWggAt@)d_*gd*0TrhyzoKXh)tyM-yp@Teq#b^IA>#mDNNTNeBMc#$>R0LT{ z2!8Pn{S9Xk-({7ac)a?k+u+%>Fj-?$0N8S?HsMEPQN3nr$z0qTNhQHgQwi~p5f|Op z%!=cAgmgQiMY3gvfMd@@t|mR`R!p%zFgcEkUa+;$9A*rxK23s z$H`cMH91p5;kVK};9}VkPm)*Hc=!FYpLOy0j$;5|=NPNNcf~vh2@a`#(qrCvOT|sC zDUO6Xd+j>(cTeYKX_F_%nA&-No3#2SGT^&;Qg1b0{exJ07j^8mXO(`JKCJ3Ev0{n8 z)PQ3(ivAHyYK?H^tN#GgFxW;vLp}x$XFcSj6=_nvE?uDx6#5w(WdZ3ky<&rvs)mg> z!4fq{mZ;zAhX3>4kBxtE#LC9v0gX2?HWsuV%o5n#;7*Ni%Ls!=t#F-bB#i7F=jEB0 zloz0YlUyA1y@zNo)n^s2?fSZxf4)bt2j_s%X8EtNz}>@ME(zaj&ZZOygu z+>b#>cwrL79ffzmC{&bV_LyXl>W2#*nY|*FcgtnR%iQ$b-*}@g9!?SB&g zaIWw39bx}@wdy?Y()E^mMcT4DuJheLcSVukm&@& zGbdbgKEPc1o|q-e-4CV_=hxzpj+1oDQp-|D5_VCh@wgtp!qyv1vJ*fCGduZxaH$F60eeMJy7PT|SZd$FZ5Z3!?IE?h3??H%x@Uz*szYs6j z>Wg;Hjo|5LJbTrKvR0sp>zZ93@!7H5gNBJKC8J4H^SActZU zUw+}D5G#x9=dm6!?dpp?+ZZ6u)gm*k#)f}TF*bqi_Mpv!_| zOjpJgX)X1CxOMQ_e*M%sEtE)VQ1awydy%x8A_C_N_n7kw5-~BC)fJ7a2b#7CR+*+@ zvDO7{liVQrwvVZc2Xa$~QhL?VygICrYK$TYN-P!3SGEK2m}(WB;xGY>jC;tf#6TLC z5$IE+!v!l;N{;TZ?wopYaqq8l#-7-*nFgoRPz zyahDnO;l5y`_;%@;Jv zGbtE70%W9b&hW!k*N2(N27pd=9!QjaN(rqu`PH6Mzj*)xI_A2H8)I&nx52kcTBLcj zGj1yCVgqgt6yzh<4QzopePV{3kfD-14qqz-{TdN4=*m4R87vXblg{W?+eGxf3Vz9xs*cI85R9R$wrc?pNU4b3pZxE0h zqXK}zj_^DuYrfZK7@~x-G(^zAp=L38T`Bm&r}n{5Ws^`gY9?X+5tArhpVa!Hyi6M| z4FRSrL|_q3HxL%Pj)@U~bgrMjj<$aYDsC{AUA|hgr#(0DsbP$ui511CJa?sq47 z-|r+7>D6! z;Z9Y*6*wV%Zo9uNuj2~?+r^%jz)wD9`SUB*qNTcD5$TJ#WV}|lrGXTEGW}%iCwbA- z0vfv5pzd-m4nk=0d z$!lzhcT$qoTORhm_l5>KwWDH^%fJ>V+KNagbxuD77 zQb?5FZmfM!ncZ!jTAzY^PtR>pD{<#*4T$9L-agfxwVbp2FDmliz<~cq)~LA|IGC-O z$l-HLR)$`=EcL9$#`89FczS%(&iNvno1Z8O$YM2E#=B@C4&sVkOqBhEWUnB2T*y1| zlIyJx%3M~y}ZaMBu>4K*8-qJvBkj-?}Md}pV*p?>Hf!;sz z^FdQd*gQm@p)(Vd)>puYzL0&~pT?U|hiZW_?FjGh1PIcmOUluGxhVUr* zx}u<)rrwRU+ZagS6}ydy%yim-{*~TEa?X#yq%gI*%w$n{JSy1bPEgEYpz3&O?WG|R zm%ek=>Mlx1;xEgNq?^wp3^D`v#4k@x>8ay)d=OK!4OVR@V{mI|=92D{f0WZ48i4?* z=poy%3$GTq4!I(5K&fZwixUuNAW8rH!RiFtEx!^`hr^^ZDM+XTG!-+Ig|;vLK=bab zAlN8HaW8!}bCgJ#}~Vhs!q>akBJSG9gVFv3pCOTG(O zC^9L6=A5vp7QPFt7%-2v%6tMN!qI5m4LFWTPcC>I%k=A8NM(M|Z2QmjgtjEcgM5ss z3)CYtf>Xfv(^F)Dd=1a8SlOxFQ5D*|)Z=q3v=*c^Dc@PS{QiOwHpo4( z&HAy0N(1N?M2Oo7%mK0vdM`tQ{hf@%st#~{xB>#L{R zl5-)6Ji5;F6Du12fkNsPUqWD+b(qs;>x!fLO$`@F&r5l`S$uk6UxHGfndqqZz^hvz zlu9wcO@XkSU+md6R%R6)KPWH3C~Yzm|AE5mIIx0e){>D{P$lwSQ_>NE99Q1;^I#7} z@IVXNmSuRl)h_4d8=LTfkOu*gEcIKA_#kTcV?b7os||>pX+{N;WB0cJYTs}oSvTV9 zoi{H$>cX!>J$(utndvWlAvrjrL+#r@dK@4iO@u3`ES-lnYwT= z0g(K8|4hckpsub$qmDEZ0>@k>4?6F1@%u|xM#`1Fjzt3*nrxDBw{f{xjIZg%;qvHS z78ElWnYrjWo<(91*&24sV3B|y@c76qc2nID*`50P9nbcKMkb8(Bbetg~c%L&}ivOd-8%XOdJUd zf`73<>dq9!gC&54lR2FD@idbVmP^_hDQZ=>>`rEKq zrL{ETmbADsI{bi&%0S=S`7@Z1mEV zXKR|tRVze!OZ$zYK?^fs!HHZAARcZNPhiNqt$`bOWHqQoMtcARL`2YYYl3N3OUG{i z7L#A~e!sp`9h>Rte5AER!|#)B3%yRKfZ~n>!7zzfqx$B(MCV4H-t1#mG1C7LX$CMe zYfv%Vy|9qHFTD&CV?F>5EOqt+02DXmD9SZzQyIv4EJt-v`Y!feRY{hPp72CDUOi>| zYGM?*hi40DZ-nfEfj3jD4c6DLrJs7dSNFQ`9!TMn$9kZeh%Y4S?#%+@2_6E)k(er# zlDiy+zoPl95;+M~UV8Z5C5^7;<^FUMXWAe7bh+9lMS%wgG4Q z6(#ai0_yB^n~Ad{VA5-B3=Mp-Q>Km8mk>!}GgMnIjAXX48qe%c-hUkQ!wCt&{}vJT zo=%d3YJe#pJZ}rC`;6<{ADui&XNb5S-?J4b|Mp&$Hw0zTlQ7&p@zDl?EH;yHt|~Q+ z;>7Qa)w}*8>`KGRD6tb14U`4+i z{QRb@cA|#j$tA(ZH(OJpuZuYOk3d}3(^jXd&43j2Iw_E$7cpw`mPZ@QrQmMj7{?0^AvsEJ^PFcjJU7lt=;s0^F)zz`ZpzUjOTA zg1;t^Cq3+jBb0gdjx%r3$QcWl|9RE_?GyjpdCt>Qo<2=SI48+=OUUrg3TXw|bN8cp zA8z0IO9JmdimrFeC&5X(Zq2K21T)8e)A{GW_`8Sl$NQ#vTxMFS%LAKzG%t<(-);S0 zzWVFki>9U~GIDYig)6nJf~5afvH0iH2=wN=xr_A|_Ud^g<^R*LUTpg7`5NTO+(_;y z?gtj(Z*3w{~Pk~pNII)@g$QdsJKIGutE}j z-+R8@DW#VSGZUD(m;dj(pOrTEBua3yvnw1v+Yr0y{x_E~xUm{uSS4h$zi1|0Z=UMF zFPPq>`^RS=HzN?5P7^hX)3RoNe_X+{@)uUMS^wMDvER7SPKJnlo`NO)TbS+tSPBYB z7y3fBxV+^xOj$1d`&#}V@BQD`EhYOoF#Be*o`;H#;~a>;#uuMF@&9w7{exCem|*Ce zK2Eb=Bg}RF=hgc2+W5;g6zDDR{{|Pc6*rwUmi@1OkaG~Sc1bqKnuy+impA-fCNNRL zx$`5l#H;3gZ?BcwCx3g<{P~pGVU#x0ehOeq+}fD&bc_D)e$YeubsVtOrGNzdLpaX( zzl+&DCqxDo>{UfYMY?lBMKQtuWw!Y{FR&@K)Ph)PHmsA}|MI~3JE!=ajpQF^Q#)nM z^WRR#Ah9SZH)BGAbH!LKIVcX6Ga_wf>L&rzxdJ5oexa+x-odzC(#whzQ?R6k-0;gKRdK<|C7eLow)^5eMOQR zeb0%qT0rJskBVQ_#~Zy8KMKnM@$5s3;#_e7_kM=#D$0cc^4iC*( z{VVJWpj`6)^C8`-#MlB8xT$Wj!F7-T8vz>K2P!L!O*WstZrd+$!GyHd~u zP?(v3FjUSnL{knxdPTV}4LsO)rR};y8y)TIvGM>!k~=}iK|b&O)JD?T)E}w^FK}nF z{Hq+sX7?AC?|03s_i(&Ld6ZcrOylLOiwg8>9~_y~b#F)VS!?iEf6UbSaawC@iK%+! zw&)^sGIh%mUAMCdG0 zoq1+Q&N~O&Pd%Y?oeWzj*NIo}k2N-f8pXK)h8-w!Waa^im$9@=A3>#V%zPaT-x^$3UjPWr@wNr%lw4k#CY9YnJ6^z zK2rKtx=MMBMqdMZtOyNPf|$2`jGgOZ?mC6_qIPqAWz_{}bQXh>b!WUw`2?^*FDeIX zoW8t0qd;HaB!2fNEp;!Ov_sAI!7}s0;yM@_NKGXtzqE7+bE7Ha-5t$3l2(@|)WBtp zvSXlLQOmvrXHRd`w=#o4y{~7JknH$-9}_QI$v{C(Cg8b$F3kU2 z5^R`Gw^XRiW-6C;EWW-<74S>$^q&fWemW3kec3OPOLJ#b#B$l0tQY#OgzkLcb9$~0 z=fSMRtc2mH=KXg${l87oYcb6rc`n1C3n_cDOH5(^DIfho5Uo{=cD6=G9#J5yB@V}Rj{ev#xo^O`w@PwnQD#D;q)%+Wm)dQERBc| zMv?KJFAcKZ>*4j=4@BB@5yfMpVlr?m`|2Qs7`=bP!AFa)HIG1mY{J8ZWS}%u?yEPw z17PyGr05P9nAptaZA7|ZW;=d6OCw?0?PT*WPGSPVb0NX9@%C$1F4YE&$9)AGhWA3Q zaB^#;gv&QHiHQ_ocI#waw{t{cweia9)uEXRfrqY(eNSg{0;i>8E-gz$oo_mO%U~7l ze>bCOVQFX|eUsbO8~0gpm(7ECx79Fy9+OTlo2OIAt5;+kBjvWhc%21>N`|+CZgVcW zRcK88dS$)eewiN%9!9kswitN8RUT7Zx#2QcEn(3f*OHJ^^0l`2>NnV}NE*YY5#Dr@ zL7LwS{y!?Kcb86j@L7CPO4MkdG`}?SW5@N=zwRtA4Zz+-KA(Jx1yVA#5eTkGB{KUy zju!r&qW#*(_)ggtM}q*2W3QQKRi(}3<2nz_uk)87Pk&h~jblg$ z?}_}Bu-kiwLny!U0hRCvpN{~&Qv3qB(9S@6;8Q};7@^F<+4ieYBAxlR2fG~&gfL`#tx#McP z>rK;BDC+F} zcFAHb;Y-<^!ny}u+TeLt&eOSqh+7_X8#q<=HiYS?B|e%ivz0KF;AJV!VvmMXnx-*F zB3`egWlKHeK7t_{zH7}EB(8*3bt%vJ4{G}LX1Z&VEO~Owf2?kHCn}pN9|73&m9q2z zvB83ZP*0!lo%1%awE>5=dIo>0$Ij)GzoB7XBimknt#(=FfvM9(`*j=BYCIm_H4`Ss z8_69?-}4w`48MjP>}hK^u@NO*rqlSrd&h_ zGTrJ1hwHWIvFr8Ga%5G?b!S;;Ar7Up4XcDTB)c^nBqz$b8P?FpdTh1{eN&b+3D_9R zK0cm1O-<52(=4~FvXWt5r)Um4hR^{yJIJYBaU5ojt7mSaHas94nRdV=W*^KVS{y)| zMHK(hX~%YCbV(HDHw7b29^A&_8^Er+=3NSt+rsraZEsC~_KfEItBS9f+>@n&9Uewu z9j}=z`?-E!ZSsbXA2PkBe%C^fo{ZIo+&a5L-k?wc!xc6kepDP&LD%!j9ol(1M<|># zb6?g#_)dGMQDxm+d7S_2vaF~NuLoX_6Wy28tODfuyydTDS`-asHBcnus#^D>7~)cS z)agX-VZK<;T;rN1?r+j|O7sM)^sfe{Up(M>N*?A_kc=cl;iY4DPLS4<&rAw+&gkquVsedDGzb3R7pNh^0tJkZt6<6m9%NdlpSpwi}e~>+h+L z-xUMX(%7lq1tA#a|AT{X=S?pc&I3{b|l(oIhUtXHrdIPYd|exUB#NWwGew;5B8@kO{m`) z7E4niH9s=l4g;n>J@+feux*)TXM3cktRM-=&nY`S6nQD;!tJfLJ z$8At1dwJP!mx7wtpa^OI(TC9bG2*K$pMKg4Mz72V46-kwtLCCX#E!`95T!3~sAt=O z%EJQaGhozKJQhB-T=%`iTfuOO_K+#-4xshrxUu-=f{>~40}z;IVrC0BO6|(20noF- zy)YI&MTwXEL4N6h5A5om%{_1{%+^SasrT8u59$d4)G{lh49G2gR;IK3#J#|i5dur6 zavInv(>)OzDkrQ&EECkw+NLmMU$EevJ}L-QK$o^wgHc2gX+2 z;fjsKHG7{bC;xIHt-V&ReCq3+E3V5!JpEL;0JSbp5ui0dRK{oOmtND#aJk9@OdV|^ z&(t809uPiR`{ok!klXTP^s}Oc6$U;%A8hF6!4UzUY~B?Mm3-XS*ib(4jTWWDeFHW2 zL!ARkcFk)V}KFfj{2*z{xH%Bw18*o4=b__`AnOkuf?;>;^i zj#H)I;xD8%p_d!h>l^rn%G6hMLCUL;6_V2DK()3RINU^W_}dEdpNL@K zp5Xe%=*LYrxG>#xYO{rJspTC+c*&t z6r0!$4z@6q#laB&s$LQKdn-<%nCr7s;U3msPe4?x$x~373DG{2$rzKM4UZ(l7$<6? zW1c75?f}g_h{sWan8EZ*i*hiE__QZ-bD6&Ot`j+qty1`ly*Pe#DKg=SH@Y}*wwx$) zZ9(Ymp^@iBK0g0yU-H#&vlU`jpQJ|H%G=jj=#CIx`Np}!#GC53x}^K5PJ7zwiG)%0 zB6n2voZFj>UKW3O$52u{wi3y;8SAxjF?`-%Z}jc`$Dy`QEQ68FegeLb-P9V3*0{FL z3&ky~zO{}iodSsk1zT&~d(meg)3+W?uV${4;oHeO9LQVpV>S3G^KD)by?TNZq4|#6 z2cCv)St=>_g^eN^3iM$<_1+XKGOit+rU5q!oJN1^hf9qWX3PkOhm=WPQ_9p#QD}0_<*=&H_@zIQYKQQK!U)G;+W!)~ZO5>qt`;l#y;b%W7zHin- z9dWnJ+XeG?(K!E}Thf9(C-WGupp{5#ptvP&|0betO74Ee*~91Ie)b>xO{|XOQ3X}@ zsC$#J{03;Oc39rA(qe8)s8N_8nnQePQxam;?0$)$VbgEFO28mB9v(*X>187IrfL!s z>R58V@R>+AVYXz>EvFeVi-zZ@3|>6$y;;?_WxfbH8;&UlUld#|MKlQ8ZR^vo7o)zO zNx~wDr|2s(1C<+3E__+eT^R1T{EaA~B`RVQ8O!{(Q!CH$#_#RJi%hrZ0711l+`RHe zh~m_@skK$W+iK>?U$PgQoImnkv7hy!y>-`Y;nMs=DGVuEcdJJw9c`pcN>dDseRoUpL5%3{}lcN2ha#=oau_( zqZxnvZaj!~G2jl9)f!u>)-6mB_BxMZ z$Xr5*Hm+z9t4dJMi2MYq!YT~vy2CX3(#pS@oPYaEL5-^3hFn4-Cra!#+7`Y(9!j)s z3NgA6;m&nC+3=(2&AO>>7OwI-)~(4ix5Am6bqZ zhZvtv`bFw=)}gA34sp|o&WR$D!L1PrV&YcSodxw1RTSFrV2VyS@pXM#^u~lq9)k+D zpx1c>>ZTkG$KHDcZx*L_Zx!%XTeK}J$? z9xnaefLqY!NxeVXQwF*ZPCrS7l!%cPkmGi!@`{%@H`*o+m3_-U;nMAgOQLxEyMXSc zw4syv7*8V;!O?4M_g!cfX?xXx#a>Q(@XDS8COplF`Y}zujf-2M^@_CO7L)PD{pe1v zl5zQY5PPgutayE_%p<>{gJ0}hnv9L9NEJk9MkP!E_xanKE;!bI`gu~34ZAD8TH1%K zXQfuGxmD12GN!od`N@n`Or75frWcf`37nf7ZLAEKZ-ORpe|CVXRO|J)q7Qbo@U@qc zz+lIhNcKpOJ}rZBFAJ=y^~5BU_n1g|t<_i9p-09tT7=iqk;B`pY=7$BQACr#>$mHgckVXN%77SddJnO+R- zG~n)#_rQblfm!;-ows3>*|Ce*4@K5tn$S)}(A&-uvwQcEI7rCRi^bn=;q@rA}&VMS10YfE9dgt<24!CkHRgYqP++eY(6uU@u4V6#VYP*x= zu4^f7`L2Ip$WM}=z_pJp=FOH)T3KGg;l56`()|TcQImKw;i+uB!d`o*5`IAbiGRE?Q)#14tVT&0i?qUn z<~`aZ?S)^OOvI0fmB?l8^p`oHc*4?r&{-|>d|qTwJDHvg=h)fzL1BXqtGgVeP%~OS zd_dO`Ur!rN0@DAHR2D`vUmc=;P_Pc7u#em$Ui+K5YXzBr`u``{4>0?t6ZBpv8><87 ztT$@1C1K^Up1J{*?x%WCZAX&OSlc|JSk`JG)ur81{y#u$_BBdCvKpwI3!+S_cFv{n z3Io$r3herPj?+yW3@gLCLuRf}Z~fCRUR-Q8iK(X80E?cR(S$_44iFMf6m6fY z=AoZ!Vjy-7{0QhuG8oJ>u6^6n2r%imX}@HFr?KX3p~1VK0e0S6wQIL*$vRc)Q&&4!2)N<>Mm@sr+)S$^KddRQt4f=ci`DTM!o%f-^ z@Zw`QMaN&exz&T%VYX$}m7vqr9f$F3GN2b6(hF`puYgT8RZSkRT;&q>8$DO9UTx2= zbGJ(~h@uN5Zzatqybjpu%(S}F6~iB)>FZ~)D*!rlTQ_dr{+)>iXqX7Ue|Zo^{-fVa z$0TJo)$xhFG!)FKk9gHu+KFFV0aWjf7!X{GrkKav=O%(STQ(lp&R%zQ9TQHO6_CCnX zPO8)0roQjl@d+)$+|YnFwd#&*DN1->wzlAJtt=T$dWz-)p}VkWB7XFnRQKwDwRA%) zgqD%Zacc2N)sl0rrte*+bPF)0gu_+~u_{+B&=$Wc!-_@(dKJ9+DPo@ zV*Y(;TZO5+7sp(;_3wM8cE^jnhI)?_&`RUO*l6X%t+{^-d;b%7niiyV7=`L?(`$3q z5q1(PbVTEfR7yj9B$4)J)q-L(btVtcr}vOM^wlSiw7E5JKq`1Ref`Hx zgWq`D^wq*9IC@o5EFl-PVh#wde= z9fWK5Rv=GAUxg4CKV`~mu1##-AvSK_CcLp)-69&Y!#y!oWx5pBqQ-l;soq*syS;Sa zz?w2Zo;dGO<3zqwU_zfny*0WqqtW+{A{dqVEfI4?2pz+v&P2ag96yaPP~=T8kT2NO z#Y@PZ>;SXY`3U%(nA6dD(r*DLG#2t>GEGrz%5S)f>fm_54Au84k>~f2Kjgz2hMw$X zr}_?dZqw%Yfc;p6sO*^%sNwcmcBj6l!S>z+X|;cJi2l6*=catvga~ zy9LU+ux!P%I?ujt0mNGc7X}f#Zin+-aVgJg?JHUOO&feYS0VytM4c^4Te+D4br@OQ zIOt!nN@lmU`eg{=t?&aafrgPk43@2}Y;BS{#agJVQ)bn1O;b+0%>mhw;ap|Uy!660 zdyrE1m>_AyqNXZ5tyz%N9;pEubpfM2vc<|J@XNNl{;9Cu@2UjqY1qgReUcRYCL0I9 zDCizzR%Q<-iXxw2RO%OclehK+eyv=FqK5PJ=8}uht2+JGTMh>0(kqR;(ofTs^2M!U zDfU*pS_A<(70HT*M4>G8t5M3<@!XnDVc2vHN>9xq4;&^XrvQa8L?FECYPcaaL5Kdy zdPLLFx$Y&AzlOyCf*{XSertk%BVlf$_d#*s#@gA%$)HfDbB$IIqQh6KrLmfKOLZna zvYS&yBIzWfjUO7n5BJs;DNdWq$gSqbm#dRjVO-}7!;>VT!<}5I_g6y}398I?A6b~=QB0>> z^p&oNAH!ld7fo|@pS8i4(sX#GuY22&qIdi%+lY|G4>x@x;fBsL+pWh=Tm2oUx~ftl zHiB_)JG0oL&9{v+U9)3+8OrYWp6%c$Wf*cg)wLpTmicfbs&~E;`t?ZSNJLiwHXfDY z{M|#7rVr`~$KFX%Yl-AYqSyLEI29;){R#IqF!**vAX#`vZ(&}3tHQdqZM-rCl!pNX z#{@+4{%prf>wG(IriX;}JC?~u6<}64)4N|L5nN|dJn~T0&QpR3@izf|$=V}&LJ2Yn z?3$2db!V^D>GPt_*khU2qz$gl-FLyH+;(ujM`PNr%;IWs^nvpZQ-1-TivGSY^=Q@dNv8rmf9A?c!3mhmou&q}axuGRJf_nPF+wwZw-^GZ#c_?AdCBkJ-FfKf zzNrY<=(}x&Ez(S~Me)3qcacBv7MjD9R0&?#!RJe_P746Hy$ANgr-Md+d@@Y5uRAtc z+{WDUF!k1q7x!ML)Qva1w|?%s&fH56Rg?(2?cZc>6XzcE2ZMM1f~4gNm(-9MlEG?HN{iXlJZYvCX^>b)&`;g3yf{l6OK7t+y&3 zwJo#UEH;5Wt_q3be8s(i?aOI7}xXA8Mk6;$AyE8T!{{nc*pfS3t(CIqI*CS zuH}Rg^rFu$8vEgV=^aM2iWjCEuvX@Yv-K(Prs#+emrQBvQ9Hj zR)gy72Qd#*Zp63v-4mMNj*Pj|*OPU3E-q%+?Lm)lBN6qM$!@yQtN(>JJfoEBPL0SW zn12^9`DmSt0#|i5_ZqGh#Zjb&TZ85N!PY9QUh4b)ifKz>y52)btWR0wf?faWJEdR> zgq9d{0fblg2G&9(Nz(QM6{TiW`_|KPhp_?R^Sj~JUaecz!@#GTpteH`ISh}?M6V$l zhS;g(vMEw+MtYYuN20QdMPu670@Oa}kIjEOQ+6EtKd2M&UBv>oCf8dBr#pA>U&eW_8ex7CQj-{Wq)aORr+w4a&}NR5!jelGtFQQ;KWEjz=lD^+7} zHyv$x-l_AxHCwAJ(qVs`6yg>quL@|^k3}CeD2EVeUNA-p_+}Cl29qHHrn{?X>z6-b zjSwpbjDW@8Uuru_cebw^1g0dV%}G3)boTyJ1v6`{{PO<1#qtJ|YY{Ajs2yml;Co}| z>ayy6L%WMGC|!wE=N%75-m>c4CSvv&gizfn$4v%OcWU`i=8=K`*JCB@a7cBZe!@Mqg%lVf9fRKbxroM!mX&D z#8y$02EM(iU$G8VM`&c{`CO921Su1UAx&zd0|B+KuHB>;;2`5|x~f9W@}}Sup-o81 z?gl*6IGoj7BHsMN9A#AJYu4}wuLs_1-0RyMxIT85`+-9hm+&a3a2pvHwad$SXEJou zQWtH97T*kEa^_M`1{ua}8$~O_c!Y5)81rupxr1aYTWbr6ev2{b)xvshe*gS!TGxpF zYC-$;L8s29QkTh+@O3xQm>Gaj%ZN--JqIJC4xg- z@e-5wXA+^wK=uT6IIN*g7*ND+?Jr*k7zHu~B-T;9MS|8tRxi5>a2ANQ0Rx&vlo3=53bhGGUAECk?_k_WFRn;#jzIuZFEBqcE`9aNDOpW!C5LJ5@Gq@}UnT`ZoEQc0886 z$-jdYq@gMw1D+8}B320!DmZ~;}{^E zqLFNSrPIFv_N~)rJ2uUow@gF#rfw`jrcYUKtv?O=mQ=7TTBp-LrHb|NZ!<5~Xx_8@ zPPspi!uB{Pj5tn(H_i9ZxJ4ASwe;&#QBoeuD?Uk#d%3^-wS$+k-MkQH+T&bmy&~y2 zkU?`4cA53#GjAo*Jxmi{-C1Y4rItHylghI-+!osAlS2MVMt-h~tS)TqhQCp?s6mI= zJDCF4)ovZ1n~roHNn9L{)b$-3s_obJcbFyAr~N9^mpHYTr{%4R<)0@@!|pt^f1A|At6mAbjMTvS{<@%%xG5ZmFDzi6{;S>Vu+xVAzGic!mvyz9chgb?hWJugy6m0NLhf~ZUR7STSsBg8H}xhcCt#h{m- zNLE#`K6d})#fOq8w2ysJ+X?;Ol@9)%Lgb`vQs9)oNIFz9{P_&Gv^7#;ovX+2&B3T5 z?YIkIMl_)C^uW1P|ASJhi9Y_hwe+#s047oWl%k!2`mxVnjDd)+!RW&U9{$0AWd1@k zd&`sI6Eb4-es4pQGmU@nmI3U3&BXN}r1wLJ@pJ1hL)XPd1AthLOJNcnsd29FMPzKE zXe^T^GUm=(S!?^Os+a2bXxO;e+*g=*Rp$-)=wS#1ROR&p9m_t%oeA`0w69vtM0DWf zJO{GqO}!oOx;V+hwdp*RJM$9y`45qSOT8rjKxV%`3JhVqee_5x6?IKp+~I7maC)0X z@0Cp^^&VNL*ybo45h9(}B4OtLl*@0qM#6dQ+QEc>_J>B59D}a#G@s;G2M=aqzse@# z$DD~r>!b@i7=tx1`D2fG{>gIjU{Xh!@5DQ^H{SK{JJEV~R}ylMc1DV&;t4x7KXqM> zKrO;max`*xw%FI73(PwAglR5uJWZyQU2G#6DAshA0)7&aBvD(epNsFosh333mnqxp zPZ3jEy$Vh`6FA9h^lbHE)_*nBrIBg&ePN#g$-qgsLbV-SorAoK#%dC7 zhYz449rSOQ21G1{<5x!Ph2q5anwBn<#XuTOJN@h+7o=Ne*^2B{!`W-Pa;`*j`CPM> zwHA8){rf0$qC8U)<8iBNEo4gHfHM@$Kg0Wdk9h44$YdD$->o8O;DsFc5* z%-X}hZJe|0in>Vfn;_hYRDyvPR2az7(n*Mho|s929a9I6t@%U2HH9lZ;$!s&^jl-4 zZrQbyN<@C~cp1!7zx|zRx;Wm4OyW7t&UG_gajvy9qzye(6Ju*TtWnUt&o{$HYu)tX z@Dnobt!gLndLhuaI=Ga+r`S-wl--?@f2gO~8_(FdY~=KtQ-5RII*N*AYPkF~0wlaj zJMw`-YzU3`VN~ttRyBoS=!r3_UUTbp4iqq|dJ|6~FOB?+7%CQZ{CUXQcVf%a5%mgX z3F7aP2+&<$E2HP06M0u;FGmy_V;#Nc5c>h|@#;E2wa6aLt4oOuzmLhsAG!&b`Kc%gbM0tTZ$k)y%yI z*moVPPS(mzt^)UIl4>lljn=As9Czo9fPRm@F|<%KpKcRXcBkygx92MH913=jBm-8S z%@;PSaI2?N&u{G2d9uN8(2{Y9qY@3pVY;5X`!UEdRiqN>EWGjDmF$d5yDMeWcf}q_ z&C}*1tUD>Vt@4cIgN^H4?;IHisBK!P3D%ij)62VwsSDBPhBTQPMsV%MZjb28jP%;e z?~?dpE)|&&5{H()&aD8oZL{+e@~%^Rrx29-O$#CZ zmwy|h-kF~S`uY*KP`1FW!7PNk6XqBlLK;@Ok2LV5`fp^~JgJG9vhMlRDkQe;^sB)B zV%IT>;#cRs#sSjzT!m$h#2xGWHpaMF6&H5{513v6$wi_jph?wBen8Rk?k9cc3Hy5Y zr|YBVwwi|RyFXiNq<*6N5j=*zYa1`?<4Q02rA5TK3Tkpuz>wcrpK(*n#*B0uY0x4> z8!a$Xj+L!-3xaVSr*srZG$v0)J`xT1TJ6qKg zzfBZQ@xX!R;oi0*$)u8Xzl}>{ar&5r`6hIJ<%+{U0(U_3#r?2w`Fd~1MgBvh?T@NV zvrxF}xNqp5Py5YmgOA*KGCLtfR7v?qMi_^tOAP*2$S1D;RfNspl&2a@L#3JbQ@%3( zQsMKK&g$wnZ<~#_D*O(EM$1omt!LhD4M-5{Ay45-b z`jZV^UmB0o`YJt)tWh8$c(&h8CwZrYm!4bwdD+GaDr>@-X_NkUJSnmy6?fF0liCC|Du5!;yb`0YxY6Zn&SFB%N{x4CNS zRVr80*&Mz2TIy}9J#mcOThPa$WA@~WZ1Nrk!kH@1PU3eQPpnCtT=b^XCvJI|?f50X zEsoS=X8371KEH+V&7t|M^$MTgYmvDU%XS?SlNW+?cE+f zec{oyvlQ}12@1cYgoF3C$RGjIfkXm;pJ_gYSsyPcE|CL_SRnB|twr#)0`(h!48$VN z_I4;&W^z#URitA7;@T4C5!S8T%k}0{H=z13aS4G;TI#D7j21SPWL=a9s~Y0 z>s9_}^g>*~i0S&FwPwD^>FLJT2^}6QWd}5eEH+OZjW`YQ_QH({ce;dk%;GpsHK@Cp zrg#oNW|XtuuX&^Fi>p<9f+!xuKi&#U1~Q9Y!S|oeeFLC&HYnkoyng?Qds(!#n=-qxE>itSl}aR>zU%+T>oNq>YA_5r_kQ^c|Mg856NF66?~@} zHG9_j!vGQ?Zz!Kc68N)>a8)2Y_ojkl@5-?74k)%*&Zd(?i==gTUC#L9&4YM>+n+vh z$a%=O_ky<|=2#dpO=6;sbn>FYY-?l=S5uN43kiB$#5_Nt7yBwa^*VwP9;nqk5YTFL z;jIXN%bQ^)F&>R-n)BlatDlwJ{!88Ibv3_gfme%q$+EFGUmxqd&; ziCq*L3YK?@05EnyBXlIAUisQoHF>PJpYQ^0dsp}h#+Zvu`miumLfywN%-tU?_Zu*9 z@43bz7z4LUK2c=fWS2~}<-v^*Ryc1#9^)r??8Bw_Z9Sh^e8X+Mv_97G&GW85P4zlL zGGJ%2OX3DWN6)~JW$Aw6lW8uGXOPeHS&t{Kz5%K=B4UljT zy_AJx*XqJ*YTjz;#~r*&^MF@ZC*zht9E0xj;SHbR_ZIxDijO{S6Nz%8CO|(vqjE@{ z;nuxwT%PGm(q$9%P4WOA{=8JGI{3^4YHiU)iR507^d3c_15a1!WD}jIXqqCS5R^-vRN31&+cS5i3I@E_v;U7 z=0-DU0l}P7W4TaFIbv2UmRO+$$|_fI(HDy(dds~fAFvzz6o5CL&M`|?%d@eU z#a5V}m3~Tr^gikue?Ne?6BVl+AWD-U>m8u##0~;_M(bo^!U&;MZ>{%T?Tk2qlLU~x zoV~+~6cUs5@?4K`>Abz(VKg=^v(RB7E2@mCNn=ieK+LN`D@MHm_dXEb-A?ArK(r7% z75uqn-3%(ByV<>wW{m$txABUBdg|m-H17~K0F)LNojyQ=Wd~P_e~vDwoi9IRKyk*} z*-6|_r#+`}zC!F=^qGSs%bXLpp=${?S5KJpJ9ay#7j$%%nMGWkv`cs$o;9*;v;f(0 z{#0Fkw9}VCo$_Q&Z?%|A)C^f~`BLkqcAcgd#0BSpQ}-+}lPWf|X8GSEl8?8?eQxbs zwplJnj2&~rnyGA_O1#uH>TU5f3LL9@^NFA!xw8&?ga4YX-H1%w!~x{O zmJ?-F1IVm0>dl}hJJb5-wot)a>l^5PQoJs-6w@$7@g+2q|~hQ@NI z9oFpIW^~FPv8tUob>29yW~%@}>O83DRbq5cEnZUk=IpPPNI5?|bayqgimc+}RYaIN z_i_76i|%EBS&~)e!WluhT=NZ@*S>`Jh^mpa3YmffpG62Zg?DoefNc)Nz)3R(4Ews@ z0EV00ZQOocl#=*DI;V62>vcvB>GRWh`!YCWirRqABR~=*pJfZ8R!Mz*Fz`fcyoI~Y zQ|r$tWuA`n!zB$lI$ISs>36f=q||N#oZWBC%zc*<4^1E$RAm^W$XP8gYntpYeod)pUT$ zw{w71%%-IwDEgLi?135F$8%S9rDttyr~`Vt?gbn~a_QYC>o}}EJ;`vC;24O@&Cc)D z`9`)WcmCa#>S{%t0Fa?`zq9B`|Ah!DxL5Hxow8eY-D*jMsM8ED$$*uJmC<9D^38sa zteK0t7}r+cqN~YMuC)lx&@%PPn9)r!>rojXp{_VIlHWamoS57t!ew2sB{gPfQj7cg6v+O80N2F@5T zgdp5@-UM%BY;B%BU4{aoM^n$^?#?4=u}vgngm3CBf7O~(w3e2hM`HWCEpXp#VMg*y zo|zcc1i_eJKZN7ScJm!W#DnLDIVDHtboikv>syhow~t@wh=Whkb}n2G1BfRy;s^4s zF9{nk-`Xe-SM*2Ufcki8D|SJ=@}$H&5*6xN<)IA~PQ;j5AvAn!80f5vT>;`d&Fqfo zoAct?9hf|ACF17_DcSHe^=b8P8O}eJmVP^8zp8A|z427zS|n&A?T-AAp`gz$kaUyk z>9(kF>vBCB%~UzmcuhCt5<8w`qZ^H;NT1VdP~ z=3IX1=rhf=G_*mtS_J{bcYU4S1}8cOvudS)NQ-An%Kmfcj05Q7xZt8vn?lq!_#I?xFKu=TCt@UrM3*+u7XeKAdYrfe ztF;)33%;XbJh$qi-J5~sSGZ17Fk)5Tdt801rVagO>N4aTb;%i8I2Azr@2$VSHFjlpk9Zb7psHbD!H|Qf z_StGl?RR)lD%ZYrjgE5W9{0f(?*ax9bGT4PuG)vTJSnSR^%dtIesW)oLaZE#V)6u!Nvf2qXssVXkolmFT;QI0?^g>Ydi>k3~?~Nv2 zj9euJ7M$X%vUN^1b!qmeXTy2NaO> z+=S?zyT}|?uvM&q)p~FMJ%oMuji~{o`fjFI!m@1RRwfcWaU#)D%DRt!?*9Hx|1F`^ zSa{|w4hJieZ~rb70n>&Y$+`_s0GP(xZ2)n-&c07 zGB4r2xRS9e{t6 z9v*{d0(Q^ZytI5HVXDJ#YgXKhkbE3DB60=qLP~lJ`5i)+q+fIGXQi98?qekt4RUOhoA!GQ|9B|av>Zt_CPzYu)}(ne1S@`ZTpimWxY0?216r^ z8etp5Y3q99W!7bkBA;4D!+lQ!K~bP@x>+PZ#pG!j>sF4xhr)A}TrPF6ZUsokUnOHm z68wC!!ti{lB6Pkv!pW+(%2uHU^Y*Tv9}}E^3@Zb4wdPQA8S$Roir#Dc1*AMx$B%fB zKL2`XuZo?yJ?d=R^Y`Z@N6Kh&uH2R1@JTN8L7Ub^f8v0Ac#sOPA6&f@36fkjkPPyJ=Gcg^MEp>q_~{y;)j1U7 zs}>>o`b$Sd)2-Imi=ZWGJrJA$S1F4Lr$hl1u=|2Z$fn(_o^G7iofO6g5m*ZDu zOWGm>zqS5AMV>vAn~s{fZASxT)mDoK(h*nC2YWjLn zDuAJ7kYV~8xx*jvD{g9!eL&wd#m9p$l;v4?9xEn6sXl=L{latP&?lP7I@m3c9I;}@ zY=5Uiiv8<@6^Nc^{+UgR-!Y_&A34NPayc8F4wxbToZR&7fc^#|C<~qFdbjhnge`r_ zX7JmezrqU2!2rn?Kps{6v*b}L_(Po%+KoGdUX)W3-wB7x4?d1l-@+Fur~y>2Eu%#*U;0iie}2&a z?)7_h2uS^H0SGJr<}7K}i+{{?0ZxWA^%Lg_@Bd~geJ7-E08BlDAML?ouY7kW8>b(i z_}feV!=qlD{K{i=Z%-B0uv-}&JQ zrynbpFc^QA^z+?S|N8LBr@s+{04yzj@hxZn`vAVl^XnaeINo_(?))in6sq&Mue~U= zuR46v?~^dVBK67FzvAmw@f$p^3@l1d)G4w5EL>qffHmuJ-klr!{Cq9~5A%W0Nh|$! zcM^4+qnQ#_QoP~ssQiDBj^E&!u8-=HVj~p}A+2+VP!D^%SOuwF)Ro0L9J;DVpvzjO z94x=3mMIIJ{Cy@Hq{6==b^A_4f0pb!YPKwmkHVO59NBxb1m0Wc0m(SiN58v?|KUr& zzhsZ?rqN4DNr@V3vE^vF{{OkY9~=Zwt9Vn(1V)Wlf5YncuLJvbaupf@++8=HN7uI~G^8t9< zfG)5Y`TyV50+3kj(dYpbc))5QzP8-`(QJI1+CNqxf4 zCzq+00DY(498v;+9U}z7`v%-d$hUmua(ME;lNxgCTZOb2R z+P|07mD&`1Xyb6g_k2+wwvGK73iE(Si-|9n{9R#FxaCXoH})j6MxdC~5 zy#CnC_7W%1qAgqzLf5Pm6m39-V`-mxG*o1Wu=$NXs-7O^XwatMv)Q^R<7x%uO03~} ztTK{KWL(u{9E5v2MWsG z2pMv@m8q5=L&N>MtIb0G%fU46dz=Tz@HVaRTupKF&dh0#CHfK=Xf4;#xYKB&wiD_&=2huo3-_77F|& zXV&=T-?BojyT)nNgNy6XTH~LN=wNJ*>j6!grKIdft^?U6OD+m*p7~c633fwOv2H#E zK~3Zsqdk{L+;L1@e0J1yy}TKyI%>BWE{VN7n@ROX_TB{$b0}f25)eq1@_N*JBJtEn zIcDF2RL3b+IRbP-Yre1LxMp1G`o~_yK9%noqOSh>8$(n#P?!s34IU@icB@f6_vNsC z)<5dVtBV@n1&Ss$3JTyZM-GWRHp6`Anu%v{}1+i5H{-9ua)X^k=C80E}!@R$QgAl<|}6u*kyr1>)waEQLcLDh-$hSamtnhMkQnD{?l20`hNLP#Z z@|-vL<#@9QAxfY_v4HuQn~+GK^LajB)`vxdXl(GT4zf2J59=gVjJgo`wo{jrn+*he zt4!T=ZkB$yH{BZ9HgJ93%i2V?3@G*rFUEGZ3cfZkidV5`Wk>jjS1Pmp7YpR52CevG zz-0uqYPEUt`tIk0>U*fgPs@ZgO~y5(PYBi=fM=CkGB=)R|A-p3s^_6opHjfV%BcM zquP-`CErcpSXC%0b2wUg;HtmAN+|1s$32K+^Jz8=^^AW*7uC7o3|G{%_65qKdeI{exWg2Cg-K{?`wM$>6t^+L{|N0r z=3V{KcA5;^qv36l#855HR{L0jXpBH%*!p9xR?0bLj($V$mC_b^k|aBn!|Pz5R{O2t)3= zKLa2ra#!%OGjj;d!lD5GH_D&QTD6k1$bRc`J+=j6&O#|u8 zRR`WVbn{TmUmjTlN@JJUz+^9EXsJD*f1rc+Y-FrQJb@Sr{KPvFyJI3yR-868O}EYv zyPd;2B|(J20B$C^?W!l~f$st4BS(_A`*gaBh^#+p19des|3u<_`3F76ZO~avb@IT7 z{mpEkCpM-7W+3kH&YgONJ&e~vVe;NR0UVlDQYWwbm^^5g;K+`+{1VvF}a~Unt6w1xg@ibxo|Y(Z{$>C+mn&OB)*y zUI`vA1L%@vN(i}gk+=-%Rbj7I$b%2tyRM5p_-rvpP#Oty4Bbpk=1=y%U<&Cd?T2%< zK2zjnx3qj6yzqKFeCHyCum$ZI-5QB7t<%-kyfvk7u8^n8N%3CDGtNWGl+E%tGO=Fr zXXH-W-2SqB1GVvp%V%+QJrqh7Bayf%w?s7K-j-5kHc%Qkw0Dk{p(xOfFv;pgaN}n& zk!UkQj?mNd0~qoqLoa%a5Czr`Rh&Xxmm1y09%sBSPu^zkKb*(c8|RQ8UWT3_+4bMk zk9A;Q?P}lz?aIknXL6R~BpntKL8FP2WR;yRI*^)%aD}B_0g3-v1aI>kvV8aKuWGw2 z;D!_WH=Qw$>pnF26r(iyxC*qM?xUinr5CEA7S(#t0n8e4hk z)~bflmV>VF4Uv_0CmN5twl2@eiBzxaR1$_UX+#|KBU=m!Q8MzREqw!JF4Z9Kkywga z7Dp_$c?|=3KY^<_LU(9df$zqO_y<{~c>NtBhH{7YzUoI$kn3lXVzGARN=i`ij4*7n z)$ML6X@9IBcFKFLg&%J}>=yAF>-kCwQ_<4Mj_seEc>3^K>689~0s%cGP>pZmOx;dM zq@Iz$A@9(`xI5&>Q?KVDV7Mq;=gga()+pnu94GcdD856ot*BmA!B?X%$_H0n(455W zEP6`8+iht%Me$+%tHtuWcz1GaX7ZBTeEs|uxC2$-`q7tB&NS=6= z?|!)Sf>u3U$3w#L+H9ORL;y%P){+|8Zknv3VH`wcA@iPeVUOGlmA`yi?n?zWDSoP} z`I6^$xatW*J{Z^IRy!NZT6`1t){<5&&SfM>1Reu-9oZ_&bFBbqs0j;82-W zl;OG2wP@qs!X{44T#P}0|1Z47R+g_8g$J!dBFr!=Yi$K-79k|9%E?x9knEXf?f55O znEX$~a^M|Ty*3$<9n^ljG3k8qj#5(bVVpIj0*v4SWQd_1o$KbPAqn>6>(#jWkWOkLVR&_x%s zicJ{)g+<_5yrLe1FglB{^7QI&vvSzc4?4D5z{RsG~g`Dvvnvm7*D z<@LNLJ!{rMxaIssC@B)AY-6yS77 z`Cg_)E=2emcY|qMhu&1ui&bWA`S3iA!causs!;ydu zdU!z1ZgHo4Uek~`-yxz?@?f#<$@Wv|`J8G|1qqjj;nSjAM`PB8-wM^p6XrFuO9Su^ zN0X+G8VBg(DM%Zm=otZLKl zaQN2iW9j1xHsnab+-aI0Sg)}gT6e@nLKy9z&(wL>znb{f6|ApFiY4`?N1Md#U+D|s zzr2iPw6DK*gi?+@W$EQkm@7O)cb7_0OJ-6kE3(?U>z9~o$Q%2BB+^ub9p9dgb zv~#86I;(30IOL?`bxL>znT3TSbmJTmo{)L5Y%pbxu#n#|{2K0UL|zS*3%q8bC{b_Cfig} ze^hyu7wLFgRV#wrySiel|C~Mwr*@8vF{k)H>?GtN0PH9hZKPLd&-4oHkcfn(8?J^2TRqVoN$ zgV!Iq){{Fs<&^sJ^ZilGR1IEUcmn>&k(SUzG}cgQ_fF=!onCDP8PWnbR1>;Qa_&J; zc2I6JbD768F(3+QE?5jHJOI<<@}8X#>e_jeOc5F-N5}V?JCQ9a39W59wB4!!B&JWt zYi}Yd*C&N$ceJHUqB&Xo2wnlfYon21jDG00dgYRcRJt^!6G~D@Bt7p9;#p{Jg%V}56$EEekpL0@iv1IDV&gr>KY;v??(2~MIy;kkr2^p-1cWRAY zWH$=s)BFErLQsDu+Dc9Rt1ZPM+?m$}L(Oc}{71 zy>KbepRKZ!3GY!!1kYy&%$4*ag*;FP-m;J^@8ixLvmzKRO%L2IrT~oTO5x z&Mbu2YN3VC332W`A!Gc@%zVbfZcAq`Z=<4E%wq6nO`vjzE^va_TZDh5Y5(fmHe(8(QzKM1ulEr~;Qn^b&C!q8amHMN85X)Gx({e!b{iMpE$)sdCqbRO(Z(1Z%gEs1NDOhg zaA(=gM$@|Wp@rsjF>xt=bIbv`{?aO{rA&o~JYZZcmAFm{sYz%~;u>1_(aF$^Px2tm zsuoS}x*}T|In2w>uU6o-jXDiH>5MR_?scpuX) zc~4~-eF9p*2YH*{o6L^DB@enVYUj#2B1X#umYv_y?+!uAO?%&)?_M=`H!M$t;o$tF z-AQvxVhR%P>*iqu8g(yHPW)&9Dednuv`L6s^FL4C&W!I#4b__M8}L9o>B{pIHo(XQ z^wtY*-;A64HxJ6=7mFJrep+SLufWJ@~7)LCgzR3P40ph#0J%stSLvr*CY4`J?BB`7Ga^)iBd2oV#A{>F( zS#lqhHN=D+^n|WD_6rT8X#eQF8#AlseRb$ zvnaF^qS|({8s`NXen4Cb+!$7;?L{~*Yy%vO$zd98;Qm z56@Fm#|Y{?VC1u?E|~ZB$j;|0rSX9TKnrK~O1O1gFya_YKZXJ=mLp;>GBukPS-86RAk}{*f)~8&dgFx!| zZ|3ZM+h62~w^YZ$mP^ZyhEH0CoRtFc=d^t<%0YnYhX&)vydTLi&RmI(I07<$OkA-| z9txO->GYq3qva3`nG36=Law0!z6I~MF~%ZA&AhHllF&i%Bi_^fjdZ%IO3~!CqV?y+ z$N+mi_{Qsk6O0`*X#1w3#UfW^95=S_0Bj3@dWssjz4}nPWW97xW!GeFTq5IpG!kgs zU~M?V*9&&yr1J+=HSj>YKA{f~Y*j5^QNHkd2pY-Fj$i9>Mlg&WYgHr^#8HE_IvYrrdQK8XF7GE*X>#ZI#0m zdX-P*GaPSyUNO^cQs9B1)X+4nZg3ejgH$|#2?iU7vx;NJ^pkAxiAw5JRS`XtkzGr0@?|TJFfZ|A zv0qZ<*KRgFk6XwqcPdms4^1a~u3U=p)3L{X4!@!FtPanuvC+6apA!+(!KWH5H2?a; z2pE5H?p1+ro-H|7Oj~2BslY538yUkmlg>ZXZT>+K@UtEiAZi87am)C(y`4ApO?DO@ zf#i9ZoaI{)G^2^k=xAe)iW20QPx_PegzAP1T-QlWO1S1RqsLDqBFHjWfOZUhPyQ2n z_DORsofQVPTRuod$Ca>u#kr#4WWN;8Ej6io)p*S9)l2IPQe;u~o*2<;Xmgqr>T(yt zzq;aN)3JZ^(1304=XdUCAy46+RjVOVeb>c&89}K{QA9*y&1dQ1=BaU-u1;r*9A~C? zut~_AL`ButaUdQoS{sp@hJd|~_4ZzprVuecu#Wt(((vYH&(*Wh8O9%m)+xZ*TDfdC zz5#T>%tuSUWaJ)Lg2M-0fbGZ9kz3dpALw1(8t0IE$JsUckx#}s9_B`ra#UwH5S%mT3mojpJ$KJGkCDWW&TM1C~NKX9p1;X$WAjkMl(=isn5um zvdpE+$yn5hhG_qPyf>I=&)Z`|;PL-{$_%L`UPYCX* zdVecITj3ro$BFdbpG&wblv6At3#4B$Zo`r;)+wJeNb1ESmsabd!|#w^)geq0*dsk{ zr}$Y+!nCAU-wNG^AZU)usc9(S&{x3qI`(8x>zUzJ_K`yaou>Vg!3?FMR%HX4_B z40&Zv#+*IryjUI5NjJaskvaIs{xki4-tdP)hfcaH(2G=gG?!9|g2pzy*KaRTRp)BQ zUM`ikXqSJc-59b&uN5nsH&vD5=lda;6U}sAx1ep9CyvEDj`Pet+^1njZ3PL@rAjn^ zuV@n&D(v0PFg)%~vW$gw_fpletK&Xh7ai_<=c-4-&z59r4p^UDnv)6P``zV3(dgi!o zzzvm!0M=iSDa-DcD)DkDkrQ;C>BnN{m0%dS9jN=Cfj*1&A^4hKs?$L1NbJH<_-BBGM&~Qo0W^_nc#Q?sL=)RU{Y`I%lWLUdFJn z6SLP=>O$K~GY^Kk2N!1!^@hsNF9%lce|voMsSa=iPE{hlf%DakrT-RCvXzJ)xf|%N#xUq)j+J$(IoOsCODc0IGnBnmSWU z%7ptwVq^S6M!y#{1FDa9z3!Q@YG9ne&C}>gWcPLSj4)8vr1SlrdAQ*0%z4 zQHT+vMfi5gp`!Mf_(w%9YzTtAK(NYdj##c_)l1slHT!aNOJ~>`vg{#&uO%WWV?O2` zMp*mo($c||NsUpPQ0Qbp$awDL3;T4*wuQC`Gp(t{*YQ{#;$u}u32E?R;1`OI=z%*>u>I_*h(wcP>`Ym}1VZAS$5!`UFI?Sd#ZXp}>#?LG=OroQ!MeS$@{tq+T>e^4 zTmH>tx!FTQYY0k*!gI>QppXl3UgRB?K=0HGVm6((3a`HdJI=9*bNj7^+bM}Sn<1v& zFARDB)~=0){H5JrMSLqhneVLP@iJj>f4rD4_MZWj-|#~}zY9l)W-J64`lvQhpA=0x zF2_VW106}`08|jEzu;R|UY?2Lf?h4e>H2ukcA~6Dt7e8VmWK2}fKwiEPE#F4-Yjp3 z>X2MgG)R}ux)MqM1SjlC1{9B)zP?x;*6Ovy*js%VscH)zqP)6P27ww`$EGiE5s6A8 zw?RHoXK+4SOdnb&-f(>wvs;Gdi9N{7rGY?@83ChtXdAyao4O&^tDPh-Lt4U7ni&_? zcc3`1O(7Y*kS{oIDhM#QXzb~iM_y_1zLiN9-~7-@YJh}OO;o$B?T)#UYyy+O)0fh6?a+)N)BF*PQg@fj!E5U+&P~- zNSc~!u47zq5i@q~U%gb99!>tR?8S7+xAs>hkxln#1u}wCEd?QnaT+dbE9|^jCvQ2L zCPW&$$7lh5)_A}K+u=%D0`&-F zp4cKl`u(q~1fS~8CeHQRxEVn=`t{}VkjPf$9j;E~VB)oZ#)yB@G6#y3E#pIry68Hg zYs|3pJ+QmZbEy>7(*(lsDeUy=4tb-XyjkR@&yNUGckoHuF650FbDZ?!@;djKo;tAo zITOcSMx2^`O=3z06O9}eKb4F?lOUyDA= zSbGBW&qXr5II+Y67AGzJS3ay!ZlA0?<-t0RBWH+C?|V#XWz>$gTTEamQCHe+myB-Ut(lm_fl^ z+z8G2Fq<~OM9c0K4VT#*oC?uiop}MQHsUx@i{J3{?{cWFnec~He0td&Q;jv_WbF*% zEYRm2+|Ds4s(fI0s<@19N*jnP$JR4fa8m|VgLD}czi2eb7Y!QZCAcno8QzApM*=Y_ zbIY5^P{S@SqcJUKC4InRTHo`YwSsnZ$Q>|y5Ut5Y*&GG)S+?7XhyTcH%KlhPc~h$|QfRiOY8|T6X{8hB9a9!fZ(|ogzp7@u87&v`ci!h7Ts5_a>p% z{^RzZkEPq?$$?os#(J@Q%o-+iYNlhMAbEe!F3>DG=w0F|3}dHsscN0c!+^6z@7CyR zerYpRTn{e+ppJ|Ul(CdCV&bKewXlMH?iIScqP5l=Z8iyBdV!B{IM1dTyNK74^DZ@Q z0{n?#9wXD&hPEck(3H4QY;z4OWbcapmbp`Odfik)wtBHR_|aBX+89$(L_opDH{ zQrb0?hPRoV%1yqlO4C1lqo3qeL)udgC3EM>)6Pbl6!nVg{eDuv=RZnSi6M2C_fDvC zMVgwl%kUoBHA^1m0~P{94?7T7X`u078r)6AcjCn9#`X{y*jWGSOuPxU*9RBr>%J2? zWO8{%3XNN@Eg^ZJ)0%C`?ZwCpW2XuUAOsk)ZypKu-sCu^q@+lEn52g`bDpOIdm!8z zA`zWh6`N8BjR<~3)Dijnl#=aZK{iL4IDAYdKDL}=&!qTZX8g93h(}^>_j*gCVG0xoj*x3+GZp=n%_GaGgoPsi=z^6pdtjp@O2=3KL z5u4go-AqkQmfc0{+?rs%5Zm_Jd;jAbRmZmMw-glbnK(Q`5SJ;|8osxxkp&zcw&9Tq zTu)!&)W}4;0?1|u*DX&UiJO$y{W2@PNcs3>I5z1a7u!+;O*8jk#ni;F-jMZ%GEa*^ zMx>0C!v!u5$d~Ygb`;X4+Jh~ljR{nYc9ZjqDsUFzWs&=Up`7_e#ijzdQ6;(3p?7_* zH)uiFLs;4B3c~+TSE=s7A1KzEuoJIn1JiZX#=#>K%|+WmK_a(&aK+|KJjbY-3i||^ zK7#jbWKGF2+mO-lE95GxmW)D+ zCb!{@MOUP|QRqGyKYZfN+^=%-J1w{p&IrBa^HG?(4F80zEqt@kOU;+bj^>0D4r`2KnD>Zq~P9hgAQR)f4_h>Fjr(_ByGu>e2{Cqjkg zQej^AELkbFbBWk;m#gw;;-fvo3Z<+j>nT>T+YZR=4o@>!bs2m*3KwUQ#AP_o4RN~~ z=+A2b_vu50<}0LU0S8S%rsuwQ4iy^%=o!y_>(35}%zF=VEcpAbj%%SGa;)BVWb zkBqDAPIJ{Sw-vp^)WJD|%KqiZ{Q9q&+f1)wMmIM%@3LKBDS3xtij{!+bllr>ycWx{ z=@rN9nmBu$^Wh(yy1>4ZN6^mE`S7)(#X+#~k`3+4T|%IFx~a!lp@*wpD0@USQyrG` zg(!IY+1kDE*94MRFlncNIv*o1bg9zug5O#^r-i z`jgo~RYFBKv71v@UI+>kZ;UD@>{)G_gkjqrAhmwVo%&y%?Z zmh`hH&8vE4O!Ym+?EH^2N?kWL)d1UUp+U)RQyT~khr9}F)aV>D3?iSmPB=9schpbz zm*4QSk1O=`Ba4+7vj{7?Wc0l~__L>h#Wd_l{((-UW9M;0SiyGx+5W?0$t};;9MHjD zYVzx#iTzj*;27n2895^E;AG90DwWJbmFI#!Oyx*92U_fb<2`4UD27H=ox4KRA5-hy z^NTkVSX+w|M|XAQkV`XRmGS-z@%VCO+9ypM5;IRX)Z0l9L%3Nd79w@Br?zfZlSUmK z932-*1oP*@o-?W|?bfo+nNqeoW#Ei1k7<{=-M>r-jLjTpG+PG{WXb$$LSV_n0rtM7 z%gYntsvLR{140@X6f`f{XJr8eGs4{LB7XzS{@G(bn)S=uw&_Q9*%?U%;@7@hYr-VC z`wZ!ON53vqYLxX_`yylkq`@-x0u3OG4vzp5Rbi8IGAV#1%eotR&&1m3l*rh3-?6K( zie5my3-hLd&!bSsSzGxQAY3&{t~2fHgHzg;u>#S?PD3T_JsL=fOCQY8rsW-R5`vnZ zi>u-e1MNbuz+3wof1T zoQ~A*tqYZZL*7DU_5%5pI>u;TyPfH1jn#}qdRv@hK&Bgjf5eL0^`z|uSV|@X1v_2M zbkM5i9liGGMLUH?U%=$Nhb;_EM`henYtw_$RoU%sx2Kx1i@>)Z4%_yEtYMQ^&=K0Z zX4Q2B2-+2?kZg4~6o}2DbMhb^tfldVQvz{x<93v(M}r0hN|~ zq%vf02P{et(r_pc|SkWo8K3prlHyX%}5=FZjb#p(Rmrn*e8fW>*5bfMz*o_>FU zXs)Am0a7P&_hK}cc@C@-cz9u8%OspI5iHg;jK)0>Yx>~)!)%tY{k&eLZ+n!v(h7eE zCx2TQ?+)FHSuqf;?~p>LW##-pCx6{c;^sVWP&W>E`{6qfEGmDPg&Lldo?pUMi@HM# z;0m@t4#@Lu^~1lrlmD^-c`mKf^4cl}*6h3oIb*$UdSr{&i6 zTogv+<5S1(HOy~mTrB;Srks6uFOW-(_1|>Nhq_<9c+sx=21_2I zSMLuK;(hiK&k03}B+iHa!yCRI?so%O_Xiy5XcxFr z+QyY1Io*GejOK|j7kKurEdT!&&VPG`pUT&zGB%b(+bN}P0Q(Vc_m`)3-SwkSaCUHD zmd5nK-nssVN&arsM{Q%29UL42$Gupw>?*kre*XRpWgj1(3(;-ad9lyCq`rUnk5@7M zQQNo5+2V4js$l%4;eE(&vf4b&1)2m!OHJ05X=ibkM`d8eC_c6Rh>gv|dubNZ9stE;# zZ2>M-|LI|Cp3J&?LExkxUK7q#`SVM@kse?b0H(XJ|H4mC_u->dtXR6{*Ow0ew8Un8 z{F)_2rob4OefUow4+mcD!E8EgJX4}S|7M;pEcNsg!*OtOj(ynAzxsu;Wr9egIyIKA ze)JOk&yU;HZ(v{`w?ikne5CFG+Q_(w&!+vt*2-c3KkDMIi{OC2GI=Xx7svhFqEF@D zw}an%{@cRQxFq3JTfwQGE-1E~LNA<1c6O_wRZKq6T#3 z&_T^MX#~EpEwew`R9sHHqU`-3r-; zsqT`l{QyPtn>kogR+jOkB4IdA>cw05CwzR5n!Z8|Nht#1vqS3O2!#Iyet?`idIi4< zV*F8zElv=)?oJ$=G-7d*uV-u1M9FlcJYY^_3m(Shl}vRHOX6NwU9_u|&>7{`*<|n;ZVJQ242t#FO_Ux6~Zi{(a1UzVqu+ zptLhUN3_?UX{)}U2e3wlfseZP!yqq66%jIR1Wn8V)-Q~5dVFdD53D0fE&d-LKSjrXs!2uL8kXVC_m&U(6l}+Gi?cU8g2Izmg?EA0&{ViSMe!$^zArf#(GDfL5e}3@S_8S=) z=?JC2+)Q!#>GjIfb=|L7R^%}}KuQ_)^WQEFC|Pd6u$T%iz4ceI{@^c~$6wX#7yy>= z>bcptpO-oR?d-ccLV!VKlWXhzQc^zt{k<{vH~BjH%B^_zpDtABuaq22AU;?dL-8&Y^>p?Y>oL3qr#Nc~20_pcrWnF=Jw ziKO=HTZ{bD@ln;Z+uzF0dZqM?d^Y}?5W(!2$t1ep-nuk|$X@I$NtMI@?r8OGso-NP zch0haKB+jP5O&JN7ol8A`J|&inQS{<*S${~L;`n_R2Ko`(SJMI%?HN?BTVJQ%7+#|9zhDB9b?UZ@fUQ>9ZvRQn-6i&hE@vtb0)$_FpL?HAEwfd4 z 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 literal 26381 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 C{P8gW From 36d59829a96f5fe90d3b68739f73148d1d953a73 Mon Sep 17 00:00:00 2001 From: Jakub Riegel Date: Wed, 4 Oct 2023 18:16:43 +0200 Subject: [PATCH 29/39] Development: Add note about data used in Artemis docs (#7308) --- docs/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/README.md b/docs/README.md index 80a6895a019b..22d3cd33745b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,6 +3,25 @@ We use [Sphinx] for creating the Artemis documentation using [reStructuredText] (RST). To get started with RST, check out the [Quickstart] or this [cheatsheet]. +## Sample Data & Personas +Artemis documentation must use realistic examples and personas and must avoid the use of test data. + +Using familiar information in the documentation is crucial because it simplifies the learning process for new users. Real-world scenarios demonstrate to users how to apply specific features within their own context, whereas test data can mislead and fails to reflect real use cases. Realistic examples and personas provide clarity and relevance, ensuring users can effectively understand and utilize Artemis. + +Well-defined personas are vital for the development process. They not only help readers to understand the documentation, but also allow developers to better understand Artemis and its users. Many organizations use personas, the two blog posts below contain additional introduction and motivation for the topic: +- [Using Personas During Design and Documentation](https://www.uxmatters.com/mt/archives/2010/10/using-personas-during-design-and-documentation.php) +- [Customer Personas: How to Write Them and Why You Need Them in Agile Software Development](https://community.atlassian.com/t5/App-Central/Customer-Personas-How-to-Write-Them-and-Why-You-Need-Them-in/ba-p/759228) + +Screenshots included in Artemis documentation **must** present realistic data. That includes but is not limited to: +- realistic user, course and exercise names +- realistic text passages, like submissions contents and problem statements + +Screenshots included in Artemis documentation **must not** present any test data or server information. That includes but is not limited to: +- `Test Server` and `Development` labels +- test user, course and exercise names +- _Lorem ipsum_ and mock text passages, like submissions contents and problem statements +- test server and `localhost` domains + ## Documentation Hosting [Read the Docs] (RtD) hosts the [Artemis documentation] for the `develop` (latest) branch, as well as for From a9416ff852b1cfe4fd843d3c0a3fbd1997279985 Mon Sep 17 00:00:00 2001 From: Laurenz Blumentritt <38919977+laurenzfb@users.noreply.github.com> Date: Wed, 4 Oct 2023 18:18:53 +0200 Subject: [PATCH 30/39] Programming exercises: Fix an issue with the display of programming exercise features (#7300) --- .../update/programming-exercise-update.component.ts | 9 +++++---- .../programming-exercise-update.component.spec.ts | 2 ++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/webapp/app/exercises/programming/manage/update/programming-exercise-update.component.ts b/src/main/webapp/app/exercises/programming/manage/update/programming-exercise-update.component.ts index 3c7750282d31..2e664c35387f 100644 --- a/src/main/webapp/app/exercises/programming/manage/update/programming-exercise-update.component.ts +++ b/src/main/webapp/app/exercises/programming/manage/update/programming-exercise-update.component.ts @@ -317,6 +317,7 @@ export class ProgrammingExerciseUpdateComponent implements OnInit { // update the project types for java programming exercises according to whether dependencies should be included if (this.programmingExercise.programmingLanguage === ProgrammingLanguage.JAVA) { + const programmingLanguageFeature = this.programmingLanguageFeatureService.getProgrammingLanguageFeature(ProgrammingLanguage.JAVA); if (type == ProjectType.MAVEN_BLACKBOX) { this.selectedProjectTypeValue = ProjectType.MAVEN_BLACKBOX; this.programmingExercise.projectType = ProjectType.MAVEN_BLACKBOX; @@ -324,8 +325,8 @@ export class ProgrammingExerciseUpdateComponent implements OnInit { this.testwiseCoverageAnalysisSupported = false; } else if (type === ProjectType.PLAIN_MAVEN || type === ProjectType.MAVEN_MAVEN) { this.selectedProjectTypeValue = ProjectType.PLAIN_MAVEN; - this.sequentialTestRunsAllowed = true; - this.testwiseCoverageAnalysisSupported = true; + this.sequentialTestRunsAllowed = programmingLanguageFeature.sequentialTestRuns; + this.testwiseCoverageAnalysisSupported = programmingLanguageFeature.testwiseCoverageAnalysisSupported; if (this.withDependenciesValue) { this.programmingExercise.projectType = ProjectType.MAVEN_MAVEN; } else { @@ -333,8 +334,8 @@ export class ProgrammingExerciseUpdateComponent implements OnInit { } } else { this.selectedProjectTypeValue = ProjectType.PLAIN_GRADLE; - this.sequentialTestRunsAllowed = true; - this.testwiseCoverageAnalysisSupported = true; + this.sequentialTestRunsAllowed = programmingLanguageFeature.sequentialTestRuns; + this.testwiseCoverageAnalysisSupported = programmingLanguageFeature.testwiseCoverageAnalysisSupported; if (this.withDependenciesValue) { this.programmingExercise.projectType = ProjectType.GRADLE_GRADLE; } else { diff --git a/src/test/javascript/spec/component/programming-exercise/programming-exercise-update.component.spec.ts b/src/test/javascript/spec/component/programming-exercise/programming-exercise-update.component.spec.ts index 2e5de9756348..eea634a98f1a 100644 --- a/src/test/javascript/spec/component/programming-exercise/programming-exercise-update.component.spec.ts +++ b/src/test/javascript/spec/component/programming-exercise/programming-exercise-update.component.spec.ts @@ -818,6 +818,8 @@ describe('ProgrammingExercise Management Update Component', () => { })); it('should disable options for java dejagnu project type and re-enable them after changing back to maven or gradle', fakeAsync(() => { + const getFeaturesStub = jest.spyOn(programmingExerciseFeatureService, 'getProgrammingLanguageFeature'); + getFeaturesStub.mockImplementation((language: ProgrammingLanguage) => getProgrammingLanguageFeature(language)); comp.selectedProjectType = ProjectType.MAVEN_BLACKBOX; expect(comp.sequentialTestRunsAllowed).toBeFalse(); expect(comp.testwiseCoverageAnalysisSupported).toBeFalse(); From 43dbc05016efb9fcfe0d062b415c53ae5953f6b0 Mon Sep 17 00:00:00 2001 From: Dominik Remo <47261058+DominikRemo@users.noreply.github.com> Date: Sat, 7 Oct 2023 17:42:20 +0200 Subject: [PATCH 31/39] Development: Fix flaky ResultListenerIntegrationTest (#7326) --- .../ResultListenerIntegrationTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/test/java/de/tum/in/www1/artemis/entitylistener/ResultListenerIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/entitylistener/ResultListenerIntegrationTest.java index fe602b3564b4..cd3eedaaa1ea 100644 --- a/src/test/java/de/tum/in/www1/artemis/entitylistener/ResultListenerIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/entitylistener/ResultListenerIntegrationTest.java @@ -4,9 +4,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -import java.time.Duration; +import java.time.Instant; import java.time.ZonedDateTime; import java.util.List; +import java.util.Optional; import java.util.Set; import org.junit.jupiter.api.AfterEach; @@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.util.ReflectionTestUtils; import de.tum.in.www1.artemis.AbstractSpringIntegrationLocalCILocalVCTest; import de.tum.in.www1.artemis.course.CourseUtilService; @@ -92,8 +94,11 @@ void cleanup() { @BeforeEach void setupTestScenario() { + // Prevents the ParticipantScoreScheduleService from scheduling tasks related to prior results + ReflectionTestUtils.setField(participantScoreScheduleService, "lastScheduledRun", Optional.of(Instant.now())); + + ParticipantScoreScheduleService.DEFAULT_WAITING_TIME_FOR_SCHEDULED_TASKS = 100; participantScoreScheduleService.activate(); - ParticipantScoreScheduleService.DEFAULT_WAITING_TIME_FOR_SCHEDULED_TASKS = 50; ZonedDateTime pastReleaseDate = ZonedDateTime.now().minusDays(5); ZonedDateTime pastDueDate = ZonedDateTime.now().minusDays(3); ZonedDateTime pastAssessmentDueDate = ZonedDateTime.now().minusDays(2); @@ -103,7 +108,6 @@ void setupTestScenario() { idOfStudent1 = student1.getId(); // creating course Course course = courseUtilService.createCourse(); - Long idOfCourse = course.getId(); TextExercise textExercise = textExerciseUtilService.createIndividualTextExercise(course, pastReleaseDate, pastDueDate, pastAssessmentDueDate); idOfIndividualTextExercise = textExercise.getId(); Exercise teamExercise = textExerciseUtilService.createTeamTextExercise(course, pastReleaseDate, pastDueDate, pastAssessmentDueDate); @@ -422,7 +426,7 @@ private ParticipantScore setupTestScenarioWithOneResultSaved(boolean isRatedResu // Wait for the scheduler to execute its task participantScoreScheduleService.executeScheduledTasks(); - await().atMost(Duration.ofSeconds(30)).until(() -> participantScoreScheduleService.isIdle()); + await().until(() -> participantScoreScheduleService.isIdle()); var savedParticipantScores = participantScoreRepository.findAllByExercise(exercise); assertThat(savedParticipantScores).isNotEmpty(); From a3b32a105f76e6c5185a4d46e2fc1152786a297c Mon Sep 17 00:00:00 2001 From: Laurenz Blumentritt <38919977+laurenzfb@users.noreply.github.com> Date: Sat, 7 Oct 2023 17:44:48 +0200 Subject: [PATCH 32/39] Programming exercises: Fix maven sequential test runs (#7322) --- .../programming/ProgrammingExerciseRepositoryService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseRepositoryService.java b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseRepositoryService.java index 65f093083484..2a02704debb3 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseRepositoryService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/programming/ProgrammingExerciseRepositoryService.java @@ -546,7 +546,7 @@ private void setupBuildStage(final Path resourcePrefix, final Path templatePath, // staging project files are only required for maven final boolean isMaven = isMavenProject(projectType); if (isMaven && stagePomXml.isPresent()) { - FileUtils.copyFile(stagePomXml.get().getFile(), buildStagePath.resolve(POM_XML).toFile()); + FileUtils.copyInputStreamToFile(stagePomXml.get().getInputStream(), buildStagePath.resolve(POM_XML).toFile()); } final Path buildStageResourcesPath = templatePath.resolve(TEST_FILES_PATH).resolve(buildStageTemplateSubDirectory); From 9d2ce2c6e67463739fec81e70944c275dfc305cc Mon Sep 17 00:00:00 2001 From: Lara Dvorsek <73339358+laadvo@users.noreply.github.com> Date: Sat, 7 Oct 2023 17:45:17 +0200 Subject: [PATCH 33/39] Development: Fix flaky IrisMessageIntegrationTest (#7317) --- .../iris/AbstractIrisIntegrationTest.java | 35 ++----------------- .../iris/IrisMessageIntegrationTest.java | 13 +++---- 2 files changed, 9 insertions(+), 39 deletions(-) diff --git a/src/test/java/de/tum/in/www1/artemis/iris/AbstractIrisIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/iris/AbstractIrisIntegrationTest.java index f2ccfa6cdfab..2acdb177fc3a 100644 --- a/src/test/java/de/tum/in/www1/artemis/iris/AbstractIrisIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/iris/AbstractIrisIntegrationTest.java @@ -1,7 +1,8 @@ package de.tum.in.www1.artemis.iris; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import java.util.Objects; import java.util.stream.Collectors; @@ -141,36 +142,4 @@ protected void verifyErrorWasSentOverWebsocket(String user, Long sessionId) { ArgumentMatchers.argThat(object -> object instanceof IrisWebsocketService.IrisWebsocketDTO websocketDTO && websocketDTO.getType() == IrisWebsocketService.IrisWebsocketDTO.IrisWebsocketMessageType.ERROR)); } - - /** - * Verify that nothing was sent through the websocket. - * - * @param user the user - * @param sessionId the session id - */ - protected void verifyNothingWasSentOverWebsocket(String user, Long sessionId) { - verify(websocketMessagingService, times(0)).sendMessageToUser(eq(user), eq("/topic/iris/sessions/" + sessionId), any()); - } - - /** - * Verify that nothing else was sent through the websocket. - * - * @param user the user - * @param sessionId the session id - */ - protected void verifyNothingElseWasSentOverWebsocket(String user, Long sessionId) { - verifyNoMoreInteractions(websocketMessagingService); - } - - /** - * Verify that no error was sent through the websocket. - * - * @param user the user - * @param sessionId the session id - */ - protected void verifyNoErrorWasSentOverWebsocket(String user, Long sessionId) { - verify(websocketMessagingService, times(0)).sendMessageToUser(eq(user), eq("/topic/iris/sessions/" + sessionId), - ArgumentMatchers.argThat(object -> object instanceof IrisWebsocketService.IrisWebsocketDTO websocketDTO - && websocketDTO.getType() == IrisWebsocketService.IrisWebsocketDTO.IrisWebsocketMessageType.ERROR)); - } } diff --git a/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java index f8a538730d9e..b2017f7ebef9 100644 --- a/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/iris/IrisMessageIntegrationTest.java @@ -2,6 +2,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.timeout; +import static org.mockito.Mockito.verify; import java.time.ZonedDateTime; import java.util.List; @@ -90,13 +94,12 @@ void sendOneMessage() throws Exception { verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId(), messageToSend); verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId(), "Hello World"); - verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); } @Test @WithMockUser(username = TEST_PREFIX + "student1", roles = "USER") void sendOneMessageToWrongSession() throws Exception { - var irisSession1 = irisSessionService.createChatSessionForProgrammingExercise(exercise, userUtilService.getUserByLogin(TEST_PREFIX + "student1")); + irisSessionService.createChatSessionForProgrammingExercise(exercise, userUtilService.getUserByLogin(TEST_PREFIX + "student1")); var irisSession2 = irisSessionService.createChatSessionForProgrammingExercise(exercise, userUtilService.getUserByLogin(TEST_PREFIX + "student2")); IrisMessage messageToSend = createDefaultMockMessage(irisSession2); request.postWithResponseBody("/api/iris/sessions/" + irisSession2.getId() + "/messages", messageToSend, IrisMessage.class, HttpStatus.FORBIDDEN); @@ -138,6 +141,8 @@ void sendTwoMessages() throws Exception { .isEqualTo(messageToSend2.getContent().stream().map(IrisMessageContent::getTextContent).toList()); irisSessionFromDb = irisSessionRepository.findByIdWithMessagesElseThrow(irisSession.getId()); assertThat(irisSessionFromDb.getMessages()).hasSize(2).isEqualTo(List.of(irisMessage1, irisMessage2)); + + verify(websocketMessagingService, timeout(3000).times(4)).sendMessageToUser(eq(TEST_PREFIX + "student1"), any(), any()); } @Test @@ -245,7 +250,6 @@ void sendOneMessageBadRequest() throws Exception { verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId(), messageToSend); verifyErrorWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); - verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); } @Test @@ -261,7 +265,6 @@ void sendOneMessageEmptyBody() throws Exception { verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId(), messageToSend); verifyErrorWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); - verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); } @Test @@ -277,7 +280,6 @@ void resendMessage() throws Exception { request.postWithResponseBody("/api/iris/sessions/" + irisSession.getId() + "/messages/" + irisMessage.getId() + "/resend", null, IrisMessage.class, HttpStatus.OK); await().until(() -> irisSessionRepository.findByIdWithMessagesElseThrow(irisSession.getId()).getMessages().size() == 2); verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId(), "Hello World"); - verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student1", irisSession.getId()); } @Test @@ -302,7 +304,6 @@ void sendMessageRateLimitReached() throws Exception { HttpStatus.TOO_MANY_REQUESTS); verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student2", irisSession.getId(), messageToSend1); verifyMessageWasSentOverWebsocket(TEST_PREFIX + "student2", irisSession.getId(), "Hello World"); - verifyNothingElseWasSentOverWebsocket(TEST_PREFIX + "student2", irisSession.getId()); } finally { ReflectionTestUtils.setField(irisRateLimitService, "rateLimit", previousRateLimit); From 17b1f6b8553cb98bcae4b2ddb67789f2eecf9772 Mon Sep 17 00:00:00 2001 From: Dominik Remo <47261058+DominikRemo@users.noreply.github.com> Date: Sat, 7 Oct 2023 17:45:46 +0200 Subject: [PATCH 34/39] Development: Fix flaky ExerciseScoresChartIntegrationTest (#7319) --- .../assessment/ExerciseScoresChartIntegrationTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/test/java/de/tum/in/www1/artemis/assessment/ExerciseScoresChartIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/assessment/ExerciseScoresChartIntegrationTest.java index b9c1839d4d05..02f2dc151c3d 100644 --- a/src/test/java/de/tum/in/www1/artemis/assessment/ExerciseScoresChartIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/assessment/ExerciseScoresChartIntegrationTest.java @@ -3,8 +3,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import java.time.Instant; import java.time.ZonedDateTime; import java.util.List; +import java.util.Optional; import java.util.Set; import org.junit.jupiter.api.AfterEach; @@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.util.ReflectionTestUtils; import de.tum.in.www1.artemis.AbstractSpringIntegrationIndependentTest; import de.tum.in.www1.artemis.course.CourseUtilService; @@ -75,6 +78,9 @@ class ExerciseScoresChartIntegrationTest extends AbstractSpringIntegrationIndepe @BeforeEach void setupTestScenario() { + // Prevents the ParticipantScoreScheduleService from scheduling tasks related to prior results + ReflectionTestUtils.setField(participantScoreScheduleService, "lastScheduledRun", Optional.of(Instant.now())); + ParticipantScoreScheduleService.DEFAULT_WAITING_TIME_FOR_SCHEDULED_TASKS = 50; participantScoreScheduleService.activate(); ZonedDateTime pastTimestamp = ZonedDateTime.now().minusDays(5); From f8658f6bbfcf2bb95a7b9533068ca7db217d4cb7 Mon Sep 17 00:00:00 2001 From: Dominik Remo <47261058+DominikRemo@users.noreply.github.com> Date: Sat, 7 Oct 2023 17:45:58 +0200 Subject: [PATCH 35/39] Development: Fix flaky ParticipantScoreIntegrationTest (#7321) --- .../assessment/ParticipantScoreIntegrationTest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/test/java/de/tum/in/www1/artemis/assessment/ParticipantScoreIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/assessment/ParticipantScoreIntegrationTest.java index 86bb975e28b9..b8591935b428 100644 --- a/src/test/java/de/tum/in/www1/artemis/assessment/ParticipantScoreIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/assessment/ParticipantScoreIntegrationTest.java @@ -3,8 +3,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import java.time.Instant; import java.time.ZonedDateTime; import java.util.List; +import java.util.Optional; import java.util.Set; import org.junit.jupiter.api.AfterEach; @@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.util.ReflectionTestUtils; import de.tum.in.www1.artemis.AbstractSpringIntegrationLocalCILocalVCTest; import de.tum.in.www1.artemis.competency.CompetencyUtilService; @@ -97,7 +100,10 @@ class ParticipantScoreIntegrationTest extends AbstractSpringIntegrationLocalCILo @BeforeEach void setupTestScenario() { - ParticipantScoreScheduleService.DEFAULT_WAITING_TIME_FOR_SCHEDULED_TASKS = 50; + // Prevents the ParticipantScoreScheduleService from scheduling tasks related to prior results + ReflectionTestUtils.setField(participantScoreScheduleService, "lastScheduledRun", Optional.of(Instant.now())); + + ParticipantScoreScheduleService.DEFAULT_WAITING_TIME_FOR_SCHEDULED_TASKS = 200; participantScoreScheduleService.activate(); ZonedDateTime pastTimestamp = ZonedDateTime.now().minusDays(5); // creating the users student1, tutor1 and instructors1 From c92c9956cd4aa7dfe7d74c4646bf0e1333c49032 Mon Sep 17 00:00:00 2001 From: Lucas Welscher Date: Sat, 7 Oct 2023 17:46:27 +0200 Subject: [PATCH 36/39] Development: Always use braces for code blocks (#7315) --- checkstyle.xml | 1 + .../artemis/service/TextBlockService.java | 3 +- .../cache/quiz/QuizExerciseCache.java | 6 ++- .../rest/dto/examevent/ExamLiveEventDTO.java | 6 ++- .../ExamWideAnnouncementEventDTO.java | 9 ++-- .../examevent/WorkingTimeUpdateEventDTO.java | 9 ++-- .../checkstyle-configuration.xml | 41 +++++++++---------- ...ammingExerciseTemplateIntegrationTest.java | 3 +- 8 files changed, 45 insertions(+), 33 deletions(-) diff --git a/checkstyle.xml b/checkstyle.xml index 56ab44e3c622..ec22ce48e21b 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -20,5 +20,6 @@ + diff --git a/src/main/java/de/tum/in/www1/artemis/service/TextBlockService.java b/src/main/java/de/tum/in/www1/artemis/service/TextBlockService.java index b8408a5530c1..19b4dc50d31c 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/TextBlockService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/TextBlockService.java @@ -73,8 +73,9 @@ public Set splitSubmissionIntoBlocks(TextSubmission submission) { final int startIndex = start + offset; final int endIndex = startIndex + lineOrSentenceTrimed.length(); start = start + lineOrSentence.length() + LINE_SEPARATOR_LENGTH; - if (startIndex == endIndex || lineOrSentence.isBlank()) + if (startIndex == endIndex || lineOrSentence.isBlank()) { continue; // Do *not* define a text block for an empty line. + } final TextBlock textBlock = new TextBlock().text(lineOrSentenceTrimed).startIndex(startIndex).endIndex(endIndex).submission(submission).automatic(); textBlock.computeId(); diff --git a/src/main/java/de/tum/in/www1/artemis/service/scheduled/cache/quiz/QuizExerciseCache.java b/src/main/java/de/tum/in/www1/artemis/service/scheduled/cache/quiz/QuizExerciseCache.java index 4ae599da59b8..ba37fd740bf2 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/scheduled/cache/quiz/QuizExerciseCache.java +++ b/src/main/java/de/tum/in/www1/artemis/service/scheduled/cache/quiz/QuizExerciseCache.java @@ -78,10 +78,12 @@ public final int hashCode() { @Override public final boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (!(obj instanceof QuizExerciseCache)) + } + if (!(obj instanceof QuizExerciseCache)) { return false; + } return Objects.equals(exerciseId, ((QuizExerciseCache) obj).exerciseId); } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamLiveEventDTO.java b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamLiveEventDTO.java index cac6c288546b..2426e68f296c 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamLiveEventDTO.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamLiveEventDTO.java @@ -52,10 +52,12 @@ public void setCreatedDate(Instant createdDate) { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } ExamLiveEventDTO that = (ExamLiveEventDTO) o; return Objects.equals(id, that.id) && Objects.equals(createdBy, that.createdBy) && Objects.equals(createdDate, that.createdDate); } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamWideAnnouncementEventDTO.java b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamWideAnnouncementEventDTO.java index 519a01ebbe7a..d223a42e26e4 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamWideAnnouncementEventDTO.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/ExamWideAnnouncementEventDTO.java @@ -19,12 +19,15 @@ public void setText(String text) { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; - if (!super.equals(o)) + } + if (!super.equals(o)) { return false; + } ExamWideAnnouncementEventDTO that = (ExamWideAnnouncementEventDTO) o; return Objects.equals(text, that.text); } diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/WorkingTimeUpdateEventDTO.java b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/WorkingTimeUpdateEventDTO.java index 2abfd0b1032d..4b812ce911df 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/WorkingTimeUpdateEventDTO.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/dto/examevent/WorkingTimeUpdateEventDTO.java @@ -39,12 +39,15 @@ public void setCourseWide(boolean courseWide) { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; - if (!super.equals(o)) + } + if (!super.equals(o)) { return false; + } WorkingTimeUpdateEventDTO that = (WorkingTimeUpdateEventDTO) o; return newWorkingTime == that.newWorkingTime && oldWorkingTime == that.oldWorkingTime && courseWide == that.courseWide; } diff --git a/src/main/resources/templates/java/test/staticCodeAnalysisConfig/checkstyle-configuration.xml b/src/main/resources/templates/java/test/staticCodeAnalysisConfig/checkstyle-configuration.xml index 8f5e762b16f4..b5d640a57efb 100644 --- a/src/main/resources/templates/java/test/staticCodeAnalysisConfig/checkstyle-configuration.xml +++ b/src/main/resources/templates/java/test/staticCodeAnalysisConfig/checkstyle-configuration.xml @@ -23,40 +23,43 @@ - + - + - + - + - + - + + + - + + @@ -65,7 +68,7 @@ - + @@ -74,7 +77,7 @@ - + @@ -87,7 +90,7 @@ - + @@ -99,7 +102,7 @@ - + @@ -107,13 +110,9 @@ - - - - - + @@ -126,12 +125,12 @@ - + - + @@ -139,7 +138,7 @@ - + @@ -156,7 +155,7 @@ - + @@ -164,7 +163,7 @@ - + diff --git a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingExerciseTemplateIntegrationTest.java b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingExerciseTemplateIntegrationTest.java index ea78546ada41..4d7302e4ce97 100644 --- a/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingExerciseTemplateIntegrationTest.java +++ b/src/test/java/de/tum/in/www1/artemis/exercise/programmingexercise/ProgrammingExerciseTemplateIntegrationTest.java @@ -84,8 +84,9 @@ static void detectMavenHome() { String m2Home = System.getenv("M2_HOME"); String mavenHome = System.getProperty("maven.home"); - if (m2Home != null || mavenHome != null) + if (m2Home != null || mavenHome != null) { return; + } try { String mvnExecutable = Os.isFamily(Os.FAMILY_WINDOWS) ? "mvn.cmd" : "mvn"; From 285968d97aa1435e8fff1330e148019df43b1685 Mon Sep 17 00:00:00 2001 From: Lucas Welscher Date: Sat, 7 Oct 2023 17:47:18 +0200 Subject: [PATCH 37/39] Development: Fix unclosed input streams (#7325) --- .../tum/in/www1/artemis/service/FileService.java | 4 ++-- .../service/FileUploadSubmissionService.java | 2 +- .../www1/artemis/service/RepositoryService.java | 2 -- .../web/rest/repository/RepositoryResource.java | 16 +++++++++------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/tum/in/www1/artemis/service/FileService.java b/src/main/java/de/tum/in/www1/artemis/service/FileService.java index 814b47092fd6..4de0fa0b9d23 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/FileService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/FileService.java @@ -181,7 +181,7 @@ public URI handleSaveFile(MultipartFile file, boolean keepFilename, boolean mark filePath = generateFilePath(filenamePrefix, fileExtension, path); } try { - FileUtils.copyToFile(file.getInputStream(), filePath.toFile()); + FileUtils.copyInputStreamToFile(file.getInputStream(), filePath.toFile()); return generateResponsePath(filePath, markdown); } @@ -344,7 +344,7 @@ public void copyResource(final Resource resource, final Path prefix, final Path return; } - FileUtils.copyToFile(resource.getInputStream(), targetPath.toFile()); + FileUtils.copyInputStreamToFile(resource.getInputStream(), targetPath.toFile()); if (targetPath.endsWith("gradlew")) { targetPath.toFile().setExecutable(true); diff --git a/src/main/java/de/tum/in/www1/artemis/service/FileUploadSubmissionService.java b/src/main/java/de/tum/in/www1/artemis/service/FileUploadSubmissionService.java index df4454fddcc9..3849af1419d6 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/FileUploadSubmissionService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/FileUploadSubmissionService.java @@ -201,7 +201,7 @@ private Path saveFileForSubmission(final MultipartFile file, final Submission su final Path filePath = dirPath.resolve(filename); final File savedFile = filePath.toFile(); - FileUtils.copyToFile(file.getInputStream(), savedFile); + FileUtils.copyInputStreamToFile(file.getInputStream(), savedFile); return filePath; } diff --git a/src/main/java/de/tum/in/www1/artemis/service/RepositoryService.java b/src/main/java/de/tum/in/www1/artemis/service/RepositoryService.java index 8b294f0bdddb..ef39326d10da 100644 --- a/src/main/java/de/tum/in/www1/artemis/service/RepositoryService.java +++ b/src/main/java/de/tum/in/www1/artemis/service/RepositoryService.java @@ -188,7 +188,6 @@ public void createFile(Repository repository, String filePath, InputStream input File file = checkIfPathAndFileAreValidAndReturnSafeFile(repository, safePath); FileUtils.copyToFile(inputStream, file); repository.setContent(null); // invalidate cache - inputStream.close(); } /** @@ -207,7 +206,6 @@ public void createFolder(Repository repository, String folderPath, InputStream i File keep = new File(repository.getLocalPath().resolve(safePath).resolve(".keep"), repository); FileUtils.copyToFile(inputStream, keep); repository.setContent(null); // invalidate cache - inputStream.close(); } /** diff --git a/src/main/java/de/tum/in/www1/artemis/web/rest/repository/RepositoryResource.java b/src/main/java/de/tum/in/www1/artemis/web/rest/repository/RepositoryResource.java index 5cce9e0333c0..5f44f6581daf 100644 --- a/src/main/java/de/tum/in/www1/artemis/web/rest/repository/RepositoryResource.java +++ b/src/main/java/de/tum/in/www1/artemis/web/rest/repository/RepositoryResource.java @@ -170,8 +170,9 @@ public ResponseEntity createFile(Long domainId, String filePath, HttpServl return executeAndCheckForExceptions(() -> { Repository repository = getRepository(domainId, RepositoryActionType.WRITE, true); - InputStream inputStream = request.getInputStream(); - repositoryService.createFile(repository, filePath, inputStream); + try (var inputStream = request.getInputStream()) { + repositoryService.createFile(repository, filePath, inputStream); + } return new ResponseEntity<>(HttpStatus.OK); }); } @@ -189,8 +190,9 @@ public ResponseEntity createFolder(Long domainId, String folderPath, HttpS return executeAndCheckForExceptions(() -> { Repository repository = getRepository(domainId, RepositoryActionType.WRITE, true); - InputStream inputStream = request.getInputStream(); - repositoryService.createFolder(repository, folderPath, inputStream); + try (InputStream inputStream = request.getInputStream()) { + repositoryService.createFolder(repository, folderPath, inputStream); + } return new ResponseEntity<>(HttpStatus.OK); }); } @@ -389,8 +391,8 @@ private void fetchAndUpdateFile(FileSubmission submission, Repository repository throw new IOException("File could not be found."); } - InputStream inputStream = new ByteArrayInputStream(submission.getFileContent().getBytes(StandardCharsets.UTF_8)); - FileUtils.copyToFile(inputStream, file.get()); - inputStream.close(); + try (var inputStream = new ByteArrayInputStream(submission.getFileContent().getBytes(StandardCharsets.UTF_8))) { + FileUtils.copyToFile(inputStream, file.get()); + } } } From c21fb13cbc1298b0f0d73faa5951085a77998649 Mon Sep 17 00:00:00 2001 From: Andreas Resch Date: Sat, 7 Oct 2023 17:49:06 +0200 Subject: [PATCH 38/39] Development: Remove application links from Atlassian documentation (#7244) --- docker/atlassian/atlassian-setup.sh | 235 +----------------- docs/dev/setup/bamboo-bitbucket-jira.rst | 68 ----- .../bamboo_bitbucket_applicationLink.png | Bin 50686 -> 0 bytes .../bamboo_jira_applicationLink.png | Bin 49412 -> 0 bytes .../bitbucket_bamboo_applicationLink.png | Bin 49421 -> 0 bytes .../bitbucket_jira_applicationLink.png | Bin 49306 -> 0 bytes .../jira_bamboo_applicationLink.png | Bin 55150 -> 0 bytes .../jira_bitbucket_applicationLink.png | Bin 55174 -> 0 bytes 8 files changed, 4 insertions(+), 299 deletions(-) delete mode 100644 docs/dev/setup/bamboo-bitbucket-jira/bamboo_bitbucket_applicationLink.png delete mode 100644 docs/dev/setup/bamboo-bitbucket-jira/bamboo_jira_applicationLink.png delete mode 100644 docs/dev/setup/bamboo-bitbucket-jira/bitbucket_bamboo_applicationLink.png delete mode 100644 docs/dev/setup/bamboo-bitbucket-jira/bitbucket_jira_applicationLink.png delete mode 100644 docs/dev/setup/bamboo-bitbucket-jira/jira_bamboo_applicationLink.png delete mode 100644 docs/dev/setup/bamboo-bitbucket-jira/jira_bitbucket_applicationLink.png diff --git a/docker/atlassian/atlassian-setup.sh b/docker/atlassian/atlassian-setup.sh index 5d70b745596c..1784bbda2444 100755 --- a/docker/atlassian/atlassian-setup.sh +++ b/docker/atlassian/atlassian-setup.sh @@ -1,52 +1,12 @@ #!/bin/bash # for configuring instance over script -jira_internal_port=8080 jira_external_port=8081 -bamboo_port=8085 -bitbucket_port=7990 - -same_credentials=false set -e - -while true; do - read -p $'Are you using the same Username + Password on all three systems (Jira, Bamboo, Bitbucket)? \n' yn - case $yn in - [Yy]* ) same_credentials=true; break;; - [Nn]* ) same_credentials=false; break;; - * ) echo "Please answer yes or no.";; - esac -done - -if [ "$same_credentials" = true ] ; then - echo In order to work, you need to provide the Username and Password of an admin account for Jira, Bamboo and Bitbucket - echo Admin Account for ALL Systems - read -p 'Username: ' all_uservar - read -sp 'Password: ' all_passvar - echo - jira_uservar=$all_uservar - jira_passvar=$all_passvar - bamboo_uservar=$all_uservar - bamboo_passvar=$all_passvar - bitbucket_uservar=$all_uservar - bitbucket_passvar=$all_passvar -else - echo In order to work, you need to provide the Username and Password of an admin account for Jira, Bamboo and Bitbucket - echo Jira Admin Account - read -p 'Username: ' jira_uservar - read -sp 'Password: ' jira_passvar - echo - - echo Bamboo Admin Account - read -p 'Username: ' bamboo_uservar - read -sp 'Password: ' bamboo_passvar - echo - - echo Bitbucket Admin Account - read -p 'Username: ' bitbucket_uservar - read -sp 'Password: ' bitbucket_passvar - echo -fi +echo In order to work, you need to provide the Username and Password of an admin account for Jira +echo Jira Admin Account +read -p 'Username: ' jira_uservar +read -sp 'Password: ' jira_passvar # create groups @@ -113,190 +73,3 @@ for i in {1..20}; do }" \ "$jira_group_add_url$group" done - -# Application Links - -jira_url="http://localhost:$jira_external_port/rest/applinks/latest/applicationlinkForm/createAppLink" -bamboo_url="http://localhost:$bamboo_port/rest/applinks/latest/applicationlinkForm/createAppLink" -bitbucket_url="http://localhost:$bitbucket_port/rest/applinks/latest/applicationlinkForm/createAppLink" - -internal_jira_url="http://jira:$jira_internal_port" -internal_bamboo_url="http://bamboo:$bamboo_port" -internal_bitbucket_url="http://bitbucket:$bitbucket_port" - -echo $'\nConfiguring ApplicationLinks' -# Jira -# add link from jira to bitbucket -curl -u "$jira_uservar":"$jira_passvar" \ - -s \ - --fail \ - --show-error \ - --header "Content-Type: application/json" \ - --request POST \ - --data "{ - \"applicationLink\": { - \"typeId\": \"stash\", - \"name\": \"LS1 Bitbucket Server\", - \"displayUrl\": \"$internal_bitbucket_url\", - \"rpcUrl\": \"$internal_bitbucket_url\", - \"isPrimary\": true, - \"isSystem\": true - }, - \"username\": \"$bitbucket_uservar\", - \"password\": \"$bitbucket_passvar\", - \"customRpcURL\": false, - \"rpcUrl\": \"$internal_jira_url\", - \"createTwoWayLink\": false, - \"configFormValues\": { - \"trustEachOther\": true, - \"shareUserbase\": true - } - }" \ - $jira_url -# add link from jira to bamboo -curl -u "$jira_uservar":"$jira_passvar" \ - --fail \ - --show-error \ - --header "Content-Type: application/json" \ - --request POST \ - --data "{ - \"applicationLink\": { - \"typeId\": \"bamboo\", - \"name\": \"LS1 Bamboo Server\", - \"displayUrl\": \"$internal_bamboo_url\", - \"rpcUrl\": \"$internal_bamboo_url\", - \"isPrimary\": true, - \"isSystem\": true - }, - \"username\": \"$bamboo_uservar\", - \"password\": \"$bamboo_passvar\", - \"customRpcURL\": false, - \"rpcUrl\": \"$internal_jira_url\", - \"createTwoWayLink\": false, - \"configFormValues\": { - \"trustEachOther\": true, - \"shareUserbase\": true - } - }" \ - $jira_url -# Bamboo -# add link from bamboo to bitbucket -curl -u "$bamboo_uservar":"$bamboo_passvar" \ - --fail \ - --show-error \ - --header "Content-Type: application/json" \ - --request POST \ - --data "{ - \"applicationLink\": { - \"typeId\": \"stash\", - \"name\": \"LS1 Bitbucket Server\", - \"displayUrl\": \"$internal_bitbucket_url\", - \"rpcUrl\": \"$internal_bitbucket_url\", - \"isPrimary\": true, - \"isSystem\": true - }, - \"username\": \"$bitbucket_uservar\", - \"password\": \"$bitbucket_passvar\", - \"customRpcURL\": false, - \"rpcUrl\": \"$internal_bamboo_url\", - \"createTwoWayLink\": false, - \"configFormValues\": { - \"trustEachOther\": true, - \"shareUserbase\": true - } - }" \ - $bamboo_url -# add link from bamboo to jira -curl -u "$bamboo_uservar":"$bamboo_passvar" \ - --fail \ - --show-error \ - --header "Content-Type: application/json" \ - --request POST \ - --data "{ - \"applicationLink\": { - \"typeId\": \"jira\", - \"name\": \"LS1 Jira Server\", - \"displayUrl\": \"$internal_jira_url\", - \"rpcUrl\": \"$internal_jira_url\", - \"isPrimary\": true, - \"isSystem\": true - }, - \"username\": \"$jira_uservar\", - \"password\": \"$jira_passvar\", - \"customRpcURL\": false, - \"rpcUrl\": \"$internal_bamboo_url\", - \"createTwoWayLink\": false, - \"configFormValues\": { - \"trustEachOther\": true, - \"shareUserbase\": true - } - }" \ - $bamboo_url -#Bitbucket -# add link from bitbucket to jira -curl -u "$bitbucket_uservar":"$bitbucket_passvar" \ - --fail \ - --show-error \ - --header "Content-Type: application/json" \ - --request POST \ - --data "{ - \"applicationLink\": { - \"typeId\": \"jira\", - \"name\": \"LS1 Jira Server\", - \"displayUrl\": \"$internal_jira_url\", - \"rpcUrl\": \"$internal_jira_url\", - \"isPrimary\": true, - \"isSystem\": true - }, - \"username\": \"$jira_uservar\", - \"password\": \"$jira_passvar\", - \"customRpcURL\": false, - \"rpcUrl\": \"$internal_bitbucket_url\", - \"createTwoWayLink\": false, - \"configFormValues\": { - \"trustEachOther\": true, - \"shareUserbase\": true - } - }" \ - $bitbucket_url -# add link from bitbucket to bamboo -curl -u "$bitbucket_uservar":"$bitbucket_passvar" \ - --fail \ - --show-error \ - --header "Content-Type: application/json" \ - --request POST \ - --data "{ - \"applicationLink\": { - \"typeId\": \"bamboo\", - \"name\": \"LS1 Bamboo Server\", - \"displayUrl\": \"$internal_bamboo_url\", - \"rpcUrl\": \"$internal_bamboo_url\", - \"isPrimary\": true, - \"isSystem\": true - }, - \"username\": \"$bamboo_uservar\", - \"password\": \"$bamboo_passvar\", - \"customRpcURL\": false, - \"rpcUrl\": \"$internal_bitbucket_url\", - \"createTwoWayLink\": false, - \"configFormValues\": { - \"trustEachOther\": true, - \"shareUserbase\": true - } - }" \ - $bitbucket_url -echo ApplicationLinks created -echo Please finish configuration of ApplicationLinks in browser - -jira_application_links_url="http://localhost:$jira_external_port/plugins/servlet/applinks/listApplicationLinks" -bamboo_application_links_url="http://localhost:$bamboo_port/plugins/servlet/applinks/listApplicationLinks" -bitbucket_application_links_url="http://localhost:$bitbucket_port/plugins/servlet/applinks/listApplicationLinks" - -if [ "$(uname)" == "Darwin" ] -then - open $jira_application_links_url $bamboo_application_links_url $bitbucket_application_links_url -else - xdg-open $jira_application_links_url - xdg-open $bamboo_application_links_url - xdg-open $bitbucket_application_links_url -fi diff --git a/docs/dev/setup/bamboo-bitbucket-jira.rst b/docs/dev/setup/bamboo-bitbucket-jira.rst index 11e7bbb7605d..d23bf5e4d8c4 100644 --- a/docs/dev/setup/bamboo-bitbucket-jira.rst +++ b/docs/dev/setup/bamboo-bitbucket-jira.rst @@ -90,78 +90,10 @@ under ``localhost:7990``. #. Make sure that Jira, Bitbucket and Bamboo have finished starting up. - (Only Linux & Windows) Make sure that `xdg-utils `__ - is installed before running the following script. - - .. raw:: html - -

- xdg-utils for Windows users - An easy way to use the xdg-utils on Windows would be to install them on the linux-subsystem, - which should be activated anyways when running Docker on Windows. - For the installation on the subsystem the above linked explanation can be used. -
- Make sure to execute the script from the subsystem. -
- - Execute the shell script ``atlassian-setup.sh`` in the ``docker/atlassian`` directory (e.g. with ``./docker/atlassian/atlassian-setup.sh``). This script creates groups, users and assigns the user to their respective group. - In addition, it configures disabled application links between the 3 applications. - - -#. Enable the created `application - links `__ - between all 3 application (OAuth Impersonate). The links should open automatically after the shell script - has finished. If not open them manually: - - - Bitbucket: http://localhost:7990/plugins/servlet/applinks/listApplicationLinks - - Bamboo: http://localhost:8085/plugins/servlet/applinks/listApplicationLinks - - Jira: http://localhost:8081/plugins/servlet/applinks/listApplicationLinks - - **You manually have to adjust the Display URL for the Bamboo → Bitbucket AND - Bitbucket → Bamboo URl to** ``http://localhost:7990`` **and** - ``http://localhost:8085`` **.** - - .. list-table:: - :widths: 33 33 33 - :header-rows: 1 - - * - **Bamboo:** - - **Bitbucket:** - - **Jira:** - * - .. figure:: setup/bamboo-bitbucket-jira/bamboo_bitbucket_applicationLink.png - :align: center - :target: ../_images/bamboo_bitbucket_applicationLink.png - - Bamboo → Bitbucket - - .. figure:: setup/bamboo-bitbucket-jira/bitbucket_bamboo_applicationLink.png - :align: center - :target: ../_images/bitbucket_bamboo_applicationLink.png - - Bitbucket → Bamboo - - .. figure:: setup/bamboo-bitbucket-jira/jira_bamboo_applicationLink.png - :align: center - :target: ../_images/jira_bamboo_applicationLink.png - - Jira → Bamboo - * - .. figure:: setup/bamboo-bitbucket-jira/bamboo_jira_applicationLink.png - :align: center - :target: ../_images/bamboo_jira_applicationLink.png - - Bamboo → Jira - - .. figure:: setup/bamboo-bitbucket-jira/bitbucket_jira_applicationLink.png - :align: center - :target: ../_images/bitbucket_jira_applicationLink.png - - Bitbucket → Jira - - .. figure:: setup/bamboo-bitbucket-jira/jira_bitbucket_applicationLink.png - :align: center - :target: ../_images/jira_bitbucket_applicationLink.png - - Jira → Bitbucket #. The script *(step 3)* has already created the required users and assigned them to their respective group in Jira. Now, make sure that they are assigned correctly according to the following test setup: diff --git a/docs/dev/setup/bamboo-bitbucket-jira/bamboo_bitbucket_applicationLink.png b/docs/dev/setup/bamboo-bitbucket-jira/bamboo_bitbucket_applicationLink.png deleted file mode 100644 index 34811e929415a638894f27426299421e76c9603e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50686 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 diff --git a/docs/dev/setup/bamboo-bitbucket-jira/bamboo_jira_applicationLink.png b/docs/dev/setup/bamboo-bitbucket-jira/bamboo_jira_applicationLink.png deleted file mode 100644 index 97ec96a9a0c8c135ef26b9889aad51d3e0ffe1c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49412 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

6AT3h4CTemzOY%1x^{&-FX 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 v`V#P5ir diff --git a/docs/dev/setup/bamboo-bitbucket-jira/bitbucket_bamboo_applicationLink.png b/docs/dev/setup/bamboo-bitbucket-jira/bitbucket_bamboo_applicationLink.png deleted file mode 100644 index 70222278103aab40e24671616731fcc1c7a5c6c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49421 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

;%DT}7)klkMn*JZ;DDAvAKQif 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 CMKH<$ diff --git a/docs/dev/setup/bamboo-bitbucket-jira/bitbucket_jira_applicationLink.png b/docs/dev/setup/bamboo-bitbucket-jira/bitbucket_jira_applicationLink.png deleted file mode 100644 index f9377e52aeda4e464e2f8ab066b777ccdce9e892..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49306 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�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%0DIw^6t6HqIf^(<}0GhB$}!iCg( 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 ZM?Yssm^jIm@CVm%m>J(NsxWkq{5QADpF#it From d32f834a129c8e95b4ec9de1c0415c027a3bdffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ba=C5=9Fak=20Akan?= Date: Sat, 7 Oct 2023 17:50:11 +0200 Subject: [PATCH 39/39] Development: Add LTI 1.3 documentation (#7228) --- docs/index.rst | 1 + docs/user/lti.rst | 232 ++++++++++++++++++ docs/user/lti/enable_onlinecourse.png | Bin 0 -> 47496 bytes docs/user/lti/lticonfiguration_link.png | Bin 0 -> 27089 bytes docs/user/lti/lticonfiguration_tab.png | Bin 0 -> 104898 bytes docs/user/lti/ltiexercises_list.png | Bin 0 -> 88225 bytes docs/user/lti/moodle_activate_lti.png | Bin 0 -> 9841 bytes docs/user/lti/moodle_add_external_tool.png | Bin 0 -> 58153 bytes .../lti/moodle_add_external_tool_page.png | Bin 0 -> 73634 bytes docs/user/lti/moodle_add_tool_url.png | Bin 0 -> 38909 bytes docs/user/lti/moodle_artemis_progex.png | Bin 0 -> 160831 bytes docs/user/lti/moodle_editmode.png | Bin 0 -> 34272 bytes docs/user/lti/moodle_password_popup.png | Bin 0 -> 122220 bytes docs/user/lti/moodle_site_administration.png | Bin 0 -> 55793 bytes 14 files changed, 233 insertions(+) create mode 100644 docs/user/lti.rst create mode 100644 docs/user/lti/enable_onlinecourse.png create mode 100644 docs/user/lti/lticonfiguration_link.png create mode 100644 docs/user/lti/lticonfiguration_tab.png create mode 100644 docs/user/lti/ltiexercises_list.png create mode 100644 docs/user/lti/moodle_activate_lti.png create mode 100644 docs/user/lti/moodle_add_external_tool.png create mode 100644 docs/user/lti/moodle_add_external_tool_page.png create mode 100644 docs/user/lti/moodle_add_tool_url.png create mode 100644 docs/user/lti/moodle_artemis_progex.png create mode 100644 docs/user/lti/moodle_editmode.png create mode 100644 docs/user/lti/moodle_password_popup.png create mode 100644 docs/user/lti/moodle_site_administration.png diff --git a/docs/index.rst b/docs/index.rst index 912c3aa9570c..8e622245ddec 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -40,6 +40,7 @@ All these exercises are supposed to be run either live in the lecture with insta user/markdown-support user/exports user/mobile-applications + user/lti .. toctree:: diff --git a/docs/user/lti.rst b/docs/user/lti.rst new file mode 100644 index 000000000000..4f160e2174f9 --- /dev/null +++ b/docs/user/lti.rst @@ -0,0 +1,232 @@ +.. _lti: + +LTI Integration +===================================== + +.. contents:: Content of this document + :local: + :depth: 2 + +Overview +-------- + +LTI (Learning Tools Interoperability) is a standard developed by `IMS Global `_ that allows different learning platforms and tools to work together seamlessly. +It enables tools to integrate smoothly with a learning management system (like Moodle or edX). Artemis supports `LTI 1.1 (deprecated) `_ and `LTI 1.3. `_ +The table below showcases the types of exercises supported by Artemis and their respective functionalities. +For each exercise, students can start the exercise, check their results and get feedback on their work. Assessment results provide a quantitative measure of a student's performance on the exercise, which is represented as a grade or score. Assessment Feedback offers qualitative insights through comments and suggestions. + +.. list-table:: Supported Exercise Interactions + :widths: 25 15 15 15 + :header-rows: 1 + + * - Exercise Type + - Start Exercise + - View Assessment Result + - View Assessment Feedback + * - Programming exercise + - ✔ + - ✔ + - ✔ + * - Quiz exercise + - ✔ + - ✔ + - ✔ + * - Modeling exercise + - ✔ + - ✔ + - ✔ + * - Text exercise + - ✔ + - ✔ + - ✔ + * - File Upload exercise + - ✔ + - ✔ + - ✔ + +Prerequisite for Server Admins +------------------------------- +Before instructors integrate Artemis or students access and start Artemis exercises through Moodle or any other LMS via LTI, server administrators must ensure that LTI is active with the necessary profile on the server. If you are a server admin, please make sure to configure this setting to allow instructors and students to utilize the LTI integration. + +LTI 1.3 Instructor Guide +--------------------------- +Instructors have the capability to seamlessly integrate the Artemis platform with other Learning Management Systems (LMS) like Moodle using the LTI 1.3 standard. The process is straightforward and involves a few key steps: + +#. Connecting Artemis to Other Platforms: Begin by enabling the Online Course setting in Artemis, which activates the LTI features. +#. Retrieve Dynamic Registration URL: Once the Online Course setting is enabled, you can obtain the Dynamic Registration URL from Artemis, which is essential for the integration process. +#. Establish Configuration in Moodle: With the Dynamic Registration URL in hand, proceed to your Moodle platform and input this URL to establish a connection between Artemis and Moodle. +#. Link Specific Exercises: Instructors can also link individual exercises from Artemis directly to their Moodle courses, ensuring students have direct access to specific assignments. + +By following these steps, instructors can effortlessly bridge the gap between Artemis and Moodle, providing students with a unified learning experience. + +1. Connecting Artemis to Other Platforms (e.g., Moodle) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Instructors can connect Artemis online courses via LTI to other Learning Management Systems (e.g., Moodle, edX). +Below given steps for how to configure Artemis over LTI with Moodle. + +1.1 Enable the Online Course Setting in Artemis: +""""""""""""""""""""""""""""""""""""""""""""""""" +Before diving into the LTI configuration, it is crucial to ensure that the Online Course setting is enabled in Artemis. This setting activates the LTI configurability, allowing instructors to link Artemis with Moodle or other LMS platforms. +To enable the Online Course setting in Artemis, follow the steps below:\ + +#. Access Course Management: Start by logging into your Artemis account. Locate and click on the |course-management| option. +#. Select the Desired Course: From the list of available courses, navigate to the course you wish to configure for LTI integration. +#. Edit Course Settings: On the course overview page, you will find an |course_edit| button, located at the top right corner. Clicking this will allow you to modify various course settings. +#. Locate the Online Course Checkbox: As you scroll through the course settings, you will come across a checkbox labeled Online Course. This particular setting is essential for enabling LTI configurability. +#. Activate LTI Configuration: To finalize the process, simply check the Online Course checkbox. By doing so, you are activating the LTI configuration settings for that specific course. Make sure to save any changes made. + +.. figure:: lti/enable_onlinecourse.png + :align: center + :width: 700 + :alt: Enable Online Course + +With the Online Course setting enabled, you can now proceed to integrate Artemis with Moodle using the LTI 1.3 standard. The subsequent sections of this guide will provide detailed steps on achieving this integration. + +1.2. Copy Dynamic Registration URL from Artemis +""""""""""""""""""""""""""""""""""""""""""""""" +Once the above setting is enabled, you can now set up a bridge between Artemis and Moodle. +To retrieve Dynamic Registration URL from Artemis, follow the steps outlined below: + +#. Access Course Management: Begin by logging into your Artemis account. Click on the |course-management| option. +#. Choose the Relevant Course: From the list of courses, select the one you wish to configure for LTI integration. This will lead you to the course's settings and details. +#. Navigate to Course Details: Once inside the course settings, scroll down until you find the Course Details section. +#. Access LTI Configuration: Within the Course Details section, you will find an option labeled LTI Configuration. Click on it to access the LTI settings for the course. + + .. figure:: lti/lticonfiguration_link.png + :align: center + :width: 700 + :alt: Locate LTI Configuration + +#. Switch to LTI 1.3 Tab: Inside the LTI Configuration, there will be multiple tabs related to different LTI versions. Click on the LTI 1.3 tab to access the settings specific to this version. +#. Retrieve Dynamic Registration URL: In the LTI 1.3 settings, locate the Dynamic Registration URL. This URL is essential for integrating Artemis with Moodle. Copy this URL for use in the subsequent Moodle configuration steps. + +.. figure:: lti/lticonfiguration_tab.png + :align: center + :width: 700 + :alt: LTI 1.3 Configuration + + + +1.3. Establish Artemis configuration from Moodle +"""""""""""""""""""""""""""""""""""""""""""""""" + +With the Dynamic Registration URL copied, you can now configure the LTI 1.3 integration in Moodle: + +#. Access Site Administration: Log into your Moodle account. From the main dashboard, navigate to the Site Administration section. This section contains various administrative settings for the Moodle platform. +#. Navigate to External Tool Settings: Inside the Site Administration, go to Plugins. From there, select External tool followed by Manage Tools. This will lead you to the LTI configurations in Moodle. + + .. figure:: lti/moodle_site_administration.png + :align: center + :width: 700 + :alt: Moodle - Site Administration + +#. Enter Dynamic Registration URL: In the Manage Tools section, you will find a field labeled Tool URL. Paste the previously copied Dynamic Registration URL from Artemis into this field. +#. Initiate LTI Advantage Integration: After entering the URL, click on the Add LTI Advantage button. This action will begin the process of integrating Artemis with Moodle using the LTI 1.3 standard. + + .. figure:: lti/moodle_add_tool_url.png + :align: center + :width: 700 + :alt: Moodle - Site Administration + +#. Locate the Artemis Course: Once the integration process starts, scroll down the list until you find the Artemis course identified by its shortname. +#. Activate the Integration: To finalize the integration, click on the Activate button next to the Artemis course name. This action will complete the LTI 1.3 integration between Artemis and Moodle. + +.. figure:: lti/moodle_activate_lti.png + :align: center + :alt: Moodle - Site Administration + +2. Linking Specific Exercises from Artemis to Moodle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Once the LTI configuration between Artemis and Moodle is successfully completed, instructors have the capability to link specific Artemis exercises directly to their Moodle courses. This integration provides students with direct access to Artemis exercises from their Moodle courses. The process involves two primary steps: +#. Retrieving the LTI 1.3 Launch URL for the desired Artemis exercise. +#. Linking this URL to the Moodle course. +By following the detailed steps below, instructors can integrate individual Artemis exercises into their Moodle courses, enhancing the learning experience for students. + +2.1. Retrieve LTI 1.3 Launch URL from Artemis +""""""""""""""""""""""""""""""""""""""""""""" + +#. Access Course Management: Select the |course-management| to view all your courses. +#. Choose the Desired Course: From the list of available courses, select the one online course that containing the exercise you would like to link to Moodle. +#. Navigate to Course Details: Once you are inside the course settings, scroll down to the Course Details section. +#. Access LTI Configuration: Within the Course Details section, you will find an link labeled LTI Configuration. Click on this to access the LTI settings specific to the course. +#. Switch to the Exercises Tab: Inside the LTI Configuration, locate and click on the Exercises tab. This tab lists all the exercises available for the course. +#. Retrieve the LTI 1.3 Launch URL: For each exercise listed, there is an associated LTI 1.3 Launch URL. This URL is crucial for linking the exercise to Moodle. Find the exercise you wish to link and copy its LTI 1.3 Launch URL. + +.. figure:: lti/ltiexercises_list.png + :align: center + :width: 700 + :alt: LTI Exercise List + +2.2. Link exercise to Moodle +"""""""""""""""""""""""""""" + +With the LTI 1.3 Launch URL copied, you can now link the exercise in Moodle: + +#. Access the Desired Course: Log into your Moodle account and navigate to the course where you want to link the Artemis exercise. +#. Enable Edit Mode: Once inside the course, turn on the Edit Mode. This mode allows you to make changes and add resources to the course. + + .. figure:: lti/moodle_editmode.png + :align: center + :width: 700 + :alt: Moodle - Edit Course + +#. Add an External Tool: Click on the Add an activity or resource button, which brings up a list of available activities and resources. From this list, select the External tool option. + + .. figure:: lti/moodle_add_external_tool.png + :align: center + :width: 700 + :alt: Moodle - Add External Tool + +#. Enter the LTI 1.3 Launch URL: In the settings for the external tool, you will find a field labeled Resource URL. Paste the previously copied LTI 1.3 Launch URL from Artemis into this field. +#. Save and Finalize: After entering the URL, click on the Save and return to course button to finalize the addition. The linked Artemis exercise should now be accessible directly from the Moodle course. + +.. figure:: lti/moodle_add_external_tool_page.png + :align: center + :width: 700 + :alt: Moodle - Add External Tool Page + + +LTI 1.3 Student Guide +--------------------------- +For students, the integration of Artemis with Moodle via LTI 1.3 offers a streamlined experience to access and participate in Artemis exercises directly from the Moodle platform. The key steps involved are: + +#. Starting an Artemis Exercise: Students can easily access their Moodle courses and find the linked Artemis exercises. Clicking on these links will open the Artemis exercise page right within Moodle, providing a smooth transition. +#. First-Time Users: If you are accessing an Artemis exercise for the first time, you will receive a unique password. It is essential to note this password down as it will be required for future Artemis sessions. +#. Viewing Grades and Feedback: Beyond just participating, students can also view their grades and feedback for any evaluated Artemis exercises, all within the Moodle environment. This ensures that students have a one-stop platform to engage with exercises and track their performance. + +By following this guide, students can make the most of the integrated learning experience offered by Artemis and Moodle. + +1. Start Artemis Exercise through Moodle +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here is a step-by-step guide on how students can start an Artemis exercise through Moodle: + +How to Start an Exercise +"""""""""""""""""""""""" + +#. Access the Moodle Course: Log into your Moodle account and navigate to the specific course containing the linked Artemis exercise. +#. Select the Artemis Exercise: Within the course content, locate and click on the external Artemis exercise you wish to participate in. +#. Launch Artemis from Moodle: Upon selecting the exercise, the Artemis exercise page will open in a frame within Moodle, ensuring a seamless transition between the two platforms. +#. Participate Artemis Exercise: Students can now participate in the Artemis exercise, submit their responses, and receive real-time feedback. + +.. figure:: lti/moodle_artemis_progex.png + :align: center + :width: 700 + :alt: Moodle - Artemis Programming Exercise + +2. First Time Users +^^^^^^^^^^^^^^^^^^^ +If a student is participating in an Artemis exercise for the first time, a pop-up will appear. The pop-up will display a uniquely generated password for the student. This password will be required for future sign-ins to Artemis. It is crucial to copy this password and store it in a safe and accessible location. + +.. figure:: lti/moodle_password_popup.png + :align: center + :width: 700 + :alt: Moodle - Password Pop-up + +3. Viewing Grades and Feedback +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +In addition to participating in exercises, students can also view their grades and feedback for evaluated Artemis exercises directly within Moodle. +This integration ensures that students have a centralized location to track their performance and receive constructive feedback. + +.. |course-management| image:: exercises/general/course-management.png +.. |course_edit| image:: courses/customizable/buttons/course_edit.png diff --git a/docs/user/lti/enable_onlinecourse.png b/docs/user/lti/enable_onlinecourse.png new file mode 100644 index 0000000000000000000000000000000000000000..ee47fa2cadff2e9264d3dfffc940045e5c0195a0 GIT binary patch literal 47496 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 literal 0 HcmV?d00001 diff --git a/docs/user/lti/lticonfiguration_link.png b/docs/user/lti/lticonfiguration_link.png new file mode 100644 index 0000000000000000000000000000000000000000..7dfdba10c49cd7101adc6cc6e7d7cad4f9d30ad4 GIT binary patch literal 27089 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

HFE4U;OBvCmgTIqo1^ONir;a7H=Q-*bdv3^L;X} z`YwgwVd4q-7S{85(st@M!7a>pc$mopcPMmbklx>R+OpbUyD~L%{p56?7^C^pPCx-A z(giWEDp%}7>bd=ORBX^b4Fz!JXCUnOM%#V2@)1(qZ*;f|7a>k3OdL^e7q*}k?LPE$ zFQxB5%^x=TC%f}KA3gd=^5uUXf&MpS%2#1X%JR6c18NAW5!e7AxvZ^I(rC$*XH-7? zYImxkds~ z;L7kK$(~yOzJe0@)e?>OOT`qO$E6op1k5#oscLtVXB0wmVyJ||;GV>Y>sMF~s>d>))*9IsX53IutA z-$)hF;kUMxu!Xy21NfXi`)XHsk*xT3noahsqB}7Q#(w!Kpt;1#$SHBQ3%~c9LX&jU z7cc_}up#?)EEjvz*+E-fC|^0l6s~T#C`=mc#p(mSMEaIAfvcIo?S0EEa|>}jkAVwG zH#Nf~pM-~a%nfb!e`IU*3)2xfa%hhN@_psOOkQdqZO1=JuPq~?-Y-h_jj56~QbtRo z1cT)AOg5JATI$D9;FL@!HfFN-i&yJ25dc3uJVCO{{oq1Ub27v8ug^GZ1+2gOX**P< zzCe3>tQ=0LP^(bzBn!)}5(0>+a=!5<(K~N28M*<+l1{ML6}ZlizUX!INlorYO%2?4 zm^AbPNu`*6b*!|E$GK-y*zQ_zQ}dZ0tR8iFrLttxHl)M5n?k#cSupMA{<3 zELkduFNmj#k>(Lb1qRHp;mWKn+@4|dmL)B4x$PrB+4pPhOZS%xWQw;tz1l{quY0%f z-EX6|jhQbAmO*5L>X+*QQf>9-a3nn;hn2HzkzQwHsjQ%gIvkDU7#J8HZ)@l5Vbm0Q z)_#jnI)!UiEnF9A&JXi0Hq!;n#qFo!)3?De3~&6mk*(ly|Dbd6ar7EHEAkZ*wn03_ z2am&<6)#ukZd5RX<70x9tbz<*bC^Q(`OpV=->$;M{{g}mDD?MrBUar??|0*+3;IZa!HPd$E_|u zPc0vci-&j5phoqmo5S!2SH}{90PF!U!Y?IQCu9Yp?dHXSF!cbljNM%4lnZlDk|PD_BfBpjlYE1yScGCNZzcS@-}!z zVLyC};VoEWTN7t!DB1FEbrE3nLN)V!0!6-m9e*xXIJypF?=$dT7bz1WQ*fsDgi|hn z*_DbPppCbSEEo-JoQ%s81^dEc7EN>7osF?L$%@<1P}Af?aHi=7hUUFYzvhQp`lyr< z?pD`we{XuEZ7;mflIz*YszsWHu|I6)4eq-SHXHYC7$&Lih<`;`eWo3ET92I4UFUQ% zN==;?%~Pa#x1Qh0cw2N%5`qN2h|U;4faL-!iQ~OP!}tFzGap+WP0v;5e$ect@vAF& zt2JE$eXxsJoo_`1wV-@@Sq*h0x5Mn)0}t>)*~P2t{6@DWNA1)+B(;;u)kWwdIGYDk zeO4zYSI}{_UY5m3_K5j&I^2D_i^$ zmX$+!hDh;(TP$kNvA3Og<*)dRbV58@bHQ!&KfpX32j9^%0IYFwahHNjM>nb@uBpq3 zvoXYgDO=dJ`I$VuDVL=)(t_RD_2-fZ$mTkjNmF=mmSU}e$>gAjXL|RJkb~CCK4+Of z$$oQn;#^NbgYE3e8>WvfvlS-pqqxXn(+3OwkX#_>&Nc6IDn|6t@U z6gqBcl;W3#|8@G0CR;w&x7K$Hjdp2RV+&hq}V3{O9ny^)4RxC>`0!$?G$s zk85rOc~-(IMsk(di9$SDia!$0d2!Sxj80?#n8<6)Pt!|UvR%+i;Tqg^HS0}P?W0W?^foa??b)O1lL6PPhy(m#6iX@mqFP*lQXj%Qmmoo85x(I`aoPok)piHq$0$@_-0YA4u&mfA1gPfIJ>$4Xn)- zkx0M6_@id*CPd(hAHy_mvHRv(NK9L~0yEEzUs1}Gw}E_5w&g!CSLdwT2 zV(>6A1Xcfe;=8KsKgPX2*pu2{o)vxfG5-w1q`gcLZ;cMr)=U-Hq~KQ7>!=3BBS#V< zwG#{NvV?d!62Qy|9Xt|o zdVm{~+4NZFVktX#t6cG)0iOR&*!w>g9b?7dt8+ce{$4xTASurS28U~(8FnVl9ZpMu z7d1iz8Mfhj)gVHyz;@xSm5-v{Mu8}L4QRqBL^?Nn$#8pl&7{sr=h+*=p(A4ZU~kV_ z@B=Jw_-Tu{#B|U~L09z)a3lR(jxIk(&!VBK>+H_PBTx+`G16^-_lb`A@FGn)w)2gK zT=VOra*%C}$ZZf{vV%Cp;f%dFBt~ri&qf&tXHs)Hxy`Y?4LGX`B~V)s{?cT5N3fbx zveS#wn8|t!yl>xN;bcs`ZwUh7(t6Yf`o^;U6-X9LvH+e01&^|EiHF5etm?BIOiCRN zh|kNJ`UhrihX88_hb)oiKXJML)Z+i2qW*Z`k8a5mx~co`V<)A4r@NhBa2b*!d$>H2 z9^^P9E~YuZ>5r+v)J7r--aih6d3dJ!?B=ZOS#llh?pAX(-`}eD@@enX9q62oF~d%s zwTm=b%S+WgVDPVMhXdraz6LQIah<|7c>6CX?_6>=j@ls;^=i80PiQBbgAlRV7QlTe zk6c!q{SE4Jkh%KMeB7?QN_=vaZCo> zPO3KshkY=l%if9N$c z!3Lc+w6oTS&gLm_UvwFdf%KkdS%;Ct*At#5)D^G=MfHK8)>C`_Nc&oWge{_Z>Va|&NMp+Pe~`%|qysNANd+(Jv? zLGevBE(K{Q3#e-AmkY+vXks{>c9%9m}TR=??_o+ED7Fje<&AO$jgOnqbQ+hTMqL-T|6t2!^aoxnWwtvzFfjvKzMgi~n#K7RTeK{}+2%n_u#eU0eUKCh-~3XtRJ{eD`Mj ze|7<5A<=^HOr`12mb!b;q(3lO%#JVb+4$pIxr~KGxW8cHa@xvAgfzuhex&_w|R*t&)nBJRYt>V_vrs#;RYZhKq>&)S+*oB z&&$+_0mdSr9ICEd2zI%`AAqG>H9+K10dSlIN1nkQsFKUwdYEG#PN$%;G@g7pynPx+ zOC%LMZeckk^&ZN|SVe@eRN3hm$c!>y^-|7l%&O@OYnoW_zYgv}s2*}obF>f)zmUXIonmT$MS3tT`1REcO4ysw zIEV!O#mXNQ3GT4EPKz4;8JrtodWSv;06JcRhSn?wHz8RygSL=tn-qpl&XpusoHj_H z_>X~y>ZfkeG#@Xu!~O+ZwEPU}y*swXu_F6c+I@g0Vr+M9vb!Od2X%oHyQPBgFqs&V zsN&~Xx8zD`ZfGx063v#R5cz6Ob~ek6CwYqp_B6f6w2UuFgQ?c&fC#*i|L_Rnncy=D z3fHS148xp=B%kex^tze9$NfX4JO2pi=kvO{yPpPOKenzmUhjRgzUzKr1DKuX;vC;2%6LP{E@KmRDjF%7D6Wu<;LFbF7GWfRZ!RM+^E6!39mHx3EQT2 z8UK0*0$m>q_mWf9PB}s2=aGtFB@MY473SX*Hin^7WZSkTdfijqAQNF3-C+ zS0OH*TX)ORM$s?_}B~0}!HF<$~C+E8^v{e=hsrgC~%Lc1w7`l|o za6w^k*S_w%pQrJ2QDs*YDL(%VucuApg3JtG8v&LtCYJqt{G<=Zyvx6V`rHnKsD_KK z$U1HROM#>Ye5|FhXVD%v{(vu__$y(LyKka<8`HPRW3ai7TmKu@3*xe1LxLKm1X~66 zrifFvWb&ToWQRBhNAq76k~NDec~Rx(UOn(_u4vNQgmgioRc@*Ll?$7;ol4|qBrC;u z^&h8)O`BUE_nIsg6qV*|pN8p#7Ym0z-_Ca^_#^}vkiO-LAQ~ zqF9lb&L(GL9?`n9F|357z9%UUC226Pj*sWQXkmgZ6T1JGeX%y;%BP>-e|lrmi>I_= zlMC1fD>xcSiIuGR(?9#xKjkuL{UwU(ETv_kS*36xY#PcC6-`fYw>;g|1QKUUmSFma zBt%-!y-y5so;iK5X(^Hp2cKHi^T$LzM}Ar|(uR z3>I-iNWcN{)B33r$)U)A@_FCs*;CuIiituh#zB4cEQR!fVZ$BDJ)&Pt9)We_A3F3h zHBJV&Z}Eg?Dre!53#SL@*w|3*kh?S^zW?78p|_J^yPMB<>TCCzw<9LyXsBMD*zPx4 zOrwIRZ3VS=0KlCe)rZQAVts3imxeiLlts^ zHrl_3x8_+AC)8VMk)|%zjOpepByr5cQc9RInhCW^GOpE27bw0WOyZ9<8U{-6(OKUr zPS#pW$CpnFYXeT%nyuTfX&|dYa~@=GlV#ixw>tuM8}Op%MFi8cd{C4VF(-?Lw?7wu z!He4Ugqun=thPTFc4$wwNSd)f%yk2l5p&X7{#Z^u`!+dhx_Zr3uK<>M9^BfL<|KS_ z-AMmAK=={QTRd*r~_FR~DKLYu0 zX@b(fzyjQPA#&a;yJ0&i-;$*lqLfhwyK9yc{ZZx6h;ecTe@&6YBFAV9(;kLd!)#(W zMzM4#NV~)1LE<~~P9yqbX9t(u3wBzG^kG#v%wv1ET5x)~rj;?9E2$}YDd3cAbP4?b zrHADAi7hQYKlc{>cgQiQOB?#*(blK;Pjwe);B7AW{ zp4Oo$GG}^UY$9hlUk3SF>YnW^g2QkIZ>IT|L7T^qzvUP?eK*KPE_K42SQw4c^H)3R z|1*BikSX|&Xa-9o5qgZz^NfiOChxxJwt2zQao*;q;j$=esUVF1lBk`%q-L(|84wp1 zfk@y=(C$Sey`gjCZ`kH8{gGIQM*oz=WJ({_lzt*zGhhsgm3`~FF0R--+s$6?5qyZl zi>Tk~I3)uT4aeu=m!p?9!}xZ-{B=ySqxI)0zbv!VCB@5F)+j%=m2jwjho6O~V1(sl zx8lJ1BBJs7gT3ratr|b$OK6m1$1qIiTOc=cDC%3woT)fLUk2i)Fo|Ij|C>i*;Q6~p z;u8bvO@W;+dGfqsx6Be@>`e5j`k!l1P38h+I@)j44^qB?7w$PZQhUL?#4R)aWVkVNHSXgKN<Yc_M z=E6UHtWF#fI4WlpFdG+mW}5qg>)UZ=*z{^Ef&%K}3H(V@xPZ?ff-5TnRJlVpC=~8q z4=9+Uyl}>($S<=%;Lyy>}<}9+bo6c3|CngOQ=b6`oGM4=6!Gmasc%UMuEMHI*Q`*YYyd3l6WOf8RHKnl{4p0BP zsvF|dxIW50^D+}n*8vV8F|$Mt60Sg`$!@(mmw^nV+MU}Vas3JycSx}~gp+F;U+Cy` z$|x1~TE`Vf5q2W*A_OOlC7hF&ri`Ooeib%;Myp_Jsi2F{KmvsbFtQ5>MKKh4PtC<7ugzteB>Wi0_1BwEPxkM@2~D7{#6-Eftcf9Vu2(Efo-Ha7YV^Yj_HZ8BzCL!p(4&Fl&lGY+^T|>0ulVoa#T_8B74wQizT;zwq z1LrcSHp~waj4SI{qC@o8AA9pf8d}_Zq#O3upPdGb$2R&XA1V~k3tIReQKgnLh^3NZ z{%$|+>3lUuHI3=>wl7@yb%8S{t^@Y?lwYsj0F#b2R>dZfb@rGd>5>Ki-O^Kg>vsor zJ6zL()DkDt6UYlu^Bxo->lYqT8(<(s0U>!1)&|7rM%azNT&->%ti*K73QW~DJrTFe zk+HUuGw&++-pM-M40k|RqI7JNG!i9Ja>1sT6#+4YqKlQn==IvEJ%{6(2EQ-T_YMc~ z`)8i?oaC^GF8}VA7NncJ3Y+Vg%|bdEcT{<5x5I|Czn?}Xb+{!m;DBkA8&B?hD^X}@ z9oT96*8e(Jpet-}O{qTb$F(ng_P=fQ-Tqa>d<{9`L%!g#wOMNv~Br7P)E!NZ$b^83ncDRGo z{M)^t`-;0GFN(n92QBwOl{Mv>W9QXW$4lq`#B@FWm5^U!9ukA;%6sV8)9*wi|JiX3 z(scpQ_hObH)~mQ-<4nX```(vqd||wEkt9lZJu8;y*g2@H14A6w+gP&|jt&UoH`{LS zs*4oTfIen-j=utdUbvqv;AAY0(hcwQy7b3UQ2%EN!{~Ldvl}mxVCFXfc)wh5$acO+o4NW? zJk{Th_H5F*P~g?Vv4SnHs@OkgqdR2=H)=#M%^!z$ce#D7|i zw;4&O?~uUcUP@0}cL$Vt@j%kLfZ{`L*LAO`*g+D^TChuP3b!_y{`X6ZXB5n~frf&z z;1u;Y>c*zaZ;yMwC4~WiPK7gIuE9lyV*eDx+kW@sfq;%5t}@D`j@;z#>KLGvmicVH zbe6f%>c#+ji*4%x{gf@4B}a8_iPEe(G?Jva7q8Z?i$G3Cqh+XJ6WBL zRb85{*e*^e1f0?uJf;p-3E=<|g~;<2t1i)!Ux!LqoNRpj=_j%D)ud7+0cqzTA(sPh^JCMI;ApUn!mpRsrLA>T z6iN3q_l5D8h_3}s;oXh7PYbGE1J~zQ-Gwq*eG%+<|1_3v|8_sDg1bF{OnGm>`Kd}- zxV+8JQ={y=-`+V6O2P!FGQ_%Wpu?SrB?=NeK6_WvX+GjT1Mm?XpUAss#p1I=q&h>q z|FV5zcjZc^Oc@D3xB5JH3m3Wh)jH9MxErb%z%YZW&tcYLU}>0o^NQvc9oM#S+(lam zHmVX_=nu>ujQuNV#4M`SX?ebLDu;#}*_Mn~ePpT?pd)A9IT%>PQ_cdU4FnODcs)|Q zDa?teaEMP@Ykq5QT1RsFO(<8yy?Oeq#Rn#WX%c9F8AJ|eo>YU5hytAfoy4zTELWV> z;EDY!WsfYmVbcjBSpi@1bY*dE3Xs4>HV*u+P&NZ*8KZpiF^oyznWkMSqcqRj`R?~m zK}K9*5&PXQ%v6>iiFK1*%{gIguxI=AJ8-}X1s_M{4K#~@kqJydk1X5%<-dTpJ96s( zu_ihWTFHw7*$G@)y%Iyifya6@DaLBR6s~}Iod@jDmQEsl1hX=JWr{ekG4zj8m>j@j zS{ba^e0B4=M9tGbnm*uvg)HMra^fs2D;q-^fZJ7sROPQIl|87emO_PeX?vOM826W5 z6a_}Zrw16*zdF8(N_rZWw43<=0I5xmXPsu2hhIMlDixb&A=zpn!jR@8X|7JmnwM$Y zn|@NQKuS|-g#a&T63c`Q)h#y~#!^h1ZA1vY6UFL$E16==ZiPlWHiWm?$5C6!ALxLC z6dy{WPe)tXQ$0#{2kbndiw!#Z4;kBESfB|m9?yEOI}@LG7L9%d4L00h7easvgSe^t zgBudgx_q9k&9AR9{m|qmDE32>retaGZ2a&jBy#n%Jzzi!3)sif$3nRZw_Kw!_Zsly z%txDbM0l|<70b&VES>3{#1$SwX}^;`h`QT6^_ z0G@axN3m3()mjz>%dHqN+32;y_06t8NM5J}*1iMuS|-y#e5}pc#csnY`&L1kroRDk zD-LNhNS}B%Hakz?r-f(UTNALcogt@=V-k3Bm$!f*scscWmG9Q|QR?3H_-Xo%ZS8J@I@;K;!h;N%NuWDR=B#EK^@Af(;oUtjY>2 zlBGbz^_G`^AncW{7JB7y{fqILp>-EFH${roE!a%$^Ud71KCmONB=B4js@iRrL+Q1bTg-OT4DKPpfRdL#vr%=m zrAHh)M5E?GkUdoJoyFz_cmC3HG_y6*#@|ZTVY&LY|77FYgN9#*?}RqUq{kC{3w~gB zY$f-gjE?qSRV93$IqM`ZVD!C=pN$2zev)B8t6`cXzNy9@URyvPxyC>3-qE94S#y2C zb^7?^R=+;f8(`nWV4ySD?^3pKS;?^d zkZZCd2FWeuhW0!V6G>o2j?@QLHpT8PtUG`}OfZmy1ll6Tt%n6R^~_tj4y zX#*dL%y%-@qhD-LG5kvWQlH-8XQRjK<>5W#ra?SMOOjsJH#rfD4r5Y=LVI{^9oObT zqiyVK{=BZ}TsN!Q0_n2xPHkKuOw!u!AY(Qs$bdNKw!exwY5CTt{e`q%PN*fLn8t?q zzG1$CjZO3EeNT^G_X=6FMGd!tv#sRvhBuEB6`!&2fVPVZSoeFnwcLp~5@Q-T~?m$(N1}v_tVc47E_YS(ZGyxJaSfz+Wf-uygE1 z>OI_upZh{O#}_9`=xo+!uI}m%6?T(cS(rVACGX{&o;pY9Wa+Jjxjwy_0 z$tjF|V%GZLLRA&=cWKXnnxLl7?VPO1-Cot+Re9cO-60zH++)OK0W=6K-s}!&#yzq% zcy^A*Po**X6%XVVxgEg`f6jXk|HGEy~%cr=9Bi{ zE%ECW0UaKT$pv`Zg_~!ifnYWv_+XKQ5Hag0W0H+Pu@EX|z^QqvzwBkYj*HCxW`6DA z*|ePYo1>$?dmoKsueK#UDtUH(M@U5K=D;H6K^-FLg_~@VytOBvpb*5+Ube_4d*SK8 zbdHl;^H+*wvkatp;FpCRLPxSaA%zVCn(0Sg<~tFea|C>{4JqH+(7iNXReiwDSjB%R zZZPN}lkr`BiS^<8OODaa6P8&V>9EK4Kz>)uVpiD?(@{6Zc3#P`{aq_L-mKcN)1bPb zlYO-<|AMwKf3=s5S4Hv6hbr=?0$=5wzJbJ;M_%*0T!)(^{j_K`a%neE&dj$7rdvhc0W>ovX#+P z=etK)I--}Bjoa$6LsuRKngKMc(A4hqyD=w5qDjp=b3w^A*taEnH00Fp)$Y}UknE+0 zN4QzOG{4}t)UFilJJIyq2lcaS4jscu0x0;B0JJVcv3ygwT`8GWJT@`qf*OJ`_y|Dx zL5VaQ&fkr0hYOutE6o4#Gl|M{`^bC60NrwT1apfKT^}`J+!QJ!mvpRY9p`uCBHBT> zuhN@Wl#Qf&F^KPe6ved87|WV#>r6|V<7fJ`w|&yUjLXfBzRLi|d-q?!kpFGT{v$!$ zzf&NaiE6}qt?B=Q8V-Deg(!YRvkXhY??IwYv? zwYc0BThAAKWlny@gl)Is85t0fR=oQ`Z9O;h`%SQxyi2!$cI$3^JWO&b_lYwyvq1QP z4duM?9;2n>yvwJodYS!v&|k*n@HrKjM)c58$hSHlNy}&dx$nOKy?`E0tHiN-s}U=) zt2F-#;OAxR5Aqg`h@_RrWRyhddu6AD>VQjP*4 z_kIxISk#yZ7wNDw-Y7OW&FJbKzzEi4v|J6!S9eX6k9oV>x0!$c&jwpIFtqB~22hWO z6sW!E!-|9H<3=6VU^+nR>{K;wiCyGX0`FBg3%sKbDLhsi3ld4bH3^!eZMi6)b_(bU z8UK^O^dCP%{}bt;Z4`Yf=aO87J9Zp!i)$||bCVxYSIsxcdN3|1rIJ=#6s09gMXj`k zj*;htOFg4cpnQr}e``P_0Ho2_sm?2{mRdRam~W)wrpJ=a%X~mf#!|K;%v78|`Os!% zY-8hW?0w+0GRwy*O1?7iXN|yhaTfBoxL4!7FN|L#U$QtEAGYY%UHP=mBL;9(A5J%l zcNG+y6|2XZ?U#oSH$?Jl6@FE0yZ8MG2%tdX7E5nt-sY@#`C6s`ENfT7Rycz+XEW_u z>>A>AFSxx8()77S9U5%bIItxnzwZqVB^<6jmmKAe5)Qw1WEW1d@FE6V;kVHb?HJ%i z(lP~@(jMWuaC{+x9VY9e2a|rhnK9JaT^C8Otjw|yW}xxwic4}5^Cz%Rf&q3Z3}Gj} z^c4=1Y%GM?SSlT_?W-BG^#~)2OgTt6eA2*;ME=JXdjtAVRprc{QiOEmrz=PODyyff zr*^(=sw|R$*j-dYQ1$@+BxL-Ih?EQ=%yLl*Pt6)v0Qz@NcBJrinz4_QVLIN9?L|y! zv*(?OE+o6t-LKeJ*Yg=NZ(M>R7A+mWciDTz?7<}MYt*7A8{+%#)2?a(JM{tn<^G*f z#9$OXhsD{XPQUu=>zSqXzgFuyFJ|IF*Q#X*EH2EY6PPn-{4G1;z-pxaBQX3wF`=W= z;;I`9^rD<2(vo4)`B~=w@Q$bTu$&%MzP@1Nmu2J;ON#|vlK`XX1T&dH3wYr+`D#6_ zsdhVp5K9|MiTEMf7<rZ zmcYFn*k~d87OqqUMIO8c9$q0WkU}3a&a4XfuEkiNCa?o^?p;@%jMw@pu1PP$~6`sA91)7^aC>4$J5x`5h#4MzyUM?y(Dl$##jny(~+LSRX02Z z|FjQ+d1zMvFM?Z&q+dCyO}piVBZYl9c7K8fn@94}utul-waL|Oo`_!|aJ9>d6i}q@ zeJJU5F#6;B9K=#%OiBj55T)bIAh*Bj(n(j?lt6p3Lzut^`lxGxVkUgce}n)Qt4wBJ z)_bL=ad-Wb!pYjEMTv8hObBN%G`fPGuxVW6$TSq2gn%MxAhl{;)e2+hoYcpVW92Op zN(aQZRvY_%!FzY_KCccq6K&()$xT5_;3^Ju+-@zHczoZeZCS!spH%CtS(}?vqOZB% zU0yZ~+!CFBdSZtkCP0%T^YLSA>#T3=hC4iV8#<{w>rqI!kbGG?3UD^-`HN>U+3n2O zyWQnq|9%%~yPmK}yu601}0P_?+)zUj?tLt9Xs*o!;e z0qXP2JbJ2Hpb0I+Bp-ae#*h2naU%S){1?#iDJY9h+Im+gNgT=wd*0_zy=3bANiEkJ zEX#_C7WEaVu1_`0eQgx%+sMzW1RFv(IIHArjF8JK`javq_B@vOn4O`Y>`)q)g>*LN znC~s-&d5Y=ycvQKd?z2ee~+Z!Kq{72_K|9<{>==)S60XhRql3}r-$Co6!#B9JTLLP z8Dq(7%hur+mKN2t6R=%eWFv3mwh83$SIkPwzpk>jSEmOX8kEc+bpO6HK!@8~`J7xO zZJ2pvPZovGpa)Z$YY=Y3n}uDpSuK~v$^)7(Hl^2FSJ8NqR7W$Y_Q|JS0-GcfZ3}>i zy@pqxRvmNu?&lux@61v-ir&uMWI=$|@l+Z`zcM>uzzNLNh6gg%lV2@ETMKn)P5S?M z4yunrhn%4QNQVD!J3LMIGGSbSN+6bYq>__iQ?;X@dPWjdm6)<6=*otn4D=O9mk=ZxbevLmO#f5vWlk<4l-Vr!LmjnX6Y=L-n1jQyZFp z5H|WJ3|jptk=35n#k-CZk{|SKRyp3rA^~${6hpgq5Y)mYgCXgp zF?cA<5i-o5I>pY`_<{9A_I;c5!;Vf3BVU&DCw#6K8sKx$4E`5d8V>a59$55$g|?L6 zDyH-xZoF+`!_Pfdsm`=X$hx$D*L5Y-*;wvVT6v@Lb9Yx-Kf$A7S|RpC8dfc}IdEM` z{?E#ysHTjPrd?srTwX3xyc+|5VW*!k{9BANlKklI=ffPCgAbZl7&1r8e)d}xTtEG! zyvh7=$|c*;KeAM#?V@0kOWh*}XVn7aG_o!|Ni_T+rqyHTcwEFFx$=+nZNZ+!nAA-B z7=hKw_aKhU>1$qjdt+sAzxqIiCxe3$4`bJQRD+FBa}7ItF3%>dHXouJ&tO;6m|60`pvJE`vfZo++{&Qz$CFUudwW39u`iOG z%APZz+CDPWKH78jx|`YlDC4&Rb>v6+D|VyBO;>pZUI=h$!bO_6bxTe4M?Wj>&7OI@ z38SOC3A89mYXb6P0kOqtp`vTYWT*UY-C)_7_4(0OzAYywU86Zx7~$M?(G4}7@5r^j z9n$fL(c1gTyh?c~>7L36tCO);aAola#KtrDK~Llcr#fvcHE0{B-pbV;vx@SCr6 z3l2Os+s=hwXqPv@50t{^RqCW`49WUo$0Td(!1u{TFaeH#Ini?E=e~Q0*r!7!nRdVQ zN3kz~<5`EOVL@D167D>)7AeGRG0tiZFXGaZ2x{_%220Jk zIDStTI%7_W@9NG$OXL)gdJZD2k=0F27nWF+4YZ+)!*gvR;_c@WE8WtDduP5ZSQ~Lx zmrM+UZf{=e+?BVjWpP=*3|x)gFNv2Ado9&^Aut+ZO{^-wW*OJ~o#70Q(q4c&nO$bpyk`O`!B-9WjB$SZkZoKE-=l-}q&U5Z_|0jDV-}mje ztaq)o8&^~pVw=>gOtlmBt`n*uS?}TGPprC$DUtRxrGAON&(E=N4k#B>46MmOv3sLr zQ%>Rom0C;P+=lAhm8Wm!vK@fX)87&yH`2FM-M@j0HlRUFfK`bF$neoOXoC5;?|oQxTF{7@z3 zboY`~R{TuMJ=52dWN;#&#I5Cu=xP*(gP|stLi<@2ga=+4A@0#`@+I*NGZvy2l7`^V zFPDB$#|?+rPgHU4x4@)LAi4`{LO{z!0@wkOzwZB@dF~t#4DSrbhFiAZlxjg<2V&!w zzkmc^F&aBDs0yU%+JCd79s!gihpiI#P{KpjqbMBKQk&zzI3PT1X9LhEbH6ve5zhcz z)u9?-aR8P1v%}D{X+yqv6oUGvWLXs`Uf}>0vF#N=J~=XD4NSQ=B!60%D2@aiD(b60 z0#x)vQFQpBQhUaX3<%zMo`5vIUN|Q5_rrqd@-*aV`C|9k^|{wY6cMbzgz$L(J#P++!<{>PATv4kqN!J4ET! zKm0SnOc+UC2(z~$chxwvW;=w0g~FLv@Lz#kz%T)3|KI23k73OK;lH)l(MU)4X&u(H z6^4)X-JscKNj-|{*2@$?bUl@A+nc5<401;fL#3MvQ1)2Q%GAt)_li5y6qXVQGNw}?&|w?jDt?f;WEUp3 z(K}%R76c7As~-^dW%uy!)};ceV{D+Jq`vF(WyZn;J&I_iJw=jW)F=kv;PKxx$BAz( zF}zw7AVg6G(2$uoO5=X!&T@(cSA&`p(_g(y)z`?Z0D8P&=4sQ0hHoWebXK0OM*xBb z3M?e}Z#`SZznS3=UqJ5NPtpy17~#-O3k1%~E95~@&eiAJt^JW6(sfH;+t1Z{g|@Ds zY@N@W2(CGK1q?3CQEDQQ?a2y#e_7fz8Q8FkiIf5XPU*hIi9zC}al3VxYmdX!vBdQL zcUiX6tVY8N@SKg!2VPeOwu3c`GNQw4#r)2jpc4fVV^OyVmp@y;3_P5D&1RA7fqS~6 z)V%Ig+h6n4E(RM!0Z-Z`5-^;L$iAmKw5`49={5Y&!HXNVxFV4>$j~&;329@2l9nZ+0zKc zuFHUs1at0%X(tL_I7(~% zTAYH0&WQSibgW4IaOBHk>*t;K9m!xt7>leRm zrH@(!Bt<+ASZoK->vJ>FqOxKati=1YQv8&^io^bp9C<=_H=9n>15Ug5PM)9iY9d6O z>o^)qK+(%>!E}qM>CrX`^^i!mj&4I$Q)sq(xg*dbK6aP@Wa8bR)bOwG4t3)G?TL1}$`(WDSjf(lHM)H9Hg9c2hdi$y`JWfj@75I%>f7N>ja^i&C(q zyjqLwdfAx0uEvm}M?|&M_Zlur13j^j_j z?Fav@NhmvpIkLp(xM&Awf^(Kf2h2*j4(|hEbjQ4LYz5vdb+~h{tA{Gi zJHQN3zJ#NfUcWvGj_Yec?-YJ6BQ@t(VSs6}Q$hkb@UTT`THsJ8pI0|{wuUsVx)Z=Rj-U+m^z1O# zO{{}i`T^|g4P={pqe6qQV8A-~vE=IhL$_}F23;7-jYU+yuBY_QWylg~eYskkd)f2U zdNq>|ce~x#+JLNRcZa%1Y5Uj;xWpEs$&>pPJsGLeKD2!52_S*FG_8%qIxi0*eIyS2Ao-{^NyF-KYyPdMo1*!y-Clxu~6MWxSaap+xg0Y-Q*R=kDu0fZ*POb zN{PTs+1hBW1<*oeF1I*}$*wl3y^aDOvOnTFShB=BBPqsi?#xGD9*ExKt9toI8rB2x zfh7TG^OV4?+g_C{Ab|m^-6c!x(L@$U+Yses$OW0&Sr6T)`1@<_U;hp~_z^EyZw(9w zn%~9UFy_Xb0fJHq<$)+Nvr0Wv()IYXAGgPir*EH8)w>f1LD!s}v0){M-etbdBvPk^46eZ$+oyyxN(e;^SffD(nz**inpXdt00dj{+ zVNICLfj)%p^5-waE^-${$IsOX@H9Ts=I7ulhIG}kIS^7eU5hFWv)pOiR{BmYEgu0a zZamH&9U#ob;(3(qb+73Mw=)l`8h;W{4B)&Y*?{Y=^;5K8TsiF^;K-pB>XB9?z;cg? z*5Un_!y_C3S@+u;%oUCl8|8X}niCB4n_(W!s(leGyul)>=%zA#kn z!TH^vjyu$}E2)1G{36It64^Wf%Mi%Nve`>sEt=3<>MUa=aOhwomGYA6?aX&3_`&0I zWp}T(vtY9aywHg*B+qKyhOnK@@K5|e*sI&UJd@|zDW<(eZJ_m3qO@Ih(TeIkHycgqPuAdmRp13>x}-4xbyJKc-+qcT^#=o58Jw4lfSh^UCtHA z=PQM){MqMhUO9Ct)nBNWk0;#mN2k9cC$akn8KQJBbai}9Nlw4}{4vVYfH*bYpHlnJ zW8h7QJx|vn?yiM#4lm?%%vV*>zkc1weIt=~QY17_V%l2R9l6?MyAu>;2MZpL&~2qZ z=jg6DE!UYu_DBf{kq)+P33t|H)^AYQn~k5WNOyCK9w0uE-5-RVA?b>*{dz-&H!tW_@sBr3B#%g})V) z^km}J%Hhl&9JbF5+czS3gPDOd-dD_mFiACcpaaF2LJa}u#THO-BUsPmyo&Ng{=)6q z$>DOPLhaD<8prLkH$i(02(PX|jDB|?ef`$U*VWt$@8!eBXD(YBspQXY)XbeLPtp{w zXPC|SiFt=5j7$qxV4wC2f9=BYMnL0ub|rUwlN!5wUy8S<9nhR2S>dn9FJ-S+xjPF5 zO=GKV4+w60Z^JI;>p7yQ8=KTZK7?&q8BN*w!sGSn&!%{aj~?DEWz4PvV)wYY3W&CP zIdkf!;%Y+6)RXaD4;~_GT=a;`0 zqqW%ehr;9GPS1FWd2H3zOeGfGvZ4_1Jaom1YQ}eJEDrsR6!%nNccVv`E5#8cA7>8! zXt!>oThAw*bQx68po@)dK-(5k#wrK9>*#v`2^atJV357pq3;}KM@r}o?D*)0&I&;E@&2SwR^WdE~6kaN&nMm8g#(T#8@&sv+Q#_Uj5DI)!&zkF?w*o}U z`!;1wQ$!+z8s@E+2tMYy=o0y=ywOg+8NRhtuB0FEmu|s1X~9`}@*S_ibU|{+!)e~f zKGWdD+85C$;0RT5IA{u^hwD?PrZD19hB9cNkFw)C7kvN9iADagG$7;ISlEggHst~V zsx9&bs}t2K=M=Ph|Hmh}=2ZKqaY+IeAd;1(?y6gN;mRqz%xUjgr`@*lkvyD-x~2{~ zVtLeK3$f(4LG4H8d#e`L^8;d_mAUdXRuTkxkYHeVDF7N00ndW#O%zpky1e7_mMKKL z)oWyU$F<;vyo2B&n%|{cPUmqxIu}H0KDxf{#Jw>m*@=JNA0XrJI}{rN<3$$K?q}N< zm>(Zk8%pZ&sZ%t>+hqiPGvf^BbOyIR7v+55;pZe3bHO8CV33ar5Ea8lj;tWetckKZ z`*V{HBUtBEw7+MbR)V#*TGP=~tIS6_`tBz8^VrcmW-l>zWi%Npr=QUZnlv+%-KU1f z+_tdR3k`~e*AXfeCu&8Fixi@+Cbw$qMY$IDgw=Fg#$>Hrqgly8p}Cz7+_ib4DS8sA zE$BGNTVE)aSv;jIP5S5-^eM^88SQ3$chp$Xw=tp>^J-qaRCGHu(ULat*<4Lh6NZEB zS+F&k{%H`);urP$+x0IX?)?!6{gYw}m=4`QJ5aN3-q&I$pGz_hBr<%!RH4E}i@fkd zn9YKj^>}MR;Un;DySb~~%_TVz4SCH1f4#)LFhTAzEn(_X2O+IQ2`PpTm#OMqpX;wU zcS=;i`+b9W0v@%x-`6OpF9XpcAIO~k?5!&MGFx(qzJzW8^|!DXh0exi-~{myJWdny$@0H%oY+wm~V(7fJ~#rcG(-5X;wRU8FmZaGcE95pzAu)2X8 zyX$h_E0A5`w0~bVAybK4&1Wot7_Nbg%S*m$icqO%jT-feXT9m9mb@Tgf6mABY z8C<}I89Oi=Uq`l{A}jlZZ5>;8O{-@4jfI_`D14Rs`~Zy|_MVllz3Jm&`vf<)VyoBm zaXE@8F5!THLpWLpM3qi|RtD9|A!m-)=^R%A_XTG-wocp~7dL6JydnddASN1)YND3o zGs5dA9Rht36~B=#h>4V!zX@7QXeIBan~>fz*%{!H>w3-~U6UUC(KsA{bz+xQ0ed2n zDoDg=>-V=sG3nyA(>s^K+-HnpO6EHx3BC_kLneVu>3IPLnVb*0-QdtCA*AS+3T5_7 zk^OWo5Vxp9%eD=Hc1jH2c&2FRgE-Qd_|gZ>npb&#wvqWl3m>5Ppt1(q*C&)rVCNEa zFQ+AvED1^soAWZ}woq0XCC_JX3GmslZ=3XceB2o(TELGyiJNu#3cM#F%5bk;-`-w| zOI)VnV3u6u@q}M*-HM5pNckJdYSHBroZp9xW>5B!POBt*)Nb28xslD#QX6dsb>}A+ zD%UMoh~*#0k(SE4bj)pQWTV#Eqp_t$7UfrDwho9HD}Sc_vF~zWIR6G3ZudZOoNp!JsJxh;%?EMx{AdQi7SA_hH~=>hu}?sM(mSwmFuPs;IB= z8#w3v5+k2L@Y`rw{s(dkD5^hdF%*Cyx_On;Ay;kVNPS5vMR2(PY+j$@lRUrR?Oe=h zC+`vT`O>t-UhBxn;MsN8Ki2t3L}Ku7d&+r)!_^MHwWyH%tyzh4GTHo1DD%)YKZPyK9m-ng z;@r}0rm-gu|9ChJ-^nlh*t+em%mGo4wNeusC}QBb6qQ zVVRCra?p4m{AUJ_gk5m?sjtRZ3LaE3{*)1~tBk0ko4K~rKhHm38if3ul6|r$TR8i5 zTNv*7jaKnsfm~>4PHl{iZwyqUE(;|H$G-5jeDs_P|FWqUa%RkCcBoviG0k<#=zKw? zVZHZR8QOadka>1gNMdexiayEG+Fr^jr;2op#qn=#oVJ%r^Q1i~{Oqj~QfDm2`6jxA z(?s1Qgm0x?(PwP>Lj*``@Q!`_HAwBp+|X?0KP0`_6jR9R1|U8%lbzNWB@Hvc0V(R- zGNY*3PJxA7eq(qa|C{(uMtj(sqCW*kO3U44F_qN{`v%Ndi*ajaLP9Dlp^T@BBS$=> zk%bes-M#rI!Oua6$AZGE8m1CL!aVrWW-uek$Dnr4}L9r`} zf3QnES3-3{zwv*)IH!31kqY;%bvF+ti)d{ZcS?YuqEW?F#0XdP!}VyfB{aBv#iz%#uBI_CvDTx_ z#d#^;FP|YqKhA7GTs&FyvP@{Qz`yP8Ewqh;`+|@_t|3dKfJomHdXdt>AVzB+pQ{AR z+&@G5$Nm=aq0T3oAcFVoC*1PB00Bjt!1`&!;mT5$pNJ2(7Q|oW-O74esO)ob#r6F% z$EdM3KIs%p26DDagOl8RlezN-Mfyspx@9JQ zKqD&S*l?GvJ96iT|cW>aKQd(bcZC8|MfAobX<6Pq9W4BGnML9gBy*afpf0o9pP|M9jP* zx;aGBmm=Ar{0GLZKU``w5&c^06XQ~@&_H-VTiRBcyCX+XS^t2c&)XMO`}mh4P6!>@ zJdq*b>O?>zvbe4zb(x!JdDj3p8a%E)K_y0f@$Fg&ou7U3yTnPobfYR~trI7bHt!*} z*?DPyFkx#csV%?v381}mB5aYe1nSIouKfdj{mABre+5>*RRrbpe;8VgK8CVDDFKb; O5i=9Z-)oKB{{9~)ct;cf literal 0 HcmV?d00001 diff --git a/docs/user/lti/lticonfiguration_tab.png b/docs/user/lti/lticonfiguration_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d94a5924a4e4f4091596178a52801da9c2d948 GIT binary patch literal 104898 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

Bv| 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 J{^)b_e*jSAvaSFC literal 0 HcmV?d00001 diff --git a/docs/user/lti/ltiexercises_list.png b/docs/user/lti/ltiexercises_list.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0a0ea8c3fb6911be2521c8784e642c63c3ec1a GIT binary patch literal 88225 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%0A`x+$jT8{R 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 literal 0 HcmV?d00001 diff --git a/docs/user/lti/moodle_add_external_tool_page.png b/docs/user/lti/moodle_add_external_tool_page.png new file mode 100644 index 0000000000000000000000000000000000000000..7431c3b2432ab15298e53e740cd870f4a3da6e7f GIT binary patch literal 73634 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 literal 0 HcmV?d00001 diff --git a/docs/user/lti/moodle_editmode.png b/docs/user/lti/moodle_editmode.png new file mode 100644 index 0000000000000000000000000000000000000000..65f3a13bd05759e6254d81a5ede77a61958b55f0 GIT binary patch literal 34272 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 literal 0 HcmV?d00001 diff --git a/docs/user/lti/moodle_password_popup.png b/docs/user/lti/moodle_password_popup.png new file mode 100644 index 0000000000000000000000000000000000000000..a602dd96bde15a7b89d9f6d091fcdfca56da12dd GIT binary patch literal 122220 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 literal 0 HcmV?d00001

i3Wz$i}E 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ℑNq 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