From 0658b82f39141709ac2d89ac4c2cc823be9ac306 Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Fri, 26 Dec 2025 18:55:54 +0800 Subject: [PATCH] =?UTF-8?q?jisti-meet=E6=9C=8D=E5=8A=A1=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.dev.yml | 263 ---------- docs/Jitsi-Meet-Docker部署指南.md | 393 +++++++++++++++ docs/qrcode.jpg | Bin 0 -> 450834 bytes docs/qrcode.png | Bin 0 -> 33799 bytes docs/代码重构-视频会议API规范化.md | 177 +++++++ docs/功能实现-会议通知消息.md | 310 ++++++++++++ docs/项目总结-Jitsi-Meet视频会议功能.md | 475 ++++++++++++++++++ jitsi-meet | 1 - .../postgres/sql/createTableWorkcase.sql | 9 +- .../postgres/sql/initDataPermission.sql | 26 +- .../docker/urbanlifeline/docker-compose.yml | 235 ++++++++- .../api/workcase/dto/TbVideoMeetingDTO.java | 15 +- .../api/workcase/service/MeetService.java | 186 ------- .../xyzh/api/workcase/vo/VideoMeetingVO.java | 18 +- .../common/common-exception/pom.xml | 5 + .../handler/GlobalExceptionHandler.java | 34 +- .../utils/validation/ValidationUtils.java | 30 ++ .../method/FieldCompareValidateMethod.java | 156 ++++++ .../controller/WorkcaseChatContorller.java | 57 ++- .../workcase/service/MeetServiceImpl.java | 450 ----------------- .../service/VideoMeetingServiceImpl.java | 241 +++++++-- .../src/main/resources/application-dev.yml | 18 +- .../resources/mapper/TbChatMessageMapper.xml | 6 +- .../resources/mapper/TbVideoMeetingMapper.xml | 53 +- .../workcase/工单+Jitsi Meet技术方案.md | 1 - .../workcase/src/api/workcase/meeting.ts | 79 --- .../workcase/src/api/workcase/workcaseChat.ts | 54 +- .../workcase/src/components/chatRoom/index.ts | 1 - .../packages/workcase/src/components/index.ts | 1 - .../workcase/src/types/workcase/chatRoom.ts | 20 +- .../views/public/ChatRoom/ChatRoomView.vue | 53 +- .../ChatRoom/MeetingCard/MeetingCard.scss | 100 ++++ .../ChatRoom/MeetingCard/MeetingCard.vue | 195 +++++++ .../ChatRoom/MeetingCreate/MeetingCreate.vue | 239 +++++++++ .../public/ChatRoom}/chatRoom/ChatRoom.scss | 133 +++++ .../public/ChatRoom}/chatRoom/ChatRoom.vue | 203 +++++--- .../pages/chatRoom/chatRoom/chatRoom.scss | 5 + .../pages/chatRoom/chatRoom/chatRoom.uvue | 97 +++- .../pages/meeting/Meeting.scss | 44 +- .../pages/meeting/MeetingCreate.uvue | 447 ++++++++++++++++ .../meeting/meetingCard/MeetingCard.scss | 119 +++++ .../meeting/meetingCard/MeetingCard.uvue | 214 ++++++++ .../types/workcase/chatRoom.ts | 24 +- 43 files changed, 3979 insertions(+), 1208 deletions(-) delete mode 100644 docker-compose.dev.yml create mode 100644 docs/Jitsi-Meet-Docker部署指南.md create mode 100644 docs/qrcode.jpg create mode 100644 docs/qrcode.png create mode 100644 docs/代码重构-视频会议API规范化.md create mode 100644 docs/功能实现-会议通知消息.md create mode 100644 docs/项目总结-Jitsi-Meet视频会议功能.md delete mode 160000 jitsi-meet delete mode 100644 urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/service/MeetService.java create mode 100644 urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/method/FieldCompareValidateMethod.java delete mode 100644 urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/MeetServiceImpl.java delete mode 100644 urbanLifelineWeb/packages/workcase/src/api/workcase/meeting.ts delete mode 100644 urbanLifelineWeb/packages/workcase/src/components/chatRoom/index.ts create mode 100644 urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.scss create mode 100644 urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.vue create mode 100644 urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCreate/MeetingCreate.vue rename urbanLifelineWeb/packages/workcase/src/{components/chatRoom => views/public/ChatRoom}/chatRoom/ChatRoom.scss (78%) rename urbanLifelineWeb/packages/workcase/src/{components/chatRoom => views/public/ChatRoom}/chatRoom/ChatRoom.vue (61%) create mode 100644 urbanLifelineWeb/packages/workcase_wechat/pages/meeting/MeetingCreate.uvue create mode 100644 urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.scss create mode 100644 urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.uvue diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml deleted file mode 100644 index cef0d8bf..00000000 --- a/docker-compose.dev.yml +++ /dev/null @@ -1,263 +0,0 @@ -version: '3.8' - -# 开发环境完整部署配置 -services: - - # ================== 基础服务 ================== - - # PostgreSQL 数据库 - postgres: - image: postgres:16-alpine - container_name: ul-postgres - environment: - POSTGRES_DB: urban_lifeline - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres123 - TZ: Asia/Shanghai - ports: - - "5432:5432" - volumes: - - postgres_data:/var/lib/postgresql/data - - ./urbanLifelineServ/.bin/database/postgres/sql:/docker-entrypoint-initdb.d - networks: - - ul-network - healthcheck: - test: ["CMD-SHELL", "pg_isready -U postgres"] - interval: 10s - timeout: 5s - retries: 5 - - # Redis - redis: - image: redis:7-alpine - container_name: ul-redis - ports: - - "6379:6379" - volumes: - - redis_data:/data - networks: - - ul-network - command: redis-server --appendonly yes - - # Nacos 注册中心 - nacos: - image: nacos/nacos-server:v2.3.0 - container_name: ul-nacos - environment: - MODE: standalone - SPRING_DATASOURCE_PLATFORM: mysql - PREFER_HOST_MODE: hostname - JVM_XMS: 512m - JVM_XMX: 512m - JVM_XMN: 256m - ports: - - "8848:8848" - - "9848:9848" - volumes: - - nacos_data:/home/nacos/data - networks: - - ul-network - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8848/nacos"] - interval: 10s - timeout: 5s - retries: 10 - - # ================== 后端服务 ================== - - # Gateway 网关服务 - gateway: - build: - context: ./urbanLifelineServ/gateway - dockerfile: Dockerfile.dev - container_name: ul-gateway - environment: - SPRING_PROFILES_ACTIVE: dev - NACOS_SERVER_ADDR: nacos:8848 - POSTGRES_HOST: postgres - POSTGRES_PORT: 5432 - REDIS_HOST: redis - REDIS_PORT: 6379 - ports: - - "8080:8080" - volumes: - - ./urbanLifelineServ/gateway:/app - - maven_cache:/root/.m2 - networks: - - ul-network - depends_on: - postgres: - condition: service_healthy - nacos: - condition: service_healthy - command: mvn spring-boot:run - - # 认证服务 - auth-service: - build: - context: ./urbanLifelineServ/auth - dockerfile: Dockerfile.dev - container_name: ul-auth - environment: - SPRING_PROFILES_ACTIVE: dev - NACOS_SERVER_ADDR: nacos:8848 - POSTGRES_HOST: postgres - REDIS_HOST: redis - volumes: - - ./urbanLifelineServ/auth:/app - - maven_cache:/root/.m2 - networks: - - ul-network - depends_on: - - postgres - - nacos - - # 系统服务 - system-service: - build: - context: ./urbanLifelineServ/system - dockerfile: Dockerfile.dev - container_name: ul-system - environment: - SPRING_PROFILES_ACTIVE: dev - NACOS_SERVER_ADDR: nacos:8848 - POSTGRES_HOST: postgres - volumes: - - ./urbanLifelineServ/system:/app - - maven_cache:/root/.m2 - networks: - - ul-network - depends_on: - - postgres - - nacos - - # ================== 前端服务 ================== - - # 共享包服务(Module Federation Remote) - shared: - build: - context: ./urbanLifelineWeb - dockerfile: packages/shared/Dockerfile.dev - container_name: ul-shared - ports: - - "5000:5000" - volumes: - - ./urbanLifelineWeb/packages/shared:/app - - /app/node_modules - - pnpm_store:/root/.local/share/pnpm/store - networks: - - ul-network - environment: - - VITE_PORT=5000 - - CHOKIDAR_USEPOLLING=true # 支持 Docker 内文件监听 - command: pnpm dev - - # 主应用(Portal) - portal: - build: - context: ./urbanLifelineWeb - dockerfile: packages/portal/Dockerfile.dev - container_name: ul-portal - ports: - - "3000:3000" - volumes: - - ./urbanLifelineWeb/packages/portal:/app - - ./urbanLifelineWeb/packages/shared:/shared - - /app/node_modules - - pnpm_store:/root/.local/share/pnpm/store - networks: - - ul-network - environment: - - VITE_PORT=3000 - - VITE_API_BASE_URL=http://nginx/api - - VITE_SHARED_REMOTE=http://nginx/shared - - CHOKIDAR_USEPOLLING=true - depends_on: - - shared - command: pnpm dev - - # 招投标应用 - app-bidding: - build: - context: ./urbanLifelineWeb - dockerfile: packages/app-bidding/Dockerfile.dev - container_name: ul-app-bidding - ports: - - "3001:3001" - volumes: - - ./urbanLifelineWeb/packages/app-bidding:/app - - ./urbanLifelineWeb/packages/shared:/shared - - /app/node_modules - - pnpm_store:/root/.local/share/pnpm/store - networks: - - ul-network - environment: - - VITE_PORT=3001 - - VITE_API_BASE_URL=http://nginx/api - - VITE_SHARED_REMOTE=http://nginx/shared - - CHOKIDAR_USEPOLLING=true - depends_on: - - shared - command: pnpm dev - - # 智能客服应用 - app-customer-service: - build: - context: ./urbanLifelineWeb - dockerfile: packages/app-customer-service/Dockerfile.dev - container_name: ul-app-cs - ports: - - "3002:3002" - volumes: - - ./urbanLifelineWeb/packages/app-customer-service:/app - - ./urbanLifelineWeb/packages/shared:/shared - - /app/node_modules - - pnpm_store:/root/.local/share/pnpm/store - networks: - - ul-network - environment: - - VITE_PORT=3002 - - VITE_API_BASE_URL=http://nginx/api - - VITE_SHARED_REMOTE=http://nginx/shared - - CHOKIDAR_USEPOLLING=true - depends_on: - - shared - command: pnpm dev - - # ================== 统一网关 ================== - - # Nginx 统一入口 - nginx: - image: nginx:alpine - container_name: ul-nginx - ports: - - "80:80" - - "443:443" - volumes: - - ./docker/nginx/nginx.dev.conf:/etc/nginx/nginx.conf:ro - - ./docker/nginx/conf.d:/etc/nginx/conf.d:ro - - ./docker/nginx/ssl:/etc/nginx/ssl:ro - networks: - - ul-network - depends_on: - - gateway - - portal - - app-bidding - - app-customer-service - - shared - healthcheck: - test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"] - interval: 10s - timeout: 5s - retries: 3 - -networks: - ul-network: - driver: bridge - -volumes: - postgres_data: - redis_data: - nacos_data: - maven_cache: - pnpm_store: diff --git a/docs/Jitsi-Meet-Docker部署指南.md b/docs/Jitsi-Meet-Docker部署指南.md new file mode 100644 index 00000000..1faccf92 --- /dev/null +++ b/docs/Jitsi-Meet-Docker部署指南.md @@ -0,0 +1,393 @@ +# 🎥 Jitsi Meet Docker 部署与使用指南 + +## 📋 架构说明 + +本项目已将Jitsi Meet完整集成到Docker Compose中,包含以下4个服务: + +| 服务 | 容器名 | 端口 | 说明 | +|------|--------|------|------| +| **jitsi-web** | urban-lifeline-jitsi-web | 8280 (HTTP)
8443 (HTTPS) | Web前端服务 | +| **jitsi-prosody** | urban-lifeline-jitsi-prosody | 5222/5347/5280 (内部) | XMPP信令服务器 | +| **jitsi-jicofo** | urban-lifeline-jitsi-jicofo | 无需暴露 | 会议控制服务 | +| **jitsi-jvb** | urban-lifeline-jitsi-jvb | 10000/udp
4443/tcp | 视频桥接服务 | + +**数据持久化目录**: +``` +F:\Project\urbanLifeline\.data\docker\jitsi\ +├── web/ # Web配置 +├── prosody/ # XMPP配置 +├── jicofo/ # Jicofo配置 +├── jvb/ # JVB配置 +└── transcripts/ # 转录文件 +``` + +--- + +## 🚀 快速开始 + +### 步骤1:启动Jitsi Meet服务 + +```bash +# 进入Docker Compose目录 +cd F:\Project\urbanLifeline\urbanLifelineServ\.bin\docker\urbanlifeline + +# 启动Jitsi Meet(仅启动jitsi相关服务) +docker-compose up -d jitsi-web jitsi-prosody jitsi-jicofo jitsi-jvb + +# 查看服务状态 +docker-compose ps + +# 查看日志(排查问题用) +docker-compose logs -f jitsi-web +``` + +**预期输出**: +``` +NAME STATUS PORTS +urban-lifeline-jitsi-web Up (healthy) 0.0.0.0:8280->80/tcp, 0.0.0.0:8443->443/tcp +urban-lifeline-jitsi-prosody Up (healthy) 5222/tcp, 5347/tcp, 5280/tcp +urban-lifeline-jitsi-jicofo Up (healthy) +urban-lifeline-jitsi-jvb Up (healthy) 0.0.0.0:10000->10000/udp, 0.0.0.0:4443->4443/tcp +``` + +### 步骤2:验证Jitsi Meet运行 + +在浏览器打开: +- **主页**: http://localhost:8280/ +- **测试房间**: http://localhost:8280/test-meeting + +如果能看到Jitsi Meet界面,说明部署成功! + +--- + +## 🔧 配置说明 + +### 1. JWT认证配置(已配置) + +**Docker配置**(docker-compose.yml): +```yaml +jitsi-web: + environment: + JWT_APP_ID: urbanLifeline # 应用ID + JWT_APP_SECRET: your-secret-key-change-in-production # JWT密钥 +``` + +**Java后端配置**(application-dev.yml): +```yaml +jitsi: + app: + id: urbanLifeline # 必须与Docker一致 + secret: your-secret-key-change-in-production # 必须与Docker一致 + server: + url: http://localhost:8280 # Jitsi服务地址 + token: + expiration: 7200000 # Token有效期2小时 +``` + +⚠️ **重要**: +- `JWT_APP_ID` 和 `JWT_APP_SECRET` 在Docker和Java后端**必须完全一致** +- 生产环境请修改 `JWT_APP_SECRET` 为强随机字符串 +- 建议使用密钥管理工具(如Vault)管理密钥 + +### 2. 修改JWT密钥(生产环境必须) + +#### 方法A:修改Docker配置 +```bash +# 1. 编辑 docker-compose.yml +# 将所有 JWT_APP_SECRET 改为你的密钥 +JWT_APP_SECRET: "A8sF9dK2mP5nX7qW3tY6uZ1vB4cE0hG" + +# 2. 同步修改 application-dev.yml +jitsi: + app: + secret: "A8sF9dK2mP5nX7qW3tY6uZ1vB4cE0hG" + +# 3. 重启服务 +docker-compose restart jitsi-web jitsi-prosody +``` + +#### 方法B:使用环境变量(推荐生产环境) +```bash +# 创建 .env 文件 +echo "JITSI_JWT_SECRET=your-strong-secret-key" > .env + +# 修改 docker-compose.yml 使用环境变量 +JWT_APP_SECRET: ${JITSI_JWT_SECRET} +``` + +--- + +## 🧪 测试JWT验证 + +### 1. 测试无Token访问(应被拒绝) + +在浏览器打开:http://localhost:8280/test-room + +**预期结果**:显示"会议需要密码"或"需要登录" + +### 2. 测试带JWT Token访问(应成功) + +使用你的Java后端创建会议,后端会自动生成JWT Token并返回iframe URL: + +```bash +# 调用创建会议接口 +POST http://localhost:8180/urban-lifeline/workcase/chat/meeting/create +Content-Type: application/json + +{ + "roomId": "test-room-123", + "workcaseId": "WC001", + "meetingName": "测试会议", + "maxParticipants": 10 +} + +# 响应包含带JWT的URL +{ + "code": 0, + "data": { + "meetingId": "xxx", + "iframeUrl": "http://localhost:8280/workcase_WC001_1234567890?jwt=eyJhbGc..." + } +} +``` + +在浏览器打开响应中的 `iframeUrl`,应该能正常进入会议。 + +--- + +## 📊 服务管理命令 + +```bash +# 查看服务状态 +docker-compose ps + +# 查看日志 +docker-compose logs -f jitsi-web # Web服务日志 +docker-compose logs -f jitsi-prosody # XMPP日志 +docker-compose logs -f jitsi-jicofo # Jicofo日志 +docker-compose logs -f jitsi-jvb # JVB日志 + +# 重启服务 +docker-compose restart jitsi-web + +# 停止服务 +docker-compose stop jitsi-web jitsi-prosody jitsi-jicofo jitsi-jvb + +# 删除服务(保留数据) +docker-compose down + +# 删除服务和数据 +docker-compose down -v +rm -rf F:\Project\urbanLifeline\.data\docker\jitsi +``` + +--- + +## 🔍 常见问题排查 + +### 问题1:服务启动失败 + +**症状**: +```bash +docker-compose ps +# 显示 Exit (1) 或 Restarting +``` + +**解决方案**: +```bash +# 查看详细日志 +docker-compose logs jitsi-web + +# 检查端口占用 +netstat -ano | findstr "8280" + +# 删除容器重新启动 +docker-compose down +docker-compose up -d jitsi-web jitsi-prosody jitsi-jicofo jitsi-jvb +``` + +### 问题2:JWT验证失败 + +**症状**:进入会议后立即被踢出,或显示"认证失败" + +**原因**:JWT密钥不匹配 + +**解决方案**: +```bash +# 1. 检查Docker配置 +docker-compose exec jitsi-prosody cat /config/prosody.cfg.lua | grep jwt + +# 2. 检查Java配置 +# 确保 application-dev.yml 中的 jitsi.app.secret 与Docker一致 + +# 3. 重启服务 +docker-compose restart jitsi-prosody +``` + +### 问题3:视频无法连接 + +**症状**:音频正常,但视频黑屏或连接失败 + +**原因**:UDP端口10000被防火墙阻止 + +**解决方案**: +```bash +# Windows防火墙添加规则 +netsh advfirewall firewall add rule name="Jitsi JVB UDP" dir=in action=allow protocol=UDP localport=10000 + +# 或关闭防火墙测试(不推荐生产环境) +``` + +### 问题4:健康检查失败 + +**症状**: +```bash +docker-compose ps +# 显示 (unhealthy) +``` + +**解决方案**: +```bash +# 检查健康检查端点 +curl http://localhost:8280/ +curl http://localhost:8888/about/health # Jicofo +curl http://localhost:8080/about/health # JVB + +# 增加启动等待时间 +# 编辑 docker-compose.yml,修改 start_period: 120s +``` + +--- + +## 🌐 公网部署(可选) + +如果需要从公网访问,需要额外配置: + +### 1. 配置域名和SSL + +```yaml +jitsi-web: + environment: + PUBLIC_URL: https://your-domain.com + ENABLE_LETSENCRYPT: 1 + LETSENCRYPT_DOMAIN: your-domain.com + LETSENCRYPT_EMAIL: your-email@example.com + DISABLE_HTTPS: 0 +``` + +### 2. 配置JVB公网IP + +```yaml +jitsi-jvb: + environment: + DOCKER_HOST_ADDRESS: your-public-ip +``` + +### 3. 开放防火墙端口 + +- **TCP 443**: HTTPS访问 +- **UDP 10000**: WebRTC媒体流 +- **TCP 4443**: WebRTC Fallback(可选) + +--- + +## 🎯 集成到项目 + +你的Java后端已经完全配置好,可以直接使用: + +### 前端Vue调用示例 + +```typescript +import { createVideoMeeting } from '@/api/workcase/meeting' + +// 创建会议 +const res = await createVideoMeeting({ + roomId: 'room-123', + workcaseId: 'WC001', + meetingName: '技术支持会议', + maxParticipants: 10 +}) + +// 在iframe中显示 +const iframeUrl = res.data.iframeUrl +``` + +### 前端UniApp调用示例 + +```typescript +import { workcaseChatAPI } from '@/api/workcase' + +// 创建会议 +const res = await workcaseChatAPI.createVideoMeeting({ + roomId: roomId.value, + workcaseId: workcaseId.value, + meetingName: '工单技术支持', + maxParticipants: 10 +}) + +// 跳转到会议页面 +uni.navigateTo({ + url: `/pages/meeting/MeetingView/MeetingView?meetingUrl=${encodeURIComponent(res.data.iframeUrl)}` +}) +``` + +--- + +## 📈 性能优化(可选) + +### 1. 限制CPU和内存 + +```yaml +jitsi-jvb: + deploy: + resources: + limits: + cpus: '2' + memory: 2G + reservations: + cpus: '1' + memory: 1G +``` + +### 2. 配置视频质量 + +编辑 `.data/docker/jitsi/web/config/config.js`: + +```javascript +var config = { + resolution: 720, + constraints: { + video: { + height: { ideal: 720, max: 720, min: 180 } + } + } +}; +``` + +--- + +## ✅ 检查清单 + +启动前确认: +- [x] Docker Desktop已安装并运行 +- [x] 端口8280、8443、10000未被占用 +- [x] application-dev.yml配置正确 +- [x] JWT密钥在Docker和Java后端一致 + +启动后确认: +- [ ] 4个容器都是Up状态 +- [ ] 访问http://localhost:8280能看到Jitsi界面 +- [ ] Java后端能成功创建会议并生成JWT +- [ ] 前端能正常嵌入iframe并进入会议 + +--- + +## 🆘 获取帮助 + +如遇问题,收集以下信息: +1. Docker服务状态:`docker-compose ps` +2. 服务日志:`docker-compose logs jitsi-web` +3. 健康检查:`curl http://localhost:8280/` +4. Java后端日志中的JWT Token生成情况 + +**祝部署顺利!** 🚀 diff --git a/docs/qrcode.jpg b/docs/qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9a83d617e03acc976a91406e244a397ad8eff3d GIT binary patch literal 450834 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
uY_c8+{)Kg;6*PC0^IvoPhZN1MLS?EnBFYl&l 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℘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

uJj8->~p;`3(H^q7tmE$z>Neq_qsf)-s z0HWYxLF-?6Tzo3f^#1^cI**1UhUz^xQ9IdMV$wcNNpp|>y?pcgPI!LP;rGKGH0WBj z(%uQsLFUVdnm^(s1OyS&w-lpMG4h^0ED~#e1)uv;Hqy0MxL+z5$Uw*xF;bj!k6sBq zYVM`tO;^G?1aoQnls8@>*aUuaG?xlM;QM^N`M?#!+1u(j+ST+Ljr+?z}+Bp?mz3#6<%&b@i4@3g)~aRsH> zm+eujhUIzMcM<{Vn!@QS0M3TRjGKg z{{UK(Mvn7RW)MjnV%1e6hhX{CuWf{a4&&9URUsV(zsJihD$;1YHznK}Z14+P)-2J< zC?u9ZiNI_(QawE@&3sL&OW|v+D$2njx=V!nU4_Jr=EzlpK6iCj7}!{2AfHO+wXHt# zdyBnwV6)H*UP);spl06#WbVXgltUTE&DT60E6(qwn@ZHga^A}tTEUAsA&rQT1HyZO zlfgYPRd78aJ}V1dJ+#LXX>;F5CTXFSh>R)D3XjW-6OL-s-WhFWH2d2-iM34{)@`O3 z*?j2LoU;hy?4`RCo=2@q;BN!i-ri{D9Y#C7Pf*ojhxd^eF~nVP2R}AJ!)KpfE7t!2 zX-@{|AF{`YwFJ|wrPWhdh94@`$ri9PF=FI{o(hAH_Pwa)1DVr&QT?gmy-!TiUhdv0 z8c9rAh0DabCk|kc{lm#SdX?Q=M~E&wKj8Z|w`Xgc*)bK(#i^V;4TU9~fwu}XkPpqA z*A*v=wVCw0y(MiE$~P@=+Kg)>hGM5?)eX0)7~{QjzhSu6HT#1E;dI-Jl_So%ol!Z- zLyt`T{9pnxRdfeQs%bVhJ{F4SM!dC^ZcIx(!?N#9&dR_5cO3r!5FV;UZt1=ixIPWM z)2)^mQsgh6HO>r>&Kw*r)1Aa*9)PNx9M>gn;Wlx7q)!}gHLA3zJixo6%x=3*K4Q7# z0g|BeT{nX5^=}eerk$q!k|?!_RoxIN21H^OMci@-%Y37cm{ozBHikS^eXYTDtH%}P zjibEs%`rzVtF&!%!wjC?a1B(_b*r5|_8n%=P5WFCOt#>{HblWPs6Zs(?jV4BYR#xms2gx)IL2FOBaD%dI%hSN zZLMAD+Qb^nkVw$)QmC`XnOG>^*dVCDeB_R#^{-uT+26-D_V=2bTHnEEBQz>z}>tTpz@Su^$k>vZm9nWP;H~*kO@YS#S!R9f|k0sM(Li&;^}C;;U+! zK8L4UDbS|VVQ(^BHZZ?BP+bF6`?!JD3!p&4o}LPs`V#8)|%3E?V@6UN&? z9OpUdn(Fi)hg$uniDTkN(IcBqP`5HNe(|G-FdJO*SE}%N!QEB|E&Z(~pL8uDx3HG} z)IGqumNKrSZX~iCXYucXD;n#{)b(kuCbW{`Yoy%@#{pD%nSMe#aLu2Wpu*PG){>GL zbqhBB(rNB|rMKJW=V?YImjfW@7|6y=UDNfALiY0A8Wpj(KzyVMS))7*5Lt?5X8J$8!gb+~P=H4BHh(&kM&F2+AR%7vH^83FCM52rQCX*SmuawWyQvaCvyTgYu# zm$v|9WZ;Ztd(r|;GfkHIO+zuj!p=CtC}LIRVpk_Tf;VRe(yaJy9ZuHcQm~!c4=^B- zHhw=GjzGa1m;;Ymv*CY-{vh#%#-S`xc~M!Umseg}`Y!#%4!kdJhO|Dq;GCMrqXZfXkFA;D47aPud5rfvOq1uOsj*+6+YFBZ>_R=$-F{D`da%I^ zy#d0W)neD;CB%^FS~QmSH=1p-v{w1H*h&z}HxH>JJ;Uac$KDIm?k=>;Uk>Z9tZEk) z@K1H+!y?BUkVlpCf6p~LbJL34(fki#;Tu~g)En%#Zp$6Kai20*4Y?9coexq&Z~@v4 zW(F6Dt?Xm)UYj#ZWqo;lm6py0$Jvo&EUTV70nKtceZAeqyjp+nBKtqjHNC_C0IK=1 z$EV$|qJAKJC)57`v_G*lNp0ov1)MR%s9D@yEwt}&nRjH5ATTFrz%|NvgW>-Gj66Sa zr|I&=CElT~ZQu5IcJGk#7Y7|V2N@lC;8mbGT@S(6U)k*>nzS**5t>z!NYOW7Wfi&J zdJ4k0()9aXYWZ#asjD{dbXSYLSKPw^G?oJ*-#PO~(2nM+?d@}VPcxEMa<(*w;v;Tyk#>fPQc zh0`wOk1ggm18*mcjGhVYT^^Fl;W?y}U9!2<7E-cBV-vDGn^=>VQ;ZXgit9XG;;6h; z;!Q?btt@=aSPhR6c*UzT?%x_I!jcHw7;(*VmtGywuY5scZW*Dpgg2dg=ZD_PxnimZ zB)37_;vp3qVTTi#Rmk>#Hyol6icw(oMlTm6DT&3}b*jnC2Y@y#^5uB=R z+#djv1_A6zt&jMUTk8=20B7Av_N_l_!EYYs+w~aa9{YLquA@)XEiNtPw1-cU9Y6hk zuN;#sf4mHSbzi-O>@ik=^WW`>Zamw$rISyK&RBlWr_8F`cYX4t^c>)lK4L4`d|~4a zW5jyapQr1(1b4<57A3rq;(|hoxKw?EYZl`?=O(#GwH+%)@mx2WWL9^u+pEGACJgdz zEZ$}th9n=-wg<#kN$#e$wf@*QC711+f-+6tW;slbPfW1QFf0E6Xr-=!ZFy~?H`vAA zBV{5*Oyq(I`_d90o^UI&i{pKssjS%OclTPwhK|xIKd>>m*}!; zw~2FOYjdbs+epbIF^GJ`nr!3e+I~Pc6Q54CW*DKi(p`1y3H1ia5(#B0T2Rb>LPLCk zIwUgWeZ-0FQT|;Ad${ty^9dB&wWlru_I00;QI z&dghpj&Y7E8SHOfNMW|Qn^2kKA8PX^+J`O7XCro5w(*RfYAsQ8-8RyFO6Jrx7@@OJDcu+Ic`0N_`pcn4e8d<$o(&1Pe=j_WXz5!tqoN8Z|a=O(<* zz&d^IpW=gXwqM#av6A3i+)IHXC~UFofs@GRIIVvWc!FI*<4@D><&M%XoA-PEXV37D zL!O?3fI8g|P`%X}<420$&w|=Q@`&GQd;r2m7(5QyAHiKOgZv}?yt=IRdW3J{d1quT zcFP!s7F?daMhGDGAo0z4b&bBO4xYC5R_UlTEF@_mz6&!(8)#hPk&;I_?OjE_y>zgv zY4%^)+EU4xqinOg0!H^I7-D-2bf64B9O$t4Zth85=T4MDtr=Ku6;W5Grzg4f>s)4^ zrkOPLf;E`w^Ii!hX`#SoU;?3Re5y9*uX^mfLvQw*=_i^IeLcbkw@du1jIhg)FsC`% z2S0kbSo}M37-}+Dta~N_)+7+W01~Bwk+}1Wf_URJ0j+Hn)xNj=pQGJHEK$nuBgZP3 zOMpW#7$6;?hSAi3d)G^*>bl2+HG62h$m83Mkj*S@v_BiA1EB+_A1}?;xO*K+>fcbD z+Dc+usmEs&y*a&h{VP$A4OY zEL=@CqjY7pisI7dLRq1TKQR@vf>u$202n2`jdrs520b^z_tUI*S9fa5ER#r#O~3;? zj_eRKw+qyT70TP{-(yP%Z3_fY90>#C<^KSlV~|jG$>%1lUHFRQ#6D$>wdB5S{EZ|1 zu6AftcM+f$Cq|IDyH5-W1OCAM?>)TkEYqL*sqU)e;Mckk?&mp0K^OA zzO_hndBxb?%_p4@42_&*u-(UO1Dar3yzq^L@!e`#UD2?TIQD&*O0EKqqvkzx&|v5B ztnEKi@eEcs5JP0K*ujU5^BPGshocwHcW2KvU{M}mSX{``trjO+*f%4#$Ad^5BJU`+c zFHg|*3H3|)yt^TYRKtSOGkOKQ*RKXPK}M^pEkyGBF0bf;GdTxxaO<>0ASuV z^xCAhvE5tAE?VU>rys)@0f4~u0=h2^=ysQyk)CUnxANEsBU~_fPw@Rmat~Sn_TSmx z-~)J>n_t)M*x6f>vBrV6$k`k+_s1R0eTS#`AO0o&Y|{Bq{{Yi8tWSXL68tsM;$=s< zC-=;Yw(kZdI{V2Zux8f9;Ef6T9iw>e$-3EWq?6=DWLph1+b3 zSYCayML-O4zbZXc4yL^4;s?XcTUOMr7`*U97tYG8*kU`33ZLMqjvp5+R~J(svi|h% z7$@`XKo!0qd@0hkD;ECJiWzSh{@Zw>5xjB@*xWD&xUVJn#o()N8vH(*N4HroU{cD;ySHPY+BhTHfIb~WV9lKH!1L|T)_^{E@qL>^aPcUL zBcHnyZUgcE06DH=&ObV18z~<0DaCr%#jQW=_a0TR{IvW2XYqP`{SO^aKzJ4A@>;Sd z$#Ald??&W)Sse#+KoqVm<*~T(vXcJ**FU>fVEZoLo)hQxk&Zz8Dc2f=zh{aVyuT_x zzu*4=9`y9A@o;?XfF$;2#QN1lW$_%%Y4%M1?w@9n$THj49)f^0uJ01!#UhY?@D3`ivn(+~nGTmb%6nS$;=4}S7$1jsGRUB28m`4+mI?x3L zn&FW_J!*A@*@jn|vm7W^93D+yjt9$-xdMPH$0$*o8HvfIY6ws7Yim@{=F#;Avz&bUL$CWvMnSBZA$wcBj*N#H8-_DL z8k#(avVh-ww-xSR4YZSX%u9J}7lU3qq3P)(MET1Tz^``j50z(cF`2x!+r?QXkBaq1 zeLPr*7DkWdTgCqX9`#H95zV?9-lV={fc)x%^=j%g*tFe36^`OP=riUO>^*B^N6}{2 zEN-ps8Y^hn6;{Xada&<69yKMrvRo_4Y^r%9)LE)83J2if2xgu!1b#7PKl^%H%|(Ut1A4#oE0DK4|)K~{?eA? zeVy7gdq&}(;l*ElUdqDSH?n^<*nQvURP1~;C)*{pyLEYCINm`4sh8hn)9yivDCM=! z`neK-HFTeeQCZr{Zgixbh+s^PzDQXc@b8Ls4L)akIGjhYs5})oJRi@kC)#Ya zX@qfG#|)l`FMs?K3R=yKT(WTq`&9IVK`krf6 zG`NOGNf}}C{`TSbzLi5y(r+#95o3`8J7hDR%%cY&dSbM73w=XJ`&agaQhBlMNBgYF z?sJ^|C>dtmFD>pPV*Y4UESMWYFLo#T_p85RoBmne%V*a+!j1X-IQ%OH-sApS{`1X| z{!hH$DEjoS^G(&Q_3KEI;%p-w!Thb*$4}Hy2Q{boqUuQ=-s8@dFsQLc4>%kQ{VPRu z`)x~DY33!rTQ$9=Ou=4RCXS#Kf*Z2^dyT0mmSZr+Urt z74^oOs3p0Kw9yb9iiXM0LFru=fpnWaQ&1K+kx2x%h|0|zLPlRh&uRdqtt)ECrq^%> z7#KTv;G7O~Us8M+w}Vj8TGr#ku-nZVb1)q3Bala}Vfa_!hMnLU8&K5lZD)l5D+^>Z z3~`>g{A<`e6Y&efn!{XJ+hR13fU}tLuGssdBcH;uWf`|u23tFe8%xLp_Mo=L7+eFK zWOb?(U=-cm=XFcG{gHUb85^sd^=OYrn}uXPF8CBX99LN+Nq_&Ld}om<0x zAJ!x{kQnv1hj4+}i!3kDuHGvkJgeg8!Tn>zhUW7{b1$Blxs1wL3WM6bk3{%Ue%JQ) zM@NxlX|}SEdV1HR>R%cBW$@oudr55IeG$`bsFebepz~elg#I>1;_Ilfr#RLo3KlC> z1nu<|Lpm>opA2;GhiGnPxoeAz5UULU95_zO^Kf@myc#B+?-+J6d zZX|gmXv;)DgdiQW(~nA>z8(0_!69JOG?^o`f8Lok4ipjh02$5z9QHNuT7~AV{iAPZ zrpoUTapy?K3lvH~1yiZtoc-Q0AA7{S4x{cxsQWULw>k z+kN#M`5eA23b3_U`v&px=8(4vmpmsIvJ}A^R4If9E zSz_|Mv}AcV?rwkj*{?77Hn3~HDY&}0wDaxZw0YxJRV#&F2_Cs3wNgM}rm?E|Z>QYb z%O>Nx8DlDfFb{BhcB?j*)=|TCa)MNeS7D6h*_iS``r^Kkv9KDo-Mlhd*@z*J%v`D> zft-L>A2;V*HlL%|N#iK2^%-S0*V67=ek15tKPrx&HyqU5$n*Ut#CPp|4E9#;^2i!w z-EODm9Czw#s_@*eBOBdDd)+mRZRT6bfcd}P`FkHq?kp{I`&;O)R>C!sR1PEgzjC3s zjP=JE6@jjOhfwha;fCHFI$VU|ceGvhkGJ9xOfcO^EIU8af4#eD3$X{xc|YC3?@s6r)BYru_V<6;_Lm>p7XJV{$$7O^ z^V6ZlW&Z%eKWY7+6UwUsYKb3j(+nk!q@dmLLpZ@?KfAKH*Ha+FSe9stM?rd-~ zT6%uH=Sa_Kd2efQfkQ^o<^>s7^tt^Kw2^mj;E zPue8?;;JDX2y7A?H12@Kj@H}vSC&-Vwywx3Vt>cNjk1R+S`J4Q; zKf*{n;NrW>XT8#HBZlCzLX2cstyxAuRveG+io><>A=Rwqx4yUt)_|yvD};%F$Y#p} z*ErzSl6ls#Z#0*IVz->y%`&U~sdz#?7>)p{^I4-^T-n{EciW^fB!6%gU;;6J?&qF8 zE20-RTAIro_ECAhZrlRq-Q&2QA(dC`>=$-9D~xoGyi9UuTvm_PjD&BP(t#kGKv%9dUqbjE_N)d{nw!?ACMGNh-zWEKH2} z$sCd!9Q9F;Y5=KYs7boUTSt;9;3U7=Fuy9Fn=Cry;QlrBN9?C(rd{}c^77jK?X~Nc zEqx4mc-28T;HV1S^UiDLokPR68eOg278kL>x_mK@gieQOBz0_$Y}eBt3BDj$==x@t z;l{c@cTirfrhtg^@V0^oGxvE$Q<@V!FbTYVqO)FqDAD~nk_Qt<@3J*J&+bhpsv7_KE~5-WJXUFyUTTRG#tYdIlU z`tIc3N2kaw%okUXMy(K+|SL?ia6H?=5h}MXl5fk9>8Oo;e18o={y(UTb~fzX&R8YwkSTxtcdNC z$pG*NxjieJsdhdy)Z`7~EneTows7cvE`oBBK$ut}W&o_NH*MNZ2d)icO*W4O^}X)7 zdlJv~!eg|s2{193#?mph0J;nQ#cvCo*qXX#!oCYv6wsU0#$ipa3se#!)_jUIQpf^tpw3mVnhtbDZ6t6o=sQPJP$9#e;QtE{uXqPOM>88+{+|iED=6- zH_eO;93OF-us=w29Xr7O6@$TgeEt`+yt=x#M@gZwga{czgCTSCZY{v)rD%B1RQP@4 z4~aAAT9$;KA@KvoBuOW?%xVJfP+S}W06b$Er15W$lfoL_fu`B$ZE~80%GxxkDQ~kP zx+8psGtS?e83&5N*L-UfKNT!|A9bK#ERaVX+90%M%z$01QFczu6KKZ@PF+A zplDtj_?_eZBTllojtDN0*jiiPNRWZGk>hkAwivJ~#Nchka9$qqSCt$(I!kp6v~o)Y ztoCT`cxh3Ym>=U{y+OgRX87RRM!E5m#s@`$duym}w(1bvOSH;2`I9Lpa+L%EpmHm| z)I1OH_ggl))|+R3JWFS4x7Q5?)N(>tzSMyv+794=5>ylNb5(W+&f0W(mXqM2b$@LW z-L;LpHnZt!tbs^i%FUC8P+eQ5;j|8fo&!hI<^KSLe^C1*vVD@zbklinx8>;`K*;&Q zBP{K8d`Q%M7x6)~ z5#jl+w9D%&hSe;r*L1T;fNYb?BpeLwJ-&SQue~%qI_A&A`T!bIY4NOna=;^H#BSD* zn$L+YZy_4J{QhKivNNU?oH-{W0WeDE@fG@+<84O54+-lHZEJPrHHGEFTwh4V3;6`1 zuKaK}Vhz57-D!|i=4?lQ8(>a1jRBjt4}2wy-2Ze3dFT3>|hZzQ+bByIDh#Hl1J z&I*7=Mo24x$l48T0ekR!R&8<_b?a-LGfDH%D4u35xw&1%@H4Xm(}g|j>z{!B5Ak38 zDE|N*={_LS{{VZcO&mH*eoC(Ue<=be+6b?ZG<$fwVQ(y7@RI5pexD@E3^wO z<30xd%6Gm4);0V6dr#AiwxMg~*~I=_;7Pa;$ltJ+P?%mBV{z73p^=t zr=+IRU$shPmUibZSbg04bj5off#DyBo*(fhxvJ|vDVq8lt8*2ltWmU)TCprLG6OFK zaK|G9HS&kXiM}d$Rvk7!iC!yRXT$QyU9Eq2F2IKbZ2&g~y5|^DYaeLY(TBv;!^-eW z=B{*Bf3*jJbsr5&4F3QMtkY3gCG-CPvE+&TvY&T3UNeGg=M67UTRUB9bpudX515#kyjhZ{htzNAUz#a_SOA zt=qgPk^K9<_6wZ#;1E>$HU$yB=Gcrxu?;z;@>UYxPyYafe&0{kWtvM!x3#KU>HD`j zpS;77k}|-9#(1W9oEfyTZf&n8%t{{eVpu*vR$Swt8*&KrIjx@@f5hX>w6wI7?2*jh zyp0#NkZg*5X;rl0MzUD*0fKn;_ue{uQ!k zF%Rtf;HwXazC7^lrmL*WBi*;zH2tQi)e-M7o`Y(ty{{S0*XX+nn z)HFR!x9RrizI;)qT%hA~3=xBaiuA9AzYP8mN8=gw9|T8lCFYYRM9|J;`Q3Km!2k{w z@%66i-@|?l_-EohXIQz{B+~US5h0r8ZZ2ZOlAK5tzl<*|7W#+wgtoCo zB({;v&YFauyKlM&C!PUQgPysnR`(ty)I329zw*}KYou~+R^tP1alj!n^#s?ve$vxu z`frJ@d^w`(D;|MqYWGpbpgP^Q2MM!*lDQ|Pc<+b&MR##`6Y;If!p$&e!>=G+biRPi*r-TsWa zwavtr7xNgzb1@^zSkBQG191)O>}r7NygT4|HT^bOq!C4P41mjdJ;a5kxh6I2b(zeLLe@?+$2ME}5t5S`yEtu*^`}Tg@Uy&N)9P037!8u4lL( zm71r6<+RqNyCB)xMK6#x=XiW@6#oEsjD9r(MQL?n^J`H7btHx7b}H>Nd4#sm8+HiB zGsbK04;^XW3v^!w>cW2y%?76wQW&I2r&7ll;~|F_KYG43Zwu*q!rfeX&10uX>?~A8 zx6Z)80hc}UKD7Oy8Mb=1hYZbRAa>Fsj$g9Mk*;BszIJb3PIq&j+*OT3#_;%G`zj^V zEp5awvqtuI{#)UdcJ5uo7V1ZEbDGl9{3^O0sce!;e%3!FUo$LU zF*!#0dYmo}eqUZ{j)CyU#QMp+zr4A*RAAFZY}1F05PkM4PI2j8!TUGdMdJ^Q5lwe# zZ!}klaSQ44BK(qd+m3J!Il-^8VZN0vw1dL;7qb{lf?hL?=o4MqD zDNa@c^4CxJe|6#wLekP$uRnS6B$1;xoAVNiymrlZ9w7eD@P3akhGLpXzRryE$+27J z+p~wpcpoO?z$MRdU!c)1hno84(?{@9=`C)cL3Ml;U~{yx?IDhHv=Do3ug}kl(`r5@ z@payvZKqk=C)$hM4Llv`9tQQ^c*k%L0+eJ2om}{NzQ<~|(wEdO5NwWCU!F|=00XhZ zC;*Oel0{}}x-FfWH}-@E(*2aI_fY-SU~uZ$Esdi*jB}h;oz;$$HPfNgq|@x;Xx4wW zDcAwzqFQ@!U@jjOncUQO4t?`BnyJMKGwvKkI^1uvp z{LKJn_-j^z`%7!jHv4$~Xuscn#QG26>DrJUdfqB~JzZ}u%!@2*<|?X}2N>m)ao0ZlRZHz! z{{X}?7?R+a?pb9>xANKGoZx2w4yV0V9umEiMSI4(Xl*dkw39Yn#(h5bQ{Rq7K0hBN zj*D;Rz-}&GL~5l(1!3Lt#-x4VcI3VW4Q2;T;47t%QS%VlUb>PVd+3h#a5MLZ8kXJ)3yHq+ac4YAV+SSC0QK* z00Cln@5uD8OYpab$B%DdV5FoL?f!{qH%T!Zs8ACzrUzCS_oxGazVS8Xt(Cw_rqrhM z5;JtD$Ua<6+*~8{=`K_+~V{ybTJEHRNIY(ER+TE7OjGyI&K09n`KZ&BdpO z2A=AlB0`d=1a)x7oS$)6*1xm$_12WbP`CSK!~X!Pw@}50)bWAG)~p8I{7AX+cY@bT zirzG|Qf>^EvF7ISvy8C^IUntH70&ox7%jBho2!jRO(x--tjJZKFavH?`57`#f0&W! zMgEUJfo`C%hIq8w<{n!*Op2(P$z8*sJ^gwbgxzZ2*>9({vd?NC%SC8bG~V6D)h8$M z08j>>igoCHV_v5G)%-vhv>x!}1-_3Js zr^<~c4Hi#b{CtWJImb*2^&KbSn?n`g*Y%c5n>%zYWMbjlv;o-e z3wdse{E*nf@yff8P)0IXj^uHg0Lt*Lh_-iYXK{6LcV`lok{#HLV}_HiLXHOG*1Iha zM}o%TEcEkm@JvW)oU%fUPI5PVt@Rv!HPTvWclH`|v1&1YXiYqgHQbK}nz0OWrNH2U zkDH+MtNs_BYdalQYn@6RD$Yp2Hy0B5k}w?t zbm?7IL;>PCHZ(_2llp=EytZ7{Pc&*TJBooTGLe$3#L>b!Wc6C0~McfZ>VY?_11tq+8ga( zR@Uww{@H>~2bK3*Xvf|jwX5S>i(Lc2dXRQTW{gIG09P%Moad+3y1TCnq;to4dfrSh zsaGx+f;lHWYr%d#{9y3*p`~1ScE;)Cv$jIAy}BWLhd;u*he`%`9<|}m_((N3x`XWE z-ZCRr5~)=m?J??4pssUN()F1&2eFM@$HK+2}B9ZybMdzFv(3j*P@{@NBhbMHVN9r1_ZrlH~e4JXuu zR^m)zIA+IA=pr#17It7{xH5Vs1@=lx_~I{i8d`WNDsiabqud1kz`$+%K&y8CRk*eP09WS! z0MkFc`18`O>Kc8m#Pa!Hy7K=20MGK)$AG*EFN!WM-WfrL)ps~o7(a)40MFC!?(RR< z`JcQ008{2C%UIf_{P)tAcKo^u^lf?@%PltCt*VG7JJL;rm&Z~u+PR`bn7fsNtF8kVuCNIvfN1>M5D#xMn9L&;-`E z7Lfk{$HY=g{^_X738ZI@Ry1ybjYZ^c=QTUGl@JFQ{{UojKneC%^;#+~v=91eMF448 z!xG$K_*%87X`w)pFPSQxz1(P}anrp|_OT>?ERtaM?N$XKtL6dHw{+XPYen5GZo}Bt zODn>|e0!Alr^#;eLS8Nub>@IBd9hwyF@-#^eQMsH9B|y0mzdM7TJX<=r`3RwWsVgc zOScu&P2sx@I^Ia2oL;;A_KaYDbO7BhJAGQ+$|A!b@aD1gNFLvOCA`zwmXhC6Z5`js zfP?=4Jl?6UsME~PBK*Yt)u0W12S_(I{#4U>QC0c$tt(BnVSM0lLi5Xd8q11p*hguh ziMs4wPtu#LcxL-e)8f>8xh2!)J5qDgaO$Vf&<8*J+k5GJnLN0psV(&f^Y+fnKj1>H z>ErDO_g^HUsp?j6TFkD3)NNTNT zV|Av-_LvJQ5z5KHH3ZV!YV$`7jKvuIu`fc@0fBV_#cU`Rzi5vei62UgLmZNPyNIjyvwexaRA&4r0sjElw~@f|h+U(M zWtm3`J?blcVp}ep*GX^jBT&hhHqF#6Z1Iy=nMo z#F6>iqmEI=3}{9T1si@O7UNcv?UBjmw$0?(o1=kwpdvk1fQ6W*si<6J`}O>q%UJK#}SdS9FCla=r|M%^4(j+6KdLc^CY#4 zJY*l5sOaYE-s8%M$Di&=Ti!nKPNCor7F=i=rHUooI6H;{l_MdtdU0G`)r6}iR(0Op z12#$gXak|R)FspP5BX>IsXkBkcAw(>D?Z}m`$FOp+N@1+Z}wR{F#iB&j!gh*0QW!$zrLQX!^>e8`*4uI(xRJImMb{z z zGGwEUzy#n^<)SEe@qRwq%Y(J5zyzdIB@S6>mY(dHUA3hjqIPsLVHMBFix;FmQGfMoGqd8n-r~q1*oI3)_k14%_!BKky&$_n>1n z4++{wc_5m}t>azUP(D=01QXomxjkTudw<-`=EWj!OL)6hY^eHB1uZ_-3E+s&B#>LV*kj*--oEwN!+mpOr^ogK z9G4QN&p5_P#F-=J>4F7uwikxL!(%nO?BV0wFv`Sp>&POyyIc9LzR)!FK0|GfbfA_D z%Ys`SaB2xTUlPp~z2TN2CF-b6(SwY(KK}sMH7KP!@9+% zh_C+7s;qXNL}aY-r!#-Cn%2DWBUxBAs-&XcMZpq$ti0{*-yNw~qwVho>JV!F29EOj z>L@NzjE*2X)dJuE&D)M^!hAFFs{a7OJ}$k}Eu)5ADt$?rW|d1jAtatVFTHuziQ`#p z^z^Z7^oG%8@?AXB&PIM6~TAU{HT!s|8BHnzYl8}Dz7(F|3IIQ_V^-tO>#GW7V zCx~qhkpBQ^zLEf~8so~0?gfd*U!_?1Lvi8w#rCB>tSogKKpAG8wzq7RLPrB59Q0p$ z@t+cE5_o=Nr)iTLsNj&Y$X5fNfRj}8sP1nhg)gpB2Tj?HNIgG?=}DkI&E|Ob~hBgv(7(D*~d%tSJo8!NT>>w9IP_&f7@+w8-l_3c^ zbjKLaeA5x_9x$;w*Nd&SEpkS%hRQPc^0v%c<04a zM3LD2gGXcJ3$q}fmqX#+nRR%+YTr)V3oZZ%r#(7z*!tIlX#N_3bhtHrdsC0>?}vF< z2bIP~;B(0*01h!;rK5PCPVo1K?I4M!xkzo~xRG{cLNQ`W9;NaZsKBVy4vSt}1K@o} z&6mu(ky#>FM>|=c3z5?}C)%_B0B2tgw}z~BZ#ia`?Cyy+#1T1fx&w6Kew`~#JYC`K z9>U*M*6$uD=7}CS6fs|zoDebG4oTyVDDdCMzXZu;Exon2Kr=(NG4rgf?{nje`6+)aGk_kMH4RT%) zhU>&0Hj+(J>h24#vOJPZsL}z!+Mq84<%i=;4$s5(^4r{9>KAcIEK#JNyV&395^Xq4 z5!tbiPJL@@Pw~gvE+Uq1v%_`vR!5TG=J`%QY#wvPR=2m8`ycx&Py0kt#+x7K{p+z` zozHE2iIP$22>VIAJKHmH@CM zeE}Kbu=E{nO+9Wjo0ucFib+wP-Ze56m50ahc{@$!zAcE~^Z33^J}UoPG0xIRd%KwB0(_TGR|$9iI16L(2I;Mh;4X0Y8rw z=vsD$Hf?I20kLmc=BYSSj`h#6Etnr{tlL$rmNgp=d_#>usP-@qD7L%0A7Te|hrJFFLK6x?i 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⪙SuoAwGKGk1(?weEz3s;Pey$2Z5~h>y3U%w4o*Lqqi;* z48ZN`*+0{o?KK%J{81u#+Kttoy2Sabc=$tufO6k=p1JK_a?@+j$uP3LxVA-Iko}rg zK$!mkXbkW(nti>DS9cci-!mvKvI$A^2{^_%Jr6&P0C#>U)HMrxd2KHBzqQ(VE3@o- zSIzu=JxIoTSDo42>bC0(+=-+&BqUa>t%ASA*yEM@nz!aM>UxE|0Be@k>Rat`=Q5}u zWN-l-`gSyF{viI))GZ>^C6Zf9J*bh%{{Sxk05t`haqAZTD8;U)eQ^b<4XC3cRolwr zIpZf4)am;CmR8pGY}a~)jA+W1^2}9NkGw(X0UbxJbQ(R!hwuC+b>baYP1C1nBa$Su z!)?ysh@fzJ-Mc>3%31ikPr8~li^9_{?v^KLXK^MtJaBRJGy#)kacyqDYP_>}4*l;S zmvgHFf)RQg`}M4k5_pzU~Tj~uM@L9QvLA~Q^ zjqK$00FjTwwM%)dcr(P80d&s?>PqpJSrR5j!6O8O$0bKNJ?krh<(hth=G(Ecw`tX* z9&6l4sL%n`KqsH)P+97hHnT@#saZ*NYa14TM}hmmIo#RjuS)bSL&N_75A^>4^tol# zG_68EpX~eLUp02;c*(|nMsrzu9-rYkH3??3*7aLSwkkM#DCce5XLi%ax30>dIt?S? z--ZsEw^i{}8U==+tQ{`b&1D$Mj4vSPra7)J#1d%wm5U@2+LyNhJo#Co+(F3BIc$NP zd)Ha3d_C|syK0lKh$JFb^Bmn+yjy_(0G6Qc;Der(PS4@afp2FnvYM@irKLveZr96i za8SD)s*Fha2}iV$HbBgR*6C3cnjqkcI# z;=K<^_+xvl=&)RBTBe62AgafAZ+fw_9i!xY^(T&K1JAUb2Uyg!;Fd7lTU$o#$!!@s zL}cZ8Zb3hLcfECfA@J?(mxk}H?=S4`C3eC>w*j`xl?E^g`9TD8oL57rXe*<|D%fAz zCEdgg5Lk5-lW!w&;j+N+G1ym{d`kFZ;$2GK+3YQC?juBu7PXYfvP*>r<=xeZU;E~O zILP(IyoPHlyXHv}J@cg8>|jUk$Qc+U_3ez+?*M7K7MrNee|*h;yBX!RxRVSBCnFi; zfHD^x@M`2=2s}?~V?4{@{afwq2a|JY3V|e}0FO{Ho}QJhYw)94(d=WNP|)wAzK(M= zZ56bnAD8dRAY9-BoMdO3082lKmbzxBZ<9%Nv7RgQ z*Ae}RZBtK)o_3qM*}IP->o`;ax`F+fJ6}!V}!w-3N5EJCfS&)rlbF z0%LK5p8H4@%=k}Ozwq6K#PVr^-pokS!EYV82^>XA;aRy}LBTwef@lKPso_y3w1}4X z4Ibk=!??c5lw->S0RI3*&falbIw!(id&EE67rHgO>1}5c+}us5Tp}W&LR)6j#t(k} z)p}nLK98?7_fKZFvXr)tOL*VOMcd9v87vj^?ngDp_|wIjtd|qMfo|4XV>FN?a5Fi$ z=m2#9mfe8hdYn)J09Zk%zTgqYy_n1mN`+#9D|Rb70l=wef6%S=Jx9INRDZIhK?9Z6y!GHw2m>3 z0Plm=yWL|?)^wO!!+g@|@y8{@O=Al)%Br~x0URh8&JGUYj%gHix^Ip(Eq71W^)C;J zbWKX)1tQ+kHW8JK1xG~$@q!yYLC!^Dd?EOqAAx*v;v4a6ABi>jzjESv3{f^*fWY!t zj1iCpdETMolWXDVZFHvDX&E8!cjbdKGvFpbRRH(pj&Z=Nz6;UpjhDL4k631zBG^>b}Z{ruO=Ld}=KnoS;=4L0ObP9c{-nH@n080Bljbq`T587&)ewz|SJestM zf(Hc*jSBO@W#>Ie&jU5!`ewME71oya;kH=ZN|5=^fs@SIc~vA3styKu`A16YE;O6z zHGBK_v(m3V(6RyML*>HJg;kJ8<*x%Rz$ZB;CZrE*@W03HEB+EIokPUhPMN094U(!~ z#^!swjNo}o7+h}JNd)jf?geok4Y$*Ei~H-nXIZ(?EN&)~?P4?L&vwltZH;39{KP8f z1B~O)*E6nb2$5;AX+9n?T}+vdXPi$0j9@4wLn|C%MtH#h)wujN_O>$kf?Lt3-PwR8 zv_}jg1}rI64fB$B=XNp4^c4VoA#1DXSK3T=w_5&#;I9uDw@0O@h|KGpsoIT&A(Uhu z0mf=Y_^seS3h8$XVP|pn8E1)ZZ`{WmmyN;#6dtGsIN*%nWY^BV3h>^Q;_JObQ2Q&` zO(HZ+z9(q-07)du#3&7skUDTctu0f-`V`mj>CkwhD8`=>t;9=g^ISa8%ufoj};x31+c!$ECEKAExQJPSsl90+AhAtS45DrfyXC#{O{Xa?8{4cM4 zttPtFY$1?uiAZHu`AVEOUT_9`aCpUfeut=N)?W_qEwn3}h^_9XVGM6?nLc%F`D_cY zOy}E{t~*+v#GV!K1Vd38j2~$yddk5j3alD6VS}Cr%k}1fF4=ray74EAG|%l;xwdzh z2$5Z)i9u#1m|*o87$4rRUhzfdyQ27zURf>m>d3LitH6z8VYrRC8R|wyBD_;Ww}V9R z%S~}CcTt8C+s7p7=O@etz%mFQF*zUIqSxXlh#N~9m6hhDai)SKKfes4cvkmUyRweX=E`u0yMbvSEba22nUwwPp5xq#hr#|Pe-Ynli8a>GHH4DK zBW-Bd9)ZSq$IJ6|+y!!)FOR4Ajb|ipdo0bB@@?+Jl|lgsP82g>{Q%FcbUqW-FSLDN zL#J7#<0MB4ZQ_jq83eH;=L$L=bAT`fI|1kxvRvL>UNqLPJ)ClRakNRgCIDk+e0;+_ zFeZ5{xyMRsa{WXKF%b9R6^4Io<$%AUEX4- z8D2Ay#ccV0R5uq;Bh0FiqcTb!J8~Bshdlh*Z1wk|%n7aS{{Z9_H~K}VndT$g+4;qn}=;m4JL! zwmLnmepI&25~4=7u*RzkMp=fz!DPWF1E&j&WK*|WUCA}HGe%(Y6iehP5?F>{1_n+F zV~*f+So7-Ch=$b9kh8uVrRg)wYIehgaj=h>PWgDv*Z!PVwH495vqqoXRkvpnL z<#5WtKi$WCdSks|-C2e)ZGj9?DR7=f@Trh@F+90c$j7U8$g7unwaa*!?Y2OY8(}cH z@({%98RY97HEmk*)TfY;Bl(KX^AY=%Vx*z@c?=E<4x|0r=`u5QJH1NI z#bDFql6a+Od1EUM<=ROJoQ$y}aADV_ak}-sp(NJrYYfvveyRuW(j}5jq4_`nEOvo| z)kZKzGt-Y3c#iY!aZPqV(k`PmQO1SRE`ww7wf<}{Jon#MKez|+=kkF$)s?{=5y6qP-OAQI0FW-dI635GiY~G z{AhWv(QNd{+f=`}m1dobKm!w; zl))^l#RhZK*U&!$^q&v-RvSHH@5FYkeJz9&PSQ%2vc)f%kC-!VRKlPvM&irU1lN}M zqv1{6uZTQ3;ql{35hkRKCB>DTc^bd=k5%6ZQr2I0o z@m9HUX|)z>XmKNX^Oc8s%Azy022;wOcXi^t)8l3E@IS^+6W`dvgGJM|I~(t@S;XlN zn6X8Y(FVe+`Hh$1vU>H$vVPEC2{m6H!{NyMJ1w2y(<6IXCTqVS7+H%ArE|4`l;yH= zA{ZPD;CN@@-ihH)6nsDM-;8woeP6_StatKjdW3GoyljmUMI!^sFPFnE*2@g{pt7fp zydUAu+HpVOC-4V}f3v(vZ4#~KpQ!^gl1mM&xXO}9T!FQ)8Hfip%4xnG)UUoL_%FhK zGQ7IE2qU)^lEz~Z#S9=7$Zi-sO@opfcl$!G_-FQK@m_)PkHcxB>DsoPV`q6Poo?FP zyfMOrgxH!j^oMz~{N~6xxr(PufN+jRxA{;?qeG+uv$YvMf<7OCV-PVT_Y1 zp&)+&Jm8QNRq==H`J(u@;>NG7>iW%(h;)lMW}a;q&M9{sQNqp^Mp4<=Hq(Lf^{x}( zZl!tSui7WW`ku3{-0B*pm2NF;%mJ}r37yi20$GU!n1vfImTZy-@3h8sdi zLjc8*F~&OaRN?Ujr-%Gm8(OBJZQ;F9-gz{8{el~tcXW(?@F)W;TR9G zd}!CLbp10`nr%y5n%d$UQ6;*Vh%_x%R&8c0 zIi%B*Rr@+LLfu(W+;gz9G7gyB#OD;y9k0bJuMYTb@;zG9OKm?!n%uURXJS;_#;jg5 z2vL_{0Smc_$qafCT<3(KvA57}v~5)Vzx#I3+(norN3#(~Wu8S)2bj#N7Yx}`o||i> zy7(t+;J*jj_^S8BL}>n0Y38a*;&`P%`)%XiH->i~djU%~70dXD!=&l{8`N}NY7wQ| z#Wa@MexzFBK&}8_A|SFm0!CDg%t1Xk)D8-LEJql-n#SwMnar?UO&X)kBS;k)(BaT* zkTR;4+!vgHNcz{ow-?_7e`cFKcTZ^H@n4E(j@sK-lMMD&(`U;>$SSO>l2jk{k{s}G zK2Oz_^TgVwuW@|0-)*{($dFjX8*Fk&NKNAbSO%0}i~<83WMl3B0E$-<$?y;1;m{$| z*3KCtd9dpi!c%Oly-=`r1%S%#VS$lU_5;r}{{WA&_~YPbh&&DA{{Ru+Tx;>%!7a4V z#?rm&tL2H3Hrh%N-vNObnc_gkfxFfDGE1BF5f5d+ku5UgQXotpL9=6f^ zNo>~o)`pT7@?Soul1PnbUhGJpqu+v6w0xOESNb9jqDgG&C{)8LZsS6f&u z<9OzXGn3O`buHzdykni&uNVEHzA)JQP_)r6{38_CF+-t6X?nKs$Y8XRP)k83;kRr> zi2x6n;0_IYeV@b&UkUtR@YjdDNvUb}+CHbC>DInLx-g07X#Av*M(Rl$7y>v78FSA` z)RTv}@kfF@Bl|b_JH)o01n};o4fN|2u+MB`+|jShHZd&6CuZV$6N=dQ&87T3_*4G? z2)>hR@Y6}Tlf`k{%{82)$McCJ3StK#j%6c~100`fhxW11^!-2Kzku|+tvb@e;yqIC zNhH&AZxY+0EQGQl!)_aUV6Z;9u9M@P{{VtCePiL(_l-P1cd5(eqFY^gg^jdkU7Oej z)L*`t6D2fsOh&%VT<>hBZY`1i5M>1N8JFN*D2%eV^4qD zYjwBwSBUN7nMCE}2%F?cLc7R-?^R!z4su%@99PgE5&jVP1LDuc*)28sXI*nif(Z?s zz2Qj23nB7lY>Y77@|6S}ki3e5&yqiAkB0sw{h#%SqSN&Yd%Y^+%YCepLl>X4Wc{Cv zHsXF_;~<}y^2WM92L8+%KZ(C*xAESjHE8@xEw9>&$g#2r$U5^MA%knujQ3K*1*@xi9mGLjd-Y$n&yt(k^g{RoZskWfiL_&`%CyI#@Y*8e_{B6-DG75k1NR$AdR50 z4V5P+lel&?uVEiFd`kFB@fTb8sb}HMO482%09=yTLYiidfzx165q?vIU5Z$ogYy&K zwZGwx{CsTZz40Ba@V=97*CyuDMIt1_yDsK$oFO za${__8$NPK>4p>m##`KIz8};zSijNr4JzIke3;}-w?20C&lxMZfW}Tox|*kP;e9^h z;wf}ZSL~N}4yonbT`uH|pm2!eIqK><^NOQy9lSRBzN4Wh+FCb^+|O|eq;RZ`$-G7h zQU(_d>Pf1eAkp;ujXu**{{UNe8f=^G8}`M&BsLUhV-d#D@~h^q_5%0W?(Q`Uy%S2& zB)hwk>tr$f>-)05e4q`H+bPuU$!yk+q42(4A6UDJDRoT}?%&Ir_B~S7;)xXJ5qX$m zz<;%h`tRWnh$Yhh0A)zvw$%WUkq`jmBydl9P zxOoY-6G~i>uwXMG8Tps`R|TNm!{NUb*tMin%Xo%Z7Au)X)yN6}i69BZu00`_fzZ&T=+G(B(*Yws{;<+*q zZlVkVZBXAc5=c1d!3LNgB7A1}5o4y_S>D^~^2sF3CP6S|h$5!u{rTbL;gkhYlY`#8 z&tBK9^^F?tC(|I%u3>%cv00?JWnHV1e(1;E1GyFU=Yre99yrqPEpBxyeNOVho;V>_ z2H{m){NWpgAY_f%Cmm~&_=(|P0Q^Gm{;M93JV~iqh-QjEC1X<&1RfXtV+Q2sJvpWa znfPN+(f$+oa835j8(Lj*!3sSyE|LWC*kI+rc2=4wZ7DKDdM@bvb~T>vAJAkNXXjEjk&iUKzegP9@XK0 z82CHkw};~J*Y+izq2g%oTFQ9jfmh01#1^0C+QW_?zE-|8@y4Ft@RD4%sWbMg2RY1;thfHLB0jOL{s9b6qgj!FP<~_oBmT>KgUzES^Al%R7s}jG{ATK!}pJUBe zk42kQ)EzWmw>teg7bl26 z;T*BI({&wsTXXh^?=8e}Tc$vE+{$qv;POu=f@|B?_E)g@XW?HF-}sLC^mmN~nlu-& z&2SVk-ndo5o^lwToOhrPlYC93n>M(=8iZoqKX}&iG=DgJj!_1|j{V5s)`--gxQ5G4 z(yVQCsUZewn#=I-f~C9FPJthZblV7HiSA_7u3|96nO`x1LQIE}fk^{CoX`bp9~SCbrL$Yb z;(Pnswv-3DD)D((++qyM`5!iTH~?T~ppyRp#dh%7T(63CnC@JUv)IFUOtKzZ1SuhT z?sJ|EW6!3=rRuWU>Ni%=tboNF@Di*@ExhcHaNI_ED>G zLECIAgObWg&OabJ3IOda{vd0*Hk!JF{7U)bfcZ9&%jX+)9ORI=UBsW48;w(gE#g=ubx?ZdMZ)I;jtzNz=9>=Xoq;DEy*WA62=OYe)9FzGg$Z`rgRWWHsR2rU96V*?vxA2u*~9kE=llj7|r z`$v08Ev*bM&lRTYImt$EMp_Y4YDYA0@5Xe8)mJW!rGz zC>Z@{1JdXC!=YViHqhIAKhn&On7E&8&aEau;rD{ak@AYY;lC01PD>lRom0U!8fa8+ zEp4vu%Sj=}0l5btAD1|b)r2fm%B}NAa7YWBbt~4c=vGs0g{`h8g=J8F zTv|5qk^ybSqyq;y6aneBmwp>rR`P!h#~+YXLjcuMK+)sn1T=e8jN}7@RqlLm;LFKi zw2MjAm&%b<-rn-n)d=7yVgb)N12yJX^1SmpT0?a;>aNMtE=72j(9ZSMDnw!gcr)u}Nk^|+#Gzl=bO{DLT zf-riX{W?_M9q`A6M!#>V!9CI)rc(@-fGdr_2Ex8U>Hy=XO5$}bMQ=PoeR~YiVSmyj zxQac#LuCA+fx{l%`t+`%&g%Ru7jQ*3pLFr;`(&WYI5_0|%DWhKP&1s+2ed)riz^ql zf^QoAoLecDKR(#Z%5cC&u0C9HIBcBb6=Pexyz#D-tADF#b43(@{k`Ck3{iTh3(55- ziuvFBV$$B@?3a3kaZA7cViPyZpW?t72fxdKUaM!|-D}25FCS8|^6+f!z)^qWqd-h-lDU8L#XH4vA^L--0K>LlPtPy-#_pC zyZd$7kHiYMb>KVgH&dETL&Ytq-9y2-veS%97yYy;oMVpJ&lSLYK=B2ozMIc#-UiVdoT&?u?u}IMXGk~G?g+Bb%tFH(6)5egr znvA9^)tD?x6j+WgLOyTQ@m^!#4-je5>oB~!LDcPLi(^|f#T@a1cWuYh(zd)ot6kYT zOJk$Opjkk7EQ@euxJ1tbcy4}}tiblYFU1}r@PFAO@nzNIaK?_aDE097mfF@Z-)gvGBD`?eQyFoVe_(KH$37CYKNP+lUg>b&+wF?z zO%b^*zos461fCD~xc0Aa@GXw9qh4u{>zakA8hOMrU2RyWTy-jP?~&P50a>!oN7X!4 zY2!^!+UE1Y%{|<(s>0Xu2{v|SJ$_(2Ru$#F{{X>ztG!Og?U#_=DU#mK;my2aFg|P$ zGURiNn(VB8Cuu$%)Rx-QPKH~HkC>!-WQ%Q_-~%gT=FUE~$@t4o)&3{yvd5~)C8NU| z2=w^lE>xbb$@~Ky1!vR`9Pw_Q;_n~n_d4C2dXLx$%$j;y3dBvoj$2?4 zA-4>c_U&Ibd`#7@J~7`59gH8mk0YQmG3(st>t2E3&jt8TOS-t8 z;`)0SAyV+#$#^6(vYr8tANck$?_37C8u*I(^6DAw?DX_GTY~wJ{{X;Qw>Eva_o@Rc z!*>?&>H4Ltt1PqbD%m+fpYIhX^uVq@`%V^fyOD=xAQc3I_#Tz&8Xtk$+eAs?g{^Jw zcB{#A`;}(zv2(e{(>2Zbi^I|B?`=4}w~<|l5+HEFM_w5~%~%{e!pakTWu=plql|rd zrm>dabOKdV{6T=@@vVs<8if1p%Q^$JmOvc)`&L}n2Fm48)68hwaB_2x#85!xmE?nX zo<#EaEawUbvYM_Vl0To!h(|9g<_=rlopmJsAh>Bmvz&hs&OZ*+$-L%{DCUtQ^7vH* zwkQG6h(*G*_X?;wg$JK%y>&ICTb8zl7f}70@M?xyKtfOl#);a1y zg@TX$1lJ+gsT1ETL;?%y;J+VcCGz2beqZ64Nl=8w{kObyu4oOJD+a#kF471mbce2 z>3WOm7J;!8vc_X~9;FF5{OZUS;&0qyFsgCdrZ($urbTh*uz3&N6_D1KF{y35RIpt< zu}2J`m5k&vY`iSC{t;B8H+ z6AC+V*14&51#6-hGwkjngF{U@paE2RJNB#Y^qOR zyH%mMg_jupDk$SJ&xPaCfGo*lad6pX*u9#c4UD$`0KJtDvCh?|8;hHN^^(-F%9r0O zzD)ovrNYQ2EXFsJfKNg0Dme#|$M>7_-n2il;PQ8w7ykOHS5wGF1~QECYyfM6THx<+aVuOZtYXjn1(yGQ|l#(*x^!D6zG)S0vsIeW4MZbpFHzLAczv(1gu6-Q}(MX$1J;__?eG6pb4)vcfBOs6EvQ^Ii^Fa zv=FLG7nTA0@%`$jamF1pfeTmj2_+JVn_nyzozr7s6>h&90qm ze{QPOObLM?MnEKbPF1ZTZ z++NQla%v7ROMUkoec(Er4z=c98S|FJ6Knc^KT7QULFUipd9it4C-7AxCnKEub;OfN zB&uXC<%@14f$3L%(G|uA??3O2-{Fs~LmnYHRSo|4HLVSutkWV$trE$%c$0u&!gxz+N6`)+)mQ@Fxo3^Z<$68 z&^a9S6c#te-Yk|a2GR{vQIk=Q>gD{%T3yk_3~Pki0O_7iImpFuH(J%l+OMr(+jfqj z7D)pKDh5}M4l%|Bc3%=L;IhM6q4*N&DFDArJ>*G8deXqud(6e->-EatY@!vPce8 zTdD}L-FU{|rF5P+)HMx5&Hn(Fx_PA7XC&Rb%qY$>iEhHNQ<8UX~n%L9+AM1KOyjOC?as8ho$>hnu?s}#N zD%j_q4F#LJ#1ZJe1=F>@Y_iYnr?8{-0;! zi)*`ED|;P9H#wFRz;-JdjhamoJebAj`(#b|Vo6nMK<)D5%*l3?@gijBoM zVpR1Ub@aimQp3V_x}^4yY1cOry~uTv7~(O6+xH5%`^5acewCZzFAkkA!=G(ypziF_ zAhqO>a@hI3s%;xj)owgHZ8grVZ(|H{dEQeyEWTgL1_dkcnPaMvj6hwg4sny7we0@@ z5B?14z9jIC<>s@le`8u&%!@46W90{9IV?dNlx-OL*A4LdOVE5z;sI}Y;y5(ZlN;Sm z`(kuox_0BHNf|xs>-`VFejn669?zq_?Tz-AGVPXFWC(;Egq$fLaD->v(gVVDAA^1# z)|o8)Kk-W5_VajFRh5u#{^|g8o}RVlo;>jd_rnhvOQR=?uI}a~G9K<&a<038bsQ6x zQ<0tqE9*T!z}^Dz-Sj%Ih3vG8JBAFCZLnUIew(ybqvw$-dC#E_8>2*n_|Cm5+{pce^>s=REYLfb_{cU9W3i z6PHwi?#3H39o1&GgqJe0Q@10b+?@Ln&JB6h$HpCU>s-@=L#4-uVG(;MgCuM6WFX~F zY!mYl-xZmp>lgYPL20APv+0I3Eq`?u_xV)5*pv)8JQ7#)#E&l zrnaqof2DZp8@VsMEhJ523qba%6GW1#4y!elo!Y|={T4U}nIm${sQie+@$7i+D~Q$ZuCzFA zC%U{-J-9Zo+QA~bCh{49CzU{_h99K>bzU9uuYxs=KnX4UQKLqrD=7OrL+2JO`_Q&o zNj-7SKN{5WW|QE%_-47E#eOQX^C4j(-a#5fxjYb6fmI<%01RWN0=XRq=06iW*UhNu znl+-pAi0+ELH3EI$=Ef2xfRanc3NzD^}GwG%Xe_dqwF)Rn3)PaxLCsO1=M-D+QpZi zoMd`d7l-4xxRYJCyMb21;6_&aTEfL|xG$B+<3BSnUsKOfT7D|<-iZmim+cnv$9CX> zV~iOiZ{4&+oD+q~9e6pw6##W!3-I5Gw3`_%rGnn!r;!e&s9I`KOB~UGfPr`JOg7aF zIl+A7)^3~dcgEk^33p}TiRY2!1MQ!?XdwzVhY+iP>~|Fz&jgZkE6*a)ZZxkKN333I z6ALZs^9dtJX0+-GvPP$FSda+-^(1t!MDSL%py-zJ>fR#zNx8BytdeQ>3L5CMIfyYr zSg1M6=OKXU!q5c%E7N`{+2}Spef8daLINqqZqpn)MI zoC3rEdFXv>8rQ^{quS+2jTAco!;+V<{cP`Mv5^4c=40CR$K+?@2T&rkS)EP8c>wl@-LQXJdK z0Wjha)-!M1~2{{T#J8(Jg#dXlxo6A{R z`pPIR_I~f}ep@*>&fuy5`V*d~(z%NbV^Oz)*<`c(POYCQV~6QOt)5cx3^LO=Xtj14#qeIk7mYl2Tb+NZh+|_v9gRS#|YoNT-?Cz~>P;>I01_&he;~doYn(JNPKyAD}@Jb`Y?B5ea3k>|Hkk}c(;N#w`%)P95 z0vpXXOD#Xe(OFEyW@ubG*^n}!&eygjAIYZSBUGwP7S0}0}}K%{^P zbpg)YxL=fd^c>XGewwpBw zqlycMStN!vB*`Eutc3Oih5Bdktk{l*`%Qybvso@6*(WBOEUM6T^k!5R$ZdqbCEOv)t3goJ&Q;<)8O0{ISs~k~W&2bIJ-zNeV2sWS~ zj9~k0A1_0WYa3ngy4cNPZ!fc}%IzJPOJARBoy@5#{J?EeyKpxWYchuTy82B&W~ZRq zrqqirmhB{lc*AFe3>0UU$>eca+SQ!;)r!Myqe*XZHd$^}Cf+jH;{X;10Pt~&(rsf` zxX@;JwRN-4n9#hCwiBP6<(K9vcIOxba4EBE_Y0_7#@e^qrM@`;fRr`vgb6_4Z zj04SCnaoA3+)r~Q%iBVh%F>3GICm_ufrfm8$jHV=IS00Dl-D)ug^Z)GIuul2~)daY;*^vYnoj_SxlE!7O~5=Ipt)PoU0Rn$Twt+ zWZ?0Uj1ijXuQX2(J@wGI&@VN6h~_c>0BFS&Y$0Gz%)qV{F}Ps-!x`*Na~hw5_3ODz zv*|aMme@vRvmmP~;E0jcwr8pJP%)lqGR}JASxZ>toi@omq|w7~Z!ZxrF2#=WM&-c! zq#TwxI2fwBq+Vu+6^dIVC{Q#~%^|`_>63s6+KTOyjxg=eX0&`o4!S3`2GHB3++sE} zg(|E*Pn-oH5(e$v00fi4tSO^HAp)>pm>gvFHB$1-Xu9RLjjLPR&g*r)U+oJr zpDquTAC_=fEQPW^9D$nD)FsiO(Gyjd`$`R4b58}FPPtvBY&ih&{7OgO&U;mL)-N@Sh&6kSZsSkXq?D^i6t1ZflIAo?5bgmuG5typXWovUx##xD@4#SVEv=?IrLBHOt*=IxelH=_3!P*m<%? zF|>v~?<$`&a3khr`FCTWAP$5IMV-%td~vG7rp=_m;yZz1bu3L4vt7#!V{(}{#>_ZZ zRge|P1jmewf?MFfi7MHrU-O~q>TUdiemrOSpqjq1u1IV3E0UJGOntq!% zi99zeUuinFuN*VS1X_eZv%_r8(=-v1cESN<`FC-&jQsp%YX1NYH60G?M$>20?;6iq zxs&Y5%A?JQ1tb(*%%xR_A9Y!>K|8aVM@^@G&|eU2qk?T`#@B|z_U~h@vZS&?u`p*v z-l2hAz=p;GuG7}7d_DNlUFn`1@dC!Wq_XPwcX#lk3?y!R`DEJIeZ@Bp{{Scf zK+So!gQ#l@Ad1ey;9qW%L|JE%qJ=Utu8cABKPnVpk%Pu-wfJWR#NID!YYlGKPq&&E zjjpdPfS>H9CpcBfAS#c#K3_4^XXP}2?c4Ue_?4mfn@hcwG|T%O!!zne)oq>PG6KNI z)pt7-Do0FuX1Tu?YTg~y^qIBW{{Rl!=@**P-7Uq$7ve+j_rp2#EhA32 zu(;8rj$6yyd7}ZPb#2nj8w^2YA0YXIGxEGp1_r&VYN_z<-h1sTJwwCxuMNBxTmEQ} zD3$_|;SROR;>aer(;>LMNd>rq>6pUJAW<4W&BDixxhDgh^{&57 z({(L(Qq%lCWk`}@zFX=DR6y>EtsoH{tgMY2H#iyN8*+Oa?Q6mp8YZ2k_{zssxbY5| zZ~dQZ_D03LO3}!(&LxjNVk4Abt&+imWOSqovsvbc^| zbv;K-QY>zvf-xMCTb!XXJ{1C}B~K-+I`?<-QD*-;g)Q=g1m(tRnNr#0D`_G@Ft1iZB9=T=o$u>W|3R1&Aw-QXyce~ zJ8}=HeWN%B?zcZATwGdzXWi-=R9BH|ws%pwUR%xP+igVxMUFtDF3xug5c`|0(DI)G^9)1jKxp-YxPcX@K;?qpV88wgKPz|M99-_MFZ4){;ueYb}EEw1ZV z8h3~_D5KRb=8w#|lFkrtWq}z!LddEyg~)7^jMcx|8^qoR)%Cb9bp2vx)Ltm`ZBOj> zQITgDgZDQO3}tZR=4kWK64mn#n>YL-)^|Fz%Wr)h!P{uImguo^LBh$F5S;DqN6O)P z=C$s8MGm26lbb6ROMUmU*{lr_mgvR%#?Dj_KuxRLEJBQA#en*A#ojsar^M|S;lj4R z3>vE3+&gPJl#eC69!Lt)MpUlvG=$m@P3%5iwdkJ}H7y^;T8*cO{2%cf!+UM?%WDA+ zr4n5$iDwS3h{qTul;A1gH$XV}gF*3w*l1RESGtw2*%H~VF72C6UFskAj2C$zpO|60 zs{_U{UWKV^Uk>!04(`WO@UvR$+I$cRzQ|;Y7X~A}(f54Ap;AUa(hnd5n*-K9A$SME z`q#uy0r+3T8lQ&mwTp}EpAc%A>q#6CT7+~h8sLTJY4X&v^=yHhS84HsR$mPM)ZPs7 z#*e9KH$E1*4W-^q7PAxL0_1@_K%J^ESx$EJ^ylO~Ys9)Pv0_Efhc1Q0ut#fks$D+& zdua$|NaVFuAgpl=Zpo09EzU)ASC)Dvpx4^HgtIi4Q=-KzNb)MAMNUJa7vCc??F0-3 z!NH)j?G0o0NB-FO@&5n`huZD#{2y_sN2qymyezi&2*OXD7X+i1&Jg^Ac5(o!o)_0V zeg6Orm3O6T+K#DnW*AKtlLX#nx7Z3d?_359K30op!QGS6zC!VavEuz7N3`;;^*e~Z z%f0RTv5YY8P{DFwD}jF2c;JU5jqW=Lxjr zpHs*Oss7bJ2XFi_@w)d`ySACUJFQ$inskv~qcpOy$%rO$5WlAK+TzG3x*5%YL^}n{W z!yV@Ki{zALKtD2qc-)(I`e!wFSpA?rC|rMNX$Yi87g{w zxyL7p(E-JO!XGc$?IQll)IQ?x{?F6p{p@^#k`OVI^0CfH=Oc_)*S{3>4NmL!Klo>7 zX1jHSds*7u;`z{GQ<;;d2GS49>0SYE@uS68Yh&UaH(YHy#Iek_w^s`qfXTOOOD1y} zAvS@9$oYp-E2!}Q0PVr?V#?xOKmHOO9{w2S`)WyhXB@MIkAlJYQb=s=>y@npbpHUe z^~Rs9X#W5iV$!tvBL4u2c%{|l#@63)=VY^mUVsyh+k50!s{Y3QBevHezW9AFh)%O} z;Jrm(N7aeuSObtVirsdEH)d@T>NMzwkH4sr+L$g&o9~4L|m#pJ_8djvO&4>T(Cq zliUuK@9q0eTSwu$j~3`&4ADF+*M=0TPM(KJo%W&NKcy4xkVZHIgH1CDWm2?Pq|?k+C;L8wjrs|=F)ep{uyjp7n?Jc&;uq z`?$W*E}w7md2%Q3e8lsFI#Trfimwn-VUgeb9 zNxEM#lb7x04T!G93#bvfpbQES_Kn{oFQl)A_q<8B*v17nlkyNUiXd_MRu;QdC| zz@8iN7Nf0r#?)HFt@wm}jb(+)0_evhC7AQZNb5+GwEdU$n}3A=0JA@cZwwZ`C5FQ7 z_eKww9P9G#UYP-RoR8wbuRZvs@jJmE6}|vycDigU{k3a(a1V!UonsN7n=?A9fyu+; zlg)IW3jQm6AkqFC>K+`r@zX;3gUI)ZC7iOGSzS~Z{_Z3LV)8q&td9ffe*r!X>sp_Q zw9ge?>%JkIOS^`~3ynHR;qxDIt8LrVx9-cHFb5f=2cLe;`hK6{4~-rVYb`}}86%Ep zAI)zpKtd80Fiu9^2h1Cx>5A6}f%sMQ77x=w%;$IQ?k4(@sO%_+XhD*6l>&${SqbuNWSCTRFiu5nq#`(N$ai#d% z!J5XKG&eA;_cK}Cw3jiW<6|=@Xw&8=8RX`s;Bg-X{t;j4Hus(^@J^ql-(TB6(>8~C zUP+oY1TbtcKgEobo^mVDJ{d=&_@h|0n)AaKKM!xb_Owkz0rr1A)k6$7a&R|ekU1v4 zXlQk6+d1eX$I;OKe#s$@|K$kKQvd1&ADHBAMcSTgCn#(qYss6-4~y*{Zmsss zK3j)p)9xhy0FRrFgf__u#yJ4wbve#(J>TOL8W)EAT$+)?SXnvUG328YB}@LRJ$z_!vK5^98hp2RcXsh=5zW8L`&X3PkMQuj2Or(dRMY&ckKWo{ z+r=zt@_Cl47WUo0Zy5wGGr6&mKpuK|+V(6qDFwYeYuKO@}NF?`=~RD7eJ{{S}?M^M%-?mx5QmMh7k zxBy8(w!VGuXB<0s`YJi!DsLYBj^#U{H zfwy)~LC7N&cUt&?q3W7kws4JJIBn)8&c^cTB({b#jBOxpEIH%>+nUn*JYU%V0NT3V zpK+*vXeX2Xq4w7EZWoXc4u1^e9C5_}aN2&8qFLC>c=yje$(W+~Q2C}18}BlnqxiRU zJXcSm_+AgOKCH|AqMmUiOzg8PYw`tTL-Ge4?jw%Iqt$#XrCQqQdcKyII&PD8KX>HK z=Sh*bA-N0`H_APDAaZIMFRXM`fvoi?WJ&GQ%>K`LJlw}2&zK1!MkAp(7$SfltavQ0 zpLc(Kbu^zcm?K-D$dQy>24j+2umBT`lUU34?+@x%UQVeLaWF94JTi|iOc8|ufxz94 zI`ds0h0{XRuP&B2h0H=XnHpKrHXdI)SL6pQ2pzozU-6grZKQ^1ZSAeDnlTxY#uE0? z4WQt*3lrOr4tvlCE2ruDPwuYbit_GhKYX5IG+uAce&PGs#s*WKIITTOca_!Sc{Hh3 zFjs!!%Nn=M8iw4&lg}U#PSSigHSU*js@eE{?j#Ky5WLq&spe&YC`klk8ToowuFv6b z1?alYn7UrMI>o3%i-pv!Q6#sY1Aa&unDfwcjzORgIPiX-;p>ZgxS`T+H3?)-KkX83 z-EZ>!+#Rcv?^paab${ZGZs$bPr7d}UcLkYnvo7r5^f~RGMOX2LkE;Ej&9w0Tp{MvN zM`uYi_irj$H(~N*BoYrCi5Zrg(lI5`U*@I!)s* zmLq$syN3}hot2aj0__JRlZ?;@r0DvGiN4RM8@&=eL+uE^@$ok8k@V6XrFnXOtEKMyE}X*G zrSU9+`r}WJ?@H0Riyz;RDBL~Rn)55|RV?i;E&l*^e$dM(TQ)mVGuXZ}p8R&K!1mwS zi^aY&@dlUT4GzM_WFpk^LEKo3la9u`Q}%n-t~?Lo{W+{|qraZ;Y!F&R2v%e`XJj5D>hOd8AqOs@&n^A@stc^JIXjJ-6VH#lN~Z z6}JcN6X83{Yw7$uEXLtVmAkdKZM(6Lyc^foHSv#yejDpn+8y22wRE}~Wkj~R)yk@} zZO+t)DFlyFYuo-Fe0ca_@Q+GuAMJNq?6by8==yvL$P13{Q9v2V#y=Xzs2dv3!n>c1 z(_BqG{l=ei%I;!@-}jO+9LV90IXDA2uQt^DAF6yW)2=i-1vU<2Ee!M9Gko8~OEKGz zY+}1#_+M7Km4n;(GfTSg+!9TfaTAH9Vd~w+agNoQ~RqlA$XmC6=X=ac**wmd=LeQWHQwvlELfwtCDwUa$c#JSzn<&QWbxs4~oc9t5v zYjJTbS3?JFyloU4!TEy|lE83zJ?emyNYnKT?P@EghV3-;#kiHCRE7|G0KM2AYl!%b zrrufW-dxP{F5@6(kQI>U1g}6d?OvtgJxXsSZnW?8258J}9jN)wJm+a6lhXqvSDR~% zd2u62c|Feihw_XqZbNW8qaW9busMk?yqi~zSIQfA6Z0wj3F}lX;kwiSg2@3rcIN>8 zb-N;MiIwql{0ZhqmiqJ3x!Z{(NdSUeoZzf{V;!g<(4DWX<7-Kt7*-Mc!vI|U3j@t& zfU^={3`cANTk@rbHfC`kc(-*$P(#zN7JFYQog}sm!Z!S|{{RXA&|eGPNu!NIK#@Sl z0L<88f8EY&6`DafEX0-mH6)7a?QCzZygJ&A#+oj4sOB(_eGD$51BGOpj1hx?;7Gg*|7q|r%{)p1m9{Mcsy09RdBk*PkP9{09};oJD81fS4i)f+Og$!s55 zH#>jJPcV8_kXe^id#N`l3ZLDk#c?N}lnMu>RVU2(w(W23{{RgtxsR3@{{YZv17T58 z8DyGeSsU)HGTtdB?^m?T%XN?UvG3e4K0?5sZblEiHsTMoPb`{!t;A6O0N+jT%>Ywr zyqu1-*!I6A4K`@rIg#aqVLx{bfPKwcU$ZhRzWD=m^3Di7!4v^s?FXiK{_lF87){U% z@_)dpgx1S%HdoBp+@D{dl90k(rr9zaZ9~eRdH}h7;T>JHqpUm(Y*GBSkQKtWq31uPVT_}d{`WO` zFB<57rAp5qy-jZ9A^z98ygjIUQJ54!G8jwL_=0y?amwrlSecwM&~#%P*B7j7q=6qoEaANKC8+O>rbw3v3P*NG$T9 z+(GC#sMpN5xa;PR;h+g56KSosGE;Z)e+jDX9P2NcBB~MC^fhMc<_U1mD|w6m04&?? zig;+Gw*py0#(#yniU5w@>g9PzRjU2e&#E+0E5jDlIr(`$^+;R+aTHMR@`wICQ^=w# zgCH0VxF1>o%koXVz#+qiIL&oF9?)mJWMy!rjsR-JSV}TKmF75ayIn?&X>hl2ZJW(f zcNo|BXfr)?z_HwElemuJ7mzN|5`f@mjOU;{{*|xd4MHo6h`)9F@44nl{7gM7JHhu0 zrdbzo!Z&Z5YL@T)+|`?j1=ZmDHKQy(UgTSb415=)Ke=I-C(d-SbHxyVPS>b8uR21mGnor+X`?2*)D^{&$5;!~tW=Edbjv47RO zHt%y-mlpp3Xt;~X^FMd~yUX44eg?Xa4Cyjz7VjjM^B8v(0^M@OKZ!x<@69rdb=R+S zdv-}+5KQravPZ!yp11_(kIK3~1KjDd-uZV@#S0nMU8K7S0Ob6`k&)Xx(p_n3qnnv6 z?O-u1WU9>zG}1=ge1wCKb6Bj=Bzvsjxcfw4f(&~@9^@z=DaRP}tbqC!!q39;TgxoA z;dK<;@W=|T#pCA7eeY#7S!&ugr8F{|31&q}8fl}Dh|b^Z#y^)8<61r9O~i4t4DQ1G z$_IVNwkxpIJXH>n;k$|M;ke$56`I3qkreWt5ypBp2^qlRnkf|TJUx5jZ#MEZ^GnFn z2_}_RS(SM^Lv-po^}(vv{sXcadR)aQmQ49*t^-CS1Qp-LN%@HM;-S-iCKxo6r>>h7 zlf@jce1tB8f%%LTffu-p%na!Q6AF49j!=qZfmyg_TJ z=+-Otoi`dxvPu4x9ATI->|6LwIUbc(*HqDLY}f5}5>57n-y5hnCm72S^LFYDdT)!9 zRMoU+g>|Gs9xj(px3^t~X#hxEfs77-8pQCof^K|G6!zCwMhGJkTu&oJ7syrlowlC% z;~Dw0#Q=F-$CduN*UXCV<=OYP?c3Y1IOOM+?Oo@BbxmtiyRnLCW_xJmSLA%EypDbG zTxOwhE}^Jh-OCh_T3e?0V~svtyRaFtkDZs2$DH)9LHKicZTuVJ9Z423CA?b_H!SDO zJOt$S&VK_zXB>P*ZLavr_f)+H?3#t-ml9<@RE>`Z9>CyN&^{lx_Sdw z02p3=W0O-P2i&Xi3rLSkTT5?2Q*Kf#%AQl^DvA##Ea5M@iQ&qnZg2+%l^Ytl$Cjec{utaqEoNO*e<{Z=_kT zZ7!16enjjuy9>rw04c^kX7#RHY6EopPxwi^iS9K^TQ^q>kxF((+^+Tno`3<6E3elq zHGMNmo(&UNwA3w{1+|uBI8CZIG)hlwk-+re*0+cL0qVXs(AQ7XCbNPlkli)Jr_4}s zg!9m)OdIHe({fo^roI|UrrG$Z5)c%3f@xx02jAIev_qvzvZX}S$Y+0F#lZ0+MWO5V|csZaCL-1aYqTda2`tmsJ;JC~6y zbm*Ex9BmkO+rb|x@9GaDxvtm2zZ)#H9}=#l*0Wm~NDQ#ch^`nA3}`{%5Jo`b+Oh-P zbw$t{!rGUJH9rXHx&_9c43d1YF=hdIJ7gUW;J=RszA=x*5^R;8Yg^cdoUwhl?pTXu zNK_#0&Orp6Wox?l!SVk9Q23c={{RT^(^pKgSqr_bw8f;C4f3Rp$B;5kzy?6|0=R7# z!q3A%~E!vl7WFgbCRQ+bsb5dM@!(HVkOe#hSnQ+45B7`sbmP_ZqiqA z>&P6A{Wuk^;yWEyPYDQ!i4yZsh$_MsD5FGIbDW*bGUzkc9R-Z}GyenkdSe|Hf@9hUzBN8l+DSQ@T{8&MjJpzN= zR)ak&;qA_w@JHcZm8|Oa$#<)2EgX?qMG~xqNG}q^%m4utWc2sVcOE)#4BmJfRPlbd z;oAwNYY}sCqfG&u@6Uzcek z4br`%_JHubI!}YbO{rZW^DV7@$rPkRZn2~8m)kNGC6A!27#6jU5_mS_;WggB4vhL< zpC6Uw+bel;#~@@ax>9zLf(RI`8U73WJ@KuCo*>jT>5MF*>IQ~M7Hei13PIh1KpT1i zUK6Wmy4-ef*^9gD9}Znel4>^V`_defh8YKTe(3k-74$cat@T|e;R-|Hi)OsPWrt5> z!IjoLi5$ojpPK}O@99}KXm~&TBEJuHuO6m|u-ztycfLC)42tfP44_`Q*b1Byd;8a> z_@l!A01Nytqv`s7tLA^i!f%tz`I+#%u`E5#MR6Vl_*1Rjd`8oC4PQyRv|ARE>KlW- zp)NUi(SZRF9AO4VOJJOFC&y0@L#=#m(exx}+REK6(LA|1^Q3LkG2r0r+0^2J9h~0) zz8&Z~OuER{8%NXTyYtmN(6GX+2Ee;OWAc;0;L#0e&{ySUPpRGLe1V;l<` zOA}#>ugpsDfbJRO^sd+TvQhs43iCnIbqiO$wz$1AO0Y^H0b)?QP6h*EvIsq^f&H15 z(?sz_?b}!`mt}8ap>8Ey$1H`w%D#SVqMh7i)m%ld9DEnG)9vjoV(~4$pQ_0Z$!{de z%`Am;9tW-yup5sR%XpvQPO0E~O*dWEuh#BMf>X=4Kzx}2+=}YsYi=3)r=YJ!@fMq> z_^adamPodn7DM*f(RUz@9E_g7E3)9I+%tk}d-jaKZ6Cn4HuCw`NiF)r8GwzlN#(E% zxa2S)hzF?{rR@fIH-ml=>z+8&H4QsY)MXY{?;_osyO^L@q%w`EvjnpcydS13(6#S} z7Tyhm!`Ign$qaDbi+dXg%Cs{|BQDX+B9py9z~~4W&)%-@;7*e-hV;0tZ!OU;ucU@c zh~)Y9O){~HAnlScft(zZm&O3ECHSYPUwEU%+U#(&*wgM_SR=J!kyNLcml4Lgb-FOz{1C^6+7xeX%)^Ex@x?pDIzFS|7N5h- z6n7Ha%3cP#!z6Mx&8rU}Nf|7vUxmW92R!>@xHd~n;H1)P_ zTasc?$z?d;gN$xD0E+BB2I+RzZL0W|{u!>Pw<0Teb=V#iaigptzz+OgJzsfnlLPr2qfyQ`)N3^%`N806zJwEQ?Ha?$j zjNfAN(`S<=dBUHR70!Cr_KAC@X}0SvzN33IxL5tnu(xQGM0e!~##;};`G+{kuKQTg z=J7?mTCBE~`hKBr3e2BA)oA3(6v^it{qDPvfx)Nv2Sc>eEbes+_S2h9o^rosv5{KZ zM_rj`kQO0VAQ8d!>qWrle@9t5Q$V8GE0R-jPI3F)Kz;4F2;aFx*GCeLR z;|v2m+Ze}}fN(xwNyr}A8TYP=9~Wu&7x0MH*G?>mZdNFQtCNC}qNz})E7#Oi8i)KN z`aQ??guZ8+c#QAnKipuz6$3c~JsbPnbgPVjvu|;CZ>Pm+_D?D;pShCWZLFR4^f<`l zt#m)|lxi0C_MdBtKPvO&PcjzsQJ>`b-11NmRGu(!Njc4D>H6h{s}v}FJ~ad{G$P?< zDCna(Z#6*LoO6H~h6Y9}rPM#-U*_G*6p?v;Th05QmMBl~jmJBcc_%qxzz5}~<#AY- zO|;fyTf2`k*X(g|9i%c3-QaHplzhY!)05V&YMOql<0$m$G~4(*Iee^TzH8Wg#JGe; zz^anl5av`l2R%5hep{Q*5q*)YZSCQf8<&CX%mpNH9yt8q2JN8XxncZcfH|yqd~11e zs(pfc{{SIu;gRB4+(hvVD0UI5hrfzxvj*r^4ZCox znHkGtIAOsU9eJtsZ4XwsxR+8}N&NY)*3~}OA&pycU*Rl9?CoL!5|^U%#lwN7sgoQ0SlI3amG&! z2iBO48;=9UadGDV0HfW@9PE$&l$&;iIAU|3OsM6LI61CQ#-3+_rntG$FYR@!*)Gx} zqov?jgiPBSLclVD2R(V(xE$nN(DiK^>+O1)>9X72Y8P?OHLb%2iF~j^2+nZ3!u10r zv1a6&(bhk*t~Cu7D53EDUSddzZ*dB&uE~w<+kiO8``!NNpo5&Wu+ikTT}sbhkX)9Q zC>TX5u))JRsazfxgMuC(G< z9Y!k)qiH-AvRmASSB5y`U$Vr+nA0eJ>Ic9d#eh#Hxho~NxYH)o;IfYY08zP<&1QJK zwUt1~3Ul(DDFdIFkU0C*U}Rif_*+oX;)-X~CHp^_W#)Mg68V8~wGRCH_im%NH9_vY zF=r%m3(ZF2NMd;w#uRAs*~w5rJ6)Tco`Sj^Lr>HH0Jb9k07U-)S-1CcC-DwL{Mj; z1OV&P7^*R9UN*Y7yV7qy97G1ohg(^6b7-bSL`41R3!EP%Nh}7~$Qc>WPoU`fgM2%- zI!a9*rRGhjTg=g-TojgQqcIiTjr$aj?zY@kj+1rceOpt#(EM$uYE$W#4`&*kR@@er zQE?GJBA{K8D!3#ZC{8=l=eQn6ed5V%W|H#%0O5awVV)a#CN?70W;ZalR%0B2{#HbY zCU_g0Aa$(k9}swR#>-`=uY&v~HKnx8b9JYs{mP}D;@^Gt66J={#1F%zWO$>+8i$BH zQK)}v%O;`a>K6&+>JxcTSxG1QwsVjJY#2W<`FI2rBzm`iJOlp#2z9UgBp=u(O1Rao zSu8ZGX{3W}X(2B2woIW4y0a-`l#VsY28SZZei`_zSoo3K!rlbAit5}h>pd66GD!$0 za>iO0O@}^d1zUg=*RFVj#oiY2C)?ohSA?!~TkBZKd+jb`z2qprx>;}(w1eejVTSGi ztj`VTJ{|CWgD$^oqTgG=14kq4dL(ksJbq&_N0t^KEMZh1Ea9@-dFxxc$B8sw9a-tu zKiT?(&#@(r4O-c)Ttd&~iOV_^ZK_5Qvc+RVo@)+r%uCI6@tsQcV%c zoT>n;yfKfV1l8+*+A~nsmOU!v(@?OI`Qx77O1Ier*5e9@B6d(&osI@bA%|g_^xqkH z)5F?-!X}pE!&Z0NMlEga^fXZ&#hl!-70!SIp85@ozemdMl$YC(0YyXDWO`N`d?E0skF_{s{{V%j;oGOvC3tV$?Bus= zly*5=jzdqB@PcO21VNnup=9i)`&a6#PiluU^vLNbO-U$!(+&98B`7B5uc) za{C521$}dx^G^r;lg1jy{8SpOntk4%51jV#+OF608)K;|$N(HFs^Eg)l5tcAsZIMZ z__pIi)h@Mv40xj2WQI8{t#q%sJkrkVw8j-x3~{JCdCN(=I3l=>XW&nayg#ej+b*4| zX}7oEX?w4*S;-ofTqp!#Q~g^zVR;`oKf-GRLB8<~t?V%+^~%`EI!AMve6!>;9l)_* zSAWc@&Pyf%Jy)T(_^IRDJ66A+Th}!Us0g*Ujih9aU;w!N+-=LWV7UdlpeOFo1E%nv zx2C~wJpLN-8tZ0br`)~HmeSk0vIa|(R6t{O+~9@;5Wtogs`7j_@$ZKGLo;}bOS+3j zj$vaKs+FX7n)L^lsQub!aRluphH_{F zkMMtjbbp9*YBJqwHt=ef612|ts6<{wV{uewWe4TzFj#aPe8WS;9}nWUx4ZuUgnlnJ z(lnF%KUj|Gt*&j^5IIo?Sb!PM;>=ql5^JW`KWI-8>Kc5%+P)R={;T$P`zmUd`cak* z&&#=UA;3H1JC___WB^Te9vkuZi!3iS&kt%}4m3S(-rhOkXl2muE!Ee{L{{FccaBc{ z^+ox5iVC^&N7?@X;a}<&nuqp>_J+3_EH80!^4om)$C(=f%YmK6xg`G zm9w*)qxs@XG%6yEeqMHtRk=K`;w$LSi5@KYbz$dOx5FJ0;xTl}*0A5+K_hNOEpZz& zl^m2IamO{z{{X^A@V{KpWw@~L2C=7J+oMGtrJkr-5w#2hD$~+TQqgU+|mi8hYQ)YYpLA( zBdb9fjD`7*;k=LHH~=3^8tOGI2TbrbmUP)|hN*RSB9dFnqy(9aak_;d1y$PWt-G9q zitKbv1K~*i&(k#RSH!w?;EQycUa61kv34RyqmmY1$ z#I0iA`#){ylTy;dMLPBQim~2sc8maVo(UPP0P?vtD{U@KW(`SVO-}00Ijq{^C4aI& zNN+3_3-hA&!jOII8&K9XtshYPTv1+mR}jYO`;}Szz?hF4fcZ!yoDPH>anGt;cn{%k z_Q%;G_^YK|=~8*0Vw3EbEj&=1;Y^-c`=Gj>bF`02!f)B@!WzZKbnl7&6_O_0;aciz za;h5}0TX}qq;^1 zs>$=K1mxiI6jv#x{>uI{(mYJf;vE-Kv(x6BnQkm3j_yW;sbZT^m?8V8px};Z1J3o| z2iV-(q0?@y?qr5YjIoWLY`f6&y_hJ>oR9|_RMw8MxixJ*&R)#-T2uZ=!gXD@)C8 zSwGOGvyK*3w3x+>vFGLrKX%GE!2}KnGy%wIULd{Gd_uRH?w4tQr0Nj7O&hAdqYimL zCIczQusG^RZnwh!02VI%AK?E0>`hi%jaR|(%^#Czr=qk;8GYql@ZZEqU~oV<1d5yc zW5NFbXVD_o^$Uq^?j~q|;#X_s{{W+;qs!m9S8--6=MKjp3dmm+*?14)28kVw=9{fq zYa3mn)FcZO4o4&fd?_180OM&~^}(9~iKuE9cKUvyt>}{8XqqIGO*Apt%+V~rCKnjN z0I$uCL8b6t#Y;==3g^S#G}HA3(Di?vwF`L+vc)uejB=_j1M)D;xZDZPD_swdJYk}E zXT}zAXo(H&)Ow1G$gOR>)SX=A)tXT1-!?w*BWd|S73RMcJXv#blNZ-Ly4^pIp zJ+Vv=bp53~Ej_y0>r!j0cPaVpt=Xg5f==kT`Hp)7!TGb!E9N~@;uMT6I6k%L+I_~gta-YGS8>{Ck|dU2W4GP*WQ^nYSxy^na#W}}1pK{f z!1{;9AG8PBJ{Rftf4tM>xJe*~RF2DR_Ys8%VoxjO8;n*-((ECI#@;PzY0_&g&c^Lba5q0G3A6#g z!ZB{VWc0vmyLltDg4b3z*RaUYM`w3wu_IjWM+bT6Nhfh6j8FyrV&cDRkNB8Hs7Vdno1Np5A1PIb8({Lzag1kjj^i}VKg08A{ui{=BL2(!F0pH}8;Kpa zZW7?+wlyUidT?V01}{d=QT#-!}^Sx z&6`|C+I8*pq?s?{V!RXle{xP&I2a?PX*H&`W21`;WwpA~<(G7KYYH$)Tat=7-_;`5apDNBG=J=`?5O_Nv8M9v-e{FruNeb^P8ITbTAy&o9o|CCK}v5z3BgJG(pBblDOeE(wGE%d3SgFg}5^lp`N>jE{b% zEg!@2Y93UvMJMk(&GE;+U5n0g0nZsi2;q%B4JGvbCfZwDD_e-CEUEU0U1X69a```W z01rY=(?Axi*5AXT-R;H17mX52C)nmm7T!SLb@=&L8%{a;)}_X=s`#T&`(B|fbgO;4?<3x^C(HAy1yPkG@CMz$=O(ZC zqr&lcU&j}Ed@|}D8nn1}M2^ufseg6QPa`FP=y5H=* z6H?M&O7Mn_Z>?z(BF%q!duS1mDE;KADIk?0NAAJxTvn5=Yue|DB9lqdBTX(AkSupz zTgS07SZn}qx6`Fu){jB#x8;(|jlRXK~{@x$j;9 zG!{jkNoH(F8yQ&91{db)N$Xp`+ZwNh?d7!A;`=3}j@vxAU02I1^S8=*$?6-WdCYg3 z?}V-{MvtmoU1|3+e6b0ZQgQzPJ(YiU57(OPz8CmETlj%-s70ttC8W0dT|b5-Vbx0? zlyN{Fr{Gn%)@^w8kdSA)b#7v>})QB zmA9Gv#&!+!g$hnbrg`S7_-Enu>8Ll&f_(CM&AVy-2P}F4+cm>@`a7==c$UuA#^Y4d^t-7Js=r;tbbzmYRe%mg&9Y z-tm0j-op0u$*)}agW-9!`+x1ZVYk#S3CN(1= z9O5|f$GaN&`&jtNedEniO(#qul7Y;9ozG?BXR$RwQhpbo1^(EM58C_dgN zO+xDSJ%;jA^V{IzlOw6=oO;!LM)OsUJE^o-GGhoXvsKSW7PLvwD~SPOX1HGMGmlZ;6#3Gka?>rMxk&)1QCedzl?p;q(j?N~IHn#hz zv|w&rV<4XOV0itmsd5o5UfE?-+~PSS#C7NHDmHB@qsAH4&vH5_w>M{Yxy=m*3<^HpIFrGydyI`fb2%vrydQS#lX!=sz>Il$X z$TJnO0nX3w9QL3LHMW-UJf-7Q2LVn&Kb1tY3p}rp9H+5u#-APF^HlxT$x;B?59L+v zCTSx8k&XQA$*TiK-p=xCb-K2VO}2Kkw#37FV|PDVb;Z2158mBD_x}LC-+S<=?Je4C z6BJRvB8T^k?!gOtWcB(A-P83Cv%%#>_6dLBAK)pVFn-40^YIt`_TS+}bzj=@f6ogq z`{4fog%rTz+BB2y^YyCl3&wck=~jHjUY|G8lXEvC<@(i-HBR6+4WpqL&MN5B7F$-8 zB~oMLt2Ww1yAncRcw>w=CSBO5ZXz-&x5_r~an9-he3C&Am*lGq_1#tnmvL|m(#RtJ z0H%N8(yIA|ly73edIs%Ij_EggPz1LceBy1gHqhVd{pnKPNO%pCPrkBv!tHJDPD>7j zeMM5;I2r!{mS6MIfG+;_ZoR6X+9UJ5aZ&m5&A^iat=rkh17!2R+xVygcy6UWVIS<` zt=wEgx5~z3{{WtqS+x7>Ipl-OS8ajvrz)%U^{Pzem9lv>0jFtebLFbS5#8H>!mHiJ zA(LXe$bXB=1YqYFIr>qj>em(w3=fIFfx3ZLIg&PgDe8cdhg8Dpu@+?pUkn&8TJpTZCi4m?_D!YX?-uS~I5rKyO z@XcPh^18(-AN0;o@e}~njp0B;aC;GvSEG*Z?nD5VjfT+7>K%TZV{K-&;b5a3E2Xph zHT|*^bhdXO6_KO`go}&-3gq$5bLuDqEqv9!5yv99UbWl!Zq8;ViuTmmXHr0JRp z{g&lszq@5we|GATVTM5j9mM`$O6|M{YaH5?D`RZ$6d!$LK56>o@(0#|SoE7e1i$uf zn;cPYclnqC196U-`qqA-r>(y0duzSZMt*pPcKh>;{#B!St3AcTTth2{gyghmEV%w4 zJAM^X-9&`9mfPFzx}D0W)UoYUj%jF7wa~yeY{fvB)>ZBkNBC7@nh5Z_RVSO@Q9}KbsI&zkLLZ-=5((G{{>G#ODv&lX$I5a>4@$_f)o$$fmfZ}oNZGfUnIi|)PaB)-kzFHr z@z>7Xrme(GyI~iA{GOz!`B}Pi?Nl^doj+68H>`}1`9a3^1-B^64&Z0fnP)$(Twi#O z&JFTB7U{Ye{LV}t#8-}a{&}p6JwH>ta?s4Nq#==vp`<&Q@J0_mpB3KTtk$=mXup(0 zYbq#d3alW zMZexwXGac>I3Iw|V_H8EJU?xuTiIzQQ60=Jm}tQSiO&)^di}#c>i0u_qV}(+$+)zvEe!UA*yQ z>W*WU)?%>@k<4WvpdT(2o=Ei-a_;Kt^TI+nwF_H2`QUFR7|6uSk`$Aim-%=nrfUx8 zOw{0x+{tS3tdW+EL_7?hMt_Ufj+9yWW+?1h_fWmMf#Z=xayphknA#5=c?Tojs0@z| z*z1~orNmL&$u!cj0IY1|uHH(50p`2idQ0yPcplo%P>F1>bt|zik>zb*W0Vx3OH68%`AGzSExd&-`T8W7ND$X=XgdeKOK0S!Hrc zvxSkyGl9zv#MKsJYnth{@c#hzQN4x+xw#TGvOds*ciwjBF`hHn*Ew;g#i(1$``IOn zfBMMNYQ8g!emnu(0aY$EQK?B9F8i}F-qGiRMhOSF;B~DVJFD2O?aSLwXpy&;?8sQ| zIUyM18;BjdVt^l{*y?(9j0(197;*mqESDzXLtt-Q^e3ZK@d;zMwTf$4)63iD zNQIfD#y(dK$KorOx44Sp;_mPJK1;c6_j%Uw%*x2!x_VLlp%;iXi%72g$h^I&8ECqvVWoC^8AdsubZBZEz|x{4=aOtL%3(Sk<8 zNarEDah=ENT6YmAoRT<(GcrpekdBU6$S^Vg0DO|nK<7BGSnyVt{{RT?k9N^4%Ot3l z*9|0XxuJZJ91c)2{O3I9*NWwBd?RmXs4a%+t~FV$!Q6#c$qYvD4sdxm_u74HwzJbU z{{Roz-0C9jT3guSk~?d=fb8v(tL6jzJ6CFx$4+>rVsl;__<1*pa6 zYc-o$8;O~uoA*q}H@Q%wDsZ54#Z`t#*w3;Ry!%w%e&~wGiV4o_p68t7j1g97SNIQj z(|k&X((g@@3q+J8vRl3p2g=OAoQ|q_7&u&3ukC%}ZxCADcz)hSS>sDtBzP-@@+;Xj)&BuTQ90+d}Co!DDYKh0ZaSV#g#5j1EY}bAKFs38`ut zv|5sCR?cr6rK{MGW`a23B$*p0g<|9!daZM^(d8cmyj9|V8|%7mnXTF1i))#1vs`S9 zM7x6s$!?!Aj)No?^{;sN+2YN6!bzY{;Wmoe;^ij1xK}YObHxrb8txnbRn&pWAbQjv z1AI2|!1vczkjZOfaL_~}o zDQl9%lFNV*3hnxw1J<%=(39b(#qSw>MDcC?yynd5+x9fD+2s>%(}L<(2N~n7ah@O5 z8(#gVb!|f6NcJ{Y(?Vjplt_vo&NhRCw1~&9bH+`3@4}x1+;~etx@~IC&dUBmCotLL z%S5@6Go_}b|KN9Ib5VZ&;(&f3gzJ}f_FCx@NlEw&EAmQ1Y zdV$I4$B$oD_;aM{Ukd&b>Wgos-&xHTmw9*gCeNN3iCB;iP@^NB2dCW%LO73yw$}3a z`^6q5wvznCEN>)>s=91_^Ag522dGseEsS%D^uHJAZQ{=j=rb^u>&v~i)CA1?C0&YH zH@O^~gV%sgI-2s209;&nf8ma`sd$P@qpWKaO!kR!C{r))nOH_S*^e`JP66AT;1gcE z;OAR!0%=ka1(43xOBEjrj%-M4#FcNe!$B=+6_z zHvx^n?F!f#40tu7xr^NTzu=wq#n1M=)#P>(By2^!)wRn=LaO|z8BW#4b{)L(dg8nb z#2Ux;e~K>R)GZ^s)pd{bSZ*~BnhPc_0olpmAD3|2bIA;A-ux49Cxm_g+}&y_+GXT6 zl1S||f+CW*F{o$SH*S79a6N0qE<8bZ{h<_EuAla~ZPRDkEYUXY7!dH?1~a^{IRiOv z`lch*zh~RcQtMFEX_3%k_33b*szE!FMa-fuZpsw4E;U4KGu_zOj+B zJn+Ku{_%h!8*#kuDn=hCt75k&)S>XN!_7uWnp=yAV}!)F2mK-$Bp`r#?Qmq;PeP#M znyv9d;@a*#D%uo@q=Iv2Gfjmt#e~=#@~q5w136K}X?Vj+msI$5smVBn;<(gp;t62x zH)2rAIvfBGTz09r9QTAZ3rOwmU9H(8ONAa>YSFAX=0;P~9FfLP-6y4P_=4a2KTwNM zmMHG7<93?Y?HjF`V}HJp?jRN*S8a6qI zl2l|D$slzgbgtJ~n%c`+(e(SVzfkgIlF)sZ&yE~UgKLw@ou4pe9SIpUqaZhDvq&_F z&875lU+PmN2IfX!trrJq!jX~!F+cRt>aFb8ns%F~#d|Hq&5BADS7R>f=8W>(O>q_b2-+{VI;zbg<9e51z-|X>6#(_YS)Hd-rcMwd36Sob0qfm@dR-!C6o7g>ZEcD5P2A=y8@q#Jg@A1Dk!3p&HGf7 zeV=+Sn}}RL@bk5fMo%0NScg1?{x{h!uX!-p;X`gw+(;;V<=y5LPuOyFT{@v=~n(9w3qCXOXfYiDfc&A zY-}S)6ak*OIKjarb6TbaPYdb)0BG?3p)9cgEkV-0dB10dNBd>EZe+Db0HO?VNCbue zagkOue+$cR=EbOL5^56svwe?HebFWoKe*s@Ck$6RcLR>KXTts;)IQN^_DHPt4Jt@h z*7xlQ@iz)ze^1^P-;5rc{Wz`9?F~NT&6e-%aebd}oo^&Nmfe#8uOUds2RW)jvCM1w zl$P=88mej*5L>KrDnh#U{{m*DY`pktnxBhh?8V-2p0HLFJy_IFD0m{w74e4?Y~V9ZMvQb=Vzt2_H2Ter8D z_uf~RYw}6tuiYv(AjtF>Bpd)nNF3J4EO`(1e7eQPtN#EKTYE`u)Aur5CgzqmS97;% z!jQlZ?-8)p4z;DnZz9{;8@*BncepW!0(jYvmg*RcFh4NPJ#me-=(pY%*R1?Lwwl%L z?YG(FP|^sDjHq9L-GSQb2|db=IjpTi!SeqA#KJ8?Sthjkwn_6xF3^aMp!ONua9NZS zkT3wD>=r9QW2Rd8KJMxm=F_zgBIX-qoJekCm(4_qG$5*wrJee6T;PCBK@X0et-lk$&B=rr9MM$;B3wL44gYfNM|?F@3s3@XVZ zNtOyjZd{$mh1gV(MOu#6z~VI2PKT)ImQbU|aceBD#_gI!ke4dyxT!&mWHG{#$*w1R zh{f=)#19a7fiBy`RozF8f{a$kGAw09$Nv<2?MpX1uq;cY2-Qh~$q|)7MdW z;3cBFw~=6!NoOY0AyS|uWj5t`%L?@0A8H;S)ih0V@548S#wcv0o=rYh*)iQ1LA3!T zqgH>Nw6^T{%PIi`TX z@rQ%-`+In$)n&NzW13`m_r)t+sxbZQkPt3@bLH(JS9c`*r`Wz9{{X^aap3(|{w5k6 zz9o|7VM!$3u|(1NW*0I51=DUhEVv@gbw#jpKCYKudeqf1Eq~YUaW!|&7IO~tSoDE+W z+cW*)Cj8%1SaqWr(PLBqszh+5iIo1ZcGV0Z(-UNybA*1R`=bEMke$sLZNW)P2(QMf!3HqyK&%aTL3>iR8wUE#Oz z@zwM%?Q5Mf=>^r!n$fJjav)?^+Zr)0SOh|+=3q$vD)`@6x46{zLL!jEeC?}S+*^p^ zgrb6tDgwDw;gck&1n%UVSG4>g@iw^8>AH7<^=oseHGsOf(O*utk>hYl@)6|n*zLo} zF_4Bsw{~i*N$%bq_@&^_6n(1J%T&FbE5NG_*M=rn3(J{yMZ|HdN#`Tv?-6-_x@gN4U|8UTmOSU)yaVwA#Qr1FV(`br zjX8ANnY_@}@@%&AEzG;jrJ~2ms2>t8Fi6PezD@XpuUUAf;^wKVY5J6xDSvp{gtn5~ zrLy@*z(=`;SAaJbVS=hpaaINvp{L8I>Jr`Q{{ZNbURt%)te#KrQe?;q{{S!nLBRzv zkPb1@qwv0=qIh3Nm-|-IKM;MR&PTVnx_g;YH&hY4U;ty>=4^c1+~G*(nRxB2SVlbU zE6JPBwz9a6RP(O9&CJnA+fkG^LJuTzn5>Jh0$u8!0n@b!r;^J^WoJvPyK@-d8FMoU z0LH~++N*-Vw>ZXYM1b{Qf|?$MulPq_is2-_p3ha&puB?qX0<@A=3)ue-2Ca~l~#=N z(C46=N+*{sP{f1V7j25$uFcsB21Dt zRT(g>LVTrpW4Pe_t=6my`W>H#JVB(v4a4dhtilCott=EpaPjW>quN!E2N}o8a0mqC zSEcx?;r^o9t(BjJlK%iww3^+#>xuN@8p?HbibOIm`sYwli?<ej4 zTjsqr(l=!`t2@P(^CNUKmTnH!*PPBx2oBf|HUf-99*cVAXyH>k`_3Xj|!C z8ve=Oq}j&~<=PSVuQ0NWudpm*9Q@dz50?J`;U2xw{4l;J)mvQBHQOE8zPqz%ZNo@H ztVLwWb-^rHgWD@y9;M;^I!jc!y1%@V=gE%l`%$zDJa#$Hma8m;?jv&i!=~jN0bik? z1^z65!tn4t++HBjH2(lM&W;z7-{yki86px1KtFa>)JC0SWpj<2WjUFb?%<7smqq~Kfr^e`Fz+Ov!e>#m)WllqY5xH6GM7oX`7Y!$ zK$yBo6FYpr-M9pu#g0c~qy{Q>C$u`G*LgO3cb$18LjZ`ji&ea_70JY&;uZBOg zR)KM2plILlhxoqFO|yxT$0EGT4@kX(zcxy!a zXZ$1bZo0DjMB7#D%ug@QN6V4|WDwsl+rd*;^!*=O@V=q_q5l90E}?h*k32BX9p%%( zs9Uj!gk&dq0gHf0RsbhB6)nb};|~Y?K-4@xsDAhTHDP;+Jm0;@3mXEZfmZ}6B!X+| z8;^zl5BM+Pd3;y#E?doSTh}K40FOIA+(mEDc|!$q*iV?A3EU_HQ9~WMoB= zhu&QD00!ztGhcdX{t5US`$lN@P_KsDMZB@xko}@l43lnM?$GU#mB9zhIUJ5_?H7vn&g6sj)T?ybNOm4tdQ0dFGGfkL-W=m+4Vk{jYz| zXXLE1%a$OZkmoGCV%fDP^~oCt(-?w;7}Xl}RCg175-5{{Yxe!~Pew zoai1p)f&=S8PaQ*t>sfQ{DMZqe8j4{o-@vKKpz!p{ujIPMvtgn{{W^-ERP<~k$jIX zG&y4DJ8{T6TLHQbGhObF;a?J4+rNjQ@g!H;PN>k_+FRSSmv+*V8xX!wS7rG?LZcse zf%vge@2G-*|cE>eh z-^Ch-gY^4Ly*^vd-R-rT?VsyYV*~OLv$4U*$4d846MP%-RgRvQR{jI=KA);J`b3aJ zvSB_W07$-A`9|!5LFYB*7aD!upZ2{IP}A=rir;iMw)Y9P`7+!)xfsAC;hU4s9Vi1V z-uSB1LDjA_?-KZmIcAnQO|_Pw?*WQWxFwU!{o4lI0)!+SgN`e@(EdF5x?Mj_io;&L z({FCBnn%vNG_b5-fwh%~%HKC)#148_Bcu36=UVVp?Vgcga|%y-i9D9jeYIX37x}!i zh>0U5N`i0+BPOqDv08W+Ouq|aw{Gadj+|f+ zbArQ~webG{!uNh4xYcEgTe!QH-W`@&9FEHc+PZ{3UVrDFaLV9k_)i(252btw}!i6Y2fGb(w;a-)twt{%_Fk?8&?yzvF*hw#Sk z9VD~Gd26FaWtvjpg>r{tvm+jGdSk6|ko*_Y&xhiX1^yTOI`~=e$5Xo3bgPYeZCc)I&$U~a$MBdcg^?Co`_TFq}R_Jw5F`z66Gk^uv@0nKS?o*(#a<4sFP zeS6`G={kz53;5Sjm0HC_0i#vg*et<=5i=x_?u8p+T zV(uo|tGE{>i+qHpIVxBXbHz7bwYIbPyP)0p3i)-pZnXhGZRa(G;+Eu5a96M>4#TiZ*^h%7Wwc(P68FRSlrNc}hiAaRgL&TGZ~&#nIeXiK6?cW>s&Gb6|6ea8O)Za_AZjGjrWw)#G| z;r{>&%cx8CiF8RH$%f)TmwR;Qf*638CcwXt@Jxqv(-G!=TEptmDhGc$h)w(J8_Q3it@XSV^99i zm&&)j^LPIM%e=`HTT0;cT!YSV4%3>cZ*g~T=IS5nqK|YxY}o$*B!zRd9#?Q2WOG0s z?Q!te;>Y$mvb6C1@AgbA?rmNo!Z6(JQVv*vRE&-~SDjycJMl%VH%oD%YANK%pu1_( z7DfI5NgxnFEtSa>?}mOV)UWlpY)^>qqqmX?rIJ&BG#*>++&3QKihw(O*sYtdiQX^! zbhhzpH%3{aRaJz^E5WsZ4i|CSa0;9b*`Ngf0EAyqxYO+}?*7rGUHz8gXOqsAzSke$ zJ@XhY26-4Gj!k6hegl(9wr}kl30yLVlk67((G-wNgd?1(>yyQ8So~b^EHhYtZr*BX zXXYq-+ebcdUQW`EHn81~ml^e|I+w+-6EeKeY6)>>5J_lmt)Mc=8ny{^RX;XIJAlFV zs{_q0G<#38-Rc&ePV?_<*lPcOv zAsgdjq~n%V2R%UPN&f%~d&Jiod{XKX>GyGOXM2C_$bRttA(a^a0D%4iy+23s1im2f z{JMwPG}7J#-F!*j`-UlRzy+&B$XUw3IOx1L;ez79^*=uFAzumyX~;te7}2c z^zt@>!y9lj_kNYLs_S!W*jqHcwA7Ijca1KV<~5m#RsoMV+{M0Q=qsY|{{Y4f665W9 zeyia99$h{+WPL(C>-)`wmfF8I3mk6Ga4NOdtKpW2>CpIJNtJa81aBpdqjK`ZKrORr zZ@fbuI%JbT9M6Vz?Pp4W>9bF7b0z6j2J$7hkyCd$Vs??&lejP8im`8_{{U!P+G-l! zw|RFJx=k`$+wEmlEAnFtxMcM>0~P4{exKm0j| zlHBZ>7HD5@RSczehFpBO&o#x{_a(kJUwYJjcvl|a#+RZ zU=SJEPGkA^bLex{xz7mR+jxTMw1=M6bsNSe$RgEXbS6b3u*y;_U zIsviwTLO%yobp#KpH2mFtE%{WNY_5u6@LCea16L4r9jJMzP?%ayv^e5^W1{<~(suU5IXqItAOuQCchEEhgi^;{El+ zT}ecXBNEax9N>b?c4TDd0<3&O@eS9EFRk?3y)GRVcU|&5#JFE951R#m!8kk~MPzti z!Fo;Cg@3ZFH9LsX8~*^dBQvav9~tZ4cN_uDW(S|mt!sY}uI+p~rQWp8&E!LC83`I> zmH=~t*d2vvcxU16weaV}K6i`-yxv+Y!r0uX+{{m|Nj!9|ZF1NC5S>Ei>KLuBZX|bg zxRL|546qx40Bk*Qd8%GM*Y)ogM+)e7R(H&ZaIC|0BaEmmgOSPHMIbq!h^4$icRV^K zl@6f{U%g9YPcX(hyJNp5vow7M_W5A7mMcv*>&gOUVHiYF_d(!%{8wqF_)lEXY^1%L zQ+sPii^_Y5Tm5U02vq(o9P)Z`SiUOpRi}sSVHVnKcQ+Ba^X{gYvzEsro->2gPy+l= z@h6Bh{Yy!?@dly&s+Q(61d?1UJV>}I0A96b`^O$2@fM$^&M&7Hcg*pk+PGOCoZ*WT zpTt+5XxEk=FxBE&RNF4%i5x2O{KvT``d4_%Z{VGF(&tcHh_v`^{I+{=6}kTaXr8}? z0CF0%-`TpH*4EZjtEeu{z-R8^xpTqifWDRAY5O&A1hLcAR5GM;8Ap~~v5%QX4tYK6 zpZJmCzYTbz-F!!D;x(2gT#IPtR=ADH;5w7*o<&pe?}{~DCr@iTxh(u@gV0p%(*H$`&wn=b`Wd1FjVyIo%#kCdXmPcQ_VH<02#aha1caixPl4ZW*0fUOA zF2`#R1ED5qgpS@WmELi%A0Lt8`t{qCZ_fH_yQL@azcHnw16`?FM zM`*H0yH)<;^(LT(1h|FS2G)=7hT^OS{i0vq#T0q@Kk?eRX{5^(JA=mO{pzI^yE72X z(T`O)HLa(aH260q)Dj>1XoS;1L-uKZy%+uWMPL5hxc>m2mcRGriePfU6>KLWr;vQ0 z_oPq}PCC==uv;=5in0ZY;~&7S^%WbtGjYeTt*g5oK0UKRc^Ml)@>g*=@5umGS^of! zj$-nt0#CF4;-LM^Kl08)FR$>`nI~plsG_6$Ik^7k{q;Z=<8dv!B1gS|19zqlYCDO= z#2@p{FZt(Cf5*5nlH>ixsbi3h*^E9$2I14*fFqb9+Qb$ey#4BPG=*39oepYC#r?=q zSLW=erB=6C@S=CXUQtJ1srH}?R~Hd|pUU#T-~Rw=i#<2(@VJcTf8mR+e;(Dn;k1?* zZZ8_qZ#3I{OE;a&UwgXsB=q92FD_(~>gH&YJ5-uRZz2uCH3Xa}1e3H3V<$8K$ZjKt zV01=h0QCaGj5ybGLZ1WJt z#{lI|QP0wz1W=FOb0q*+nn*J4Ll92o1Y>Ee<+l3B#+9xuU-wqR zL`3N$oV)%5f%?z{ZEqY*IRJO|tqneSt>*IOk3V{|7H9J}W?k6Y8v`JB1Jm%W1=w-N z%l+>30n_NV`(r~SO5GR+&#B|rwR?ZV`%@2@eKCd{s9lUXBRt@G@m^7)!zJX_u>7uB zLH*e8fHHq7_MIli4Fbj(t{E;ai2dTLGpYmF5#FgHBwvJAhGD^gf2n9gTO{A0b zt=TNoMU=rjt#>c+M+pRuIO=OKM-HhZ(Os1VhT|03EHmm;g*3q#Haae$b0U3~V{`L- zvH5(c_2lwD+Ra_l?KEq7XZwBK)F6Vcwy}phvCx8WRQlA{OJ@y$65d?hO~SZyqt08aWkz7q+u`&#P@?S1ahpX-B?fTGYX=;n6_=8D~JA1k3g4CBb)5nW=`)&s( z2c~h_q1HS%9)QpbOXx0jCED*Dov&$Zh;lcMZDRi}+Q_%+eF`jB?q|FnW7X1;2$l?beTDs@xXb%LB`DWjRo}J4h>> zoa3!=b89h7(mmC$+VuisdKJtk8rwD>1`wJw^1X~>gN*jeZQ~iN=1)vrL$ehIZ*5+B5!OLIP2JF6c%G^msgh;i)Ur2 zTsRq7Eu<E)I>@1Ve{_zgJ@Lgur|TMygDIZc32c{zWRfsp$?CZ$jNoMS=cNF5{{Ra7JA12m zl`QUJk{Rtll4CE*1_&oF-+@y2li**9wM|;;-rq0d0#a755zxN3B z>M_t&7IPOL27GLWR)?6rN&X&BUcAr-T-rvXr`>IB6H|vHEbVI`bLuy3UaR2`6Z}QhCV}JBwK7-;V78CqL3_#g>?-w25}+iU4{>qdE^eYvyw`^CwTK>?U8;`*jc4K3 zhvna@8*9h2l~sUazh=h9NaJZatX9`NCmqC7MezR8;#og)`-{7XzG2sm`2(@2=0I51 zd|@W3u1z)7?dG+9z=$uNqKg3%1!u#~F)2$a;vyvUL#_&S~k^;LF zsQ`k&0eE;Qs)Jr%lu5e-UcJYhSs0ai^~4h#cbzal>@>gr$K3YNs;K*_bY^dN4 z%Z?3IhfVOj*6~Fji!QI?BPQeQ4I9STUbUXkNSFPyDz+ktU-9Fbj*cy2@XK~L^Nhh{Q z#}&)!7Z#d-n=Pf>es9YRGDi=~wHKa;CmGMCMlr`eso`IPqVM76siJ85gmTNM${ykT z#$zff}$d<(s`VQF%7sG^qPe|VGZyorkBY$vXGz(084WkAI)WHZS0 zO%gdZ)w{pfFMqL){k($P(ov5B{vRA{N$?j1m%w;jCSMnzlZvlhx|y9 zCx^8yGRf2QqbjicB1|$~YdY%j8kzH-Cg#1mcT*lMr8rF)i zN1Jal#o0>jJ5gjjhB!te{h%s4eI|PrEvmk&x@gL@5hzg7AD18&AzL70G=SzjN%3>W zniagUN8+oP;`vj{HxCx&4g4#fM}J-`V@UX=@dEnZT|slC;kw2y1aXdVK$#QNaJXogbu-(Q`hEH1Te@2y7sNDV@L6Zp>L>N%M_pR zifL%Jut(&o+@m7@00b;@#4#0Nfw7b$6c|{8qZMTt2m>>H3R1TEnJXSZ+I2$XCYUxHB>2Z|TY6yysBP zrDX;HFgaK)?;xH0ZwFCX%ZpaNAj^n_`qh5R{NWRx6R% z6dgd#K0zLZ{{Rbv$5#4%)!d^^*7W;5wyCN~rk{~Z{P_o-8z@de2cAL2QPV$Y4-ja& z9lnhno|yI;TZ@;TK=EAa1sit9P0Qu*q+WBcK zH=K%}CU`96OXDMGQJk?D4e?ikb<5lN_vpDx!ix*W#znY- zY4P&%Jw9pm9UDt~Hr}Eb9F`g zE_EoEPPmpip-Uh~!vMG;0N@tR2*q&P_l2~L2gUL(jRbZ&R8hvQ8Ta9`C34_dx!_m%{Q)vseU+%n1*fBE}BPoVP{jaB`)OQHrIc>fa0W zi>Y9Qdf)3(95NDk>a zBXRi(xz0xwSHk+8g`S&Xe|e|QZsPL7W@bKIY@}^$2IC+wT#lgRVxJ=*=sqKO^IO01 z1Tks0uv&;>5kjg%sw&0~NFh~N<%v>j(EI~^2Z}r={{RU3%>}$s0s`GJWtKH7jLD2| zOpg4h#%s^Di;49$@~y1llG$P+1>L>b*^x_=w3bYU!(+ZHp^dyt9=)N2xRXzVYq6d< zk^{Y$V+M@!R{)TuMh7{g*@5emcxO%UwXBx6bHjBc=+jJ=Ga?ye+7FenbLF5o%OAXO zPfF#j{6DJe8pWoesCj;F{qHCHTYm0ajt3Qk;`>WAwOes>KBn?2;iI`#3cLp`o(glw z#(VQxJ_@q4)9u<6%uc6gnQ-huRRwYgd@}sJ5rR%VYU578cDDL|+4Oj#wDRTt&vkje zeY+M$`QaX3=~Q!w$ph0Bdh1Dr?KJI?P4+8kLz2-lETl2p<;VBHLR@9XI2Fvr;vG8H zOFgl}E&ia}=e~|To^+VUQIZp=815^glT?RNnOxi@#Icy;lHW3882%|_Iv5mUH0Imta$p)7o8X7*K6~)Kyzp~<%G?Cso)9x?H<~9h!2I-OfT?KI; z8nru>xY4X_E@9E*n^TZZ<|U0J00jb1l$A`#26qF3PBDt@wB0scH%)`=&o%Y3fQI3% z1F_uOLn|=A1$o9hipAs#cgpnk!;>|%9dC|h1|cr z0kBtTa(D5RTxSOx5NLL`8s(jWS!w1$3rcK~;zzoeD=O#YB(T5(ka9@mk($lE@J;5I zBRSJ;?XC3)0xiIvXLy~TECD{d)P`T~5^x4f1E290qh+Mu2(Dkqy@0{~k#TmOODR$t zf%iz`j)NnCxKp)H7Ce$%+<#)-BoKv;AG6FZJp5p{10<$Sa8A;Caf;B@G^uW_t)RTN zb0yr~bBH0sDj^LTCe^_psL0?Ple@K1)h{lZ_2Iga(PBin^T-h@?Ib8%4!
IXe4 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 E)5a#kr~`F7wiBk-?JxbUW?x;ay(!FekT ztcrOa$BHfo&z5>-gQsdtx7SNNFY+ucoy62WE{y5(dAe1X+3lO<9B_T>ztl8%d_OdD z>bhi6O3#3-x%`c4_`}Qa_LB~wboS|L%eoXFGkzkd4hO(#EZSAbzyAPBfVNWJN93Pj zTrJw(>fRx{wSv_wtu5Pq$IFqo(39*1OUu@*Xr9t1qf~)-1NhGA^6< zk*?gfdo?gPod)Yl@de%Kn#@NMj2L2!h9}h2TD8WLsOisTJ+j3tKP)UVN_u2hU1b8V zieb`iED>|e(p$&D`kK|(JS(GVch^a25uW*@-z!a!7ya5mCxiSQsL!F>*$cI_g`&*Y zQH{ACm0I)md$zw=8%)%L-$qO3dCKOZ@L$9!7f94BJeeTB!4b(ZCxPfI4g6_+eSIQa znT6bGg3+C-ezXCFYkZdeB%Uu5E-k<@#~r(qpQ*)X>AE(8_m`09R?@BA!6FrTjzP~P zU{|R4Z%Na2s~@!L&TWa@6(UW=ex%ntz8KT&uAW^k?dP075_BjtKpoG-&jqjiBR&^~ z?pB$WH7uLSU~$OFuE)Y21JSO$FJ(Q|lU$yWFHnQmig%5)8~s-RyNUNehx)^v+;{dg7Z|3 z^kFT%!FDervBMfj3_lTg(d@N}7EM;_(&^*{Wpm4WR$j63C&w3F9lkmywJpT<;KU!V zl08LWYF-7^G)+DWxut8n!6AEzBw)fd=NoEI16=CfCGkKSd0jpozjAT{PDV4ubXd;j zFT-Dm+P#g`t*+}=lWX?`i&fdT>Pa=&`1{AR{`KHYMHHCSUL10;Y0lkHq?vEvB! zPl$2pH`Z`jUqdNXc+eGWXN-=WD_7zT#tEbwF!^<9jXv^sOi3=(ta)Y%R})k&W@UWwyANnPkB2qR2_g7;-3n9YpZLz zjB;A}lik}!Lxy0<7(D&z+?ZeKdbjqamBh1ZQp=fkVbJ%%H3L1jN%+a)O

IhSS4V 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 rTnu80C2U& literal 0 HcmV?d00001 diff --git a/docs/qrcode.png b/docs/qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5205bb56cc78c8e0143f3d7df4bcde73fd2747 GIT binary patch literal 33799 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


!*9I>;y8c_ z7*&=9o7cI`As}V*AL{Go&R&pEDO7%qyl?{;+rWtd%#J>4*ni0w*bm+IX4h|?%;Dr-QSan87fI4|nCcIlE(c|BJ`@sH4g$pM2{QuUr5uYe5t}9g`jJg@*wI zpLZB-p<~~EO+p5eh7YSPoqNuepn4j?WAC;%&VAOk`|{s^ZfDK+W(cHd=Spp;)`imL|uBn+^oFefy0sT9KHqN`b5=043w8`&)Xp@4hT-JluDF$u=&a_@fI$K z%zz|U&^n;qyG z4#{@tQuJnI^Z8xp#gCH!Tgo-iS@{#YHo}q3F!P-s+x%skwRl>fi9X{*>eRdnM)mY2qFVA3Bya$8xHL z3(=ZNb&p3=uN+R0IVmRgtb=m1Kah#|36L2F1q#II?Q`*RxJi?1x45JP&8MMGX)FdKYi;N>rAMJ121{rE}awaye$HTm)9Q2jRVFO7uGbW zCiP`;^`#FS&_;nEM5T>jg1FXAEd!!_>4W}2xRzF#|L?xj=UO7?^>7ZKLWted)6;Ql zf5vn0p84`)M#oYE2Ta07=jNc#fnyfDwMc@PjLL*6_E=fcQ5mYLt$9N)rN3I z4hklWY~L;>Ff%hVKhh?)$Ngd6B?ElQC=g@(?>YR68*12t#T#wsI2(LBVF|s)u-SPI zk(Y4Y>-0?>$ctjYjDn#P@Gke3s4bUR)gujf#l)J=}3rr=bMfo~^U9Ea7Xm|+A7H1+&zhsQbvZNH8eG~e_~SiZkwALoY?^{#sqBpx7doX6er$#N7#g0tAmP zfq5N(@7W(eKqwZ;1sVV#i#MN(6&L#jl8HDfh~!2ztrBZhaG%vCw;xA*mQlvo?7z8ZZa(GB)o^J|EKl9-5Y`m zlKPkq1hA0QvT2v}muH5QF+8VRAZ)rV<^Am%k4bj$p*PEQ|5MYMheO?e|9|X*iJ`$@ zVn`Yq8j{8mLzb)=AzL!G8%g$%WG6HUQOX{P$P%(%N-{bSUe)Hdb z-Cf=H%)ICII_G(w&&R2`app{{c8<@z)YF*@<735t*M8Kh$r&2RKkzQN&F?)Etj_37 zy;tPHua`=&I&`a=hF`y(abaxIhaC3zb6{362-Rg4vR_zOb8=0k(Ki8O5fY*za{bSr zKU4Vwq?gegyd?FRM&%ygQBQ%Fied#73ke0-VuUu=PHekl#5X?4%`lC}3##`K$SV!@ z6=PmM78hBy9I<*2M)+9st;(1dW`RC|E3s*F(OxI#4qk2%n<7k=BJ?8=?RoADjM^pc z+X#i3a}5>T{+HtVb*{~mGt6aBEC%MtPg8syBrDtj-+T8BRCDFRG~ao>T=k3&wY2nS zbf+@U>YJHkimb}g83H3uhz$GkH`QHtKfAR!i0buL6Jbc!Bj+wsD&i>nb)v82d-@F; zc9+8d5A=8PfFo)B?bWR_dCwrET4M%dA(l_Ko1V4ry_9diKfxxh%csj0nSPomxTmwk>in5AZ`BV!5=`>6?71#> z{dvU#G%O;h1Jtf35{bv$m(3J9X=diXDXmO0tADplA4Ch?8Js_u_BE^({CwR`zKVA& zWCgxlHw!5(g%kR}8X3lFbwoDD zZz2+3?_yovjgK#^{e8NytuPUom?7;unn^v{7-qBRQ546dizzOIEUj?d*oi_Yb z0k9NMWlBp6K6JgfC)JxXzZ!Z)m;cvkY}`#(83TST0j{j)_l2KGLY?sbU%Mj$y?Yx6 zfB3!!LX_KO=eD@c4h#(N%sQq@eP3LJFEWm%OO4V!7OZWMO38OPckXhI5Nmjq_0n#l zUlUZwgcBe*(>aKkQqSfi*e@(8vHlZv2pEI1-(eOL{2P+jO%d+*#SM5tfZtOf)H)*a z#UC?IpoT20`ixgbVfbyEos~Sneln%ng|F2693tjAp79!<*Oc)Phk!nJe#c0;4;9Z6 z^1XX5c-9Ko-dNjlHXJ1O+&-2nCYOJg|XRb`c%?PLVwK0yFJ z@VY(gurzSVw3YbQaGkaHY;Q7sX4QB1LK93;Mva)vw9*?s`!F8&;qiOS}Dgu()-0QdoP#C@Usy|Z7$S~xhpA`2{1@Azk*3$&f97*taIk?tOypgG&XK7 zeTpt1z$`}#-ANSZ8StzPU7BK21&8$Nx6wmSir@=xao~=MK}H;l8QcHwp@rgmSkp1l7`{0LG%iZdunD9%Eu(O{P=19e*A9q0s5}g)YG) z-6asrBpXEKS9u%n!eWjoSpt}mRax5+nPTO9;>+q}n)%sdI#l82) zEnYnVY7Nc^$zbM>n}6k0MOIOP5ysFUS3y^`JpiCului5_?17e3Kji@ol7&W`eoZoy zBWO!JJUmOshb5rrW{td2B!Iq?F0W zFN912bH`oDQ~B^@;~tnl%sbU_r?c=d zhKo{(UiiGM644KZqK0v*8p4z5P7R7Bb#m=^Pf#lPdCmK8-K62b(9lr3?fi>u#SL<` zMhCW_5EaVZZZ>#xv{fyYA5E(a-t+SjJCZ4Wu*;Al-MdfZ3Gjj zQp@l#he4&hWHi?2ETB8~ts4v?2}Qqxljn}0Us{w|wmp5CWPLD3D@3Wz%up-nngMeR zmro!3d`7-bSw=pRy=8dYzx$c4+%nYPSDH5y1|u?(%(L8tC0w9Kw>m$fIL|OCGH>ra z@fy%#G;Avjw04ez39c=k^d!*FFMaSlTy+pzhQ#s!iL0Tx*)MbZh>F>2I8%5KY&dFyQxwi*qcZWb$&=+^^?Aa>fA;xb|_0}2Z zwo_eg77w4;jz}KQBzZMXYTM-8v=&3kEcS!RY}U(?sAH%( z&+P!$tj*ZvvdM_)sZ*b{qHZMSh?t2s^D&*U&WNRG%b5I7j?*$@a}|z|x3p9^lt8jB z8+|^*$F&z_?uf;Bm{VOWshNjPTaIeyM}*A6*R4yxZQnQNr{r8sLb>R=30t9KZObF6 zUQ`TQ4*lTBz5O8OTgdLl3uSNL-6L&o#c;*x-rmR=bVE1Lluugyj>5}lB!xeIAn=5Q zB+OZ7(5i_B)8JAVkKT&j+2Y+XQ%-KSB5UqIvy{2>GqYlWzk@Y0v&d8a0R(Hltfff} z@7ZrM(zezf{98Tuv?Vj2P9fhxI73Ey?_0}8ZcT?cU|8jHFP%M;et*;ttW$f=p25tu zfBgyxn5JXLmhrbu9+XX^SQ*_JHisr z+8SK{v?Cb?j8Fxh=>AZNr4M1P>tKL*a_cH3d8g^)mOPWoS8`J}T?*-oJCw+;KkTQW z-wO%R15&w+3mv4TD<79X*Vyp)Y}lJxre_CTR=z{YUHluak$HE}ZPZYgnr@t`7p?X4 zGy4YE?yf5Je=*JBbwjx9*|b?PhT6+$9K0~_l57BDY?U>noI_i-0l2Zm>x=vA02)+U zQG|+;++)$ui)7o!#|T5-y}>qd&-cZO39vF9`2e5_k5uW0M27pAlmQQOoH_kL7*;2a z7F^Nt>z`gNyC3Rg&4uweTH6$iX0x;Rjr&UQ#{KvTsyws{Fh$O5c6@eCck+v9Vt2=< zPfRIKq^?Eo)uX!D2+l%a-s#(wOP7RVH9Sd+Ur8o=QC=+$J&Brs2HFKHk=QGh`oOc( zR8cWVo$XE%(%f3vOSv+|XLh(m5Bbnf5uZtm%`7NLmbUq?KDXofiq@d4E*Hg(^T%13K! zaboA*8$`ou_eHJHB}|PEv#4sZQZh8D|GM-FKV5dXcOQE& zs>e@06AX%jQyxo?DOY{m(1lQD0nU@)b@0d~<)sG;;;cj*@TDkMPehzp|V6-*s z*KqY;&((jw8HeQz}XFrt`+pJSGRGA-vMW2lTm*nEmg|qjXF|0?2C6j zyy+{zFsr{=B6?jfRSGZqt0S+_`R5z@3I9Y6Oq|3?^B!MsZ*Q1_-7c01um+YU+SR+4 zk38#~`@V-^WI%P?hzdt=Ft;4Z^G$Hb#~(5ASH7!Nvu9NNHijt1dY0J@af$66-sy6Y zIoQN!A@@%yVCG756=r+43~3EQ;uMOEw|p57lh#lI&uSBJ)TMM6^U=0sLwmhr3{;5r>*-Dyp7ZRmErNgbyq6W`{$ zb8v?I)v24jJHc?cI`p546*Zl-!WId5jsDQ?zzOq*UEIvB*Ccx#bAaW-)=*Qk%)7J1 zTX$hC^mqrK&IR`_M~*lrP7@&ol2XQ80;+ z_2~%fUCfmAmuv}^?!sKt2j{{!=Elax;(5hMF;ODxV63PVjPd*jwhVoBN(I0ammHx< z0bB%hNjJnbCqI7F+?8`R1X-DG@kRIq=+5~GYXu%sG99t#pA%xN2CK8H`S?q zqBjEBL4(xB35^$QHfH%4o$KkvV*#quGFl4z4px09`(pSquBWXpeW`r=6Ku?{R`IA` zcS={^|M=kz4k7y(bX0jugg#_+0o-O~#J04uo8tQ~_X<#he5Sp|e*|3yp2_~J*r9be zpri2w!K9r(7kBFF>(@XG9Iw0j?^nY-JG%P z;mqHV7%Mzld7(CI5I9@G0BfSYSyty24^Pmi8c4c5_eIsBN)Nt!*7g`7N~%B2Mr2IV zhd$UOzpK0MRBir{VvH2$GnCl^Gjxl+JltN1J}TJ*0cV9=LsYZ><}^LKI^_PEF{gOg zfW|-Ht^Fl597Cmxp88L(_RrNF%^gE){urkBeg+xcO1pPqD~zMQ_`&VxrF_CF;=J_9 zIWk?#1z)^hV~W4c%8P^r!c=?F0*uVWuIrKiX1MMX7mvPLL*&jTb|_l4BHHLP*v@^y zK`^Dhy0Z;h|Cy`j_ao%6d7;Q1g>=Y%fEqj__3)So)(J6<@DbEKGN94pn_^t39zB3Q z!$FWc4CzoG-2CRGQ>|C6E$)=AP2$XLu4Y1F#&>@D)EBT}ugsLF0PM=uCaF7W8%$cU z+MnRZ38%+}d^6HRK#~S10zo(3uj#T{xmA}!Ud$2Xt(@t{jyOJ9(~3fSD1QN8?;6g6TY}l@Qk7l zR_P1RsJiRd34l8p%+gD$F*n}3C^B72UW+uQKl94IMEUjo=TDXi-l(bXO_vCn_|sZf zxY3AUrWNBMqy73FZj}y?3op{Fi$}ega)7?*-hr@-ST0nDZfky7cSTc~3$QQNLXpP# z@Z$n|2mp<3%LnF{M?GsC%0YJq#rbiCe3e6>l8EqJYVn+KTzH(FYbvsw?GL;hGlEqiO|&cq&-IfWwbO8%=_E`!x58=;q1 zvWnpZgP-Nl%YWd!KaRAY)pT(-8OhPOlK3``^En74=d?z+nt7~CXUL?^OSt&o>Q09p z586AuaMKE)t+2_e#nDim6c&oiaZOF|5>}TEsXaK7tTT-(Y}p?}c4*^PryQ<4?O57& z<;05C+W%g|OzNR4B{o01s3-uA5~!GX8aA%oscLD9j$cYFa53Q8hV(;g=<2u6pV?uY zKRM}H3r2;=1y`Ftz~%y@>eYYie2FYCIpOe@Z5=OuxocdQ92>Kd&#Zi=yAU6xVPO6w z5nK3#c>cftIGmruqv6txLQFRes${&`Lks3kQC;few?L1M@ZA$v&^PxxOhcR} z{+*IO(s$n_J95N9R(n=YY>@g>m#02ZD-DV6VUGr9lAZVFzkgxy*M+ViHI`jlfG<41crQN|1H#uo{k4}D>fvKlYoR?GaNmScWl_qt#Pf=G9$A%rb>U}|kRG_)GU=ko z8AW1LJ5?bzS@>mNkHG_%d*zRC)&>bBv7gDs+eX=;EkG4Sj@F;x=Obk@@^iKUANq5m z>Fv+8o!^?E8KO z&59;bpY-3})7aWN;1mQ-2GwklIECDUKR@P<)v>)~X=*+|WhL@1v3QD-H$RR16vz3X zfbdRnl5$8H^2mzHNAQ7R`kkxsUG2h><`!&GAQa3kYmNkr(gISyJ%k{dl(-h>VO6Q?3by2tOmp{T$ z$eT|0t)GmdIS{oVp}{uu7-8( zH7Ob9TUR0M0fUPINhxrNWt0i@R22>rP%Kg`2K=tNdPclUrDlXM@X=Z0S%$CRdL-v0 zT&6-=-!3riYkTUAjeBbR4!s1Q-|ZQH9PnwUBt5XtdwZ|p69`REA`yx@Klvz$^j3%Y z_*8b&fAR8NSh_EJiwk?y1*v`ovr@4T4u3TQLsEzj<>g6+iVJ419lWfU8O#6NTI9c~ zP71D9!pPO&iZ=4!ilZCUarcda`#rL>kFvKXyV@0dc$eweWaMWz&c&W)$G^x}f0vP2 zYkNUSq>5<76b$8#Q^ApKNZn zPy>gy@xo6g;Z8|8H7D}DRuPZALMFqqZ1h*Kz3i<#a^|DTN1gI9JN9VD1NK;-RE+|~S>q6`!D1A1Q zn~q%hd!;g91$5y`h0aOOLTlag=H*sr77i$z1T-aWgtb}|K?e!?&z=S^n#6(*#`aV^3_d>RH%3BX8p+lMsZzps8FSNQt-rC4qqUulLd;g=-O0gy zS9dzs9;}_(MMgJ=u6io&n_n)nEmyviETB8#^#-hD)~PxQhI;9ecITzTIH(wv3`ck7 zoXp@na1ir)FFdq*XyJGT)o%g;z?)3{tx~;2MpRK838^CZ!<&5U>7F6`C|2guq+;xm zal4*~FpV4WJUCOGQ%6b3GIOt#s)&2*0aNdO$VallvsRMp)kgfX zRoMX}zp40I+kH8FT2lat9=FOjE3qp3ZrWs3Hs@dZbHlNg`ZMa@ftbbb-$7@+HXWu6 z74PM(%~cRw6B<|&hHHp_!G-lo3FZ+{|CkZL0nzP58xNAtRMXJV`^dsjdQC;wL(a9I z*^9I9=#a1bGdv|;8f}*Uoh;Ki^=Jvmt@4f|W7&yv&e+$R7HG0z{>Y#ZSIi9F%)-JF z1AHMBdS5kjtQJhv1&yGd2TpdPhwYN*o4}S)&!pX*6RcW~-ikJQN2qgmg4{@^b29kp z7wUod#l;MW6)Y=mPEq>EvAZ|K4^wN|XpTUQ34!{&R=(WI6Lc&XNrDCF^XFolpFX&F zk9h)*T6P8z7>F5$MPUv`sn)~4^Lg_WBW#&c4itpQXWG4-f00YcOzM^t^puca4LzPS zf45)Sn-e!b<(n8CJ*1R-7%mr%k8961K8p?oKs5oVOR(oJC7vLysQ;XvW!5oCI&1*Yp{C!T3aY0{8S;NN z#Ks+ftrzl{&XllOzmV~|_)flbcU0%^W<0Xsf*O&bh`Kv?{#^^W-*!D>$4y2cljiT= zVoy{bw8V_fpG33TWW;HR_83S!t`n)9^Aw0t(6|1$?6UDDV{BQSs~_@`h)G;bJ4ixi zQ)BeeuTP{5fW1*sFQhx%-@k{3%`sQ{0~BoV6@fVTV?qotJE=<9FeS2PwrH;=Dn&+6 zDCYRu0vfX`T?3=>5`6hPN9fMT9ccae#Z>bb2M}CmNp9T3^E2{pHpHpSrS!++Vo%)^d(B-#X}o0i0xRU!nVl9;*bz-=M} z12WQ~&mlh?-|0K2Ok|l%7&38wqB!vOj6lTO;iCQ9OSpr%yDKla9;*`;qzt(JIjUxx z8zQ_*J$XKhqo)PAVwDU!rF3Y~q2gzl=Df;AC5c*hl(J3p-6B&|k<9ioQlf@3Ii?W6 z8k|qTu_Vg~Cas2kPdlXn11E#jwhQ4TEN~WQMUkd_b4v%P3fd(2xLITZQ(b3%-JTC2 z-^{1<*h8}kGfm?i7e!&7_+k&hoEE-hGKvYXCT8R*L}{~&gMSCb%*4V{&ekC`dUzJw zCaX&=vFMw!PwaL=ZxTv@H;&<|xZJcZg>qimo)VTaFg`79GNPT|R!!Uj4ms%uGe?BB z!!eYzqA&zDA7Uf4jt^#=N*8+o(14s+Bc*k|#r0smHA}Sa&uTU?LMy*)861uT=_?=O zMUOh|TltF!YVR#A-RwP>izo>^D|Ab~RK_56iC4=ykH)&?9}vLGeR`HbHc^<1;1o{4 zQ$O=*o4HH}M^4R?c|--s^k|D0b=jcd<=>ajWIz>NGxl1kAHQ^AypCvRDF9q-m=24f zHqBTdQLBGLj88kNt^NX3TeE($UVD>@%=1gG6(HFx}=aJ(!nEv>AiGyCaPxnvbf8P(bbHb4lzkGsRK!CrnI?CO`E?d-d^Evb1jjWt>D z$2#2AS;aC|$pB(@psY{=d9DkTS`tkb2Z&>!pfmK6 zxSkBHT|u=Kh(YKEe!IHIh2v=XW>^#Hx(k3DZwBG9xmPeBD9DM*=^d5dCKJCz2whaZ z3o?YFv2-G{#3R=`F_i$3BjdIu;VWl$IC~M)tvSDZf?uKnNa^Om2<@z5 zP8}OdS9fpq!T;r^P)hFw<=7GsRqD@&&_Aje+_yyQnzdp(CO0^j)SuPY$Ll0yHiG-R zrY1U-qX3K(5SOAojqa>>#ZZG_V?cs&MDFx8ptg_wm)m}gRSO%M0x=(?+tsTd0To&m z!N-zjJVJCPp+ePaEM;#6OuU$1PQ8zf%b#0rQ7XD^+FOk}&y`9zal|Xj4cx6bU8;@@ zRLo5iKMM7EpESq4hop*56bknyyt6WB|i8yNXNLxGV99hZn5$AKmE`Go~BS&xUQbGs9JhLf$pS#=)Ev3uUfj3g+XNqk4)qDKX82KdPL8yJ zIbl}Ihff=n@%m$JCF=uM(LUhOG_r{@inxR*V5$@iV35>`(j|W{sq^a049G0LIl}Tj z5yn;O-o}NJt)mO83Qv?sQ6(0#-PEp1BBc6LZbRt1lUMT|ZsKC?dpJixDtvqF zOs%azi+1Ys>}+tH6%e|c5mAWWDmuIwuJyk+h^9jVv}V!&gbQVSvQO^xD6*Q24EcaN zxhH9x$8BQ#B(Uds#=T|XkrWf6d;;^ki6WQVQ!j1(+UzOH;D1@togX|g zb)Ch&xQPw31VZXAE4VxGc+W4Nw`|n=-%TG_$ez7-Zq{#O)pINJS(txtFsmA@-=W{Q zAv3qz_C9{L**NN@DEvuR=D}xdoDc3lo8q4wvDymsG(568*KiISK228FXiA=Rat64y(A|5n4a)?2uJ97%fRN)PMQ#ZqJ zO9M*f(?dKMpMy`H9T}6PJ1=6Hx2=eRatwnb87;3!?toDI>%HbwclzL ztxHXnZf_!(YngR`NON2M8m7>6D|ps2=QokT z-?97o9f+~HXf-mHJonD@!P&C6uatVd&){L}nO_V{?%?P4HNc#J@mCQzd8}oEBA`pf znj8L{cy{ig#s7Avee_aBmz9+I!Hnu<{e2HT6?q0$`>DABhmB8o_zzW6kZWvEvU@kX z;k|Gnp9w7{L}~LW0NO~UZtLIGt;5#1ijDWDhb$`1vKmy9b}TQ2^AeoP9$*k#ei-%xH_O27GVXN z2g`myp{CsGwB%^-s=II-HTCu4b*tTuyT!JA8?M#vx6(0?xk6lNXJgKqCl6RXViD6y zz3*AOx$^b2$;cAtFhC-oHr2;-G4BZGVHPFw9ChP4M)}qQwUI8TNQB>EhaXS;IBoa% zEy;y-E%AW!&?0a_K+w62nq&LIyYiF%{e2zhqXw(8X#nYef1~_5o;g>`|G%s^tE)%Z z&9QOUW~3rs>QU3X!(it?oBxLZ#XE9>Bar7G@vQw8%Cq^6!Qg&U29EVfX7wRGCVz8* z)s^ilg#2i{d#x@0$&zt+9S#?_K$FwK&xhk ztds%sif-e$cmxk0MZ;kdq5%@hU3qoye^;rWXTp>@CVbXE{wPSbdDWzs;V?es?#cznc{4r-yztRdP4Pv-p-m~J4G@oPKY*FpjZ zW;b-q&%YQvbu3oKdA(O_X?$Td?+?4`FAQu=D;PJ$Z-+J zkc!OH=|tygavwGh9f#&$&lfMea0>83M5`~nlv^Db40i;8^p8f2dZF{m&zv_zI>-^0 zzj&XLX;qPaLhbwLTU@_g^Y#1va4tEyZHZ0MWaqpa?IAaQyor)fh} zVXxUxH#vRw?VYAt%=lNm4%*k^^qse;HvK zXC4AFuwdm+MrU-At8iQ|>EwQ-I=oxIm)CWXMq~gdA0i zq_`)iEPM3~V`4*Fg+8iGX`PEKg)~bqA2-_`IkC-uc;redj~iP6oyhRW$jfUxt6;)? zVV}kK;p{8eED79mx#U?gkFxT8YVyfgZy_fCqzFVU3o7AGf|5yaj{fiX+lLxNH{#7t zq~5RfU}lYK!o1=y!VppH&-hx+R6DF!A>K;@H;H#G00^ZGlJ&$4t*4G7IANKK1jXt3 zS_eh84XKS}DB=#>@>DSy!7l*=!}vkUeaOa+TsZlT$oL$RZ$^Ls>guRh9Za~^XJ@S% zra}N2VN^gc3kkAc0oDmyU90XEe|4+5 z>B@F(ulrG@G{Q9xG%FOOB?8Z9ez~g$eO?C3{Gp-}MZqAOjQ(W+&m<)ojl<=Zk2{K* zSYxrY?C*~=H$}%15)-=%@YiDY+g4G?^3IBV%XKp^s&TPYtnPt{7gzu!6X?@YG;Btp z{d1DVl%=KI8ChR`ecwe6*sE4rx~|psw-x^5_dtx}i2T_|#Z}=9UM0J7_E6)l!%DWT zh{AO9$)<4?#-z#7{j$>;ULJa1WcV8Siume(arp{vwatW>rs{MxmX``=3dAFPnGYgl zIbXv{yFAO2BdCG{v$h}CMx@#uDAJ55Qo5_~<9n_bFAyOJ)d+ri$iJG=-3*8Z%=uoI zAGkIJJ^Pqu`S49iUn#5Eap&85HMd;Hy5~l_=LGb}NJt3yvT8vSRBm;ij1yFn>sQQh z^&Aypm0jp>v?dC0cjHko|JeEQ9|sISw78$ymRnldTzE;orqThMu=waRB{Pk2@fjw|rgW&U(%XzT)ERmag|^IH>o!GET6`7%Cq2ktvEYzLWfk z%undKCa~mr_wVN=MOmwLX z*L@UO`4l`d;W_%@5mef9g~KUITq@E=9TCoog%$z0_<8F-s(%Yt*fVQI!vp(K(WGR; zDX#8+VG{J7y;@TX*Bj?AD;cB$0|!de9^bs=_BM=O$W6Hj^nNkI%vp^U4^U-@;Rxj@=zl%ci@kY=wVRDwi?ZzQkzc11L@^C2{ya*u`ucvBWB*=k%a_{ zX|lm963Rv!qdP~|4$*KH&M}XxY{t8w_Ua9XRheDkWp=PM=MJNyy?f5q9p<-cRX?0Xt^@v6;8&(2I<9k_YnC_`1^HjX_MZ4n}u2%+6d^qHuCEi`<L7P&@grb<|9u?$$qg;*tjL@&um($ z2Q2;(X+WlUD639HN~AyV$TC-VTDebNGz))li6voug0RFXk<_hda$1`Voc(11iI`rP z*7T&wq`A_tzoSwH!Epfb8?LA}-^JC?au2o)*T9LqbXEF7L#z0D`u@~{80w;`yu>39 zwM3$C`Z;1==@hKLtzPu3O_h>2sZr{m;u!t8#-;_CZ*ZxvhRy(c1$Dy3=BCtGwHLjR zF=v|^S2yp2JC;4zpyto>bnJnLYVKf&p{{{y>!s-i@6=-W$*1}#>KO3rQb(THHu#0^ zbgi|Nm7UkU8R7sWw(NQWmq(wwZR?o3Dt!4KxbB(_fUw93GGGH-oPdsRO_dH6L7)G- z9i{<`dh3rWOQ0i`)N|d4n|G8bNI8t>ezRJSbyx9Dqn~iF=setZ2R9rPtVierNWN(e!5iT}hK4v}l z{jjjwH&=~Mu+2yJ7(CM?+_DEx+qjLKQ0MUN$qF4IqwdrhYv0u5gEdjbCbl&fu1|iS zw2&QjcwAPhqI)w<>UzOR#=O_~bV$yDM}&mvcC%C|i*fw!*-RL#yO0G)@+hgM3JwgN zW<6dt0wSY)R5*6T;Y$Ve95K_#-p)9UCh~CD{fVtyn~F~aOBZL=x5MGTpdHR|9oyJY zVN_>Xb)8Qt0A)z);Grdc2ER=@aYP=Ic+0QBLY6WN88GzvM%ZMX+~Au2%tP3ai?ypu zW6UAv7^AQ%wYlxEV9j;c15h$ubGegP@CcT=I?5u28Lt!8x+E491Lo+q`rv;k(HLr$!tw^NpjX~g_R|`RN=s?jt!*?JnU9f_ zjia?s%9QqPF`oSsM`{YtTG?53;=!|z`_Jpe;fQ%_R zxO`}?bpCIP_f;~^aX2B$}q(#WG+-A)FBb4TfgS;ggVL_aQX;Sqhn zc4@J*U(@{04S&~U8tbq~!vYX9!}Z3E8?ff57)B|ecNdPia2mWy7m6X!ZM1E_2i=n@ zcI{0pkoAMb?eohSt~BG1YgdRK?A)+TqHq|jyy(9!s;gUg29`2gF@I}?U-vq&`;1D~ zVNgf-2Hud+7W#g6dYQvx=i{)Q7#2Qs;iPQUpI)IFf`=FQb0FA_i-z7QPJQuHC=rWN>^9wI2!J)L=1*om+n{Yc6nDu z0e~S}PGim);w^|>IyKC)X&|HV$guRQsa@Pa@!y>!tty#-R?7QiGVrWHs&HKY`PiWU z=BKBl3Y)#TiEMTV1dD-zj+RBbLZLnxw%%tk_R`%@u!zG&bN0=+?AVWs(!{&PGJB$6 z6t?U6fq?b)SVRysIexuCb==&v$OT6{vtIVGV-sqEbXY2Hp{Q5L`8l^Lt#|n!oN0_| z{M2+vc$KZ^hPvc8*he3x(Bpl_sfwZkABKJ*4ZV&nOPYCV@e0CiFP2w;RT>d7yxh6K zM`0=PMms`$swnms#erLF8>Ss zqDuusIi9OAKlek^8G_*P!4a8CChtpb}w&6MFDaw`*vp<)iE zK6-RadM?(poM*I&T2V<2|#uh%qu<1|dI`4$jdDZ}?7kH^hbu zrgcJ@%y4an<=&TD+5rS!^u)fRwDkSL9y0x+5_ptaLRX~|rwNI$4z0=>3emE;M%(iI z`?%|RFd1(%)-^D^lPp9wNJU;!6YEe+CSG&D$oc8_hW0}jg5f~mR!hqjU8=HZ*~g#p zw3pTP4UbqjV?9(mNh4ohx7dy66Z-sGz>4FdvUK`2Uy(WI%{>enf;s<7k6K)e2}ajp zDw+b5F$44QAb9O5BpOr`4B>_gN5|zmk2$i#s(=hfW&`b>Yl{6!CNWkekF`qM6O>I( z7ux?hy9T~s#N(soXx93sEB+0*$exZ}Ob}Q%TQ1+Y#Z6?y(Uk5^n48twUN>)F+sfVf zHv&Mkyga@sK_XY@(hy!o9CpEJ1CrSy`zmctmCF_d6qQTT9Ue( zt%=w;`q5g)Wb{)N!x{3m8M3otCm~mZyrY7G1p)I~U+a8#1kJR7k$K>p$;L5?xmEH1uPMR5ZQ4+hT>{etBDbQrbuM*SZ~a{$l) literal 0 HcmV?d00001 diff --git a/docs/代码重构-视频会议API规范化.md b/docs/代码重构-视频会议API规范化.md new file mode 100644 index 00000000..cb9dfe58 --- /dev/null +++ b/docs/代码重构-视频会议API规范化.md @@ -0,0 +1,177 @@ +# 代码重构:视频会议 API 规范化 + +## 重构日期 +2025-12-26 + +## 重构原因 +原代码将类型定义和 API 调用混在一个独立的 `meeting.ts` 文件中,不符合项目规范。需要按照以下规范重构: + +1. **类型定义规范**:所有 DTO/VO 类型应放在 `types/workcase/` 目录下 +2. **API 调用规范**:使用 `shared/api` 的 `api` 对象发送请求 +3. **API 组织规范**:按业务模块组织成对象形式(如 `workcaseAPI`、`workcaseChatAPI`) +4. **代码复用规范**:避免重复定义,视频会议属于聊天室模块 + +## 重构内容 + +### 1. 类型定义迁移 + +**原位置**:`api/workcase/meeting.ts`(已删除) + +**新位置**:`types/workcase/chatRoom.ts` + +类型定义已经存在于 `chatRoom.ts` 中,无需创建新文件: +- `TbVideoMeetingDTO` (line 68-88) +- `VideoMeetingVO` (line 220-241) +- `CreateMeetingParam` (line 279-285) + +### 2. API 方法整合 + +**原文件**:`api/workcase/meeting.ts`(已删除) +- 独立的函数式 API 调用 +- 使用 `http.post/get` 发送请求 +- 类型定义和 API 混在一起 + +**新文件**:`api/workcase/workcaseChat.ts`(已更新) + +新增 6 个视频会议方法到 `workcaseChatAPI` 对象(line 227-276): + +```typescript +// ====================== 视频会议管理(Jitsi Meet) ====================== + +async createVideoMeeting(meeting: TbVideoMeetingDTO): Promise> +async getVideoMeetingInfo(meetingId: string): Promise> +async getActiveMeeting(roomId: string): Promise> +async joinVideoMeeting(meetingId: string): Promise> +async startVideoMeeting(meetingId: string): Promise> +async endVideoMeeting(meetingId: string): Promise> +``` + +### 3. 导入语句更新 + +**文件**:`api/workcase/workcaseChat.ts` (line 3-15) + +新增导入: +```typescript +import type { + // ... 现有导入 + TbVideoMeetingDTO, // 新增 + VideoMeetingVO // 新增 +} from '@/types/workcase' +``` + +### 4. 导出配置更新 + +**文件**:`api/workcase/index.ts` + +```typescript +// 移除 +- export * from './meeting' + +// 保留 +export * from './workcase' +export * from './workcaseChat' +``` + +### 5. Vue 组件引用更新 + +**文件**:`components/chatRoom/chatRoom/ChatRoom.vue` + +**修改前**: +```typescript +import { createVideoMeeting, getActiveMeeting, endVideoMeeting } from '@/api/workcase/meeting' + +// 使用 +await createVideoMeeting({ ... }) +await getActiveMeeting(props.roomId) +await endVideoMeeting(currentMeetingId.value) +``` + +**修改后**: +```typescript +import { workcaseChatAPI } from '@/api/workcase' + +// 使用 +await workcaseChatAPI.createVideoMeeting({ ... }) +await workcaseChatAPI.getActiveMeeting(props.roomId) +await workcaseChatAPI.endVideoMeeting(currentMeetingId.value) +``` + +## 重构优势 + +### 1. 符合项目规范 +- ✅ 类型定义集中在 `types/` 目录 +- ✅ API 调用使用 `shared/api` +- ✅ API 按业务模块组织 + +### 2. 避免代码重复 +- ✅ 复用已有的类型定义 +- ✅ 统一的 API 调用风格 + +### 3. 更好的可维护性 +- ✅ 代码组织清晰,职责分明 +- ✅ 类型定义和 API 调用分离 +- ✅ 按业务模块聚合,易于查找 + +### 4. 统一的开发体验 +- ✅ 与其他 API 调用方式一致 +- ✅ 自动类型推断 +- ✅ 统一的错误处理 + +## 受影响的文件 + +### 删除的文件 +- `packages/workcase/src/api/workcase/meeting.ts` + +### 修改的文件 +1. `packages/workcase/src/api/workcase/workcaseChat.ts` - 新增 6 个视频会议方法 +2. `packages/workcase/src/api/workcase/index.ts` - 移除 meeting 导出 +3. `packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.vue` - 更新 API 调用 + +### 保持不变的文件 +- `packages/workcase/src/types/workcase/chatRoom.ts` - 类型定义已存在 +- `packages/workcase_wechat/api/workcase/workcaseChat.ts` - UniApp 端已符合规范 + +## 测试建议 + +1. **Vue Web 端测试** + - 测试创建视频会议功能 + - 测试加入已有会议功能 + - 测试结束会议功能 + - 测试自动检测活跃会议 + +2. **UniApp 端测试** + - 测试 MeetingView 页面导航 + - 测试视频会议页面显示 + - 测试结束会议返回聊天室 + +3. **类型检查** + ```bash + # 运行 TypeScript 类型检查 + npm run type-check + ``` + +## 后续优化建议 + +1. **错误处理增强** + - 添加统一的错误提示 + - 添加会议状态校验 + +2. **用户体验优化** + - 添加会议加载状态提示 + - 添加会议连接失败重试 + +3. **性能优化** + - 会议状态使用 WebSocket 实时同步 + - 离开页面自动结束会议 + +## 参考文档 + +- 项目 API 规范:参考 `workcase.ts` 和 `workcaseChat.ts` +- 类型定义规范:参考 `types/workcase/` 目录 +- Vue 组件规范:参考现有聊天室组件 + +--- + +**重构人员**:Claude Code +**审核状态**:待审核 +**版本**:v1.0 diff --git a/docs/功能实现-会议通知消息.md b/docs/功能实现-会议通知消息.md new file mode 100644 index 00000000..9d73f1d8 --- /dev/null +++ b/docs/功能实现-会议通知消息.md @@ -0,0 +1,310 @@ +# 功能实现:视频会议预约模式(Reservation Model) + +## 实现日期 +2025-12-26 + +## 功能概述 +实现视频会议"预约+按需创建"架构:用户创建会议预约时不立即创建Jitsi会议室,仅在首个用户在允许入会时间窗口内加入时,通过Redis双检锁机制创建Jitsi会议室。 + +## 架构模型 + +### 预约模式 (Reservation Model) +``` +用户创建会议 → 保存预约信息(scheduled)→ 发送会议通知消息(meetingId) + ↓ +首个用户加入 → 时间窗口校验 → Redis分布式锁 → 创建Jitsi会议室 → 更新状态(ongoing) + ↓ +后续用户加入 → 直接获取已创建的会议室URL +``` + +### 时间窗口规则 +- **提前入会时间**: `start_time - advance` 分钟 +- **允许入会窗口**: `[提前入会时间, end_time]` +- **默认advance**: 5分钟 + +## 实现文件 + +### 后端修改 + +**VideoMeetingServiceImpl.java** +- 位置:`urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/` +- 修改内容: + 1. 新增导入:`TbChatRoomMessageDTO`、`ChatRoomService`、`JSONObject` + 2. 注入依赖:`ChatRoomService` + 3. 修改 `createMeeting()` 方法:插入数据库成功后调用 `sendMeetingNotification()` + 4. 新增私有方法:`sendMeetingNotification()` + +## 详细实现 + +### 1. 依赖注入 + +```java +@Autowired +private ChatRoomService chatRoomService; +``` + +### 2. 调用时机 + +在 `createMeeting()` 方法中,会议记录插入数据库成功后: + +```java +// 8. 插入数据库 +int rows = videoMeetingMapper.insertVideoMeeting(meetingDTO); +if (rows > 0) { + logger.info("视频会议创建成功: meetingId={}, jitsiRoomName={}", + meetingId, jitsiRoomName); + + // 9. 发送会议通知消息到聊天室 + sendMeetingNotification(meetingDTO, userName); + + // 10. 返回VO + VideoMeetingVO meetingVO = new VideoMeetingVO(); + BeanUtils.copyProperties(meetingDTO, meetingVO); + return ResultDomain.success("创建会议成功", meetingVO); +} +``` + +### 3. 消息发送实现 + +**sendMeetingNotification() 方法 (VideoMeetingServiceImpl.java:396-442)** + +```java +/** + * 发送会议通知消息到聊天室 + * @param meetingDTO 会议信息 + * @param creatorName 创建者名称 + */ +private void sendMeetingNotification(TbVideoMeetingDTO meetingDTO, String creatorName) { + try { + logger.info("发送会议通知消息: roomId={}, meetingId={}", + meetingDTO.getRoomId(), meetingDTO.getMeetingId()); + + // 构建消息内容 + TbChatRoomMessageDTO message = new TbChatRoomMessageDTO(); + message.setMessageId(IdUtil.generateUUID()); + message.setRoomId(meetingDTO.getRoomId()); + message.setSenderId(meetingDTO.getCreator()); + message.setSenderType(meetingDTO.getCreatorType()); + message.setSenderName(creatorName); + message.setMessageType("meet"); // 会议类型消息 + message.setContent(meetingDTO.getIframeUrl()); // 会议URL作为内容 + message.setStatus("sent"); + message.setReadCount(0); + message.setSendTime(new Date()); + + // 构建扩展信息(会议详情) + JSONObject contentExtra = new JSONObject(); + contentExtra.put("meetingId", meetingDTO.getMeetingId()); + contentExtra.put("meetingName", meetingDTO.getMeetingName()); + contentExtra.put("jitsiRoomName", meetingDTO.getJitsiRoomName()); + contentExtra.put("iframeUrl", meetingDTO.getIframeUrl()); + contentExtra.put("maxParticipants", meetingDTO.getMaxParticipants()); + contentExtra.put("creatorName", creatorName); + contentExtra.put("workcaseId", meetingDTO.getWorkcaseId()); + message.setContentExtra(contentExtra); + + // 发送消息 + ResultDomain sendResult = chatRoomService.sendMessage(message); + if (sendResult.getSuccess()) { + logger.info("会议通知消息发送成功: messageId={}", message.getMessageId()); + } else { + logger.warn("会议通知消息发送失败: {}", sendResult.getMessage()); + } + } catch (Exception e) { + // 消息发送失败不影响会议创建 + logger.error("发送会议通知消息异常: roomId={}, error={}", + meetingDTO.getRoomId(), e.getMessage(), e); + } +} +``` + +## 消息数据结构 + +### 消息字段 + +| 字段 | 类型 | 说明 | +|-----|------|------| +| messageId | String | 消息ID(UUID) | +| roomId | String | 聊天室ID | +| senderId | String | 发送者ID(会议创建者) | +| senderType | String | 发送者类型(guest/agent) | +| senderName | String | 发送者名称 | +| **messageType** | **String** | **"meet"(会议消息类型)** | +| **content** | **String** | **会议iframe URL** | +| contentExtra | JSONObject | 会议详细信息(见下表) | +| status | String | "sent" | +| readCount | Integer | 0 | +| sendTime | Date | 发送时间 | + +### contentExtra 详细信息 + +```json +{ + "meetingId": "会议ID", + "meetingName": "会议名称", + "jitsiRoomName": "Jitsi房间名", + "iframeUrl": "会议URL", + "maxParticipants": 10, + "creatorName": "创建者名称", + "workcaseId": "工单ID" +} +``` + +## 前端渲染建议 + +### Vue Web 端 + +在 `ChatRoom.vue` 中添加会议消息卡片渲染: + +```vue + + + +``` + +### UniApp 小程序端 + +在 `chatRoom.uvue` 中添加会议消息卡片: + +```vue + + + +``` + +## 设计考虑 + +### 1. 异步发送 +消息发送在独立的 try-catch 块中,失败不影响会议创建流程 + +### 2. 完整信息 +contentExtra 包含会议所有关键信息,前端可灵活使用 + +### 3. 类型明确 +messageType 使用 "meet" 标识会议消息,方便前端过滤和渲染 + +### 4. URL 即内容 +content 字段直接存储会议URL,方便快速访问 + +### 5. 日志追踪 +完整的日志记录,便于问题排查 + +## 测试要点 + +### 1. 会议创建测试 +```bash +POST /urban-lifeline/workcase/chat/meeting/create +{ + "roomId": "test-room-123", + "workcaseId": "WC001", + "meetingName": "技术支持会议", + "maxParticipants": 10 +} +``` + +**预期结果**: +- ✅ 返回会议创建成功 +- ✅ 数据库 tb_video_meeting 表插入会议记录 +- ✅ 数据库 tb_chat_room_message 表插入类型为 "meet" 的消息 +- ✅ 消息的 content 字段包含会议URL +- ✅ 消息的 contentExtra 包含会议详细信息 + +### 2. 前端卡片渲染测试 +- ✅ 聊天消息列表中显示会议卡片 +- ✅ 卡片展示会议名称、发起人、参与人数等信息 +- ✅ 点击"加入会议"按钮能正确跳转 + +### 3. 多人加入测试 +- ✅ 创建者加入会议(主持人权限) +- ✅ 其他成员通过卡片加入会议(普通权限) +- ✅ 非聊天室成员无法加入 + +### 4. 异常情况测试 +- ✅ 消息发送失败不影响会议创建 +- ✅ 会议创建失败不会发送消息 + +## 注意事项 + +1. **消息类型**:messageType 为 "meet",而非 "meeting"(根据用户需求) + +2. **权限控制**: + - 只有聊天室成员才能创建会议 + - 只有聊天室成员才能加入会议 + +3. **事务处理**: + - 会议创建在事务中(@Transactional) + - 消息发送在独立的 try-catch,失败不回滚会议创建 + +4. **前端适配**: + - Web端和小程序端需分别实现会议卡片渲染 + - 建议使用统一的样式和交互 + +5. **扩展性**: + - contentExtra 可根据需要添加更多字段 + - 建议前端做好字段缺失的容错处理 + +## 相关文档 + +- [Jitsi Meet 视频会议集成总结](./项目总结-Jitsi-Meet视频会议功能.md) +- [Docker 部署指南](./Jitsi-Meet-Docker部署指南.md) +- [代码重构 - 视频会议API规范化](./代码重构-视频会议API规范化.md) + +--- + +**实现人员**:Claude Code +**审核状态**:待审核 +**版本**:v1.0 diff --git a/docs/项目总结-Jitsi-Meet视频会议功能.md b/docs/项目总结-Jitsi-Meet视频会议功能.md new file mode 100644 index 00000000..fc32bce4 --- /dev/null +++ b/docs/项目总结-Jitsi-Meet视频会议功能.md @@ -0,0 +1,475 @@ +# 🎉 Jitsi Meet 视频会议功能 - 完整实现总结 + +## ✅ 已完成的工作 + +### 一、后端开发(Java Spring Boot) + +#### 1. Service接口层(2个接口) +- ✅ `VideoMeetingService.java` - 视频会议业务接口 +- ✅ `JitsiTokenService.java` - JWT Token服务接口 + +#### 2. Service实现层(2个实现) +- ✅ `VideoMeetingServiceImpl.java` - 核心业务逻辑(约400行) + - 会议创建(验证权限、生成JWT、构建iframe URL) + - 会议权限验证(检查聊天室成员身份) + - 用户专属URL生成(每个用户独立JWT Token) + - 会议状态管理(开始/结束) + - 活跃会议检测 + +- ✅ `JitsiTokenServiceImpl.java` - JWT Token生成服务 + - 符合Jitsi Meet标准的JWT生成 + - iframe URL构建(带配置参数) + - 房间名生成规则 + +#### 3. Controller层(6个REST API) +``` +POST /workcase/chat/meeting/create - 创建会议 +GET /workcase/chat/meeting/{meetingId} - 获取会议信息 +POST /workcase/chat/meeting/{meetingId}/join - 加入会议 +POST /workcase/chat/meeting/{meetingId}/start - 开始会议 +POST /workcase/chat/meeting/{meetingId}/end - 结束会议 +GET /workcase/chat/meeting/room/{roomId}/active - 获取活跃会议 +``` + +--- + +### 二、前端Vue开发 + +#### 1. API封装 +- ✅ `meeting.ts` - 完整的会议API封装(6个方法) + +#### 2. ChatRoom.vue组件增强 +- ✅ 添加roomId、workcaseId Props +- ✅ 实现会议创建逻辑(handleStartMeeting) +- ✅ 实现会议结束逻辑(handleEndMeeting) +- ✅ 实现活跃会议检测(checkActiveMeeting) +- ✅ 会议iframe显示(带头部控制栏) +- ✅ 按钮状态管理(loading、disabled) + +#### 3. 样式优化 +- ✅ 会议容器样式(渐变头部) +- ✅ 关闭按钮样式(半透明效果) +- ✅ 按钮禁用状态 + +--- + +### 三、前端UniApp开发 + +#### 1. MeetingView.uvue页面 +- ✅ 自定义导航栏 +- ✅ web-view全屏显示 +- ✅ 结束会议功能 +- ✅ 退出确认弹窗 + +#### 2. chatRoom.uvue修改 +- ✅ 更新startMeeting函数(调用API创建会议) +- ✅ 跳转到MeetingView页面 + +#### 3. workcaseChat.ts API +- ✅ 添加6个会议相关API方法 + +--- + +### 四、Docker部署配置 + +#### 1. docker-compose.yml +- ✅ 添加4个Jitsi服务(web、prosody、jicofo、jvb) +- ✅ 配置JWT认证 +- ✅ 端口映射(8280、8443、10000/udp) +- ✅ 数据持久化(.data/docker/jitsi) +- ✅ 健康检查配置 +- ✅ 服务依赖关系 + +#### 2. application-dev.yml +- ✅ 添加jitsi配置节 +- ✅ JWT密钥配置 +- ✅ 服务器地址配置 +- ✅ Token有效期配置 + +--- + +### 五、文档和脚本 + +#### 1. 文档 +- ✅ `Jitsi-Meet本地部署指南.md` - npm start方式(开发测试) +- ✅ `Jitsi-Meet-Docker部署指南.md` - Docker方式(生产推荐) +- ✅ `项目总结.md` - 本文档 + +#### 2. 启动脚本 +- ✅ `启动Jitsi视频会议服务.bat` - 一键启动 +- ✅ `停止Jitsi视频会议服务.bat` - 一键停止 + +--- + +## 📂 修改的文件清单 + +### 后端(6个文件) +``` +✅ VideoMeetingService.java (新建) + F:\Project\urbanLifeline\urbanLifelineServ\apis\api-workcase\src\main\java\org\xyzh\api\workcase\service\ + +✅ JitsiTokenService.java (新建) + F:\Project\urbanLifeline\urbanLifelineServ\apis\api-workcase\src\main\java\org\xyzh\api\workcase\service\ + +✅ VideoMeetingServiceImpl.java (新建) + F:\Project\urbanLifeline\urbanLifelineServ\workcase\src\main\java\org\xyzh\workcase\service\ + +✅ JitsiTokenServiceImpl.java (新建) + F:\Project\urbanLifeline\urbanLifelineServ\workcase\src\main\java\org\xyzh\workcase\service\ + +✅ WorkcaseChatContorller.java (修改:添加会议接口) + F:\Project\urbanLifeline\urbanLifelineServ\workcase\src\main\java\org\xyzh\workcase\controller\ + +✅ application-dev.yml (修改:添加jitsi配置) + F:\Project\urbanLifeline\urbanLifelineServ\workcase\src\main\resources\ +``` + +### 前端Vue(3个文件) +``` +✅ meeting.ts (新建) + F:\Project\urbanLifeline\urbanLifelineWeb\packages\workcase\src\api\workcase\ + +✅ ChatRoom.vue (修改:添加会议功能) + F:\Project\urbanLifeline\urbanLifelineWeb\packages\workcase\src\components\chatRoom\chatRoom\ + +✅ ChatRoom.scss (修改:添加会议样式) + F:\Project\urbanLifeline\urbanLifelineWeb\packages\workcase\src\components\chatRoom\chatRoom\ +``` + +### 前端UniApp(3个文件) +``` +✅ MeetingView.uvue (新建) + F:\Project\urbanLifeline\urbanLifelineWeb\packages\workcase_wechat\pages\meeting\MeetingView\ + +✅ chatRoom.uvue (修改:更新startMeeting) + F:\Project\urbanLifeline\urbanLifelineWeb\packages\workcase_wechat\pages\chatRoom\chatRoom\ + +✅ workcaseChat.ts (修改:添加会议API) + F:\Project\urbanLifeline\urbanLifelineWeb\packages\workcase_wechat\api\workcase\ +``` + +### Docker配置(2个文件) +``` +✅ docker-compose.yml (修改:添加4个Jitsi服务) + F:\Project\urbanLifeline\urbanLifelineServ\.bin\docker\urbanlifeline\ + +✅ application-dev.yml (修改:添加jitsi配置) + F:\Project\urbanLifeline\urbanLifelineServ\workcase\src\main\resources\ +``` + +### 文档和脚本(5个文件) +``` +✅ Jitsi-Meet本地部署指南.md +✅ Jitsi-Meet-Docker部署指南.md +✅ 项目总结.md +✅ 启动Jitsi视频会议服务.bat +✅ 停止Jitsi视频会议服务.bat +``` + +**总计:19个文件(12个新建,7个修改)** + +--- + +## 🚀 快速开始(3步搞定) + +### 步骤1:启动Jitsi Meet服务 + +**方法A:使用启动脚本(推荐)** +```bash +# 双击运行 +F:\Project\urbanLifeline\启动Jitsi视频会议服务.bat +``` + +**方法B:手动启动** +```bash +cd F:\Project\urbanLifeline\urbanLifelineServ\.bin\docker\urbanlifeline +docker-compose up -d jitsi-web jitsi-prosody jitsi-jicofo jitsi-jvb +``` + +**验证**:浏览器打开 http://localhost:8280/ + +--- + +### 步骤2:启动Java后端 + +```bash +# 确保配置正确 +# application-dev.yml 中的 jitsi 配置已自动添加 + +# 启动后端服务 +# 使用你的IDE或命令行启动 workcase-service +``` + +**验证**:访问 http://localhost:8180/swagger-ui.html 查看会议接口 + +--- + +### 步骤3:启动前端并测试 + +#### Vue前端测试 +```bash +# 启动Vue前端 +npm run dev + +# 在聊天室页面点击"发起会议"按钮 +# 应该能看到Jitsi Meet会议界面 +``` + +#### UniApp测试 +```bash +# 使用HBuilderX打开项目 +# 运行到小程序/App +# 在聊天室点击"发起会议" +# 跳转到全屏会议页面 +``` + +--- + +## 🔑 核心特性 + +### 1. 安全性 +- ✅ JWT Token身份验证(每个用户独立Token) +- ✅ 聊天室成员权限校验 +- ✅ Token有效期控制(2小时) +- ✅ 主持人权限区分(客服=主持人) + +### 2. 用户体验 +- ✅ 页面刷新后会议不丢失(活跃会议检测) +- ✅ 会议创建loading状态 +- ✅ 按钮禁用状态(会议进行中不可重复创建) +- ✅ 会议头部控制栏(显示状态+关闭按钮) +- ✅ UniApp独立会议页面(可切换聊天/会议) + +### 3. 扩展性 +- ✅ 支持主持人权限 +- ✅ 支持Jitsi配置项扩展 +- ✅ 预留会议参与者记录功能 +- ✅ Docker部署,易于扩展 + +--- + +## ⚙️ 重要配置说明 + +### JWT密钥配置 + +**Docker配置**(docker-compose.yml): +```yaml +JWT_APP_ID: urbanLifeline +JWT_APP_SECRET: your-secret-key-change-in-production +``` + +**Java后端配置**(application-dev.yml): +```yaml +jitsi: + app: + id: urbanLifeline # 必须与Docker一致 + secret: your-secret-key-change-in-production # 必须与Docker一致 +``` + +⚠️ **生产环境必须修改密钥**: +1. 生成强随机字符串(至少32位) +2. 同时修改Docker和Java配置 +3. 重启Jitsi服务和Java后端 + +--- + +## 🧪 测试步骤 + +### 1. 测试Jitsi服务 +```bash +# 访问Jitsi主页 +http://localhost:8280/ + +# 测试创建房间(应被拦截,需要JWT) +http://localhost:8280/test-room +``` + +### 2. 测试后端接口 +```bash +# 使用Postman或curl测试 +POST http://localhost:8180/urban-lifeline/workcase/chat/meeting/create +Content-Type: application/json +Authorization: Bearer + +{ + "roomId": "test-room-123", + "workcaseId": "WC001", + "meetingName": "测试会议", + "maxParticipants": 10 +} + +# 响应应包含带JWT的iframeUrl +{ + "code": 0, + "data": { + "meetingId": "xxx", + "iframeUrl": "http://localhost:8280/workcase_WC001_xxx?jwt=eyJhbGc..." + } +} +``` + +### 3. 测试前端集成 +- Vue: 在聊天室点击"发起会议" +- UniApp: 在聊天室点击"发起会议" +- 验证会议iframe能正常显示 +- 验证多人能同时加入会议 + +--- + +## 🔧 常见问题 + +### Q1: Docker启动失败? +**A**: 检查端口占用和Docker状态 +```bash +# 检查Docker +docker info + +# 检查端口 +netstat -ano | findstr "8280" +netstat -ano | findstr "10000" + +# 查看日志 +docker-compose logs jitsi-web +``` + +### Q2: JWT验证失败? +**A**: 确保密钥一致 +```bash +# 检查Docker配置 +docker-compose exec jitsi-prosody cat /config/prosody.cfg.lua | grep jwt + +# 检查Java配置 +cat application-dev.yml | grep -A 5 "jitsi:" + +# 密钥必须完全一致 +``` + +### Q3: 视频连接不上? +**A**: 检查UDP端口10000 +```bash +# Windows防火墙 +netsh advfirewall firewall add rule name="Jitsi JVB" dir=in action=allow protocol=UDP localport=10000 + +# 或临时关闭防火墙测试 +``` + +### Q4: 前端iframe显示空白? +**A**: 检查跨域和URL +```bash +# 浏览器控制台查看错误 +# 确保iframeUrl是http://localhost:8280开头 +# 检查JWT Token是否正确生成 +``` + +--- + +## 📊 项目结构 + +``` +urbanLifeline/ +├── .data/docker/jitsi/ # Jitsi数据目录 +│ ├── web/ +│ ├── prosody/ +│ ├── jicofo/ +│ └── jvb/ +├── docs/ # 文档目录 +│ ├── Jitsi-Meet本地部署指南.md +│ ├── Jitsi-Meet-Docker部署指南.md +│ └── 项目总结.md +├── urbanLifelineServ/ +│ ├── .bin/docker/urbanlifeline/ +│ │ └── docker-compose.yml # 包含Jitsi配置 +│ ├── apis/api-workcase/ +│ │ └── src/main/java/org/xyzh/api/workcase/ +│ │ └── service/ +│ │ ├── VideoMeetingService.java +│ │ └── JitsiTokenService.java +│ └── workcase/ +│ ├── src/main/java/org/xyzh/workcase/ +│ │ ├── controller/WorkcaseChatContorller.java +│ │ └── service/ +│ │ ├── VideoMeetingServiceImpl.java +│ │ └── JitsiTokenServiceImpl.java +│ └── src/main/resources/ +│ └── application-dev.yml +├── urbanLifelineWeb/ +│ └── packages/ +│ ├── workcase/ +│ │ └── src/ +│ │ ├── api/workcase/meeting.ts +│ │ └── components/chatRoom/chatRoom/ +│ │ ├── ChatRoom.vue +│ │ └── ChatRoom.scss +│ └── workcase_wechat/ +│ ├── api/workcase/workcaseChat.ts +│ └── pages/ +│ ├── chatRoom/chatRoom/chatRoom.uvue +│ └── meeting/MeetingView/MeetingView.uvue +├── 启动Jitsi视频会议服务.bat +└── 停止Jitsi视频会议服务.bat +``` + +--- + +## 🎯 下一步建议 + +### 短期优化 +1. **会议录制功能** + - 配置Jibri录制组件 + - 存储录制文件到MinIO + - 提供录制回放功能 + +2. **会议统计** + - 记录参与者加入/离开时间 + - 生成会议时长报告 + - 导出会议数据 + +3. **界面优化** + - 自定义Jitsi Meet界面主题 + - 添加品牌Logo + - 优化移动端体验 + +### 长期规划 +1. **生产部署** + - 配置域名和SSL证书 + - 配置公网IP和防火墙 + - 负载均衡和高可用 + +2. **功能增强** + - 屏幕共享优化 + - 虚拟背景 + - 会议白板功能 + - AI转录字幕 + +3. **监控告警** + - Prometheus监控 + - Grafana仪表板 + - 告警通知 + +--- + +## ✨ 总结 + +### 已实现功能 +✅ 完整的Jitsi Meet视频会议功能 +✅ JWT认证和权限控制 +✅ Docker一键部署 +✅ 前后端完整集成 +✅ Vue和UniApp双端支持 +✅ 详细的文档和脚本 + +### 技术亮点 +🌟 每个用户独立JWT Token(安全性高) +🌟 活跃会议检测(用户体验好) +🌟 Docker部署(易于维护) +🌟 微服务架构(易于扩展) + +### 项目价值 +💡 真正的企业级视频会议解决方案 +💡 完全自主可控,无第三方依赖 +💡 可扩展性强,支持二次开发 +💡 开发效率高,5分钟即可部署 + +--- + +**开发完成!祝使用愉快!** 🎉 diff --git a/jitsi-meet b/jitsi-meet deleted file mode 160000 index 6549d472..00000000 --- a/jitsi-meet +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6549d47233326f5755b32c77b8e8801838021a0a diff --git a/urbanLifelineServ/.bin/database/postgres/sql/createTableWorkcase.sql b/urbanLifelineServ/.bin/database/postgres/sql/createTableWorkcase.sql index 53ab72e9..82198517 100644 --- a/urbanLifelineServ/.bin/database/postgres/sql/createTableWorkcase.sql +++ b/urbanLifelineServ/.bin/database/postgres/sql/createTableWorkcase.sql @@ -121,17 +121,20 @@ CREATE TABLE workcase.tb_video_meeting( workcase_id VARCHAR(50) NOT NULL, -- 关联工单ID meeting_name VARCHAR(200) NOT NULL, -- 会议名称 meeting_password VARCHAR(50) DEFAULT NULL, -- 会议密码(可选) + description VARCHAR(500) DEFAULT NULL, -- 会议模式 jwt_token TEXT DEFAULT NULL, -- JWT Token(用于身份验证) jitsi_room_name VARCHAR(200) NOT NULL, -- Jitsi房间名(格式:workcase_{workcase_id}_{timestamp}) jitsi_server_url VARCHAR(500) NOT NULL DEFAULT 'https://meet.jit.si', -- Jitsi服务器地址 status VARCHAR(20) NOT NULL DEFAULT 'scheduled', -- 状态:scheduled-已安排 ongoing-进行中 ended-已结束 cancelled-已取消 - creator_id VARCHAR(50) NOT NULL, -- 创建者ID creator_type VARCHAR(20) NOT NULL, -- 创建者类型:guest-来客 agent-客服 creator_name VARCHAR(100) NOT NULL, -- 创建者名称 participant_count INTEGER NOT NULL DEFAULT 0, -- 参与人数 max_participants INTEGER DEFAULT 10, -- 最大参与人数 - start_time TIMESTAMPTZ DEFAULT NULL, -- 实际开始时间 - end_time TIMESTAMPTZ DEFAULT NULL, -- 实际结束时间 + start_time TIMESTAMPTZ NOT NULL, -- 定义会议开始时间 + end_time TIMESTAMPTZ NOT NULL, -- 定义会议结束时间 + advance INTEGER DEFAULT 5, -- 提前入会时间(分钟) + actual_start_time TIMESTAMPTZ DEFAULT NULL, -- 真正会议开始时间 + actual_end_time TIMESTAMPTZ DEFAULT NULL, -- 真正会议结束时间 duration_seconds INTEGER DEFAULT 0, -- 会议时长(秒) iframe_url TEXT DEFAULT NULL, -- iframe嵌入URL(生成后存储) config JSONB DEFAULT NULL, -- Jitsi配置项(自定义配置) diff --git a/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql b/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql index f2b62e7a..260ffc86 100644 --- a/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql +++ b/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql @@ -47,7 +47,8 @@ INSERT INTO sys.tb_sys_module ( ('MODULE-0008', 'module_agent', '智能体', '智能体管理', 'system', NULL, now(), false), ('MODULE-0005', 'module_knowledge', '知识库', '知识文档管理', 'system', NULL, now(), false), ('MODULE-0006', 'module_bidding', '招投标', '招投标业务管理', 'system', NULL, now(), false), -('MODULE-0007', 'module_workcase', '智能客服', '客服工单管理', 'system', NULL, now(), false); +('MODULE-0007', 'module_workcase', '智能客服', '客服工单管理', 'system', NULL, now(), false), +('MODULE-0009', 'module_meeting', '视频会议', 'Jitsi Meet视频会议管理', 'system', NULL, now(), false); -- ============================= -- 4. 初始化系统权限 @@ -161,7 +162,14 @@ INSERT INTO sys.tb_sys_permission ( ('PERM-0722', 'perm_workcase_ticket_update', '工单更新', 'workcase:ticket:update', '更新工单', 'module_workcase', true, 'system', NULL, now(), false), ('PERM-0723', 'perm_workcase_ticket_view', '工单查看', 'workcase:ticket:view', '查看工单详情和列表', 'module_workcase', true, 'system', NULL, now(), false), ('PERM-0724', 'perm_workcase_ticket_process', '工单处理', 'workcase:ticket:process', '工单处理过程管理', 'module_workcase', true, 'system', NULL, now(), false), -('PERM-0725', 'perm_workcase_ticket_device', '工单设备', 'workcase:ticket:device', '工单设备管理', 'module_workcase', true, 'system', NULL, now(), false); +('PERM-0725', 'perm_workcase_ticket_device', '工单设备', 'workcase:ticket:device', '工单设备管理', 'module_workcase', true, 'system', NULL, now(), false), + +-- 视频会议模块权限(Jitsi Meet) +('PERM-0730', 'perm_meeting_create', '创建会议', 'meeting:create:own', '创建视频会议', 'module_meeting', true, 'system', NULL, now(), false), +('PERM-0731', 'perm_meeting_join', '加入会议', 'meeting:join:any', '加入视频会议', 'module_meeting', true, 'system', NULL, now(), false), +('PERM-0732', 'perm_meeting_url', '获取会议链接', 'meeting:url:any', '获取会议加入链接', 'module_meeting', true, 'system', NULL, now(), false), +('PERM-0733', 'perm_meeting_token', '获取会议令牌', 'meeting:token:any', '获取会议参与令牌', 'module_meeting', true, 'system', NULL, now(), false); + -- ============================= -- 5. 初始化视图(菜单) -- ============================= @@ -332,7 +340,12 @@ INSERT INTO sys.tb_sys_role_permission ( ('RP-U-0013', 'role_user', 'perm_file_upload', 'system', NULL, now(), false), ('RP-U-0014', 'role_user', 'perm_file_download', 'system', NULL, now(), false), ('RP-U-0015', 'role_user', 'perm_message_view', 'system', NULL, now(), false), -('RP-U-0016', 'role_user', 'perm_config_view', 'system', NULL, now(), false); +('RP-U-0016', 'role_user', 'perm_config_view', 'system', NULL, now(), false), +--- 视频会议权限 +('RP-U-0050', 'role_user', 'perm_meeting_create', 'system', NULL, now(), false), +('RP-U-0051', 'role_user', 'perm_meeting_join', 'system', NULL, now(), false), +('RP-U-0052', 'role_user', 'perm_meeting_url', 'system', NULL, now(), false), +('RP-U-0053', 'role_user', 'perm_meeting_token', 'system', NULL, now(), false); -- 访客权限(基础菜单 + workcase聊天和工单全部接口权限) INSERT INTO sys.tb_sys_role_permission ( @@ -366,7 +379,12 @@ INSERT INTO sys.tb_sys_role_permission ( ('RP-G-0042', 'role_guest', 'perm_workcase_ticket_update', 'system', NULL, now(), false), ('RP-G-0043', 'role_guest', 'perm_workcase_ticket_view', 'system', NULL, now(), false), ('RP-G-0044', 'role_guest', 'perm_workcase_ticket_process', 'system', NULL, now(), false), -('RP-G-0045', 'role_guest', 'perm_workcase_ticket_device', 'system', NULL, now(), false); +('RP-G-0045', 'role_guest', 'perm_workcase_ticket_device', 'system', NULL, now(), false), +--- 视频会议权限 +('RP-G-0050', 'role_guest', 'perm_meeting_create', 'system', NULL, now(), false), +('RP-G-0051', 'role_guest', 'perm_meeting_join', 'system', NULL, now(), false), +('RP-G-0052', 'role_guest', 'perm_meeting_url', 'system', NULL, now(), false), +('RP-G-0053', 'role_guest', 'perm_meeting_token', 'system', NULL, now(), false); -- ============================= -- 7. 视图权限关联 diff --git a/urbanLifelineServ/.bin/docker/urbanlifeline/docker-compose.yml b/urbanLifelineServ/.bin/docker/urbanlifeline/docker-compose.yml index 65515535..16b9cff5 100644 --- a/urbanLifelineServ/.bin/docker/urbanlifeline/docker-compose.yml +++ b/urbanLifelineServ/.bin/docker/urbanlifeline/docker-compose.yml @@ -74,24 +74,249 @@ services: # 管理员账户配置 MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin123 - + # Console 地址配置 MINIO_CONSOLE_ADDRESS: ":9001" MINIO_ADDRESS: ":9000" - + # 时区设置 TZ: Asia/Shanghai - + volumes: # 数据持久化到主机目录 - ../../../.data/docker/minio/data:/data - ../../../.data/docker/minio/config:/root/.minio - + command: server /data --console-address ":9001" - + healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 start_period: 30s + + # ====================== Jitsi Meet 视频会议服务 ====================== + + jitsi-web: + image: jitsi/web:stable-9584 + container_name: urban-lifeline-jitsi-web + restart: unless-stopped + networks: + - urban-lifeline + ports: + - "8280:80" # 保留原 HTTP 端口 + - "8443:443" # 保留原 HTTPS 端口(仅保留映射,实际禁用 HTTPS) + environment: + # 基础配置(局域网访问) + TZ: Asia/Shanghai + PUBLIC_URL: http://192.168.0.253:8280 + + # 核心修复:解决 WebSocket 协议/URL 错误(局域网 IP) + BOSH_URL_BASE: http://jitsi-prosody:5280 + WEBSOCKET_URL: ws://192.168.0.253:8280/xmpp-websocket + + # XMPP 配置(完全保留原设置) + XMPP_DOMAIN: meet.jitsi + XMPP_AUTH_DOMAIN: auth.meet.jitsi + XMPP_BOSH_URL_BASE: http://jitsi-prosody:5280 + XMPP_MUC_DOMAIN: muc.meet.jitsi + XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi + XMPP_GUEST_DOMAIN: guest.meet.jitsi + + # Jicofo 配置(完全保留原设置) + JICOFO_COMPONENT_SECRET: jicofo-secret + JICOFO_AUTH_USER: focus + + # JVB 配置(完全保留原设置) + JVB_AUTH_USER: jvb + JVB_AUTH_PASSWORD: jvb-password + + # JWT 认证配置(完全保留原设置) + ENABLE_AUTH: 1 + ENABLE_GUESTS: 1 + AUTH_TYPE: jwt + JWT_APP_ID: urbanLifeline + JWT_APP_SECRET: urbanLifelinejitsi + JWT_ACCEPTED_ISSUERS: urbanLifeline + JWT_ACCEPTED_AUDIENCES: jitsi + JWT_ASAP_KEYSERVER: https://192.168.0.253:8280/ + JWT_ALLOW_EMPTY: 0 + JWT_AUTH_TYPE: token + JWT_TOKEN_AUTH_MODULE: token_verification + + # 界面/功能配置(完全保留原设置) + ENABLE_RECORDING: 0 + ENABLE_TRANSCRIPTIONS: 0 + ENABLE_SUBDOMAINS: 0 + ENABLE_XMPP_WEBSOCKET: 1 + ENABLE_SCTP: 1 + DISABLE_HTTPS: 1 + + # 日志/HTTPS 配置 + ENABLE_LETSENCRYPT: 0 + LETSENCRYPT_DOMAIN: 192.168.0.253 + + volumes: + - ../../../.data/docker/jitsi/web:/config + - ../../../.data/docker/jitsi/web/crontabs:/var/spool/cron/crontabs + - ../../../.data/docker/jitsi/transcripts:/usr/share/jitsi-meet/transcripts + depends_on: + - jitsi-prosody + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:80/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + + # XMPP 服务(Prosody)- 完全保留原配置 + jitsi-prosody: + image: jitsi/prosody:stable-9584 + container_name: urban-lifeline-jitsi-prosody + restart: unless-stopped + networks: + - urban-lifeline + expose: + - "5222" # XMPP客户端连接(内部) + - "5347" # XMPP组件连接(内部) + - "5280" # BOSH/WebSocket(内部) + environment: + TZ: Asia/Shanghai + + # XMPP域配置(完全保留) + XMPP_DOMAIN: meet.jitsi + XMPP_AUTH_DOMAIN: auth.meet.jitsi + XMPP_MUC_DOMAIN: muc.meet.jitsi + XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi + XMPP_GUEST_DOMAIN: guest.meet.jitsi + + # Jicofo组件密钥(完全保留) + JICOFO_COMPONENT_SECRET: jicofo-secret + JICOFO_AUTH_USER: focus + JICOFO_AUTH_PASSWORD: focus-password + + # JVB认证(完全保留) + JVB_AUTH_USER: jvb + JVB_AUTH_PASSWORD: jvb-password + + # JWT认证(完全保留) + ENABLE_AUTH: 1 + ENABLE_GUESTS: 1 + AUTH_TYPE: jwt + JWT_APP_ID: urbanLifeline + JWT_APP_SECRET: urbanLifelinejitsi + JWT_ACCEPTED_ISSUERS: urbanLifeline + JWT_ACCEPTED_AUDIENCES: jitsi + JWT_ALLOW_EMPTY: 0 + JWT_AUTH_TYPE: token + JWT_TOKEN_AUTH_MODULE: token_verification + + # 日志配置(完全保留) + LOG_LEVEL: info + + # 公共URL(局域网访问) + PUBLIC_URL: http://192.168.0.253:8280 + + volumes: + - ../../../.data/docker/jitsi/prosody/config:/config + - ../../../.data/docker/jitsi/prosody/prosody-plugins-custom:/prosody-plugins-custom + healthcheck: + test: ["CMD", "prosodyctl", "status"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 90s + + # 会议焦点控制器(Jicofo)- 完全保留原配置 + jitsi-jicofo: + image: jitsi/jicofo:stable-9584 + container_name: urban-lifeline-jitsi-jicofo + restart: unless-stopped + networks: + - urban-lifeline + environment: + TZ: Asia/Shanghai + + # XMPP配置(完全保留) + XMPP_DOMAIN: meet.jitsi + XMPP_AUTH_DOMAIN: auth.meet.jitsi + XMPP_MUC_DOMAIN: muc.meet.jitsi + XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi + XMPP_SERVER: jitsi-prosody + + # Jicofo认证(完全保留) + JICOFO_COMPONENT_SECRET: jicofo-secret + JICOFO_AUTH_USER: focus + JICOFO_AUTH_PASSWORD: focus-password + + # JWT配置(完全保留) + AUTH_TYPE: jwt + + # JVB配置(完全保留) + JVB_BREWERY_MUC: jvbbrewery + + # 日志级别(完全保留) + JICOFO_ENABLE_HEALTH_CHECKS: "true" + + volumes: + - ../../../.data/docker/jitsi/jicofo:/config + depends_on: + - jitsi-prosody + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8888/about/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 90s + + # 视频桥接服务(JVB)- 仅修复 WebSocket 相关,保留IP/端口 + jitsi-jvb: + image: jitsi/jvb:stable-9584 + container_name: urban-lifeline-jitsi-jvb + restart: unless-stopped + networks: + - urban-lifeline + ports: + - "10000:10000/udp" # 保留原 UDP 端口 + - "4443:4443/tcp" # 保留原 TCP 端口 + environment: + TZ: Asia/Shanghai + + # XMPP配置(完全保留) + XMPP_DOMAIN: meet.jitsi + XMPP_AUTH_DOMAIN: auth.meet.jitsi + XMPP_INTERNAL_MUC_DOMAIN: internal-muc.meet.jitsi + XMPP_SERVER: jitsi-prosody + + # JVB认证(完全保留) + JVB_AUTH_USER: jvb + JVB_AUTH_PASSWORD: jvb-password + + # JVB配置(完全保留) + JVB_BREWERY_MUC: jvbbrewery + JVB_PORT: 10000 + JVB_STUN_SERVERS: stun.l.google.com:19302,stun1.l.google.com:19302 + + # 本地IP配置(局域网IP - 关键配置!) + DOCKER_HOST_ADDRESS: 192.168.0.253 + JVB_ADVERTISE_IPS: 192.168.0.253 + + # 启用统计(完全保留) + JVB_ENABLE_APIS: rest,colibri + + # 性能优化(完全保留) + JVB_TCP_HARVESTER_DISABLED: "false" + JVB_TCP_PORT: 4443 + JVB_TCP_MAPPED_PORT: 4443 + + volumes: + - ../../../.data/docker/jitsi/jvb:/config + depends_on: + - jitsi-prosody + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/about/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 90s diff --git a/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/dto/TbVideoMeetingDTO.java b/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/dto/TbVideoMeetingDTO.java index acc57b87..13d91dc8 100644 --- a/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/dto/TbVideoMeetingDTO.java +++ b/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/dto/TbVideoMeetingDTO.java @@ -34,6 +34,9 @@ public class TbVideoMeetingDTO extends BaseDTO { @Schema(description = "会议密码") private String meetingPassword; + @Schema(description = "会议模式") + private String description; + @Schema(description = "JWT Token") private String jwtToken; @@ -46,9 +49,6 @@ public class TbVideoMeetingDTO extends BaseDTO { @Schema(description = "状态:scheduled-已安排 ongoing-进行中 ended-已结束 cancelled-已取消") private String status; - @Schema(description = "创建者ID") - private String creatorId; - @Schema(description = "创建者类型:guest-来客 agent-客服") private String creatorType; @@ -61,6 +61,15 @@ public class TbVideoMeetingDTO extends BaseDTO { @Schema(description = "最大参与人数") private Integer maxParticipants; + @Schema(description = "定义会议开始时间") + private Date startTime; + + @Schema(description = "定义会议结束时间") + private Date endTime; + + @Schema(description = "提前入会时间(分钟)") + private Integer advance; + @Schema(description = "实际开始时间") private Date actualStartTime; diff --git a/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/service/MeetService.java b/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/service/MeetService.java deleted file mode 100644 index 0e486b41..00000000 --- a/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/service/MeetService.java +++ /dev/null @@ -1,186 +0,0 @@ -package org.xyzh.api.workcase.service; - -import org.xyzh.api.workcase.dto.TbVideoMeetingDTO; -import org.xyzh.api.workcase.dto.TbMeetingParticipantDTO; -import org.xyzh.api.workcase.dto.TbMeetingTranscriptionDTO; -import org.xyzh.api.workcase.vo.VideoMeetingVO; -import org.xyzh.api.workcase.vo.MeetingParticipantVO; -import org.xyzh.api.workcase.vo.MeetingTranscriptionVO; -import org.xyzh.common.core.domain.ResultDomain; -import org.xyzh.common.core.page.PageRequest; - -/** - * @description 视频会议服务接口,管理Jitsi Meet会议、参与者和转录 - * @filename MeetService.java - * @author cascade - * @copyright xyzh - * @since 2025-12-22 - */ -public interface MeetService { - - // ========================= 会议管理 ========================== - - /** - * @description 创建视频会议 - * @param meeting 会议信息 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain createMeeting(TbVideoMeetingDTO meeting); - - /** - * @description 更新会议信息 - * @param meeting 会议信息 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain updateMeeting(TbVideoMeetingDTO meeting); - - /** - * @description 开始会议 - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain startMeeting(String meetingId); - - /** - * @description 结束会议 - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain endMeeting(String meetingId); - - /** - * @description 删除会议 - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain deleteMeeting(String meetingId); - - /** - * @description 根据ID获取会议 - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain getMeetingById(String meetingId); - - /** - * @description 获取会议列表/分页 - * @param pageRequest 分页请求 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain getMeetingPage(PageRequest pageRequest); - - /** - * @description 生成会议加入链接/iframe URL - * @param meetingId 会议ID - * @param userId 用户ID - * @param userName 用户名称 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain generateMeetingJoinUrl(String meetingId, String userId, String userName); - - /** - * @description 生成会议JWT Token - * @param meetingId 会议ID - * @param userId 用户ID - * @param isModerator 是否主持人 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain generateMeetingToken(String meetingId, String userId, boolean isModerator); - - // ========================= 参与者管理 ========================== - - /** - * @description 参与者加入会议 - * @param participant 参与者信息 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain joinMeeting(TbMeetingParticipantDTO participant); - - /** - * @description 参与者离开会议 - * @param participantId 参与者ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain leaveMeeting(String participantId); - - /** - * @description 获取会议参与者列表 - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain getMeetingParticipantList(String meetingId); - - /** - * @description 更新参与者信息 - * @param participant 参与者信息 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain updateParticipant(TbMeetingParticipantDTO participant); - - /** - * @description 设置参与者为主持人 - * @param participantId 参与者ID - * @param isModerator 是否主持人 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain setModerator(String participantId, boolean isModerator); - - // ========================= 转录管理 ========================== - - /** - * @description 添加转录记录 - * @param transcription 转录内容 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain addTranscription(TbMeetingTranscriptionDTO transcription); - - /** - * @description 获取会议转录列表/分页 - * @param pageRequest 分页请求 - * @author cascade - * @since 2025-12-22 - */ - ResultDomain getTranscriptionPage(PageRequest pageRequest); - - /** - * @description 获取会议完整转录文本 - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain getFullTranscriptionText(String meetingId); - - /** - * @description 删除转录记录 - * @param transcriptionId 转录ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain deleteTranscription(String transcriptionId); - - // ========================= 会议统计 ========================== - - /** - * @description 获取会议统计信息(参与人数、时长等) - * @param meetingId 会议ID - * @author cascade - * @since 2025-12-22 - */ - ResultDomain getMeetingStatistics(String meetingId); - -} diff --git a/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/vo/VideoMeetingVO.java b/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/vo/VideoMeetingVO.java index 9cc570c4..8d075d19 100644 --- a/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/vo/VideoMeetingVO.java +++ b/urbanLifelineServ/apis/api-workcase/src/main/java/org/xyzh/api/workcase/vo/VideoMeetingVO.java @@ -33,6 +33,10 @@ public class VideoMeetingVO extends BaseVO { @Schema(description = "会议密码") private String meetingPassword; + @Schema(description = "会议模式") + private String description; + + @Schema(description = "JWT Token(用于身份验证)") private String jwtToken; @@ -45,9 +49,6 @@ public class VideoMeetingVO extends BaseVO { @Schema(description = "状态:scheduled-已安排 ongoing-进行中 ended-已结束 cancelled-已取消") private String status; - @Schema(description = "创建者ID") - private String creatorId; - @Schema(description = "创建者类型:guest-来客 agent-客服") private String creatorType; @@ -59,6 +60,17 @@ public class VideoMeetingVO extends BaseVO { @Schema(description = "最大参与人数") private Integer maxParticipants; + + @Schema(description = "定义会议开始时间", format = "date-time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + @Schema(description = "定义会议结束时间", format = "date-time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + @Schema(description = "提前入会时间(分钟)") + private Integer advance; @Schema(description = "实际开始时间", format = "date-time") @JSONField(format = "yyyy-MM-dd HH:mm:ss") diff --git a/urbanLifelineServ/common/common-exception/pom.xml b/urbanLifelineServ/common/common-exception/pom.xml index 1d2f28e9..3f49f094 100644 --- a/urbanLifelineServ/common/common-exception/pom.xml +++ b/urbanLifelineServ/common/common-exception/pom.xml @@ -33,6 +33,11 @@ org.springframework.boot spring-boot-starter-validation + + org.springframework.boot + spring-boot-starter-security + + org.projectlombok lombok diff --git a/urbanLifelineServ/common/common-exception/src/main/java/org/xyzh/common/exception/handler/GlobalExceptionHandler.java b/urbanLifelineServ/common/common-exception/src/main/java/org/xyzh/common/exception/handler/GlobalExceptionHandler.java index 60d4b1b6..17636708 100644 --- a/urbanLifelineServ/common/common-exception/src/main/java/org/xyzh/common/exception/handler/GlobalExceptionHandler.java +++ b/urbanLifelineServ/common/common-exception/src/main/java/org/xyzh/common/exception/handler/GlobalExceptionHandler.java @@ -2,8 +2,11 @@ package org.xyzh.common.exception.handler; import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolationException; -import lombok.extern.slf4j.Slf4j; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; +import org.springframework.security.authorization.AuthorizationDeniedException; import org.springframework.validation.BindException; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; @@ -26,17 +29,16 @@ import java.util.stream.Collectors; * @copyright yslg * @since 2025-12-17 */ -@Slf4j @RestControllerAdvice public class GlobalExceptionHandler { - + private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class); /** * 业务异常 */ @ExceptionHandler(BusinessException.class) @ResponseStatus(HttpStatus.OK) public ResultDomain handleBusinessException(BusinessException e) { - log.warn("业务异常: {}", e.getMessage()); + logger.warn("业务异常: {}", e.getMessage()); return ResultDomain.failure(e.getCode(), e.getMessage()); } @@ -49,7 +51,7 @@ public class GlobalExceptionHandler { String message = e.getBindingResult().getFieldErrors().stream() .map(FieldError::getDefaultMessage) .collect(Collectors.joining("; ")); - log.warn("参数校验失败: {}", message); + logger.warn("参数校验失败: {}", message); return ResultDomain.failure(HttpStatus.BAD_REQUEST.value(), message); } @@ -63,7 +65,7 @@ public class GlobalExceptionHandler { String message = violations.stream() .map(ConstraintViolation::getMessage) .collect(Collectors.joining("; ")); - log.warn("参数校验失败: {}", message); + logger.warn("参数校验失败: {}", message); return ResultDomain.failure(HttpStatus.BAD_REQUEST.value(), message); } @@ -76,7 +78,7 @@ public class GlobalExceptionHandler { String message = e.getFieldErrors().stream() .map(FieldError::getDefaultMessage) .collect(Collectors.joining("; ")); - log.warn("参数绑定失败: {}", message); + logger.warn("参数绑定失败: {}", message); return ResultDomain.failure(HttpStatus.BAD_REQUEST.value(), message); } @@ -87,7 +89,7 @@ public class GlobalExceptionHandler { @ResponseStatus(HttpStatus.OK) public ResultDomain handleMissingServletRequestParameterException(MissingServletRequestParameterException e) { String message = "缺少必要参数: " + e.getParameterName(); - log.warn(message); + logger.warn(message); return ResultDomain.failure(HttpStatus.BAD_REQUEST.value(), message); } @@ -98,7 +100,7 @@ public class GlobalExceptionHandler { @ResponseStatus(HttpStatus.OK) public ResultDomain handleMissingServletRequestPartException(MissingServletRequestPartException e) { String message = "缺少必要参数: " + e.getRequestPartName(); - log.warn(message); + logger.warn(message); return ResultDomain.failure(HttpStatus.BAD_REQUEST.value(), message); } @@ -108,17 +110,27 @@ public class GlobalExceptionHandler { @ExceptionHandler(MaxUploadSizeExceededException.class) @ResponseStatus(HttpStatus.OK) public ResultDomain handleMaxUploadSizeExceededException(MaxUploadSizeExceededException e) { - log.warn("文件上传大小超限: {}", e.getMessage()); + logger.warn("文件上传大小超限: {}", e.getMessage()); return ResultDomain.failure(HttpStatus.BAD_REQUEST.value(), "上传文件大小超过限制"); } + /** + * 权限不足异常 + */ + @ExceptionHandler(AuthorizationDeniedException.class) + @ResponseStatus(HttpStatus.OK) + public ResultDomain handleAuthorizationDeniedException(AuthorizationDeniedException e) { + logger.warn("权限不足: {}", e.getMessage()); + return ResultDomain.failure(HttpStatus.FORBIDDEN.value(), "权限不足"); + } + /** * 其他未捕获异常 */ @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.OK) public ResultDomain handleException(Exception e) { - log.error("系统异常: ", e); + logger.error("系统异常: ", e); return ResultDomain.failure(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常,请联系管理员"); } } diff --git a/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/ValidationUtils.java b/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/ValidationUtils.java index 4d666f17..24329840 100644 --- a/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/ValidationUtils.java +++ b/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/ValidationUtils.java @@ -1,5 +1,6 @@ package org.xyzh.common.utils.validation; +import org.xyzh.common.utils.validation.method.FieldCompareValidateMethod; import org.xyzh.common.utils.validation.method.InSetValidateMethod; import org.xyzh.common.utils.validation.method.MinFieldsValidateMethod; import org.xyzh.common.utils.validation.method.ObjectValidateMethod; @@ -10,6 +11,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.function.BiFunction; import java.util.regex.Pattern; /** @@ -380,4 +382,32 @@ public class ValidationUtils { .validateMethod(new InSetValidateMethod(fieldLabel, allowedValues)) .build(); } + + /** + * @description 创建字段比较校验参数(比较对象中的两个字段) + * @param field1Name 第一个字段名称 + * @param field2Name 第二个字段名称 + * @param fieldLabel 字段标签 + * @param compareFunction 比较函数:(field1Value, field2Value) -> Boolean,返回true表示通过 + * @param errorMessage 自定义错误消息 + * @return ValidationParam + */ + public static ValidationParam fieldCompare(String field1Name, + String field2Name, + String fieldLabel, + BiFunction compareFunction, + String errorMessage) { + return ValidationParam.builder() + .fieldName(field1Name) + .fieldLabel(fieldLabel) + .required(false) + .validateMethod(new FieldCompareValidateMethod( + field1Name, + field2Name, + fieldLabel, + compareFunction, + errorMessage + )) + .build(); + } } diff --git a/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/method/FieldCompareValidateMethod.java b/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/method/FieldCompareValidateMethod.java new file mode 100644 index 00000000..9b78d2f5 --- /dev/null +++ b/urbanLifelineServ/common/common-utils/src/main/java/org/xyzh/common/utils/validation/method/FieldCompareValidateMethod.java @@ -0,0 +1,156 @@ +package org.xyzh.common.utils.validation.method; + +import java.lang.reflect.Field; +import java.util.function.BiFunction; + +/** + * @description 字段比较校验方法,用于比较对象中的两个字段 + * @filename FieldCompareValidateMethod.java + * @author Claude Code + * @copyright xyzh + * @since 2025-12-26 + */ +public class FieldCompareValidateMethod implements ObjectValidateMethod { + + /** + * 第一个字段名称 + */ + private final String field1Name; + + /** + * 第二个字段名称 + */ + private final String field2Name; + + /** + * 字段标签(用于错误消息) + */ + private final String fieldLabel; + + /** + * 比较函数:(field1Value, field2Value) -> Boolean + * 返回 true 表示校验通过,false 表示校验失败 + */ + private final BiFunction compareFunction; + + /** + * 自定义错误消息 + */ + private final String customErrorMessage; + + /** + * 构造函数 + * + * @param field1Name 第一个字段名称 + * @param field2Name 第二个字段名称 + * @param fieldLabel 字段标签 + * @param compareFunction 比较函数 + * @param customErrorMessage 自定义错误消息 + */ + public FieldCompareValidateMethod(String field1Name, + String field2Name, + String fieldLabel, + BiFunction compareFunction, + String customErrorMessage) { + this.field1Name = field1Name; + this.field2Name = field2Name; + this.fieldLabel = fieldLabel; + this.compareFunction = compareFunction; + this.customErrorMessage = customErrorMessage; + } + + @Override + public Boolean validate(Object targetObject) { + if (targetObject == null) { + return true; + } + + try { + // 获取第一个字段的值 + Object field1Value = getFieldValue(targetObject, field1Name); + + // 获取第二个字段的值 + Object field2Value = getFieldValue(targetObject, field2Name); + + // 如果任意字段为null,跳过校验 + if (field1Value == null || field2Value == null) { + return true; + } + + // 执行比较函数 + return compareFunction.apply(field1Value, field2Value); + + } catch (Exception e) { + throw new RuntimeException("字段比较校验失败: " + e.getMessage(), e); + } + } + + @Override + public String getErrorMessage() { + if (customErrorMessage != null && !customErrorMessage.trim().isEmpty()) { + return customErrorMessage; + } + return fieldLabel + "校验失败"; + } + + @Override + public String getName() { + return "字段比较校验"; + } + + /** + * 获取字段值(支持嵌套字段) + * + * @param obj 对象 + * @param fieldName 字段名称(支持 "field" 或 "nested.field") + * @return 字段值 + */ + private Object getFieldValue(Object obj, String fieldName) throws Exception { + if (fieldName == null || fieldName.trim().isEmpty()) { + return null; + } + + // 支持嵌套字段访问(如 "user.name") + String[] fieldParts = fieldName.split("\\."); + Object currentObj = obj; + + for (String part : fieldParts) { + if (currentObj == null) { + return null; + } + + // 获取字段 + Field field = findField(currentObj.getClass(), part); + if (field == null) { + throw new NoSuchFieldException("字段不存在: " + part); + } + + // 设置可访问 + field.setAccessible(true); + + // 获取字段值 + currentObj = field.get(currentObj); + } + + return currentObj; + } + + /** + * 查找字段(包括父类) + * + * @param clazz 类 + * @param fieldName 字段名称 + * @return 字段 + */ + private Field findField(Class clazz, String fieldName) { + Class currentClass = clazz; + while (currentClass != null) { + try { + return currentClass.getDeclaredField(fieldName); + } catch (NoSuchFieldException e) { + currentClass = currentClass.getSuperclass(); + } + } + return null; + } +} diff --git a/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/controller/WorkcaseChatContorller.java b/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/controller/WorkcaseChatContorller.java index e5a540d2..58c66500 100644 --- a/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/controller/WorkcaseChatContorller.java +++ b/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/controller/WorkcaseChatContorller.java @@ -17,6 +17,7 @@ import org.xyzh.api.workcase.dto.TbChatRoomDTO; import org.xyzh.api.workcase.dto.TbChatRoomMemberDTO; import org.xyzh.api.workcase.dto.TbChatRoomMessageDTO; import org.xyzh.api.workcase.dto.TbCustomerServiceDTO; +import org.xyzh.api.workcase.dto.TbVideoMeetingDTO; import org.xyzh.api.workcase.dto.TbWordCloudDTO; import org.xyzh.api.workcase.service.ChatRoomService; import org.xyzh.api.workcase.service.WorkcaseChatService; @@ -24,16 +25,20 @@ import org.xyzh.api.workcase.vo.ChatMemberVO; import org.xyzh.api.workcase.vo.ChatRoomMessageVO; import org.xyzh.api.workcase.vo.ChatRoomVO; import org.xyzh.api.workcase.vo.CustomerServiceVO; +import org.xyzh.api.workcase.vo.VideoMeetingVO; import org.xyzh.common.auth.utils.JwtTokenUtil; import org.xyzh.common.auth.utils.LoginUtil; import org.xyzh.common.core.domain.ResultDomain; import org.xyzh.common.core.page.PageRequest; +import org.xyzh.common.utils.validation.ValidationParam; import org.xyzh.common.utils.validation.ValidationResult; import org.xyzh.common.utils.validation.ValidationUtils; import io.swagger.v3.oas.annotations.Operation; import java.util.Arrays; +import java.util.Date; + import io.swagger.v3.oas.annotations.tags.Tag; /** @@ -274,12 +279,38 @@ public class WorkcaseChatContorller { private org.xyzh.api.workcase.service.VideoMeetingService videoMeetingService; @Operation(summary = "创建视频会议") - @PreAuthorize("hasAuthority('workcase:room:meeting')") + @PreAuthorize("hasAuthority('meeting:create:own')") @PostMapping("/meeting/create") - public ResultDomain createVideoMeeting( - @RequestBody org.xyzh.api.workcase.dto.TbVideoMeetingDTO meetingDTO) { + public ResultDomain createVideoMeeting( + @RequestBody TbVideoMeetingDTO meetingDTO) { ValidationResult vr = ValidationUtils.validate(meetingDTO, Arrays.asList( - ValidationUtils.requiredString("roomId", "聊天室ID") + ValidationUtils.requiredString("roomId", "聊天室ID"), + ValidationUtils.requiredString("meetingName", "会议名称"), + // 校验开始时间不为空 + ValidationParam.builder() + .fieldName("startTime") + .fieldLabel("会议开始时间") + .required() + .build(), + // 校验结束时间不为空 + ValidationParam.builder() + .fieldName("endTime") + .fieldLabel("会议结束时间") + .required() + .build(), + // 校验开始时间小于结束时间(使用 fieldCompare 比较两个字段) + ValidationUtils.fieldCompare( + "startTime", + "endTime", + "会议时间", + (startTime, endTime) -> { + if (startTime instanceof Date && endTime instanceof Date) { + return ((Date) startTime).before((Date) endTime); + } + return true; + }, + "会议开始时间不能晚于结束时间" + ) )); if (!vr.isValid()) { return ResultDomain.failure(vr.getAllErrors()); @@ -293,9 +324,9 @@ public class WorkcaseChatContorller { } @Operation(summary = "获取会议信息") - @PreAuthorize("hasAuthority('workcase:room:meeting')") + @PreAuthorize("hasAuthority('meeting:url:any')") @GetMapping("/meeting/{meetingId}") - public ResultDomain getMeetingInfo( + public ResultDomain getMeetingInfo( @PathVariable(value = "meetingId") String meetingId) { String userId = LoginUtil.getCurrentUserId(); @@ -307,9 +338,9 @@ public class WorkcaseChatContorller { } @Operation(summary = "加入会议(生成用户专属JWT)") - @PreAuthorize("hasAuthority('workcase:room:meeting')") + @PreAuthorize("hasAuthority('meeting:join:any')") @PostMapping("/meeting/{meetingId}/join") - public ResultDomain joinMeeting( + public ResultDomain joinMeeting( @PathVariable(value = "meetingId") String meetingId) { String userId = LoginUtil.getCurrentUserId(); @@ -328,7 +359,7 @@ public class WorkcaseChatContorller { } @Operation(summary = "开始会议") - @PreAuthorize("hasAuthority('workcase:room:meeting')") + @PreAuthorize("hasAuthority('meeting:create:own')") @PostMapping("/meeting/{meetingId}/start") public ResultDomain startMeeting(@PathVariable(value = "meetingId") String meetingId) { try { @@ -339,9 +370,9 @@ public class WorkcaseChatContorller { } @Operation(summary = "结束会议") - @PreAuthorize("hasAuthority('workcase:room:meeting')") + @PreAuthorize("hasAuthority('meeting:create:own')") @PostMapping("/meeting/{meetingId}/end") - public ResultDomain endMeeting( + public ResultDomain endMeeting( @PathVariable(value = "meetingId") String meetingId) { try { return videoMeetingService.endMeeting(meetingId); @@ -351,9 +382,9 @@ public class WorkcaseChatContorller { } @Operation(summary = "获取聊天室当前活跃会议") - @PreAuthorize("hasAuthority('workcase:room:meeting')") + @PreAuthorize("hasAuthority('meeting:url:any')") @GetMapping("/meeting/room/{roomId}/active") - public ResultDomain getActiveMeetingByRoom( + public ResultDomain getActiveMeetingByRoom( @PathVariable(value = "roomId") String roomId) { try { return videoMeetingService.getActiveMeetingByRoom(roomId); diff --git a/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/MeetServiceImpl.java b/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/MeetServiceImpl.java deleted file mode 100644 index 08c4cde3..00000000 --- a/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/MeetServiceImpl.java +++ /dev/null @@ -1,450 +0,0 @@ -package org.xyzh.workcase.service; - -import java.util.Date; -import java.util.List; - -import org.apache.dubbo.config.annotation.DubboService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; -import org.xyzh.api.workcase.dto.TbVideoMeetingDTO; -import org.xyzh.api.workcase.dto.TbMeetingParticipantDTO; -import org.xyzh.api.workcase.dto.TbMeetingTranscriptionDTO; -import org.xyzh.api.workcase.service.MeetService; -import org.xyzh.api.workcase.vo.VideoMeetingVO; -import org.xyzh.api.workcase.vo.MeetingParticipantVO; -import org.xyzh.api.workcase.vo.MeetingTranscriptionVO; -import org.xyzh.common.core.domain.ResultDomain; -import org.xyzh.common.core.page.PageDomain; -import org.xyzh.common.core.page.PageParam; -import org.xyzh.common.core.page.PageRequest; -import org.xyzh.common.utils.id.IdUtil; -import org.xyzh.workcase.mapper.TbVideoMeetingMapper; -import org.xyzh.workcase.mapper.TbMeetingParticipantMapper; -import org.xyzh.workcase.mapper.TbMeetingTranscriptionMapper; - -/** - * @description 视频会议服务实现类(伪代码) - * @filename MeetServiceImpl.java - * @author cascade - * @copyright xyzh - * @since 2025-12-22 - */ -@DubboService(version = "1.0.0", group = "workcase", timeout = 30000, retries = 0) -public class MeetServiceImpl implements MeetService { - private static final Logger logger = LoggerFactory.getLogger(MeetServiceImpl.class); - - @Autowired - private TbVideoMeetingMapper videoMeetingMapper; - - @Autowired - private TbMeetingParticipantMapper meetingParticipantMapper; - - @Autowired - private TbMeetingTranscriptionMapper meetingTranscriptionMapper; - - // TODO: 注入Jitsi配置和JWT工具类 - // @Autowired - // private JitsiConfig jitsiConfig; - // @Autowired - // private JwtTokenUtil jwtTokenUtil; - - // ========================= 会议管理 ========================== - - @Override - @Transactional - public ResultDomain createMeeting(TbVideoMeetingDTO meeting) { - logger.info("创建会议: roomId={}, meetingName={}", meeting.getRoomId(), meeting.getMeetingName()); - - // TODO: 生成唯一的Jitsi房间名 - // String jitsiRoomName = "meet_" + IdUtil.generateUUID().replace("-", ""); - - if (meeting.getMeetingId() == null || meeting.getMeetingId().isEmpty()) { - meeting.setMeetingId(IdUtil.generateUUID()); - } - if (meeting.getOptsn() == null || meeting.getOptsn().isEmpty()) { - meeting.setOptsn(IdUtil.getOptsn()); - } - if (meeting.getStatus() == null || meeting.getStatus().isEmpty()) { - meeting.setStatus("scheduled"); - } - // TODO: 设置Jitsi相关配置 - // meeting.setJitsiRoomName(jitsiRoomName); - // meeting.setJitsiServerUrl(jitsiConfig.getServerUrl()); - - int rows = videoMeetingMapper.insertVideoMeeting(meeting); - if (rows > 0) { - logger.info("会议创建成功: meetingId={}", meeting.getMeetingId()); - return ResultDomain.success("创建成功", meeting); - } - return ResultDomain.failure("创建失败"); - } - - @Override - public ResultDomain updateMeeting(TbVideoMeetingDTO meeting) { - logger.info("更新会议: meetingId={}", meeting.getMeetingId()); - - TbVideoMeetingDTO existing = videoMeetingMapper.selectVideoMeetingById(meeting.getMeetingId()); - if (existing == null) { - return ResultDomain.failure("会议不存在"); - } - - int rows = videoMeetingMapper.updateVideoMeeting(meeting); - if (rows > 0) { - TbVideoMeetingDTO updated = videoMeetingMapper.selectVideoMeetingById(meeting.getMeetingId()); - return ResultDomain.success("更新成功", updated); - } - return ResultDomain.failure("更新失败"); - } - - @Override - public ResultDomain startMeeting(String meetingId) { - logger.info("开始会议: meetingId={}", meetingId); - - TbVideoMeetingDTO existing = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (existing == null) { - return ResultDomain.failure("会议不存在"); - } - if ("ongoing".equals(existing.getStatus())) { - return ResultDomain.failure("会议已在进行中"); - } - - TbVideoMeetingDTO meeting = new TbVideoMeetingDTO(); - meeting.setMeetingId(meetingId); - meeting.setStatus("ongoing"); - meeting.setActualStartTime(new Date()); - - int rows = videoMeetingMapper.updateVideoMeeting(meeting); - if (rows > 0) { - TbVideoMeetingDTO updated = videoMeetingMapper.selectVideoMeetingById(meetingId); - return ResultDomain.success("会议已开始", updated); - } - return ResultDomain.failure("开始会议失败"); - } - - @Override - public ResultDomain endMeeting(String meetingId) { - logger.info("结束会议: meetingId={}", meetingId); - - TbVideoMeetingDTO existing = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (existing == null) { - return ResultDomain.failure("会议不存在"); - } - - TbVideoMeetingDTO meeting = new TbVideoMeetingDTO(); - meeting.setMeetingId(meetingId); - meeting.setStatus("ended"); - meeting.setActualEndTime(new Date()); - - // TODO: 计算会议时长 - // if (existing.getActualStartTime() != null) { - // long durationMs = new Date().getTime() - existing.getActualStartTime().getTime(); - // meeting.setDurationSeconds((int)(durationMs / 1000)); - // } - - int rows = videoMeetingMapper.updateVideoMeeting(meeting); - if (rows > 0) { - // TODO: 更新所有参与者离开时间 - // updateAllParticipantsLeaveTime(meetingId); - - TbVideoMeetingDTO updated = videoMeetingMapper.selectVideoMeetingById(meetingId); - return ResultDomain.success("会议已结束", updated); - } - return ResultDomain.failure("结束会议失败"); - } - - @Override - public ResultDomain deleteMeeting(String meetingId) { - logger.info("删除会议: meetingId={}", meetingId); - - TbVideoMeetingDTO existing = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (existing == null) { - return ResultDomain.failure("会议不存在"); - } - - TbVideoMeetingDTO meeting = new TbVideoMeetingDTO(); - meeting.setMeetingId(meetingId); - int rows = videoMeetingMapper.deleteVideoMeeting(meeting); - if (rows > 0) { - return ResultDomain.success("删除成功", true); - } - return ResultDomain.failure("删除失败"); - } - - @Override - public ResultDomain getMeetingById(String meetingId) { - TbVideoMeetingDTO meeting = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (meeting != null) { - return ResultDomain.success("查询成功", meeting); - } - return ResultDomain.failure("会议不存在"); - } - - @Override - public ResultDomain getMeetingPage(PageRequest pageRequest) { - TbVideoMeetingDTO filter = pageRequest.getFilter(); - if (filter == null) { - filter = new TbVideoMeetingDTO(); - } - - PageParam pageParam = pageRequest.getPageParam(); - List list = videoMeetingMapper.selectVideoMeetingPage(filter, pageParam); - long total = videoMeetingMapper.countVideoMeetings(filter); - pageParam.setTotal((int) total); - - PageDomain pageDomain = new PageDomain<>(pageParam, list); - return ResultDomain.success("查询成功", pageDomain); - } - - @Override - public ResultDomain generateMeetingJoinUrl(String meetingId, String userId, String userName) { - logger.info("生成会议加入链接: meetingId={}, userId={}", meetingId, userId); - - TbVideoMeetingDTO meeting = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (meeting == null) { - return ResultDomain.failure("会议不存在"); - } - - // TODO: 生成Jitsi iframe URL - // String jwtToken = generateMeetingToken(meetingId, userId, false).getData(); - // String baseUrl = meeting.getJitsiServerUrl(); - // String roomName = meeting.getJitsiRoomName(); - // String iframeUrl = String.format("%s/%s?jwt=%s#userInfo.displayName=%s", - // baseUrl, roomName, jwtToken, URLEncoder.encode(userName, "UTF-8")); - - String iframeUrl = "TODO: 生成Jitsi iframe URL"; - return ResultDomain.success("生成成功", iframeUrl); - } - - @Override - public ResultDomain generateMeetingToken(String meetingId, String userId, boolean isModerator) { - logger.info("生成会议JWT: meetingId={}, userId={}, isModerator={}", meetingId, userId, isModerator); - - TbVideoMeetingDTO meeting = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (meeting == null) { - return ResultDomain.failure("会议不存在"); - } - - // TODO: 使用Jitsi JWT规范生成Token - // JitsiTokenPayload payload = new JitsiTokenPayload(); - // payload.setRoom(meeting.getJitsiRoomName()); - // payload.setModerator(isModerator); - // payload.setUserId(userId); - // String token = jwtTokenUtil.generateJitsiToken(payload); - - String token = "TODO: 生成Jitsi JWT Token"; - return ResultDomain.success("生成成功", token); - } - - // ========================= 参与者管理 ========================== - - @Override - public ResultDomain joinMeeting(TbMeetingParticipantDTO participant) { - logger.info("参与者加入会议: meetingId={}, userId={}", participant.getMeetingId(), participant.getUserId()); - - // 检查会议是否存在 - TbVideoMeetingDTO meeting = videoMeetingMapper.selectVideoMeetingById(participant.getMeetingId()); - if (meeting == null) { - return ResultDomain.failure("会议不存在"); - } - - if (participant.getParticipantId() == null || participant.getParticipantId().isEmpty()) { - participant.setParticipantId(IdUtil.generateUUID()); - } - if (participant.getOptsn() == null || participant.getOptsn().isEmpty()) { - participant.setOptsn(IdUtil.getOptsn()); - } - participant.setJoinTime(new Date()); - - int rows = meetingParticipantMapper.insertMeetingParticipant(participant); - if (rows > 0) { - // 更新会议参与人数 - TbVideoMeetingDTO updateMeeting = new TbVideoMeetingDTO(); - updateMeeting.setMeetingId(participant.getMeetingId()); - updateMeeting.setParticipantCount(meeting.getParticipantCount() != null ? meeting.getParticipantCount() + 1 : 1); - videoMeetingMapper.updateVideoMeeting(updateMeeting); - - return ResultDomain.success("加入成功", participant); - } - return ResultDomain.failure("加入失败"); - } - - @Override - public ResultDomain leaveMeeting(String participantId) { - logger.info("参与者离开会议: participantId={}", participantId); - - TbMeetingParticipantDTO existing = meetingParticipantMapper.selectMeetingParticipantById(participantId); - if (existing == null) { - return ResultDomain.failure("参与者不存在"); - } - - TbMeetingParticipantDTO participant = new TbMeetingParticipantDTO(); - participant.setParticipantId(participantId); - participant.setLeaveTime(new Date()); - - // TODO: 计算参与时长 - // if (existing.getJoinTime() != null) { - // long durationMs = new Date().getTime() - existing.getJoinTime().getTime(); - // participant.setDurationSeconds((int)(durationMs / 1000)); - // } - - int rows = meetingParticipantMapper.updateMeetingParticipant(participant); - if (rows > 0) { - return ResultDomain.success("离开成功", true); - } - return ResultDomain.failure("离开失败"); - } - - @Override - public ResultDomain getMeetingParticipantList(String meetingId) { - TbMeetingParticipantDTO filter = new TbMeetingParticipantDTO(); - filter.setMeetingId(meetingId); - List list = meetingParticipantMapper.selectMeetingParticipantList(filter); - return ResultDomain.success("查询成功", list); - } - - @Override - public ResultDomain updateParticipant(TbMeetingParticipantDTO participant) { - logger.info("更新参与者: participantId={}", participant.getParticipantId()); - - TbMeetingParticipantDTO existing = meetingParticipantMapper.selectMeetingParticipantById(participant.getParticipantId()); - if (existing == null) { - return ResultDomain.failure("参与者不存在"); - } - - int rows = meetingParticipantMapper.updateMeetingParticipant(participant); - if (rows > 0) { - TbMeetingParticipantDTO updated = meetingParticipantMapper.selectMeetingParticipantById(participant.getParticipantId()); - return ResultDomain.success("更新成功", updated); - } - return ResultDomain.failure("更新失败"); - } - - @Override - public ResultDomain setModerator(String participantId, boolean isModerator) { - logger.info("设置主持人: participantId={}, isModerator={}", participantId, isModerator); - - TbMeetingParticipantDTO participant = new TbMeetingParticipantDTO(); - participant.setParticipantId(participantId); - participant.setIsModerator(isModerator); - - int rows = meetingParticipantMapper.updateMeetingParticipant(participant); - if (rows > 0) { - return ResultDomain.success("设置成功", true); - } - return ResultDomain.failure("设置失败"); - } - - // ========================= 转录管理 ========================== - - @Override - public ResultDomain addTranscription(TbMeetingTranscriptionDTO transcription) { - logger.info("添加转录记录: meetingId={}, speakerId={}", transcription.getMeetingId(), transcription.getSpeakerId()); - - if (transcription.getTranscriptionId() == null || transcription.getTranscriptionId().isEmpty()) { - transcription.setTranscriptionId(IdUtil.generateUUID()); - } - if (transcription.getOptsn() == null || transcription.getOptsn().isEmpty()) { - transcription.setOptsn(IdUtil.getOptsn()); - } - - int rows = meetingTranscriptionMapper.insertMeetingTranscription(transcription); - if (rows > 0) { - return ResultDomain.success("添加成功", transcription); - } - return ResultDomain.failure("添加失败"); - } - - @Override - public ResultDomain getTranscriptionPage(PageRequest pageRequest) { - TbMeetingTranscriptionDTO filter = pageRequest.getFilter(); - if (filter == null) { - filter = new TbMeetingTranscriptionDTO(); - } - - PageParam pageParam = pageRequest.getPageParam(); - List list = meetingTranscriptionMapper.selectMeetingTranscriptionPage(filter, pageParam); - long total = meetingTranscriptionMapper.countMeetingTranscriptions(filter); - pageParam.setTotal((int) total); - - PageDomain pageDomain = new PageDomain<>(pageParam, list); - return ResultDomain.success("查询成功", pageDomain); - } - - @Override - public ResultDomain getFullTranscriptionText(String meetingId) { - logger.info("获取完整转录文本: meetingId={}", meetingId); - - TbMeetingTranscriptionDTO filter = new TbMeetingTranscriptionDTO(); - filter.setMeetingId(meetingId); - filter.setIsFinal(true); - List list = meetingTranscriptionMapper.selectMeetingTranscriptionList(filter); - - // TODO: 拼接转录文本 - StringBuilder sb = new StringBuilder(); - for (MeetingTranscriptionVO transcription : list) { - // 格式:[说话人名称] 内容 - sb.append("[").append(transcription.getSpeakerName()).append("] "); - sb.append(transcription.getContent()).append("\n"); - } - - return ResultDomain.success("查询成功", sb.toString()); - } - - @Override - public ResultDomain deleteTranscription(String transcriptionId) { - logger.info("删除转录记录: transcriptionId={}", transcriptionId); - - TbMeetingTranscriptionDTO existing = meetingTranscriptionMapper.selectMeetingTranscriptionById(transcriptionId); - if (existing == null) { - return ResultDomain.failure("转录记录不存在"); - } - - TbMeetingTranscriptionDTO transcription = new TbMeetingTranscriptionDTO(); - transcription.setTranscriptionId(transcriptionId); - int rows = meetingTranscriptionMapper.deleteMeetingTranscription(transcription); - if (rows > 0) { - return ResultDomain.success("删除成功", true); - } - return ResultDomain.failure("删除失败"); - } - - // ========================= 会议统计 ========================== - - @Override - public ResultDomain getMeetingStatistics(String meetingId) { - logger.info("获取会议统计: meetingId={}", meetingId); - - TbVideoMeetingDTO meeting = videoMeetingMapper.selectVideoMeetingById(meetingId); - if (meeting == null) { - return ResultDomain.failure("会议不存在"); - } - - // TODO: 查询并组装统计信息 - // - 参与人数 - // - 会议时长 - // - 转录记录数 - // - 各参与者参与时长等 - - TbMeetingParticipantDTO participantFilter = new TbMeetingParticipantDTO(); - participantFilter.setMeetingId(meetingId); - List participants = meetingParticipantMapper.selectMeetingParticipantList(participantFilter); - - VideoMeetingVO vo = new VideoMeetingVO(); - vo.setMeetingId(meeting.getMeetingId()); - vo.setMeetingName(meeting.getMeetingName()); - vo.setStatus(meeting.getStatus()); - vo.setParticipantCount(participants.size()); - vo.setActualStartTime(meeting.getActualStartTime()); - vo.setActualEndTime(meeting.getActualEndTime()); - vo.setDurationSeconds(meeting.getDurationSeconds()); - - // TODO: 格式化时长 - // if (meeting.getDurationSeconds() != null) { - // vo.setDurationFormatted(formatDuration(meeting.getDurationSeconds())); - // } - - return ResultDomain.success("查询成功", vo); - } -} diff --git a/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/VideoMeetingServiceImpl.java b/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/VideoMeetingServiceImpl.java index 39860acd..20793b9f 100644 --- a/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/VideoMeetingServiceImpl.java +++ b/urbanLifelineServ/workcase/src/main/java/org/xyzh/workcase/service/VideoMeetingServiceImpl.java @@ -1,5 +1,6 @@ package org.xyzh.workcase.service; +import com.alibaba.fastjson2.JSONObject; import org.apache.dubbo.config.annotation.DubboService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -7,19 +8,25 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.xyzh.api.workcase.dto.TbChatRoomMemberDTO; +import org.xyzh.api.workcase.dto.TbChatRoomMessageDTO; import org.xyzh.api.workcase.dto.TbVideoMeetingDTO; +import org.xyzh.api.workcase.service.ChatRoomService; import org.xyzh.api.workcase.service.JitsiTokenService; import org.xyzh.api.workcase.service.VideoMeetingService; import org.xyzh.api.workcase.vo.ChatMemberVO; import org.xyzh.api.workcase.vo.VideoMeetingVO; import org.xyzh.common.auth.utils.LoginUtil; +import org.xyzh.common.core.domain.LoginDomain; import org.xyzh.common.core.domain.ResultDomain; import org.xyzh.common.utils.id.IdUtil; import org.xyzh.workcase.mapper.TbChatRoomMemberMapper; import org.xyzh.workcase.mapper.TbVideoMeetingMapper; +import java.util.Calendar; import java.util.Date; import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.locks.ReentrantLock; /** * @description 视频会议服务实现类 @@ -41,13 +48,21 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { @Autowired private JitsiTokenService jitsiTokenService; + @Autowired + private ChatRoomService chatRoomService; + + // 会议创建锁映射表:每个meetingId对应一个ReentrantLock + private final ConcurrentHashMap meetingLocks = new ConcurrentHashMap<>(); + @Override @Transactional public ResultDomain createMeeting(TbVideoMeetingDTO meetingDTO) { // 获取当前用户ID - String userId = LoginUtil.getCurrentUserId(); - logger.info("创建视频会议: roomId={}, workcaseId={}, userId={}", - meetingDTO.getRoomId(), meetingDTO.getWorkcaseId(), userId); + LoginDomain loginDomain = LoginUtil.getCurrentLogin(); + String userId = loginDomain.getUser().getUserId(); + logger.info("创建视频会议预约: roomId={}, workcaseId={}, userId={}, startTime={}, endTime={}", + meetingDTO.getRoomId(), meetingDTO.getWorkcaseId(), userId, + meetingDTO.getStartTime(), meetingDTO.getEndTime()); try { // 1. 验证用户是否为聊天室成员 @@ -57,18 +72,25 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { return ResultDomain.failure("您不是聊天室成员,无法创建会议"); } - // 2. 检查聊天室是否已有进行中的会议 - TbVideoMeetingDTO existingMeetingFilter = new TbVideoMeetingDTO(); - existingMeetingFilter.setRoomId(meetingDTO.getRoomId()); - existingMeetingFilter.setStatus("ongoing"); - List existingMeetings = videoMeetingMapper.selectVideoMeetingList(existingMeetingFilter); + // 2. 检查聊天室是否已有时间冲突的会议 + TbVideoMeetingDTO conflictFilter = new TbVideoMeetingDTO(); + conflictFilter.setRoomId(meetingDTO.getRoomId()); + conflictFilter.setStatus("scheduled"); // 只检查已安排的会议 + List existingMeetings = videoMeetingMapper.selectVideoMeetingList(conflictFilter); if (existingMeetings != null && !existingMeetings.isEmpty()) { - logger.warn("聊天室已有进行中的会议: roomId={}", meetingDTO.getRoomId()); - return ResultDomain.failure("聊天室已有进行中的会议,请稍后再试"); + for (VideoMeetingVO existing : existingMeetings) { + // 检查时间是否冲突 + if (isTimeConflict(meetingDTO.getStartTime(), meetingDTO.getEndTime(), + existing.getStartTime(), existing.getEndTime())) { + logger.warn("会议时间冲突: roomId={}, existingMeetingId={}", + meetingDTO.getRoomId(), existing.getMeetingId()); + return ResultDomain.failure("该时间段已有会议安排,请选择其他时间"); + } + } } - // 3. 生成会议ID和房间名 + // 3. 生成会议ID和房间名(房间名暂时生成,真正创建Jitsi时会重新生成) String meetingId = IdUtil.generateUUID(); String jitsiRoomName = jitsiTokenService.generateRoomName(meetingDTO.getWorkcaseId()); @@ -78,32 +100,21 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { memberFilter.setUserId(userId); List members = chatRoomMemberMapper.selectChatRoomMemberList(memberFilter); - String userName = "用户"; - String userType = "guest"; + String userName = loginDomain.getUserInfo().getUsername(); + String userType = "guest".equals(loginDomain.getUser().getStatus())?"guest":"user"; if (members != null && !members.isEmpty()) { ChatMemberVO member = members.get(0); userName = member.getUserName(); userType = member.getUserType(); } - // 5. 生成创建者的JWT Token(创建者默认为主持人) - String jwtToken = jitsiTokenService.generateJwtToken( - jitsiRoomName, - userId, - userName, - true // 创建者为主持人 - ); - - // 6. 构建iframe URL - String iframeUrl = jitsiTokenService.buildIframeUrl(jitsiRoomName, jwtToken, meetingDTO.getConfig()); - - // 7. 填充会议信息 + // 5. 填充会议预约信息(不生成JWT Token和iframe URL) meetingDTO.setMeetingId(meetingId); meetingDTO.setJitsiRoomName(jitsiRoomName); - meetingDTO.setJwtToken(jwtToken); // 存储创建者的token(可选) - meetingDTO.setIframeUrl(iframeUrl); - meetingDTO.setStatus("scheduled"); - meetingDTO.setCreatorId(userId); + meetingDTO.setJwtToken(null); // 预约阶段不生成token + meetingDTO.setIframeUrl(null); // 预约阶段不生成URL + meetingDTO.setStatus("scheduled"); // 状态为已安排 + meetingDTO.setCreator(userId); meetingDTO.setCreatorType(userType); meetingDTO.setCreatorName(userName); meetingDTO.setParticipantCount(0); @@ -113,24 +124,31 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { meetingDTO.setMaxParticipants(10); } - // 8. 插入数据库 + if (meetingDTO.getAdvance() == null) { + meetingDTO.setAdvance(5); // 默认提前5分钟可入会 + } + + // 6. 插入数据库 int rows = videoMeetingMapper.insertVideoMeeting(meetingDTO); if (rows > 0) { - logger.info("视频会议创建成功: meetingId={}, jitsiRoomName={}", - meetingId, jitsiRoomName); + logger.info("视频会议预约创建成功: meetingId={}, jitsiRoomName={}, startTime={}, endTime={}", + meetingId, jitsiRoomName, meetingDTO.getStartTime(), meetingDTO.getEndTime()); - // 9. 返回VO + // 7. 发送会议通知消息到聊天室(内容为meetingId而非URL) + sendMeetingNotification(meetingDTO, userName); + + // 8. 返回VO VideoMeetingVO meetingVO = new VideoMeetingVO(); BeanUtils.copyProperties(meetingDTO, meetingVO); - return ResultDomain.success("创建会议成功", meetingVO); + return ResultDomain.success("创建会议预约成功", meetingVO); } else { logger.error("插入会议记录失败: meetingId={}", meetingId); - return ResultDomain.failure("创建会议失败"); + return ResultDomain.failure("创建会议预约失败"); } } catch (Exception e) { - logger.error("创建视频会议异常: roomId={}, error={}", + logger.error("创建视频会议预约异常: roomId={}, error={}", meetingDTO.getRoomId(), e.getMessage(), e); - return ResultDomain.failure("创建会议失败: " + e.getMessage()); + return ResultDomain.failure("创建会议预约失败: " + e.getMessage()); } } @@ -195,6 +213,7 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { } @Override + @Transactional public ResultDomain generateUserMeetingUrl(String meetingId, String userId) { logger.info("生成用户专属会议URL: meetingId={}, userId={}", meetingId, userId); @@ -218,23 +237,96 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { return ResultDomain.failure("您无权访问此会议"); } - // 3. 获取用户信息 + // 3. 检查会议时间窗口(仅对scheduled状态的会议检查) + if ("scheduled".equals(meeting.getStatus())) { + Date now = new Date(); + + // 计算提前入会时间点(开始时间 - advance 分钟) + Calendar calendar = Calendar.getInstance(); + calendar.setTime(meeting.getStartTime()); + calendar.add(Calendar.MINUTE, -meeting.getAdvance()); + Date advanceTime = calendar.getTime(); + + // 检查当前时间是否在允许入会的时间窗口内 + if (now.before(advanceTime)) { + logger.warn("会议未到入会时间: meetingId={}, 当前时间={}, 提前入会时间={}", + meetingId, now, advanceTime); + return ResultDomain.failure("会议未到入会时间,请在 " + advanceTime + " 之后加入"); + } + + if (now.after(meeting.getEndTime())) { + logger.warn("会议已结束: meetingId={}, 当前时间={}, 结束时间={}", + meetingId, now, meeting.getEndTime()); + return ResultDomain.failure("会议已结束"); + } + + // 4. 使用ReentrantLock进行双检锁:首次用户入会时创建Jitsi会议室 + // 获取或创建该会议的锁对象 + ReentrantLock lock = meetingLocks.computeIfAbsent(meetingId, k -> new ReentrantLock()); + + logger.info("尝试获取会议创建锁: meetingId={}", meetingId); + lock.lock(); // 阻塞等待获取锁 + try { + logger.info("成功获取会议创建锁: meetingId={}, userId={}", meetingId, userId); + + // 双重检查:再次查询数据库确认会议状态(防止其他线程已创建) + List recheck = videoMeetingMapper.selectVideoMeetingList(filter); + if (recheck != null && !recheck.isEmpty()) { + VideoMeetingVO recheckMeeting = recheck.get(0); + + if ("scheduled".equals(recheckMeeting.getStatus())) { + logger.info("首次创建Jitsi会议室: meetingId={}", meetingId); + + // 更新会议状态为进行中 + TbVideoMeetingDTO updateDTO = new TbVideoMeetingDTO(); + updateDTO.setMeetingId(meetingId); + updateDTO.setStatus("ongoing"); + updateDTO.setActualStartTime(new Date()); + + int rows = videoMeetingMapper.updateVideoMeeting(updateDTO); + if (rows > 0) { + logger.info("Jitsi会议室创建成功,会议状态已更新: meetingId={}", meetingId); + meeting.setStatus("ongoing"); + meeting.setActualStartTime(new Date()); + } else { + logger.error("更新会议状态失败: meetingId={}", meetingId); + return ResultDomain.failure("创建会议失败"); + } + } else { + logger.info("会议已被其他用户创建: meetingId={}, status={}", + meetingId, recheckMeeting.getStatus()); + meeting.setStatus(recheckMeeting.getStatus()); + meeting.setActualStartTime(recheckMeeting.getActualStartTime()); + } + } + } finally { + lock.unlock(); + logger.info("释放会议创建锁: meetingId={}", meetingId); + + // 清理锁对象:如果没有其他线程在等待,则移除锁 + if (!lock.hasQueuedThreads()) { + meetingLocks.remove(meetingId); + logger.debug("清理会议锁对象: meetingId={}", meetingId); + } + } + } + + // 5. 获取用户信息 TbChatRoomMemberDTO memberFilter = new TbChatRoomMemberDTO(); memberFilter.setRoomId(meeting.getRoomId()); memberFilter.setUserId(userId); List members = chatRoomMemberMapper.selectChatRoomMemberList(memberFilter); String userName = "用户"; - boolean isModerator = false; + // 会议创建人才是主持人 + boolean isModerator = userId.equals(meeting.getCreator()); if (members != null && !members.isEmpty()) { ChatMemberVO member = members.get(0); userName = member.getUserName(); - // 客服人员设为主持人 - isModerator = "agent".equals(member.getUserType()); } - // 4. 生成用户专属JWT Token + // 6. 生成用户专属JWT Token String userJwtToken = jitsiTokenService.generateJwtToken( meeting.getJitsiRoomName(), userId, @@ -242,18 +334,19 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { isModerator ); - // 5. 构建用户专属iframe URL + // 7. 构建用户专属iframe URL String userIframeUrl = jitsiTokenService.buildIframeUrl( meeting.getJitsiRoomName(), userJwtToken, meeting.getConfig() ); - // 6. 更新VO + // 8. 更新VO meeting.setJwtToken(userJwtToken); meeting.setIframeUrl(userIframeUrl); - logger.info("生成用户专属会议URL成功: meetingId={}, userId={}", meetingId, userId); + logger.info("生成用户专属会议URL成功: meetingId={}, userId={}, status={}", + meetingId, userId, meeting.getStatus()); return ResultDomain.success("生成用户专属会议URL成功", meeting); } catch (Exception e) { logger.error("生成用户专属会议URL异常: meetingId={}, error={}", meetingId, e.getMessage(), e); @@ -383,4 +476,62 @@ public class VideoMeetingServiceImpl implements VideoMeetingService { return false; } } + + /** + * 发送会议通知消息到聊天室 + * @param meetingDTO 会议信息 + * @param creatorName 创建者名称 + */ + private void sendMeetingNotification(TbVideoMeetingDTO meetingDTO, String creatorName) { + logger.info("发送会议通知消息: roomId={}, meetingId={}", + meetingDTO.getRoomId(), meetingDTO.getMeetingId()); + + // 构建消息内容 + TbChatRoomMessageDTO message = new TbChatRoomMessageDTO(); + message.setMessageId(IdUtil.generateUUID()); + message.setRoomId(meetingDTO.getRoomId()); + message.setSenderId(meetingDTO.getCreator()); + message.setSenderType(meetingDTO.getCreatorType()); + message.setSenderName(creatorName); + message.setMessageType("meet"); // 会议类型消息 + message.setContent(meetingDTO.getMeetingId()); // 会议ID作为内容(前端根据ID查询会议详情) + message.setStatus("sent"); + message.setReadCount(0); + message.setSendTime(new Date()); + + // 构建扩展信息(会议详情) + JSONObject contentExtra = new JSONObject(); + contentExtra.put("meetingId", meetingDTO.getMeetingId()); + contentExtra.put("meetingName", meetingDTO.getMeetingName()); + contentExtra.put("jitsiRoomName", meetingDTO.getJitsiRoomName()); + contentExtra.put("startTime", meetingDTO.getStartTime()); + contentExtra.put("endTime", meetingDTO.getEndTime()); + contentExtra.put("advance", meetingDTO.getAdvance()); + contentExtra.put("maxParticipants", meetingDTO.getMaxParticipants()); + contentExtra.put("creatorName", creatorName); + contentExtra.put("workcaseId", meetingDTO.getWorkcaseId()); + contentExtra.put("status", meetingDTO.getStatus()); + message.setContentExtra(contentExtra); + + // 发送消息 + ResultDomain sendResult = chatRoomService.sendMessage(message); + if (sendResult.getSuccess()) { + logger.info("会议通知消息发送成功: messageId={}", message.getMessageId()); + } else { + logger.warn("会议通知消息发送失败: {}", sendResult.getMessage()); + } + } + + /** + * 检查时间是否冲突 + * @param start1 时间段1开始时间 + * @param end1 时间段1结束时间 + * @param start2 时间段2开始时间 + * @param end2 时间段2结束时间 + * @return 是否冲突 + */ + private boolean isTimeConflict(Date start1, Date end1, Date start2, Date end2) { + // 时间段1的结束时间 > 时间段2的开始时间 AND 时间段1的开始时间 < 时间段2的结束时间 + return end1.after(start2) && start1.before(end2); + } } diff --git a/urbanLifelineServ/workcase/src/main/resources/application-dev.yml b/urbanLifelineServ/workcase/src/main/resources/application-dev.yml index 8e568254..3768f88f 100644 --- a/urbanLifelineServ/workcase/src/main/resources/application-dev.yml +++ b/urbanLifelineServ/workcase/src/main/resources/application-dev.yml @@ -92,4 +92,20 @@ logging: console: UTF-8 file: UTF-8 level: - org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE \ No newline at end of file + org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping: TRACE + +# ================== Jitsi Meet 视频会议配置 ================== +jitsi: + app: + # 应用ID(必须与Docker配置中的JWT_APP_ID一致) + id: urbanLifeline + # JWT密钥(必须与Docker配置中的JWT_APP_SECRET一致) + # 警告:生产环境请修改为强随机字符串,并妥善保管 + # 注意:HS256算法要求密钥长度至少32字节(256 bits) + secret: urbanLifeline-jitsi-secret-key-2025-production-safe-hs256 + server: + # Jitsi Meet服务器地址(Docker部署在本地8280端口) + url: http://192.168.0.253:8280 + token: + # JWT Token有效期(毫秒)- 默认2小时 + expiration: 7200000 \ No newline at end of file diff --git a/urbanLifelineServ/workcase/src/main/resources/mapper/TbChatMessageMapper.xml b/urbanLifelineServ/workcase/src/main/resources/mapper/TbChatMessageMapper.xml index 8e91cd1a..dd2ced13 100644 --- a/urbanLifelineServ/workcase/src/main/resources/mapper/TbChatMessageMapper.xml +++ b/urbanLifelineServ/workcase/src/main/resources/mapper/TbChatMessageMapper.xml @@ -12,7 +12,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -66,7 +66,7 @@ #{optsn}, #{messageId}, #{roomId}, #{senderId}, #{senderType}, #{senderName}, #{content}, #{creator} , #{messageType} , #{files, typeHandler=org.xyzh.common.jdbc.handler.StringArrayTypeHandler} - , #{contentExtra, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} + , #{contentExtra, typeHandler=org.xyzh.common.jdbc.handler.FastJson2TypeHandler}::jsonb , #{replyToMsgId} , #{isAiMessage} , #{aiMessageId} diff --git a/urbanLifelineServ/workcase/src/main/resources/mapper/TbVideoMeetingMapper.xml b/urbanLifelineServ/workcase/src/main/resources/mapper/TbVideoMeetingMapper.xml index 4861b0b8..1d3a6f72 100644 --- a/urbanLifelineServ/workcase/src/main/resources/mapper/TbVideoMeetingMapper.xml +++ b/urbanLifelineServ/workcase/src/main/resources/mapper/TbVideoMeetingMapper.xml @@ -9,21 +9,24 @@ + - + - - + + + + + - @@ -37,17 +40,20 @@ + - - - + + + + + @@ -59,29 +65,38 @@ - meeting_id, optsn, room_id, workcase_id, meeting_name, meeting_password, jwt_token, - jitsi_room_name, jitsi_server_url, status, creator_id, creator_type, creator_name, - participant_count, max_participants, start_time, end_time, duration_seconds, iframe_url, + meeting_id, optsn, room_id, workcase_id, meeting_name, meeting_password, description, jwt_token, + jitsi_room_name, jitsi_server_url, status, creator_type, creator_name, + participant_count, max_participants, start_time, end_time, advance, + actual_start_time, actual_end_time, duration_seconds, iframe_url, config, creator, create_time, update_time, delete_time, deleted INSERT INTO workcase.tb_video_meeting ( - optsn, meeting_id, room_id, workcase_id, meeting_name, jitsi_room_name, creator_id, creator_type, creator_name, creator + optsn, meeting_id, room_id, workcase_id, meeting_name, jitsi_room_name, creator_type, creator_name, creator , meeting_password + , description , jwt_token , jitsi_server_url , status , max_participants + , start_time + , end_time + , advance , iframe_url , config ) VALUES ( - #{optsn}, #{meetingId}, #{roomId}, #{workcaseId}, #{meetingName}, #{jitsiRoomName}, #{creatorId}, #{creatorType}, #{creatorName}, #{creator} + #{optsn}, #{meetingId}, #{roomId}, #{workcaseId}, #{meetingName}, #{jitsiRoomName}, #{creatorType}, #{creatorName}, #{creator} , #{meetingPassword} + , #{description} , #{jwtToken} , #{jitsiServerUrl} , #{status} , #{maxParticipants} + , #{startTime} + , #{endTime} + , #{advance} , #{iframeUrl} , #{config, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} ) @@ -92,11 +107,15 @@ meeting_name = #{meetingName}, meeting_password = #{meetingPassword}, + description = #{description}, jwt_token = #{jwtToken}, status = #{status}, participant_count = #{participantCount}, - start_time = #{actualStartTime}, - end_time = #{actualEndTime}, + start_time = #{startTime}, + end_time = #{endTime}, + advance = #{advance}, + actual_start_time = #{actualStartTime}, + actual_end_time = #{actualEndTime}, duration_seconds = #{durationSeconds}, iframe_url = #{iframeUrl}, config = #{config, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, @@ -126,7 +145,7 @@ AND workcase_id = #{filter.workcaseId} AND meeting_name LIKE CONCAT('%', #{filter.meetingName}, '%') AND status = #{filter.status} - AND creator_id = #{filter.creatorId} + AND creator = #{filter.creator} AND creator_type = #{filter.creatorType} AND deleted = false @@ -142,7 +161,7 @@ AND workcase_id = #{filter.workcaseId} AND meeting_name LIKE CONCAT('%', #{filter.meetingName}, '%') AND status = #{filter.status} - AND creator_id = #{filter.creatorId} + AND creator = #{filter.creator} AND creator_type = #{filter.creatorType} AND deleted = false @@ -159,7 +178,7 @@ AND workcase_id = #{filter.workcaseId} AND meeting_name LIKE CONCAT('%', #{filter.meetingName}, '%') AND status = #{filter.status} - AND creator_id = #{filter.creatorId} + AND creator = #{filter.creator} AND creator_type = #{filter.creatorType} AND deleted = false diff --git a/urbanLifelineServ/workcase/工单+Jitsi Meet技术方案.md b/urbanLifelineServ/workcase/工单+Jitsi Meet技术方案.md index f9ba0f82..7c558ae2 100644 --- a/urbanLifelineServ/workcase/工单+Jitsi Meet技术方案.md +++ b/urbanLifelineServ/workcase/工单+Jitsi Meet技术方案.md @@ -154,7 +154,6 @@ jwt_token -- JWT Token(身份验证) jitsi_room_name -- Jitsi房间名(格式:workcase_{workcase_id}_{timestamp}) jitsi_server_url -- Jitsi服务器地址(默认:https://meet.jit.si) status -- 状态:scheduled ongoing ended cancelled -creator_id -- 创建者ID creator_type -- 创建者类型:guest-来客 agent-客服 creator_name -- 创建者名称 participant_count -- 参与人数 diff --git a/urbanLifelineWeb/packages/workcase/src/api/workcase/meeting.ts b/urbanLifelineWeb/packages/workcase/src/api/workcase/meeting.ts deleted file mode 100644 index c207277d..00000000 --- a/urbanLifelineWeb/packages/workcase/src/api/workcase/meeting.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { http } from '@/utils/http' - -/** - * 创建视频会议参数 - */ -export interface CreateMeetingParams { - roomId: string - workcaseId?: string - meetingName: string - maxParticipants?: number -} - -/** - * 视频会议VO - */ -export interface VideoMeetingVO { - meetingId: string - roomId: string - workcaseId?: string - meetingName: string - meetingPassword?: string - jwtToken: string - jitsiRoomName: string - jitsiServerUrl: string - status: string - creatorId: string - creatorType: string - creatorName: string - participantCount: number - maxParticipants: number - actualStartTime?: string - actualEndTime?: string - durationSeconds?: number - durationFormatted?: string - iframeUrl: string - config?: any -} - -/** - * 创建视频会议 - */ -export const createVideoMeeting = (params: CreateMeetingParams) => { - return http.post('/workcase/chat/meeting/create', params) -} - -/** - * 获取会议信息 - */ -export const getMeetingInfo = (meetingId: string) => { - return http.get(`/workcase/chat/meeting/${meetingId}`) -} - -/** - * 获取聊天室活跃会议 - */ -export const getActiveMeeting = (roomId: string) => { - return http.get(`/workcase/chat/meeting/room/${roomId}/active`) -} - -/** - * 加入会议(生成用户专属JWT) - */ -export const joinMeeting = (meetingId: string) => { - return http.post(`/workcase/chat/meeting/${meetingId}/join`) -} - -/** - * 开始会议 - */ -export const startVideoMeeting = (meetingId: string) => { - return http.post(`/workcase/chat/meeting/${meetingId}/start`) -} - -/** - * 结束会议 - */ -export const endVideoMeeting = (meetingId: string) => { - return http.post(`/workcase/chat/meeting/${meetingId}/end`) -} diff --git a/urbanLifelineWeb/packages/workcase/src/api/workcase/workcaseChat.ts b/urbanLifelineWeb/packages/workcase/src/api/workcase/workcaseChat.ts index 3947a02c..7c358bf3 100644 --- a/urbanLifelineWeb/packages/workcase/src/api/workcase/workcaseChat.ts +++ b/urbanLifelineWeb/packages/workcase/src/api/workcase/workcaseChat.ts @@ -6,10 +6,12 @@ import type { TbChatRoomMessageDTO, TbCustomerServiceDTO, TbWordCloudDTO, + TbVideoMeetingDTO, ChatRoomVO, ChatMemberVO, ChatRoomMessageVO, - CustomerServiceVO + CustomerServiceVO, + VideoMeetingVO } from '@/types/workcase' /** @@ -220,5 +222,55 @@ export const workcaseChatAPI = { async getWordCloudPage(pageRequest: PageRequest): Promise> { const response = await api.post(`${this.baseUrl}/wordcloud/page`, pageRequest) return response.data + }, + + // ====================== 视频会议管理(Jitsi Meet) ====================== + + /** + * 创建视频会议 + */ + async createVideoMeeting(meeting: TbVideoMeetingDTO): Promise> { + const response = await api.post(`${this.baseUrl}/meeting/create`, meeting) + return response.data + }, + + /** + * 获取会议信息 + */ + async getVideoMeetingInfo(meetingId: string): Promise> { + const response = await api.get(`${this.baseUrl}/meeting/${meetingId}`) + return response.data + }, + + /** + * 获取聊天室活跃会议 + */ + async getActiveMeeting(roomId: string): Promise> { + const response = await api.get(`${this.baseUrl}/meeting/room/${roomId}/active`) + return response.data + }, + + /** + * 加入会议(生成用户专属JWT) + */ + async joinVideoMeeting(meetingId: string): Promise> { + const response = await api.post(`${this.baseUrl}/meeting/${meetingId}/join`) + return response.data + }, + + /** + * 开始会议 + */ + async startVideoMeeting(meetingId: string): Promise> { + const response = await api.post(`${this.baseUrl}/meeting/${meetingId}/start`) + return response.data + }, + + /** + * 结束会议 + */ + async endVideoMeeting(meetingId: string): Promise> { + const response = await api.post(`${this.baseUrl}/meeting/${meetingId}/end`) + return response.data } } diff --git a/urbanLifelineWeb/packages/workcase/src/components/chatRoom/index.ts b/urbanLifelineWeb/packages/workcase/src/components/chatRoom/index.ts deleted file mode 100644 index cf0eb282..00000000 --- a/urbanLifelineWeb/packages/workcase/src/components/chatRoom/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ChatRoom } from './chatRoom/ChatRoom.vue'; \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase/src/components/index.ts b/urbanLifelineWeb/packages/workcase/src/components/index.ts index 766cd7ca..e69de29b 100644 --- a/urbanLifelineWeb/packages/workcase/src/components/index.ts +++ b/urbanLifelineWeb/packages/workcase/src/components/index.ts @@ -1 +0,0 @@ -export * from './chatRoom' \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase/src/types/workcase/chatRoom.ts b/urbanLifelineWeb/packages/workcase/src/types/workcase/chatRoom.ts index 6d179a76..07fcee7e 100644 --- a/urbanLifelineWeb/packages/workcase/src/types/workcase/chatRoom.ts +++ b/urbanLifelineWeb/packages/workcase/src/types/workcase/chatRoom.ts @@ -71,6 +71,7 @@ export interface TbVideoMeetingDTO extends BaseDTO { workcaseId?: string meetingName?: string meetingPassword?: string + description?: string jwtToken?: string jitsiRoomName?: string jitsiServerUrl?: string @@ -80,6 +81,12 @@ export interface TbVideoMeetingDTO extends BaseDTO { creatorName?: string participantCount?: number maxParticipants?: number + /** 预定开始时间 */ + startTime?: string + /** 预定结束时间 */ + endTime?: string + /** 提前入会时间(分钟) */ + advance?: number actualStartTime?: string actualEndTime?: string durationSeconds?: number @@ -223,17 +230,23 @@ export interface VideoMeetingVO extends BaseVO { workcaseId?: string meetingName?: string meetingPassword?: string + description?: string jwtToken?: string jitsiRoomName?: string jitsiServerUrl?: string status?: string - creatorId?: string creatorType?: string creatorName?: string participantCount?: number maxParticipants?: number - startTime?: string + // 预定开始时间 + startTime?: string + // 预定结束时间 endTime?: string + // 提前入会时间(分钟) + advance?: number + actualStartTime?: string + actualEndTime?: string durationSeconds?: number durationFormatted?: string iframeUrl?: string @@ -279,6 +292,9 @@ export interface SendMessageParam { export interface CreateMeetingParam { roomId: string workcaseId: string + startTime: string + endTime: string + advance?: number meetingName?: string meetingPassword?: string maxParticipants?: number diff --git a/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/ChatRoomView.vue b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/ChatRoomView.vue index b57dc7cc..51be90d6 100644 --- a/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/ChatRoomView.vue +++ b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/ChatRoomView.vue @@ -89,6 +89,8 @@ ref="chatRoomRef" :messages="messages" :current-user-id="loginDomain.user.userId" + :room-id="currentRoomId" + :workcase-id="currentWorkcaseId" :room-name="currentRoom?.roomName" :meeting-url="currentMeetingUrl" :show-meeting="showMeetingIframe" @@ -163,7 +165,7 @@ import { ref, computed, onMounted, onUnmounted, watch, nextTick } from 'vue' import { ElButton, ElInput, ElDialog, ElMessage } from 'element-plus' import { Search, FileText, MessageSquare, MessageCircle, ChevronLeft, ChevronRight } from 'lucide-vue-next' -import { ChatRoom } from '@/components/chatRoom' +import ChatRoom from './chatRoom/ChatRoom.vue' import WorkcaseDetail from '@/views/public/workcase/WorkcaseDetail/WorkcaseDetail.vue' import { workcaseChatAPI } from '@/api/workcase' import { fileAPI } from 'shared/api/file' @@ -248,6 +250,7 @@ const showWorkcaseCreator = ref(false) // Jitsi Meet会议相关 const currentMeetingUrl = ref('') const showMeetingIframe = ref(false) +const currentMeetingId = ref(null) // ChatRoom组件引用 const chatRoomRef = ref | null>(null) @@ -512,10 +515,50 @@ const onWorkcaseCreated = (workcaseId: string) => { const startMeeting = async () => { if (!currentRoomId.value) return - // TODO: 调用后端API创建Jitsi会议 - const meetingId = 'meeting-' + currentRoomId.value + '-' + Date.now() - currentMeetingUrl.value = `https://meet.jit.si/${meetingId}` - showMeetingIframe.value = true + try { + // 先检查是否有活跃会议 + const activeResult = await workcaseChatAPI.getActiveMeeting(currentRoomId.value) + if (activeResult.success && activeResult.data) { + // 已有活跃会议,直接加入 + currentMeetingId.value = activeResult.data.meetingId! + const joinResult = await workcaseChatAPI.joinVideoMeeting(currentMeetingId.value!) + if (joinResult.success && joinResult.data?.iframeUrl) { + currentMeetingUrl.value = joinResult.data.iframeUrl + showMeetingIframe.value = true + } else { + ElMessage.error(joinResult.message || '加入会议失败') + } + return + } + + // 没有活跃会议,创建新会议 + const createResult = await workcaseChatAPI.createVideoMeeting({ + roomId: currentRoomId.value, + meetingName: currentRoom.value?.roomName || '视频会议' + }) + + if (createResult.success && createResult.data) { + currentMeetingId.value = createResult.data.meetingId! + + // 开始会议 + await workcaseChatAPI.startVideoMeeting(currentMeetingId.value!) + + // 加入会议获取iframe URL + const joinResult = await workcaseChatAPI.joinVideoMeeting(currentMeetingId.value!) + if (joinResult.success && joinResult.data?.iframeUrl) { + currentMeetingUrl.value = joinResult.data.iframeUrl + showMeetingIframe.value = true + ElMessage.success('会议已创建') + } else { + ElMessage.error(joinResult.message || '获取会议链接失败') + } + } else { + ElMessage.error(createResult.message || '创建会议失败') + } + } catch (error) { + console.error('发起会议失败:', error) + ElMessage.error('发起会议失败') + } } // 滚动聊天消息到底部 diff --git a/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.scss b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.scss new file mode 100644 index 00000000..9554ea19 --- /dev/null +++ b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.scss @@ -0,0 +1,100 @@ +.meeting-card { + padding: 12px 16px; + border: 1px solid #e4e7ed; + border-radius: 8px; + background-color: #fff; + transition: all 0.3s; + + &:hover { + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + } + + &--scheduled { + border-left: 4px solid #409eff; + } + + &--ongoing { + border-left: 4px solid #67c23a; + } + + &--ended { + border-left: 4px solid #909399; + background-color: #f5f7fa; + } + + .meeting-card-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; + + .meeting-card-title { + font-size: 16px; + font-weight: 600; + color: #303133; + flex: 1; + } + + .meeting-card-status { + .status-badge { + display: inline-block; + padding: 2px 8px; + border-radius: 4px; + font-size: 12px; + font-weight: 500; + } + + .status-scheduled { + background-color: #ecf5ff; + color: #409eff; + } + + .status-ongoing { + background-color: #f0f9ff; + color: #67c23a; + } + + .status-ended { + background-color: #f4f4f5; + color: #909399; + } + } + } + + .meeting-card-time { + display: flex; + flex-direction: column; + gap: 4px; + margin-bottom: 12px; + font-size: 14px; + color: #606266; + + div { + line-height: 1.5; + } + } + + .meeting-card-content { + margin-bottom: 12px; + + .meeting-card-desc { + font-size: 14px; + color: #909399; + line-height: 1.5; + } + } + + .meeting-card-action { + display: flex; + justify-content: space-between; + align-items: center; + padding-top: 12px; + border-top: 1px solid #ebeef5; + + .meeting-card-countdown { + font-size: 14px; + color: #409eff; + font-weight: 500; + } + } +} diff --git a/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.vue b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.vue new file mode 100644 index 00000000..05bd99e7 --- /dev/null +++ b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCard/MeetingCard.vue @@ -0,0 +1,195 @@ + + + + \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCreate/MeetingCreate.vue b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCreate/MeetingCreate.vue new file mode 100644 index 00000000..ac9102a3 --- /dev/null +++ b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/MeetingCreate/MeetingCreate.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/urbanLifelineWeb/packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.scss b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/chatRoom/ChatRoom.scss similarity index 78% rename from urbanLifelineWeb/packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.scss rename to urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/chatRoom/ChatRoom.scss index 7b761249..6673bd2d 100644 --- a/urbanLifelineWeb/packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.scss +++ b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/chatRoom/ChatRoom.scss @@ -469,3 +469,136 @@ $brand-color-hover: #004488; line-height: 1.6; } } + + +// ==================== 视频会议弹窗 ==================== +.meeting-modal-mask { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + backdrop-filter: blur(4px); +} + +.meeting-modal { + width: 90vw; + max-width: 1200px; + height: 80vh; + background: #fff; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + display: flex; + flex-direction: column; + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: scale(0.95); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.meeting-modal-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 16px 20px; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + flex-shrink: 0; +} + +.meeting-modal-title { + display: flex; + align-items: center; + gap: 8px; + font-size: 16px; + font-weight: 600; +} + +.meeting-modal-actions { + display: flex; + align-items: center; + gap: 8px; +} + +.minimize-btn, +.meeting-modal .close-meeting-btn { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + background: rgba(255, 255, 255, 0.2); + border: none; + border-radius: 8px; + color: white; + cursor: pointer; + transition: all 0.2s; + + &:hover { + background: rgba(255, 255, 255, 0.3); + } +} + +.meeting-modal .close-meeting-btn:hover { + background: rgba(239, 68, 68, 0.8); +} + +.meeting-modal-body { + flex: 1; + overflow: hidden; + + .meeting-iframe { + width: 100%; + height: 100%; + border: none; + } +} + +// ==================== 最小化悬浮按钮 ==================== +.meeting-float-btn { + position: fixed; + bottom: 24px; + right: 24px; + display: flex; + align-items: center; + gap: 8px; + padding: 12px 20px; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border-radius: 50px; + box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4); + cursor: pointer; + z-index: 999; + font-size: 14px; + font-weight: 500; + transition: all 0.3s; + animation: floatPulse 2s infinite; + + &:hover { + transform: scale(1.05); + box-shadow: 0 6px 24px rgba(102, 126, 234, 0.5); + } +} + +@keyframes floatPulse { + 0%, 100% { + box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4); + } + 50% { + box-shadow: 0 4px 30px rgba(102, 126, 234, 0.6); + } +} diff --git a/urbanLifelineWeb/packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.vue b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/chatRoom/ChatRoom.vue similarity index 61% rename from urbanLifelineWeb/packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.vue rename to urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/chatRoom/ChatRoom.vue index 7f65cb91..ac308ce5 100644 --- a/urbanLifelineWeb/packages/workcase/src/components/chatRoom/chatRoom/ChatRoom.vue +++ b/urbanLifelineWeb/packages/workcase/src/views/public/ChatRoom/chatRoom/ChatRoom.vue @@ -15,18 +15,6 @@
加载中...
没有更多消息了
- -
-
- 视频会议进行中 - -
- -
-
-
-
+ + - -
+ +
@@ -132,15 +129,56 @@
+ + + + + + +
+
+
+ + +
+ + +
+
+
+ +
+
+
+
+ + +
+
+ + diff --git a/urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.scss b/urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.scss new file mode 100644 index 00000000..fcd152a1 --- /dev/null +++ b/urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.scss @@ -0,0 +1,119 @@ +/* UniApp +/SCSSLW (Us7 */ + +.meeting-card { + padding: 24rpx 32rpx; + border: 2rpx solid #e4e7ed; + border-radius: 16rpx; + background-color: #fff; + width: 100%; + box-sizing: border-box; +} + +.meeting-card--scheduled { + border-left: 8rpx solid #409eff; +} + +.meeting-card--ongoing { + border-left: 8rpx solid #67c23a; +} + +.meeting-card--ended { + border-left: 8rpx solid #909399; + background-color: #f5f7fa; +} + +.meeting-card-header { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + margin-bottom: 24rpx; +} + +.meeting-card-title { + font-size: 32rpx; + font-weight: 600; + color: #303133; + flex: 1; +} + +.meeting-card-status { + margin-left: 16rpx; +} + +.status-badge { + display: inline-block; + padding: 4rpx 16rpx; + border-radius: 8rpx; + font-size: 24rpx; + font-weight: 500; +} + +.status-scheduled { + background-color: #ecf5ff; + color: #409eff; +} + +.status-ongoing { + background-color: #f0f9ff; + color: #67c23a; +} + +.status-ended { + background-color: #f4f4f5; + color: #909399; +} + +.meeting-card-time { + display: flex; + flex-direction: column; + margin-bottom: 24rpx; + font-size: 28rpx; + color: #606266; +} + +.meeting-card-time text { + line-height: 1.5; + margin-bottom: 8rpx; +} + +.meeting-card-content { + margin-bottom: 24rpx; +} + +.meeting-card-desc { + font-size: 28rpx; + color: #909399; + line-height: 1.5; +} + +.meeting-card-action { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding-top: 24rpx; + border-top: 2rpx solid #ebeef5; +} + +.meeting-card-countdown { + font-size: 28rpx; + color: #409eff; + font-weight: 500; +} + +.meeting-card-action button { + padding: 8rpx 24rpx; + font-size: 28rpx; + min-width: 160rpx; + border-radius: 8rpx; +} + +.meeting-card-action button[disabled] { + opacity: 0.6; +} + +.meeting-card-action button text { + font-size: 28rpx; +} diff --git a/urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.uvue b/urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.uvue new file mode 100644 index 00000000..ccf84253 --- /dev/null +++ b/urbanLifelineWeb/packages/workcase_wechat/pages/meeting/meetingCard/MeetingCard.uvue @@ -0,0 +1,214 @@ + + + \ No newline at end of file diff --git a/urbanLifelineWeb/packages/workcase_wechat/types/workcase/chatRoom.ts b/urbanLifelineWeb/packages/workcase_wechat/types/workcase/chatRoom.ts index 0c1aba02..fc1270cb 100644 --- a/urbanLifelineWeb/packages/workcase_wechat/types/workcase/chatRoom.ts +++ b/urbanLifelineWeb/packages/workcase_wechat/types/workcase/chatRoom.ts @@ -72,6 +72,7 @@ export interface TbVideoMeetingDTO extends BaseDTO { workcaseId?: string meetingName?: string meetingPassword?: string + description?: string jwtToken?: string jitsiRoomName?: string jitsiServerUrl?: string @@ -81,6 +82,12 @@ export interface TbVideoMeetingDTO extends BaseDTO { creatorName?: string participantCount?: number maxParticipants?: number + /** 预定开始时间 */ + startTime?: string + /** 预定结束时间 */ + endTime?: string + /** 提前入会时间(分钟) */ + advance?: number actualStartTime?: string actualEndTime?: string durationSeconds?: number @@ -214,6 +221,10 @@ export interface ChatMemberVO extends BaseVO { leaveTime?: string } +/** + * 视频会议VO + * 用于前端展示Jitsi Meet会议信息 + */ /** * 视频会议VO * 用于前端展示Jitsi Meet会议信息 @@ -224,17 +235,23 @@ export interface VideoMeetingVO extends BaseVO { workcaseId?: string meetingName?: string meetingPassword?: string + description?: string jwtToken?: string jitsiRoomName?: string jitsiServerUrl?: string status?: string - creatorId?: string creatorType?: string creatorName?: string participantCount?: number maxParticipants?: number - startTime?: string + // 预定开始时间 + startTime?: string + // 预定结束时间 endTime?: string + // 提前入会时间(分钟) + advance?: number + actualStartTime?: string + actualEndTime?: string durationSeconds?: number durationFormatted?: string iframeUrl?: string @@ -280,6 +297,9 @@ export interface SendMessageParam { export interface CreateMeetingParam { roomId: string workcaseId: string + startTime: string + endTime: string + advance?: number meetingName?: string meetingPassword?: string maxParticipants?: number