From 3fef52081abb21e6581275e52aa513d253143064 Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Mon, 12 Jan 2026 10:23:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=88=E5=B9=B6=E5=BA=94=E7=94=A8->?= =?UTF-8?q?=E7=94=B5=E5=AD=90=E5=90=8D=E7=89=87->=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=8F=B7=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/addon/personnel/config/menu_shop.php | 39 +- src/addon/personnel/data/install.sql | 37 +- src/addon/personnel/data/uninstall.sql | 6 + .../data/upgrade_add_channel_fields.sql | 35 ++ src/addon/personnel/model/Enterprise.php | 103 ++++ src/addon/personnel/model/Personnel.php | 50 +- .../personnel/shop/controller/Enterprise.php | 112 ++++- .../shop/view/enterprise/channel/edit.html | 452 ++++++++++++++++++ .../shop/view/enterprise/channel/lists.html | 228 +++++++++ .../personnel/shop/view/personnel/diy.html | 14 + src/addon/personnel/shop/view/public/diy.js | 5 +- .../shop/view/public/img/channel.png | Bin 0 -> 24973 bytes .../shop/view/public/img/mingpian.png | Bin 14387 -> 9574 bytes src/app/api/controller/Member.php | 4 +- 14 files changed, 1056 insertions(+), 29 deletions(-) create mode 100644 src/addon/personnel/data/upgrade_add_channel_fields.sql create mode 100644 src/addon/personnel/shop/view/enterprise/channel/edit.html create mode 100644 src/addon/personnel/shop/view/enterprise/channel/lists.html create mode 100644 src/addon/personnel/shop/view/public/img/channel.png diff --git a/src/addon/personnel/config/menu_shop.php b/src/addon/personnel/config/menu_shop.php index 1decf3c0e..5159956b0 100644 --- a/src/addon/personnel/config/menu_shop.php +++ b/src/addon/personnel/config/menu_shop.php @@ -112,13 +112,46 @@ return [ ], ] ], + [ + 'name' => 'PERSONNEL_CHANNEL_LIST', + 'title' => '视频号', + 'url' => 'personnel://shop/enterprise/channellists', + 'is_show' => 1, + 'sort' => 4, + 'child_list' => [ + [ + 'name' => 'PERSONNEL_CHANNEL_ADD', + 'title' => '添加视频号', + 'url' => 'personnel://shop/enterprise/channeladd', + 'sort' => 1, + 'is_show' => 0, + 'is_control' => 1, + ], + [ + 'name' => 'PERSONNEL_CHANNEL_EDIT', + 'title' => '编辑视频号', + 'url' => 'personnel://shop/enterprise/channeledit', + 'sort' => 1, + 'is_show' => 0, + 'is_control' => 1, + ], + [ + 'name' => 'PERSONNEL_CHANNEL_DELETE', + 'title' => '删除视频号', + 'url' => 'personnel://shop/enterprise/channeldelete', + 'sort' => 2, + 'is_show' => 0, + 'is_control' => 1, + ], + ] + ], [ 'name' => 'MESSAGE_ROOT', 'title' => '留言列表', 'url' => 'personnel://shop/personnel/message', 'is_show' => 1, - 'sort' => 4, + 'sort' => 5, 'child_list' => [ ], @@ -128,7 +161,7 @@ return [ 'title' => '电子名片', 'url' => 'personnel://shop/personnel/diy', 'is_show' => 1, - 'sort' => 5, + 'sort' => 6, 'child_list' => [ ], @@ -138,7 +171,7 @@ return [ 'title' => '设置', 'url' => 'personnel://shop/personnel/set', 'is_show' => 1, - 'sort' => 6, + 'sort' => 7, 'child_list' => [ ], diff --git a/src/addon/personnel/data/install.sql b/src/addon/personnel/data/install.sql index 22c382dd4..7a996ca29 100644 --- a/src/addon/personnel/data/install.sql +++ b/src/addon/personnel/data/install.sql @@ -1 +1,36 @@ -SET NAMES 'utf8'; \ No newline at end of file +SET NAMES 'utf8'; + +-- 创建视频号表 +CREATE TABLE IF NOT EXISTS `lucky_personnel_channel` +( + `channel_id` int unsigned NOT NULL AUTO_INCREMENT, + `site_id` int unsigned NOT NULL DEFAULT 0 COMMENT '站点ID', + `create_time` int unsigned NOT NULL DEFAULT 0 COMMENT '创建时间', + `channel_type` varchar(20) NOT NULL DEFAULT 'wechat' COMMENT '视频号类型:wechat-微信视频号,douyin-抖音,kuaishou-快手,redbook-小红书,bilibili-B站', + `channel_name` varchar(100) NOT NULL DEFAULT '' COMMENT '视频号ID', + `feed_id` varchar(100) NOT NULL DEFAULT '' COMMENT '视频号内容ID', + `feed_token` varchar(255) NOT NULL DEFAULT '' COMMENT '视频号视频的标识', + `avatar_image_type` varchar(10) NOT NULL DEFAULT 'upload' COMMENT '头像类型:upload-上传图片,url-URL', + `avatar_url` varchar(500) NOT NULL DEFAULT '' COMMENT '头像URL', + `video_title` varchar(200) NOT NULL DEFAULT '' COMMENT '视频标题', + `cover_image_type` varchar(10) NOT NULL DEFAULT 'upload' COMMENT '封面类型:upload-上传图片,url-URL', + `cover_url` varchar(500) NOT NULL DEFAULT '' COMMENT '封面URL', + `view_count` int unsigned NOT NULL DEFAULT 0 COMMENT '视频观看次数', + `show_view_count` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否显示视频观看次数:0-不显示,1-显示', + `show_follow` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否显示关注按钮:0-不显示,1-显示', + `is_show` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否显示:0-隐藏,1-显示', + `sort` int NOT NULL DEFAULT 0 COMMENT '排序,数值越小越靠前', + PRIMARY KEY (`channel_id`), + KEY `idx_site_id` (`site_id`), + KEY `idx_channel_type` (`channel_type`), + KEY `idx_is_show` (`is_show`), + KEY `idx_sort` (`sort`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='电子名片视频号资源表'; + +-- 插入视频号菜单权限(使用 IGNORE 避免重复插入报错) +INSERT IGNORE INTO `lucky_menu` (`app_module`, `addon`, `title`, `name`, `parent`, `level`, `url`, `is_show`, `sort`, `desc`, `is_icon`, `picture`, `picture_select`, `is_control`) +VALUES +('shop', 'personnel', '视频号', 'PERSONNEL_CHANNEL_LIST', 'PERSONNEL_ROOT', 4, 'personnel://shop/enterprise/channellists', 1, 4, '', 0, '', '', 1), +('shop', 'personnel', '添加视频号', 'PERSONNEL_CHANNEL_ADD', 'PERSONNEL_CHANNEL_LIST', 5, 'personnel://shop/enterprise/channeladd', 0, 1, '', 0, '', '', 1), +('shop', 'personnel', '编辑视频号', 'PERSONNEL_CHANNEL_EDIT', 'PERSONNEL_CHANNEL_LIST', 5, 'personnel://shop/enterprise/channeledit', 0, 1, '', 0, '', '', 1), +('shop', 'personnel', '删除视频号', 'PERSONNEL_CHANNEL_DELETE', 'PERSONNEL_CHANNEL_LIST', 5, 'personnel://shop/enterprise/channeldelete', 0, 2, '', 0, '', '', 1); \ No newline at end of file diff --git a/src/addon/personnel/data/uninstall.sql b/src/addon/personnel/data/uninstall.sql index 0b4cf1b2f..c14f8bb57 100644 --- a/src/addon/personnel/data/uninstall.sql +++ b/src/addon/personnel/data/uninstall.sql @@ -1 +1,7 @@ SET NAMES 'utf8'; + +-- 删除视频号菜单权限 +DELETE FROM `lucky_menu` WHERE `name` IN ('PERSONNEL_CHANNEL_LIST', 'PERSONNEL_CHANNEL_ADD', 'PERSONNEL_CHANNEL_EDIT', 'PERSONNEL_CHANNEL_DELETE'); + +-- 删除视频号表 +DROP TABLE IF EXISTS `lucky_personnel_channel`; \ No newline at end of file diff --git a/src/addon/personnel/data/upgrade_add_channel_fields.sql b/src/addon/personnel/data/upgrade_add_channel_fields.sql new file mode 100644 index 000000000..f58e16a0a --- /dev/null +++ b/src/addon/personnel/data/upgrade_add_channel_fields.sql @@ -0,0 +1,35 @@ +-- 升级脚本:为 personnel_channel 表添加新字段并优化表结构 +-- 执行时间: 2026-01-10 + +-- 1. 为 lucky_personnel_channel 表添加新字段 +ALTER TABLE `lucky_personnel_channel` +ADD COLUMN `feed_token` varchar(255) NOT NULL DEFAULT '' COMMENT '视频号视频的标识' AFTER `feed_id`, +ADD COLUMN `view_count` int unsigned NOT NULL DEFAULT 0 COMMENT '视频观看次数' AFTER `cover_url`, +ADD COLUMN `show_view_count` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否显示视频观看次数:0-不显示,1-显示' AFTER `view_count`, +ADD COLUMN `show_follow` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否显示关注按钮:0-不显示,1-显示' AFTER `show_view_count`; + +-- 2. 优化现有字段长度和类型 +ALTER TABLE `lucky_personnel_channel` +MODIFY COLUMN `channel_type` varchar(20) NOT NULL DEFAULT 'wechat' COMMENT '视频号类型:wechat-微信视频号,douyin-抖音,kuaishou-快手,redbook-小红书,bilibili-B站', +MODIFY COLUMN `channel_name` varchar(100) NOT NULL DEFAULT '' COMMENT '视频号名称', +MODIFY COLUMN `avatar_image_type` varchar(10) NOT NULL DEFAULT 'upload' COMMENT '头像类型:upload-上传图片,url-URL', +MODIFY COLUMN `avatar_url` varchar(500) NOT NULL DEFAULT '' COMMENT '头像URL', +MODIFY COLUMN `video_title` varchar(200) NOT NULL DEFAULT '' COMMENT '视频标题', +MODIFY COLUMN `feed_id` varchar(100) NOT NULL DEFAULT '' COMMENT '视频号内容ID', +MODIFY COLUMN `cover_image_type` varchar(10) NOT NULL DEFAULT 'upload' COMMENT '封面类型:upload-上传图片,url-URL', +MODIFY COLUMN `cover_url` varchar(500) NOT NULL DEFAULT '' COMMENT '封面URL', +MODIFY COLUMN `sort` int NOT NULL DEFAULT 0 COMMENT '排序,数值越小越靠前', +MODIFY COLUMN `is_show` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否显示:0-隐藏,1-显示', +MODIFY COLUMN `channel_id` int unsigned NOT NULL AUTO_INCREMENT, +MODIFY COLUMN `site_id` int unsigned NOT NULL DEFAULT 0 COMMENT '站点ID', +MODIFY COLUMN `create_time` int unsigned NOT NULL DEFAULT 0 COMMENT '创建时间'; + +-- 3. 添加索引优化查询性能 +ALTER TABLE `lucky_personnel_channel` +ADD INDEX `idx_site_id` (`site_id`), +ADD INDEX `idx_channel_type` (`channel_type`), +ADD INDEX `idx_is_show` (`is_show`), +ADD INDEX `idx_sort` (`sort`); + +-- 4. 修改表引擎为 InnoDB 和字符集为 utf8mb4 +ALTER TABLE `lucky_personnel_channel` ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/src/addon/personnel/model/Enterprise.php b/src/addon/personnel/model/Enterprise.php index 3c877a5d5..70fd166c7 100644 --- a/src/addon/personnel/model/Enterprise.php +++ b/src/addon/personnel/model/Enterprise.php @@ -264,4 +264,107 @@ class Enterprise extends BaseModel return $this->success($res); } + //视频号 + /** + * 获取视频号分页列表 + * @param array $condition + * @param number $page + * @param string $page_size + * @param string $order + * @param string $field + */ + public function getChannelPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'create_time desc', $field = '*') + { + $check_condition = array_column($condition, 2, 0); + $site_id = $check_condition['site_id'] ?? ''; + if ($site_id === '') { + return $this->error('', 'REQUEST_SITE_ID'); + } + + $list = model('personnel_channel')->pageList($condition, $field, $order, $page, $page_size); + return $this->success($list); + } + + /** + * 获取视频号列表 + * @param array $condition + * @param string $field + * @param string $order + * @param string $limit + */ + public function getChannelList($condition = [], $field = '*', $order = '', $limit = null) + { + $list = model('personnel_channel')->getList($condition, $field, $order, '', '', '', $limit); + return $this->success($list); + } + + /** + * 添加视频号 + * @param array $data + */ + public function addChannel($data) + { + $site_id = $data['site_id'] ?? ''; + if ($site_id === '') { + return $this->error('', 'REQUEST_SITE_ID'); + } + + $data['create_time'] = time(); + // 默认视频号类型为微信 + if (!isset($data['channel_type']) || empty($data['channel_type'])) { + $data['channel_type'] = 'wechat'; + } + $channel_id = model('personnel_channel')->add($data); + return $this->success($channel_id); + } + + /** + * 获取视频号信息 + * @param array $condition + * @param string $field + */ + public function getChannelInfo($condition = [], $field = '*') + { + $list = model('personnel_channel')->getInfo($condition, $field); + return $this->success($list); + } + + /** + * 修改视频号 + * @param array $data + */ + public function editChannel($data) + { + $site_id = $data['site_id'] ?? ''; + if ($site_id === '') { + return $this->error('', 'REQUEST_SITE_ID'); + } + + model('personnel_channel')->startTrans(); + try { + model('personnel_channel')->update($data, [ [ 'site_id', '=', $data[ 'site_id' ] ], [ 'channel_id', '=', $data[ 'channel_id' ] ] ]); + model('personnel_channel')->commit(); + return $this->success(); + } catch (\Exception $e) { + model('personnel_channel')->rollback(); + return $this->error('', $e->getMessage()); + } + } + + /** + * 删除视频号 + * @param array $condition + */ + public function deleteChannel($condition) + { + $check_condition = array_column($condition, 2, 0); + $site_id = $check_condition['site_id'] ?? ''; + if ($site_id === '') { + return $this->error('', 'REQUEST_SITE_ID'); + } + + $res = model('personnel_channel')->delete($condition); + return $this->success($res); + } + } \ No newline at end of file diff --git a/src/addon/personnel/model/Personnel.php b/src/addon/personnel/model/Personnel.php index bb353680c..41cb97840 100644 --- a/src/addon/personnel/model/Personnel.php +++ b/src/addon/personnel/model/Personnel.php @@ -9,8 +9,8 @@ class Personnel extends BaseModel { - - /** + + /** * 获取名片设置 * @param $site_id * @param $app_module @@ -18,16 +18,20 @@ class Personnel extends BaseModel */ public function getPersonnelSet($site_id, $app_module) { + $DEFAULT_CONFIG_VALUE = '{"is_kefu":1,"is_mp":1,"is_file":1,"is_channel":1,"is_video":1,"is_map":1}'; $config = new ConfigModel(); - $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'DIY_PERSONNEL' ] ]); - if (empty($res[ 'data' ][ 'value' ])){ - $res[ 'data' ][ 'value' ] = [ + $res = $config->getConfig([['site_id', '=', $site_id], ['app_module', '=', $app_module], ['config_key', '=', 'DIY_PERSONNEL']]); + if (empty($res['data']['value'])) { + $res['data']['value'] = [ 'personnel_bg' => '', - 'value'=>'{"is_kefu":1,"is_mp":1,"is_file":1,"is_video":1,"is_map":1}' + 'value' => $DEFAULT_CONFIG_VALUE ]; - }else{ - if(!isset($res['data']['value']['value'])) $res['data']['value']['value'] = '{"is_kefu":1,"is_mp":1,"is_file":1,"is_video":1,"is_map":1}'; + } else { + if (!isset($res['data']['value']['value'])) + $res['data']['value']['value'] = $DEFAULT_CONFIG_VALUE; } + + //public/static/img/diy_view/member_info_bg.png return $res; } @@ -42,7 +46,7 @@ class Personnel extends BaseModel public function setPersonnelSet($data, $site_id, $app_module) { $config = new ConfigModel(); - $res = $config->setConfig($data, '名片设置', 1, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', $app_module ], [ 'config_key', '=', 'DIY_PERSONNEL' ] ]); + $res = $config->setConfig($data, '名片设置', 1, [['site_id', '=', $site_id], ['app_module', '=', $app_module], ['config_key', '=', 'DIY_PERSONNEL']]); return $res; } @@ -63,9 +67,9 @@ class Personnel extends BaseModel public function getMessagePageList($condition = [], $field = true, $order = '', $page = 1, $list_rows = PAGE_LIST_ROWS, $alias = 'a', $join = []) { $data = model('personnel_message')->pageList($condition, $field, $order, $page, $list_rows, $alias, $join); - if (!empty($data[ 'list' ])) { - foreach ($data[ 'list' ] as $k => $item) { - $data[ 'list' ][ $k ][ 'createtime' ] = date('Y-m-d H:i:s',$item['createtime']); + if (!empty($data['list'])) { + foreach ($data['list'] as $k => $item) { + $data['list'][$k]['createtime'] = date('Y-m-d H:i:s', $item['createtime']); } } return $this->success($data); @@ -87,9 +91,9 @@ class Personnel extends BaseModel * 编辑人员 * @param $param */ - public function editPersonnel($condition,$data) + public function editPersonnel($condition, $data) { - $result = model('personnel')->update($condition,$data); + $result = model('personnel')->update($condition, $data); return $this->success($result); } @@ -100,13 +104,14 @@ class Personnel extends BaseModel */ public function deletePersonnel($id, $site_id) { - $info = model('personnel')->getInfo([ [ 'site_id', '=', $site_id ], [ 'id', '=', $id ] ], 'id'); - if (empty($info)) return $this->error('', '未获取到人员信息'); - $res = model('personnel')->delete([ [ 'site_id', '=', $site_id ], [ 'id', '=', $id ] ]); + $info = model('personnel')->getInfo([['site_id', '=', $site_id], ['id', '=', $id]], 'id'); + if (empty($info)) + return $this->error('', '未获取到人员信息'); + $res = model('personnel')->delete([['site_id', '=', $site_id], ['id', '=', $id]]); return $this->success($res); } - /** + /** * 获取电子名片人员列表 * @param array $condition * @param bool $field @@ -123,16 +128,17 @@ class Personnel extends BaseModel return $this->success($data); } - /** + /** * 删除留言 * @param $id * @param $site_id */ public function deleteMessage($id, $site_id) { - $info = model('personnel_message')->getInfo([ [ 'site_id', '=', $site_id ], [ 'id', '=', $id ] ], 'id'); - if (empty($info)) return $this->error('', '未获取到留言信息'); - $res = model('personnel_message')->delete([ [ 'site_id', '=', $site_id ], [ 'id', '=', $id ] ]); + $info = model('personnel_message')->getInfo([['site_id', '=', $site_id], ['id', '=', $id]], 'id'); + if (empty($info)) + return $this->error('', '未获取到留言信息'); + $res = model('personnel_message')->delete([['site_id', '=', $site_id], ['id', '=', $id]]); return $this->success($res); } } \ No newline at end of file diff --git a/src/addon/personnel/shop/controller/Enterprise.php b/src/addon/personnel/shop/controller/Enterprise.php index fb0a35253..05892feec 100644 --- a/src/addon/personnel/shop/controller/Enterprise.php +++ b/src/addon/personnel/shop/controller/Enterprise.php @@ -168,7 +168,117 @@ class Enterprise extends BaseShop if (request()->isJson()) { $video_id = input('video_id', 0); $model = new EnterpriseModel(); - return $model->deleteVideo([ [ 'video_id', '=', $video_id],['site_id','=',$this->site_id] ]); + return $model->deleteVideo([ [ 'video_id', '=', $video_id ], [ 'site_id', '=', $this->site_id ] ]); + } + } + + /***************************************视频号部分****************************************/ + /** + * 视频号列表 + */ + public function channellists(){ + if (request()->isJson()) { + $page = input('page', 1); + $page_size = input('page_size', PAGE_LIST_ROWS); + $search_text = input('search_text', ''); + $channel_type = input('channel_type', ''); + $is_show = input('is_show', ''); + $order = input('order', ''); + $condition = [ [ 'site_id', '=', $this->site_id ] ]; + if ($search_text) { + $condition[] = [ 'channel_name', 'like', '%' . $search_text . '%' ]; + } + if ($channel_type) { + $condition[] = [ 'channel_type', '=', $channel_type ]; + } + if ($is_show !== '') { + $condition[] = [ 'is_show', '=', $is_show ]; + } + $order_by = $order ? $order : 'create_time desc'; + $model = new EnterpriseModel(); + $list = $model->getChannelPageList($condition, $page, $page_size, $order_by); + return $list; + } else { + return $this->fetch('enterprise/channel/lists'); + } + } + + /** + * 添加视频号 + */ + public function channeladd() + { + $model = new EnterpriseModel(); + if (request()->isJson()) { + $data = [ + 'site_id' => $this->site_id, + 'channel_type' => input('channel_type', 'wechat'), + 'channel_name' => input('channel_name', ''), + 'avatar_image_type' => input('avatar_image_type', 'upload'), + 'avatar_url' => input('avatar_url', ''), + 'video_title' => input('video_title', ''), + 'feed_id' => input('feed_id', ''), + 'cover_image_type' => input('cover_image_type', 'upload'), + 'cover_url' => input('cover_url', ''), + 'sort' => input('sort', 0), + 'is_show' => input('is_show', 1), + 'feed_token' => input('feed_token', ''), + 'view_count' => input('view_count', 0), + 'show_view_count' => input('show_view_count', 0), + 'show_follow' => input('show_follow', 0), + 'create_time' => time() + ]; + return $model->addChannel($data); + } else { + return $this->fetch('enterprise/channel/edit'); + } + } + + /** + * 编辑视频号 + */ + public function channeledit() + { + $channel_id = input('channel_id', 0); + $model = new EnterpriseModel(); + if (request()->isJson()) { + $data = [ + 'channel_id' => $channel_id, + 'site_id' => $this->site_id, + 'channel_type' => input('channel_type', 'wechat'), + 'channel_name' => input('channel_name', ''), + 'avatar_image_type' => input('avatar_image_type', 'upload'), + 'avatar_url' => input('avatar_url', ''), + 'video_title' => input('video_title', ''), + 'feed_id' => input('feed_id', ''), + 'cover_image_type' => input('cover_image_type', 'upload'), + 'cover_url' => input('cover_url', ''), + 'sort' => input('sort', 0), + 'is_show' => input('is_show', 1), + 'feed_token' => input('feed_token', ''), + 'view_count' => input('view_count', 0), + 'show_view_count' => input('show_view_count', 0), + 'show_follow' => input('show_follow', 0), + ]; + return $model->editChannel($data); + } else { + $this->assign('channel_id', $channel_id); + $article_info = $model->getChannelInfo([ [ 'channel_id', '=', $channel_id ] ]); + $this->assign('info', $article_info[ 'data' ]); + // 返回统一的 add.html 模板,前端会根据 channel_id 判断是否为编辑模式 + return $this->fetch('enterprise/channel/edit'); + } + } + + /** + * 删除视频号 + */ + public function channeldelete() + { + if (request()->isJson()) { + $channel_id = input('channel_id', 0); + $model = new EnterpriseModel(); + return $model->deleteChannel([ [ 'channel_id', '=', $channel_id ], [ 'site_id', '=', $this->site_id ] ]); } } } \ No newline at end of file diff --git a/src/addon/personnel/shop/view/enterprise/channel/edit.html b/src/addon/personnel/shop/view/enterprise/channel/edit.html new file mode 100644 index 000000000..ac9b63027 --- /dev/null +++ b/src/addon/personnel/shop/view/enterprise/channel/edit.html @@ -0,0 +1,452 @@ + + + + + + +
点击上传
+点击上传
+
+
+
3gyBn0CPYClL{271K?W%TEJHyqOin04@>tD<yx`xRw6oVH zQsmNuU4XFbm*7kZ9wjzjFe)nXGqwLzq@8PHv2g|i4go^iK^Tjj_roi>q-r;6*RDHW zyGpfoje7mgGqo#K>i6hQf?1xL0z!_Cjt&kE0`W#hMj#LA@X%0OYwOU^FzlV2oPu5B zsKCg^>i72b0ZXB7PfzdI*f %`5#7ASA|m1< z+Yj^bu3WTa |NriAY zZj|smD64_noM?szE#$_ij$Q>8pnKWTU0ky@+2AUG@s<=X_)oC30&^`b_#>3$$VG|* zxn?0CCl??igF0|&6P#;re;(2j1`xym5E6hpM 110r?#kB}Z z>IRGJ1`2Bi3Tj50I;T(zGl4P^^MN77Y$j$lCs4usM~t*UPPD=VdLZI6W4n<0|5(CK zBb-J150-YYYx+~tf?`3vpyatToS4oFV?0IpId_Z6mqVCPUVi$NzQ12^VNtQ4e~_u^ z<>=V>!s4PUSMNAGKgi6;%F8Vl7T$!z(c*BdINW@cb@Tc7H*Xb@;p5x9e&eC#D|WA5 zvv2+S1H63ew{4RW6xgtC?Vin>4y@m}Z^Op@OO|fmEqYWyaMQv?BK!gyR<0D=xl4wD zVF?Mbz>K}c|J_MTipQ=m0^}qD sk@i{u3Bm z+-GJM8$b}pVuNfFbMS^bCr5`7TK>O1#vj`|HT{nl?BWF}Xl!z*lc2*{^kSojFuh68 zdA5VvW^OhqnUl|7ybO;BGcH=NIT7;Fp$>VRQ3tWmV r>I=xCxe)z~IJUl8n`HiEqQ%z0% zsnZv3-*vin^LAiJXmLrIoBM;hx`u$j;Fqsnzk8oaH&2L!XdxM17_1W+iQwPg(&E7# zAOTw{geT!zxM0!2%^P>GS-xxa%Izzbi7Z>ZZN-YkybDQ*`QUVz7*`V1{u3Bm+?T#_ zXLtW^mH~5*QDZwf*fTNEJ<;DiITr(1+A}%W`zd<9f!?X1UZj3s*Z+>G0l1*_ehI7t z DoCo15od+k2|YXHT9maB=ava`pD1Lkjx(mhK)t5|Z){ANof{ z#V5adw`$c6u%atgiY;5dXW^o4d-uzEd;8tEao51W)WyYfyU1ZXJ7;w@o%_z7ws)N_ z=$UzXhOAs6Dj}h{a`leKe&JAf`jno{4SRh(^Z2;uXU~~~t%fLfHctNgTUvh9H|8Uy zT!_Q5m>rYodUdNT(x^1_V!oeYrnhd!1D%^^_LAUuNXd}kpP=@ile8UOeRBud%&;5n zMKIj+DbV4F?fML3D3DAag7JO?69Z5Pc6)kqfMAwpK`>O4-vyyEmJTAV4R=isc1-uT zPY(b(kUW%(_f1caOivF_PY kV~1err$GBQh|MNVPfkovj!jRDPLB^yj}Fd! zI_mm@vp+pKGCcv!j-!Quaj>n^Qxm`0-0`6)q|Hwl3jp I6coIqq}-HLe3Vq+_05NJR<;$)EK5j8cu=o+0UE3VxXH+PC@J|! zNU%_L0XaE8o|FqYmVzIT7l7Cmn{Xl~;w2{&z~f;T7dqp`NkJh%Ow5DPm2_qn>hDfk zI3sWeNJ;s~DB#rCOceKYC0_fGc%$aEW6f))s-%0x{%3A#? YX+H~S z=aP2DR*duvcegZrtY~PjY3!)`*!iKUv!S`GvAMgcwe>^$$J#ao)omYZ+L~%0ZEdJ- zuCHkNQ1P*$s $mGZ 5{wn(ADc6;PWS+*I+Twf^nvNayT0o93K*A5w2tym4>Lita89 zuSkAa`sz-7#_jqn_lE3%dN}0OmD1-H`A;o+8gr&5N5Dh=%+i8-u^Wj5#$q~0Xhy<^ z#|se?36Ox-hvy|B<{={D!sB_!$oR-e5jT&59N5K+&L{Jt)5S1+v1wt<_<*Ab8DVm= zg^ 7;)fs`Lp`_B>9{s+=RJcfj1qkUCX z`Kc~$g=RLzSMHWs+g9APufB7y-rlL~RZ?MTZgGA_L0)Q6ep+EcMnP_BZr0oMjO6sB z*pCvjtx^gt2c=q+)tlv%J}Rnp9FUw04yit2kcFF9%&@AMc1bDy(sHJyl`M;^xmM g3-`do6BWOAk)V)_;q{&vCDZ3`B+uiDlwysmBO#-8;%#veZ( z8Xxb7OKEcq?C=Qf^ayEx5L|2To_X=w{$=XR7M@U)y`d<7Q%BQ5RK$4wvJ1WspASt= zbeGo*9Mu?9Juz_X_|Q4Sq2p(V&KeF#ADxbk5A!m($V-_fyEg6UrW{R)lGD=FMk)>0 zbd9!?n@QsGym-@`+1@*{d!FPp-^XxSn(~!1OZGK^*4>-h4()B-v!zLTTf?5^wFlRC z?Ab9M8#^^QItj-A2S`hW-KZcFLirk$o!+V)#vAu4t=J&Sx0s2V zkA$3?6s`P|leWFH_Y+Gy1je?vyf(j7-LzNq?0~uBc<7U{hanSTPo{4=G(B)Ht}iPu z$|@_$EGf(=Dat6!e^;EJR#KW-`YvfoWY6?&@iCDD;|FENWmG3*R0aiCj9sy=($TBr z*wuadPQSh1SaRC ;Wj_sT@q!ft zt2U1ukRBG37?nCUs;oVxtUb77&5)@%xW7$mRxR5!doJD^3Wyr<^dAd}o4)6CWv9lX zrP|xqp53`oZ~snXm7{k}jUMIYln+i!^c0i~F557;Y4_k}v0-tAA#nvr`?wcQ-o2Of z^xoSQ2S<+H8NBH~5&3E|@abf1%Cw#5{avhPN6E{Bw-*QQC=1?E?6)D GyY?{1U};x8R4$Xx2ydR zw|r*Q1(z^z{txqP{$S(TZ0A#Idbh_d$Xe_e4#!SGCP)IEBoV;W{%;}eBm`z7eWevy zd4`vprOq{ v7TaVSRm5 zZ*PB3SMNY^`9OZrU_r@HZvIeS{zy?tSNzlQ(vlF@({J`}=~Ot?dcmUm^6hp5<5r7{ zokj*WyXN_r#HvTNb>#GHh>UxNLpcp^9LUqF}L_2$S;rCra+=6x*s6-cl@e(eqMS z8FzfuSar?hSl_3!$KN6C%;288s%e&ib2%U|d$&Vy*0j!gw!dv+cSL4a9pDMh ngo7|=o ~)? z2n#ko>Hq&~X+PyHF)9BdhUM~0cStPRDkrd2cKMFwjEjj$cp z!>zhcwd!}cCU2eaP^Gkl}_bT4!MV#;RXz!%R2hTzrL+=}U-#Tey zrh4guoVk&r#0CKoHkuv0OuK~^tX)87aaInDPo=CD_`taoJUPS*a&YXqBn$FL+4E^Q za~XJZ82R#PIo_|> 6YrAK{z z{hgiNz}x<@iNVR~p($jZ3Y)DOMW&a=GlCS;+=X*I*JZhFinG{!UxD_HIPS&~5?>>> z(vY1M;rpt>_gBZC%y-_Fb!~akL$%^Z>&xTLRwUSzgr3Ux*UAeyTO4)P{`3+z8%1O` zYM|}2nD(2b#fBhCA=1z7($_83r^K5}T7l1wB6!iCv_pou*+|GoM=MNABfMb28cIq5 zYAQiyre(}bOCe=sSjxq@o{e=C9ql64`H%{;v#(~LU&6w?Vm`|X*hNmpM?Y^d2{8v8 z4q^HH`72qNm$R}ir=&o*gs#w )reJCr_Qf zdCT6*`(boUoUDwR)ukH=2`_AHZfR(q3J;Hc@-!hf?un}E$>89~M?U@!9|h{^nMFjz zKK2WYi;ovStc49) zih}g;$M?e@yF>>*NR06}(U7*aGI|yr=yb#6w%Ms$Cfaw5wVW+adR#tr-$eP6>MrH2 z{Hh{+$9D)G FnriY-r5M%Jh5Wzjx<}WdiaWS00xZx3n;OcuLzLBK+0J=m<*M{=WXf zfq@ye!hcAH2m7W+2FqiNv%Qy;#hxgC;#d)Ju_ns6GTN%*g?&Yscy;8yswjzy5aoQk z<>@z9RYYEFetA1L;(DC*!m5Df1p$ZCAD&EimJYQNd3l$y=K1OA@rkJ~W{>|8(h@8Z z1-UT&ycI0WYq>bL2=eb RY(itS5HOMC49DE?`zp^;f;c2;3=epq<;?c26*-=(=f z@Q93x5)+l9q7W26q_uOW;+i#w7A+Fx;@nJ6zl@CZJ7M0Sb&K1Fd4Nm^*n!ejx-~Sg5@i_MK&}q*;BDzxqzNK6UR`# z7hKSh{_f769)z>q-Q6AS?e!l%WTvM-^7P%c^*E4r?J^BjrE6A}K59xgGSZ6%1_wJj zfaLvsV4C|8(hd$HmKIn$GSD|Q(pUY)|M~6Jbx(|{g7iznEGol|tAftdCft7GEcN2< z!VhtB1&$jE+(auwjcO8XTQVP~2bj3(FjR-`tngp=;--+L1eNy%#(Xc1iiC616XTPE ze=pL4n@UZ!cplwyCdSpQ^Vf58iO|!pV41%%HvUCWaByAy2MbH9kkH_y=LtD^xq1es zW*4vc2l~Hw`TW5CW5mSlU{S@z6=h_U(lgS4*qPZGcJ>ZcHP!c=9NxZvdqL0O#mm 5^kPz(RQq$T*tv%v-SJAv8wd4|1$|2p@0 z0!TaFpO^VgRb6G<=1m904r-jdaOvh |w6 KHA91&%0EPVwzoBOiMDSQd`_wdWciXXVjwKvZ15 z? J$_^@NVTrRB{%d!*FW&KMb9xp&WPo5&Gj#Qnxr zdT_&M!Ka|^@$VPb{x|sdS=#ab?DUi)Qj*J;EY?xdyk&hqBp~ti+v3XF&X&%Rww}?p zp5gYMp^jd_U^}$XGtko6+uYvM(KFQ5H`3fTker#` zwzIPbnLzI81(Jh-9vB!H85u!* Ms;4^B zlMr#Y|4l6IS0 d*tF(Ub`dT$zY*9C#vLl&CCtVosnpC30{1%OBGb?os_B?H^=m2Ro;yhMq)+tXZ>i zvGBqLY-|#T 7`|***UqDr6mYy5lc&(jpxZGLfqp#3a)%=o?3c-e+G^fq;z}9nD `Oca=t z|72|jxXo1L!c-KCD98lZm=~>Fw0!lVN zQ$R=OxQ3dVIx4EFs>;gB^70DirY09nuWnqW$j>Hm;he(*&)7p^Mvitt;0Cv~c7U0! zt*Nc9t{EL29T?~zM(3d*)& YXY)H6Xmta*9EL|D2y*6@xUHI;rXoY;YT`$g)zqDCj5_zfqxoylHv62{7)YAU7 zG3{pyi3x1^?Vb?nZ0v_D2_zLHCg$blSRo;LKw_up!EL*CuHCSE^Ts8D{9Np8oD10a zIXOAlSXt+@u+C>=U|^=Dp=V>B&&SC{N5e=$LPv~e!{d=P%y_~@f%Lce+qt3UOt1dL zrC0w#(vI0&ySjSK+AUkQa&vPtF|jOLx>iN?%mw{RqN0Z-j~qRGSWaAA?$AN$efz`@ z9FW|%PvXD RW@c1WRX5bu0coohbTIcgmxL=HNK46GPRo5ggfE z(yFPc0cn+#lw@V)4j($We(h#K?ybTc(gqhC9qc2-w&@1>CjdQxv=GoXH?_P;P6jJG z2u2p-T1bJk{Xp6g+q1hJwWzDZwpK #Kd$nAfh87VVn8fIZu!voBKeC*%cjsrl0(8bdN&<{m<#@T3^3*^XAQSXV322 zw|DWPg)Gc0EX?y+=Ckwg2yk-?2nZ|^6k5#7E6Bqu$j2|dYSlVX(S4f7wI6tTRa8|q zHZ@n()Yey518HlHo&eJ3lJVr?xd4UaT;+6p0dxXqDduaCF`l4czBZ5j4n3Rud^SI3 zhFdtC(&8P5w@65kP)p+|rGT+G>Q70l3be&Yd+gXT85vn1?V8ma8R_}hSyozGyWhPX zCMKf)`c)S2v#qTYV%q-x!MfU-lHy|67(itZtS!W}!$U UR9KNWw=>I)Wxc3i^|x`;g^=@c&sXR-jU~av^?6XCh_*iH1E`i z>t{r8X@OeP(^C_J?SBhPix;FI7pA1-r=$=@AvBx$0+b6WDHcLyQZhagQhi0W9smF! z07*naR3;MqJQ9-MK#Zn%Bn5KP0dMhG1w1_-!Avz$JToOZKNSV|+rktm;1j7R5D%P^ zQUEr|k>4}?vb2Bfil~8iZ(ezMc|}Bo1EQiL6A}^<6BEP3BSJ&N{QLt#!ot11AKkfq z*U`z@&E3P+&cWEk?6IGJSp{&lrK+YTzo4+NsJOVKoM34)akP2lU}-svNjQqB1^j6j zT2S+tQF2_O cMO*W@ZP_No26J z!(eGghAN(@<~&@Q=^^^YgeliftSm_XLzF?~>xVJctE%2OR>xXZhUt|)xdRlfdv-0% zO7zY#qN>0n< D=_h#N=N(dyG76g#`0^1<<)71{{tB z1@mm?TVTZDC~!FP9|px2phO#Cne&O*he98iiHUf~e(T#W(*FLW?VcX%E6B}`j){$r zkB89o#fulo$;l~iQZh2KfQw*08-SXv?R9kx9~zq4IyyVMyE{6&ptPp04qW2Q%*^zR z^xV9>{KBHzsw%|N%Ijp~<`t9k72|o{Q3*YuUSdwkcZHJsE)B026L&NlTL?3|J0piV zE&X<4ibLxU?&DavA4hzch(-cOC5fXt@)b*~h6S{Wii%Q4qz)d~zkKN$dRiV1wj~?Z z?_RlV*O3Ey&CRXt?Var?X))>T?d|L9>+kP}$QJ$&^>t5;4i`r&q`L{G*{;cV-d7rM zuKKA>^E1n;myXwDDKj4KseI>O{p4y**tv?J)Aezd{$?WXr>HA~))qck_rg}}q3*)V z(qs-=G%s#bRVQcxX{Y{T_jqQlFEKIuZZRn}^|MOKr v_eRDDL_~Vg)o98OIFItsw=CV1*oW=RZ~5q zs(MC6?d&n76KrfN@g#g?zsDlvU!?uUil~vE#t-$`IeBSmX<1naQ7bDeYieq%t7;%q z0lsflb$NMtMP*e*MP(T# 8PfJ+0<49o zwy%47bht1|`mGad-UI18SNZaAgW4#=w)}`#CzaEiaEZ5gtD q4-9{i_K$IoM|(chR;Q OCz11Bpk=&3MSF>c+M0&eii-L?DY-Hcu^I`PJ|mx|@Q&R}cW&fdyaq?K z1xGH5qd178L@g~i##GXXdrT%j>mIAl&O*s6C`d?%@7udaNMIQw9nX9w;dN_v3G%I5 zyL!97zkhRcTU%R47iwy;m5=@X1ll4KQBxyBss7@x?onqv*k2fIQUBbgwIKYhzk%67 ziqqS0Db7nP0@jrJu6%N5m*c5rFKmS?LpPQt-KvPUDT%QzioaD9s+{e{`NoMp{u(|r z#9(@I?5}o@1t35LcU1d?{?yde@bDn=u*-4mX_ymV0`>+61#4+(D=R4z;fQcQEL*m0 z(bm#Fe*C!BZ=#L;2@VcH8%Lh9IX*TqGBO04dAYg7I8M@Emi7;|v_M)2NvkR=fvat8 z?J)M6o0}UN8i1nJ)m6pC#XwrfgUtoTLgr&*BQP1b3I;YeH@B#$C?_Z9{rmTMnVHkm z6E$*RX_->-LZ?aT_u?sb5R>gEr;}#jQsP{3W{H@&h??#W%|)#If@D-HU_i_;cE&N5 z!hl%X*_c)p5iFpUmzNhme0YzjsF2|Dd32m~G#tW$YuH#8iEI(m)YQz)$!~85(sp9E zXZvPlpdXxM)IA;^j&j`h^fu9JCziB_2VQ#Vx)_OTZ^Egp#og1QE%RGZ5xl)3OtR?V zmJIi0g^w2(hsl;cu`dcblka;x*Z*8zknXcPB2iaKVlEM<`JJ1d`io;)Ji6EzB1u*C zGw72pM<=mIMNUtC^-+>=&DGY{1`7%Lq@bW6A|fItCMNo>U=?=k*a1f&Ohpg>OkkX# zWl`T%KWW)=~S^Uquw^{*rC)JRWlWqA(DJ+PlZ!s6m0NHa4t^73*E3JNL_GB;v$ z1)_dvXsEBRudJ$q%7uksTywHe$uB6ZE-QmCu14Wx77 qZB?CPV69f0+#T)o|RvkPbp{}m( dn-$eQc_ZKb8;X$&CbpS zrDtTMzkByKEj2YA{N{`d@PUESkXE5w1tu2)!z&O0-sb1$r>CX8e*GptD+^g%A+42; zqsqZ?72&uFaojmL&MX{fCXO`|$DE5}&ce-Cz|qL#Xk>9zGT;e+3Mm|=G>RiQ5`_i) zC~3jUswgWdK|m`bEq!3$-t8hH++2(3Xn0v!maJH@opZsmBS&Pg>1DXMKu`<3#f&Y+ z+dh=L1HHhm{H_J!%m+eAw(Fw}=$~2$XShffhg^uY z6MKG}IL}Wp&t3AJv((%BQc1UVKGNk^-h{ubfP3X54<_xez2!6O9y6(H>LEYw9Uns; z%slz^_csg=51%-3;{Qk5?c2A1hqTb_@bD1wMCd69^T#mKk`QtJS`qa}TH4Xxiju;# zwAAdZOc1cK*;(0nd3nIz+?-rwayUI57z^YCKN$&VtHGBph7?RLW_4i`s%7Wo)K^ta zO^()|GR@;!R>-$CpJ#JE_of1#&4v6Th1{D9dAAhsY CP!Jy<-+yIkL16G;pNf$dMh-FJ9{;kme;jFty2jDhf_!Vf zadK9su-FC7U~jd-HnCTMAa5QR9hn^Hm>BGz8XcP+pO_vULo#FI2*xL-Mn)my>*E98 zzxHtq$59Y6zX3HJ;~_x-+FHkTz9ZV&a|aXZs(tw$52V8rXy3+%2PPoynjD||_;K{_ z1oGrmBr}Gd@x<8Z=-BAU_!!h5gA ?8|KGUC)7PYj$Nc+c-7I`M)VCN(Z&yit>SDTueK79Cq zOy_iVLIjH$tsi;A9ad*@d~Bk>eG-|c9P8}v8Xg@Rn;0KJeuF;L-P=1cH8ngkVt( d!0X=-i(pSq(1ajqf#k1tGs) S@CoOiT=QGk`ocxTmm_WEBA|gUe z{6nO@e*M}n(*CKI7VOW| c+P>JxY@9M;=~D^ACNCUqP@M{!^7iC zdVe-4@*gZMGO{PJm-=B{`m8ecRxyJA|LxXBK6};W-<-6V+UMT#!QqJM=&8xbNNA`i z$Vl-tG?Y|SWM3XwQ&V&K^5yT77E${z(*BvGof_;!?8X#2{rBle#Y%pAneyz2_;Or) z;vU0*CcItl(*p^k=l3G*S4PjbNjur!0lvUY3872hIH_-4r+yC7l9Eyg3bP$Lw0!Mq z-o5*ltyso;@W9g5tGR!X_8((uCooI mee0H%x`wv8rZ%L |&-$C%s;aBX zN=uOi#^vRML&I}lCruEnWPEgFyr%`exsk?}&Y+~;7wOPcPeNK(Omb&nQeS&laY^yb zn>Xd< TCR^7Q@ZNG%-j(uteB-QqbtL;9hp`s=yCnt}J zit0>jK0ZE^U&u_~Mux|bzD*2Qf9UW}=t)fN3{31z&hGGy>wB5g*3mxa9EZMoj-R$R z1a_OCLjwL1(yD1(K-Dz@T|-~){grNG%b~EPh$<>77-?55 GWGUDuf{m>yH(OnBkNJ!B8wA &x=-d4%a@Y-|Kt$jr?AMcUt)v?IN( z7>0XVkhH65u&-xiczC#}ZMdalxTAZxy$eB0$52bhV1Ivm2eKL&lfl6u_)^hF9DX8L z$ bSO^SG)S0h%hR$5qrcG&EFZh0t0`O3KI=GSj#IKIj|t5PCJz)jQJFGu+k* z-5Y9dA3-0w+R@Q5dya!&J;zU5>mBZHCg_lW@4U 4hap~wrw337ZV>J6UPF2 zA|iyeA|l)1C{XyfzO0m#H<(@q2m9f(Qd3h&h&Vod8NwfnpP#h-9Un3DwKqcA+xnrm zv%ROM=R?!S=C)R_Ij!w&Ev?88-8y@E`hQHYwMV_(UA--Jy 4G~8_-7Dnp#_0 zq0NpCtY&+AI}9C-9}smlHFf1<>gX@vk-M|NPE{2&RRw%mADV^6zuC90&K~F+@=(Vv ztZ!|d9W8CGbNlvRoM~4_Ut0q~hXj0^wEVw2NJ;r9DTIKuN-AfdOK@g{-$;DfZA|TO zbpu5mJ9dn4%ZCJyr=p@DCMJdykH=F|Qjidn;_;+-5 (`m5z7!) zvFyW#hR)8;4s^`{L155hDIr6s)6v%2(NGC#OLKExZcaHW#YM&CW#ttWmFUq>vBSm1 zMeVzyiv5Nb=&5uR{wOOe$;e16paL#2q(_e)ovEj)N;nFd?V2N>_pP<1y`i!bE+QX4 zVtuPYe_#k+aaC3IOwVS|bnZERqqXMFkJSVn67c7emY0HD5Qk$trgREjF4EeGEQ;yq z?CAQcfPOG_f%XWbWnr4PW5*(4Ar^57;dN_yHg8(AWFhyaO#+)X@e)Y8b?a7aY4=yZ zELT@oPz {QRW- zSX+jnv8EK#hN|L*x|+tu4-NI@jmS>`8XCWlkKd4)-SzeLg{6&k^$qp)4HbnA^|erh zwAR>wNh6ZO+L>w1!^1=QTLRvjtURPj00mh{p-AbN0@zzjzIqTe_+{Uav=;3fbgaJa z1Jbwp#s;)+zjdr(rsjV-Q%D d@9cAm> r%#`f5V4Ws`TmHr{wjWc($-ZJVyG=I zKv0%fU0GRMT~b>TQJA0o^5v_v^z_vC?+c5N-}HQ6uqRs7R8|$c2Uq13AkVZY&Z(}d zs;w@D*7EamUcP*pnVFT5o}QDFTa8vGh@qk3u}?)&Q4vYO2i_*8C?l(g{DM|S@u=dl zqq4{3_sYn~96o$lT3SXL5gDv9CeYM3`&Lp`>=smAR8mt@h4!tcwko%_Bq}!->03rd zW@>6Gq}A2cKXRtf4zyNNQeIPCSzDTiDUhH~z@JN6aF6+cw6gM=b#-;c#l=`WQdVA8 z{tbbUM_*rGN=oWW(#~CmOvq!T-LPQ;C>fipSC}JudU|sjMrPhiN|5Iz#Kpyt5V8Lv z?e9t2%HkXh6-C*QmKS7|mmtrDswgi6%@?DOkHPMKRQ|A(6% 4XC zbI%l$ivQ+J(bkGVZv-6@@NLra{O-Wxxhcr`a5x58c?~#)=&0zYPoKoc1LB{2P2y4U z_xFcuA1Nv6k6YU1%a@Cbi|^gLcmEtYa^#4Qj}Pz@+Kh{fjfG5HTy%8QyLa!QC#a?6 z`P1<8leQ!;9Yax0T5)cAaZXxcPA2ku*+S%3vn6oFE-JzRn?H(T^cT0e*~QuK3v;s2 z){t_f9Z2WYEG#T2$j^raQuw-6RaE3;Wq*SlmdYU+8EJWGNl4L6IeF}^ES8a*5mi-H z7>r--Qt@Yf%gMs}hJJJ*)&~M$^FN{xJ#41`Ihn<%_CSXOeFDBsTJGN+csv(MT6%eT z_4M>~2RjERC&&A!IH7WXR$N?M+}zw;U0opq4y~!F>3>C9VPWB&J9lo~x>W>~EnBwi z+O_M-l`GJiGb)4+a&Wj85*!XfLd1&y15Wu{`1whjpZN|$UdCGt`57tsX({>dUw@9Y zH~Hx)fIJLoNQ#vp^=J3yLknqWnvs&1fo0z1r$hSwH)N*fXQd&?&B)Ksok?>tlAgw% zJ9AQ2>c}i45geJDO2|lx%SawZ(;3JDj) IOfV{Lf2q1&t4N{o)Cigw0 zuk+I1AbrbvpP!qFetI5?+&P)=0IQRepP!AUdHLDz^N^E8wKuCzz@JQ7a&lfEt(=@% zVnV`&^A{W(?17L#Cp$a4yLazG<`ybeR#qk^CZ?#EnVErGOGQQXU3b+SRL9A#Y@41QE*R%T`84#`boO!NI}AMDt01k@j~aZFcHw3|Xnk zC|;+&dH(WM;;YnGuTx*YNqdu$o|2OOHYMY2O3JIZ$ld&$ zCHeWA GW@cs~At8Q#egOf2&6_vF zr$FP-AjBq+QCC+d#3@G=jv5=A1q1{T pKyrO{4TJV+}0hO)ft(zmjNi<(a?#v!sM)Pvf6GdkTLN5}rcl z*|R6epYZUceG<>b4kd{mcrGpf{E&2#gxrf=``%kxK8XttH82iS(g{>h3szJQRnZ7m zQG2YSV6S)F)>= rI z;^sNb&LOdOt%RiHp)ETPu3Ud;&89 l=0{XAHcx)$iOgzixW&wxxlMrLME{9h-}%Z<^{{Gu3i3 z(s?1Y;^m4BPuFa{zjA|_@Ur8)f-*Go4hsp1OG--cEmLL{HWb ZC mFy1Rq`jR>ppaJbi57??T(6VedL!Uw7kg3Vk9f~#g<*& zVUg3#EzKP*{iW5@)gSxw%Tn&Sr`&W%arEdfD)qc(ZDel30Rxzs&eY7<#MFp}jw&QL zC^s*sJTGUuw0yd u )cb#(+OuTBxz{H z-@P04G(ILWA|^T#K};l;iH?elij0VIcZ+m#jC8ygVP_X^XBTE~A7o+q%+)y}*f&U4 zBXXx)w46qq`pI}zt$3}I&s5Z0PHWt}s((TInDpVjr_|trzxSG<`b|@<>n0~0tPOlE zFFZEa54&U=gNyefrEHxJ+_+oS)Oz%!fxmxH$=i2Bon6m7y`On_COq&edX?N+S(Wt2OG@E@ z!)B38%iC3vPyA$*n%|}dD5~}qm)Kcd(l<6VHwRN;XlQI`Xk S 3``mI|Q)b%KLKeSLk1a7@rc)HhZqbQm@v1p^C(km~DMVI^}@0 js>jD<`*=to1eaJe#Y*qzMGw;yS=r) zo1LG#1K_c%UC84Hi3zdsu`$RE0kj}X--WP<_|WjUkkHuBu$bV`=+N-!_$P4P*m%-x zwdDg2Ei)xEYkj9Xjom%cW|tH$Uw85g7# PFk^btl%a%Ts7XM4MlzyM&W5y05k$k@op*wDbpz`)QTCpRY-MOIFBL1A8ZTTN|k zc}ZDuPJZ_FTh@t*iBDoe5e3fb6Yy=)F8KXH0;J`{;pXkxD-E4VNJw~s1TF-b$-|z+ z|5?Bv9vvNpOlxZ^ nT~t)$;^HD9t^}+@dAPvV)(z+< zDXE5S0>BeS`8-oHH=XM+e+I(gU*hK{ZG2P+hPX%skn#8N_Vn`bdHnFPpO0U_WB-81 zLBRpxkzrw>K_S8ZA;AF%LI8mwAwdX&Ar16@{0I(2(#MY;`#gH|(ChI-PiXM5%RRSi zmt3z~*qiCvnd;uu*ReP*YjIxnve5|}i*x7HBp1wQRF>YmX8A%hU5#s|Cok!$+%VC0 zwl;9NX5wRe!^iIWBY^ESe;50>h@j|*u&C&0Kr|ToSg`WZVbL+ckx}t+@tWq=JZG+~ zH+rOCZK>#JC3)NBV|%-OfWM)Oi;S_w@X%0rcw}TmWLH;LM0mKr@1wk|^xm!}=bMTq zx(BG|QBu#NqNJtF&C4|a(`syh%zy%6fwxAerKKdNrlFRRl?LkO -M)R7h{z5E+aR-j%a(1MHf`OwVe|U+8#iy>=IH3)>-!MCcLWc; zy}TYg@_qo#K613Xf7QbIve_;D)3@|aTs^H~t}bPITG{Np`c;#YXVs-QtzDrmw|Dgt zL4y+tR{HAZ=hdzn>o{D#;ACy=b;sKKj j$^5`rfyL?uCU0hlauB15MyhXlP(? zXn16lo#TBLnX{t09*k!!RBk!x*xWs4da0^s;I8juS$z}#h?uVK?ttKshK9z>%*?>R zz(?L*O%3%~>969VeU9v3MbAJ@H;;;T9@X;~&oP#Qb+xm%PkR2`5ZN@OprQb)3w*_l zZE;b4^T(Qj?xwD`2KmFAER0S@M} 3dqpY zP}9>=(^FH?QPVJ9wZ8i3p{Iw3>jMur4-YptHx~~#m$1Oc9(Qj#SQ^=1G`e<9`|4Ts zODB|!RV4M)B@MKtjZZ0@QkB-#Ry?C}Xy4Y=MrTwl4NjQpYFQcT+_gMscS+y a;wjcZWZPL83R_7w`o>N (_3T z5I>@LRC)c{EjxCIYHDh4+qMIsqO7)K`<}IHw#rH$lap22v~k {sS$6qI!ClAdgvHEDwc{hsu6_;d4(M_M)U^ z`xbtF(gyl^VF&>Dcm_W9cCx*BQSZdfYgg=TZ{M@O>*4OAZ(uNwfqnjbPG)8{W@dI2 zY|Km;SeY5;Gchl?WM%ch-R1s$N0l#uElwOW z*E(u&?6AJtAp=cu6CG)(eOs9r<{c8 z>0T;pY8f6LZSUxK_{ayMuauOO2M-=Vpw-#g5$ONO#86vZNvx~Ao|%z~ii#ZQN<~BA z;9v)q7L4i<=_5c|a!Rs*zyNTJX=teo4E4*(N*WvMKQ`8Pb~JT$G $pTR-`-_ZWE+TL{q;7M2!1|k`Rx{v{W0-yEtEF~mVAP+SGUm9DeiS5Fp>8JP? zkk;4R4TFytz}45=-Ql+NRpXPVRb?+*n%i8v;^c7m%-OTl^X4-#u`@C-e-#W2Y-VO= z_njQETi7b+bQ w>WqD*>(oP#Rle%!CYj zJp$6c{=z+;G1Rk{FiZ)Mho E^NM>FM3GyA4FWb?e4Wn;X}xFJHTI$; q!&6G?@&_b#Z&Huwt>`SuI7A^P0xz zH81LET{Ss%&G6*ii-v$Z7Y%P;G_be6 `7- zM{)1&joUUa=jCMNW@q5zWaL@E$i>FM&Ca-hg^rhP9zO>&A3HrS>{>uC%t 2luQ#t}5l_>Hfgg5p+n d%gjzR}Kp+VtZ19Z1 zV`gjoM|Sp)-AXF^&rX#me`Ir1W-C>xt;*I;Do4%MBsJNpsZ@4nv)Rd3CE1 e)Hg4`=IH; zTMr&Q05KjQc71)_ZnyhaypP^KFlgqQZq{~nHc|(w6?47Zsn)^vvdO_}YJU}_uZq%J zN$D*o_m)%pDy9Z1Ci_Yy%$As&dayZkFJ^x0U{9kGOp!ZCV??!-_Xtc25AOpFQ+fh> zq0j;+hKH@Npd19rAi0fii{jgp8)$#&>5s~K668F^_&jh`6(9u2%PRqf$CU#&3$F9E z*J=w3VQvAvd3oTPkxE%!UMXmd! aE8)Fte<5}P{s$;qG^+y7vI0I<}$58`YjK%<%4efpr~j0PH5#|?;eQ1_Z~dB zzqj|`&4(+&wKk=tFSs?}Sr7Q{_S)7bd=ZMn;}F?ODGa{O^x(n6-PiBm-`juV{u>}| zi$o%!P{`-=Su9qM%X#o{Pa$D+wq5V(xIr1L G0-sh`Pz6^CtDeFNQk8^bjK8cr+#hdKh_sCF zEG$G-5+4V)m4)yYT*(z2uB^72I8Em@H+K&YQ!6VP`uoNi3@(|%xP18<4o7(HVs&G~ zt(#3fmtL!_t!=5VYj17sD=E2l{aV|#tHc&!&ubTJ8ymWtn|o?&h~SX=`VLU9t7|6^ z>OkYBrmm}3Td!ViYia3iXy_~@oPl4>+q-uMvHSP7-`I)m-M_b_T;NjT=@XL$xU8 zH+@#gJdaRXU0qXGRapaDRc+ir<$6`s)#@u(OUtS?vc<65?6+y%M!8)nSd#J`M%CUM zJL|4xNF`p93M}F|tC+vEz|nH4Y5_wBxK+-vsKXa7oTrX-S67znWV2SyqFE)h>BIrZ z5U^>(P77=f%erIfcEG)NFZTM*-Q9clc7Wa8nN*occl4cpSEX+Cy1^&*tnz(+qQ&0H zS?rqPY{l-z?t)gJ`Mu4}&9$|)Kp+5!bvm6It#*#j1K(6FXU(y@*_2j`lH|9sg3GLc zjp4U3gUjqyJ7*2zt~q8yPX4-!zwVx2cg?Rt{0-mYcEoTeymV*N7h2IzQG5D&>ct|~ z-rnm#J)mJqPhh#Bt#~emPj2xQ&+8+e`g$sHxYC*$;_U4F$OvU{aH6rHb7X|fVsXi& zsiLA99Ilwy+}nL?xVwAkMtyr<-x!O<8yll`v=7Y8%#DvvGMSv3>LxOoMj}yrx<{%i z8+cp+2;f1>(NQXcF+-!V`})R Od^g!z*Mry$~hXyW3`K{c{aJP=N5Z%xba$*T*%f) zcv=b1qFMA v{Hy5ZW4c($V6&4_m^>f4O00E=z M)rEP+?(Uttu?WyGr6;i5(3U?h!=oxM*~;P VbXV6vUfu=p7J$FF_zXOI9E+|awiUP7=7!&4aTpbDi`Hw? zd#!p%FR@$AVzGooqD;}IDU_*^k#S&S 4 z+KjQ=VXwttT;yv7T;2SPex9wFrArwT%K2%Ph^-ZKr1Q*KCRHk!k&AdL5mO`KXe3;t zV&1BgENdkzX6=eu2h3|y2OtZ$$Vem{iAE!l=z2J^WHI-X8EtgYxWy_CYHl$luaRfZ zcaP9#1?%BxFa(-J!{IPs6@UuzSdevFEEbhYRZ&qvCXL6oA}e0oM%WjP_-}8nMmGbI z@JcxBUk`cwD|VmP=Ji~fiGHm$)Rhiqz_Md`4qJdoO`ml+N6Y1&9v$29?e zIu_f!9SLnE#YF6dLyK@ymR5Ow6U6Zs0N3G92LW(JMFWv|tD&J|U|{0n#qtXmDtmiI z^71a?ab @o<5P8YEgc;LEiGL`!{p0FAp0e>we^BX zxad+%OUtdHAyP+YKY+irwWqId1e_d)yVQKM@51>iJf3j+p^dHw5sLr|1*02lZmZs+ z64?!Mhf!(QE|`@ G1bdX}Z(vy|MaMf#YGM^y=#O3{o~F4V{bTA9FMw<$#|wV11w z@(l`sNg=SP7Tg9EVotr%XET9|429N0>l>la`s!N9zZ$YT>@*hh%D_bZqF7*d-{LLQ z-WvA!0=~eiKe!rNUkAZ3!m7oxg!~r_8jV(8Uq3cF5{-t%A|{VZrc#EwyIb4Zng{z^ z26~AjBfU#YDuZ5b&`T{#swK0^Y*H!|LON}NGSomBtXp8+lJf_9ZZ+QOtncq_>h7xJ zb7|4&MmQ9RB*jE5H?(DE!thDUFGE(L^74vsxRP_{0N5o31*J$tfX9^<7uTLU2YfOC z@O<%N)%o+4AaX7&ECV~w6_%erUjdFn+JIACx^$(mupBf1Eei`koAUVnQgBpZ0f@=V zPCvAvpf6zoFKnxRn_jLL^FU^6QH!lwsZk+Pi{~{GU;>>&tXE15N{LY=1qSMRg+!;2 zXyuD~xfoh9I4lOptcA>)WrGS@(uG!6mUT)Me@4b-$Y-YI9J-WE6;2L|nByWgNy?*+ z4|Y~nRgCs`T&=EL )3hdSG9 zOG+-}7vx>InBR20sJ7}tb924NW%f8tZih+0XR74$UiXp{GC1ry7P*B_Z&%I_$zW)k z0OTWsZ9QE#W@n~Cq2OA;0}GhaGw90+ExzmwSSc`k(h!Ub;v~Z_@kk}n81M`nG5{EC zVT&&X1DI2Wv;kCubK>#{U=I#nVFqU|OSC~M@iU)(X#HMi!aU9ukHf#>*2#nt-jqtn z(kycHGQLqhZ;HD q*$XQ+JosCbs) zU-6igQb6n?nikU4YoBmF7Rj|t(6K`G65T$ zN-g48 DvtfWS0{*aqeu*GW$WK^;@O;#}`DravFH4d;3FtP-2Bl{rJa#*534?4d z$m(`MN)ZpZLB%{nAz;GrEOG$7@hvxQ9JPooonsgjBCUk4UF3nC>IIHc$ddACA{J?m zJ~}%!%$n%sGsxg |Gt_yL z&zKN#rxs=zQUP1WpO(+Dj1r+yDgvgL2+V33xI&PeLJkK67kF!jpyg%AX0tC@mzOM7 zJF*9E;smTprP9P7I* _2xR#letcV4fmBDA;P80c^9>27XqxyqU* zx!n#YP!F;l>gllMhL&&^43DyOZZo&&O2)BA-^FKpiEeoY{?#Q`o?FQUEvC#1kR5{- zD;TsGv>3D)v{=EQ#h}HY#R>*3RxoHWXfbFpXfe$(XfbFpXt9Dpdlt(VUwrY*TMXK7 zpzIj5Siw9k=4rp-&_0HE`yYazAMW$|Q3ZOOdOuzVZ>M&l3fRrt--r5 B|F*J^Rf&Pq Ej3588 z-~a9>Uz_Y_(9^;l1XM;-iRg~r<{B=^?mF62n5TULwDF-F*9{R7>3|RSp$v^d6CMQR zgy;~nL@l!`4qqd+6p)F%X~bolC$gUF%d~kM)jrGYesmuC`S%0R+dsxU?N mdjV1Ol;GZ0`^L>Ql_qJ{7bn4nI5rv^k=$tWg-|X^(;S zF@z`!hH$!oiS9`C3aoa#ngb)0 ^lY5P%0YYu1=-Ftj8h2^wQ6CP)Ep^uT(0hAxks`|0BZw_dW zQV;E?b>7o;CF*o(0W*Axqw_pEr~UI?$M^mf)IWK5XXm|t!*beZ3y;%Ns@$ITXmFfs zC+2CN2yFt-w7>;Wv=2dtn!~; )Ho;F8}p7!IIz&P!5V@IwnEw)di85tu# zdnlmMXtT4kQmNEnFn})_3 _NzggjDS;f=aW4xdQJIEFB?A-w6F_JsF}8$lZEGFZ_p&1^?m}^509=9 zXLR7 Pm9pD!MoxPOZ6b(;hyLTonHgbDhk0ZcO;bO9e~y=)HKXph? a@rq8c#-#$V*c$rfj|5J%W0qSKJDQofAmR-G-%=bg&Bzws?V|2 &wX+3!F9KMdOA?igl$iX!ddihfiK zmT_b7)mf4HW;}bGh+9zWQ3z%k>E#K+<0H53lI}3e6HD>4pdX^?N3DlFu>&(!yi+0g zVJv>kS3Q*RN4v@UwD0^~QrLg~i|@Ys!+-b okfBflB0kmL0fcAI4{~Uuh=Yu(! z(bZv!k{$;q_GWtHvwfTPS)omz>9Vo Ep~tBQhv`eDrbDTnobJ$vt^k zmYYh+F$5>k4+Y7bcIW-njoLo~IqkRK|MaWLj{U;G=`Y`yXOA)2v1gAlXkR5yi S97*RglJu=4B$ z2n*yr3N5Dj3zPj6LW@Mm|MS1U!+QF86d)`Tq@kh3G=Gt@pDJk4X)TzRK0o&HYpgs& z0g?h?Q<+uDFwI}2?5}!4dkAetgp4eWfcXiF*}ksu42X$df=Z1ZO!F5n`zuXsCbSu2 z2+U8v{MB!M@#%j8`}be|8nb6GL_HuQGTCPki)sE+WIsL7rkpK$3?ah^%vFd16)-!Y zr9?x<4SMLH=X*@^mm>SAf)+i7Kn?&5eCO0)!t7}cQ4diPJ#^5}Vw%5r*-sC&sWF5e zMyVA}%$~tg0;0!F#?Zkue<`w`9%!=;Bh0?KJ#pM%n!gm;PY<*i!w9pl#ZJ;6m`X22 c_E*dPAFA`@`4P`d{r~^~07*qoM6N<$g6a#b`Tzg` literal 0 HcmV?d00001 diff --git a/src/addon/personnel/shop/view/public/img/mingpian.png b/src/addon/personnel/shop/view/public/img/mingpian.png index a5452612781e83241e667926d159bc4ed9c9351f..71b4634d785c7ca8a9dde46613356a4f60ff1a0c 100644 GIT binary patch literal 9574 zcmZ{q1yodD^zV@z5EK-U4w00S7^J(q8$@b|OG-#fDcvC5EsV-AbSOwl3j;Hh(%oHe z^tax6|FzzGcda}3u5-^iXWu>d?EN|4bE32~6p09^2rw`(h?JG&bTBaP<)QEUL73>@ zoIhQ~=nKA^lCdWS#)Iy^=e@M&52!IP7%-IOr1gA}JGriU)QHTxw=;8r6B$8Uo~O>5 zr`s`ZFIkDMoPtYj5?ZXb@}_=2K_UH2d1mVCyk}2DB;vV5mD!cI!Q2j5C}+pLM-}jC z(%$ea?66J>>2Csjq@mxKziZi8btWf;SpDq0&bufc`w2P5OAJ@I3>p!a__H~jdu8@9 zA%CsO$IgR1ovyf`puonc{~Ia#iUF{p4=HK_^f4M48XAfTD?}GRBLxOId)=$AkyP~D zRjDekJEHFriE@}JvH0~~w}ckNk~cIfR4CIT>7bu_?Bt3@(65tyRBug4L8k11= $p7IzO$LwkDf8wC^zP(u^|Zi!oDg~@6S!efjvl4R_Z
zRNEwn@iDmZ2pdtIU70HEos-rnyXa{8pSowyXf!@yfuyBO|BR(4MZs&-*BGfH3XbKo zDchQ0aSHFiAS4wmlWmNAB%QSG88QS6g7Du%>eL}Pe+bAG5rzJI4 H+iR)r2(nUm&un>5Sw5d*E-3p}3&K$%ij(jx8^BAWJ zUlVN)ajF9ZB~{Qof2l4Kf >?>mND34JwqDGhXJGrri;mvS< )%1t{E5kb-*eO%w0m*Q@IZ3mHSC*U7{lWNE`y>W zNx%B*&IkBpSHa??($rh 3B#65F~~!j{9;hUzq#myWf6O z=)PHY@Xvz-yp`ULj^f42z9w)z*0f!k|BU}weQOU-K#;21^#YZBar}^^P%l++4O5n? z(e*+tDKj#J7sN-2RIqjZkb1WhR;pjal#%cpVr?2fxIjiq&shzBs2+Dc{yG+XPwT-} z{Htc?STYXQDlSJ{d4>;LScQ}E8ICSP+=^1BLEkj$2@X@ emNO?E@s$>-I#WcJ Uw>gk}5Th>)fAW zypp8R$X-nuE$>40hGH&QSyQ2rj%H#~we5-^7nA4x%a+Dv*#IWPk&Iw5Kn#4^+(^{| z_2_oZ@U^?>96C$g3LR|?rByNW+ehds!KAgO3IOx5b>BGVj&rkKW`_*LZxZ_LcMBx| zBTo8bWDT6wGqUYMGRY@;+qXJ{ND&pLidQ=1j$?2Y(3mgy9BM+ED&jJDrTvMvNa!Wk zE=U_1{RoeK*5mqH0)!MDO+HwD;T(i|nRL}%p`9}{WvN)Xj3ME5U4@u-I`Y8|>~4Ev zmIJR&8Xdyj71>z5yvd;3zvlXVTGe`u9(3#w>hp8kv3DqAiO*k42aAcZOZk!Aml|7s zSUT#4LA{xaE^`m{s?(c8QrFB6xhme`ly3)3UW7fAMjBtt%uZsB)1?lOa5v^@>Flh^ zSY&@qI`5mj&~u*p5hlgZM+4!n$QXksg{0b>-_e@U&G~3g*HGgFGB>R^deV8xDk;Z{ zRW#M zQq}cvy?r43Xb5Fhf7M;57VN9#KeBP#+%$@@D!S5mJmcBWEjXD(aA5&m%0HLgMFEPH z#|Nbk*9?xE;7x;vkAKHEd^UX?hY1kF1R {y@sh)J zTSSa0H|NR)M3~5Ne88u6GgMuoy`}!?dE}=$lMfanh=5r^z6OeHhHW_~+Z)>7b*=@g zr8g_VuO{F339*uHPY177#muplpLdHJKe-NNNGSkh`%l7Kz4L^AxBU4p)iICSN9h?D zHf;acs|>*7PsEcpO@Pa_ots~B9;nI~l@zt)P0#>aGIYea(ku$7$gPHb^8@@d z#JPHt^d_u!~BXC}9jqQlO72sB4vcFASeN>oO{ zm9XN!L*;hNu#gOW0+5)Cv`4SX`cLD-!*j$etZ<}_BjDH~x*Nn^F5AyRf8$U|S?8mz zuLu48$Bdid1)ro$zn>jLWAXwVeP93?GDHlW)kI Mfd1k7xOZu5x(A$0=y!nQ0uEb4%#(vlL!Tpw zZ(d;UlQR}@1 &2cd27;l0iwZf;H5S?OhY@Wq2QmQ5d@9|Y z{z-lYVj@R(7Ghn(afVU^P*uG`@8D!Tdnd}ps~>;AdoeO#XI3|JzZ|d>TiA=a4}_(^ zHr1wn9Anwl``}mF@z+Hv>`X!+w!C8*51!K&_aw($lN9A~ERUU84qca;19MzO4Dhrv z1W9OJMa;c L=51OR=5NJN4}Q^mIwmeVIuZsk6Iwu8J2dns%tpeC0VNiOQCw+<_weaq zQqkFQeaSA$Cc77HV8c&!oGm6<@SU2u$(I`w0V_~R%WO~B9Hm%Nc_m|c 1{%O6dv$%yAK6LthSEoy#PbE1`x8mRiXmKTC~KU+pGrPewkxWux~EX+tH68kpI8| ztMT1dM|q>#eWx~(9+<5+1dJF=zoZ89dcF69a&@?jV*u7WsEQf?;=etjV~c SVAR$ I8PLr!h6Fu^?KY5R^!yqfTR zejc7|72|*_o&D`^g2p(2qoR%iYQ1nTYUTwK41cKTrO&1C#zH;HU|P&3P+Ni>TiP@Z z?gjKM_H1l&wcfIEAPsURy@c(r0%Pkc8mGpe2epm6ve(}H35s~rEc>*4b44w`WxL`} zyShQ@)Ec50c6Eqn3+v|@&5Di#Gagv_Ktf)`ev(yWZxOM1N?o81xo#`F#Bm7h>bnYK zU^5@J)8jE~CVhlk q2TbUsQ>g~9sSBRBT&Q0Mk~Rk6N!iAjB}?k)^2kQeWZ~4 zAmi)eo#E2T4_DSdwkbv=U $BHNvUq%5AamB z)x8ZGlT7wMR|8SEkTcaLMxXo)_3 jqeIiO?uX? PY=_mLEFcvWh SRK~(5SDv@PxI?DXf4~ z-n983Ml X8?u%^~Apip#M?+xA6b>0LfQl3qwB~&?%~^t@V(uu?Z*j?1P2# zK0r4x;imqS>fNH_o}9An*#Zr49TVJ|s_Q%$A`_V?Y(tvKlBDsP2AxzWcR!7lY9Owm zF0mw-d|38L1e8j4$zP)J@X$DH=MmTXu{VMK&QspdPFCH#&xkLRaDieD-6K`4gy}T>>nK^{7;u!+)qBcVt)=|JK&Xsb%^{^V{8AKj@tOa%hyu8x5w>RM}%H4_^=e& y}KL_k4yYn zu57edB_mQ4XKL<$8(@E1xms>c4?Um&klpO0LRYM7-AGz@!RJGdlS zHSH#4;w5|(zB`QBTex&sqUGcFppQ>!dh1^`i&XJB$!lfx{NaHtbYa)e+x{@=`_(RC zc3MZg(y{v2`{uY=Bc1p9SNaf&W-Cp7 Z&{CxO8;>xYoS2Zu#R*XLL&I#qd#{yQ*RcvE6erkuRD!kUtV-;}ODj4u?wjbt5pkGMr6SQ?Gn z9h~Y6Yk$A&8Q~kp`y%tINROrGu(~gS|IH{k28_0vAdA?uIPQ4w?x>P9@wO{l$m}8J za->e?Q61ErF5qOG{#rFb^Vdts#^2Gi?+D0Mh8!{lsid~?^$Bj1w(n7bz27*t$>2*> z6+h#RqKF ck&s6aj;S ||;OUxr#8Q~gKt>u~{jRQ@Wt&$ZGA TCm z2-9%**wqpAdh^t8bTyBl6c$=SOj0KB_?m|jP>Azt)V>ytOCekJbfAg>p{y%+c|m$B z)1C=QPL*_F>tA<-X=Ql7kE_X}4iCSMtf}tq5_pvezcBWI?`0*}lT(l(!@b6L_6TQi z*Kp3_m&6_~^~&ktnAaI(zh7IMW%f9%)dzV*Jc#0+n8GfMBT&at|FAKp@BnFQ7}@Tz zDkALC66E1|u6cA@O2%<7a$u= Y0y(sRp>(kd6G5AlwWIEr-}<44Tvn!&q$0Rghi5b${5!uW85i&)^-i;a~0 zZFZklvz_a5pO)Ym5rvSLrF95|A9VR$>T&6TUYdT|+IX%KnZE+Wxlj6Osu@oa*rZlH z27HsCg ?{uzdd7q}EtNeHAPeQsyazEgH?Q_mBW;~3+QuwAtT!}$F4^>aXHlIE*{!eI)tXl8 z{(kb6r@}d(On47c5IZ7_ieVE$8H=e?`ek)niv_o&WyD >tfah>K=xF9%5)?X{GJ?YWu4|)VVp?xPS9D=Vw#|m12icbr4?DY zGghqlq&6_i3>M{-d%YCm8C&=v<+k+I#0;OqnJ=LK+m}k>7jMA2oS`u^(a&1U1x0($ zwSCNL@b|N#IF@&1Ph~N6ly6IWT`ewRbLz|Go3-7Vw^)U&=c0*`w^g0;v*%QBMb5@Y zRWY(e)YTka@bgGuCT_~8f7juaW2># j-$w zb$7pRDnIFc;ByS{z*j72+Pv-O>lmOxemx2?v8P-Kd2jLu8NT>ZN>CEo-M`wYy-6 zkw>wn(Wb!T?~LtH2eOYg!o@p_Dvsc%asQGNC>)xoV4H)Vcl`y{df1VB)@RJrx#Qo^ z5 (P@Z Ebu6B9yRcuVuSY#*7vdR=*lwx*AJY#`iks zV@87>H0l(*d8kU(JTyEUpOEm7i0EefaA@y(y&*hA5_Prpvy+liW;LK3mZU~aMe~fm z-{_r_s_LPx_tF7EPw=mpDTw^_rg-${)`^Cu=0b~)tBs9~o7?{B4oV|e;zp0{z;JVu z$dtv>29znQkmO*)kg425aBJe$r3l+`R*3y4guF4eu&^*QOT|#sAo}4%m#`+$zvHc` z-ZWW6U;4 75mwUrk}O{iqKBG=eZ+k4W1mj+N%8U5o+T>S{bj4NdpU=vz8?1Le=J#WIk{el zXvgV&e{KyIa8Bn)%2q(zx#jO4aGs2bsRQCGzAEF@7?1wYOqK+qqMVYeB7|zzkb078 z0&`IPDZal<=gFrLfpMW&+5Jgxvl!u=3l{$C8e7ce*LV<}I4fI)VT`{mt)$WPUcTzK zb9eS0BJ8;b5T^>)4)o+U#%7bFxsz`&DrTZ)@YvxVS{zy)gIsHvm5Dehpb?Z!mjW+X z-Ifn+`D%Nl(E2w<1{`$hoEy2ns!53oKj %a|5zb& zT|DT*pl%a0u|e#c=&((UvA6?wE%Dm{57{YeM~7x1S99yzLIX%NWX4&v- 8db zA3V6dEF@gbI##Iu%a$xk{x^gpYOy=f<7IEok&DwWvQa;NTD~m3^8VHD)&&eHQ_*F* zUeEh_7VgZIjdj#p1aGEkzD_UK1P2#?;%c{`W%WGL@a~>`Q#Ek7oR`HOSl{BO*(zQV zg)QrGl=`)NfXL`$ywmvo 2wv!VQ5?Yp2VyA1? zbB|M|{(P~@^YLn6aqzWiKi)j|8spj-^ hVGp#=R3yt3m(oP@yeH$ktt2t_fk6R zhfWer)Tg%bt&P_<#F%Vk9cZJ!a+ Uf_B~V9N36!}enyNT%Q8r3n2; z8_6+X4gq}U{Ye8mdDKXds7&W&hUM{X{sf}fZ6}i+9u#nO`|WO1y%9kk;j$`~-6`l) z{@ajt3j5L}x11>lM}-*Kr)g|rf;0?bih}r$?EHR-SZ__xxG>s+;v={b=B(frC6IN? zmWgK-%)+#4R3Sx5SNiem*Rb5LCz8SQV|;FR5qH}c1DRV2W>?F5L6Ezhy>d{nrGGsR z #Hw`k zz@%}jn-K3Y;HKws$#-7;!f?RDsaU&X;chJ*nOeZ5^kq8Dbg_Qy*{I&9=Pc^Fup2b8 zQeBn#?GE2=`HK_Gg &_L%8vHPDc!gW$(5%D4k&Gxa2`7oy`C`Fh9 +J`+M5^~Yo8K_d;(0b= zOFaUiP&&TDD0XrR2)Qi6cs}eC_yN7R#zA&pc_S>S)gzk5PF*G-DHH0`$>}5@d-_w2 zbfI}+UD18*g ^;?ck5M2~}b#d~_HXID~)q0%$VXho(+*i6Cd23)H^7 zKYgmlZ4%aXl9x55iY(qVCTqtLC2Y#n9xKB}x)-X;a@R9TH)zCw-zN5yIeehO0)B=0 zA>YB(3*)RP{v*7vP4Jr=WrX$3>O(7 gAk=kDfv~-ut zK4CGgbC>(tTap9Wy{{_ `Gw9!gP0rd+ Un8)S9O@+Wy7 z%ix+5h>=v4Wjrajp4Yf}N{HcwZn}7p{TuyC?Q!5RK~URJX>t(sU?@4%k;I^-oBgc# z#9a^nmZJv2;?>yu)cZ>NSxi}#BP^!sjfi DiHRp%b6u@m8JokiO^2r{scWm-p9777Y5#6#4|QEVW!T- z;I-}j?pFJEN3)dN(J&d4SrbVnE>7OlO`ADB>D38zRQTv0@y08TzD-inZG<)L)*X5b z)k%d$ve0vVF>Ag{8gTF@Yt?hn_~X-7#qXn#9LQ}hMNmqQEC~c+Vq!c!Jtf;_b92vn zR3p%0NI@m0d3EWpRM;&X zyGcXu63u6;rV=!Oo&zrIL|A!-+e~rwD+#ddD z{uxR2Pm8kQqtsZn|9*rP$;Kl}3FhqV?R$HB-$zCUd0(vh1Ra~obms5ec-bw+5;A)B zvGK(b{sqVgr_B9Sb5Q6ni0(w33_lbhDlQ&~2H&Klq;KE8p&DF8`DOkmEmk$*q7|>6 zap3LSx9;xRm^8wIq|mowc~?cVWoZII|2XDZMN+2CHg1zb+`(4~5FeVk^>NZ|DI*J? z2U}UaBbH)B6~_{zK{ip_=CA24o8l$=Xv&fc(VeH$+$A)>UPkazKKloX`=`F30fjSl ztDKUw*u>ZIe=30-Cy)|j-*)Vv60=S8U(t^b?;;>E7L9n)luANqbSsEGL@d@z6Q{a| zs8S*uCk54BVxw1KGoQwrqK9bu#GOMDS}+Cg3t-b&v2H+$4}ERPI!HjF$@d#yG2gSt z`iKM}pDhq2p_dNu6T}7G*Ef;4*Y)a!L^wD&%(?gfZYcV1Khghtn~{y?#a*)=Z -He1Z(!x+mgA5G w1Hg3CYzQtw= #Wka3zi8_@SUEAMH;1Lz4MK#t;4X5ZNM$w-y *0wsKQY(hx*JpKUJ&WC{pM{ZajTO-B3$Wk6D`|>r zHkQC?{0KYLj7H|q{fS*`j~HwUddIvx@Fl;Kp_?|zX|t>T1<#Gr(j0GQXa!98zttG; zI$B|sqrNr+OBvc!R}vC4reSW9M(~o6CC8(?iV@|`I2BzDBn^Y@ (27 z?IsPJb;-myoiamw2+~a{7TnX{_rr3R65=EGRg8Ev`Ai=k^7HQ4OY>H2F`YX{4@nj0 z{UdPh90;DZB4#5Y#98S@{P _0j6%@1b`UOSw${A)lHif7pBvoT@c}8)0}hb_OTmcg?ITbO`nJ zaqA}M0%p;*K|n}QEO0~$DbZvy?Z0Jvx~5sYeQ4?+jZ|Tq&3^q^C)0K$75<0dbelUw z3w?iR@K^ Z@{CL{a5- z9+UmiTgx^_46y6885t(%)mpVXs_ No}iu;ehmdD+F z{)D$%Xo;Qz>bd`KInv3Vsi9>1>vr>{zngZu(>^W*u%2iE6bt@dNgD_A#;-);%~ac( zC4|bpsc3zac++w4S#Lx;PhFYQ>FcQACUJ+&=8B4BBD6D}2jT8o53+;U(&N9WL=~Ad zl=;(`m0Y_ui$YA99D!}`JMufGZo;m#xcgF6(YuMp?B)%y8zMaj9iO&)e{{3e)^b@D zRJ2cLt6}Cx=$7B)v8w21s_Wrmcm|)oV@8feXAqx;5Pm$$-%(1FHY#BEN3up*;xom5 zJ%ZGdyD0JV;50wwjU1k~O&9yFNdi>UDMF=c@)&xJP&F`{o8mRj2tlt_?!g{8&Z&+b z<-n&2G6=+)`oGUDj@NV9cM0A`?{ )z#6I8- z&n5+f!ruurYwyTkO%qtOZ8tBY!`tu*x)v@_6Kp*>!#DBV4QKA{ztfpz5IX7_Y0)#P zIBLp_BcHI-;WsIl;4n=#U7CvaEsGc4z2=#tWGQRsY9mT |dtJ=5RQ$dD*uR&IT* ze;uY(jp`NRhWjmRYX>4rq68Fi*R!q^f1;iKQJ_PkbRY;uizsr32Yu+Cs>zKb7U>CU zzgKT*JECjT;(7?Ft*C3{*(?s&lv=6d=5>zYPUT}J(TT-k^=5hj1w1hMnO3vU(~c{u z*~%lw1WH@) uabIrElg^CnA~9Ddc&%D zCY Z;lXeN kP(4bpm>3I*P}h>S4e($Y%8`~{T+23{2=kCJ znZ*8{#e{ZP+ueH0$feS*20M?l>YTwvO5=erz$=@#hRWt3Inf>r^{{@4N&sIK)`2PG z1gR~T6j;bJRr>08f3SfHm0|f?83s!((IcxB;%!bWb>&VNzZO1_2|20yM1@D;q+n~m zEZ)w-C`Jnbg)-D^G0KrSXDY{5=Iha!F+nsnE-JIjb}p-zdCa@{YqRi1R$@-A(2IDB zIY!Cml+~<46PldRNZG+6)rq~60g9VB{Fx)om$76!H0Q i 6Ik(!i7c1N)a=RNQG7xs#{mN%YU{wFsgWprPaYv|^v zaXBXZL*Hj}<({pA(xC%!dv&I}kM-P$e?hS7y6vNfoPO~g_UQJ7&+>KCpz|$7_H8x+ zcgWjiruvp#O;X!;tfj=P=xfoLlji94MRwY%3# *_mk6Qs^yHFOAM NOELMBGl#>q6VV5bz*BGg&X*&c z!yij29~C}4_UBZ0vT?$j^_)|p`)%2*iRi`8&7XWJyyu~`qH4wfq)-PMlhE~U|LJk^ z$6#MC2DOc!!$;ff0$L(lR{VaLjwx7r$BP@)BmdxJ33@vU4aJ%pW+@Mzoxp%ltv`CO zt?pK~Xv6WQeIs;2=ov&y_=%am<4$y$8npye$(;kRUlI&sza#LH7D26-T)XO_8wEEk zpflv=o$Mf=IqT7Oewv`i+ZtN`Ma{>XMN=2aOuZ}SO8%Sl{&l)HckPZYNDBU1Kjdn7 z6Yu(KQqRo6w$@Nz09B;`4Of1+x^W*)azieoZex49eIY-JPcVof zQ3#;G=sfxq#2=#&?Fcp2Gg%va!*lZtO4c jd0N;dmTd%~kyd8tc0Id5 zRs3Af;e03NdP_VkI{DE=6gW6PZC@>0XDn1(v9RQ_TNMXzDEIxbuFWQ`=>2vE#6#nG zgfE-JKO3gZyy3<04*j(V0sYxxc0Dx5#5m8`2jB@Is>pD6?E|dr<1T*Jly;&uQA6u5 zs*`Vzglb6xh2Huu{*Lh#o(u0V{|Yc8m8Y1LvBCuspGlxZ_7ks4$RgVMH<#Vhj27$f zS?P=~Qqrx?5g^}o{VW=9C^6UKL34g<43nn_OSm7vW1N!NpmG%?n_R_=3Kf`4|K>@5 z% PZQl*vV!Ba>SmKN{Jd0=V)bvRKb3l)`y{Z#!TU^Y701vj&2Rui zW+keSRpWhiKR24(p8=~B>cUV(3AhCun`kK6B&hikD(a_N^@{-NdCl>PL7N^`Txn#% zV@^}it8+qb&aJ$gVdWu7_Zd&U{t22a@jasbA9E-i`TR3zBatR0ZHfd{)aBN%0ik)} z05}~LnNnxCR|E6?d$87I(pU3~FU5s=ZlVH{N_GDa`Hr7Z=_hK4YkQW;$ kb}TU7deXo{IU7?bt%#G4pDKTm zy_k1+R;k1fA9Y#`TU`ZXDfS;SmFSq1k6g552UQ;y$ci~WT(h=tRHfToceP*(M2Va8 zcq|!irp|;{mTbGD>V75>bwRbZUyDnNr6~5Jt;^odk;(zRVlQRgi5~LjDTv#lU#jey zIGybFpOwE+y~c!#&=BT0!~r~~deZ6XPBHRo;Gw;(?H8d+Pxb@=xGxY7XWli5UT>7& zttsa&rLK1iPM>zpLq>Tu(5zUJINN-!yx;C*JW9Gl99WknB{vKAPo_Ge*bkj*D)Dg| zum6%WcQVnqVlwI7bQKhn>~elMUZvdIC#nz(*k}TTVIHMXouiFeHC8>;;*#;BKj#nl zguePGG(jSLNnO5#*Ye_CSjIl`4eSFM?av|w`AS*m$`!?76kfmNf|HIP+K2Bj=axmK z$URyoo}QO4YJ@qMKWe~T8?ECe=k2x#@}CxFhlZ}`7aPasj8g8T@zq#%lJ|w>nVAi4 zzrOnIq fAtWWI_n#Si*MR8s$mUR{9heUQjYgK_mKea;Bi_OHI|N zetI}U@eG0YShpd1Chj$MRAR$OGzwgFA4ctJU*a)(#6m_LiGAt$dA81pXYNl%uWPoU z eA =|M=9Cg|;9rGGr$%Nx;%V34^^40s)k_9-JMWJ$(HN zr`&r7xo6Ph)BaD+_e*XtqcrspU5_X)8Ouv~;+|-}RPZBO-Mzzm#9dR`mKkI1MfLLi zR8D(`l)Mj%x}T`b%mug!+{4@SZ1`-EA+>x;|KbVZesQpyqi7K-)mo%z>Y>&agCQ8J zss~NL@?T?O!j!Vf-0am|2`z<68rW)m+|Lg$t0q1+*jSZKbVFI~AIT`c7UnD)ux zV@*_%cMDZF5kNeYHpz$KRmW8Jbrsy};FqSh&V|lun*&zfd|?GX-#KVEWLV)IwD0Sm z!pZi!gaqLTxXp}}v^E|m4S>W^!x((5hJUf9CW1M65li~Hq#8*7j1`GVtk(@+n3dGSg|02EQk;Dc8kr*|eb9>s9>ti0@hc=oDX4 DY T-Rdj6Ah&UyLYax{zSC9aG3n7mxyXB&h1^_vqdTPV4`Op_&4J@G z>TM5H>HN G)JS~Njz8c)wRr-9AID^m=Yc8PE^^MZvCkF2 zf0I}j578bfgjp@Fmq?irL~iza%PMJ_2bbmLG?WTxMGk7c_{+``M#%{fMiuVcnu;PU zSlT(4O8S@lE-4#L+3pW~`-VU!e|`z2dEWBe@FVX2<_mClUQ{^y;uowZZoR}q^!Tf3 z;78{buOzf07qGRgToqOn9vyiy5mR0wt;jygpDH_*Xv#iwG C0^5s~a$n)YN{6&-hb_+afY?(x zEYj2_P@Ad~Z9x_3txm-zgaOK#`*^Hi<7HWf`6qa95A^q+LC2knukA?sibGdw7)T}N z+2T~!NK7#70rbCA(g7~#=EMdxH-HUIw0+4oD%_cMrR(KCSdPp+W^WyF`Y8 P92s_JKbZK$~6F|YN{3KVng{?;R6iAgm{;TRO#j+Et8{IpeA-*QbqLf!SD z#9#9Sd8NIw^=%)ax~ ZpEu%g?l`4@cxk8Le$tjNgKfw5H5sp|KpQHQ%Oklk198@wrLilWARm zZ^b?5L~|y^esluOq6I`RqO#_XKoySzln7|c)%u&xu6C+cVQTC`N{j;!B16(CO%?UM z>~sQ|GX2S3t(k+&ly1h@X2~xr>T_|59fF=8E&g%n%tsgIh4dI3OTZDyEE`pmP6(&e z!RfFqtGxfFq^A2rSoCI^{K%!Zix@M8??O#PH>1#{9_Psas1@KCWs~B(W)p 6r7?3ac8kA$ZtV#0Wz9M4!wk6&9$Z)=^0-<6^F4Z?qgC7dhZiJP_~8jgVU zh>44$I`AW?)xPCaKI4o0ch%?3U=}K2Dez?jbFH?W#AGJD8Z*Ai$sDdY-iG})MynX) z0 zgFbN}-<$gXWH6K;sb!$m>>C0|Ctd%rXROXbxR})0uC4R@2!z8SI zMf%B_>iyr={4CL+>QLcixHk>JMgMgE>iZqz%|n0GJtc*+c@=auvs-)U8iMgt36>^G z+V-E>W9$j4Xj~rb>lNH6O>*L8f7QgBCH~DIUh>w%pJu+liJe1xY +LAQL<34q>Gd8$UZ8a;8QLE|Fpg+~e~~Kia94He&>;se z#aJKK_6_3-HC%? =*p)B7(OR_1Ja~hvt=0b+DxpPKm@*)t zB_lh+1*+hB)&MMn5a$UWn)m*T>Llbv$unt3I5mj-=kM!7Kpo3`F*4sY=yl~Cm9^Bs zFP&rzZRJU*^iG@rIf$0W#0heYu>%Lit-KVCo%q;z9$x}+y0Msf7*hztcH?XD&j t+*i++_PROs2M~mT)?rowB&^QM4N)Q-|n$3Zt8snYNm+P|2McvI~&fWbu zO<5!Hc%$u?$>ltrPMj5Gxe%^_pjMDHP`FS{pSh=TR+O}%**>7H;{Tsik;3?@Q(x|p zW$6C72qdZ~K9Sw$>yy7Ea(5IjKFCw W?Fb$Ru!A~)17LfTAj=$L@ zR 2<2o&o;Xs8 zOfCs)s846#MNXy&0AUG0H{oqEp~R!x7bgF9MuhGSbRsA*@vbJJnfjPUS4|uE;0G*o zjM*N8+P=o*U^XE%fF7Povv@4#>HK|6WTl`17#11AyS2=Y9!Mq@Qz^+&+8@G|>Vepk zq1}6P+lWF9Hl1S5mPQ^Lc?`(I9<~;bb7NNJhpEUSIZms20x(vez%-8Zz`63grJl 2P6=v6Z|1*Q0Js##XSuA7FO^%Xn;pj6X#xeiD4HL}Sk62&-iBwA|fc5$6 zl;Z;8Ycz+>cC}&`I`EMssfleBnS-9Iy5cV}j*|VvlP-vsD}}m)ICEzQoD4px-@X0P z*|Oq4;7eozd=dgm(-Dw?iw6%G>0pCOoNH1Wo6Q4AsaMz1VWyjs%YZ0CuF3Jqse~68 z=#3?6Tm4#v%PYIkMNk-N?(ZTp|IK18|K{>SuGw~`y+!5b@;_tGJx_f@?+Lt@fa3oc zBrcDM_NTpw7YsBTQ&0$7>z&u+jdX#RpsVZh;cAcV+bJ$q IaAB$*O}V)V1NW85aI78snL9aJEhT4_(?M&u9`7e*T+jb;%w jyt}VGO2zm ^^l-ZJv~*d_w|rG+MH zWaM2doeIl-WbVx-bhAlR=B8#t^y+x8Z+N3XHjp68+l^rU<_b^HVgH^| R%66fww-|~KW=_-qb_3$`-bl39e=sxT!yH&nqNasoK$t{+j+{~ z9O$h3%(ZjieQDl+l244S*242Y)}(;fI!}UH&ZYh^cF6=uOXlY|IVUEHPbNSx+T`w$ zeyN}07we9teWjwT@Oah>8}V0esG{qt&iILDO9v5CrJmm08TpdDh%5GgvDCL+6+AOY zYI$Vmw0@f`ow+Ct>rLGVk5<>``jYy Qnl zOU>Sna}Lh*9@*&;-2N;tKJh|9P(op?ZUR}8F^!B;s5w|_J^Z^Yp8mZw%ohX}992{2 zEzL6|&H5<5+v%1OLxrzojnd~0 $>T{_jmF|O zNI Gg_3=ZGa2Poy zj;&tIe_wTK5*G!x`;}w~gF_OUp7mQM%e<(cf>DM2dttkD=sQzE=sMfmDCnf?u)d4v z>vhb7xRm65g2 K{UfHOZSFb%vUJ%4qPZ~5dGd)Tog z`qsdtTrh=X<&(V$^7iU?{-S44Su^bh==_%Fag3DjT2hSXTBSNJwq;SMtz*br*t;1| z2LY`w%1a7M6|Je*?x^hyJ2MF_=1u821&_DSa{XyJe|HlTq_DH#Wk)Y3baHQ%aNlq8 zJ7s1#PY}@J@Wf>a6Wf}7{M57|#;qd^OA<#y+H7+o%Im6p-t!oQ`vqnMhX#u>-WPUE z9<|n#2~l6FlHPM8!*ljf=nwOKH&lSm6`OF^ aPLwP`D3fwXOZ z`fLsBe5W!F&*d@JbHi2+vavH$&uNh^vG->Bso$?z_Z^j5#P){gl{>|JvQu)TQl_%I z@6yWuh#(!0I`Zf`x)*md^yKiXK %9^g~NXgAnq65dT) zkdpoDt+TZLy})b{arEuIQZ*zH$Kfga<6HPeCB5+7Df8|)bJ1hS&)M~X>0NGd`mUdy zYz)TeujuQ<5LVIK%H=|#-&|veDBkhX8>k`MTEoOo5y4DXJ`6+AMaDlZ AsM9S9@1N(lTA zJpSOc`GPbyhXa?0nkCG2K{{1-bK)x%hx&E@Avycivc6VmeGFwVVOZ&b11RvQRnod& zI4Y=c4&4QzfFnq6r00)#{PXxP+px{l-wfsvGIAy#FyNJQ(A(wP{S!utg>A}EYWzX? zfH(#tyvB~hpf!Jk#2KifWeq-4kW!DOAO~@jPH;3M2TU54*_u0LI7u!C zkE<4mIec&}e9{@|h+_ulJJMyxC|Z{|8Q} Uk5PK32~g90BG3t7R;R7 za+I(u(BP7u!S^KO;{HQ0v!p%x*hg|S@P pD^?>$)&awL!i>l zcy^d8vWC1FOp9Sq-&}d)fpK-hgGHoIquc5??w)%cji?z0pGMSH5=bv;3v|(PBkZx! z-9s>?;0L7y;M2)zSY62NA3q2g#E`1(K1VFT5q*A$^4JZ_k=z{*z3kxsT22qOpQ!lt zKAbV|3`g9xG=^t|{n^0F@8QP4N#}xV#Kk=32lkE_3R>-_MlxE5oSuFp5(oo54!+%k zO74Z6nl5cIC%&M1!^<1bRdKh`$+8lPuUa<0KTSL(=N$rsS{Y${$Nt$58{i=0=bvo0 z`jbn-iUOFpSi(3xGJZsXaCBcIk}t=eQ1Cpy6aJT4LQdiwvx~nv#AwpB(jOH0N~(^< z4c$+A3_9Zp_C^!>SS*Q-&COKYpsh_l(=?un }?%WJMo@vXb>W9)- z`#aeqgjiAnTC}@mPqvA0w8OBp4}?EucrTrwrfw?ukl$7lxsgg@Xm3;tSWw)d(6je3 zd?6tga)wz6Tc0Ge%_9;O6?_$JKK_xyx4yAJng EL z^N)e*2|%>MlExQg36jl~VOPui;xt<~)&$)uoLeg?%7#yyy^rNFYgz9r=^Dh`9Yitf zTL9deg9Rrq?{Lc4Wi0$IU126!YB#JWca9D-D#yuWyf>PozqYu!zIu$Go-lU2J-Y$a zU-An|cxZz57*tTreFQLOL`<;c`{PJvTU;!b$i>S)A`{coYduagMCcnMy68k@>uUP} zH2vMbq2jHtz)%Fb>XnJ*ADx?f7Ggn;OW3s=aME0DB8FiT;M{*BIEQ=J-wzSlUK_!Z zyLdS{+rBBM9ydGrA5ZoTTh}CguZRA5`g_+r>sBN~mk1I#ms58Wvkgw*=ld&t9_Ezj zj3cD!U3c{S{7-49=L*c6bL07L?sRccdwhl<5vFkOLJViU7-R)SYu uiEapZNINZ`{ A(AlP7T03 zH 3>Cg$v?~aBq7$?z{=9PyX{w&dx=q)EQ|@`g4Mj6KO=5`tWLO)$^!c;78C{*C zn~8fy$J@U=R}RIEeDVpS@8OsHL&-N0UuBv>zB?Ps!ggGEH_L{#2R;NFS)&Gd+f| >g_+aMbw8%T-hK8A9gXY0f_$Q#en~ zjA{HkQKH?*^8^Tm@^lUfuS<#6%RU~XhAN>XzHiK5U3_yGoyC=DZUl-Sef^|2oT^Hk z;#{c8wT7$- DAbfh{BcWcFpb@vF-4@>O^j&!F|Ky55Y69QR`!QV&IM|N~Rp>(sS_^ z9+m&x48JAGQASISL*$~e<*;PQB8g$7hsMuj8JE9#?V9 tF={BtJ5^+@ zkWz4>qZu`Q|H=5<4Xb1m2mRTc_m=xiTUG99i>WvLi pj{P9O}p(3<+j}ylFXZ)&slfpms zG=*Wks48R(C^kk4XQ_us3&VR^C%a+=x8o*j>`Fp*w-sjoB>Y#Nv0=jMc*QO<-kFhy zd#S;7 nhwMxU;>;ak=;5WpFusz2}gA%6^6FjDmgBFK87buREPRq zUv+Q*zHeTqhxy^pY}h$FYy=w!VoNz2s$EEJ7RlzO#7PO}6wV7K{kbZR6353c8D)rT zi3W2|;)!MYkw{z}A{*s8B)GdgE_4J3+bW*>awEaPXvGs{qjwdG6PqkU8?n_y$w zfj;fJny4d8brxFGo{v-1mLEnJU6jZt>%G4{EJNwswyO&u&Yy!wZ0Y?G+Kb 0#qtBjPgz*u6V zH~?k%niI{N|GadS{kHbwZBw92b6fe2sb?QhAO=W%9rT;4lOu0buOD?n(u^W=*zU$I zJqv#Ak|?m(O`-mqIt F4M_NX9Hx-0lj zjVAATZnV6bW`pmM{dn;G6SNvJ2@WoTUE3kuW;`xE&UaQ^Mwf^BHcnii<2Tonbcc%p zzLD1#n_V5}Sn3b1U=e0{cX=}l`pg`Q#5xWWvYxFeEFsyNE } zQs|1n_SeUA(f&7zuI!BI3=*pUoO}=0mXe_EgW(Qj->2&Lv*a#zGSz|Ft s>gw{PQi+j+by@uVJ{AY**eLO#*PfRe2C^ z%RCjKZ1t#L5cSmot>n=r fZ1*? @Wt2X$a~wx!eYqt4w~%&= z^TQcedv=3jwKD=)#5K5ETYY0A?G@J+2R&!L92WLVa0@j#?>mpy)kA@it>(fA6K`^U zaMMQKHOy#Z^rH2=P7nzZ&{9Zv8gbZ5=K@@{o1&^@+DlgV{f&SpMRtmVin8XAkiXMY zWog;VxH*iR;L2kB?L&Fuq0&3aij)8$N!i*#OOLt~VT<&a@oi%U=PA=|M<~nl(h=+2 zH1m_+VZU_C_m^$Sw*Z}C!E^P~ghj4ln$*+MuW2B~_VJmvFzR82DM~`(Mp(V(4c`>y zA7r7$=g1-$pE&AD+^DWSCsNLFUnTvWm-gsdXaAAl8iadnR?$-OpX_(y-J-Zqf_2;} z)=}wMS&whF^gMzt?awnGcHw5KFcmnHiILErB6F^F*fcc?eMI*kwsG|Ki!X@gLZH$s zyS%RVVRhaUWD*_qnzL(5C#2B>LV&tRIZf0Zv {0t@WYaH zjvB9{v1o?C{P%S&s$SCn^!Aqg{TiOl@zxm|N##0(^Hv5+ZYw-WwVsyTW>;Um0??Jm z&u9A&UQgxg$KJ1@NQj(yfc4FM5AkGv+kuaVWVvMKT>hNRR~AY&r^4A&q2Y{_(L!yf z4lkOw{ti4thBXOl%)}njCY6~+`@+7-?M3@9RtKRa*X6%=J%O5t0RS<)0j?6&3G&cf zg#iVu*HOS7tN`v$NzQ+`{l-TGLtIr>T}d2!qOSP-rv?`z2qD}i5jQ;GeJihOT85a2 zyw(~G$C(