From 681abbd5be4d0c28dd4a1ee4f2575272daed4fc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=97=B5=E5=AE=AA=E7=91=9E?= <9198107+min-xianrui@user.noreply.gitee.com> Date: Tue, 27 May 2025 16:46:03 +0800 Subject: [PATCH] add --- db/xm_examination.sql | 271 ----------------------------- ui/index.html | 2 +- ui/src/assets/css/index.scss | 2 +- ui/src/assets/css/manager.css | 10 +- ui/src/assets/imgs/bg.jpg | Bin 62673 -> 207616 bytes ui/src/assets/imgs/carousel-1.jpg | Bin 74454 -> 395413 bytes ui/src/assets/imgs/carousel-3.jpg | Bin 106481 -> 0 bytes ui/src/router/index.js | 4 +- ui/src/views/Front.vue | 6 +- ui/src/views/Login.vue | 4 +- ui/src/views/Manager.vue | 8 +- ui/src/views/front/Exam.vue | 6 +- ui/src/views/front/Home.vue | 13 +- ui/src/views/front/Score.vue | 4 +- ui/src/views/front/TestPaper.vue | 6 +- ui/src/views/manager/ExamPlan.vue | 4 +- ui/src/views/manager/Home.vue | 4 +- ui/src/views/manager/TestPaper.vue | 10 +- 18 files changed, 40 insertions(+), 314 deletions(-) delete mode 100644 db/xm_examination.sql delete mode 100644 ui/src/assets/imgs/carousel-3.jpg diff --git a/db/xm_examination.sql b/db/xm_examination.sql deleted file mode 100644 index afaff92..0000000 --- a/db/xm_examination.sql +++ /dev/null @@ -1,271 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : localhost_3306 - Source Server Type : MySQL - Source Server Version : 80013 - Source Host : localhost:3306 - Source Schema : xm_examination - - Target Server Type : MySQL - Target Server Version : 80013 - File Encoding : 65001 - - Date: 12/10/2024 22:52:44 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for admin --- ---------------------------- -DROP TABLE IF EXISTS `admin`; -CREATE TABLE `admin` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '账号', - `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像', - `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色', - `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话', - `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '管理员表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of admin --- ---------------------------- -INSERT INTO `admin` VALUES (1, 'admin', 'admin', '管理员', 'http://localhost:9090/files/download/1721114905635-柴犬.jpeg', 'ADMIN', '18899990011', 'admin2@xm.com'); - --- ---------------------------- --- Table structure for article --- ---------------------------- -DROP TABLE IF EXISTS `article`; -CREATE TABLE `article` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '帖子标题', - `img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '帖子主图', - `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '帖子内容', - `time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发布时间', - `student_id` int(10) NULL DEFAULT NULL COMMENT '学生ID', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '帖子信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of article --- ---------------------------- -INSERT INTO `article` VALUES (2, '关于学习Java枚举的笔记经验分享', 'http://localhost:9090/files/download/1728563732106-2.png', '
基于Springboot3+Vue3的在线考试系统
角色:管理员、教师、学生
功能模块:
登录注册:(已完成)
个人中心:(已完成)
修改密码:(已完成)
管理员信息:(已完成)
教师信息:(已完成)
学生信息:(已完成)
考试安排:(已完成)
题型管理:包括单选、多选、判断、填空、简答(已完成)
课程管理:(已完成)
学习交流管理:
题库管理:题库里的题目需要根据课程进行分类,不同的课程都得有对应的题库,教师可以给自己的课程题库里新增试题(已完成)
组卷:选择课程出卷时,支持随机和人工从题库里抽选题目,组成试卷
试卷预览:
成绩管理:
自动阅卷:客观题自动阅卷,主观题(简答)可以支持手动给分
前台学生:
查看考试安排、查看试卷
在线答题:试卷每种题型在线展示,供学生答题
学习交流:发布学习心得
基于Springboot3+Vue3的在线考试系统
角色:管理员、教师、学生
功能模块:
登录注册:(已完成)
个人中心:(已完成)
修改密码:(已完成)
管理员信息:(已完成)
教师信息:(已完成)
学生信息:(已完成)
考试安排:(已完成)
题型管理:包括单选、多选、判断、填空、简答(已完成)
课程管理:(已完成)
学习交流管理:
题库管理:题库里的题目需要根据课程进行分类,不同的课程都得有对应的题库,教师可以给自己的课程题库里新增试题(已完成)
组卷:选择课程出卷时,支持随机和人工从题库里抽选题目,组成试卷
试卷预览:
成绩管理:
自动阅卷:客观题自动阅卷,主观题(简答)可以支持手动给分
前台学生:
查看考试安排、查看试卷
在线答题:试卷每种题型在线展示,供学生答题
学习交流:发布学习心得
哈哈哈
呵呵呵
嘿嘿嘿
嘎嘎嘎
啦啦啦
', '2024-10-10 21:55:52', 1); -INSERT INTO `article` VALUES (7, '前端三件套html,css,js学习心得', 'http://localhost:9090/files/download/1728568566399-right.jpg', '哈哈哈
哈哈哈
嘿嘿黑
呵呵呵
嘎嘎嘎
', '2024-10-10 21:56:13', 1); - --- ---------------------------- --- Table structure for course --- ---------------------------- -DROP TABLE IF EXISTS `course`; -CREATE TABLE `course` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程名称', - `img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '课程封面', - `score` int(10) NULL DEFAULT NULL COMMENT '课程学分', - `teacher_id` int(10) NULL DEFAULT NULL COMMENT '教师ID', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '课程信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of course --- ---------------------------- -INSERT INTO `course` VALUES (2, 'Java基础入门课', 'http://localhost:9090/files/download/1728545691210-Java基础入门课程.jpg', 3, 1); -INSERT INTO `course` VALUES (3, 'Vue最新实战教程', 'http://localhost:9090/files/download/1728545950698-Vue最新教程.jpg', 3, 1); -INSERT INTO `course` VALUES (4, 'Java入学课程', 'http://localhost:9090/files/download/1728545989297-Java入学课程.jpg', 3, 2); - --- ---------------------------- --- Table structure for exam_plan --- ---------------------------- -DROP TABLE IF EXISTS `exam_plan`; -CREATE TABLE `exam_plan` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题', - `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '内容', - `time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发布时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '考试安排表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of exam_plan --- ---------------------------- -INSERT INTO `exam_plan` VALUES (1, '关于第一学期期末考试的安排', '考试时间:xxxx-xx-xx,考试地点:xxxx。注意事项:xxxx', '2024-10-10 14:21:13'); -INSERT INTO `exam_plan` VALUES (2, '关于考试考场纪律和作弊处罚措施', '本着公平公正原则,考试过程严禁作弊,请监考老师以及同学严格遵守,一旦发现,会取消该门课的考试资格,等待补考,如果补考作弊,该门课需要重修!', '2024-10-10 14:21:28'); -INSERT INTO `exam_plan` VALUES (3, '信息工程学院期末考试安排', '本着公平公正原则,考试过程严禁作弊,请监考老师以及同学严格遵守,一旦发现,会取消该门课的考试资格,等待补考,如果补考作弊,该门课需要重修!', '2024-10-10 14:21:40'); -INSERT INTO `exam_plan` VALUES (4, '软件学院期末考试安排', '考试时间:xxxx-xx-xx,考试地点:xxxx。注意事项:xxxx', '2024-10-10 14:21:51'); -INSERT INTO `exam_plan` VALUES (5, '经济管理学期末考试安排', '考试时间:xxxx-xx-xx,考试地点:xxxx。注意事项:xxxx', '2024-10-10 14:22:05'); -INSERT INTO `exam_plan` VALUES (6, '物流工程学院考试安排', '考试时间:xxxx-xx-xx,考试地点:xxxx。注意事项:xxxx', '2024-10-12 22:35:08'); - --- ---------------------------- --- Table structure for notice --- ---------------------------- -DROP TABLE IF EXISTS `notice`; -CREATE TABLE `notice` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公告标题', - `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '公告内容', - `time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发布时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统公告表' ROW_FORMAT = DYNAMIC; - --- ---------------------------- --- Records of notice --- ---------------------------- -INSERT INTO `notice` VALUES (1, '今天天气真的不错', '今天好开心呀!因为天气很好,我又可以肆无忌惮的跟着武哥和青哥学习了!!真的好开心!', '2024-07-16 15:51:17'); -INSERT INTO `notice` VALUES (2, '项目所有功能开发完毕!', '我的项目所有的功能都开发完啦!真的很有成就感!', '2024-07-16 15:52:22'); -INSERT INTO `notice` VALUES (3, '项目功能都测试完成,准备上线!', '经过半个月的学习和练习,终于把这个项目完成了,可以打包上线了!', '2024-07-16 15:52:56'); - --- ---------------------------- --- Table structure for question --- ---------------------------- -DROP TABLE IF EXISTS `question`; -CREATE TABLE `question` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '题目名称', - `course_id` int(10) NULL DEFAULT NULL COMMENT '课程ID', - `teacher_id` int(10) NULL DEFAULT NULL COMMENT '教师ID', - `type_id` int(10) NULL DEFAULT NULL COMMENT '题型ID', - `option_a` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项A', - `option_b` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项B', - `option_c` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项C', - `option_d` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '选项D', - `answer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '题目答案', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '题目信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of question --- ---------------------------- -INSERT INTO `question` VALUES (2, 'Java是世界上最好的语言!', 2, 1, 3, NULL, NULL, NULL, NULL, '正确'); -INSERT INTO `question` VALUES (3, '下面哪一项不是Java基本数据类型?', 2, 1, 1, 'int', 'int', 'float', 'let', 'D'); -INSERT INTO `question` VALUES (4, '下面哪些选项是Java的特点?', 2, 1, 2, 'Java是后端语言', 'Java是前端语言', 'Java是强类型语言', 'Java是弱类型语言', 'A,C'); -INSERT INTO `question` VALUES (5, 'Java语言的创造者是______。', 2, 1, 4, NULL, NULL, NULL, NULL, 'James Gosling'); -INSERT INTO `question` VALUES (6, '请写一个冒泡排序算法。', 2, 1, 5, NULL, NULL, NULL, NULL, 'public void bubbleSort(int[] source) {\n for(int i = source.length - 1; i > 0; i--) {\n for(int j = 0; j < i; j++) {\n if(a[j] > a[j+1])\n swap(source, j, j+1); \n }\n }\n}'); -INSERT INTO `question` VALUES (7, '所有的Java项目里都有一个启动的______方法。', 4, 2, 4, NULL, NULL, NULL, NULL, 'main'); - --- ---------------------------- --- Table structure for question_type --- ---------------------------- -DROP TABLE IF EXISTS `question_type`; -CREATE TABLE `question_type` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '题型名称', - `score` int(10) NULL DEFAULT NULL COMMENT '题型分数', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '题型信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of question_type --- ---------------------------- -INSERT INTO `question_type` VALUES (1, '单选题', 4); -INSERT INTO `question_type` VALUES (2, '多选题', 5); -INSERT INTO `question_type` VALUES (3, '判断题', 2); -INSERT INTO `question_type` VALUES (4, '填空题', 4); -INSERT INTO `question_type` VALUES (5, '简答题', 20); - --- ---------------------------- --- Table structure for score --- ---------------------------- -DROP TABLE IF EXISTS `score`; -CREATE TABLE `score` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '试卷名称', - `course_id` int(10) NULL DEFAULT NULL COMMENT '课程ID', - `teacher_id` int(10) NULL DEFAULT NULL COMMENT '教师ID', - `student_id` int(10) NULL DEFAULT NULL COMMENT '学生ID', - `paper_id` int(10) NULL DEFAULT NULL COMMENT '试卷ID', - `score` int(10) NULL DEFAULT NULL COMMENT '成绩得分', - `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '状态', - `answer` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '提交结果', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '成绩信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of score --- ---------------------------- -INSERT INTO `score` VALUES (2, 'Java基础入门课小测验2', 2, 1, 1, 2, 13, '已阅卷', '[{\"typeName\":\"单选题\",\"questionId\":3,\"score\":4,\"answer\":\"D\",\"newAnswer\":\"D\"},{\"typeName\":\"多选题\",\"questionId\":4,\"score\":5,\"answer\":\"A,C\",\"newAnswer\":\"A,C\"},{\"typeName\":\"判断题\",\"questionId\":2,\"score\":2,\"answer\":\"正确\",\"newAnswer\":\"正确\"},{\"typeName\":\"填空题\",\"questionId\":5,\"score\":4,\"answer\":\"James Gosling\",\"newAnswer\":\"张三\"},{\"typeName\":\"简答题\",\"questionId\":6,\"score\":20,\"answer\":\"public void bubbleSort(int[] source) {\\n for(int i = source.length - 1; i > 0; i--) {\\n for(int j = 0; j < i; j++) {\\n if(a[j] > a[j+1])\\n swap(source, j, j+1); \\n }\\n }\\n}\",\"newAnswer\":\"public static void main() \"}]'); -INSERT INTO `score` VALUES (3, 'Java基础入门课小测验3', 2, 1, 1, 3, NULL, '待阅卷', '[{\"typeName\":\"单选题\",\"questionId\":3,\"score\":4,\"answer\":\"D\",\"newAnswer\":\"D\"},{\"typeName\":\"多选题\",\"questionId\":4,\"score\":5,\"answer\":\"A,C\",\"newAnswer\":\"A,C\"},{\"typeName\":\"简答题\",\"questionId\":6,\"score\":20,\"answer\":\"public void bubbleSort(int[] source) {\\n for(int i = source.length - 1; i > 0; i--) {\\n for(int j = 0; j < i; j++) {\\n if(a[j] > a[j+1])\\n swap(source, j, j+1); \\n }\\n }\\n}\",\"newAnswer\":\"public void bubbleSort(int[] source) {\\n for(int i = source.length - 1; i > 0; i--) {\\n for(int j = 0; j < i; j++) {\\n if(a[j] > a[j+1])\\n swap(source, j, j+1); \\n }\\n }\\n}\"}]'); -INSERT INTO `score` VALUES (4, 'Java基础入门课小测验1', 2, 1, 1, 1, 20, '已阅卷', '[{\"typeName\":\"判断题\",\"questionId\":2,\"score\":2,\"answer\":\"正确\",\"newAnswer\":\"正确\"},{\"typeName\":\"单选题\",\"questionId\":3,\"score\":4,\"answer\":\"D\",\"newAnswer\":\"D\"},{\"typeName\":\"多选题\",\"questionId\":4,\"score\":5,\"answer\":\"A,C\",\"newAnswer\":\"C,A\"},{\"typeName\":\"填空题\",\"questionId\":5,\"score\":4,\"answer\":\"James Gosling\",\"newAnswer\":\"James Gosling\"},{\"typeName\":\"简答题\",\"questionId\":6,\"score\":20,\"answer\":\"public void bubbleSort(int[] source) {\\n for(int i = source.length - 1; i > 0; i--) {\\n for(int j = 0; j < i; j++) {\\n if(a[j] > a[j+1])\\n swap(source, j, j+1); \\n }\\n }\\n}\",\"newAnswer\":\"public static void main( ) {\\n System.print......\\n 老师我不会了,给我点辛苦分吧~\\n}\"}]'); - --- ---------------------------- --- Table structure for student --- ---------------------------- -DROP TABLE IF EXISTS `student`; -CREATE TABLE `student` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '账号', - `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像', - `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色', - `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话', - `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', - `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '状态', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '学生信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of student --- ---------------------------- -INSERT INTO `student` VALUES (1, 'zhangsan', '123456', '张三', 'http://localhost:9090/files/download/1728486694570-柴犬.jpeg', 'STUDENT', '18899990000', 'zhangsan@xm.com', '审核通过'); -INSERT INTO `student` VALUES (2, 'lisi', '123456', '李四', 'http://localhost:9090/files/download/1728486728196-拉布拉多.jpeg', 'STUDENT', '18899995555', 'lisi@xm.com', '审核通过'); -INSERT INTO `student` VALUES (3, 'wangwu', '123456', '王五', 'http://localhost:9090/files/download/1728486753434-柯基.jpeg', 'STUDENT', '18844445555', 'wangwu@xm.com', '审核通过'); -INSERT INTO `student` VALUES (4, 'zhaoliu', '123456', 'zhaoliu', NULL, 'STUDENT', NULL, NULL, '待审核'); - --- ---------------------------- --- Table structure for teacher --- ---------------------------- -DROP TABLE IF EXISTS `teacher`; -CREATE TABLE `teacher` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '账号', - `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名', - `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像', - `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '角色', - `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话', - `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '邮箱', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '教师信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of teacher --- ---------------------------- -INSERT INTO `teacher` VALUES (1, 'zhang', '123456', '张老师', 'http://localhost:9090/files/download/1728484762449-柴犬.jpeg', 'TEACHER', '18800001111', 'zhang@xm.com'); -INSERT INTO `teacher` VALUES (2, 'li', '123456', '李老师', 'http://localhost:9090/files/download/1728484862680-柯基.jpeg', 'TEACHER', '18877776666', 'li@xm.com'); -INSERT INTO `teacher` VALUES (3, 'zhao', '123456', 'zhao', NULL, 'TEACHER', NULL, NULL); - --- ---------------------------- --- Table structure for test_paper --- ---------------------------- -DROP TABLE IF EXISTS `test_paper`; -CREATE TABLE `test_paper` ( - `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '试卷名称', - `course_id` int(10) NULL DEFAULT NULL COMMENT '课程ID', - `teacher_id` int(10) NULL DEFAULT NULL COMMENT '教师ID', - `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '类型', - `start` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '开始时间', - `end` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '结束时间', - `time` int(10) NULL DEFAULT NULL COMMENT '考试时长', - `question_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '题目IDs', - PRIMARY KEY (`id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '试卷信息表' ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of test_paper --- ---------------------------- -INSERT INTO `test_paper` VALUES (1, 'Java基础入门课小测验1', 2, 1, '手动选题', '2024-10-11', '2024-10-26', 60, '[2,3,4,5,6]'); -INSERT INTO `test_paper` VALUES (2, 'Java基础入门课小测验2', 2, 1, '自动组卷', '2024-10-11', '2024-10-26', 60, '[3,4,2,5,6]'); -INSERT INTO `test_paper` VALUES (3, 'Java基础入门课小测验3', 2, 1, '自动组卷', '2024-10-11', '2024-10-24', 60, '[3,4,6]'); -INSERT INTO `test_paper` VALUES (4, 'Java基础入门小测验4', 2, 1, '手动选题', '2024-10-12', '2025-11-13', 60, '[3,4,2,6]'); -INSERT INTO `test_paper` VALUES (5, 'Java基础入门小测验5', 2, 1, '自动组卷', '2024-10-12', '2025-10-09', 60, '[3,4,2,5,6]'); - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/ui/index.html b/ui/index.html index b3dc0fe..c256d44 100644 --- a/ui/index.html +++ b/ui/index.html @@ -4,7 +4,7 @@ -EOf>Glg9on05ZFI`sl4-5|d zeBxTUz)8~Q{WdCA{Ac~xRSb)jpT2?F{&4e9e~v89Io ztR4bR!C{MVTq>nU6TOckutfp=CJJF}A %>V(& uUB!8 z>RF?~;Vjds(eT7xN()JoN{QqZIB6$AA@C9;NC=872M0^3#F;md%k>`0TfA3r`KQ&V zY~BskHhf?#+4P@wh2+C4(%4J;t^}{f6}Kq(n5xD_5qC`9*4Ldb>rK7UL?;u|ha3n( zj=6%(@HAx5u?B($BLr(gJH#387rC%{ri$AVZ&uT8_lYzgobctfN_xx;4?@et=Jc&; zwdEzVM@wi8Q^-Azd`n)Ne8m
T-e+9I(QlDOWp>{<39(IPsnqfejEZWm46 z6DITb@d-)fn6j+pliUh~N>X$*CzwT^N0-oIMJ#6>vTi|XrbJRr>mYDqbD)bjY`^F} zI)#8Mt*PtP@yigga;@Wv8|P|@bJm15U!R>Uw!4sBYvW3N65PF2N|=;NjNM>RUm+63 z3{`#8JV>m%G+Q2h`}@JhjSGl}_^tfGv`t6(SD%Ol!!Peht}Z!p?Zl=b>t6~|e-{l5 zeZoB?&K=mb@bZbjqqucT+y5?H#k} {#w^Xu91s97W-%OeV}d5 z^9J1 2elG$-U|l;8yb>Kz_FoKzuq`X> extK4@BCzCMgHVVa)ust{td~Q{5==BG2Ih1%WZBx3A>qHm$T}2cHk|8-wwYq zmC}X>?Wa29$y7p-PcAJ>DDV!@?zA2LhIcvVjz*=on{tC(IeTe)Vu f$GmEnizL(WYUwPizs6}~pW8{a2ByaP? zEZjlwa7iO?)`Dd(p6rP*y?Q49!bCPF_Jl RHGs_y4CVgZ#v5V8X_3t%__l0{E~j`2cR09|;V ziUujPvZerf=}XTOG!FTTHpcaAI-GJbRscI1i5NC+L5M5TNlXTusHUxOT$t0J>>GD1 zG7@k(uE&gc5s p82%0nyARl*p9fp 4BO>m;K@hFR7kVw5NKllZE!M zPef3ya8dyB$k5yMI6@^mu+zH1mYV2K2gr|;N}QzP;=K0a0{9^s7>oJP&(eS9S0iYw zb$mQOl_YZMB)9*TezDn9$tWcE=;oxjruKY{{;}CJrQYoM$uQSJ*G-8bn+swa34Pr) z5mtA17Z(V0(ezSH^@0)_jtwK)kw@vV1v-i?C`g+^L# ycNL~Z( Z~|_FrdX z-59W+S z-?F;|SC%JKD z(%_<@9B)zmhMyc(9~6w#zPL8b@2+Y5gu9sa%WqB%ExI?(yVlo#|Mu~OKkHq6b>itC zUv!0){O0IEitMK^tj#~K%wS0+^XT7)UcNUN*`MC&pUn(+h%K(ycjjb!)h5OY{E7u} zYj`*1b|b)3!xZx|Dn+8%M<*D;9iZ|4dE-*4asP#$4wjRO0sSOWHBvLV6b%ae0aHZw z1*N}6Y}8-H0#7mlCe&wuQvsbe0I3P552=pv&EHf1UwE(5653x5pgTchS4Mqx5MVr0 z7dSf@#E4W4pj3(mZ=6gpsO2CI8AorXHi4s5k&1d&BVaBahug2N06tM5`1 aP zzMN(p*|Fbd0wxzVq$i?1^v$3lI2vEB5L%!>*w5SN!k{k*ZmOJbLXGKU=4U?aZ{I^C z6g-f!Zrx~{)$+HEfn9a?iZ@lIqIEp;8<#mPN}l2wTX0;L#H-0?2&z^@Noq#&1W{20 z$DJE>0>!@^>xsV{Erop<;fac!@qqd9| c;e@mq+>7rCt# zUSoD-*2QnK@@l0uoKz;4nc+pH@+gR!&oiNmR1ogZ08lSR6fF5NTGc~9qfA6?mG-2} zSl8Jz6{%WB$2ict8fvAtnFue-MnU1VJX51Erv0jE&+HFK0I_5D1B4gSghGP{Cm0O+ zBA{Xbd_BM*CKHf|L3e^7LBU2q6jDJ7Hr*1$PM!{-rJ7(Az!@naMCWygO8}3xJI!mN z0kcc13C}nq={I7joBMzFrABU^CU6ciWSYS%!<*s%YQ@n-c=-FUj=O`sFz>wLIjH0t z(xd{C4oGUi=tnCs%x3Cfn0-DNP(H$957OcOg7Ts$XMX`VlGF0cmg)&e{fwYsd$t$n zaFl4y8&Tun+FVbQQmm@ ^Ck~)~;I&^3x z;ZoA2>Tk?$rwtS_2mk7f)NNhcaIKs9IE5e#6=6b}O$T)Z(^NwQ!c0>M`X+ RXV7!PuTt|c6;~5FPidC- zTH51$osf6aC^yVzfvbnCenxYjc2duseRf+<4_G&HWlusw%8%>WpYSCQ@2(3 6dP*n#)hB)rC^=o`t9a22Gh=?KZDc6s2UM+v_xCw z>uexq@-T?xv_?v{R_jV`F;4E^OG)1+4-ew5Gna2B^_Du(?(u(OCPdpsGC6bDY<(RM zCt3q1F2!L!tySV22eP~KE3t}UIY-IqMMw>>iK$o^k>Wf|mn%3b8I9>#m~)6|LE`u` z`~bMW%ol$K-O{X(#s;2{%8IoLcsX3VGj}=;y?R~ueCNd%HNS>d-ZbWs2t|h-9lx!- zcs~fAv}<3;!?o}IOOk#0wXe>!)TGb-v$%vB+3~kntQqv1gQLwGLc@}1Cim#mwmxq< D%>tieEN@zoLNMNO69BWs!!U@Ry> zpI0{x8OeJ@p5siS5dJI7QGFB>kzc?5KUo(8g)hMmqUJPE@}N57Dz(J`UnWY9Xj5W| z$7`8= W=jJ)W4IO_>(j$lUzx#T2GZTcncMtBeUzgG3T7AUB-xhwS9Sa%LC4l= zqV2F-UqX`^rPKd-uHuE6)h&@*=zVIthjMf#HFEj$K-2eO`9$~SA=e_TBCbgPI9E5+ z=G*6A@qOlh?1xJ(%_xc?L?4KqUi-tNiA;~GCn3N+3rdsn{*F=RiQk1vd2anJt$qRP zp9DD1jS4pq@j^l+{@GzwZ)-(nuj>^RVbtRmw9C4-ApQLsjSOOZYnr*W-qIV=ZmAJ{ zMcfWMm#G$Yt%b9Ss 1Q%1v&`!_!)YJa&WR};2 JN14vUlS9oMFFyN!9AL!IzWp z#QbAIwn{~)^an>70(u5|vY=S71{*VE2QuP$Cj`$^X|V-@XC75IB|QMzfJ+F#fV9y8 z&WP8M=b@fU)HDv8u8GFuBmvSzosO#U6-76fN;Cn{l_Tl72-^joNG1!MksE@5e{U3~ z#49-#StB_izxxXu!?L1<20JO8_6IJ&fuDCagA`A^v5}e>2p}FQ$$Bo;JOp3S8a|m& z33|QLKG&+HCK@ j zbm6`%(dagvW}F-p(mBh3?z&oMVE3E(wma+>om<~M-)cs4iS_en`_v%+>4Vjcm#jCq ztzS0(@({Notb1m&UH*?%%<$e;UtXnh^w>hWxR4f`zMoE>3Nyt8vs7$(X^JukQ}iej zap`X0L|hLS152g_5 w`OtK(TG zOX8PACFN_^Xv;N~>5OjvtY!Ua&{TFCxt=-;3yLMtN+sKG4a@gA^93Pnd0um5Oww$7 z{aI@Vd`oE2r?}Iv2eY{gQ@_7eSK!E6fsjpM5Td%Uy9-F!Zp*;ken7!EElrJwMsi zB(GG|cJ*0o`zG8BgtmQ*=}j<=l%r|WNfkEM)i9vl_S=*F8bva^yED<)R#5GDfOn&A zJ=J0?OjOk=lFNcl7XGK%(8<* _v`#`kMzRJi>uvy9s}2O)NU7aTrpO>yf{>H+&k>snC}u6Kbc;z$7rqK z^2*hzlR1r7jL$0H21vu^krii8B}KJf-W)zETlKefck7 $dEg zL|(b!()|{}Cj7Ll8G{aMuWZQtr~BH)H{8j=hi^P@VLiFo=`Y>2N6NV+dR=5Rg&pY_ zldxlXV#pB7wY84->?;yNp$&o>l^VsUr2rAE%2>dHS!iQbgdqg-P{1Ep^zdH@gJdHX ztn5bY1gM2$VuZ$pxCVV5eHOkHb)Ghvpcp4DctL_q_J5gIII&6w{BOTM$9^iujKIN3 zzeHGZ=nn}f2?Y*m1r3ImdyQ}AwII#hw9tczze*S1wmdH>@T}$!CM7fM$GYyE)Qx7j z9TEgLZ=d>NKH;9?rSPS&VsEsQ@Qhus;tYSA;F0xB-^=Ckj@0Cd!i+05dSe^dg2)Sx zX6aFHB?gL%E*~2PMXv!dDXoJBB8Imw9)Q|e7gV~;e!rKjFR(4K;c(G3D$$KMk=8%i zhZcSK3ahTwY%-y=CRP}%9ZOy;&$_kPuDixyfymhBGG2TCu(-{lK7w#DdsS^+*!H}~ zZ(SBhToa#{CY=>DjD`MTA7*p4f_wWY%Q=%7A D-h?JsG3KZfCXf z1YYm?G~JMlf1WU>IJzXd=8~6dKb`k`n+2V*;@QSS9f+_EARqx@0Q5peh75EP3=5=5 z)LjSN=lobKc JUI- zN>zFjOi4B!p-s9TeSTF Cr&7VF{o4}izz?(ok zGw_K1_!nzw4=48+|ME$C6y?U_Jx3XITb> s542tUkrg3!S0Yf_(DG?h(umOX# zta6!>6DvT$26%bk&7KFR6c7-+^j`b@$Uh5+P`O8yj*Dnjauj_y2K>NjD2hmN2UD9# z?@ZmADw!c!X*b K@1St8->lx5@L9!+vi3_9QN! z8Q5KGf82j-;72-7r@cQWSce&C)>7jbySaUOZO7Ri{YN(1om+kQ=AA3XZ?sl1m+tvF z(xx${fL-FUmL?p@ITw1cy->Fy7m=&UIEolD^<_$>`Ms{g$DMv-_ld%(^KNf(f7-Ls zf6vA@B~1O=P5rdo@Z2=7-+Xn}NsgW)HIVyerXJrkd}A;yD5=kjt=Lqb(0EsJ8y{Hv zQ_8alJGxt=3Eru4v0Sd-kwLrnjM}x79~BuEcWH2v{tn*#wz?0Lp4ldxb(LPyy0-4$ zf+o#);~|w>M;bV@CTRuY{n?K@ZuwGgN~H-?1xTMxF~3ZG&vOfD$x`+yl+kGrF1uhE z0Oa?fnB;#bWtdTDR^cGhKX7%z<;;VXmD7k1R}7qR!fkP-OAh~ja+v}B&h=f=#d8kx z&fYqO&-kP3r%k(Zzcpv4;bsg*uy5q9{KnAzzE;jDxm=PT9a+fkNodMRSyEI^>#<)e zO59)EP(rpao%830Uk%#_ISg@5_$6{vM*Iu%bR`Hi4QF5cBEoY;mJ2a@aF)x&`7c7j zLs6zyHBLR {0YR}Y~=dwJ0HjXzoXfd_Y&{B}7k)_vNYg(6bNzU)ANvarf-!)H{@^SYO zUAc|+^3AQEa2vud3*tCoR(rV%go?bCjnUs82rbf@rCHNb6X9XDeaaofN#`y$@^6kg zul~OE*6bA5iYLu=H-?Cl`(8wXE!RB&)RC^EMkQyIu2bt*Y}WkCBl|jN!J%v)Mn719 zL`9VHnaQv)2)QqaQ%r N$=40FEFd^oOMhp$g9tY@6cGmaf@$k<2C^}q5V&aL* zNIWWw3<)}Dx=8}OmCR~DsZmV}*7ECgJIrhL5$M-s1Q05fF+OSinNFkx*Ex!d_d+@C zM;A=*f8{S?DBKEtBlCod-D{`n+OO_)8m+yq{|$Z9vMmd~3%oV;hc;R0ak*~w(W0iS zf9k~g8r5ir=S*(6@_0FW<$z{)TkpMtLt=I-`v|p>!S+fxAzQAUGNZ^LX1#^J?C5SF z7+u6PDA3VR&lFWRAr698!^J53=$mJ(Kqjn8DxkonMGQ#-&nzX3aUdd;u*ESUc0l2Z zvp)nU_IS*o0)`0yhJYX?6NN26Cyr*|PyvaE9~@J8R}gfxU?vvY!IBN|)@}CJ0Zk$k zUg3 407l z7eMd=bvtq!#{%9+4b%}0s z&Vg-R*B 7s ygnpuZ{VD3>$g~(U<;!LNCVcQ(6G9kz4T2k&h$9*{L_uT zLzhz%L+h+9Y(u2-;X8W+`SbRq5Sfg;k)a21(EA8A01D3c^XNDTi|o2Dob&eQ^f5{% z?c(P7;n})}NhcC~>#7|`^Ku4L@(#SQEF7vXs;1kVm(GupYiW7aY_`oe)02!!JDnOA z3EH)SCbIAK^_XctV~vJn3?_;aXsyeyUa@-8R#(eUh~bQI^1q`s;|dPj$eSWNge|fO zgnK;W`-)VK`IDQ{9{Z+z0 4*_Nd9&)n7v-em9C2(8~Ge1r^qB8yDmsDq9s* z9aX=3E`RIZ;gW?jsmrg>#4b-FIS#n+btiTG&)j7N}6Nd`nQ%nT>2-= zD*fV1(LlFkj&tWye&@6N1DCxXlA<` 0>brH80t|zqlhRT{ (_D5jx8ApX+J)<0vws*mxqO!OF HOJyV4}(q+$Wr z8=NUBL=dX<7qkxRW4(T zyy?y=GanTNZRUB0xcH00EiP$=oCqGRz}se({=qw-L1>i~F4N^4HkO2MKZ=ic>aGiE z8xTCHS(5We9#rS@gl_MMw`|POzS1$`cYRjv8=} G%eY%4qg@}<7 zT_XzU%$H(_$4G4jMr6$UQO>@|_>UY9mJ*I##W;xGj{G*nX<)p;A=1t%m?sD17GY=v z@T7hv4ehARIXHL !b}@b6YhcIngrv0PCZpk=4}81JOCbhReWY6X6|sE6zYU6I3-J11>hr zEC(W_(oDog$a|AWPzDT4&&~w!@X9J7JQBkDM;)*X4a$areRp)KxF84832?L%d`Yl| zFAs{y;A4=}@tY7UbakP{=3UxTWPK&<1d~*hRqm)y`6Vo)KSL01_b8w2u{g|_dUuV* z7?(P)jlbTV7}@iLP21DACdqc&4*asKEEihXBu5@pTj*dFJ=}N)+` w$MSqk%!Y;WjKqQf7r-G-XkM7ZPG~Y* zR@3Y=bg`*^Q?#5RUQN4 h~JxLNuRzlfW3%qrhBg{VG z&z>Ni$h^?%K g&b$hkAFir|NO5Nv#%n8yZf-Q!o!rGgD@+ZbrnLj-w zKfq?R!HLk- 6{l+ul+>HzQtkulfYRC1qu*vT)h)IH?-5;eajj?HWTpIyp<|$ZxTxDa zInb448~P%8-aug4b8d*Y;`NA}+2YziHL|U%bE~ZQGVAw4eV=fX!tXR+-NM$Nwc)_M zH^dyeZ!Wpv?xxuv9zAOpK6#aTfVg1O<4vKVZa+KU@v)dVu!ZQF%pG=-(*}EmFi*%x z`O+|N%AfA6hUqV12U7Jy#g}MeHx|kuR|P|Tj5AcBj4B*KVUilyzjoLFivInb@Vy-b zs2)Vz@PBRX>T_wTe}h<6Yg8<5QRRD3M5BXDHfMdUM)oPM?VEqbUrqc+&X5NkCudK* zPQCb}-G>H4ZGF;f%^&XPzAyWS)8t4UQ&e(>@S@sGfRucMEotLnGE 5Ps-~0J$lcK=`ysoSJNQqO;Yu}Ob z!t%1(7BrV%Nq#R|N`38GQz5uo>}<0xD0N3>TljmAn$ek?-U+h1Abn%M$Yq&;%j~!f z!D=ZYcO$febtqgW*2q% *T)LhPU_aWTmeM48K}dOdpOrXz)fbH 0c>*5cg*{%p zn<^_c6ro;5#R#YnuncM*0mWrj$qeXcDF20s77EHxV9#`cT_|SYXe0yCQ_Nc-@5Rvo zS4~7Ua)HPu3y29TlteTDxh<@aNaI%R9VjWzg1QN~ODz6Dfio(E0SOj|lRuyJ%F$%= zHI^5b6#f0Pj~N8XGlAf2?l%KMc4W;OG#|g({^j PAE58Bn;bs@<&zYkYSQ`e( zB0R} ml)9#vt(7CWNlb!myRXj%~SU5qzBU`H7+d0FLEt(3rMj7&ZZfU zO!niUxo1nZsuVHTg8!)2q7aBIo9r7Wk!hXo_p7EUa0bCVMMYoKWZjy<@B0VGpgX$L zGh?rtDe3(0T#fpEBPJA;x#V6Af6D6O54 J0mBHRI0o+!cI}Vr6#p(y%wg*8e1w zI8X3?GovUsN8tBp`^vKe?| -Pd-l047zT0 zaYhmQpvy7Iv#gux+iMqJNy@LVZ0wjG##++5YL%Vos}$F*2BPDv$99QhoiJ^j_2%eme=t+ zt{mo{@?Ncf$J{lR5qy1W)H!2|ZMsrODv;)^Ty0pI-1l?VjI4%mm*VD@DSAu3IWQrS z`^5UPU@S?pHryrmP@jUF5(_CR&I)zMXkp>gXHfnNq^|kVjI1`mV7evpgj&QPfU5~( z7={YC&YmkU3rU)Qy(#U~h*GqG2Sh=FTG|P~3ZfbuB;$6lp*X#Z^nIy`@I}HFthg1W z*K;s?5d<}cNH8=oOdUme `Y%+3MP$8(QSRWbti)gXs{vxl$0Vt>CPDmVpTKX*( zBJRex9xV&7jm%Lc48mM*3}&$%^?3`e3|4ku}0LrK(s8r@+P}GCCayX)#BapYt&` zp2$5yxX8M2S3Zwx!Wj`8h2F0VPG(i `KN+Xiq2S2c(y$`q>OIu)M4)vN)+|vUv4DuUWXaP|o@PQh49V}tQBKw?z}uDj-HQLBIwp z@R(}WsRCN0sZf_fq67W(?W<2AYPCHHuXSazOzxE(?#mx8+imZaM@ql{x-s;slqEi9 zTQOa!*eZKK Hw7;wE~GNzmZ1NCek=I)r55UO(Ge8i$#S{&e6=i zNJgw*#gn?Q{7N+CgtB_wg}K#l>p8v~9ZbPyE3z&R^?cry`|D6SDh&`WsL8hbk>|}x zr1~8vl_b<^DYN8{sD8&_@kInaXd-8Xo9{Lj%y$?#Q@0`PQo2-EtP4Tw-lV7?qKT`u zD2p3&z9u~YUh}4T%bk6B`Vwb7Lc5N;h*#(1Oa&p|Z)! iUx@Awxrm>IMKZ-p>b|79$!E~G#fR`oEG-hn5 z9FqUWJ6$#6qIs+?V)<7+tR=!{&^1uSfpX3&g}e_b%l`qm@D-{e`F~^VIM!mnCt-@{ z^FV`>q7%brgyt5CfmKsVA)M@q&u_Pib;qq0_4HdU%zW@o_Y%6h*FUub4|(4#a{uvl z&FH)EL4|(2rccHrcK9zg9ydjQK6;q#*}1SlFuKreH;5fAG#6lYK+S?0Y0=UiGIBC7 z`vcZKp?skMGg1jDR#d+QWQBEQ2O$g6x04{2EZr?aXzUFX>sDsP@MpRDdGZv%u#*`g zZ$>~lilku_Ks|p>KdS5R#0JMAoeMN!Y(Z((vF !LOz+y D=U)69 z`BU8n$Sb!CsMyLDObR1SjHQ)1Qjo!o2b@9jaw#SNv?!AdyA~OQ=wg9a6ueH2!wR;K z2^G=Bc^!bU5O^R(4Nin6ctc;wE^Mg^ROp}@dM>C#Sj8|<1| hf%YTT~}?&Tml*PQR!UZq{tRv$L4YkJu1+r{atXk(4V*~jkKtxMo3Y%WncEosjN za(LYAAz6=eCakVnA&3uX7h5X=F6Bz3v?3p*LcrTXl@dsbFk!TrWWk@FWUyYMA>0A& z%>n!uq94Eti2qgM0Q52r(Simh1kfz$!?M@vVO^=zc$urLedF4zk){*9(($SA-O!zN zA<1GvFWl`3H-yOl%l5fE6Go?0HMh|GDn$JT>%*25q%}?U#ryQ8hBa`IQ4u+rGS4J6 z#5rQvi9cb_fg gdS^UwF;C#F>*e$PZ5BjJVqFuaci1bS)>$aai zIgG~g4=}=ekP2Ry%Zhpy7Uy-77G_s>uIjXk9Hath`^aVY2D=WrP8BFZ<|V{63Yeu` zJE)ngu&dAJ(<+swP^s%j61pyjT=}sVfiqy`*9$40(IK_&MiQHJct%x6GwkOr4#Njd z3 }QJ$@kr1_A4l{vMoEE(|;_|#g``$1Prc-u<4=j zb4ZZHh=h8vGLZ}Of@-k~^#&yKQQJY5MkB5gR2tHeR gSE-iK_76g!J 89QC;Qq2CyQ{- C_^n;PJ>7EYT;CakC(WI-HyusQ zdz5MsT648|Qh`tzO40!!-L0 +CFFggWpc>G8pW!d+}<06KzUsf)o+g@%a`I7NYFD zZ5$Mnk--uK(+}mouw`qyV0$4yAr0mcY5*v HjR{h$bNm BuQ~~XPVWtAt zDn%6<=ml>JPr!pJ9!~=>(@QGrm%} z-|O-5eC^Tc31y zY}uem>au}WukP*B2V(P@t@x6C8@yRHlUa2(!2Hm~V0~MD&iG#CL?3}77?WY|z)mXy zZkU-U%jak!n+cW!7l1;=E?7k{YL-_CRAi69GDVmcQdL0* _t+0Q;IFyUcglJg|aO8(&Q;-`*>c~6%mBtwKwwDTFV&x zMhZW0K9wPUxuHLu$bgqtdNtf;5&EJ9YZ8Mdxa!0EJu1n>`TS3ipyN~`-p-Q(9 oYBN z_vQENHY_Tv538*p{9~8K&yP&c8DP$*?P*~BBud~P#k;%CHW{6>Q8JgUTTN?aj*{>A zpN7S4(x}@d2tNTxUn~WyAx$|7uH0*=K@!l7VG1d50035*h|F4Haf@x7p@5gQo2Osr zvybJZEM(crC$)=M+RE5kWdD>&dgjrwxh8I(LaXeDWg5pK4^5*T@3L8jU)Gorl2Ih* zUwbrrQ*3(1Z=3_dLZ8PEKjHK}g0oJZ8@$>mC+v@)J^3-jaK>``*R`vYnpdy5XxH*_ zvWPUAn>po@eR)=1Z-a%F@t)xI!sie;VrBPWNrHTY@u9(kAODSC<0b$k^}rBP$NX4r z269|8C93g*gYkygR$U~Cg;3*PMFr7{z4^b nefQs!r5goz3nEX#2fgxqa} zWDsI<)C=Rl+ekxq0sV*;yF={;v^3< zev*a7<^G-**?s_;2~rtUCK_T#psNHyhB_J ^q2t;U z8;G^*POV%p-8G0#8@@qm6}64HC;rv 7_QiaiU3$$r#(oERJx3eMqS1~(b_TVC8kRIUHFpMlae#FS;va(2(l zXIV?3jC~QTH3b(ppVg^3RlrQKl4wz+G$9iFuuiO4^?(Jed7%YOu(;kI=FWH_KTHA` zx k{U Dh+3;H zNaO~D8C)1zX1A%huCIXVew)vlashJ3?3H@*f^WH(&iAp*;$-$2LAsTFPMx;Yfnev% z =PVH~KPW}$8lp >g%S3FB^J^GD z6mDccFBw>+Oq^z<1W#4JCQ1VWc@QO5&QL>%%z#YrUdrYG&%-Q4dC*LNQVGZtX?AN{ zZS4fzEQR*7EAuMX)vd7OzjJ%k6H(@L(_(DR^Qz?4zCYM^h81mYs&`76)$I0UNpSm7 zM`cq*_14=*0!udex(o)*WVWoIaV^O4QF8Cg^|8n6r}^C#{$Q%$D8pmZf!Q#GM4f;p znSmN4P1yc)WWHe-ifPXAcpoD}2KMZMFV)5dOcd>@DjlGxSRK}bJ_E`2C7p$3ztEXf zTY<_`QV$nwMtrsZxmbKWO2SSI*NbC)w`%7n99I ;Mb8>cY<>nwvcM>CWVoaMlJZ_@x* zKksxY HqeQt|VA zXhK qk48X9DqvF6K)%81U$D;+2H|L08IUKjCF&?&WbS<>ul5Mr{9ViG zwE=oD?=QA45f(q#t}pHOiJzRJtFX7V{bR1*^V7}pQ10!zz_B(uAw0GUdZ7zRNHSm| zQO*N_Dg4s9SSx#ewOUxc&K(OKn26E<4Y3=7Vif>=4OO3FK#7(p!`d1|3<{`n#&KOh z?x=(%&{P^1^5$S{x*hV1hGY}ns%iivCfy2tLeSfv=~kTYU8{O{3fTdP1MEp0NU$L% zMy=7{k0_P2LXk127lr5u(BVAl8U>`hu)tmKVJ6u;>PTv}Lq&cCL`qV6Wb8;lr6lHI z#%}8Qp`1LMLlH-~b#HTi+Vn8IP8@4okvAwO#8$P1bjwZuuF9Sl3=3HwEvOkezTqa_ zG~FL^S #N`3 zw7bDz_rx P#=c))g+OKk%BVY zH+8SeI%gBw7~*%`cn{N+PpxztY;HE(#>a5p7svJZ&ZM= sai?{8u~rLxZ@= zvfS0Zrk%cnRx(lF)Z-plx+^Sc1KB-TN7d87nU(!?2kX4C1PlnhPe9zpXIcaj+5!os z7eg}V2}yLT*I@5(oNuDX|5QdRfs3_u!3~p@ruDO^vOzs>29qbNT?W`mTDuRTb@0cK zy9Sa%74fhP@7;Ut>XF^b&vSR(Jp1mCBPT>BWqDirimbE)k}ndT?lyn+=4psudf+|X z9sJtAWgE9W4Lx+HW3Wi@!yijq8e5Kh?{~M_b^oTN+gdigX>@S?bNIpg8p2ciPG|P! z!fbxQA=c4k32In?M3rqxR!0FaCasXQ0$LGMfaAqkD8>d6paMQD?SdjeROAa2^nV24 zpCK2{0aHyK2%_I8;(&=b9#{MyzsWEVu#iMuri={{2*S SuUwu{JwZsa#Z)`@1SBeHaLIf#rLrCw452c}n 98P_}w+skb^r{i-aJwNq~W41*nzx~!d-#5hNoNw>iZ;!4y7C&_3wR>Ihv4Bz@ zTiionuPDzXgXN0U418Iz4xh`k4-u+`no5;Jf2pJyIPe1iBz1HS&q5i82oRkZ%6A>NPa&F~`u6@v zjaU>vX{1aqw^*Wih(3iBj%xIbm^{Ke@4%5JQ{q&ji$QKC$4YDl2 &@Yus+D^<~rQJm9srC>vZ__`>albJK5hkeb0_J zj6ZkmC&l6`ovq79>^Vbkl^>VRQ;sYs`B2#X?m%<34a1I@PZYlNB3|VmHc7v8RPn3Z zDXo0Py~!W!2BI9?rqGIq%S)??-Q2%KzxkhjKcji7`;&PG5}&@X|KU`zeXUvC>b1F9 z-qddCLQd9$Ou9n`tS};W+S)HNgGDru2n0`{1nOzjOP)G$WOK<}b9YBr`mmLgE@I(f zEg0uHEq+N6*@}8OA#QjFWq1eGxa*LlyvuIX?m)#)i+0#AkB@P t097maMeC_)#voKPw&b09MN4F-=lPa|{ljmgo9+o8{zrxJN(3Sauv zPIo~-m}%4#0Cf9N`6jt(x9hyz%Q+3JW(y?0Y#o%wx7W|V>*{1D6O))B4DM7k-_+`x zf-H4p46(uPh~uWX2{{hN1k7)j4 %=HfnU*b1vS*F){j^s1cxj8Y=9ya zwHvY^pP%%C 9{@h2}Q?P}qPw)~SS*zxN>+j=gBbpRBy9)S33GHGe{+*-|F0>vH#xSq(iC z%dY+5d?O4`dwwQ=Ni*+mxzEbF>_1&$+}TgAM2-7(%ukeGMk01MbcR|mf)__8TmF|m zQY8^lkYb638(A%FF;fHKHgxk>h7R_SGZlnFbdJ6s#IA#uS#fzFWc~qh;lY1oiiBfU zK~*RO2(ZO@y<=w`t?+E%wGpPMRT((@5oozbzh)r;+6CJcF7xl+xMf#!S- G3H~{DX>!xAq@`V}ZU2ZetBG;Q_Sm-XBY)x#xPzC^84r#8 z%x?BCU$pOqWn$6RTb6_PRqdzE&KNGQ T7?V z_WkV_-wQ=EpQnGqRZZ;LGn?>s(eo{ydqYpGyOr(v_w*Fqv%}X{|M)WN=*w${p61(n z-(LK)_}q8Ph8#TTlFnUmJHuzrn^AkG?daT*|LooKc6QjQpkF*&@+OW1eQZu)*YCR1 zJz6nmAphr^t8ekc*>{G!ZL;W>kI4;2&hEc|D!V*rFspFUC!F}s$yt})7wmfT^v0p} z)Qd$olpnei{RJFKCp=Cqx)|2Sr)NVAA9D?bnEPPb+kOw~w!~?~qO@E+cgv=WGaKUt z50+4vF)!~Zw%vc>yGzG)Q_+}Bz{kn6+Yg%@_(SiF;rr}|(OYzkJ^xt`^OUZ2tTXxJ z%+4Rn)|)=~bNxS=-wwRls<>|Bm(vybV8&qMIx4gKVdjedvl3o(arxxzXvT!)!SsbK z!;2|r>h}wRsXCzDBAd+fKG-ii@$ARH--Tz!EWRe%4la498H_-!N$@aS!clMV^(83rpY;VTK3ABD{n3UdZY4j8rTKFoGrtng#j{ zL5g{$-sOP}MT@Pb%E}zc;gJxa-L$ji4!TUWwx&W9!_PNLY9%O>czE(6c(5o|Z-^XR zSfGZu{XCYmKyjrrFAg4MLD88@gJ;nZ9fWxm{b{y`D?>Bl t=~J^Z!q%qupQQ7q+WJ)X zX-K5j<)YrsOr$G?h!a)L7uOS}z5@5mqjGkzF)Q*^j*ru#eoL0T`{BSyQ^jdg*J7X6 zX^rb<)UBW3z4Xb8rBBK}MxWN-HSp7WS?iq%hn5Asd-Q?-WS4 IGd0YU2ijmL5 *@cvP !j*b^<2iQ<(*FlkP6z R zzd8TPKv-2+$ZrOUh2hDxedp?JZ#^7Z`)%X;p@qMX%$`yIf!cplu>In|4Ir mkO&H)iDJ2d=g}Pr tjcSsVW@uIfC$7>u^W<};#goo80d%}WB72zQ=%|!Da4pBdP6l!&{@&qYl=Xtge zsw{wwQKnc%rwK|0QQZ21-r`#F>01MHZGZUXE?vg^c}n5*<=XMHc52o=uJkBLN@bk- zgLw6y$RD={Y4;G~GZL-4b{-ld{aPy~OEzwGly2KGa>V3PGIidaZvr&u$^vmS+JDS= zc_j1s_j9Y4^9(XvzVE+sVD(S!XOr(sE4D0Icx)2RXS)RVE-mp}uWl!M@u|}TUYFll zo4HGRbPG;s@6`&jTAN#)Vw7WWJU`EC48J^Z0--GK-m_;D(>>x2`_F&tSo{64b5(`M zKjHQ^Zz1K@tsd^t&ak&8F5Oq_ddO|@Dn{|J=ltm&@dr;o$fK{y&N 4{NoADahPu8zFERhIHFnIXu}oY&f>da8oKq=G{X zPlM+6@5BD{S1~XD6E1c0CtUBYcW>@GZ2N@k40(TuxFdGg!{)}BBi7%&ET4AO$w#AW zko_*~$mCmRPp@w5SVPSIqvNgit^; 5WZ3y8D{9h1H4)Ed3$q 9p_Z}JEuP+vnFg38AcZlrp5om*SE(r{l5Q?qFU!{h02+Xl*4qEQww7ba~^r; zm=PsX=|F`tl*5QAIc#H2B~waDa_XR*JD(&ubka!&>37|)QSZ;^`+5BSSgp+V+UvgW z>+rmu*Ykq73RrZ2cmnwdU 5 zSr`x_C$f8gzyl_Zq7K(D;|3>%#f; SLjiZ1wD9jm2a`)##Bild6FO&FvyOifrj z5r|qrg^szTh8AF~aCJg4ZUg~A)e2BU<+f zS5!?oCDQqnNHO! zX~GLy0qI7=<`xqVh16diqs7@D`dfNi2BwbrU0Rrb{$}XF!bpw!4-Z4azE62~W^r}5 z@Y%awU)6~6?^%9XRHmlhcCd1QfnvBBO0>{2{c#-_{B{VL73?9ZyZ$$k8?(3*nON=k zZ$tb)UUmQ+Rz#1151L5e{tdZ_fIG|y{~y_8(Fc3}%lcy2AAaQO@ZgvE*^%L0`ma}< z+plr{ LrP`D3x#cUp@)r?ubDdsV_ZB#h%VONV6(n#m)XVh`| zX9cDT0YL^ay21_GEvf{^si+`?1NIA0w5iDbfU)G8v)SN%Kz4)-jwcpLej>P3^a@>* zq;^QoAg(}cLwgKw0GEDHau1jMIqtE~EYk674U_gx1J|Kzq5P`BmFTg);yqXMU_? z%gg$LU)M&9eVoWwKawG~wmO)1`X8gyHueBKq~vs=H^gc(@a{OLJeH(tqP=D7mQv zcAzNrMNXXxIyG=_`HCoRm;)XKIZHm)1S-PTu(dbFoane41LrM7%NYfEpg(d^s1^&< z3&ilmo_Vp51LCUl2#3;>%>k%@r0fX29nVMx0A4~%DF%5* Ze)0SA4YppCe5h(uC1zW2};5EUp?;Rzzrr4r_~$uNT3X*8DY fGhcd)x$sv7O+5qFP>fOnIC}WA0vI$}HP`*dl54#`Yx%a)Z}@ G)X2-LiMA<;VNV-((AqmfuU(OQJY9Yf^UmWbp)z-Wni4-RI(e_+bAk}p z-F? Mz#yZ20upXmy-7R)BLwSm1oc9?ObEmcv|{v z8GWQs?n~FeV^_1!WeGO5$Cpc#Zs~U;vt>2!Y&jppBe3(5ZaG~Yl3>nC%M7YNBy2#w zBfYM@o!;%2i}nKe4lHO@DD3@NsR(}vTQg W*tU|;&fMn`0RRTPs!JdH{PC#A?A z4y85uQCdvN^tF;Rqa<-(Mv8sJ%>C)pCC)w)7Z_>}2F}~^L_ocgR*}8C#CF=1%;Eq| zr`wt}^HdwOw3ca_&JpKMVg;~v3;fO+1DdNrozo5kTrX%t#bSBDqJ)se5$t0Wcz{|! zST72uFcSpeA`sf3tPDpEQZZFs7rN{;Zjlsz5^=R8_>ZNuTjiUwkALq N _bNP2#$Xk^R0}ya`ZfyLkEro+zVK}zwi;Veds^Y11l Y=D*K?pTHl(je zVVMLRodGBwkkS!p^3U#0f&wo3CzkdUsY2~GB_mo5 1?Lu8T2M7jb^Xm$x{@7V3^=i!^dhn-cnQy6 z@8{nbyS-}6u~p-qVc^eaQqK&1-M4)Fjl+{_en}YI6O>c5RF&-}cmr672W%grpm_ok zm{>$OgzZ?{0CvL0^E^xg@8C2GSPMW>;n@Bg1Vp|_ O=LQe=@(sYa1WK>*-lxLr)b5j^Y>h|0k6&~4$M0saR<;@~fgCcG8qRWOeQpNFwx z(a{&jVA}t3Y$8M-k%18X1yUhkiNbDysyg7eOn48pfuLh6X2nU8_NsrR$xmg6S7i1S z8n1XZ{C0PKmBH-qpNaiRcZpB9p|vl1(kA6EH<{X8^48MkLYMGS{B+^7$^CXm3aUnk zuMf-}CN>@VlDST`XNsrfZ`^0g*nUE`;qxV*SMy)qUA%I`@|{B!OLu>&6I0pmbjL95 zm@j4V?2%%_YqCvWtr~Ckp02QdVE J=3rZ?&qqVwcN2i`yJIp`L^`Cz=$oL%7 zB|1U=^8T1zp5^$G{fVY`>+RB3?`1@WblnxWxT!PWDulRDw=Np=>09< z#O$@p!<7fGbogJ2Emn??iyf98oBQ6)X^lhzNvX1gKI_1b*M h3@eBe}I z@Y*4ZrA}{X(g%~)f4nc<7+AYrWp~N$)PLrG-4VA{YrVN^gn3i(-XHj$Xm{Qj({mbq zTMm<5*O~TYxp`IRnSCl)!f)LX`bGcqHXLr%q{@(gX02N`Cf{Z?Vm|-t`&rMwP~Kea zt~Lpz9($8neKs%2zG(6xP(m`Vo=NVoA$J(z&ggzSAK5Xw-tbXmU)n(3<*PkycLXn9 zj6I6%w`9=2wI)8gmT4$E_(oF8TdwQYrWv=s-E;KQ2|i8juOC(a_(6W5?_r~yR?WLx zgfRtp@J;I3lRmLJJkn0geoEw@lJM1waGM8bDj89eqsFb>W>sCAYP!RY{SN~}bX5l| z&1*;j%^2$k0#9)~6o)Y21K wj$u(?yCdIs|o#oFX090O= zWoZss6r3Fdhnr$kf}q1A%{KcG&n0TeLU>TExlW3Hw06k)Ieh_f<@AMfjPDo_3k) z=8KX>{Z5GIe B`J z?VD0Banc2o5=}y~L!AygeKcF=GK`6P(-M~%k~4vIY70b2pjSZ>g)~MHB =fc$~Dw;@{E=aeaF4&BkkLYdZ_Dey63-E+frN9ex X^l@ID9>7QsLh+Xh8O5(RkQ zRdifP#{Ioc`sI(7zjQO>dCg7_mrHcBdyp?%%?~_mX_fHG_-jG;)-I^Y5MseJioiU8 zuMo#(!aGApFEEDi8V-dq=Io5NRZv>r>Epk#Yr4Z*TLX8CWauL&Kkkn8f@Ghw8R}Yo z8HdTpnSm>09-Rqf1mxksTL48Kl9K3lPLQri3MNehr9-%dsM?S9>PF$SRlkQ00W9lg z7bBi$Rd{R>sc88~qQ{bH4sP#dNyiF|h54nb>O%~fbgyEnhH$c2i^osHQ(LdATF#JM zTr-p%eAj+=ap~mA>IPM1k*0D!C+@A=_lY>=9#JlrxgvGjc8@`4C;H7@k#k=b6hvI* zK8g?0c)D(L+T&;TEp)0*+tc1BH>tm-^C1tEjlu2)#1^*xT)spEi4 o^`%ZF*uKx!?Lu*8r)OqE~~@~LR! zAP ihYUsiV$0=YCMg6I+!Cs=bBX15lA@ZysRl|mV&3PVpdN?wA>!=&=yY5`# zW7icUIG^0l>x=fXo)LzrZ`bBL9zM0ODdJhwHtWMZmaBt *-n;DCh9*^~`kl%N>enBt7Pr1AeowRCudj9M)2s}lan-1c}W*<_1%EC+d{U?IIcJeZ}ZY4;(OXHsT-^H-*b;G z(%n_9z;SCl{3iMCT9c+ U&~F)UB>8h)9x@4^XyjUB zk4?kgW2SO)FumjIXVo+GGt0h}=#_li`|B& 5Fj zWPRH(HV$N81K@PRicEY=SQ11ZKo+2#lnkhbqA2FGqwWa$_2pvSso}D; >Hfm!RVT0J2Wm@eJ@*Aqc#{_HKmk%Q-e*pZF4E bgbGKRM~qIQ7>f zRR(jEkL8TyIE~OWWn2sV3=z$g>EZ*jCbdka3o`|JI*oZeuQDy (MzLrY62 ~9lKb1tn0*qs;aw%rRp_SgKroID`Y#n=w0VBicQ#Q8P7kX z^2nhEk;8*NEO1Yv91m6aRSE2RY=`D?sR<5o^lMTqMnFde 7j) zOVt-70qktmfh6itVnv;da`TKsDbQ8{xmXKCTIkIH_cOIh!hV8KYq+Jz??Mu3XLQ4J z(_N>TX5ypV&ggFXF28cd%+QZrYC}$sM=Kq^6djaW2x-gB)uq!YM?JT^UKCbZcyF%y zXChVNku0m#?j!3(vF53;m)^&Rg9qMgmDqmLR9AkaUtaq>Y!UtjFrlc!`70eR#DDpX zQ>#o23nC k_Bka;5yj-Wpw zdny(AAyZfdP!UZ}fwXO0O9^fSfS3>?U^X6Y36Y)0n6DT$Sd^qe8wDPSb5s&QeM!Q+ zl#?Vv3_-|7RVwfnO7Q#;DDIED9+AUBYNTL0CUS34);EsROvJ(|n4k^}*?|#NU}K<# z4t2R9&@l#XIC775a0A5AmxUOz9RZV3^G^`O?A)I+?$`TPR~;iPeo}6hqq|-Bp|bhO zKJzxMlU!2B4zn<;<$VFsSEbS^O82ZbKS?+@<3L*8^{(_by`2gd{C?vSR2*9UqR-2^ zt1tf1y*yUmC9HZ%Wz|!opqoZ_#LB!rF)nw$OKj=P$~t$9XqH2`wqK!Nvx661xy(W? z$n~Pr*W~_^h=t$MYmZ-kIT(BH{bf`Cev@rpkq^pNf05Z=Bs}qPuj6%zsnw|(6#>`v zZ|(Uax!y@!-roItYngIy&v~Dkl;WC~oVOM{?^P>_K4GV4zHjgD*)R7zde^Vs)rPxA zi2Y?p+Ak~hneCxFc%?M%QWo^ez9+wr^G`2tD!hO5lRECkT dkk@*<$$d)v+!1jt&+Ve(_m2di%f)PMB9cN&FmWO$_ Q z` CuYqB*9{z1;D`W4U&yv4gLz}4cpS1o#3Y86Dv@0dg|w*M4+LREPY$}fgYqBD z6oo%P$sGI`vRcsmhXdqP&*%uy)4;Jc9fmXw`eJ73tCm=5-P9B}^U%-^G_yI%f9 =3&2pY%dxyD@q<@*3l%c+9RK+X4?v zR2lu2=qe$1#_hE0bbjUZxu=X3JG|29Y3K8|Dpp-Rc9mOKXnb4e =Ko|H}%%--q#OHI~+|4CsnSw MPx{)ry`bgiW${DZ4QK_o$pFbfqZmVW^rV8c3yx1lV>pxV)G2cgUaDHEU|kP8E5 zI6=Ai7flcg8NjVhFk$}gMc9|75O9D4LS<~&J{al z)! zJq0n_nRkR@9_LnNG9^~AVpfJ1E0ORYG&gu_;om-Em5qI2zDR`usg_d5y7KfcI#J8| z3X)yI^<86Z=gy@~0@nBl*Dj!8l6BONdx8A>l2 }z}9_wJ3g zNtqk9pBC!nX4gmX-jiQp0NASdW$!lA7%c@J*B`n*)^PmAG;d!~pD`pm`)3RA`m`ea zp&E2juf+dA1EeOUXMf}BH|`9JYs>ldd{i^%$S;=?^``ezUbwaGzvku@v1k?1?*=Sp zU`%%2d@LEAw}eq6)>DZ7EKF|{j%eX`lI@Ep<$&AgibLuOF(mvUW@pjP)0gT})YSk} zSD^#R5lm)<*aX>m(3+1;PwJXV1s^b3ky~KTMDdBp`s+x59mEYX{0ne4R4|tZIcZw= zzdU!0j+?W$b2T?0=fNgLzqbvp=8k*Tab$fx(k9)ZZFz5gHC#14*(sM
Ll=FEW5$dLS@afs0f{*Sex9Arv z{C-qky2aaW( zt3bUr82FALr|}Fx)RT=Mh{-61M7{t; zs1ubM-1zB60V?)@(3USwmql9pGs)18sc)Vx!|yx9)U!&zj%lD3m9Ja?IUL6wG(aX~ z(3<*AkZ*S! 3GV9Pt=g=tBXU_#4Ec*Z|Bbz>9y~401|vp#PH!_vZ>x2r5RI zrOTz$vndKXr^3z6a*NNdcW`h{ew(_hbj6fw4PjR!R<6ERt+_zJEZRW|lnN7pWXQ3A zO%^#6Hinu(N@8b(U(-3vijkzb+8wl0b1=hC<8sw1mL|41hte+=z1dTmm%y!8gSH)p zOgvzJkjlWy>A)((DXqdrw>NBWK^X}ce2y316cpxA$*4s~3|s~FDJX1aMgdCHjw{HU zzmBfd+f{Fy$ETNvBsLbkB|Mm=u`!_RwOVd~gV0pEFN0a%LGw?D9Vzba)^j&ntoHHR zs^{VF9cG4ghkOq&FVhZjb 5H| mWe(KyCj+mTXJzvrBm$>r{7g`kpeRmJ6o0r@hsk~P=^-NJt+ zJ5K8^QrmhfGop(mscGUn pp2;8#fEpE768Fw$(fqM9%y zyL@!|Z=4C^bFRm>VU@`GmuA0l2P6AUE?keCE93l4rmaqQ=$lh-WSEnF)%O!0N(;yO zOLeBG%?t+9ZRx)CGpf-k9XZ3OmY_2(OauGR9$9vb{lbc|y+j7|=pa8urx69ZMq-88 zT>XU;4nTWieaAskFnl7ISP=xv3H2+I+946}_UAP+Z%M5*w(hC$Cc&7PN&22zQLl=& za=jDqN7gqK?QfoU|2J*{(bG|R5k9WWKx2N=g@`PwTUv|s8&_s6MEecZovz##{mF5m zTSEd&K dQX!2k|@@5W>Xg*3|$gtWfa1RdD%eC z_itFvh<+2$zBdiulS=f>m(2B164EcG9yUc&?V^k~g0ln)D0C8nqIQdR6`(UzuPVPJ z=qE%Pu&~6fiWW%J4(Zl_H^`ZUhOn}uz(D}Cu>jn{c-Kq|bld^rL&2J}VZsF$Jcz#E zoz}-I`X+B&bDBZBKd&nN>zVDLBlbVL%8n{iDE;~3Cy90@g}7N!bf;O)Ydj_9z{({< znF@_51D=B@UkCoOXe8D+tPOUV2MZ7OAF>i`2A0TL9s=b1k2k<<2)KNlI+-rJ8BOJe zMt!K#K~Jh+PCfadJ*`MF29<-LDH>}6Ja|ma2*|Wz(U+70?*-^ zz|yFq2yWs5tnYD;fLwz(<}*ZoL)0P$Ko&f~JeNo|V$Kt_Z^sKudROU}TvzD!xpB^P zz>OZ^ax<^{RpDtRUQx)3nGAbQrlwBAlUa}sSx%&-n`Myy!IC3z3; OalG$WwcReZm|NkP&mjTI_AKNQGH@i5(h9N zDyEb{;VhM0D-vQt3^fvRrr^3D)Mnu9Y&NJRONA6utBAU3@d?5D$_*CntiTl#TQ2fS zbT<~#G*{5{^z)o_QmZFfSaPVFmzsNox$pGcq|(w`XOmM~a!OZgMC1PRP=@T`7sR#M zf$7D4oVa_G9oL#$Ak(2kj)dLNNm%d?-*2-jtT^<*tCw0E`(t(a2|tMajb!luCIM(g z#=&R=N)1wR5aMABI(3n~hkh}PXqo|$Pb!9P{fQmaQNK2-Y(Z9xHj|{N9|(#bOhOEp zeb@#fOFtc~|8}k|B+gh59~Q9x6$62;AdtV9Sa^u?MQ;jU0t+lL6V4XWk%TQu9KfSY z6iVRzFo%Uf>hMh 2R7#rsx}?9_nUL5E#$Xcz0;q9i=vF4T1FgVFL!3zRsmhjn)j zxqf7IWLNM@rRI?;^=iz2F;5M)nYKEg9|-xrMvJ|>QSqNw9-331EDap2b-tMQJ$!h{ zi0$n5%WtlYsy{sRI7pq}$9B#R%QLni%62qZ>YEDG^K#A-UmMPC+__)5|JiNleAcHk zN3V~m{V;3&jnmmA{ZCK+BAX8n+TCWPjcR(X?=Q(RuKT6AX^rE($FJ*h!Ru+V0bYVg zLw!eAVL(w=MntE1`@$0^cxy5WSi8Zz$H4wK!dyMs&S+|YnqcO}F7tHlHsidKDA)v8 zT>&`p6T0N)%+3tHqA>QfkhA@GcYI74C7~l-&7f$jMh9bS7%%+mEQbqV$a_0(vkr?F zlcPuY^ZZ|3d2uJbzGbz6hEi{be*?o}PVdtfpphhIJ>4ieU#1|sAVxf`$xA!Bqdx4- zLE~hzh^%udCeeiFxWa_G3_tRY^XvWd?mQ>)jn;P2-!Lz8_C;Sh6|V-yJk?fYuQz-; zPfAW)nQAl5dYbislwb3Cj%}Luv6ITY+xqiO=AE3!pJqLs-pe>R_4vb+%7PF}``e6z z^KWiSQzf|XEA)G4D;y-b@5=) S!$OGrPL#H`HC5VGk~MxaHamXdK8>>$-^eilVBM}pr934j m5P#|#S|~-DcXPdU?FjdwQR>#9Q*kGc zq$(M96}#h#h(@?D@e@(nk~nUOd)69dBG_>**A|^nHpW&GQL`}Q8^TX00E_J9WH=9C z#}T^@ttpUcL{TsOuQ(q30HysXV%iL{n@O#TGqpQfv_W)*pTX?oKnD?%-;ubYFde1+ zx+dt2QML`pGD_g>tO;$_0$ N@ ^ft inWsuXMaWQ`>Mko ziyTg@2zc>o*`rGzcNZ(O^7rnnl1>_ad{1Ks``xkbd}&uU7)7m}i>^U aYII6MGR&~r&`f|4^+o>082Dfkgjn?gd&(M7ZwyqsR{ y-j2FStAUZ6_heQw3>h`Iyg1Sb5 zy02TRI`p|uPAY30w@DF-6)ruJq3_W2bgTT&z8F3~)cv6x?%W*703UYe%IU8j-;f`1 zIo=(u|C#B(XBSy1rK~~KZ)1d`a9hMuOMT@K`}q=qt5pQ)bc&_XAy3YojGd)Zwz6^! z8O&o1ONOi(44TM~osNbtg>fkXPI12m*as@#(LaQEXuaqkeKwCN7+Q1sW)0uN;*6f$ z`&Ic7mK#l<9)zIWuX(pXVuOaUZA;$z6c*!91Mzj_T(eQy=i~X2Ivy;|yX%!^f6HPT znvOPvc^a}3LJY5OvGiN-_`@kLtYk>%r|<{9-Ge<8>>bO12uJhe8w8CdHEFpV?ecU| z68I%OzI=+*lW(1-P!_%um ^KMFFl^j9>S5N#TiJ1F zo%PGqpW9p7?;(S5=u-)DGgD}PZh@Y-1s{yMlvOeihhR#DKmQ%~iFMsY1#)#%;RU*1 z+To0>+x*O#W|oJT52k0b+&RItbsKF0l8pQ>8T&P_E|AdQY_hf^dULoSl%lR%m5|+~ zaJ2J $QB|M4Gbq}ME714Ut>m5bW%|yj@eXXArY 93a+U%lhheo7`p;%4)O=#VnBZ2+ye8V0OjBQsD%wqb9%BT!cS4a zh LkJgvEwDWSQu*pE sWXzVj^JlPee(8jGxT5owV2#U(%MQzqLaq z)LF(Qb7QYM{uuMKH^DL3989%2pkc765(q}A1sWObKw!)Mbj1O$vyzGw^IDy8cmH z|C~;?PSF$rC(qM)o{DooLgyO|sfMiyE*&&Ab_dOM!F)_a5zYMrOD%!wEi+e=Yu(#r zsisDliYd$t3HGsP3io87`;z6R^WB97hZ9~tEngaRyJMR9 zuZQxtyH6fZb?F+Z>4;eWwwGq`LOEbY1c%FP%-Z0UUmkR!3Kk9YU1o|hvY2tMGPq=t zm=ieF?j{AerwXXVgzVs-2RJ%WnH7Hh4>E&ZfPpYrLXO}_41`gYMn)SMY}65kl7K1< zo`K*2aZN1I&H;sgG&wjO+OgrEXnF`puaJN`hrkmZCIwiwBDITL3PPiGP~Ig07m4C( z=AR1?9m#P-2BLw9S~9|5AR$0d0@~NeD4|GR)H#B}3HaV3MIX8j&gXM(hWd?FypPf4 zpPuo=4^ZsGOTu#(3RsI)g`ZHhc|y2fI+=cDVd^!(?Esy$(Lmb##x*rJ7TPA7FSMqa z1RIlw=S7Bc?1GO}QeT+{+Z1+Y$d>aIK9${{wfNvK9jp1p56`$f+GBjzP^V &jQ&iwD)J7q;)( zAjz_~aPKSJUcgGQZ?GiC!BP?OD)dcb_KegUe#Z~|bNmyr-{kUdT+f`}xHx{=H!Pd5 z!Lo_Wj)yZgoHlm8$8)HZzhskBd??LKKp-Xwg?6rs6(JL&>riau8Bq>xUj)8QJKpTq z@U-2yTM*-^T%=r>2Q8DxR6vl3Q!IR#&5RYyYm^1}(=|hAzsuh0P(1$SCv)0HpSx6> zj4qdKFOxbBBXwKpBK*W9#vOEN|FCg?KBi~8)CF8VbqZg+x_|o zT?*uv;;H~5QK#> N}`AZF3b6N_JLm0bAN zT!T^=#M!8Bi_+~w^(Y!1KSW3{=syTD{|RiMP!$Xtj(;vzT3P87MO dPTojFq1bMLx8low1vQ9y7mQ-DvUKx4WKS+`Lz`4}@LWke!8P~lc zvMUAK3a;ZOC*E1hIcH8xExzAPu1>lZL_GImLH6s51*ygX!GQ)IeH 8tIFx6f%AP;oX9sb z)AN)nt*#}KZJC(d3rGYYC?ysZQvpLb1RV?G5eH5{S9($?uFd@{n6Lb_z&uK@qP7^>>*48QfmHQekZlXX91}x9=@fXHxY%xqy?UpJX`}QSP%U9Zqtp@_g#S z&hizf72fj74zM)ea8E b^^G+AYpa(>~-u4JFRH4O9Q_5BU&^Bmpo7q)Mr*0t;{FNpV%tJK#rTNm%} z^1fGX
AYMz?pY^8NM98)Zl0RuwOMy={iw z*+ux%H>|?TWY<=ISa0#{gJAuW;^o6F-~F< 7!$N8sb;p+k01?krFr^S6Wb!*^OE=l=0gDokU z$-PA^D^$x`>#%5!-eG4cYUewhSIm*w*{9VEPwgCA_(4PUaz&tyAjK{we)awJS1M0! zrL76+$})+5ooBXoXU{@!t!m|pJ@g}<338fOSpM%eTl8#h9+WXZqdUCq(3hE0?q0qi zIb`#y>Sx>W$ZZi%zIjHBWG~2E96xm#e%W4ev4&7DgOfQ0Q+5 cY_jZ{U1LkK> z_Xxy`y8IK~J&;>mZ6AF=_;IjO%38ha%@W^>>Ud#HZBdJkzKmA@du`GnuiTeUl%moo zhnOauGKYl6j~0ZGL#^kg(x)cQ%&|D9$O+f*J<`pcd+;HzMHaFj6L4)y_d4d}(0g)k zS6Y=Rd?63xk9BDgPG(Z4&BRX$m|8%Wb=J5(Qw^q{>u!MHj4$39Z`aY s3mPv-tuO;H!2BhZta$lP;)S7iOnEdHQdUmbxzC*zh|xYH*y zfX&eMkdbTQhS{-!a8mmNX*V>6q&E(&&fu^hO!rJtwR zN1HsOUYwPxm*gHTcZwENRFr_jeFd;JtLSMXi{+N4*pYK&N^swofOFgPIPE_iC^rOM z?>yqYHbx|zhgvV)qzaN|(O5Kif^3$kgo@c#)EXdx!l3_nU_yz1k|u>b5qbi#Ihec& ztOkDLFKP#`!0 ?UTI 3aO|RDVUKjL`wV#hN+iI`V|ZQPW2P$iLQWPTzi1^5c5H zcQp4q8UYShs}~=dGo;moXZVvZmds2VMAUtA?pm_&aT~`}#olF1H*)#4hp7>bQ~D@@ zg0je_k6S-DzQ1Vv8+ROEWI0m)#iZ~zF8tT5Q1kC(^~j+UpUYIub<4k~RR iOgIBv)yEHI!lWpeaeWu78TXOVVo}8Mdcpc5iOG!K8 zwYG46U$@I5@pFpw^?8>syjbVAcqJq1H}00^ldDNhpU=2>RK7kiwQ~N6u_Z@mEdLrm z_s2cTf_FC}7IozpZL#gVPS-AM*?KHo6>jy`DXb(1qmIr_J@a#(?()a4_NwwCFGpsS z^~=6k7ZKUx%Zse}MPbH{DJc_2)xtw&KUvahKcI|~yaES _q4y!nos=Q!0I)Ke)u9{Ho)$AADMv={~~6w>)lp^YgIazVP0p?tHz}_Kfm~ z&O`cyw*<`_3Abw0qq8fQIWiNq7pqtIYpr1^QQlJT6gxik3Xt^L+oitp;yjMqe2?eh zg$%C%4UJB^Zs=Be{Rp>@J) ~N8@G0S)7QBInd;1GyX zx7_X~x697Khm-sT7kP((-T?&%ErofA=K&FPjwDjHq|sI5EYUO=Yx|ZJ?44X)PfHr1 zQX=L*tnyzgU5D!0*an6A;KY;hXjznMV8u*OtcDUI$yf ZTjYCL z_k?}@7aJxYeC()oJ0kUan@!T{TYip<8?^7NbqrwaJL>)>>1Jbw1(|JMz7mexzbKZ} zaV;_tc@={MYteE0&&MB@*Mx~5C(Mp#cL41p6Ek7%Cki!~`4IUt2>$J?Ohcd%szDrZ zeo*QIxE~x2!F@7jSI`J`3IP##shbIGSthv_=x*E&OMCNJ;C$)NAKXrUqteulYWy*f z?m{K`znvv^2_hlU|KT*TIy@m7f-}s=iWxT;xalvJ;kGXE3V>u!voljrdE}zpwE?>u zQ CKfm)X{{9YbwqV8g#- z3l7_oU}S-Ro32$GP4a}k>SIPQ39!P+iiCD>xJ7e4C@p5asZOlEC> 5-{v=$=MrKKA7t(CEj&Z-1+hc`=b?TtBSTeg|a@t<#SS**1?^fZa9c-!mIBXYZh zd|c@_Z_C{##}3!1IJG?@J=DqO7rWoBe&vxC%^h5;b?oRhd*{6g+1|=~XQfFHoCNUZ z)iD6sfZhRv>Ww^$Xk$RwFut9z!iyusnWff72*X3&%A&0XS)3?oQ$ #m%?7m9z?z}CP5zj3giA*ob>dy<@G{JC2{E)B zuvG-TLqboQ)_`;DTuyI%zz=>hMew;OVrHr^v2fG!_uN;;ZwvyqolP`(8@yy~Zo=5R z_4PkE-FB=Cs?s0xl(KgDJU|_5q3&N-R=sIIY}KMpc9{n4WXECNJnJHm1UJrH1`~YJ zXrYF4pKUwzdW56% 3b-j0W4x1Ia wLdw|g% zZu4W%+ts7-Fy2#e(qZETGd)vv9=B+Y-$~gFre2Gtc=%FH=jksye&eJJmi+pS8`P|L z#(FUt{@`l6%`fs;o-nVJ+0gSPK-Dru~~a#9kWnbf(Vjkdws3furcm7+#Uswa2QC#z*EdOtkX zPRvr6&WUKGxwwRMbEisJW^}FWj8Xg|NW&F)rC03O+GVV$V+lwBDu;t=#5hT6yif?C zj;+5K=q&eT1SBiLD{4u=&=u3oCUwbj_M84GS^ue>z)P^_XhwZKKyvx>L zodt|P%-ll02!aCJQwrE+UR&EZM_2Kls+T* g)h z;vHwR SW|D8#9&bu~4YCf!~WR%$EGa-Vvy)p22b=>vy> zp&|FuO9^jS4y~KqgTLDjJKQDPZJNuXHtGg})&=V8LrX_h=a1iGfVa^9{+A`raVk&% zvxRLR5usUR+_0U8WehN9YFw)yB^2-)RAmPv4Zj2nAmUk}Jw9XH?vik5vy1j7Oo~Pu z17lRh!4tTIanj$!f5U+gf#ZJ-un}mVw=z3{1`iTs6HSF!8Uw^f5j__Y2yAed=(iz% zh=+_qRMz^}IU?bl4itp;)+^f|NqS4%_Zb>azb1x1(fimqeXg@a>FvRlfy#a=Ab7k6 zCt<+}k|}Ai9c}N+ {ZJZ!NiLGdi&3ti3{pL}dZQr A`5t*p3kz5VzPABm7~ zWzN@ueM{1`?i{KQD`Pe9&=kKB;Y{&cO*} LcdHthHUX41y6y= Z&o7l>crvPrW4Gv_Xq(FObd20d0XCut%s!mrq8X@R|hxv{5wbS)I2|^B&KtT*f5i zJh1cfduz|T_}&TG(TbfidE86MDjGF{dK~F Q!h+GZ zJOmc q z;2f?Tq;ggN1P~J+il4j+|7kXB!H&T(r4O$U2W>j?@SRg&nul&??cEnu_XG+z#4n$| zc21tKZ)^7#etr6nFdFgVo7MNLend45=dKOBzb5-aFW0<0r%nN%-->5aPu|mc`PONZ zeBDZ|0JBHS9t3H9G(2W1jMQ^&e0zW9TFt6$Z`1ppT(9em4rz;8)%>-mppe|MLQCF4 z*pd4i=NyPPnO!D1ZS<4VOy=G xnyeG$0nD;wna)b$w TLop5OdchJI|BwIF#F>#9pY^en0!NV_|9Rb_sWv>2hho>crJe z`Uyh|O%j_o3#Z?j6>wd*{^AlG-Exh|Dk^NR z1mX@)MYwV1g<=S=G36~$`xM%;VB*!KA)FOKifGx!A2W) ?*AN4Z%!CqDA{tUV%2fzn> YwGA&I3dE~43$Cm7UM zBNjp4ZC%9E*}o=t*^MnV7ktnyIC|`fxbavmv3X#K zGqlb&yuZZ2gw;oG<9ucAo04X5=TJ+8voTonIKLXrh~|BD (Q%?UAC4w& zc1||9yJI0ZxHfB|B!H o-n*jp46-v->nJlr3qB9R8FK z&{OT0SJ{cigra>*cC7FJ0Z~`$eiFqGdXaW2@B}NM%Z$K6FpVTpC1e3#%<1`n{SqH{ zrL0cMdE%N43o6Y?b!T^MePRsv>pm|pry9aPG__fOU1tyts__s;IT_i($aR#&!EUg? zayAsD{b};S)(y;gX9sO66DY#b1e9qR3n&}bbRJ5TT@0v-g-P4r^&MYlQDleJ?nGe( ztT*f>98d%QLwHuyzR3leiRfh$Q3v`Pv-e<8{+L=-n5qcY86A@U`9SQf|MNER+oGa3 z_zzJ;B(i0jMVns)zCsX<898LzML{Y$R6t0#A?V1ADR#ytz9_Y^Q#HPDe%Gca)4gBG zXKN;ZTasUM`mkTu7I&K>Yv0MotO7rt8LAr7w|{A!tNr2Y>D-4W?+P9ly_u437d7SA z=Ud;M^ZOr$MXZSP<~NLJZ8kT%A~{WvD%@{W?QVE9v~<+6HOx=3l-!@?P-XY)LwMut zp3qIT3OlTEz4xX)Kcv6OyZ)()q3)BXztSJv9UVUEeLSds%u#!=@xod){lx}}x}{J_ z2U`MWEDD`B4ECkV?o`#5rbq*e+2?)`uzsQd*+cY7jGu;H_}6lyaz1ESA=(kLC-C+E zTJisTTfqs#t;U+K#ki9?9dwPeosS1(vzS6lmfxPo1 ^R5?AKT! zOpYkkr!N;QJ9)w+7X~if+F%yoneYR&qJ_>4iUO8Bb+28BOLT|1fZ9RrsCq+T>DXvm zoR5!*?MXioB%SwMRfhMFxxuGxy9`IebCO)=@Yen6mt@=s&$(Td=LIh>G#S%-V^e*J zF~ 1 z52=j%wZIkto%->FjtxwQKjw9UoC^mGO+OKZ$u}VngGM}b2mtPY)k0wqkT@W4;pRw; zn|?H;6`5KQwlYqu0<(afWDNO0LIgr24g80ig@igpAwJfT@o!KBJE*Eq2Y}1NIKN_) zztN63C|~-6Yk_wHy+r`pQ7RD&3I&KCHeQg&x;ep1{QV60tU5$Il>m0HsQnuDXe`0b zc)&=86MeeIW$?4|T=lOd)%n%7P3@JbF+^ckUUCcV=??D!iYhU#3SB=7MDaGlU<@>P zEq>O^3elj-Wz@?0eRRWNjrJp@FghD7e^KC(Z~SNdvg%*1$lokGKI}!YIhZ!;5yBH2 zq=a5_X)Zh5xJ7oKX;+NrfM(hmuM;2cs_m`Ft5_^D_oWLCx}}@;5nEjQ30G8tP3u@0 z4t8Ng^)ni7*}dWNpj<1^f-n}Ca4nupvtOF_VChpwV}c=;k8Iap{^Pr0vlF{Jp|QA2 z)~CZ982_w1Da~eWW||kJr ?Q9-7oK%iqk!l5TNc)&@A7lz3PY9g1som#6)PJ%aRx>pMPvE?_0j zCaQ+&@ld9r7^BF`X;tLs2PAa{ImCI-T)}R4OcEJAQK MNJJ9|PMn>J{3t~6 zSG7a%NR*w8y;Xsh*bX~@%m-5rfy18I4pip-YCWQ~WWn4*Ko zXOPCxa^$jL)*So>yb^dbc|1E#f&(M*BQwJB)##CFLDO%Bjy1Pf&h5KeJ-n-lZL;o` zmbkc0ZnDj9-2BMl|Hs#tz{T`_|BofnN0LekC6zWIEl5eyzVC|`%F?2e%2Jq$LW}lA z+O(%l+Jr<}k+i2G?JJ7*rs;p4duQ t#$$Gjs2K?sMK}d!KVUrmGH#4|LOr z)oKJhy5c)RBt9|?$#M(Rxk%hBJa3pbnCjksme0S?aa?oFXxmrMohP1DNSpaE-#B}} zM_qK0wOrC5&hUKj39iWInm4;Od+oMXKPa@fcyog-aJ@sW!S^2Gh`)tMee ^^r9z;GRb08TQ44DLxl%bc$V;JoO2o<1D-&A>S&~?~_D^i3{Wxjla*kzF z3L7hX =M4OeZO1390!thbTLO3?Ltj`i`_b{koGU)UuVTkcpM%H(&h&|+atiF zU3Bf*qB41+(%4Xu&46~;PR5OQF_d3AFd?12_Vz?;rC5$_xbe>ITcT3yN(Du&zl1-v zToZjVQ~y54>n#cmO9Ex5i7KD>>0IS#F>g12^=5JFg0A-iH-om|Z;J4*h~cEa)9Eka zf}f(Be@bVRvqu`)dWm|c3iNgqtlk;J&9Wy`82Wn_W$1LWoZrE`DYMyAYg9rfiTM~; z+MU~Orz3+DNhjkSY?GsdrFQmpHEG9qzGdwCSe`yE_@X#Z@zvqL!n3tbJY`q!rstbf z1^!}tTl_QP%!?2WQO{w)5}row6Fd=Bd(^+f<`qHe6+{E=Q=E#2p*XfLso;;@EsTWw zmjd`Jz=O+!^6%}B>iGX?Y)k|A3J?%l;zV4`{w{zNEl$8fx0On-MWzx$3M}Y?``CCY z7l{$#cJUH;c@M*A0o1+W&sKtn3uTrN?H zn#$S2Gy@@FDnTbM%%kE#tn$mm!nTC0`%jxW$4qKJ8cbhO6c!#BJ>tuswc!?0ep)ap z_UIb^N~kA->a0P}qjZ_3oR#LnVvJ+y4E;hcO}>%^{40APU8~u*px;2T^#kthhE7L0 z;lWAktE1Z|p;YczG5lWEnC~K1_f&kWk-SOjK1ppjTY-@Moa+}|b&+{^{+U_ti>>XC zWY{IFMs$4dO6qyNsB+idt{QC*VUojQ5HPecvdTANS0yIf%1r<4t}z(2i*ICDP)Gp> zfN!3zBYM`j-gq?NJRbVrbf1fj#jJ|nh<0aEu(e;lpzUZs;D2iL#~OPla~O#g7$8J` zwoE|r91f{JznV16H3SenW78LtMxdx_mUUR*?S4B69p2-+ZLK(Hj;x(ad%I7FRrvg+ zW19m$Y5A%+yQa2mg8i|NS?|u(^h#+rpa6}Z^NrHK63B8;yq-6sX*=}$hxRH6KIz4` z>Op-+@~(ZTNmD+GrD8@O^%;BsYYIBUc0wElu9Rf4SN2?BN?KZp$jcImj%no_m!y_j zv_tITBP+9?-VvMMLcH2V*AYt>&eH2IXqcwnp*HHI!SYtISNNEYh`qzjrL MVQKY-3Au*qnZ9#T7 zStfMv3KTN@A)dSR)B15qyw$Og^m&t9(sa=>;iWo X8rBaQDlCG zA>{xi;(ETxw0DEszQ`{KN!4cTCFR{&CcMh<8Pc(sclBT5i05W4_$fBxWb`egJIzc+ zMlm(^V$TtB?B1`hnr3v|H;%n_ux~I*s^Ff>8shZGNNU^Rd~^NSw90n29FIKa#po~{ zp*31>9 9370*+VM&aea(L$h*Q;j3#_Enli%TWNZhHHr&FY)r~|UAuHCu&R_m z_lt9r{4!zPfvSLi6l&bfBp5GCE^NFE0@xQH%WF5v-Ei$t${z2Y>;tMtX+LE*Y~}n? z{hlb*8pI|xIHp% xRMUcbXP378&;ic>`~v(ME*42 z1@y1+s5a4wS&fkD*R5@=JC=&I&z6<&Wn4YP8S>RoMct-3=cYBJ2JZe#O9Jw(#x)-` ztd5h5k(+~;xx>{%Ye5XG{-mFg>idmg*dM7RYB0pXO8?`Zq6phs6**NU8#HyqCRND? zn#8MX?^XdXTP*@wbk@NH0j=$kK^2@<%F435x5`Qale2ETXt~ugz Cj)v2U?S|M&{c@p)_h*zl(Sx(kf9hJOO0t)zXU8Sc7I4 zOXAmEkL8(ni@D!!O|_TEWt~WhzFT-!=F+|+sZS;~Ds>*N)+|n6h~(6MO6;rts7EhU zwtM_WYEsH0ZQoDp-fCVtET*H=v=KB7);WU$^AwIYuFb$(!8Ygr%4p%n8=VXCZm>a> zRL9-xw;cxwBg=m+JtQAi`hwqqbQ&Qg0n)q;D6xy!NXQeR282 z_L@;Er*{Xdnr2tyW+UXenBdwGNdQD(mve9@WbnH=UIQev`rGA8O ziBAXoo15U@oPAsnKfMqP$A;hR)!nlOvzGd8f!V=f 7An=9}lv%jWK4%H29kTuq+hX^U&dQ zGN)0UQt`%;^1KhCUTZT%ls$*}KZ>vNb%X(1l_Iy9J1z;VO 6_}j*-Wq zNBL?V`fYdie{H?C;I>g?h9&y|N1C{UyS2_$Pg_RMQ)9-@KEHPpzg2wkrS=-9u0^`s zucg*kd`FLQ@dxkuuHkH!BOqJ pfXMrJO00w zBY2FM_56ppgk@uPfM8OSN4Qmkh$>jl0!v{2b~^t!pRgrxUHC_x0(w!9>klO11SyOg z`PU}0+!Usx>yaQ=EGTq1W@o^A&6ARC_euQTg@KH7NtGe7-PR=%6UB>%x}3fR+?>dX z?A`O^8H2~PY7BYCsP2VaOMKu!=$wA;ZMXfyM^-jw)1ANH!&EnFHh*Y|wnyu8P;gTl z)8sBW_cWWhZQg;gS?1MDz*vmiF;L&M^0~uw#c^WMk= FoQOK^)G)4PGK#8^Yy#DpBnAw#R`TAm@yL6fDc8mNmbq0$gZno8@$^dnUpn_=!AHX z7QO{IN= 3~4P77#_a-b3-+A0Cc)^S}2g^+j- z12zH%9KRW}NEHweq9fA)og`Y>-*uUIP6f=86#@dyVR(oZNVjMrG^9eXv >tBTBvW|^`6WdhfUHF++%r9^PCgh}3Znmy;FHSe+;r!c?0 zkgB}1`CVgzNvz!=_E%f<6w*#r9+O{pPw9-)OG(bs# ?dLcjSe62XluezldJCbiQCvFyPl!961}nsbyt4>5n+N&dYzK3C?vn5!SF+s zXOw6g5)b5gA(tCBjNpb+p=~wubgFJ^=&F#pyAL}@C09pQiOl%Pcjex@G|Tc~_;Tw3 zH#L#+9)CHTac6VCtYi7ZmnRRtEiC|5(7o%0P|uU ^c8#B+LOA}{hopF`Q zvgfUPf3N6QCHsxr>E%C5!kY&|jwmg(hFsHaJk7Sb&3;Pz#Ke_z$M?@?r=BRd)&G1C zls#>ie7kY=rJ%iyB1VR}D(dFEr-n6zK3^)Sm7C;NbGY&5`kZ2P8EfFw&^F^y&bbYC zX^aX-M)?=$E@%(S2=<31kZV7&J6qUI92%G`z3K9#nK-en`DT@YBH6T%le9+sCCx#) zx~DS|+L6xduAMmB{c{A6?5jZLy57TzoTGbLm&Pu!WUH!-<*6`~M2NqWBeAX;`v)u# zdy~sd3|Z=AmbCdBdOFWIg}$GOb*OQ@%sEqARvt9gx+*JsnQ)_%BxK;vAUm)7Y }YGKUGWougSw-frfF7 zU2{&! N8K46pD!PJTox7Ago?_P*^W_uwEZ Q$uP2kc|4kv;jsb0QHPO3I70WaTJTfV@ZFh1N7p$6|HdsiE&Ts`Bs%A zS6q#+a3L~YdGm&2(;WxpU96Y68&(X-Ol<6qb<0?BMcd;b!Obw@%G&r%*HkC>-t8Xr z>D+8^`!PqiSK#7ksaj04=3^J`=+i}B#{DPrD!kj{UafE2KJjy%#nF;h2ihNn4@&lm zcAuKponj-|R#(`K2w&UoWVd3Opxm6Sy5;4Q?PYI^&!10h5*xEyOKdrD{BdrBf M1jLmWQeD{PgO7-HLc-P=79V?6mU %6o7|wL7W!c9s-34*M#5i|9sw_p6DR} z1lrbWemE@;2-{hs52Fr`z{jO53v4SK#L#mAd=u&)gLz@-s5G!>kYz+*M;Z8q-cMx* zV5b019G+xG+7inoAchiJSL_#bKrDp`jv3bR9<3YZmSZ8y&9Uk!l&lkW)qVh~$OXmf zNKqj!*8L0nHtcJ$lY;Xphdq3ZQSY4DlT7_StvZg$YLoQC`*-Dd8`P|cjrQFCf<1`c zex((jTFPSGjvO-O=u0a=U3P&-#)`Ew6_xkCs4qU$&7?_Emy(nj$s~&BEU91pQSk;S zv5pLZiU1FR!gin^8MPPvbNenW6XbxC0Aa@h7tXn#ej~<5#1G};uM`#>*`2sda4}45 z$%xat-_#iwp0etq(4JL>y;5zl+S^^s0<1qA&5+l-JC~{SDTj@_`Bsj%P_%aw%h~9o z;sWgrnPGv<9eF&iD@+Y)yJ|Dn8Fgq4E|On9n5S#s`NSo>rc7oE^mvWI;~Qi9GM?@E zC_pw&+pXaDkf*{VRv>Y|z*o!s^Nj)zt5c3EiVKXWi3OiOE95^pJfs3AyiDjZ%XYdU z)8mp4an)4|h6 cLpjU#uMwdK7B#|se(}K%Vr1RPn$L-aAdtXn3*ZPQ1wJWp)ZU! z`<$dhRlz9F)PZUhg%P6}x7hyT@^$uM#}&JEKQ6Yu9x-k7^J^Z}(K)_BFyA#(LomNJ zcqf+PFt~;F{ABjItD9{sr;q+KR_a)dMhlle5eL(Ye+9h)V($h;HG$w!H0*CKE!v7y z1&jB71~5c+tXq@7nA}Qw?IIi2?2*;CmkHa&fBkrqk=J|0>5HiOY;IX(Po46T@M)R3 zk=!`)wrz8XoYr-2TWG)6^i*ah4WF=jmFdy4)#BNaa2J;x$p;U#=CmekK0yoH(;seO ztqYZ{DPaOE*NKv!D5u7cx&Zn&LRYYDdn?xba&++{8p~Fb*2!OX*r$HMd^ZQtZz`&k zU1o_vrt$g6AuBT$ms_kEmGWOw6bHc}SLd~K0kac &y>~dqYdtsS)n2MRSUXeIH>YEgccfZw;<*C3 zYJ%SDnf=q}oOTbSRb{wkCbk(`C