diff --git a/.env.development b/.env.development
index 4ed7ec7..b4395db 100644
--- a/.env.development
+++ b/.env.development
@@ -1,5 +1,5 @@
ENV='development'
# base api
-VITE_APP_BASE_URL = 'https://evote.truescloud.com'
+VITE_APP_BASE_URL = 'https://hqt.truescloud.com'
VITE_APP_BASE_PRE = '/dev-api'
VITE_APP_BASE_NAME = 'POS'
diff --git a/.env.production b/.env.production
index 6ca60a8..3ef55db 100644
--- a/.env.production
+++ b/.env.production
@@ -1,6 +1,6 @@
ENV='production'
# base api
-VITE_APP_BASE_URL = 'http://pos-api.lingji.vip'
-VITE_APP_BASE_PRE = 'http://pos-api.lingji.vip'
+VITE_APP_BASE_URL = 'https://hqt.truescloud.com'
+VITE_APP_BASE_PRE = 'https://hqt.truescloud.com'
VITE_APP_BASE_NAME = 'POS'
diff --git a/src/api/index.ts b/src/api/index.ts
new file mode 100644
index 0000000..3108710
--- /dev/null
+++ b/src/api/index.ts
@@ -0,0 +1,67 @@
+import { request } from '@/utils/http'
+
+//首页专题
+export function homeSpecial() {
+ return request.http({
+ url: '/api/huiqitong/home_special',
+ method: 'GET'
+ })
+}
+
+//banner列表
+export function bannerList() {
+ return request.http({
+ url: '/api/huiqitong/banner_list',
+ method: 'GET'
+ })
+}
+
+//banner详情
+export function bannerInfo(id:string) {
+ return request.http({
+ url: '/api/huiqitong/banner_info/'+id,
+ method: 'GET'
+ })
+}
+
+//活动列表
+export function activityList(page: string,limit: string) {
+ return request.http({
+ url: '/api/huiqitong/activity_list?page='+page+'&limit='+limit,
+ method: 'GET'
+ })
+}
+
+//专题详情
+export function specialInfo(id: string) {
+ return request.http({
+ url: '/api/huiqitong/special_info?special_id='+id,
+ method: 'GET'
+ })
+}
+
+//专题内容列表
+export function specialList(id: string) {
+ return request.http({
+ url: '/api/huiqitong/special_list?special_id=1&page=1&limit=10',
+ method: 'GET'
+ })
+}
+
+//专题内容详情
+export function specialListInfo(id: string) {
+ return request.http({
+ url: '/api/huiqitong/special_list_info/'+id,
+ method: 'GET'
+ })
+}
+
+//ai客服
+export function ai(data: any) {
+ return request.http({
+ url: '/api/huiqitong/ai',
+ method: 'POST',
+ data
+ })
+}
+
diff --git a/src/api/learningCenter.ts b/src/api/learningCenter.ts
new file mode 100644
index 0000000..bef21e9
--- /dev/null
+++ b/src/api/learningCenter.ts
@@ -0,0 +1,62 @@
+import { request } from '@/utils/http'
+
+//我的学习清单
+export function myStudy() {
+ return request.http({
+ url: '/api/huiqitong/my_study',
+ method: 'GET'
+ })
+}
+
+//学习中心列表
+export function studyCenter(recommend:string,title:string,type:string,page:string,limit:string) {
+ return request.http({
+ url: '/api/huiqitong/study_center?recommend='+recommend+'&title='+title+'&s_type='+type+'&page='+page+'&limit='+limit,
+ method: 'GET'
+ })
+}
+
+//学习中心详情
+export function studyCenterDetail(id:string) {
+ return request.http({
+ url: '/api/huiqitong/study_center/'+id,
+ method: 'GET'
+ })
+}
+
+//收藏学习
+export function collect(data:{item_id:string}) {
+ return request.http({
+ url: '/api/huiqitong/collect',
+ method: 'POST',
+ data
+ })
+}
+
+//取消收藏
+export function removeCollect(data:{item_id:string}) {
+ return request.http({
+ url: '/api/huiqitong/remove_collect',
+ method: 'POST',
+ data
+ })
+}
+
+//增加观看次数
+export function watchCount(data:{id:string}) {
+ return request.http({
+ url: '/api/huiqitong/watch_count',
+ method: 'POST',
+ data
+ })
+}
+
+//观看进度记录
+export function studyRecord(data:any) {
+ return request.http({
+ url: '/api/huiqitong/study_record',
+ method: 'POST',
+ data
+ })
+}
+
diff --git a/src/api/login.ts b/src/api/login.ts
index a98c560..60af2c7 100644
--- a/src/api/login.ts
+++ b/src/api/login.ts
@@ -2,38 +2,14 @@ import { request } from '@/utils/http'
export function getOpenid(data: { code: string }) {
return request.http({
- url: '/api/openid',
+ url: '/api/huiqitong/get_openid',
data
})
}
-export function getMobile(data: { code: string; openid: string }) {
+export function mobileAuth(data: { code: string; openid: string }) {
return request.http({
- url: '/api/mobile',
+ url: '/api/huiqitong/mobile_auth',
data
})
}
-
-export function getAdminPhone() {
- return request.http({
- url: '/api/admin_mobile',
- method: 'GET'
- })
-}
-//用户签到
-export function getSign(data: { meetId: string; openid: string }) {
- return request.http({
- url: '/api/sign',
- method: 'GET',
- data
- })
-}
-
-//扫码时手机号获取用户信息
-export function getmemberMobileGet(data: { meetId: string; openid: string; mobile: string }) {
- return request.http({
- url: '/api/member_mobile_get',
- method: 'GET',
- data
- })
-}
\ No newline at end of file
diff --git a/src/api/mine.ts b/src/api/mine.ts
new file mode 100644
index 0000000..beefd1c
--- /dev/null
+++ b/src/api/mine.ts
@@ -0,0 +1,19 @@
+import { request } from '@/utils/http'
+
+//修改用户信息(单项)
+export function modifyField(field:string,value:string) {
+ return request.http({
+ url: '/api/huiqitong/modify/'+ field +'?value=' + value,
+ method: 'PUT'
+ })
+}
+
+//图片上传
+export function updataImage(data:any) {
+ return request.http({
+ url: '/api/file/image',
+ method: 'POST',
+ data
+ })
+}
+
diff --git a/src/api/user.ts b/src/api/user.ts
index 81ce8ce..6668734 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -14,48 +14,17 @@ export interface dateListtype extends listType {
id: number
}
-export function infoForOpenid(data: { openid: string; mobile: string ; meetId: string }) {
+export function infoForOpenid() {
return request.http({
- url: '/api/member_mobile_get',
+ url: '/api/huiqitong/member/info',
method: 'GET',
- data
})
}
-
-// 手机号获取用户信息
-export function getMember_mobile(data: any) {
+export function logout() {
return request.http({
- url: '/api/member_mobile',
- method: 'GET',
- data
+ url: '/api/huiqitong/logout',
+ method: 'PUT',
})
}
-export function list(data: { name: string, meetId: string }) {
- return request.http({
- url: '/api/member_name',
- method: 'GET',
- data
- })
-}
-export function update(data: { [n: string]: string }, openid: string) {
- return request.http({
- url: '/api/member_update',
- data: Object.assign(data, { openid })
- })
-}
-
-export function bind(data: { id: number; openid: string }) {
- return request.http({
- url: '/api/name_sub',
- data
- })
-}
-
-export function add(data: listType) {
- return request.http({
- url: '/api/member_add',
- data
- })
-}
diff --git a/src/manifest.json b/src/manifest.json
index 39cca9f..05e431a 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -113,7 +113,12 @@
"postcss" : false,
"minified" : true
},
- "usingComponents" : true
+ "usingComponents" : true,
+ "permission" : {
+ "scope.userLocation" : {
+ "desc" : "定位"
+ }
+ }
},
"mp-alipay" : {
"usingComponents" : true
diff --git a/src/pages.json b/src/pages.json
index 447cd4e..6d4ed84 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -1,182 +1,210 @@
{
- "easycom": {
- "autoscan": true,
- "custom": {
- "^ex-(.*)": "feng-uniapp-exploit/components/ex-$1/ex-$1.vue",
- "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue"
- }
- },
- "pages": [
- {
- "path": "pages/index/index",
- "style": {
- "navigationBarTitleText": "首页",
- "enablePullDownRefresh": true,
- "navigationStyle": "custom"
-
- }
- },
- {
- "path": "pages/memberCenter/index",
- "style": {
- "navigationBarTitleText": "会员中心",
- "enablePullDownRefresh": true
- }
- },
- {
- "path": "pages/learningCenter/index",
- "style": {
- "navigationBarTitleText": "学习中心",
- "enablePullDownRefresh": true
- }
- },
- {
- "name": "user",
- "path": "pages/mine/index",
- "style": {
- "navigationBarTitleText": "个人中心",
- "enablePullDownRefresh": true
- }
- },
- {
- "path": "pages/login/login",
- "style": {
- "navigationBarTitleText": "登录",
- "enablePullDownRefresh": false,
- "navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/specialSubject",
- "style" :
- {
- "navigationBarTitleText" : "专题",
+ "easycom": {
+ "autoscan": true,
+ "custom": {
+ "^ex-(.*)": "feng-uniapp-exploit/components/ex-$1/ex-$1.vue",
+ "^u-(.*)": "uview-plus/components/u-$1/u-$1.vue"
+ }
+ },
+ "pages": [{
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "首页",
+ "enablePullDownRefresh": false,
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/ztdetail",
- "style" :
- {
- "navigationBarTitleText" : "专题详情页",
+
+ }
+ },
+ {
+ "path": "pages/memberCenter/index",
+ "style": {
+ "navigationBarTitleText": "会员中心",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/learningCenter/index",
+ "style": {
+ "navigationBarTitleText": "学习中心",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "name": "user",
+ "path": "pages/mine/index",
+ "style": {
+ "navigationBarTitleText": "个人中心",
+ "enablePullDownRefresh": true
+ }
+ },
+ {
+ "path": "pages/login/login",
+ "style": {
+ "navigationBarTitleText": "登录",
+ "enablePullDownRefresh": false,
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/index/specialSubject",
+ "style": {
+ "navigationBarTitleText": "专题",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/shopHelp",
- "style" :
- {
- "navigationBarTitleText" : "小店帮",
+ }
+ },
+ {
+ "path": "pages/index/ztdetail",
+ "style": {
+ "navigationBarTitleText": "专题详情页",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/shophelpDetail",
- "style" :
- {
- "navigationBarTitleText" : "小店帮详情",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/shopHelp",
+ "style": {
+ "navigationBarTitleText": "小店帮",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/interactiveZone",
- "style" :
- {
- "navigationBarTitleText" : "互动专区",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/shophelpDetail",
+ "style": {
+ "navigationBarTitleText": "小店帮详情",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/financialAssistance",
- "style" :
- {
- "navigationBarTitleText" : "金融帮",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/interactiveZone",
+ "style": {
+ "navigationBarTitleText": "互动专区",
+ "navigationStyle": "custom"
+ }
+ },
+ {
+ "path": "pages/index/shoppage/financialAssistance",
+ "style": {
+ "navigationBarTitleText": "金融帮",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/jrbDetail",
- "style" :
- {
- "navigationBarTitleText" : "金融帮详情",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/jrbDetail",
+ "style": {
+ "navigationBarTitleText": "金融帮详情",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/mediaHelp",
- "style" :
- {
- "navigationBarTitleText" : "媒体帮",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/mediaHelp",
+ "style": {
+ "navigationBarTitleText": "媒体帮",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/mediaDetail",
- "style" :
- {
- "navigationBarTitleText" : "媒体帮详情",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/mediaDetail",
+ "style": {
+ "navigationBarTitleText": "媒体帮详情",
"navigationStyle": "custom"
- }
- },
- {
- "path" : "pages/index/shoppage/mtbmakeMessage",
- "style" :
- {
- "navigationBarTitleText" : "媒体帮发布信息",
+ }
+ },
+ {
+ "path": "pages/index/shoppage/mtbmakeMessage",
+ "style": {
+ "navigationBarTitleText": "媒体帮发布信息",
"navigationStyle": "custom"
- }
- },
+ }
+ },
//视频图文详情
- {
- "path" : "pages/learningCenter/detail",
- "style" :
- {
- "navigationBarTitleText" : ""
- }
- },
- {
- "path" : "pages/mine/porsonalinfo",
- "style" :
- {
- "navigationBarTitleText" : "个人信息"
- }
- }
- ],
- "globalStyle": {
- "navigationBarTextStyle": "black",
- "navigationBarBackgroundColor": "#F1F3F9",
- "backgroundColor": "#F8F8F8"
- },
- "tabBar": {
- "color": "#9CA3AF",
- "selectedColor": "#007FFF",
- "borderStyle": "white",
- "backgroundColor": "#FFFFFF",
- "list": [
- {
- "pagePath": "pages/index/index",
- "iconPath": "static/tabbar/index.png",
- "selectedIconPath": "static/tabbar/index_select.png",
- "text": "首页"
- },
- {
- "pagePath": "pages/memberCenter/index",
- "iconPath": "static/tabbar/hyzx.png",
- "selectedIconPath": "static/tabbar/hyzx_select.png",
- "text": "会员中心"
- },
- {
- "pagePath": "pages/learningCenter/index",
- "iconPath": "static/tabbar/xxzx.png",
- "selectedIconPath": "static/tabbar/xxzx_select.png",
- "text": "学习中心"
- },
- {
- "pagePath": "pages/mine/index",
- "iconPath": "static/tabbar/grzx.png",
- "selectedIconPath": "static/tabbar/grzx_select.png",
- "text": "个人中心"
- }
- ]
- }
+ {
+ "path": "pages/learningCenter/detail",
+ "style": {
+ "navigationBarTitleText": ""
+ }
+ },
+ {
+ "path": "pages/mine/porsonalinfo",
+ "style": {
+ "navigationBarTitleText": "个人信息"
+ }
+ },
+ {
+ "path": "pages/mine/myCourses",
+ "style": {
+ "navigationBarTitleText": "我的课程"
+ }
+ },
+ {
+ "path": "pages/mine/myApplication",
+ "style": {
+ "navigationBarTitleText": "我的申请"
+ }
+ },
+ {
+ "path": "pages/mine/associatedEnterprise",
+ "style": {
+ "navigationBarTitleText": "关联企业"
+ }
+ },
+ {
+ "path": "pages/mine/associatedDetail",
+ "style": {
+ "navigationBarTitleText": "关联企业详情"
+ }
+ },
+ {
+ "path" : "pages/mine/completeInformation",
+ "style" :
+ {
+ "navigationBarTitleText" : "信息完善"
+ }
+ }
+ ],
+ "permission": {
+ "scope.userLocation": {
+ "desc": "获取位置"
+ }
+ },
+ "requiredPrivateInfos": [
+ "getLocation",
+ "onLocationChange",
+ "startLocationUpdateBackground",
+ "chooseAddress"
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarBackgroundColor": "#F1F3F9",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "color": "#9CA3AF",
+ "selectedColor": "#007FFF",
+ "borderStyle": "white",
+ "backgroundColor": "#FFFFFF",
+ "list": [{
+ "pagePath": "pages/index/index",
+ "iconPath": "static/tabbar/index.png",
+ "selectedIconPath": "static/tabbar/index_select.png",
+ "text": "首页"
+ },
+ {
+ "pagePath": "pages/memberCenter/index",
+ "iconPath": "static/tabbar/hyzx.png",
+ "selectedIconPath": "static/tabbar/hyzx_select.png",
+ "text": "会员中心"
+ },
+ {
+ "pagePath": "pages/learningCenter/index",
+ "iconPath": "static/tabbar/xxzx.png",
+ "selectedIconPath": "static/tabbar/xxzx_select.png",
+ "text": "学习中心"
+ },
+ {
+ "pagePath": "pages/mine/index",
+ "iconPath": "static/tabbar/grzx.png",
+ "selectedIconPath": "static/tabbar/grzx_select.png",
+ "text": "个人中心"
+ }
+ ]
+ }
}
\ No newline at end of file
diff --git a/src/pages/index/ChatDialog.vue b/src/pages/index/ChatDialog.vue
new file mode 100644
index 0000000..4121e63
--- /dev/null
+++ b/src/pages/index/ChatDialog.vue
@@ -0,0 +1,263 @@
+
+
+ ×
+
+
+
+
+
+
+ {{ msg.content }}
+
+
+ AI思考中...
+
+
+
+
+
+ 猜你想问
+
+ 小微企业优惠政策
+ 2025年最新小微企业优惠政策
+
+
+
+
+
+
+
+
+
+
+
+ 找不到答案,点此提问
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index 4541538..6d7739c 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -3,7 +3,7 @@
@leftClick="leftClick">
-
+
-
-
+
@@ -27,16 +26,16 @@
-
+
{{item.title}}
- {{item.time}}
+ {{item.activity_time}}
- {{item.splace}}
+ {{item.address}}
@@ -114,7 +113,8 @@
-
+
+
diff --git a/src/pages/index/specialSubject.vue b/src/pages/index/specialSubject.vue
index 7407f69..b6d217d 100644
--- a/src/pages/index/specialSubject.vue
+++ b/src/pages/index/specialSubject.vue
@@ -1,8 +1,8 @@
-
+
-
+
+
- 这是一个标题 >
- 内蒙古数心科技
+
+ {{ztList[0]?.title}}
+ >
+
+ {{ztList[0]?.source}}
- 描述描述描述描述描述描述
- 2025-04-16
+ {{ztList[0]?.describe}}
+ {{ztList[0]?.create_time.slice(0,10)}}
- 这是一个标题 >
+
+ {{ztList[1]?.title}}
+ >
+
- 描述描述描述描述描述描述
- 2025-04-16
+ {{ztList[1]?.describe}}
+ {{ztList[1]?.create_time.slice(0,10)}}
- 这是一个标题 >
+
+ {{ztList[2]?.title}}
+ >
+
- 描述描述描述描述描述描述
- 2025-04-16
+ {{ztList[2]?.describe}}
+ {{ztList[2]?.create_time.slice(0,10)}}
-
-
+
+
+
{{item.title}}
- {{item.time}}
+ {{item.create_time.slice(0,10)}}
- {{item.splace}}
+ {{item.source}}
- {{item.ms}}
+ {{item.describe}}
@@ -77,44 +88,37 @@
import {
ref
} from 'vue';
+ import {
+ specialInfo,
+ specialList
+ } from '@/api/index'
+ const url = ref(import.meta.env.VITE_APP_BASE_URL)
+
+ const titleData = ref({})
+
+ const ztList = ref([])
- const titletxt = ref('名特优新')
-
- const ztList = ref([
- {
- id: 0,
- img: '/static/img/image.png',
- title: '这是一个标题',
- time: '2025-04-16',
- splace: '内蒙古数心科技',
- ms: '描述描述描述描述描述描述'
- },
- {
- id: 1,
- img: '/static/img/image.png',
- title: '这是一个标题',
- time: '2025-04-16',
- splace: '内蒙古数心科技',
- ms: '描述描述描述描述描述描述'
- },
- {
- id: 2,
- img: '/static/img/image.png',
- title: '这是一个标题',
- time: '2025-04-16',
- splace: '内蒙古数心科技',
- ms: '描述描述描述描述描述描述'
- }
- ])
-
const godetail = (id) => {
uni.navigateTo({
- url: '/pages/index/ztdetail?id='+id
+ url: '/pages/index/ztdetail?id=' + id + '&type=' +'zt'
})
}
- onLoad((param) => {
- console.log(param);
+ onLoad(async (param) => {
+ const res = await specialInfo(param.id)
+ if (res.code === 1) {
+ titleData.value = res.data
+ }
+ let params = {
+ special_id: param.id,
+ page: 1,
+ limit: 15
+ }
+ const res1 = await specialList(params)
+ if (res1.code === 1) {
+ ztList.value = res1.data.data
+ console.log(ztList.value);
+ }
})
const leftClick = () => {
@@ -131,50 +135,54 @@
.headpart {
width: 100%;
height: 380rpx;
- background-image: url('@/static/img/ztback.png');
- background-size: 100% 100%;
- display: flex;
- align-items: center;
- justify-content: center;
+ // background-image: url('https://hqt.truescloud.com/upload/generator/20250514153659.png');
+ // background-size: 100% 100%;
+ // display: flex;
+ // align-items: center;
+ // justify-content: center;
- .lefttxt {
- display: grid;
- justify-items: center;
-
- .title {
- font-family: Source Han Sans;
- font-size: 36rpx;
- font-weight: 500;
- line-height: 150%;
- text-align: center;
- display: flex;
- white-space: nowrap;
- align-items: center;
- letter-spacing: normal;
- color: #FFFFFF;
+ // .lefttxt {
+ // display: grid;
+ // justify-items: center;
- .headtet {
- font-family: Source Han Sans;
- font-size: 44rpx;
- letter-spacing: normal;
- color: #FFFFFF;
- }
- }
+ // .title {
+ // font-family: Source Han Sans;
+ // font-size: 36rpx;
+ // font-weight: 500;
+ // line-height: 150%;
+ // text-align: center;
+ // display: flex;
+ // white-space: nowrap;
+ // align-items: center;
+ // letter-spacing: normal;
+ // color: #FFFFFF;
+ // overflow: hidden; /* 隐藏溢出内容 */
+ // white-space: nowrap; /* 强制不换行 */
+ // text-overflow: ellipsis; /* 添加省略号 */
+ // max-width: 44rpx;
- .text {
- margin-top: 42rpx;
- font-family: Source Han Sans;
- font-size: 30rpx;
- font-weight: 350;
- line-height: 76rpx;
- display: flex;
- align-items: center;
- letter-spacing: normal;
- color: #FFFFFF;
- text-decoration: underline;
- text-decoration-color: #FFFFFF;
- }
- }
+ // .headtet {
+ // font-family: Source Han Sans;
+ // font-size: 44rpx;
+ // letter-spacing: normal;
+ // color: #FFFFFF;
+ // }
+ // }
+
+ // .text {
+ // margin-top: 42rpx;
+ // font-family: Source Han Sans;
+ // font-size: 30rpx;
+ // font-weight: 350;
+ // line-height: 76rpx;
+ // display: flex;
+ // align-items: center;
+ // letter-spacing: normal;
+ // color: #FFFFFF;
+ // text-decoration: underline;
+ // text-decoration-color: #FFFFFF;
+ // }
+ // }
}
.main {
@@ -185,29 +193,52 @@
height: 69vh;
padding: 40rpx 24rpx 0 24rpx;
box-sizing: border-box;
+ position: absolute;
.leftmk {
width: 100%;
height: 100%;
border-radius: 16rpx;
- background-image: url(@/static/img/lj1.png);
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVQAAAGMCAYAAACF/1r3AAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAACAASURBVHic7b1NkuXKcibmgXOybtV7T+TVDm7v4GkkcSIjV9CkSSbrHrVoGsvY3ID6cgfNBcjaeiS1JmSvgBxo0DO9HejuQLclku9WZZ4DDYDACQTcPT6PHwRwMt2sKjMD7v5FBAIeHxyBgCOL/Dj+MY30r4joh/nf90T0vXNbVaaILSOH63I4rC7q0ylYT4i/0VXwLbrZ7frAN+NX9Yv6dEL5c+L/TI5+diP9RI5+5+70H69X+t3f/7n7WXCXrNtafhx/oJH+DRH9KU0B9GGcG0jPFMjQ4FQJf1VuuYgSfpsO+CPg9ww4gG6WX0sg6YkP6B0VH/T7s7vTX1+v9G9TgVUPqD+OP87BNAWoOtsl8FHnwFsBf6OLXvgJ3eaB7+D42bpnCeiWwPtO8ZfyzElq/vNnIvrr//N/cj8KEAL2xEr/hoh+m1sptrxFIEODUyX8VbnlIkr4bX7B98bvEHBa6WYFkifCX8rROMAcqNKuXviOfvfm6M/+05+7n+JDw8brFEz/jqRgCgp0gUsyGoAsuhVk1YZx+rdbv1TAryq9z1PC56avUF2lLNu+MX5SKva/uV9GpqwAqzv+SL99Genv/pt/N/6g6z+C6VYRjPJs+RMw00Phowyuld8PZiz7CMtQBsUo7MrgjoCfybZb4SN+HdFPg6M/+fuAqa4Z6nSb/wPiWJLmM/0R7BWHzZlGpnTrV8skVRvfGvgz8FG/8OSn6Da1T/RVc/yK9jUEqddI9MN9ipmLPALq/zL+SNFtvnPTPy7Sx843ZS6wR3UBPYtuM/y4PNYN6wnim/wyeitdR+s69MQHfTbBD8o5XQSf1a2E7wJsa7vUvmLwWV1HSZ+Hwc/RVfCJiI1vaF3p8etv/9v/dfxxXfbj+D2N9H9TrWVRij2rz1z0kp6lDu9pudXZ8SG/ip5Ftzk+EExL8JO6TihP+K3WLgt+wmdTfEAPxR8c/bO//3P305WIiO70r8k9gmmLhfqsfu0L2XLBPQn+qtxyIWfofuCX4S/lFS9kSU/VPRN+ZnBuhS/pj0T/hoj+fKAfx+/J0V+knEOiGMMB+b3YKxOPBR+tV6m9tV6HtrcE04r4h+8XTheYJJrhg4FvT3zF758SEV1pypt+T0Tt33xCZ/qg4Oz4q/KDM6gP/P3wVb8WBhUpqHV9RnxLzEL9oj7Xhd//8b8b/3ggon+uVgIUyH5eN5ltb8TfiILfSlb1GpkySRTd7H7pgJ8tO5+nvfHVfgWwm14vZ+p7YI1pM2a7jSf/6kpEv40jsoXBwZUQ2J5F90zM9LT4PZkhymBOjK/6LWBmvZnhBz4REf1wdSP9gIRwS+QuCqaK33dhr/RVC3zJ8HD9cjT7hLOi6+UA9pIc/rzsYS8H3h+uFCyVOgWDeu/4lqCXwaAsgWR3fAsr6YTfym8lBvWB3xb/+4Hceu2pCJooK7JXcial+JCcMGdU9bz0zu2i9h1y4Fb8pv1iya2OTNmecqZrqp58fyXCB8GeC+Vb+S1lhmfHX5V/MNMPfMTv8ZnhVM4c2JsZX7swjRy/QjCF7YWyD/vKgT8hZ+qXLPuEs6b4BRdelXqBgacZvsXeOkmBclUdWFjRXHh2BndE/Fa61RhUb/wdGFxvfNWvgUGZ6lobnzlwdvxYf7sfaijGnFX1GcWSW22xL2nv/T5ngdrVM7dZET9L3kG+Tu3XHXKrVcZVFE+aj4tYGuTg4zbwOVQjM+366Q/F79mZaVUGeXD8LL+ZbOs94S/lPZlpb/wdmKmXK6eYBATEYg8HbsF495k2+qMbfgf7bEmA9G7Xe7LfvV5ggGqGX9l+VR5NfuuHUkJwymYaFf1mMSiLz2fER5lOK78WVtIbP+GzFf5S3pPB9cZnDhwRH/Gr51AlabhuFLLfObe6kYPkViHsSvhZ5zXA78I0LPm6TudpqVfP3GZH/Bi7i4D4XF/FcvWaVRmU4tOiuyc+5PcdMtMW+K38fjBjI76FwVbGJ3ouZupFXNgvSRemkalrkar1SlygzfEPbs/1VQ2/ZnvA0dnxq0llUHO7rJNkRXxU1xHRFYrSAtvLZjqKzyK/KNOw+HxGfAsrqug3i8H1xrf0VW18lGm18gsyuEPgF+jW7Ne8HKokDXOL1WekFutWLdI7t6pI835J5Ov2xE9K7/OUiV+lXwvWjVbDR+13Ok+pdiXflOrNTEvxV+UogwD8NmVQR8DP0K3KjHsyw/eOX8DgVN2zMGNGAcW/MmVJQLUSWpnicE+msvtMm2NvmaRa4Feyt8iZ2tXUHnB06Prv5Jc72LtftpujOEPHCLoWprUptwSSngzuveO/ZwbXEZ/oAAzuTPgFdbWcV//nNofaIhfR+5181H6sg58tR9jvs5Juc6bQGD8pPdetWnKLnD1QdiZ8VaznqTBnfQ1L9mSmvZlxC/yN7jMy08b4Sb89mSnKoD7wbczwxMw01hXf5YcqAYjlAt0Lv8hhJTfZ7bJMErXxrYG3En524E+Uo7pZ9sAF+oz4rfyexf5qYXulDC6b6VTC3+iekMEdEb+V7lMzuN74qE+LX+YAWleLbhV80K91XOPrUE/yvq0m2TOS5ZtLClYpfjex5Ct7f3Opdw66N34LXUAc41M9r4DuEZj1ImB/bZ7yZzGYoKALgzoCvoVFtmCmH/iqbpbfZ2SmO+C30t2dmWb0q76wX5HeMwoaTHfDV+yPWq+nsbcEU4vfZ7QH+qoUv1qAqogvSe3zUrZjv4XBzQVQAxriV/X7RAzu7Piq34MxuEPjt9BlDqB1tegeoV/FHCoUpY+QM+q5J0CH79lny8HzsKWi9qvlm0uJslb4TaVybtXcLx1zq02FiT+bHfuDH8QcWhWciZkeET/b74GYYZWZvjL+Un5ABiPiW/rqAx/3Gym0btdmHaol8HDSdKbPsVeCWQt8i2HzelmCaQv8TvaobvbEk1mvD3tBFwyQKL5Uvke72uzYjzKNoOCI+Nl+LRdnhu7uM/KJ8VW/HRnUB34ZfjW/kUJpuwYNMFvOlDNSJHtG65BbzbJPfPOpueyQg1f7pdP37Bc5y76sB8Sv1q+VBd6xny2PyyzMEPX55PhV/X4w40PjL+VnYYYWVtgR3+yXUajVruS7/BDgh31V+1a6nMKZ+qWLfUXqbq4XGCBQrGe1z/ILTH4oVli27479GQyuN35Vvxk+u+B3YnAW/FZ+zUzH0lfPhs8cqHJeG/jdq18HpiwJKFYiVXbCnFG3mbp3brWnnGDdKKd7dnyzNMiBl55XVXaIP+KbUt2YYW/8nszYwkpb+D0BM0V9HhVf9fuOmam5/Tv5tbZrQIOZJNWZQk/8RIBojp9h38ovGky74R/cvpVfS4Boht/RvpVfy0Sp2V/DvyAGNxd0YXAWny3w0ZmrlV8LK+mNn8ngSvGX8p4M7r3jMweqnddI4Wj9OuVQLd98UgBR+42cJbdaMWeU1a+JdaPNmULv89Q7t2mxPyl+FWlw7puO94rjqtmO/RLgKZlpb3wL26vo94MZG/E7Mi2iNsywGTMFdS116MlMfdn2M9KVpAuDamWfCBDN8RP2rXSz7BPOmuIDjlrgH0HM7bJOkrXxC+xRXYu9JNZ26ZujnIXB9cZHmUYrv9aLoyd+wueZ8JfyFgwO9PuM+Ga/oG6zdgUHh80BUDa6Fb5nvyd+VamYM8rql0Rep/l5OUFutQW+uV+jHPzu10sBfhUB+36p1wlz5uYd+zflT8IMnxG/lW5vZng6fAvTaeH3JMz0Gc6r+C5/1QChlGnlqO4p7I19VQP/FP2yhz3g6ND130mXO3jofsk8ry0lb8f+J2Fwh8LP0K3GdAB8i+57wlf99mZwZ8Fv6TdzDOTib74pVXVGmXM2e85oKznCN69a6Gb4TPZrAr8F01jJCfYP4KRKv1j2+qyMTwz+EURt14Fzq2127Fd8Fvl9RmbaGD/ptyczLGAw7w6/ha6FmRbo7t6vgM9W+PxDKUUsAcIiLRjQKewtk1Ql/OzAb9S12EtymPMKXKBN8QH7o9Zrd3vAUSt8eMd+6CSekMEdHr/TTNt7pj8E0zkTPnIdW/0W+FR1wTrs2V+18Dc5VItkR/SM7xhVnVF6fkcpwK+hm9UvB8qtqnKEHHhv/Ezd3RmkNQ98kHWjtfGPu2N/C78VmeEHfhl+0u8HM87Cr+K3FTM9cb+i+FemLAmoVqKWvRDMi/1+2KftLcE0UywXiNm+FN9iDwT+ZvjWAJGJXy1AAXL28wqvQ2XLFf2zM6j3jp/0Cwy4MzONo+ITUX8GafEJ+u3dr7Xw1znUjJxR1RnFsm610r6gnM/qui2k5/fsAfymTGOHb06p0vHcOwZfbVfv3KpFjpCzLsQ/3479lfBX5QdihlVm2o74rfyaGUQm2/7Ab8PgLHU49LhK4Ivv8icrAUr1Ga3SdJhVL0swbYF/JnvgAsny+2F/aPssvwBA73ahwRzbsR9lOkEB1IDaDArw25TBZeruPiO38ltxpm+O35vB7YDfSvfQ57UzPrYOtUNeY1XpM61bbZHbRSUzB1StXwH8pkzjIwe+ErVfK+dWm8qJztXmEyjZzBRlhRbdSvjZumdhpr3xM5nxnvit/B6RmYr4FlZq8csovKt+DQ7qC/sVaco0KtujuhZ7SaFLv/TGt9h3oj2WC0S0B8oOjV/ZflWeGIMWv2e2N+/Yn8U0WumehcH1xrfM3pn4qt8PpoPhMwdK8U1+BQcf5xX3WfQuf62c1S4zSs/v2Qf4XaRTvm4p22HdaDX8iu94m6XBOkxTvzL4aruOsG60hW6BtN2x3+KzBb6FFbbwuwMzrIaf8Hkm/KX8gAzmkPgggzX7ZRR279ed8dvu2J8IEEn7UvxK9q38cn2VbV+K/0T2R62XaA8GiGb4oH2WX2DyQ7HOgN9mx36UaVl8Wvy2YFDvFH8pf88Mrjc+c2D39u/k9+zntSyHKkmH3EbWjBLkgLowlRPkoJY2POn+la3xq0jvdZiMqP36DnLmksA79kuAvZlpC/xs3SdipofBT/jM8nsWZtgbv6XfyszwKPjJd/khQKt94gLtjY9iWewlQYNZtv2Z8QsoQ/N+OZq9dZKsiH/oftnZXl7YrwSdTRmqawlkLXSfkcH1xk/4bIVPdAAGdyZ8UNdSh2btOjH+wJRNgu5L2kp6rlu1fHMpAz8pvXNmB1zfF4vz2D1zqwX4VaTBeVracNKcdQt8i6zflEIZRFSwO4M6AX6W3xMww7Pjq36fkZla8KM/Ps6rvV2bzVE0QLYSvezRYNoBv8jvh33aHnBkwUd1LfaS7N6vmcG0ixRgH2W82nbsr8jgms6InfBb6e450x8RfynvzeCeDN/sF9Tt3a6e+Ml1qCuDI6yb7I2vyKavUF2lLNv+THnYhJj7xfqN+ISumTidpO+Xdp1lPfIJcubijv0bA5TtWXSfkZlW9NubGTab6Z8Qn8jIoAp0d2dw0cHe47qaboN+FdehWgJE0l4pq25vCfyV8LMnHiOWZSBL0u28HM0eCBAovlR+yn45or0lmAL4Ley91NmxH52RAL9nx0/67TnTozPyBz57cE+m0wRfUGjRX7ueL0tfNcZf5VCzZ5RK33zKlgPlrJJBukNudYXdOwfdGz9Tt8p5se41WhFfkmrjrXdus8S+AJ8i/OWW/+zMEPX5nvBb6T41MwXwzX4PyEyP2K9nwifizyv/CRSkcoAup9SCgb0ne4tIA0TVTZQ9vb1l4snEF+tlCaagfNhvjUrxpXJHrXfsPziD2xM/6ddyIT/RTH86fEvQK2A6qM8q+IzCx3nN89t2x/6M79l3k8b4yX49+PfsW+AvcqZzf4Lc6kq3d876LPgFedhQmu7YD+lm+D0TM60y0xbgq35PzCA+8BXdSOHQ5/UE+Ba/gxRMawjkFw2mGVhJe2vgr41f0b6VX8uga4r/Tu0tBlLgQV2eqV/2HNcWv9jmKGjQq83gMnX3nBFb+T3dTH8CBmc+r8wBtK4W3Sr4oN/TjavK+ERt+xX+plTVGSUjt1qDrZkFyME0nWnPhN9iX9CO+7Ka+7VFbrXAXpUz5awri2Pwa8aW5jv2r8rPwkx741vYVif8Vn57M9OzM8hWft/VeRUOIn75hf0JQLESoP2eM3WWvSWYtsDP1N1T0IsuaZ8oU+3BC6QZfkf7Vn4PcV472pf6zd+xvyeD641vmT0r4i/lZ2IavfErMx0iwpmp4OCjX4+HT2Q4r8IBR0RDdkTv+T37AL+L9PyOEojf9LzsgK/KWXKrTA66ab+USsG6zWr4LXQBMZ8X4bzaduxP6G7KUN0MBtfK7xGZaRY+ynYtuu+YwfTGl/R3b1dv/J7MVHAQFov7obKOEwFiT+nGjFH7hLPD138H3Wb24IV0FnypvMt4ASbfZvg7nVdUlysTd+wvZVpQJXoyuN74wMA800z/gW/ABxmR2S+jsHu/9sZvoQueL+fQdaiWvErP3GoCv7nskINS++Us3wYqwK8mJ8jBZ53XRFmW/ZPlzJuN97HWjv0J3U3Ze2amvfEzmfGuM71wcC9m2Bvf7BfU7c0M3wO+vLA/IZYAkbRP4KO6FntJmjPrhLOm+ICj0/ZrbXvrJFkR/9D9ckR7MPDtgc9vMF2bQWXqdmFw7x0/4TPLLzrTMwd2ZRq98Vv6PQiDOwp+Fb/MAfhd/mQljmz/jt9dNuO3yO2i9pW/u26W3vt3MqL26wly5ov07ted9lo4zo79jfGTfjOZWW9m2APfOaLrPBUPjug2Et1HojG+aM/CYA7ITHuPK9XvWfq1A/5mHWo3BooG00w5JbPeyx5wdBmIPg1EX65Elwtv9non+vZG9PW2Dq5WfLStyQABiLlfM+vaRQoqcujx2sK+0nm9mgIZqqvorcqflME9Ez4R0a9epn+De9w5cbqfBqJPn4h+TUS/fyP65W1irmdkGq3xJf1d22Xx2QJ/p/Mq6goVK2nXlUbhyB4SXJ3JIJ2oZ9aMEvjsgm+RDudpcER/8B3Ry/CoAgHVcG4KwF+uU1D9/RuTDgDFeWBgQmkmDfq+KQMD6svp7s4gowFVim/WZQZ0abuu0CzRkJlCDajt9wTM0Mw0KuMPjugPPz9ypTn4YWD1jHVkLvYWTKuK3wKfqm50cM/zupRnXgOq7lnwC85VCj/5Lj8E2NIeDeaZWJaOLMU6k/0ffLcOpkn76KIP46YPrJ+vRP/0OuVYU/ilctR+PYS9JZgB+Gb7THyrbhV7Y135hf3ojBgVJHUVPQm/ld9qJ7wT0zAzAgP+d1eil0sZPmdzGYh+8x3Rr+5E//hK9Hrb6jRjGgW6pfhmv6Bu0/HSE99yrg6Gz3OQA60Z6zLTW/B7vxNee19IR/SbT3n4qeqMs8LgiP7gE9EffE4HbrGeHjAu0+qa0G01rrL8nnSvhSr4Db/5BEnBNfWxY38j/Cy/B2DGX14eM7RlplefgwQKoc6LI3r5jujtPqUC3u5CvWJ3J2YwVfAZhfeOX8Wv5bwKuvk79qcAT2KfJQBA03Y1wnc0PUCy2o/BT5alhjuAMbP/y0D0h99NrNWvKJDwze2yTFKAfNhvjbpcrwc9r7Yd+ysyOE632owE4Ft0T4efOdN/eeFn2FQg3xQ7elDWmJkqbX25TP/e7kT/8G1aw7rS3ZFpILpnOa+t8Fv5Pex5BXza3uXv+M2XWJJBuuf37HvjZ/S9owc75UTNjVLETMf1TxfT1pEzesh1IPovP0+53IvL6JeOudWm0nuvgcp7LZj79UDxRxJxx36iYzLTagyyIv5SfjAGYcH/FcNOQ73U4F/wwwuOMxqFctpifDcz1q9+Daugt8JX/Fl1Lf0v6Vcbr+gYbIHfsf1ERmYK+m3FjEVOkjWjWIIp7urw9ll+gQsExSrFH9y0RjQW+M2o2ED62+sKT7BidUfTLdSXeQ3rL29TcO29CIWTpuMNcHSY66XiuJbKVb9WUpUQk72rtWO/JZC+05n2yPhfrmt26ohodIZAGhWuyn0OVXhDKi5e/o513fzW1csjsC77BLRgOgWs6CjndQ98ImO/gn4PcV4z8Fc5VEvkXknF3EbTGQXIQZ0dXxWOMbpt7nSc/xtpWjsa7xyVxIjzoyPfdHV1gJDbdDTV9w8/TwFWSh/EYu5X61rI3rnNTuIY/BrM1CQHyq0ul1JvZvrU+AdlpkRTcIqDknMyU5RwvB17cVmCHtgmRxNb/e4y7RPw9bYf0zH7ZRTOzkzN+C10D8RMvQyaAesELJMUmjLAHfBbCTrok/aJstVxhp0SPd5osgjHVIQi2R4cyKEMA9GvPxF9z+w90Kr/svzueF4PiQ/YH7VeFvsr2uFNGVxv/DPN9BXxF3Ya9Kf2xtOm3NEjNxr8XP4ER6jlu+eSXIZpQ5fX+5RjfbttnVRhOszBo53XLHzU5074VfwW+MzFf8zp4/bgrnLwHFTTGXEH/FgGN90yL/hjxEyR8zE+8q2hDZcbldxZ2qXlcz3GdSD6Lz5Nm7CYdssC8M1yhHWjLXRbSMe9Fmriqzv2b8o7MMOz46t+OzKIz56dhszS8UbWwRXmYCXGW4PBaHV6GeZ9Am4zY+X2CShgkJL+6Zhpb/yezFRwUIKv7ofadEaw2iecnQkf1bXYS8LpDo7o8wtBbFSql5YaCN3WYICrJVzqLizbirwMRC+fiL7dpodX0idZrFJtvCWC2VPjWwM/6rej/WYd6srBDgzuiPhLecFM23um1/Djd/ZzAvzmuHsE2qR9ZvslZakuRLQE4E+XaZ/Xr/6TLAl8qb67n9fe+JXHNRHPDFm/goPidjXE17NMQQ6oBtMwS6cc1OpizNDdc0ZcBOwn5+a3olIJTuGJvQgzlp0qbo3qsh62ZC0srX9+ukw7W3256v3clOlk5syrScfcqmN8im1lBtyuDDQDn9+xP/rjvTDTM+Ev5UYG8eXlYcfq+lvqqK7snTY60wsHRcYb1E17Y4tlpmHylsH3v3++TmtYv962n71+Rmb4gW/AL2DGZQv7AWk+oyScPSP+Ug4OkPC4f2dfDTyRjMzvpe1KyagBSfhCTnicDWIbz9Z9KuDrjdgGHmq8P7l9nkF7QduVt2P/CRjcYfCBC9OsmznTivud+sAKBK/SmV67VlarA5gAKNnHqxU0fBaXphTAsgHLTa9rdwZ1EnyzLjheOJ8W3WJ85TrJ27E/M19YTQ62Zq6abkKWvkZzcEEOaCA5dzom8p/ZqWzGUPPl18Ga8qXeafgz8If4csHPLy/TCwKfLrruWXLmzaRyHrg3MzbZM233ulV37N+UPwkz7I2/lBewgs+enSZyhZKUzvQqTMSQYWaq+dOOx/aR4sUR/fqF6O3yWMPKjetkvZ6NmVpY4YnxRV1gXCffJbEMZGnQlfp97/aWAMMNkGW/Uy63CEhpuzgZhT+cMvsn/TDHSojcdZi+GvCbT8FbV8Dkx0mV8QIGnmb4Z7K3TDyZWI4pr7tj/ztlkHviq34FvS/XYBeckdetif/710cQj1OzI00zvVsVZPZLrBP40db/W9sVfuvqlzei251RJP0clOAfjcFZ8Fv5ZX1a8EGfVvy6O/ZbbtsSb7y0mNFWYnnjpoVk4lv7xVGwG//4+IEEHhQ/9HO/Twvniabg8+sXomucj+QWnXLOhXLkLS2rqO2anV4Hot+8EL2N06qA8HXWeILQfKL4nE/VPuqvaviogCskmtXLgg8OfCt+9R37oUpk+O3NDHed6Svi//rTWi8OpFX6Kjj4j6+PP+8j0f/3bWJ3n6/Tz/gVpY3fMWAETLuQ9bA1+tUzae7g1RFdPxG9zvsEjEyldh8vPfFRBvcO8OWF/ZmCBtNs+xL82jPSwe0HNy1eDwVmcCBoGEvebtP2ebHp6206dr1M6Qefj+TypRun6WJILP0q5Xdjg0+X6d/X2/pbVyhWMvCjZeCFX4L1NPaWiScDf58d+zNnz93xGzCdvfA5/V/N2/Mhuz95PRErUVei6VY/Lg513+4zYx2mVQcv4SPRkceX6sAV1mBwMTNF1sN+NwfWb7fpX7xUqzuD7I1/IAbZGn+fHfsTa/ZWZQkKVYqf1Ou5vq8AP+6DS8BOhWWaW/sIX2NwY+h0nFkot0UeI293on/4SvRP36aca6qCzNJZ+H3wpTxqFwe1VGN8/ENXHTgi+nyZ9mL9HHxWRsJH5YgM0CwnWDNbS06zY3+W33fMjL+81MdfjjMM7pc3u1//Hv13V6JfXXn9DbMuYBuOOx6WubxXa2O/310e+wR8u+k+kbpqeqpu5XFl9ms5VwW6R8LfrEMtndFaSdOZGnB0RKYg2Q/DNndqxU+u7xwfQe7tLjzxBsTRFHT+89fgAU9UhzFUZuzFsuhg6gbAv6lV67x8vk6M9ZOy2rv3uLIYHXW8H8ke37H/PTPIjvhExpmW5g/vIXVQ8B1zwDPFuE6/f41sMhjUSI/36L+b9y71h1vkwCx6m3JHeirArev+5YXo8zi17zWceBq06+gM7tnx1TelVgYtcpsW+w74RxBHBOcLiWZ2GqzdsPSLyODCd+wjBvfG5E5TWCozngPP//s1SCMY2j/G+mO6XSsFJN+WyPVy4gPrr1+mVQ6OMdidgVnwW+QhLT5PkofVd+yP/kB1d2dwDfyaZroj4M8H/Wehrfji+s4gicnN6L+84XW1tH8cHzlIv8Ue4pdlk4zNYhi3yzLe126g3a2uw7R8bFnDKvhcYR1oXFfxexZmKjjQ8NVvSuUMLsBVNftWfrPsE33VHJ/mdaeJneg5iS/q5e8Ea3u78+tOa4j3OdK0HOvrbZospF2gkLenNscjJsuew+jNJw4ndsNi0fSig88333rf8WU62rVelmDaAj/Dnl/Y/4wMrjd+ZQbH+fzVC64r+SXazsyS3i9vmG4NpjGORP/0+mCsy23zrBD7CgPyql/DW1y3NdjUKfKdYjLx8fu8pOz1vp2XqjA45uBuDO4I+IXjqgifKeQZajQri85T60FS9oD0Ws+ASAAAIABJREFUxlcFwF/p1qZygc9w3Smrytyyixc4x54i2/jJPqMi1lXSRbrn7U70D9+mgLoKrNH6KjFnyv3tmGOOV0u5dfRg7rd79JVVoIGrtuBmqi5XdnHTixWX+SnKP70GB1uMVYtY8HvWlRkYeTv2Z+qWMsil3MIMAb/NZtod8b+86LqSL5HBMayPiJZPp4TrTktn+riuiO7tPu0bEAbW2Aiq16jjq9drcOAWBVF/GG2XeVyhPoNfrm7O4Q7bneUHYRI6JDM8MH76oRSLDACCYrFv5bepfWOmQcS/s09E6gfuiJgLKAymYSQJgw7x7BSpq+W8orpvd6J//DYxrVVg1ezjVQPKU3vN0dv9scoBfQi997i8DBMTvQ6PgMHpXwbjHUdhvYrsLYFvZ/yqO/Y74Q9U14Kv+rXM9JECMtMfDf83n3R8STZq4Xlw6/IwwG7WncZu0AEvOMjp19scWD/NO1sNcf397/GqBYaCCsU00mMy0R7GoWOg1bjyATQVRENHn4KA2pLBIbpnxtef8h9Y1AEK5FVazGiL7JjX8RdOCL2sFZUigyTCW0KhmxQ7NfUrk4NK9mtC6dttegj06TJtwMIx0nD1Quqp/X2c9j99vQUbSyP92ThnHoqjiWFeZzbKBepU1w3DtChdOrXm66VSzrwW/l7Sb8f+4I8uzLQjg6iJ/6uX9QGJdapFIQMVGJy34XaUWnxWbn+W7vzLtzvR69fHW1eSHudrjIOoWxvufr0wes4FOdF5n1lLX9HsI5w8LgPRyETUMzBDSW9v/Lo79lvsE84s+KjunvaS1OzXl4idOqLHZsfCQnwWP15vKjC4tzv/+Q9z/a0BEvXLyNfbFFz9FnteLyYwfo3oa9DGLPxEME3aK2UDzTnRS/TwQwim8yGxHjFx9595sdZLO9A8juTag06s+NV37C+dkZdydPa26D4Z/pdgv9NQEa7/HHgp+hnah3bsjlIoFqjXwq9/nfXbnAr47jK1/Taz0Ldx3kawEb7mNzWuVkF0oM35ckzEDE+n7HxbdHFTv4xGtnsmBtkaf98cqmXdaGItbNI+4bMVfjVJ1DVkp5tvz6MVFpjpkocN/CBP9ltK6Xklml9nnQOrc9Ea0RKpnK8bhim4fbpED9ekO4gIn1txsKgkcptXN00wqJgYHJgzb3a9WdaNZ8rxduzvjZ/wmeW3MjN1FOx3ir6EgeA7OTaw604Pzkwl3dWDuw74nO51YNaIOr6ekk/Otz+f6Btt18s2oFrwW+iegZl6WS/sB6R0RkGDaRf8gpmrSr3AE3kNb/8q4ROt7yZDe5adWifJTGk+3jraX6PlTRtdYNUFJxuCaajwpfI1IB047HkBnYgTkoUVxX9YmIYlkLXAV/1WZBpN8ecD4X6nloGlDXh/jLtQPTtttS9ps/FywPOKLrRP4WuBdvnbcr6CulznNaktGBzrU3BwFvywaLrlP9O7u5miDtAdcqtVZtRxzU6lhemSaCkkKW22YqcNclBNmcpB3gn378wva0QzcVLdvwqmzHEVNmj/dai0mgO1Fx6sHQ0fwbqGf6Gzchdm2gl/Ke/JTIODnp2KbbUMDkCP21FK0s3q10ihV7/WxufeVhL9AmUjyX44/JRPEvx5hvqVsz8YM9wVH/TJP5RSyiR5avuC2bNKvWaD5VaRaBs4lSezueRrWXdqmb0rB1MQJs++Eishmh4khbfzK+EmOeMrrzl1ytH1+JeYpe5wDVSb+EqxQF1O9M1RMmfv3RlJAb7q9wBMJ5TPL8FM6X/6W//KQc/RtCge6ldw9l7KKwfdXudVDaJOwF8eu/M+VzZOr5+lrqty4Hy9DI9ds1K6LfAlPYtuD3x9HaplSc5J87BVmE6E34JpvQxEL57CxMK0PSzKSX2a1p2Cfc/1VVI3UZZlX5Azd24+F8EaUTVwJlZiECnnx68LToyrGpdd3CWXsO7ohAaIyd6SW7WOQQTfIjN+2Y790cHdmUZv/B2Z1mf/ZD/xamnsYjXODO365abrERlmegN+WIeafs3nKzh4cVMAvQzrZUUb+/C8cGs5QXx/UIhpW/uC9rNxyE1tuAyPT7Xs2v8NxlUpvug3Kky+KWVpiNkekEPjW6RgGvS7CG3elFEktRZRa1ft/U5L7VHdavZuyoX5IBpvxiyKXzcanSfJPPV6aM6dhdQuU252PnAdiG63fa8Xs71l4i0QJJgS5e7Yn8keWjI4VtfCSFr4rTTTLrvxO2IfZoT6q1e9LfjBgV+U/U4P0a8WnwbdyzC97nmRFtpL9uF5ie8gLO/aNxxXUKCJKnYZiNwtVqo3rjdlqF9l/CO6xf2q4Oft2G/JF/bMrRasm6wy00b4OTP1dQhO0qh3Z0iM3OoXAH/W9ex015k+x75Szvpl3v7u6qILJQ6QSl3R3bqYqucJuneBr59gs1m3GtV/cNO/zcOpna5pEaJBbtUkis/Vjv0k6JlnGsCnRfd0+AUMLtb9EiRlkHWIkh7arl9q7XcaKRzlvDr3SKGsvkMl5aaVoM3lSmP82I6tM9qvhvO6uUNx2+OsfVTn6zBtJmPFh9kmc6BG+1F8k1/Bwaq/EMCUk00Z4KgaUzkifiV7djnOLNIkaa1X+N2pavudtrLPPK8DF0RDCZiZicwISUhtEX7qbSZJLP06hgcVZsoF01jfB9QzXC9W+xZ+++3YX8g0cvGJyhicqlsZ//N1q88sYyzCD3XY/U4L+qrneU0GUe/IsjTQgC/Z5K66QPE38VM7f1z7I32/1ja87a9yXYG6Jr+CA1S3Bn6zHfuT0im36hjs3WdKAH+132lFfCJabyAc5E45dmo+Tx3Pq6PHGtELM+tsmFnMTMHA5U3j49LGzCGUJOZzKOCbnMY5X0GfzaOWyk7rRkXdRuMUflNqVwb3gb+8FVVrHSKRMIO7Sf9rvN/pSZipf1PpZZg2Zo71Nw/qIgUTA5V+By9Mc18p7edYaKoaXPslu3A1yYuy+xRRG2Zqul5Qtmk93wZm6gXKoe7O4CKj94RP9NhUozYpICL26fXrwdadpux9/7zM34haPRwK2qUGU1+mLdDMHAOc5AbuULQ3qhzNb1QlXvjg7BaHwrpZ/7R/w4CFuorw1kkakBr9Wuo3lPXmKCdicN3xUZ8Wv/OBz8GXTEtn+tDvSiko+9pwv1MzKxN0fQD1y5s2fRC0K5wvksw0xgKX5BDhgavVG2Uhw1yqjWCF7Q/THgKQoymFEu7kb7pe0PYr+GxZ4XlS+yXT73phP7Bus3RGUaVg3Wg1fMPsXrOeYeDwuVPVvXWNafTr653obf5A3ZL7E+pURTL6K9wCL35babXW1ot7HNMgXTjOgNsAZO0vCTpckNa6gVtDrDHTVR0sY5f726+bZfrabzqdJei53/H6T46LHHsKc6iFDCKlp+qeiZk2xv98TeCDsz3R+sJYPpN8Yz4V3IqZGvvVrxH1T+e57yBp6yuTdYqpa6wLBr34e/ZV2u8iHa0u1vEaFLBvdHH4kZ+LC277azNT4cCZmOlCiGJL+OQouk9tD150OfhXZYmPNJA0gnWfc6PfjOtL9+zXZXnTJc3Mx+gXab2niB8/1R7587r4BtyUtp91zgS3FVbunSTT/pQ7F6gO7rFZSkpM/WKd0Cvj1/R75U7eRvlADO7w+AW6XwR2qgUNFxXex+lWPnzQdLR+5YKohr8cT/hVGUXEzHK+Zx9OYKXjaqmX4CQMZC7UtaybnSssMnMgIIf4L5d1QC0eV5ZAapg4q+dsHR6g1d2mVjNiYrQ3nVE6rW1cpHJulT0RAjt1gs+w6DZOb7O83SdWCge+HcUvEP80rxHlzm2KeI1gMNgabn+O88/4pQnNx1i540YKWCPRquGbukQF0oTA2sQ/oz+5ZnH4QzSpHFGaxCHD9c+uQ10cPxkzPDL+lyujqzCot/vEQl9vUV4LYS87ndfLEGyDF9YLxF8peGap4cflzNUvsZ24eHUNVRzXS70E32pu1tiHFgbH4jN6m0+jhFi1mSnKII+APxeyDBU9OU74I8seKEd1z2Yfs1PJ/vU+MdHb/fHmSlaAAnRz2+U3Y35hnsyLzDPlP2wryBYW3ajM/MQ+Ma5VfE2U1QmqX8NDIe8zPi71AYJ/cUTxjn6HuN4sThpK2Y79OzK4Z8Zf3tlnDr4G+dDVLW9F/CJdmra/exGWN63sGb/sxR1RRY3RxXaOiQohvnQuJUbK4oTlhuCGrE5Y9KKAawnwIozQfhZf8HkdpvE4xudFwgzL0H7VxlBUCAdog25JbrVsx35LvjCRTLfgZ8lB87AxO73TvD50DqR7VttyXsOF9vErn5xs1lcyOcmVTnxgVUEFRClOMVNuDWhSIl0Va1z/KgYOLl8qOU3k1ze+EzqILIv8d1w3yolp3aiR2W/sQZ/td+wP/kjOqOjsexZmCsy0n6/TbL/kRO9r3Vi/yUwP+vVP5V+GrX6qXzd97B7MUPJx2O/ZG3TJ488X3/LUXPIbFaDXllaHcN2sig+Ol/BbUyndFuO1NzOuv2N/CtDgrBVbtQ56BKu2vXPTlnlLkh8NUJXwEb/L7k1DdCECFzKRzvpynhZzrCSIV1n+a4xBNTcLVCR5vtSnVboID/lt+IFcmAN7jleTPeikFv5qYX/ygqvN4Cw+W+BbB0ZlfKJ5pjcwvZr4nN+B1jnRbL/xmAICoD+I9oHjjif8pHyyvsjW/hDf5xqR23D2OgxTZQZmtuAn9HKvl4ubxq6VwdXCV/VTYwjwm9uuZA5VErXCnXKrZvyI7dRgKibpnIPyMtBjjai4GTMRnK9brfFk2pha77nox4oMNlO8HAxztNW6mMkBi/iRSSybMqljcqg80P6SPrkMRHfmA34e20SUCoT1a0gQl9Yr1j3djv2q3wwGlfTZAh+dEVvhz3Xwy5suyiufKb/x75ucJdhW8nZBwCLHXxyhWsp59X71zI+7bhhKCF2ws534jSoDM4P0iGmXbM6vR3VEr4CeiG8dF5k+98ZvtmP/rjOS1R4cSM3wO9n7NaLXYbujfa3z5YgWdmZ5m8nbUfCTWwLlD+cGUxWfKdtgGVYnwPijbI+QU5gBh+XgZCLhO/e47dfkzNdLjv3moZR59rboGhjUu8ZHZ0QAf7W8yW0VStvlD/hj5qfYESNdMTUGP7luValnTr+ydQ7+3KxfHQU7Dotr7xjoAn7U5VdxmdAx2njV8C8D0e3WCB/0adHdA1/OobbIbVrsT4pfRQoXny6vewYL7Uv7Ra3WGDEZdIDHj5+Dn6an9pVz5iu1RA545SMMhsg5lNqfMIceNGmGiQl1ha+szvDv9pvw0Um68Boolkz89Y79q18SDA7QbcbgGuAT1WWGq7IW+NEB/12li/TKJ1pXUJdoqu+yj8DI1z+JJeDHx/3fWuBWxwvYfi0HHBDINKtBx2YKX5BW48rSfuemlzpWr0EX4LfS3ZMZiwv7JanGADPtW4m5XpYA1QDf0SOAcpsxa/a1zsEYMCuLzyQrEo7liCXwjPEvAjOrcV57rpuF8BVmGhZfXL0voppz7kCZyb4C/tXEXiozSLPfMzHIBvgXNy9vGqa1opqYz5chIMdXpJmBgvgCXJPxyj6153wyBTntX/3usDtMS/u9X8mHYwq5MrEO8x8X5dMoR2SQRfjCGAnLplt+NF9Qed2keUapvG60Nz4ifjPmT3550+xIvfX0v4DndSTaPhzidMI/5p+WyVOq0gpfsJHEel5VfMQBVzFQX1IPt1+sdYlJ9mw3xx2MBpj5/C+pn4QLsU2WfGXP3Cpwcq6pC8HMNgHdlkyjNj7R/sx0cOucaBjAoUCK4nMHo1lYemqfm2KImRkiNc9rzLBSEwmLpUyopnWzlvNqGYPguEaJQar9V0f0Gq1OQPBPw0wNPrcPpTgDYOBbmcIZ7LP8WoJZIBc3M9EL/640Ub0cnvfFLaQPcSR7aVnTw7GhgmVmZb796oTEQxXObhU4EvapFGNOCtIyLsVxM0bBHO2AqP2XeUu/GufPEvhg+x3x9c1RMplOMjgVMriNrmX2PhC+X97kHypJTCCJzyjA7XePn0J8XemKWAyVRfpLYsCxnuZTO68iM5xXJZj29eTOUbyOFMXXjns1S/sF3WJmLNgtMrd/cHDm4Klzq9nv8m8kk2JUmVEi7OIZqSH+wkKFzZgZd9VkuXiEkR8uh2T7Jbz6AFqlkdiULP0a1E/rE27dpMZMibZ5v6RI+mPeU/skvGEgjExgF/2P6+NmZhqJG4M9UntJ79yqJ0lheTMGxyjsyiBb6YIznd8Cj9vRHpkZS/tV8qv6jO1C6sqVJ3x4/WQ6gTmAtD/uC9YmomRJv6F/rv0cfsKPetyXZzBTaCxE56tK+2flyzBtiq76bcgMUz73wi/bsR8Q60XfDB+wr+XXucft/NXvI6qw0Zr46kSdAEvaxU/3jYwECqaKvN2V3bAsqxOIxFUFEgOL7Zc/lYu6Vs5bstd2u/JlUvtN+EL7yT38S29NqX7T1alnbxnvBfhtd+yvzLSa4mewgrDMucceoi9+9ybljG0GvAU/Oui442GZA27nBbtNUjV+IJPwwR3IPV/fbkqqJLqg2dwsEIBWZREjW9pvOa+M8+LxasBf/CaYKXT+GfzQbvNFVGWyYeuOXgOCg01xB/x6OVROcqbo2vgoNpAHjcvCNaIcc9LgN2TBmgdmcmUiVpAzs1y4HDNd/CT61hS4ZTcrP/eR6PevRL964QMlkpOUJgNJn2N4ft0o56Z2GpHNzfpVBW6rwOKP0e+Wa4JxKo23+Iuopm8+gWUm+0L8HNm8KbU7M+yNb2GG7hFEXwImutEFz04OflymXh+BgmmmBvE5/Q0zSvlkDjrmd0e0MO3X+/RgL9RR0wlC+5P1io8rDG+jVnhe2d8dc74RnLDe6DXElXP4gc3FkbpyoiUzjAus7aqFzz+UAqTajGJhZbXxwcA7uCkfGq4RLZ3RsiaeSKCnxN4eZCZSv6Jsu8V5jTG+3R6v4Yr4YZnAVLR6WRg2IlZf0qoB5EUEFt/w8NBSp/AY0XStCG+i8vUCy85i32fHfmsgqYhPhM1I/pMgL+CTeclvLv6qjMFnB3d4IGYJaB8K+FqgXXQbnNeRHqwnLP96I/riHm0sYjRMecwCkVNbY91oEt9xCkIRZyfUSS1X+nEV3x2/WYpar0z8ovPdEF/8glDN2XkjHderLWwtLgvkN5+mf99d+A6Sqj9G/0R8oGyDFeSzwtTWKOgkKwuI1g7WdcrAiBW2a3NsnJiq2enGuVoEuzOLBX8GHkeyrZ01tl8qTrkIj/uv43pR7xgAacJAG8Yf+U0plG1adC0MpiP+fdy+k6udxD3XV/oy7farlJmyfiQdxkkpM13hh4w7Ov52J7rcpnTMxo7zF3YawtjcOmgUMxjhgHg+XeK4hIUwMKH9NZj5wLBUTo/FDMt6MlODboi/IWBNZoST2XPMB2VqNZg9yzrBumwdBHWIyt1WTXTHSdZ5iYzUfp2ZqcTK/LnaHI8Zuv/neDwjidvUASnTDojB0jPTEvzULZN0KAooFlJ3Ee97DQIGU4P5LvZrInYSBtka/zZOM+zFKYO9gJVo7fK5KAgnjIjSjMqwsoT75JtaNc5rivFtliZFE0H4yy9vRF9egnrHEwfCxpTC4vNqYFD+h2mSZs5r2MHwE3fGj3eDMkNHzDOHAzHI1vjDysCan+kpjfFv9wSbSSXehTJNVr6RhJ3ExGL7cWuWYty18oUjU89ks4w54DvNdxVCpc15x0Cs5zDpEuj4UTl3ml3qvCerETDi1PnXxrsjecc01d6SW+VSCrh5OYMV8OEd+5fyJ2amYVm81tEzR5GtZeKvjmcMwsUuyDWSo6zv2UeEV8bP7NcQh5Ww/oxzDf/t/tgCcSkHmMnSH3sxU45NhsfGSEfDmvWRN5qEamzqVOtZwDAQ3Zn1U0UMUtHvzUx9GZztsAwk0R4oOwr+231iPkH6zWRvpTaOMp7iepiIkWjfs9dEC6YqPlO2YfJILtjXX9BP4X+7Y/1XysBKxffPpg5cWkPDj/s2o88E+OL2cwy1xrgyLzmM7Q26mzIg8GI79h+QQbL41s5O+H27T6+VFjESRT+c7dScomIXMpPcfTlT9cw5r5s+ZgZj/K68tjphZMpiGcd5feoLc5DW/bDJVSt+ufZbdUP85e9NhcCLOz7fBny9II+VbcrnA+HTfilACXD5+Abd6vguYKiqATDzcbo1ZiST1Er8zfKWWucI4otVGgNWmpszo/VPNe8bV7Egt6hVi83ncUWxT+n8GZjXfSR6Fc5b2F3m8QbmVldtY9q/wo/vLBgcCUTSRYcPJ2KANF5TXj3nrUL2vPTOraL4o7AOdXF8FmbaCP8tuvJKmfHqYMwsGUN4pg1+kY6vbuct/QrWSWJ8os+wjKWbQbl7DGpkDHy76xt4t9gxfqOv9IXKgJDxJpUBzNjEzA3t53SHgchxedSd8Euv1xx8Noe6J7OsYg8GiBz8FEtNMhXtoKJk6Rc0N2qRpV+jCzxJII1tWtkErM7Sfq786237TrkTdEvKNpJof5U7MQ5WcVLEzEFd7q7D0TYoHSJe1LYPCvfbsb8ng0VnJObg2337Jo6Gr+VCY4XSC1nqL7E+FfpVZVeCU7Z63i7OIUo5YM6v1u5xmgz9So1a44Vra6r9kF3ChXQhp3LvY6CL+LToaqsY/K/XYUrB9GaQm3Fawy/jM/mUv1pEr5hbNUtBXlX6Ts5mRo7yl+pT3JHYXdC1tkrMUGuadkw9r5GhisM2NC1OyAFLEGgHhO16u0//qjIwBt/nweHcpNJflhUaqRUNqzRPwTWg+R8T539JuzTAt8he61ab7dhPVMYMVd0d8cdxWuTvX6fb4AfUJWQEYr0ERpc6YfFxU76yoF9VBuTmQILO/rND9Ol0iB8yVHQMOJrWE1+HdX8Vtz84Z9pm05rd5pAHStQz5YfFr329hMw4YeNo+0XU3ZipgZXWwq/x1q3oHCmTDlZjxhXwv90fZQgjFHNVTpkpLU8yGcwcW63M+1ZZc+JBEeeQa6uFFVomVO/klzdd18RK/YExs/3J25jH3yjxV3XAykn9IubMlbuKuN7Iu/27X++N7K+mpPEBGeQe+Lf7QxcZeOpMGTMQAzMpWTdp7VeRmQU5TxNTCHOlGfiOtnhoP40058KjCzur/ekinZlGs67vl3GcXyaZc/bM8ueVH2281Xw6vvqdY6bRuOX6bXAb1aVgbwbJFaB1wHbsTzwkkaRKRF8leWz2VSRFwbza/IBj9d2owC51O9Pqe/bqOQDP66IWBDzpFp5lJVFl1fYzuVnOhiNsJibOdODrbSqKv/21ab+GFTNrMfJu7Vz0NxHReCd6Hae1s971xcnLvYRq8Arg5MPpiuclMQC1HLI6nna/8B/4FgLGSaxbZcf+pbwyM9QYxN74r3eiK/O0X7WPGB3nN+XD+0kGbeYgcl5jOyg3K1AYeKZXDvqiVXul/tPqxei++vWpwUGo36LzCLff0SbFcx8fu5lx8ek6CPjyn49ycFxruqmcsSaaXfxF1K5P/YWYV9yvTvnqqQmwgb0kFr9V7OeDfvcpk33MzGKmAgrMzkDnq3ZEjUIeHqDQkv1I8uCX2prqAwTf7/L/3YUeFxXDsDfECTgBLP5sdwuDqMKKBpdmpyZ8gy6Rzsy5OiPiTcIvoiKTdmyfKjuCvSNpx/4TMsjW+CNN+a04wS72n8RMDTPzHu2K2ccqvkSUpXjidIlVAxw+gmVo/32M1hYz7V/5jdsPnj8fQO/BNpDO6WP7ZZDbLuF4v4iuum43ttHGhYTlmLIAO37ab61ry/bHBdZx7WXDUKVZG5UqM0IBfhURRs9bFFDFeik5Q+179lpKqbRfiQJ2xDhg2UnMrLnAJbSHK5bYmVqHmjJX6pV5NZVl5vF5VC5cP+G+jUyuMcLn7AcXTThgft86LpZPPKdyxmPwAx1oiaT4snE46mv3C78cO3/H/kihlEESGZlpgW4u/u2+LdvYxw8uFNBQXWJmNfp1qVtCuJlarIOvsFDXOHAj47MlM43l243oc0QnTO2n6dVWH0TvSjoHGddL7rTxuA73R9jYhYEWeKjJ2a0mo7ncY16J6JuWCy9ghprunrtarRf2A4Je9El7oLzUb2372xjM8JwuM/tqkx0bTBN1kkQNpiGYoCwGTX8QeCiEiHXyZ67/Kud1HKcn/9xrxSvdOMc8B8/bHfv+PHJel9ypJZgaRMuZu1gx/Mnoa3abcRaTC7eJ1bLPhJg3JAJ0a1xv8I79phmxlW7B7G3R1er6Fu7k72dgQx0Cs/XgQs+Bpb7gCFFn6jCQClcDgs8QWrWepe1H+vTtPgWyeCnVqv0uCKDMk/kSfC8vl20flI5rIuJz1m5tszwglJipVi8//qMJN8SPhfsiau+n8zXXrYpP+Vmx0AtA1zwjWHKrgG4O01p9GkXJB5mZKXCLJTmT1o3G+SouILL9ErdLyAmHh1l8Xh13sIP4fGrMuPxDJX9XQiQH9BIZnPF1RUvOevlve3Dk/ggnT2TijO2AE35hAios2kOGPUS7O52l/o79kcKzMFP/i1/6oi1vgfOVNfqVa697pCY2KQptlpWYhoCVYkaInogVlzH0tvi8zge+vk351DsR3eZt/8LJqNm4cnPKIeMajIti5iiNGfW8oMxUKSPSGZ9f6SClzqR69WamKP5VO2hmkJFRMkBklKm61gAFCKd7mwdDyk/L3KjKgMfHT1OuyRBMNYGCKVgmSU37kdbv+++FH687Fe0tjonWue9AEGJY2i6Po9kM9FiTWhu/a27VSetQBU9VAlmjmT7XZw7+K/NeuK+HFkxq9Ks6WAMF84we5tBy8AvGAHRe49vuhE+Lbq9xdR1kPQt+eAC5+FHywzE19plBglzEx7gvou7FICW/0piG+2X+UWe3KUtORFpWlCiTxIE+LfgrXaZt/gGF5Do3RbSNiXu4AAAgAElEQVSBDvGFByJiLiznnIzrojgHy6VWR+kgI2amEwAkv+tTo9NLxIiPvhWl9nl0INxjVqrOCnLWh8+LpCuMTUly3wYTpdG5z+mX97Fjv1U3UuB0b2EeFZ3pM9vlD8SEzcWq1pnagk8rAmtaNyv51RgE93SaZfw9mSnKoBh89p19xm+oozEj32HqagrGUdF4SbDi1XiNzp9/2r8bMzXonmPH/p72oIEU+Dh54z4+hsGIumHAElkjJXKz4Gwt1VUzLwqmBryRSNyhKuX4EOMtUVbyzv5K5sHgvxYAd5XGTCuyPW28DkKAk+QM55UoXNiPsieLroUV9mQawkEN/zYPYu3hlJkROMbGPQIt1M4M9rH4V2bm1XOOiud19Tt3gOnf7qs+UJ+CgxeGnUr47HkPmOE4rv9W66XoLUuCkGvAJcYjpcfT4KIHU8J1ZOlXrp/gQIpcx4DfB0M9WA6q94ykylzXG/KqDOhujP+ImCmRcoo4esL40VRT9TMZJHQl89H/J7S/Fv5uwnS2xE65XHTqfG+WdkWyKYvrE/S1dG0k8/bacUXRB9Xlb0Z31+tdqKvV7/vesb/Q79tI9AL6NTFDCwOKqcJo64PFT0JqM1MRX1CyLAE7KjN1JHw1QGg/y0zH9UHogp/tlvESkxf0XGkMN9JD6jW4ac3vEZlpLj7/UAqQ3gyyFQO1+OUYqhRMuVukzUzueDCxXQx11ZiG1j/RdYrh15IAPKzn6pVPpgFivawTNSA17Dl2ujRLOUErnRz8UbFPYWYI2leD68xMLYEXxFc3R0Fn71KmJ+qiM5LgV21XpJDbrre7vFOQSryEkynZi3bzyIdeFWT8QIG0MoML8b34etzv61c+l35NnCsLvmkMMgdy8Zd1p4mrODwvyx3MuNXRsEJH3Lv6kr2Us0WCTA6DHOixyQw03hXd6gzWKVgCfvpd/pKpCpQkA7MOpB3ldg8214j6SgtW8do9eBdzIam1PBm34LuHXmkfLvbRhSv6Dtp/G6dAestlYIKuap8ToArwQ3aa2htgFUzjArKNFdZ+PvexGy03uhqrILykG45TbpG/pFsLHxb1AuJFflMKZZsW3cpMx8ygGIVSv28j0WdGTw1SAFNgzULqEuqiMzNTWJ2ZusdPiTGN9LidvwkPRJqMF0M/1ca/Bp8xhdge80dyXKfKLBMI2KexXxTfi7R8qsWO/abrzaCb3rG/8ozQ276VXz/736Kd/JOML2QoID1cMY2gzMQuG5zXVR5YqdBIcwAN3jJzil+kzKprsgedIPir3ClA9dhioV8t7W+RJ6/hK97JP7cuSRyDYm678nfsr8x0WjASs19GAWnXW7AFnJSDCgMOvG7UkZ60R0985fMa6m76LCgbaeqbcAs8zW9PBtkS/yX8KKByVUrnzXy9xeUopiXAZzI4Tvfipju9PRikqmu8njhd236ooeyQWy3FXlQA/ZKZ9nanVU5yI/HTeDQ3LCS1UqmdDQmynCtQd8nZroDWT+aXVwvBwNMiZ26yb4DvJ1oX5IzN+XIDoLaaRHNjvZytuU1uNYP/1fdHS/yqonQWvGM/kWGmFw7uxTTMfkFdqV0+J3hxemLfzICYsuWpr3J8sW/Qfg7/PhK93YLlTbS+UJL4JxlXFnzv92Wg1S5kpQwoFUhWvzv52vdl/nyWsD2kX8O+i/Wd47+Ims0gGfwqfrXzMv+EGap5prYEqMr4zRiMovt6n55YWsWCrwXr8Li5/mCACPOly7fm78CFkMIvsN9dwMo5miZYoscaWrhdcVooLGOcSOddY52psYQG0yoyt8385pcmheTF4jYsq7tjf2+m0dJvQpfdOQeY0VB86TMnrH2D9o/usbTpNpJ4RTYZL9aL4yD4l/nJPjTxS2NFCaSs38SYSy3Vk3yWMjhRf27fhdYPK2vjF51XA766Y79ZcihSY1E7wpJbDXQ5E78Y/RIeDIOsU8oCCM7/kq9s3K8x/vJkfmQ+rMbYN2OmYL7sSPgXR/yrwRqGckxbN+riQgEvxUolgft1BhgdOF69foLBW/G7xZ9ReVOqyUwvHKzCICOFKviAz7D8die6BF9E5Qa6pV2pGV+rq2Rnwqf52/PorVjt82oZVwW6FnzRb1QovT23KgoC7hKAwr4Wxh4bp8GxwtVVsitpv3rdzA2Ic8vxF1EtDFKsF1JXxS/kM8Bnt2VsNtMzB3fHt4jRUbhH6rJ7enB7nHpqL4lyhy2KpV8k346IPg3TB+wuCoPgnPc+r63sEb8azmaSJVL3fuXODfKgSTunSJkkrK4L8p/IQB1XPxafyB6xFhbbY7zss2O/hT1Y/IK6zdoVHVye9g+0Xneq4LMXh0sc92oV+lXEDx4UDI7ou+vUttdbkOuyMBgBn7Xfg0E1xCea0iTha4gbNulzo0wAytmxP4xne7Z/wXNbxdW4G6OfjE/nbOc0h0Eifpvu2F9FcpM3iiwNSdyOJu0TPq3495AeBMcsTAOphvMKYPvHzS+K/zC3FYgPrN9dg0mjd24VtQfHYK363+7KO+oJNme9XCByWHgNcqx3+eZX6haKq6D2UBMUWJd7YFwBiysTd+xXnbRgpgVsS2WQgK6ZwSo+34Ivooa6m9mY8d2Smcf1FvGD+zAJ/+KmXPF9mJaLid8GEiq367jqiP82En1ijml+U7fzmgOEQaXwIV1tDNF6GIl2Atby1lQCvzozVca7pV9Fhror0zibveLoPtrIgDXXZbnwISCjTog1OKLvLtM/8fbXEvgBMdm77cG9x9Wr8AH6nNyoJsXtEgIcOyQSrDSHKXv48CUDOMApsvf5xnfst7CCyjO92S+o24rB3Mbtzuyxvr94THUt6Nd4Vk3lboVDW39zzvjipna/MQv9kz47Mcg9xrVfenaJviMV+kMCx0iGdgkOLUyLtQHqmxxXWh/ODuKn/Vpd2foA7drUK9NnrDtIBzbSMVeW5bdFbhW09+/2x4Kkm6z4LNMRcltJfMtygll3DCpxcRNbZfeE3FNq3CJUlLeRli+TbrAVfGS8FMnIP50XMXOZqWVMkTAhGHKu8PCz5FZBfHVh/yEYRAt8RqEm/vJF1B3wV78rzGSM/uYcooNLwx9p2l3pOj4YK2vfmBlafbbC9/pv93nXqaAQvfB3YaYuwTBH2T+Lg45tpswR0S0YtHsx8xq6g1g5/1/UMXsy0zPbx7vPb3QTAy5LFGaaEuu3fVI5QOemxe2fr8Eidw0fLDuqfcqvv/W3Om7VLuuqD5fSYWw0/JQst87VLo60SEQD0p3L+B37e8/0jEJNBrkH/lv4aZQK+Ko+OOjU2RcI8BozlfRHmvrhOjz2RlXrRHxfWXQt/VSKb/F7p+36VN6hLRDlMDj1vAdU1b/Btcr5S1jo9ZIqn5kelIuvwDalQIrqhmWbRyeOCMqXLlI5t9pUmiak1sI+7c/BBxmEz4fFa0eTvg36kipa/jKvCLggA2Kn81SKbx3v4WbbxTlHo4wU5ddT+GOgitRJ82scl/AD64PlVg+zY7+kX4WZAj5b4N89GylpvzIKli3PAgah+g0KxHYxjhxfrLKDuJ7h7z7H+nZn9gnoyUwVpl3T7+ucT81mUBn4y/nTbPyJjg7Adlz9fXBE6hoxQ/+0n22/oa+a7Akg4Is51L2llNlaAt9e+Dfla46ifeRIJRLj4yccTIn4PQV8GWMgBWsXHJfqKdkNjujTZfq3vMNtCaagtLAv9bvKp2bYE8nBVMxtJ5gczEIju4dxMCFXWp6g9UercVESTB213LHfenEkWKFFVwpOxUzHiJ+bLxQZoT/uHsw0VYewYHMRzEDW/TbDcjXYAv0a7hPwdlf2xCQbg2wxrmsySP+JmMHZGFQK30W6EjMNA6mL7ET8uCwcP3HwtPSVMI6dI/YzOyVBz6LL6aXw4Xf5zTOCJQ/L6O8qDbGlp/0h9BjO5lzuNbYJb5PRunPMIWC4sIzVCMhKWMbKYPccJ86Aj1wv2thg7QV9tlojqflSsSnzAeh6H4WfibqiwvUPHIda5FYB+y479pv9Mgq7M1PUZ3TwNvLfmeF8+gPJE+zAtsYMImIS8Ncwhbq2GC/+ddbX++O2WOqrMzLTWDbrUzldBb8oty38gba1uK8Uxrf6KkRFBrkqEzqphMGqy71qRu5iv4kTnrQvxc+0l/KoY/zLuD2u5iWR2VthEJqYL0aDHaqbeoWv93iVyqzBKMynWuy9rcjOrExeS7WgPhRFS3XCjz2a8AXdPe0/duyvha/obt7ldoyiWxPI5IyqtTVmpom6qn7SRVUY5CY4OMO4Qtuj4LP2tRmM4Pc2Tt9UKsFffmjJ99gevV7CAi4doLSfO68aZviFiB5fLV2VZfT//jv2W6Rzzsy6dk4SnwtamiM8CU0SSbQ/xuDiwquZzI2q5xV8AMcxc7SbRXww11ZD2HblPh0Pyl5vwhN6ZlBw+VL/z3QOlXwpK5KucA7FHO22Csvv4h6yNaRhPPH9ss+O/Tv6PSIzTs24yToZGJharvgZE3q1mOGmzzh2ITHrCviSXvgZ415fDLj7O5lwPLm18obtjY+6jygDU/Qg+7huiB9GN2avZ2SmcRn3vCQNmDICpBozTgSzI+CP4/xplISiysDAySBnAl4FU0u9DLpLE4Rb0lWqAwimFnwumIZydVMgG+mxnCnVJ2Z8QG7jxHYHR+xXQzd+/J1PZr6UrRiQMkDcrAQY7+EbZKiLLtd7omzKoaIzsnDw7AyyKf588HYnugjTF2svzL5qveJjCSayUUXbZWBwqRza6qL0BZ55VcBn7YPfhzmY+v6+uOmiGMdHPi++0Ju8eTXj30aiIeo0lnEZJtn4D2S8qj4TA0q6nqRiP4H12O81LECDpoY/PUxtkFdoOiMA9S3FVyUjt7qwHtRW0NMYIFuY2VcWXYkZp745xOYC2QNpfFYSbXcUbGAT5yjdFFxfhmlt7HXY3o4nxZJbDXS5LQ9XLsN+8rfJnE/OOLb1eVQhDy3lRmuFDH9HcJpnJQnBd+xnDhbPdAa/uczwKPgjTQFG+qLlUhDpLIcERiLeoQWzs6RTs/1FzJiz4y7wigzGzcESPa/hG02etfpzmoOf0vX5VC/+HMbnzMzAwuAFMDgrwx1pyuUi9Rppugs4BTMVfMa6/EOplJWi25SZntz+dicauPUxXuLbXIV9BIdFQDjHVSBiQAeSkKIdeoHpVVN1r/4CAZ2EasMc2ZYAEuRdpTygJUAQPfKpXmcT2ISJlxUhfZIaV9ZxY7Hz+Wq4XpZJCsBvZS+uQyXCZ46lvIDBtWZQR8AX31N39GCg0e2P5JeNO7VnegWftQkvfmVUqkwhCiCm8wq2/zIQDYlvfqE+3azjGaxnr+GDrVwG5fdO5cahWq9wgIx8OcrKxGOBO61Oku3mm1EKPhr0jsBg9Xf5wdzC4tySr4uDBijVZpQOORvuAQcRqblDTT0lYr8gg5m2F0xoLuVsnb8dNuaZrV8MQHS5ssEZv3llHCeOpoD9MszbFM5511UQBn2OY/Smnc93Jg0fPx1TDp/XRG4z9xJK7W+B4jeXjGcl5Tv2MweTg1uJ/Fl+D85Ml3I3P8UFZn7NUYqZljK4ED9mYxozdrTNE6tYiXFQvV1ufgiFnFfQZ6wbrhv1e2P6DbX9bW78wT4N39sMymdkchicel4T41Pzq9bBPSEzjfA3C3lKGWBSMp1VYabgBdoMn+Y3QQbdXstFucTxFH6qbKkDM/jECXt82MCTABH7oM2S77MEGKL5IZR18q8ojqbg6peT3Yln89yrqfFSqtAnUuZF6PKkHzFXLgina7lzgdtlGW8YNG7PKOXv2A/qm/1aBnxt/AwGZ8X3FxH3zi+7bjPyvQqmDRicdFwcTEGFoQAn6Xpm648nUkJWBukDmdWnFT/J4IOiS3DMMzeJwcW7UpkmGPS8Mudms7pA0FPr5YLlUZouM4lLelZ8Tlrgw/uhpkStyFlyq9wDoQb47PemiNb7osbHqD0zXTGI1DkLK6TUmw2csV3wdwwv1t+Q31oW71cU6B378MD4OL+c3uAe616v8+/xpLvJpwpQAjws8WnhFKzjKhlMFXsOv6so+LYd+xmFKgyule5BmfFmj9QEw6uNv9HlmHFUpxTzEusa4XAP4DgGtdmtnfg2SViLD1o/KChlMJtyzTdDWZG+csODFfp8a7gsyy/b4uxXv3PnlcMsab+i6+vfhZkKPlvjJ9/lF50LZTXs4Qu0lr0lmGbih7K8amewkcR6XsQcmj8QKaTIAPTOOeosJZZgOv8MH0Ll9vFKhH4SdZk6IeKCn46UrxhE1QodQME0gY+US7ojGT4DBMrR7ZM79i/llqBTm0H1xgcvZAv+fYz2SFWkJn7MYDYHPLOg4OemgMdiZ/SRsSe5/7kgkJvbfGGWLKX8Sj6Xermt4qovmMf3yeDE+Qpz00D7w7rBwRCdoIQ+lPz58s0XbQGfFt0Ufo7PUnx1x/5Vec/cZm/8CkwjFp8PS+arGHyrSP6ld+03d+VxAZqUi3OjEUbsQs1BRiKe11k3fgiFiqWfQht/Ow45FB1EGIn87KY6So6Wg0EF7sYgtxo+hGLthQqUXq+wNMrD6jv2RwezZtqEnqprYbAnwA/9+qf9VRiUcEBifNrsrGKhMzVTviJ2IOPKXQvqH0KV9muK8Yn2oZ2GFTBaiRlz/jfnFRh3kl/NLje3PCaC6RHeaGqFr+/YD5ydagz07PYZfcUtkdHcWWdqMYcWUBSpCi36VcNDdJAA6SjYQcrgg8UE6Vw2A9MYnOKmKDdqmKQsAgVTJ4Ptch0rDmvhd9uxvzeDrOK3kEHe46f9jfD9gfCYvyhjfZFp8S7hMmkHouV4+HdUgLbf0bRWE2VFG6YXAaYuKK6vll+1czgDc9/8iusa2uXWE2ZaDL6qz/hlg+mBGKSqax3vDH7Z6jxrMqa2FOBXmZEifNWeqae0HhWW0D5gnBLb8utMYcyMhJuYG1V8MCnDLNHWmuasG02xeM0mqTv/zE27alWo5jAQcaIM/r7dZXz4emuUW4XslfOH2DuKc6gog4sOnomZ9saP/7yP8wMUi1+uPdrsGlGxIqYwUrscZAEzv7jHO/OhA4mtsP4D5uivLcfoZTMgpiw8fyJjjssCvDAGZDM4oy43/k7NTCvg+7/FOd0SeMz2gJzdXjKKfUh7QmqyebIr+EZ1kkwhYF8SRgkJyurXQAYn503hN78CHTFAKVJrvFj8jAmdVvWPiZy0ixo3GVmwdrNXOgqxD//evCnVm8GV4hPhDKpZuwz4d4aSoPj+gMS0wp/wwIpze95eqGdRDlJQsPZrHEyl9bUb/0w/qfhMBS2ByNpPHNtDsGrs9oUyuJGYYGoZb4X4Ft1sfEGPs6v8hvMsHfOqjsHfnWlY2j9i3yJf5UqZXM+qmGNlxtxe/DMn15dMKxrys9J5uTLLo5Y9CVL+Df20wuDYOoC3OWQcJ2qdEgIHI3rMLzF+HDxH4sduk+utd24VlCsUpU/ATM34qE+LXwszDg7cxmlmEweCk/tslUOLrwTFjoVhriSRGXPFme3ndFe/C7qXIdpb1oE5SOFgsl4Bk13KwnRKBWYYl4+C31JmmuojF+ku/Roobd7Rr4gfFqDncy987TpVP4ECVS7XHrjAm+JXtC/1q61HXfwwkWKTQytl5kw9pAAF+wQPWPrP0WN3plBW7DzVVwas2Am6436uLO7RC18Rq/3qfM+RdHS0SfncgLuqHPw97EtE8+dI2rGfsS5lcNzsrw5i1GdHfLOuEkg2O93HFxMy+xqYz4Ih3UoqI0eaycXjvhwMpOT4A75o2Xk/OCCN2VWK1P/C6Kn1mu2QdaOaT+T8jPMvcCAx6Fr3BFjZBGX3qA9r4pv85oz3AnyNIPhjbXKokhhyZk3ysIU5q1hqzrSb7+wAObmNT8WGxVdyo8jO6q2IWooBbp7oK3nl8Ce3cgH6lhWXa2UOp8pSssQpg7H1W1zSetyVm5HEPl090bdcz0aBAp+CX5vZppipl+SbUrszw974OzNTL+HT/vAYlBO0ztRB2YqdOP0W3zMor4N8TsT7heoUnvcwNxnoXC9R38fMnvPL/GG54FC2FTJizkHqgjateshkpiHj3NQ3cd2tJtrKzNjksyEzNgVS5qC621RNBgbbJ05qU3xr4Ef9AmXLO9Ajrd5oajVT57Cq1Z0e2AnW8xITqFD3MgQDdmaXySAV/wHYIFLCSmuQOnO/ovlxgbWvnugbgqkkZ7DPGSfH2LH/TPgo27L4nQ/c7/P34mvM1MzV4oTfWzConPaHOi7SDz9j4oiWaJBi1DGwaQcrpkBlLMIffgJbmH1sV5vBMbrq97TC8y/UZYxXNyTqKblC6lrsNzGeU/1ach1MQzQzX1hjpkfxm0pBbrXmTKnuHynUZcUmlLxgcDhZDw2vxbla3UoKD32uwwPfs/dR0CeK2uP7pVJdrYoc205JLrMPC6RcOKer5aGlN6HwyuhSvV8szx2M+Cm/Hzv2HwifiGdc7Ewd5g7jfCODv1duz8pMl3o5Xnn1RD9qSBIr7ie0/lo9UzYWBlyRmYZ9seomY//E7VxST0i7jMz0aPuiqtcBWIfkU/6aDOy09tWoeFpSa1KJ6MG2IkbhiJ+c0QdNFrFMEpKMxLPp0MUQDmThQZVYJnWGwOK1/kvJKFVKEKn+cDBSKjIq7Yt1/Y8wJbEc9r4krJK6Fk5yxfhGQf3qO/YfjMHtiU8EzsoCvkU3HsSsvZ99/agPfsI7uwcHfJkabNE2GS6Ojb5Qd6IpZ7os3lf0NmUcUwkSmJr9qmou/WBwJBL3et2TwS0/tHOmRJb40BJgkTGwE4NshS92S0Z99R37G+ZNqktlfPNMVym36p/0c2xi9T374Ke0x6kWLFOs1MqKDMWP9+yFOvkLefUmlJJfZpkXlxdUGm1lpqErmAGhzDFRCUsONNaD9jggohF8E8okveNJhk/4Oph9bz4j3ZsZmvAtrPBE+HciuoD4KQalOdmVmSqzPad6cWtluI3CLWrvdaO538dS6xI0QGXRvl8cbVZ/cHbcDmis7gGYeStmCgfSSHeIjsFiCTyiPVD2NPaGiQd9T1pjoKEOUJ2lDB70CVyuIg5gRiwzt2AIPq0M1Nw+xc7y9VXtjkIqTK7qCHPuCSwph7/b9WKZpArwNVvYLxN483bsRxmcxWcLfAsraOA39+l46lZS87tKsRpm2mwGpemCTG+jE9ppWCFD426lBSYW9lNWXWuff+U8lTDoVb8IfRGKtEn0pmwnBmnxieqqgbRCu/J27AdyEZzu7gySeQqOYql+UXuGkaH2/ntTFmYVp1g5RRHfkF8al/8eP0UGNf8blfaIdlBFZF1T/wXtgOtZS4L+CYHFOoCV3KxRVpyavjVWW3rnVisK/KbUqZhpb3yUwSj4/ltT8YGqDErBZ3UjmudIeMI9Uyvn5gsVZSAJ5lXCtlkblJEofqszOI1JBv3qBcqhJxg/F5trM0NJT6jS6Zipl00OFR60Qpk5mGViSWIJfM3wLfZCXbkvokLBtBJ+XMaxXpVBEclLwKQyhXUl64W5MZ1LBL/EnojUN8S2yo8f/p9lohTdAndRkux+vWTY55zz3Hr127HfEnRr4+/B4Crg+z1SkYcapfiSvtfl+kJiUKqOZIfqRmWr352NsSH1MpEBdFxxDeD6LOzP8dE+0S8HqrRhpMSkZzkvAo5FtzZ+ikjA480wXoYkMAKYY98ptxpjdxEQ/xaxwWq5PUu+FATe5FWtebE436fgWnPLKbt6BpiL3G9eacFUAhWZsa9Hyg8qJ7mmsvVBOe6O/ZXxic7DTL3P+G5wT3zp7Z/YxhOouB5mBhIFF8uqgxSTWW6PD8BMJQat+a9+HdI6pXRaZiro5Y6TTVnGeNk85a/GQDPty4xs7lK3BEX2pfizBFtQNsEXmZ6S21NzeKOxXgxLkwZyTm40RURa9KuEa2L7BizOWGsX8kTfEviy7UvxM6R1va6rwjMxuN74BboWfO5pfyl+WBQeYhlUxI5YVhPO/Fq9vANHyXWjQhXYOqWkx1dDuQMakxujv5E2cteB2lY3BVNxkq7NIBWfLfC1/q/eLuL7es1Q49suqYIooNW+Mr5ZDpgzEtlELn6Uj4uxUrlL0afhKXWK/SbLDpCvg77NlDywcZEofMhqvM/+k9fAqO+5C19DAhZrL7SjNlOsdv0Xjq1HDjV3RgT1VF2UwYH4Zr8HZ8ZSnjIHX1w36n9oSb74EMC8oLKM8XQYZupWxHvrYJT9s1jW69Azfk1vFjGYfjBT0Y91vAx6jRKO02b17S0DzuIXtUeDaUX88MNoqL3pKfhISy5Tm6BbMRAtZ6jZqDlVsK8kEftVYKasgPnkTYBU8FflNYKpscwSoDipeb1o46PEb4k9tmO/hRUxBy0M6vT4BboS/n3cfjrZwvQQBrViwVxdmQK0DZZ+ZW0CvE2uMdKD8Q26pq+GhjnixBXJjletXuh4jf5mP18i4LB+0b5yQrnBJ6qrBlLh4B7twnbsj5/CpowSumb7AvwqcoDcKrKT/7K+MaqHmvsk4YJTgUje11PwZWLMMuwaK8Y35MBMO/b7fo38i7ndMWDQaCMRBinRcqXdal5Xw0qUSQLbF+DnXP9F7TLkjOvt2B8p7MoghYNnZ6Yh/n2MPgeSwtfORUStLExB0k+NgdXvBgaB6pUyYxf99HoS0ZTKxuBgclxwzFfDCP1GswtXn01AtzBIoU5SvaozWAY/FQCPsAuWvmM/IGgwTdpn4rfyezR7/20flkE5npmKmABrkuq/Kk88XS5ZiKDlVZEySbSNprl6WJ78ImobeDDPuugy9RHrL91FAGXdxVip0g8xWqqh2a927N+TQaIsR/V7IAa5B37MlrSvhq5chIzUwkwD/aUs8JP1zSNBP5wPeqwbTfYr5zuseIJQbOwE/6uisP/D8xfUU8JcpYhQpoWOi6CgKnR6/KsAAA2/SURBVNMT9MQAhvqdC/ZoVzKHqkrH3KJ55gGYW1MGWqH9bzei1/vjO+nautFVMcdekRyWz+vFGIn8rJhbFGQVTFN1SghrPwZViOouMbvUt59W/Rr/nhKU9UY5Wekcx8Ll26F+Veq1y/ViuBvw+vA3ulq0i7m7aL9jf6TwrpgpyqBAfH9R3fzxmSUOjp8Z1RkVYF5I+yWWt8FLSKsvBrj4uFsRv40D7um8/zMko+h4KWKAUpmTJ584ZwoHDIPuqb75RA2uV4Xtbj7SpwJKyppuIpha8KXy1C1Btn0pfmN7/9BhDILs4B5BlrVXAsbKsSLSxYxIia1VHNGyBWIIzNYhNxccp0QifEtduTKurlJ9YoIH4zesf669ZmsaP3sNthlqs2N/KYM0Mb1Wup0Y5BHw73Ng8D/9fqrLCgHNx3wFWxgMWw+GcfjAEOO1ZlCt142m3p1P1jVRFvqSAqyX8AUQCIs5T6yuoif5LcHXCFLVdvky9DoE8EWGWiQWGmIZyIA4xqdon/NAAcFHhcGvKZ7B0jhtiOEDrGexG9gov+iiY9qWfhK+F7ZfDeNEYtYig0OYaZgjTuFzdqm6A3RRY6Bc/0sS5k1Lxys7LqyTfya+Zgv7FR6YVu8XRt7njv3CwWK/qE/r4KyEv6QI5j8cTblXz2JZZmSpb4v2J3zG9dw8nefG9xxow4CrxXZuHCbHa+BwE4wVprNh0Jz/SJbdoyoyrbAA1U32n6KrBtLa7TLqWvDFhf2S1J6RrPZVxBJM810e3n6kOfc6Py11xLDXgpNTXH/FgcTsLDnirG9eJeoV6i0+Iga8CZxbs3Rd5rK7N7RO0qDsYZ8zxI7aLnnHfmB2tMykJqYlHGzN4DS9Z8UP9Ud6fHbFzf8GBkNiMsm6VmQaTtJN1XNmpsl0BPNHkoEFkXIpC4OrULdNgBXwYr27/7tD/2v1RH2qAUyoA+pb0pNwUZ8pXXkdqmU9WAthZvVYms1Iuev4DowvCevXMziaAuzrSPR2n373n87QlgwW90voOMrrbjDHR544KSEzDSaOZJ2M/qU6SW7QVHLcLXC7W4kF21pPQX+36zATf/umVE9mamGlBfii7pmYKeizJr7Pv95nludovb9AE3yJKXi2gdziMwdKGQ3sg2id29VswPqNND9kPAMzZfBzmOkZ2kWU+ARKMwbW2R7uMM3eMvG0wAelZb8uKYJgiZZ/yJWLL+ZGGcWUHxZLeAIsifUc1sqNSuJJKWxnJQmgWAKUxemZ4ggnm3WomoMWDNLk1zo4euKDPp8Jf3nBYFyve3WRnuZX1QUYIxtwQjutrVFEzJn4QgwpwG7+drJenFuFNjypwLQkv5ZAmmq32a9RtweDnXKo6Dq8KGdTGvmlctEvkzPadUay4IM5IzN+ge6e4j8Gd/P51/v608UrXaLNbllSvlRL4IpNtuZAKejXqEysP+MnJzcal4f2yJ64qsO9pFK+tIrvmgKMI2zHfuZgKTPtzYyfEb+Vbq2Z/h6lB3wedtUXHAuYI1m8UD9ZJ4DRivX3OJGPmI1KT+eTt+VO14t1oQ1PLMxUOFcW3XfDTA26yTelLBe+aA+UPY29ZeKpLKW5wb36dZz/W/KcTJDdGlCS+bH4gjJrP0YKfiWAs+VG0fqhuVXLFxWOdr1otrBfS+AzYLXAr7djvyWQoLooPnrB7Ijfym/RjGzw2QRfYUXhMqA4uPqAFpFGFWf5ofW1e+CtDvp6ON7OwswsDHZTN3qsrBD15gLoghfqafGJ6qqBtHC8sOYG3Za5VXlhPyil9lUETVbtiL9rv1ra37OvxEfvW7UxCHSeOQ6eKabqD+JsIhWzbpRzk50bnQ0h+3H1Y3/pfU1Zpfe4nrGr7tiv6hb4rcJMC3TPhC/67clMC/H9eA0/hbywWMYZzFRAfFFfYXyr8gQz3fiY/4jzph/MlC84AjP1UnW3KXWC6MngntDe5NfguEm7KuP722AXHPebbW+wEutOuSVWNcgOHJQYfCIgmCoYWbgJh4h9Tp/tdh1ZJv8C/LY79h+QwZXim/y+EwZZjI8yAsHv8swqyH06EgJs5Dc892gQtKwbhfzG7dGWJhYySEmPLY/LBD0xAB2QQbbGF9/lr8Kg0PV/Xre2NFjf1mxGPdvawQNjj+PE8O5jsP9AgMHmNg3VsD7dtzgMH0KxvgTwXZie5XrO0a8tHfCr79hPZGSGoN/ezLQJvoFBNvFbyAzPgr+sEBjXx5efEh5TV0sO1MJMHT12j2JtezJTwacasA3n9hmYqRf+oRQg8MlN+UWDKSgme2vgr41v0O1eL7CvzoDP5mAFjFBM61+BeoRlSWZq9FfV3uJw1u8+XlF7A6lB8Pvs2G8NZD3xC3RL8d8Lg6yCX6AbM9jlA4fKtbEpn33mMNhwjS1nhAY9eDIuZHoaQSnxK5bVHi8N8QfJiSTWyYqVM+ULO9bVGXJATWb0HfFZaXSeUvXy+dfwX9I9osObsYv3vcD9ulNuVbOF/Y6NxqsBv5UU7dhv1j0JM+yN30r3KZnpDvjhiwabvKtbmem+GWbkH5ZxbBepJ4Trywztj8vVYHWA+lbHz2T8m3WopoEslKO6h7W3BNMG+N3XjVrsDYH/GfB9APRvbG3SBIZ6LJ8wSVWyg5T2oUWXtUeDaSv8TPusDaZ7M7j3hM/qH4zBHRq/hW5Q4O8eb+EeBJQ+7+P8n4sUqjItRU/yG5dpweaMDLI1/nodakHOaveZ40x52AJh+6UwX1h8XnbEZ6VTbhXR9WtgV+tfmTpAG0Ub8TdlSg4csc85T0Xn25JbbZQzhkXAt+3YLxx8RmZYxKCeAJ/Vb8QMnxWfKIhpAYONr8U9mR7iNxWAWtxxiD4K/e7NjG3v8luCWb5L2b43vsUedNJk9qzg+LD9egZ75aJD9zbds/6modJowFonqmz7EnzFoT+E7dj/wSCr4zfxezIGd0T8Ir8o0ylkkK3wU0TmGRhkU3ynvMu/MgDypYtUzq2a5ETvDjeZUS35wj1yeDvjm6T3O/El9g3xWTnAulHYvsV5RfHHhjv2V/H7wYwPh8/qn4WZnolp7YivMdPe51X0AeJbdGvgswv7zWIJZvku1RPfFd9iDzo5E371C6kCviSHHReg09r4mu0h+8Wgu5t9UMAv7K/NoIQDz8jgSmdvi98PBvmO8QsZmRrsDljfs+APzHFIzDNSz3WrYL6u2Yx6pnWjPXOrYzl+kZwoB9+ynk3Od8+c9Y745h37ic7DDE+Fj7LdD/z3zUwL8bVg8XHHU44vrkM1MbAa9kAwK8VXdcFpaVdm/V7sK1DQQ7arhb2VJGTWx+JXMz5Nv1ayv5bkQT8Y5Ac+is/qH5hpPBO+GkCelEFCfhU9yW/K59A9t9kbH7V/J3sHtMIvOq8nb/uh8Vv4tuSBG7UNGm+Fex1w8rFjfyV8k9+zMFMDe2mFL/oo9FudQQk+e+Iflpn2xm84rqrs2N/UHg2mrQR03qRfDA52Py872Jv8WiYpqEbPYd/Kb5G9caKujt/Qnt+xfycGKepaL44PBnko/FZ+n41BtsIXA8NZGGQrXfR8KXqSX182jEQ/byw67vUp4e86I1nWQj5pDqoEvwYzLcEXdWvLSb5NliUnqm/1OJC/18LPVzcF1O+J9mOmxQxKOLAXfivd986MmzBDAV/y+66Z6Zn6tTc+7/PnwRH9BDtRDu7KIDvbd6+XwcG771fLJFUbX3FYG1+zPer5LrLveV5l25+uRPQTum6tBYM0+T0Lg3vv+CgjaOX3/EwH1lUD6Ue/7os/0O+G20j/XsDdSoOcUbMZpef35A34TykV2l50Xp50/87s+tSSg+bsRd0W+IrcbvQfHRHRf/cfxv+HiL6vwkyZgyiL3ZMZl+Kz+hWYWW9muBt+DwbxRPgfzPRg+I5+vv0T/bNpt6mR/pavQsZMjQZTUEz21sBfIF0ZUA17sK+a4Qtl3ftlD3vFIWKfM35P0S817NFgWhl/vNNf/+WfuJ+vRES3kf7q6uh/3CifmEEWzVyt/D4BgyzFF32A+BbdZ8NPEZlDM7jnxv/5/nv6t0Tzm1J/+y/dT0T0VzwMIL3X4zVYt9lkRtsRn5UD5KDgdr2T/TOt+MV+W9j3fl7QGd+zU6Koz/77/2P8v9xIv306ZmrAN/l9RmbaG/+gTKuVXwfoiYGtPzPD8Q/I+GvgO6Lf/c//tfuvfNFqx/7rjf6M5nWpKek6I1rtLcHU4vcZ7Q19VR3fGPj3lN7npdgvGkxl1Q/7rfz0dqc/U23/xf82/nC/0N+NRD8ckUG2wG+l+5QM0oB/JqYB4e/MYDWC8FT9ekJ8Ivrpdqc/+cs/cj+Fh4ZY93//l+6n4UZ/QkS/E/y3kY55kO4zYuE3p4plxz0pJXy4X3vmNhvsnynparamfkX3WihYD6vhN9FtIbZr8HdcMJ2PyfI//IfxRxroL2ic16jWZqbW25AT47P6FmZo0P3A3w+/yC/DoNRAamiX5GuX/npiZjre6a/+4o/cj4JJegL6078Zv//0jf41DfQXbt5ERTNuEviEg7sFPkF314D+nvEtge/E+KmL8ekmqrMEfkc/00h/exvprzhWqmJI8qd/M37/+Y1+OxL9c0f0W3L0gyP6fhznnaoYb7te8IX4rP5ZBuaB8Yv8noXpKHoovnYhvttApvhshT8Hz5/d9HD+p9tI//4v/8j9vVCFjfz/26ho/MVF3UIAAAAASUVORK5CYII=');
background-size: 100% 100%;
display: grid;
align-content: space-between;
padding: 36rpx 20rpx 24rpx 20rpx;
box-sizing: border-box;
+
.top {
display: grid;
- .title {
- font-family: Source Han Sans;
- font-size: 28rpx;
- font-weight: 500;
- line-height: 48rpx;
+
+ .titlepp {
+ width: 100%;
display: flex;
align-items: center;
- letter-spacing: normal;
- color: #FEFEFE;
+ justify-content: space-between;
+
+ .title {
+ font-family: Source Han Sans;
+ font-size: 28rpx;
+ font-weight: 500;
+ line-height: 48rpx;
+ color: #FEFEFE;
+ overflow: hidden;
+ /* 隐藏溢出内容 */
+ white-space: nowrap;
+ /* 强制不换行 */
+ text-overflow: ellipsis;
+ /* 添加省略号 */
+ max-width: 260rpx;
+ }
+
+ .fh {
+ font-family: Source Han Sans;
+ font-size: 28rpx;
+ font-weight: 500;
+ line-height: 48rpx;
+ color: #FEFEFE;
+ }
}
+
.text {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -219,18 +250,27 @@
color: #FEFEFE;
}
}
- .bottom{
+
+ .bottom {
display: grid;
+
.ms {
font-family: Source Han Sans;
font-size: 20rpx;
font-weight: 300;
line-height: 48rpx;
- display: flex;
- align-items: center;
letter-spacing: normal;
color: #FEFEFE;
+ max-width: 300rpx;
+ overflow: hidden;
+ display: -webkit-box;
+ /* 弹性盒模型 */
+ -webkit-box-orient: vertical;
+ /* 垂直排列 */
+ -webkit-line-clamp: 2;
+ /* 显示的行数 */
}
+
.time {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -247,6 +287,7 @@
.rightTopmk {
width: 100%;
height: 100%;
+ overflow-y: hidden;
border-radius: 16rpx;
background-image: url(@/static/img/lj2.png);
background-size: 100% 100%;
@@ -254,18 +295,40 @@
align-content: space-between;
padding: 36rpx 20rpx 24rpx 20rpx;
box-sizing: border-box;
+
.top {
display: grid;
- .title {
- font-family: Source Han Sans;
- font-size: 28rpx;
- font-weight: 500;
- line-height: 48rpx;
+
+ .titlepp {
+ width: 100%;
display: flex;
align-items: center;
- letter-spacing: normal;
- color: #FEFEFE;
+ justify-content: space-between;
+
+ .title {
+ font-family: Source Han Sans;
+ font-size: 28rpx;
+ font-weight: 500;
+ line-height: 48rpx;
+ color: #FEFEFE;
+ overflow: hidden;
+ /* 隐藏溢出内容 */
+ white-space: nowrap;
+ /* 强制不换行 */
+ text-overflow: ellipsis;
+ /* 添加省略号 */
+ max-width: 260rpx;
+ }
+
+ .fh {
+ font-family: Source Han Sans;
+ font-size: 28rpx;
+ font-weight: 500;
+ line-height: 48rpx;
+ color: #FEFEFE;
+ }
}
+
.text {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -277,8 +340,10 @@
color: #FEFEFE;
}
}
- .bottom{
+
+ .bottom {
display: grid;
+
.ms {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -288,7 +353,16 @@
align-items: center;
letter-spacing: normal;
color: #FEFEFE;
+ max-width: 300rpx;
+ overflow: hidden;
+ display: -webkit-box;
+ /* 弹性盒模型 */
+ -webkit-box-orient: vertical;
+ /* 垂直排列 */
+ -webkit-line-clamp: 1;
+ /* 显示的行数 */
}
+
.time {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -305,6 +379,7 @@
.rightBottommk {
width: 100%;
height: 100%;
+ overflow-y: hidden;
border-radius: 16rpx;
background-image: url(@/static/img/lj3.png);
background-size: 100% 100%;
@@ -312,18 +387,40 @@
align-content: space-between;
padding: 36rpx 20rpx 24rpx 20rpx;
box-sizing: border-box;
+
.top {
display: grid;
- .title {
- font-family: Source Han Sans;
- font-size: 28rpx;
- font-weight: 500;
- line-height: 48rpx;
+
+ .titlepp {
+ width: 100%;
display: flex;
align-items: center;
- letter-spacing: normal;
- color: #FEFEFE;
+ justify-content: space-between;
+
+ .title {
+ font-family: Source Han Sans;
+ font-size: 28rpx;
+ font-weight: 500;
+ line-height: 48rpx;
+ color: #FEFEFE;
+ overflow: hidden;
+ /* 隐藏溢出内容 */
+ white-space: nowrap;
+ /* 强制不换行 */
+ text-overflow: ellipsis;
+ /* 添加省略号 */
+ max-width: 260rpx;
+ }
+
+ .fh {
+ font-family: Source Han Sans;
+ font-size: 28rpx;
+ font-weight: 500;
+ line-height: 48rpx;
+ color: #FEFEFE;
+ }
}
+
.text {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -335,8 +432,10 @@
color: #FEFEFE;
}
}
- .bottom{
+
+ .bottom {
display: grid;
+
.ms {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -346,7 +445,16 @@
align-items: center;
letter-spacing: normal;
color: #FEFEFE;
+ max-width: 300rpx;
+ overflow: hidden;
+ display: -webkit-box;
+ /* 弹性盒模型 */
+ -webkit-box-orient: vertical;
+ /* 垂直排列 */
+ -webkit-line-clamp: 1;
+ /* 显示的行数 */
}
+
.time {
font-family: Source Han Sans;
font-size: 20rpx;
@@ -359,35 +467,46 @@
}
}
}
+
.ztlist {
max-height: 40vh;
overflow-y: auto;
+
.ztone {
display: flex;
align-items: center;
margin-top: 40rpx;
padding-bottom: 24rpx;
border-bottom: 2rpx solid #F2F0F0;
+
.rightpart {
width: 100%;
margin-left: 16rpx;
flex: 5;
display: grid;
+
.titlepart {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
+
.title {
font-family: Source Han Sans;
font-size: 28rpx;
font-weight: 500;
line-height: 48rpx;
- display: flex;
- align-items: center;
letter-spacing: normal;
color: #0C092A;
+ overflow: hidden;
+ /* 隐藏溢出内容 */
+ white-space: nowrap;
+ /* 强制不换行 */
+ text-overflow: ellipsis;
+ /* 添加省略号 */
+ max-width: 430rpx;
}
+
.time {
font-family: Source Han Sans;
font-size: 24rpx;
@@ -400,6 +519,7 @@
color: rgba(133, 132, 148, 0.8);
}
}
+
.splace {
font-family: Source Han Sans;
font-size: 24rpx;
@@ -410,6 +530,7 @@
letter-spacing: normal;
color: #858494;
}
+
.ms {
font-family: Source Han Sans;
font-size: 24rpx;
@@ -419,10 +540,29 @@
align-items: center;
letter-spacing: normal;
color: #858494;
+ max-width: 100%;
+ overflow: hidden;
+ display: -webkit-box;
+ /* 弹性盒模型 */
+ -webkit-box-orient: vertical;
+ /* 垂直排列 */
+ -webkit-line-clamp: 1;
+ /* 显示的行数 */
}
}
}
}
}
}
+
+
\ No newline at end of file
diff --git a/src/pages/index/ztdetail.vue b/src/pages/index/ztdetail.vue
index 814ff4b..b81ae70 100644
--- a/src/pages/index/ztdetail.vue
+++ b/src/pages/index/ztdetail.vue
@@ -1,15 +1,15 @@
-
+
-
-
- 这是详情标题标题标题
+
+
+ {{titleData.title}}
-
- 农业农村部农产品质量安全中心发布公告,公示2024年第二批全国名特优新农产品名录,辽宁省36个产品入选,其中大连6个,分别是大连油桃、旅顺大樱桃、长海香螺、长海鲍鱼、瓦房店闫店地瓜、庄河蓝莓。 农业农村部农产品质量安全中心发布公告,公示2024年第二批全国名特优新农产品名录,辽宁省36个产品入选,其中大连6个,分别是大连油桃、旅顺大樱桃、长海香螺、长海鲍鱼、瓦房店闫店地瓜、庄河蓝莓。
- 1小时前
+
+
+ {{titleData.create_time}}
@@ -20,12 +20,27 @@
import {
ref
} from 'vue';
+ import {
+ specialListInfo,
+ bannerInfo
+ } from '@/api/index'
- const titletxt = ref('名特优新')
+ const titleData = ref([])
- onLoad((param) => {
- console.log(param);
+ onLoad(async(param) => {
+ if(param.type === 'zt') {
+ const res = await specialListInfo(param.id)
+ if(res.code === 1) {
+ titleData.value = res.data
+ }
+ } else {
+ const res = await bannerInfo(param.id)
+ if(res.code === 1) {
+ console.log(res);
+ titleData.value = res.data
+ }
+ }
})
@@ -38,15 +53,12 @@
box-sizing: border-box;
.titlepart {
display: flex;
- align-items: center;
+ align-items: baseline;
+ margin-bottom: 40rpx;
.title {
font-family: Source Han Sans;
+ font-weight: 550;
font-size: 36rpx;
- font-weight: normal;
- line-height: 56rpx;
- display: flex;
- align-items: center;
- letter-spacing: normal;
color: #0C092A;
margin-left: 20rpx;
}
@@ -61,11 +73,10 @@
color: #3D3D3D;
}
.fbtime {
- margin-top: 32rpx;
font-family: Roboto;
font-size: 28rpx;
font-weight: normal;
- line-height: 42rpx;
+ line-height: 142rpx;
letter-spacing: normal;
/* 外部/SCMP Grey/nobel */
/* 样式描述:06 Small Grey txt */
diff --git a/src/pages/learningCenter/detail.vue b/src/pages/learningCenter/detail.vue
index 2e733b9..1986ffd 100644
--- a/src/pages/learningCenter/detail.vue
+++ b/src/pages/learningCenter/detail.vue
@@ -1,50 +1,51 @@
-
-
- 小白投资避坑指南
+ {{detailData.title}}
观看人数:
- 200
+ {{detailData.watch_count}}
- 观看人数:
- 200
+ 收藏人数:
+ {{detailData.collect_count}}
- 小白投资避坑指南
- 小白必看!新手如何炒股票不被割韭菜?/书单推荐/股票基金避坑/理财课靠谱吗? 视频文字版本的介绍内容,视频文字版本的介绍内容视频文字版本的介绍内容视频文字版本的介绍内容视频文字版本的介绍内容视频文字版本…
适合企业
-
- 理财小白
- 不知道从何入手
-
-
- 理财小白
- 不知道从何入手
-
-
- 理财小白
- 不知道从何入手
+
+ {{item.title}}
+ {{item.describe}}
+ {{detailData.title}}
+ {{detailData.introduction}}
@@ -73,6 +84,7 @@
display: flex;
align-items: center;
justify-content: space-between;
+ margin-top: 40rpx;
.left {
display: flex;
align-items: center;
@@ -157,11 +169,12 @@
font-family: Source Han Sans;
font-size: 36rpx;
font-weight: 350;
- line-height: 100rpx;
+ line-height: 80rpx;
letter-spacing: normal;
color: #0C092A;
}
.message {
+ margin-top: 40rpx;
font-family: Source Han Sans;
font-size: 30rpx;
font-weight: 300;
@@ -170,6 +183,7 @@
align-items: center;
letter-spacing: normal;
color: #3D3D3D;
+ line-height: 60rpx;
}
}
}
diff --git a/src/pages/learningCenter/index.vue b/src/pages/learningCenter/index.vue
index 8b02473..57c15b3 100644
--- a/src/pages/learningCenter/index.vue
+++ b/src/pages/learningCenter/index.vue
@@ -7,36 +7,40 @@
距离上次学习已经
- 6天
- 20时
- 38分
+ {{learntime.days}}天
+ {{learntime.hours}}时
+ {{learntime.minutes}}分
-
-
-
+
+
+
- 已学{{item.xxjd}}%
+ 已学{{item.progress}}%
+
+ 无学习历史记录
+
-
-
+
{{item.title}}
- {{item.txt}}
+ {{item.introduction}}
- {{item.gtsy}}
- {{item.data}}
+ {{item.publisher}}
+ {{ item.create_time.slice(0,10)}}
@@ -49,24 +53,23 @@
ref,
watch
} from 'vue'
+ import {
+ myStudy,
+ studyCenter
+ } from '@/api/learningCenter'
- const xxList = ref([{
- id: 0,
- img: '/static/img/sl4.png',
- xxjd: 50
- },
- {
- id: 1,
- img: '/static/img/sl4.png',
- xxjd: 30
- },
- {
- id: 1,
- img: '/static/img/sl4.png',
- xxjd: 30
- }
- ])
+ const baseurl = import.meta.env.VITE_APP_BASE_URL + '/'
+
+ const learntime = ref({
+ days: 0,
+ hours: 0,
+ minutes: 0
+ })
+
+ const xxList = ref([])
+ const keyword = ref('')
+ const tabIndex = ref('')
const tabList = ref([{
name: '推荐'
},
@@ -78,60 +81,107 @@
}
])
- const kcList = ref([{
- img: '/static/img/sl5.png',
- title: '课程标题标题标题',
- txt: '小白必看!新手如何炒股票不被割韭菜?/书单推荐/股票基金避坑理财课靠谱吗?',
- gtsy: '个体私营协会',
- data: '2025-04-17',
- type: 'video'
- },
- {
- img: '/static/img/sl5.png',
- title: '课程标题标题标题',
- txt: '小白必看!新手如何炒股票不被割韭菜?/书单推荐/股票基金避坑理财课靠谱吗?',
- gtsy: '个体私营协会',
- data: '2025-04-17',
- type: 'imgtxt'
- },
- {
- img: '/static/img/sl5.png',
- title: '课程标题标题标题',
- txt: '小白必看!新手如何炒股票不被割韭菜?/书单推荐/股票基金避坑理财课靠谱吗?',
- gtsy: '个体私营协会',
- data: '2025-04-17',
- type: 'imgtxt'
- }
- ])
+ const kcList = ref([])
- const xxClick = (item) => {
- console.log(item);
- }
const tabClick = (item) => {
- console.log(item);
+ keyword.value = ''
+ if(item.index === 0) {
+ tabIndex.value = ''
+ getcenterList(1, keyword.value, tabIndex.value, 1, 10)
+ } else {
+ tabIndex.value = item.index
+ getcenterList('', keyword.value, tabIndex.value, 1, 10)
+ }
+
}
const search = (val) => {
- console.log(val);
- zhscrollRel.value.searchleMenuTap(keyword.value)
+ if(tabIndex.value !== '') {
+ getcenterList('', keyword.value, tabIndex.value, 1, 10)
+ } else {
+ getcenterList(1, keyword.value, tabIndex.value, 1, 10)
+ }
}
const clickIcon = () => {
- console.log(keyword.value);
- zhscrollRel.value.searchleMenuTap(keyword.value)
+ if(tabIndex.value !== '') {
+ getcenterList('', keyword.value, tabIndex.value, 1, 10)
+ } else {
+ getcenterList(1, keyword.value, tabIndex.value, 1, 10)
+ }
+ }
+
+ const clear = () => {
+ keyword.value = ''
+ if(tabIndex.value !== '') {
+ getcenterList('', keyword.value, tabIndex.value, 1, 10)
+ } else {
+ getcenterList(1, keyword.value, tabIndex.value, 1, 10)
+ }
}
const kcClick = (item) => {
- console.log(item);
uni.navigateTo({
- url: '/pages/learningCenter/detail?id=' + item.type
+ url: '/pages/learningCenter/detail?id=' + item.id
})
}
- onShow(() => {
+ const useTimeDiff = (targetDateStr) => {
+ const days = ref(0);
+ const hours = ref(0);
+ const minutes = ref(0);
+
+ const targetDate = new Date(targetDateStr.replace(/-/g, '/'));
+ const now = new Date();
+ const diffMs = now - targetDate;
+
+ days.value = Math.max(0, Math.floor(diffMs / 86400000));
+ hours.value = Math.max(0, Math.floor((diffMs % 86400000) / 3600000));
+ minutes.value = Math.max(0, Math.floor((diffMs % 3600000) / 60000));
+
+ return {
+ days,
+ hours,
+ minutes
+ }
+ }
+
+ const getcenterList = async (recommend, title, type, page, limit) => {
+ await studyCenter(recommend, title, type, page, limit).then((res) => {
+ if (res.code === 1) {
+ kcList.value = res.data.data
+ }
+ })
+ }
+
+ const spliceval = (val,f,l) => {
+ return val.splice(f,l)
+ }
+
+
+ onShow(async () => {
+ const res = await myStudy()
+ if (res.code === 1) {
+ xxList.value = res.data
+ if (res.data.length !== 0) {
+ const {
+ days,
+ hours,
+ minutes
+ } = useTimeDiff(res.data[0]?.update_time);
+ learntime.value.days = days.value
+ learntime.value.hours = hours.value
+ learntime.value.minutes = minutes.value
+ }
+ }
+ if(tabIndex.value !== '') {
+ getcenterList('', keyword.value, tabIndex.value, 1, 10)
+ } else {
+ getcenterList(1, keyword.value, tabIndex.value, 1, 10)
+ }
})
@@ -141,6 +191,7 @@
background: linear-gradient(0deg, #F1F3F9 72%, rgba(241, 243, 249, 0.2) 88%);
height: 100vh;
box-sizing: border-box;
+ overflow-y: auto;
}
.xxqd {
diff --git a/src/pages/learningCenter/useTimeDiff.js b/src/pages/learningCenter/useTimeDiff.js
new file mode 100644
index 0000000..6f7619b
--- /dev/null
+++ b/src/pages/learningCenter/useTimeDiff.js
@@ -0,0 +1,31 @@
+
+import { ref, onMounted, onUnmounted } from 'vue';
+
+export default function useTimeDiff(targetDateStr) {
+ const days = ref(0);
+ const hours = ref(0);
+ const minutes = ref(0);
+
+ const calculateDiff = () => {
+ const targetDate = new Date(targetDateStr.replace(/-/g, '/'));
+ const now = new Date();
+ const diffMs = now - targetDate;
+
+ days.value = Math.max(0, Math.floor(diffMs / 86400000));
+ hours.value = Math.max(0, Math.floor((diffMs % 86400000) / 3600000));
+ minutes.value = Math.max(0, Math.floor((diffMs % 3600000) / 60000));
+ };
+
+ let timer;
+
+ onMounted(() => {
+ calculateDiff();
+ timer = setInterval(calculateDiff, 60000);
+ });
+
+ onUnmounted(() => {
+ clearInterval(timer);
+ });
+
+ return { days, hours, minutes };
+}
diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue
index f2d6596..82380b2 100644
--- a/src/pages/login/login.vue
+++ b/src/pages/login/login.vue
@@ -1,6 +1,6 @@
-
-
+
+ 惠企通欢迎您
-
diff --git a/src/pages/memberCenter/index.vue b/src/pages/memberCenter/index.vue
index 67fe09c..0a717d9 100644
--- a/src/pages/memberCenter/index.vue
+++ b/src/pages/memberCenter/index.vue
@@ -1,13 +1,163 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {{item.splace}}
+
+
+ {{item.title}}
+
+
+
+
+ {{item.ms}}
+
+
+
+
+
+
+
+
+ .hdzq {
+ width: 182rpx;
+ height: 80rpx;
+ position: fixed;
+ right: 0;
+ top: 70%;
+ margin-right: -14rpx;
+ }
+
\ No newline at end of file
diff --git a/src/pages/mine/associatedDetail.vue b/src/pages/mine/associatedDetail.vue
new file mode 100644
index 0000000..1e7316a
--- /dev/null
+++ b/src/pages/mine/associatedDetail.vue
@@ -0,0 +1,93 @@
+
+
+ 内蒙古数心科技有限公司
+
+
+ 公司简介
+
+
+ 说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明说明
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/mine/associatedEnterprise.vue b/src/pages/mine/associatedEnterprise.vue
new file mode 100644
index 0000000..0e8ba46
--- /dev/null
+++ b/src/pages/mine/associatedEnterprise.vue
@@ -0,0 +1,76 @@
+
+
+
+ {{item.title}}
+ 关联时间:{{item.time}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/mine/completeInformation.vue b/src/pages/mine/completeInformation.vue
new file mode 100644
index 0000000..4cc91b4
--- /dev/null
+++ b/src/pages/mine/completeInformation.vue
@@ -0,0 +1,279 @@
+
+
+
+
+
+ 公司性质
+
+
+ 公司名称
+
+ 营业执照
+
+
+
+ 上传营业执照
+
+
+
+
+ -
+
+
+
+
+
+
+ 确认提交
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue
index 3385f5c..a160cff 100644
--- a/src/pages/mine/index.vue
+++ b/src/pages/mine/index.vue
@@ -2,29 +2,33 @@
-
+
-
- 褚冰枫
+
+ {{userStore.userInfo.name||'无名称'}}
-
+
+ 请登录
-
+
关联企业
-
+
我的申请
-
+
我的课程
@@ -33,8 +37,8 @@
-
- 退出登录
+
+ {{userStore.userInfo.moblie?'退出登录':'登录'}}
@@ -48,13 +52,43 @@
import {
ref
} from 'vue';
+ import useUserStore from '@/store/user'
+ const userStore = useUserStore()
- const goeditinfo = () => {
- uni.navigateTo({
- url: '/pages/mine/porsonalinfo'
- })
- }
+ const url = ref(import.meta.env.VITE_APP_BASE_URL)
+ const goeditinfo = (val) => {
+ if (val === '关联企业') {
+ uni.navigateTo({
+ url: '/pages/mine/associatedEnterprise'
+ })
+ } else if (val === '我的申请') {
+ uni.navigateTo({
+ url: '/pages/mine/myApplication'
+ })
+ } else if (val === '我的课程') {
+ uni.navigateTo({
+ url: '/pages/mine/myCourses'
+ })
+ } else {
+ uni.navigateTo({
+ url: '/pages/mine/porsonalinfo'
+ })
+ }
+ }
+
+ const outLogin = () => {
+ userStore.logOut()
+ }
+ onShow(() => {
+ // if (uni.getStorageSync('access_token') === '') {
+ // uni.navigateTo({
+ // url: '/pages/login/login'
+ // })
+ // } else {
+ userStore.getUserInfo()
+ // }
+ })
+
\ No newline at end of file
diff --git a/src/pages/mine/myApplication.vue b/src/pages/mine/myApplication.vue
new file mode 100644
index 0000000..8e35f8d
--- /dev/null
+++ b/src/pages/mine/myApplication.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+ 申请通过
+
+
+
+ {{item.title}}
+
+
+ {{item.time}}
+
+
+
+
+
+
+ 申请驳回
+
+
+
+ {{item.title}}
+
+
+ {{item.time}}
+
+ {{item.result}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/mine/myCourses.vue b/src/pages/mine/myCourses.vue
new file mode 100644
index 0000000..69c8a37
--- /dev/null
+++ b/src/pages/mine/myCourses.vue
@@ -0,0 +1,103 @@
+
+
+
+ {{item.title}}
+ {{item.text}}
+
+ 已学{{item.learn}}%
+ {{item.time}}
+
+
+
+
+
+
+
+
diff --git a/src/pages/mine/porsonalinfo.vue b/src/pages/mine/porsonalinfo.vue
index edd2867..7b5c36b 100644
--- a/src/pages/mine/porsonalinfo.vue
+++ b/src/pages/mine/porsonalinfo.vue
@@ -7,10 +7,9 @@
头像
-
-
+
+
@@ -20,25 +19,25 @@
用户名
-
+
-
-
+ {{userStore.userInfo.nickname}}
+
@@ -47,10 +46,11 @@
性别
- {{form.sex}}
-
-
+ {{userStore.userInfo.sex_name}}
+
+
@@ -59,9 +59,9 @@
绑定手机号
-
-
+ {{userStore.userInfo.moblie}}
+
@@ -70,20 +70,22 @@
真实姓名
-
-
+ {{userStore.userInfo.name}}
+
- 所在企业
+ 关联企业
-
-
+ {{userStore.userInfo.identity_name}}
+
+
@@ -94,23 +96,91 @@
import {
ref
} from 'vue';
+ import {
+ modifyField
+ } from '@/api/mine'
+ import useUserStore from '@/store/user'
+ const userStore = useUserStore()
+
+ const url = ref(import.meta.env.VITE_APP_BASE_URL)
const sexshow = ref(false)
- const sexlist = ref([
- {
- name: '男',
- },
- {
- name: '女',
- },
- ]);
- const selectClick = (val) => {
- form.value.sex = val.name
- sexshow.value = false
+ const sexlist = ref([{
+ name: '男',
+ },
+ {
+ name: '女',
+ },
+ ]);
+ const selectClick = async (val) => {
+ await modifyField('sex', val.name === '男' ? 1 : 2).then((res) => {
+ if (res.code === 1) {
+ usershow.value = false
+ setTimeout(() => {
+ userStore.getUserInfo()
+ uni.showToast({
+ title: '修改成功!',
+ icon: 'success'
+ })
+ }, 500)
+ } else {
+ uni.showToast({
+ title: '修改失败!',
+ icon: 'fail'
+ })
+ }
+
+ })
}
-
+
+ const qyshow = ref(false)
+ const qylist = ref([{
+ id: 1,
+ name: '其他(自由职业者等)',
+ },
+ {
+ id: 2,
+ name: '个体工商户',
+ },
+ {
+ id: 3,
+ name: '民营企业',
+ }
+ ]);
+ const qyClick = async (val) => {
+ await modifyField('identity', val.id).then((res) => {
+ if (res.code === 1) {
+ qyshow.value = false
+ setTimeout(() => {
+ userStore.getUserInfo()
+ uni.showToast({
+ title: '修改成功!',
+ icon: 'success'
+ })
+ if(val.id === 2||val.id === 3) {
+ uni.navigateTo({
+ url: '/pages/mine/completeInformation'
+ })
+ }
+ }, 500)
+ } else {
+ uni.showToast({
+ title: '修改失败!',
+ icon: 'fail'
+ })
+ }
+
+ })
+ }
+
+
const usershow = ref(false)
-
+ const popupTitle = ref('')
+
+
+ const userValue = ref('')
+ const typeValue = ref('')
+
const form = ref({
fileList: [],
username: '',
@@ -119,13 +189,79 @@
name: '',
company: ''
})
-
- const sureClick = (type) => {
- console.log(type);
+
+ const openpopup = (type) => {
+ userValue.value = ''
+ usershow.value = true
+ typeValue.value = type
+ if (type === '用户名') {
+ popupTitle.value = '请输入用户名'
+ } else if (type === '手机号') {
+ popupTitle.value = '请输入手机号'
+ } else if (type === '姓名') {
+ popupTitle.value = '请输入真实姓名'
+ }
}
- const afterRead = (e) => {
- console.log(e);
+ const sureClick = async (type) => {
+ let res = {}
+ if (type === '用户名') {
+ res = await modifyField('nickname', userValue.value)
+ } else if (type === '手机号') {
+ res = await modifyField('moblie', userValue.value)
+ } else if (type === '姓名') {
+ res = await modifyField('name', userValue.value)
+ }
+ if (res.code === 1) {
+ usershow.value = false
+ setTimeout(() => {
+ userStore.getUserInfo()
+ uni.showToast({
+ title: '修改成功!',
+ icon: 'success'
+ })
+ }, 500)
+ } else {
+ uni.showToast({
+ title: '修改失败!',
+ icon: 'fail'
+ })
+ }
+ }
+
+
+ const afterRead = async (e) => {
+ uni.uploadFile({
+ url: import.meta.env.VITE_APP_BASE_URL+'/api/file/image',
+ filePath: e.file.url,
+ name: 'file',
+ header: {
+ 'token': uni.getStorageSync('access_token')
+ },
+ success: async(val) => {
+ await modifyField('head_pic',JSON.parse(val.data).data.url).then((res) => {
+ if (res.code === 1) {
+ qyshow.value = false
+ setTimeout(() => {
+ userStore.getUserInfo()
+ uni.showToast({
+ title: '修改成功!',
+ icon: 'success'
+ })
+ }, 500)
+ } else {
+ uni.showToast({
+ title: '修改失败!',
+ icon: 'fail'
+ })
+ }
+
+ })
+ },
+ fail: (res) => {
+ console.log('失败',res);
+ }
+ })
}
@@ -167,9 +303,10 @@
.right {
display: flex;
align-items: center;
+
.value {
font-family: Source Han Sans;
- font-size: 14px;
+ font-size: 28rpx;
font-weight: 300;
text-align: right;
letter-spacing: normal;
@@ -179,25 +316,31 @@
}
}
}
+
.popupbox {
display: grid;
align-items: center;
justify-items: center;
+
.title {
font-family: Source Han Sans;
- font-size: 14px;
+ font-size: 28rpx;
font-weight: 300;
- line-height: 17px;
+ line-height: 34rpx;
text-align: right;
letter-spacing: normal;
color: #273847;
+ padding: 30rpx 0;
}
+
.buts {
display: flex;
align-items: center;
justify-content: space-between;
+ margin-top: 30rpx;
+
.yunxu {
- margin-left: 20px;
+ margin-left: 40rpx;
width: 180rpx;
height: 70rpx;
border-radius: 10rpx;
@@ -214,7 +357,7 @@
align-items: center;
justify-content: center;
}
-
+
.jujue {
width: 180rpx;
height: 70rpx;
diff --git a/src/static/img/aiicon.png b/src/static/img/aiicon.png
new file mode 100644
index 0000000..2849d8e
Binary files /dev/null and b/src/static/img/aiicon.png differ
diff --git a/src/static/img/daan.png b/src/static/img/daan.png
new file mode 100644
index 0000000..da69cc9
Binary files /dev/null and b/src/static/img/daan.png differ
diff --git a/src/static/img/timeicon.png b/src/static/img/timeicon.png
new file mode 100644
index 0000000..a2df612
Binary files /dev/null and b/src/static/img/timeicon.png differ
diff --git a/src/static/img/yyzz.png b/src/static/img/yyzz.png
new file mode 100644
index 0000000..40fc418
Binary files /dev/null and b/src/static/img/yyzz.png differ
diff --git a/src/store/user.ts b/src/store/user.ts
index cafcc51..d3444f5 100644
--- a/src/store/user.ts
+++ b/src/store/user.ts
@@ -2,114 +2,105 @@
import { defineStore } from 'pinia'
import { getPrefixName } from '@/config'
import { getOpenid } from '@/api/login'
-import { infoForOpenid, bind as bindApi } from '@/api/user'
+import { infoForOpenid, logout } from '@/api/user'
interface userInfoStoreInt {
- [n: string]: any
+ [n : string] : any
}
export default defineStore(
- getPrefixName('user'),
- () => {
- const openId = ref('')
- const mobile = ref('')
- const meetId = ref('')
- const showtoast = ref(false)
- const userInfo = ref({})
+ getPrefixName('user'),
+ () => {
+ const openId = ref('')
+ const mobile = ref('')
+ const showtoast = ref(false)
+ const userInfo = ref({})
- function getopenid(params: { code: string }) {
- return new Promise((resolve, reject) => {
- getOpenid(params)
- .then((res) => {
- const { data } = res as { data: string }
+ function getopenid(params : { code : string }) {
+ return new Promise((resolve, reject) => {
+ getOpenid(params)
+ .then((res : any) => {
+ openId.value = res.data.openid
+ resolve({ code: 1, message: '登录成功~' })
+ })
+ .catch((err) => {
+ reject(err)
+ })
+ })
+ }
- openId.value = data
+ function getUserInfo() {
+ return new Promise((resolve, reject) => {
+ infoForOpenid()
+ .then((res : any) => {
+ const { data } = res as { data : userInfoStoreInt }
+ userInfo.value = data || {}
+ resolve({ code: 1, data, message: 'SUCCESS' })
+ })
+ .catch((err) => {
+ reject(err)
+ })
- resolve({ code: 1, message: '登录成功~' })
- })
- .catch((err) => {
- reject(err)
- })
- })
- }
+ })
+ }
- function getUserInfo() {
- return new Promise( (resolve, reject) => {
- infoForOpenid({ openid: openId.value, mobile: mobile.value, meetId: meetId.value})
- .then((res) => {
- const { data } = res as { data: userInfoStoreInt }
- userInfo.value = data || {}
- resolve({ code: 1, data, message: 'SUCCESS' })
- })
- .catch((err) => {
- reject(err)
- })
-
- })
- }
- function bindUser(id: number) {
- return new Promise((resolve, reject) => {
- bindApi({ id, openid: openId.value })
- .then(() => {
- resolve({ code: 1, message: 'SUCCESS' })
- })
- .catch((err) => {
- reject(err)
- })
- })
- }
+ function logOut() {
+ if(uni.getStorageSync('access_token') === '') {
+ uni.navigateTo({
+ url: '/pages/login/login'
+ })
+ } else {
+ userInfo.value = {}
+ uni.clearStorageSync()
+ const res = logout()
+ console.log(res,uni.getStorageSync('access_token'));
- function logOut() {
- userInfo.value = {}
- uni.clearStorageSync()
+ uni.showToast({
+ icon: 'none',
+ title: '退出成功',
+ mask: true,
+ success() {
+ setTimeout(() => uni.reLaunch({ url: 'pages/login/login' }), 1000)
+ }
+ })
+ }
+ }
- uni.showToast({
- icon: 'none',
- title: '退出成功',
- mask: true,
- success() {
- setTimeout(() => uni.reLaunch({ url: 'pages/login/login' }), 1000)
- }
- })
- }
+ return {
+ openId,
+ mobile,
+ showtoast,
+ userInfo,
+ getopenid,
+ getUserInfo,
+ logOut
+ }
+ },
+ {
+ unistorage: {
+ serializer: {
+ // 序列化,默认为 JSON.stringify
+ serialize(v) {
+ return JSON.stringify(v)
+ },
+ // 反序列化,默认为 JSON.parse
+ deserialize(v) {
+ return JSON.parse(v)
+ }
+ }
+ } // 开启后对 state 的数据读写都将持久化
+ // unistorage: {
+ // key: 'userInfo', // 缓存的键,默认为该 store 的 id,这里是 main,
+ // paths: ['userInfo.token'], // 需要缓存的路径,这里设置 foo 和 nested 下的 data 会被缓存
+ // // 初始化恢复前触发
+ // beforeRestore(ctx: any) {
+ // console.log(ctx)
+ // },
+ // // 初始化恢复后触发
+ // afterRestore(ctx: any) {
+ // console.log('ctx', ctx)
+ // },
- return {
- openId,
- mobile,
- meetId,
- showtoast,
- userInfo,
- getopenid,
- bindUser,
- getUserInfo,
- logOut
- }
- },
- {
- unistorage: {
- serializer: {
- // 序列化,默认为 JSON.stringify
- serialize(v) {
- return JSON.stringify(v)
- },
- // 反序列化,默认为 JSON.parse
- deserialize(v) {
- return JSON.parse(v)
- }
- }
- } // 开启后对 state 的数据读写都将持久化
- // unistorage: {
- // key: 'userInfo', // 缓存的键,默认为该 store 的 id,这里是 main,
- // paths: ['userInfo.token'], // 需要缓存的路径,这里设置 foo 和 nested 下的 data 会被缓存
- // // 初始化恢复前触发
- // beforeRestore(ctx: any) {
- // console.log(ctx)
- // },
- // // 初始化恢复后触发
- // afterRestore(ctx: any) {
- // console.log('ctx', ctx)
- // },
-
- // },
- }
-)
+ // },
+ }
+)
\ No newline at end of file
diff --git a/src/utils/http.ts b/src/utils/http.ts
index 20a5692..543391e 100644
--- a/src/utils/http.ts
+++ b/src/utils/http.ts
@@ -28,7 +28,10 @@ export const request = {
url = import.meta.env.VITE_APP_BASE_URL + url
// #endif
- const header = Object.assign({ 'content-type': 'application/json', Authorization: '' }, headers)
+ const header = Object.assign({ 'content-type': 'application/json',
+ Authorization: '',
+ 'token': uni.getStorageSync('access_token') || '',
+ }, headers)
uni.request({
url,
@@ -42,6 +45,10 @@ export const request = {
case 1:
resolve(res.data)
break
+ case 401:
+ uni.showToast({ title: data.msg, icon: 'none', mask: true })
+ uni.removeStorageSync('access_token')
+ break
default:
uni.showToast({ title: data.msg, icon: 'none', mask: true })
reject(res.data)