Compare commits

..

85 Commits

Author SHA1 Message Date
6ae141d6f1 国内微信登录和手机验证码登录 2026-08-03 14:38:26 +08:00
ec3445bba4 筛选所有未使用字符串 2026-07-29 09:50:16 +08:00
2ad24899de 1.隐私协议/条款/订阅说明的html适配多语言
2.g30增加蓝牙一键定位功能
2026-07-27 15:18:14 +08:00
0a128cb8a6 1.修复轨迹和宠物有时不在一条线上的bug
2.增加pet页切换刷新运动数据
3.修复绑定设备激活重启,此时点击太快进入wifi 搜索不到bug
4.蓝牙透传通路由Raw TCP改为Https
2026-07-24 10:18:46 +08:00
f51e8f24de 1.完成国内登录注册接口逻辑
2.剔除部分未使用字符串的key
3.不再支持 32 位 ,只支持'arm64-v8a', 'x86_64'
2026-07-21 16:08:32 +08:00
beb802e8c2 1.完成国内登录注册接口逻辑
2.剔除部分未使用字符串的key
3.不再支持 32 位 ,只支持'arm64-v8a', 'x86_64'
2026-07-21 16:06:42 +08:00
6ca8ead5ab 1.新的支付信息管理UI
2.运动和睡眠详情7/6的日期格式改成“Jul 6”格式
2026-07-15 11:13:53 +08:00
0e8af36c87 补充混淆规则 2026-07-14 11:16:42 +08:00
a25e4a093d 1.移除ACCESS_MOCK_LOCATION 权限
2.MMKV启用AES-256加密保存
3.修复导出组件和 Deep Links的处理建议
4.加入混淆代码
5.删除蓝牙透传RAW TCP(socket)
2026-07-14 11:08:43 +08:00
4f77f25be4 1.修复漏洞 2026-07-07 14:59:05 +08:00
815464ef20 1.修复漏洞:BaseDao 中的 SQL 注入
2.移除ACCESS_MOCK_LOCATION  权限
3.MMKV启用AES-256加密保存
2026-07-02 17:47:59 +08:00
5ac14912bb 添加混淆前 2026-07-01 10:17:05 +08:00
ed034f152c 修复首次添加信用卡不能编辑的bug 2026-06-29 09:54:01 +08:00
21f1c5b13c 1.所有邮箱输入格式大写自动转换为小写
2.调整订阅订单列表的订单号显示不重复
3.新增法语
2026-06-26 11:13:20 +08:00
27b9a6c885 1.增加信用卡支付信息展示 2026-06-24 16:00:39 +08:00
cf9d9e8224 修复不能支付的bug 2026-06-18 09:57:49 +08:00
c82066ca38 国内登录注册界面 2026-06-16 09:48:59 +08:00
d4f5a1e0a3 1.修复显示所有宠物开启,切换宠物时,宠物的位置会变化bug
2.修复显示所有宠物的开关,在Map 和直播中未关联,直播页中开启/关闭,但在Map中未同步bug
2026-06-11 17:17:34 +08:00
bb5bd7adf3 paypal支付账号信息的展示 2026-06-09 17:05:44 +08:00
yezhiqiu
f3ccb1f4ec 1.移除READ_MEDIA_VIDEO 权限
2.移除READ_MEDIA_IMAGES 权限,选择照片改用谷歌官方Photo picker
2026-06-02 16:39:39 +08:00
yezhiqiu
c0ab984a83 1.修复添加wifi zone提示页,提示靠近设备的弹窗,有时会弹出了两次bug
2.限制用户名空格和14个字母,7个中文输入
3.限制围栏名和wifi名空格和14个字母,7个中文输入
2026-05-29 11:13:58 +08:00
yezhiqiu
fde637793e 1.处理轨迹经纬度飘和圆滑度
2.增加围栏缩放最小值提示
3.增加map和直播显示多宠物设置
2026-05-28 11:01:51 +08:00
yezhiqiu
f26e3545b2 优化未设置wifi弹窗文案和帮助页面文案排版 2026-05-25 09:44:46 +08:00
yezhiqiu
462629386e 1.优化判断固件升级方法:改为从位依次判断
2.修复别的页面(非map页)未设置wifi宠物切换已设置wifi宠物,会出现未设置wifi弹窗bug
3.优化部分文案显示
2026-05-22 15:31:08 +08:00
yezhiqiu
63edcb7a5b 新增启动APP,wifi zone 未设置时,弹窗提示 2026-05-21 09:52:20 +08:00
yezhiqiu
bdff8cc351 新增启动APP,连接上蓝牙检测固件新版本,弹窗提示更新并自动升级 2026-05-20 11:58:32 +08:00
yezhiqiu
4dcbc176cb 新增网络获取设备的固件版本号,并显示 2026-05-19 09:24:26 +08:00
yezhiqiu
ede190d9f3 优化头像和map宠物显示速度 2026-05-15 18:32:15 +08:00
yezhiqiu
ca554656c5 1.订阅套餐新ui:增加套餐描述;修改价格区底色;Best 用皇冠图标代替;
2.新增Initializing Device界面
3.校对新增多语言字符
2026-05-14 17:14:58 +08:00
yezhiqiu
46c0a5b2a4 1. wifi zone定位点设置,改为拖动地图设置
2.添加被绑定设备增加提示被绑定的邮箱
2026-05-11 17:04:05 +08:00
yezhiqiu
0654ec87bc 1.修复位置滞后时间与上报时间重叠问题
2.宠物名称限制字数-限制为16个字符长度(中文为8个字)
3.优化添加和编辑wifi,按钮操作过程中禁止点击其他按钮
4.优化运动超过运动目标后,显示指定的百分比,取消最大值为100%
5.优化宠物和手机位置直线虚线默认显示改为默认不显示
6.修复打开邀请家人页面,切换到其它应用再切换回来,左上角返回按钮错位问题
2026-05-11 09:53:49 +08:00
yezhiqiu
5be446af72 1.map和直播页增加用户和宠物虚线设置
2.优化帮助页面
3.支付页面去掉税的计算
4.GPS: Off 改为GPS: Sleep;
5.map页增加位置更新时间格式:当更新滞后超过2倍的上报间隔时,才显示
(2h 35m ago)”,显示休眠中时,不显示“(2h 35m ago)
6.运动数据改为查看30天数据
7.历史轨迹限制只能看30天数据
2026-05-07 12:02:55 +08:00
yezhiqiu
587697954d 1.修复充电中,Map 显示Off, 但设备管理中显示Strong signal bug
2.修复GPS 没信号还是为绿点bug
3.超过30天后,退款按钮呈灰色不可点,点击后提示“Refund period has expired”,续订订单不显示按钮
4.历史订单列表页,增加退款说明
2026-04-29 10:27:29 +08:00
yezhiqiu
8d1a44bf89 1.优化区分信号弱/无信号(4种状态:1. wifi zone 中/关机/休眠/充电/超时无上报-关,2. 信号大于50-强,信号大于0小于50 -弱,3. 信号等于0-无)
2.修复围栏编辑和添加保存时/删除时,还可以输入内容和点‘取消’按钮
3.修复删除围栏时,还可以点击编辑按钮
4.修复轨迹页面围栏名字太长,列表对不齐
5.修复轨迹只有3个点时,滑块滑不动的bug
6.修复直播页面第三个导航无法点击bug
7.校对多语言字符
2026-04-24 18:55:38 +08:00
yezhiqiu
505a0414b8 适配部分机型还会出现输入框被键盘挡住问题 2026-04-24 10:29:15 +08:00
yezhiqiu
fa5b707c22 1.在解绑提示页面,增加提示语“Auto-Renew: Cancel”
2.适配Google Play 要求支持 16 KB 的内存页面大小,更新大部分第三方库到最新版本
2026-04-21 18:00:06 +08:00
yezhiqiu
4547f844ba 1.在解绑提示页面,增加提示语“Auto-Renew: Cancel”
2.适配Google Play 要求支持 16 KB 的内存页面大小,更新大部分第三方库到最新版本
2026-04-21 17:20:28 +08:00
yezhiqiu
0dfc082f2b 1.无上报的判断时间,改为动态时间,按用户所设的上报间隔的2倍计算时长
2.修改历史订单包括自动订阅订单
2026-04-20 15:32:29 +08:00
yezhiqiu
bcf03fa149 优化route页交互体验,修复有无数据切换布局错位bug 2026-04-17 15:59:35 +08:00
yezhiqiu
4e46370ec1 优化route页交互体验,修复有无数据切换布局错位bug 2026-04-17 15:43:29 +08:00
yezhiqiu
3b55eaabf4 自动订阅的套餐列表,不显示倒计时,取消自动订阅的套餐才显示 2026-04-16 18:17:46 +08:00
yezhiqiu
1325892780 自动订阅的套餐列表,不显示倒计时,取消自动订阅的套餐才显示 2026-04-16 14:58:00 +08:00
yezhiqiu
06bf4687fe 1.增加g40固件升级
2.优化dfu弹窗布局
2026-04-16 10:42:38 +08:00
yezhiqiu
d8ab8599da 时间统一格式 2026-04-15 11:51:38 +08:00
yezhiqiu
d002310a0d 1.增加G40蓝牙日志上报 2026-04-15 10:36:11 +08:00
yezhiqiu
69aa917897 1.route页ui功能改版 2026-04-14 17:10:34 +08:00
yezhiqiu
20ff76b933 1.新增wifi列表g40根据手机系统wifi来显示wifi名字
2.新增map页地址显示当前wifizone名字
2026-04-09 15:44:08 +08:00
yezhiqiu
862c9c9a06 1.增加默认谷歌地图导航
2.优化人和宠物位置切换
2026-04-09 09:47:27 +08:00
yezhiqiu
16956f1086 1.优化一键定位按钮不同状态颜色
2.谷歌地图用户定位位置图标国内外同时放开
3.优化圆形和矩形围栏按钮点击范围
2026-04-03 18:06:46 +08:00
yezhiqiu
a7ed21e08a 1.优化睡眠时间显示
2.增加蓝牙上报透传
2026-04-01 11:37:19 +08:00
yezhiqiu
00e4a33e19 1.修复消息全部已读页面不更新bug
2.优化直播雷达开灯加载动画变大问题
3.led设置页面重新编写逻辑
4.蓝牙绑定指令增加上位机类型和绑定密钥
5.map页新增睡眠显示
6.信用卡页面,输入名字默认全大写
7.Wifi zone 内,地址显示为“Home · xxxxx”
8.优化雷达直播LED灯按钮禁用状态
2026-03-30 10:48:32 +08:00
yezhiqiu
00ae7df9c1 1.增加led开关灯加载效果
2.修复蓝牙连接,充电还能开灯的bug
3.修复雷达页面,位置不更新bug
4.修复雷达页面,被分享和wifi内能开灯的bug
5.修复直播页面,wifi内能开灯的bug
2026-03-26 11:07:04 +08:00
yezhiqiu
a92b5927fd 修复蓝牙连接,修改gps更新时间不成功bug 2026-03-24 11:01:28 +08:00
yezhiqiu
03eaca11e4 修复国内经纬度转换移动红点位置,到了Edit WiFi Zone界面后位置变了 2026-03-24 10:20:24 +08:00
yezhiqiu
dde91df569 修改手机系统显示大小,注册键盘挡住输入框的bug 2026-03-23 17:45:26 +08:00
yezhiqiu
be57432b03 删除消息本地数据库,改为从服务器获取 2026-03-23 17:42:35 +08:00
yezhiqiu
d495e0571a 1.新增一键定位功能
2.g30隐藏直播按钮,g40显示直播按钮
3.map页雷达按钮增加显示蓝牙连接状态
2026-03-19 15:36:31 +08:00
yezhiqiu
13035c6037 1.适配g30和g40
2.国内经纬度自定义用户位置图标,国外经纬度使用谷歌地图自带的用户位置图标
2026-03-16 15:47:12 +08:00
yezhiqiu
5e5679672f 自定义用户位置图标 2026-03-11 16:00:08 +08:00
yezhiqiu
1bc92e860f 国内经纬度转换后反地理显示 2026-03-11 11:38:39 +08:00
yezhiqiu
f5001f3349 新增国内经纬度转换 2026-03-10 17:46:23 +08:00
yezhiqiu
8b128e58cb 1.优化订阅列表显示(Renew at $29.97 per month thereafter)
2.历史轨迹地图增加罗盘和当前手机位置显示
3.历史轨迹点模式增加点击可显示宠物信息
4.修复雷达停止退出还会有声音的bug
2026-03-05 14:43:08 +08:00
yezhiqiu
1aa6f7a247 1.完成Nearby 显示定位策略
2.多边形围栏距离限制
2026-03-02 15:33:05 +08:00
yezhiqiu
f0dcad40ea 优化直播出现超时体验 2026-02-14 14:24:05 +08:00
yezhiqiu
dc9c091155 修复退款还显示活跃并且点充值是开启自动订阅的bug 2026-02-05 17:36:01 +08:00
yezhiqiu
5373acaa80 修复历史轨迹拖动滚动条宠物头像不会重新回到屏幕中心bug 2026-02-05 15:31:35 +08:00
yezhiqiu
7aab33bc12 修改运动和睡眠星期几系统适配,日期改为双位数 2026-02-05 14:11:44 +08:00
yezhiqiu
0409b50712 修改套餐时间到期算法,删除以前map和直播v
2版本
2026-02-04 17:42:07 +08:00
yezhiqiu
d55cb89936 1.网络接口请求超时10s修改为35秒
2.关机由原来的:0x04 -> turnoff接口 -> 0x18,改为:0x18-> turnoff接口
2026-02-04 10:19:23 +08:00
yezhiqiu
8788613dd2 修改首次绑定,未定到位时,不显示宠物,显示用户位置 2026-02-03 15:26:31 +08:00
yezhiqiu
9854b7b90d 增加设备实时消息错误码显示 2026-01-30 18:16:31 +08:00
yezhiqiu
75014598ed 修复分享设备还可以直播的bug 2026-01-30 11:19:12 +08:00
yezhiqiu
795fcec1a2 修改直播等于1,隐藏直播按钮 2026-01-29 18:09:49 +08:00
yezhiqiu
e14087355f 修改不足一天,取消自动订阅出现过期的bug 2026-01-29 16:05:36 +08:00
yezhiqiu
b1e0eef1ab 修改添加设备的图片说明 2026-01-28 17:47:11 +08:00
yezhiqiu
3ddc5c23f6 1.修复连接蓝牙,宠物头像还显示关机bug
2.修复过期充值有时会出现蓝牙激活bug
2026-01-28 16:25:18 +08:00
yezhiqiu
a9ec548557 1.删除1分钟定位时间设置
2.修复route页面从正常宠物切换到过期宠物时,会弹两个充值提示弹窗bug
2026-01-23 15:37:15 +08:00
yezhiqiu
d6d1ad93f2 1.修复套餐过期续费计算价格错误的bug
2.优化套餐时间显示,亚马逊服务器时间转换当前时区时间
2026-01-21 17:40:14 +08:00
yezhiqiu
66160b45e0 1.修复支付成功后,不点“Activy”按钮,杀掉APP,重新进入,无法重新进入激活流程且无法重新绑定bug
2.增加dfu过程中不会自动熄屏
2026-01-20 10:11:23 +08:00
yezhiqiu
53feace665 修改绑定设备提示语 2026-01-16 16:10:06 +08:00
yezhiqiu
6e519da2d4 1.轨迹选择开始时间弹窗,等一分钟以上点OK,会出现开始时间晚于结束时间bug
2. 隐藏【Notifications Setting】运动信息通知开关
3.修复进入"LED Light"界面,蓝牙已连接,LED关闭状态,选择其中一个模式,LED开关跟随切换为开,但此时设备LED并没有开
2026-01-16 15:59:16 +08:00
yezhiqiu
8bb497b548 完善绑定设备流程,有套餐设备绑定也发送蓝牙1a指令 2026-01-14 17:14:22 +08:00
yezhiqiu
ed0a3e803d 修改被分享的账户权限:1. 应不可连接蓝牙;2. 应不可直播(隐藏按钮);3. 应不可重新开启自动订阅、不可充值; 4. 应不可设置开关灯、定位间隔、直播时长、固件升级、关机(全部隐藏)。 2026-01-09 17:39:48 +08:00
yezhiqiu
4021989676 暂时隐藏套餐保险服务 2026-01-09 15:42:28 +08:00
yezhiqiu
5663af6a17 1.套餐到期年月日时间重新计算,去掉显示一位数补齐0 2026-01-09 15:02:51 +08:00
499 changed files with 17017 additions and 8277 deletions

View File

@@ -4,10 +4,10 @@
<selectionStates> <selectionStates>
<SelectionState runConfigName="app"> <SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" /> <option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2025-10-09T01:39:35.620630500Z"> <DropdownSelection timestamp="2026-07-29T04:01:42.827217400Z">
<Target type="DEFAULT_BOOT"> <Target type="DEFAULT_BOOT">
<handle> <handle>
<DeviceId pluginId="LocalEmulator" identifier="path=H:\androidAvd\.android\avd\Pixel_9_Pro.avd" /> <DeviceId pluginId="PhysicalDevice" identifier="serial=3A251FDJH000CE" />
</handle> </handle>
</Target> </Target>
</DropdownSelection> </DropdownSelection>

2
.idea/gradle.xml generated
View File

@@ -6,7 +6,7 @@
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" /> <option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="jbr-21" /> <option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />

10
.idea/migrations.xml generated
View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

7
.idea/misc.xml generated
View File

@@ -1,9 +1,4 @@
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="jbr-21" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="jbr-21" project-jdk-type="JavaSDK" />
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project> </project>

View File

@@ -7,9 +7,12 @@ android {
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 31 targetSdkVersion 31
// 库模块自身不开启混淆(库模块 minifyEnabled 默认就是 false显式写死更安全
consumerProguardFiles "consumer-rules.pro"
} }
buildTypes { buildTypes {
release { release {
// 库模块自身不混淆:产出的 AAR 必须是原始类,否则 App 侧无法直接调用/反射
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }

View File

@@ -1 +0,0 @@
o/bundleLibRuntimeToDirDebug

View File

@@ -1 +1 @@
#Fri Dec 26 18:05:45 CST 2025 #Fri Jul 31 17:44:57 CST 2026

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\build\generated\res\resValues\debug"/></dataSet><mergedItems/></merger> <merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\build\generated\res\resValues\debug"/></dataSet><mergedItems/></merger>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\build\intermediates\shader_assets\debug\compileDebugShaders\out"/></dataSet></merger> <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\assets"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\build\intermediates\shader_assets\debug\compileDebugShaders\out"/></dataSet></merger>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\jniLibs"/></dataSet></merger> <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\jniLibs"/></dataSet></merger>

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\shaders"/></dataSet></merger> <merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\debug\shaders"/></dataSet></merger>

View File

@@ -5,16 +5,16 @@
5 <uses-sdk android:minSdkVersion="21" /> 5 <uses-sdk android:minSdkVersion="21" />
6 6
7 <uses-permission android:name="android.permission.BLUETOOTH" /> 7 <uses-permission android:name="android.permission.BLUETOOTH" />
7-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:5-68 7-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:5-68
7-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:22-65 7-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:22-65
8 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 8 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
8-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:5-74 8-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:5-74
8-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:22-71 8-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:22-71
9 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 9 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
9-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:5-81 9-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:5-81
9-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:22-78 9-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:22-78
10 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 10 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
10-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:5-79 10-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:5-79
10-->E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:22-76 10-->F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:22-76
11 11
12</manifest> 12</manifest>

View File

@@ -1,33 +1,33 @@
-- Merging decision tree log --- -- Merging decision tree log ---
manifest manifest
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:1:1-9:12 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:1:1-9:12
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:1:1-9:12 INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:1:1-9:12
package package
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:2:5-30 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:2:5-30
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml
xmlns:android xmlns:android
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:1:11-69 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:1:11-69
uses-permission#android.permission.BLUETOOTH uses-permission#android.permission.BLUETOOTH
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:5-68 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:5-68
android:name android:name
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:22-65 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:4:22-65
uses-permission#android.permission.BLUETOOTH_ADMIN uses-permission#android.permission.BLUETOOTH_ADMIN
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:5-74 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:5-74
android:name android:name
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:22-71 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:5:22-71
uses-permission#android.permission.ACCESS_COARSE_LOCATION uses-permission#android.permission.ACCESS_COARSE_LOCATION
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:5-81 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:5-81
android:name android:name
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:22-78 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:6:22-78
uses-permission#android.permission.ACCESS_FINE_LOCATION uses-permission#android.permission.ACCESS_FINE_LOCATION
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:5-79 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:5-79
android:name android:name
ADDED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:22-76 ADDED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml:7:22-76
uses-sdk uses-sdk
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml reason: use-sdk injection requested INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml reason: use-sdk injection requested
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml
android:targetSdkVersion android:targetSdkVersion
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml
android:minSdkVersion android:minSdkVersion
INJECTED from E:\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml INJECTED from F:\Project\AndroidProject\LatestSdkProject\Tracker\FastBleLib\src\main\AndroidManifest.xml

View File

@@ -0,0 +1,146 @@
# ============================================================
# FastBleLib 库模块 consumer-rules.pro传递给依赖本库的 App 模块)
# 库的实际包名com.clj.fastblenamespace
# 要求:完全不混淆,关键系统回调必须 100% 保留
# 问题根因BleManager.getInstance().isConnected(mac) 执行不正常
# 因为 Parcelable CREATOR / 系统 BluetoothGattCallback 覆写方法
# / Handler 内部类 handleMessage / 枚举 / 静态 Holder 单例 R8 优化
# ============================================================
# -------------- 核心类 keep基础包 --------------
-keep class com.clj.fastble.** { *; }
-keepclassmembers class com.clj.fastble.** {
public <init>(...);
protected <init>(...);
<fields>;
<methods>;
}
# -------------- Parcelable 强化规则核心BleDevice / BleConnectStateParameter 等) --------------
# 解决:跨 Binder 传递 BleDevice 时反序列化失败getMac() 返回 null导致 equals(mac) 永远 false
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
public static final android.os.Parcelable$ClassLoaderCreator *;
public <init>(android.os.Parcel);
public <init>(android.os.Parcel, java.lang.ClassLoader);
public void writeToParcel(android.os.Parcel, int);
public int describeContents();
}
# 针对 FastBle 自己的 Parcelable 类再单独声明一次,优先匹配
# 说明:因为上面已经 -keep class com.clj.fastble.** { *; },所以这些类所有成员已全量保留
# 这里只做显式声明(防止 outer keep 失效时的兜底)
-keep class com.clj.fastble.data.BleDevice { *; }
-keep class com.clj.fastble.data.BleConnectStateParameter { *; }
-keep class com.clj.fastble.data.BleScanState { *; }
# -------------- 系统蓝牙回调覆写方法最关键Binder 回调触发必须保留原签名) --------------
# 解决onConnectionStateChange / onServicesDiscovered 等系统回调不触发 无法 addBleBluetooth 列表为空 isConnected() 永远 false
# 所有 extends BluetoothGattCallbackBleBluetooth.coreGattCallback 匿名内部类继承它)
-keepclassmembers class * extends android.bluetooth.BluetoothGattCallback {
public *;
protected *;
void onConnectionStateChange(...);
void onServicesDiscovered(...);
void onCharacteristicRead(...);
void onCharacteristicWrite(...);
void onCharacteristicChanged(...);
void onDescriptorRead(...);
void onDescriptorWrite(...);
void onReliableWriteCompleted(...);
void onReadRemoteRssi(...);
void onMtuChanged(...);
void onPhyUpdate(...);
void onPhyRead(...);
void onServiceChanged(...);
}
# 所有 implements BluetoothAdapter.LeScanCallbackBleScanPresenter 实现它,老版扫描回调)
-keepclassmembers class * implements android.bluetooth.BluetoothAdapter$LeScanCallback {
void onLeScan(...);
}
# 所有 extends android.bluetooth.le.ScanCallbackAndroid 5.0+ 新版扫描 API,万一用到)
-keepclassmembers class * extends android.bluetooth.le.ScanCallback {
void onScanResult(...);
void onBatchScanResults(...);
void onScanFailed(...);
}
# -------------- Handler 内部类 handleMessage系统 Handler.Callback 机制触发) --------------
# 解决MainHandler / ScanHandler handleMessage 被混淆 消息不处理 连接流程卡死
-keepclassmembers class * extends android.os.Handler {
public void handleMessage(android.os.Message);
protected void handleMessage(android.os.Message);
void handleMessage(...);
}
# -------------- 枚举类保留BleScanStateLastState 内部枚举) --------------
# 解决:枚举 values() / valueOf() / ordinal() 被优化 状态判断错误
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
public static ** valueOf(java.lang.Class, java.lang.String);
}
-keep enum com.clj.fastble.** { *; }
-keepclassmembers enum com.clj.fastble.** { *; }
# 显式保留 BleBluetooth.LastState 内部枚举
-keep class com.clj.fastble.bluetooth.BleBluetooth$LastState { *; }
# -------------- 静态 Holder 单例模式BleManager / BleScanner 单例) --------------
# 解决R8 full mode private static 内部类做特殊优化,导致单例失效,多次 init 覆盖
-keep class com.clj.fastble.BleManager$BleManagerHolder { *; }
-keepclassmembers class com.clj.fastble.BleManager$BleManagerHolder {
static com.clj.fastble.BleManager sBleManager;
<init>(...);
}
-keep class com.clj.fastble.scan.BleScanner$BleScannerHolder { *; }
-keepclassmembers class com.clj.fastble.scan.BleScanner$BleScannerHolder {
static com.clj.fastble.scan.BleScanner sBleScanner;
<init>(...);
}
# -------------- 内部类 + 匿名内部类(禁止类合并,保留外部类引用) --------------
# 解决R8 class merging BleBluetooth$1coreGattCallback 匿名类)合并到外层,导致 Binder 回调找不到
-keepattributes InnerClasses,EnclosingMethod,Signature,*Annotation*,RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,Exceptions
-keep class com.clj.fastble.**$* { *; }
-keepclassmembers class com.clj.fastble.**$* {
<init>(...);
<fields>;
<methods>;
}
# -------------- 反射支持BleBluetooth.refreshDeviceCache() 反射调用 BluetoothGatt#refresh --------------
# 说明:
# - java.lang.reflect.* / android.bluetooth.BluetoothGatt 均为 Android 系统框架类R8 不会修改/混淆/优化系统类
# - BluetoothGatt#refresh() @hide 隐藏 API,编译期 SDKandroid.jar中不存在故无需也无法 keep
# - 运行时反射 Class.getMethod("refresh") 可正常查找系统 ROM 中的真实方法,不受 ProGuard/R8 影响
# - 因此这里不需要写任何 -keep 规则,仅保留 -dontwarn 防止反射类的警告
-dontwarn java.lang.reflect.**
-dontwarn android.bluetooth.BluetoothGatt
# -------------- 回调接口保留(动态代理/反射查找可能用到) --------------
-keep interface com.clj.fastble.callback.** { *; }
-keepclassmembers interface com.clj.fastble.callback.** { <methods>; }
-keep class * implements com.clj.fastble.callback.BleGattCallback { *; }
-keep class * implements com.clj.fastble.callback.BleScanCallback { *; }
-keep class * implements com.clj.fastble.callback.BleScanAndConnectCallback { *; }
-keep class * implements com.clj.fastble.callback.BleNotifyCallback { *; }
-keep class * implements com.clj.fastble.callback.BleWriteCallback { *; }
-keep class * implements com.clj.fastble.callback.BleReadCallback { *; }
-keep class * implements com.clj.fastble.callback.BleIndicateCallback { *; }
-keep class * implements com.clj.fastble.callback.BleRssiCallback { *; }
-keep class * implements com.clj.fastble.callback.BleMtuChangedCallback { *; }
# -------------- 关键核心类额外 keep单例控制器) --------------
# 说明BluetoothBLEManager 类不存在于当前 FastBle 代码中,已移除(之前是误加的)
-keep class com.clj.fastble.BleManager { *; }
-keep class com.clj.fastble.bluetooth.BleBluetooth { *; }
-keep class com.clj.fastble.bluetooth.MultipleBluetoothController { *; }
-keep class com.clj.fastble.bluetooth.BleConnector { *; }
-keep class com.clj.fastble.scan.BleScanner { *; }
-keep class com.clj.fastble.scan.BleScanPresenter { *; }
-keep class com.clj.fastble.scan.BleScanRuleConfig { *; }
-keep class com.clj.fastble.data.BleMsg { *; }
-keep class com.clj.fastble.utils.BleLog { *; }
-dontwarn com.clj.fastble.**
-dontwarn android.bluetooth.**
-dontwarn java.lang.reflect.**

View File

@@ -1,17 +1,14 @@
# Add project specific ProGuard rules here. # ============================================================
# By default, the flags in this file are appended to flags specified # FastBleLib 自身的混淆规则(仅当本模块 minifyEnabled=true 时生效,当前默认 false
# in D:\development\AppData\sdk/tools/proguard/proguard-android.txt # 实际包名com.clj.fastble
# You can edit the include path and order by changing the proguardFiles # ============================================================
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here: # 完全不混淆
-keep class com.clj.fastble.** { *; }
# If your project uses WebView with JS, uncomment the following -keepclassmembers class com.clj.fastble.** {
# and specify the fully qualified class name to the JavaScript interface public <init>(...);
# class: <fields>;
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { <methods>;
# public *; }
#} -keepattributes Signature,*Annotation*,InnerClasses,EnclosingMethod,RuntimeVisibleAnnotations,SourceFile,LineNumberTable
-dontwarn com.clj.fastble.**

View File

@@ -26,17 +26,23 @@ android {
defaultConfig { defaultConfig {
applicationId "com.abbidot.tracker" applicationId "com.abbidot.tracker"
minSdkVersion 23 minSdkVersion 24
targetSdkVersion 35 targetSdkVersion 35
versionCode 2103 versionCode 2400
// versionName "2.1.3" // versionName "2.4.0"
versionName "2.1.3-Beta1" versionName "2.4.0-Beta1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk { ndk {
//选择要添加的对应 cpu 类型的 .so 库。 //选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64' /**
* armeabiAndroid 4.4 之后基本淘汰Android7.0 设备几乎不会匹配这个 ABI
* mips/mips64芯片厂商早已停产市面不存在任何手机使用该架构
*/
// abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64', 'mips', 'mips64'
//只保留 64 位架构,解决MMKV2.x,32位进程崩溃问题
abiFilters 'arm64-v8a', 'x86_64'
} }
manifestPlaceholders = [ manifestPlaceholders = [
@@ -47,6 +53,7 @@ android {
BUGLY_KEY : getKey("BUGLY_KEY"), BUGLY_KEY : getKey("BUGLY_KEY"),
MAPBOX_ACCESS_TOKEN: getKey("MAPBOX_ACCESS_TOKEN"), MAPBOX_ACCESS_TOKEN: getKey("MAPBOX_ACCESS_TOKEN"),
HTTP_REQUEST_KEY : getKey("HTTP_REQUEST_KEY"), HTTP_REQUEST_KEY : getKey("HTTP_REQUEST_KEY"),
CARD_RSA_KEY : getKey("CARD_RSA_KEY"),
JPUSH_PKGNAME : "${applicationId}", JPUSH_PKGNAME : "${applicationId}",
JPUSH_APPKEY : "c968a96f76fc4f52e0f764ee", //JPush 上注册的包名对应的 Appkey. JPUSH_APPKEY : "c968a96f76fc4f52e0f764ee", //JPush 上注册的包名对应的 Appkey.
@@ -63,6 +70,17 @@ android {
] ]
} }
//解决mapBox和百度地图libc++_shared.so发生冲突http://www.52im.net/blog-28523-2848.html
packagingOptions {
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/armeabi/libc++_shared.so'
pickFirst 'lib/mips/libc++_shared.so'
pickFirst 'lib/mips64/libc++_shared.so'
}
// 读取local.properties文件 // 读取local.properties文件
Properties properties = new Properties() Properties properties = new Properties()
InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream() InputStream inputStream = project.rootProject.file('local.properties').newDataInputStream()
@@ -111,11 +129,11 @@ android {
debuggable false debuggable false
jniDebuggable false jniDebuggable false
// 移除无用的资源文件 // 移除无用的资源文件
shrinkResources false shrinkResources true
// ZipAlign 优化 // ZipAlign 优化
zipAlignEnabled true zipAlignEnabled true
// 设置混淆 // 设置混淆
minifyEnabled false minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release signingConfig signingConfigs.release
} }
@@ -127,6 +145,10 @@ android {
} }
kotlinOptions { kotlinOptions {
jvmTarget = '17' jvmTarget = '17'
freeCompilerArgs += [
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.RequiresOptIn",
]
} }
applicationVariants.all { variant -> applicationVariants.all { variant ->
@@ -182,29 +204,32 @@ dependencies {
// implementation 'com.google.android.material:material:1.10.0' // implementation 'com.google.android.material:material:1.10.0'
// implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" // implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'com.google.android.material:material:1.10.0'
implementation 'androidx.activity:activity:1.8.0'
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1' androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
// Android官方库 // Android官方库
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'androidx.arch.core:core-common:2.2.0' implementation 'androidx.arch.core:core-common:2.2.0'
implementation 'androidx.arch.core:core-runtime:2.2.0' implementation 'androidx.arch.core:core-runtime:2.2.0'
implementation 'androidx.activity:activity-ktx:1.9.3' implementation 'androidx.activity:activity-ktx:1.10.1'
implementation 'androidx.fragment:fragment-ktx:1.5.6' implementation 'androidx.fragment:fragment-ktx:1.8.9'
implementation 'androidx.annotation:annotation:1.9.1' implementation 'androidx.annotation:annotation:1.10.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.10.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.7' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.10.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.10.0'
implementation 'androidx.room:room-runtime:2.5.2' implementation 'androidx.room:room-runtime:2.8.4'
// implementation 'androidx.room:room-rxjava2:2.3.0' // implementation 'androidx.room:room-rxjava2:2.3.0'
implementation 'androidx.room:room-ktx:2.5.2' implementation 'androidx.room:room-ktx:2.8.4'
kapt 'androidx.room:room-compiler:2.5.2' kapt 'androidx.room:room-compiler:2.8.4'
//hilt依赖注入https://mvnrepository.com/artifact/com.google.dagger/hilt-android-gradle-plugin //hilt依赖注入https://mvnrepository.com/artifact/com.google.dagger/hilt-android-gradle-plugin
implementation "com.google.dagger:hilt-android:2.57" implementation "com.google.dagger:hilt-android:2.57.2"
kapt "com.google.dagger:hilt-android-compiler:2.57" kapt "com.google.dagger:hilt-android-compiler:2.57.2"
//Android UI 开发效率的 UI 库https://github.com/Tencent/QMUI_Android //Android UI 开发效率的 UI 库https://github.com/Tencent/QMUI_Android
implementation 'com.qmuiteam:qmui:2.1.0' implementation 'com.qmuiteam:qmui:2.1.0'
@@ -221,14 +246,14 @@ dependencies {
implementation "io.coil-kt:coil-gif:1.4.0"//支持GIF implementation "io.coil-kt:coil-gif:1.4.0"//支持GIF
//lottie动画https://github.com/airbnb/lottie-android //lottie动画https://github.com/airbnb/lottie-android
implementation 'com.airbnb.android:lottie:6.6.7' implementation 'com.airbnb.android:lottie:6.7.1'
//https://github.com/CymChad/BaseRecyclerViewAdapterHelper //https://github.com/CymChad/BaseRecyclerViewAdapterHelper
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.11' implementation "io.github.cymchad:BaseRecyclerViewAdapterHelper:3.0.14"
//升级recyclerview因BaseRecyclerViewAdapterHelper item点击事件是使用1.2.0 //升级recyclerview因BaseRecyclerViewAdapterHelper item点击事件是使用1.2.0
implementation 'androidx.recyclerview:recyclerview:1.3.1' implementation 'androidx.recyclerview:recyclerview:1.4.0'
//谷歌地图 //谷歌地图
implementation 'com.google.android.gms:play-services-maps:19.2.0' implementation 'com.google.android.gms:play-services-maps:20.0.0'
//地图操作工具类添加标记等https://github.com/googlemaps/android-maps-utils //地图操作工具类添加标记等https://github.com/googlemaps/android-maps-utils
// implementation 'com.google.maps.android:android-maps-utils:2.3.0' // implementation 'com.google.maps.android:android-maps-utils:2.3.0'
// implementation 'com.google.maps.android:maps-utils-ktx:3.2.1' // implementation 'com.google.maps.android:maps-utils-ktx:3.2.1'
@@ -245,21 +270,24 @@ dependencies {
//mapbox地图https://github.com/mapbox/mapbox-maps-android //mapbox地图https://github.com/mapbox/mapbox-maps-android
// implementation 'com.mapbox.maps:android:10.2.0' // implementation 'com.mapbox.maps:android:10.2.0'
//https://github.com/mapbox/mapbox-search-android //https://github.com/mapbox/mapbox-search-android
//用mapbox搜索SDK,地理编码 有搜索ui组件已包括mapbox-search-android架包 /**用mapbox搜索SDK,地理编码 有搜索ui组件已包括mapbox-search-android架包
implementation "com.mapbox.search:mapbox-search-android-ui:2.5.1" * 支持 16 KB 页面大小
* https://docs.mapbox.com/android/search/guides/install/#step-2-add-search-sdk-dependencies
*/
implementation "com.mapbox.search:mapbox-search-android-ui-ndk27:2.22.0"
// mapbox搜索SDK,地理编码 没有搜索ui组件 // mapbox搜索SDK,地理编码 没有搜索ui组件
// implementation "com.mapbox.search:mapbox-search-android:1.0.0-beta.25" // implementation "com.mapbox.search:mapbox-search-android:1.0.0-beta.25"
//用于计算距离https://docs.mapbox.com/android/java/guides/turf/#available-methods //用于计算距离https://docs.mapbox.com/android/java/guides/#installation
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:6.15.0' implementation 'com.mapbox.mapboxsdk:mapbox-sdk-turf:7.10.0'
//用于计算路线规划信息https://docs.mapbox.com/android/java/examples/dashed-directions-line/ //用于计算路线规划信息、地理编码
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:6.3.0' implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:7.10.0'
// 权限请求框架https://github.com/getActivity/XXPermissions // 权限请求框架https://github.com/getActivity/XXPermissions
implementation 'com.github.getActivity:XXPermissions:25.2' implementation 'com.github.getActivity:XXPermissions:28.2'
// 吐司框架https://github.com/getActivity/ToastUtils // 吐司框架https://github.com/getActivity/ToastUtils
implementation 'com.github.getActivity:Toaster:13.2' implementation 'com.github.getActivity:Toaster:15.0'
// 日志调试框架https://github.com/getActivity/Logcat ,在debug模式下集成 // 日志调试框架https://github.com/getActivity/Logcat ,在debug模式下集成
debugImplementation 'com.github.getActivity:Logcat:12.3' debugImplementation 'com.github.getActivity:Logcat:13.0'
// PictureSelector图片选择器,需要compileSdkVersion=31 https://github.com/LuckSiege/PictureSelector // PictureSelector图片选择器,需要compileSdkVersion=31 https://github.com/LuckSiege/PictureSelector
// implementation 'io.github.lucksiege:pictureselector:v3.0.3' // implementation 'io.github.lucksiege:pictureselector:v3.0.3'
@@ -268,14 +296,14 @@ dependencies {
//压缩图片 https://github.com/zetbaitsu/Compressor //压缩图片 https://github.com/zetbaitsu/Compressor
implementation 'id.zelory:compressor:3.0.1' implementation 'id.zelory:compressor:3.0.1'
//图片裁剪功能https://github.com/CanHub/Android-Image-Cropper //图片裁剪功能https://github.com/CanHub/Android-Image-Cropper
implementation 'com.vanniktech:android-image-cropper:4.6.0' implementation 'com.vanniktech:android-image-cropper:4.7.0'
//******************************************极光推送start***************************************************** //******************************************极光推送start*****************************************************
// https://docs.jiguang.cn/jpush/client/Android/android_guide // https://docs.jiguang.cn/jpush/client/Android/android_guide
// implementation 'cn.jiguang.sdk:jcore:3.1.2' // 此处以JCore 2.7.2 版本为例。 // implementation 'cn.jiguang.sdk:jcore:3.1.2' // 此处以JCore 2.7.2 版本为例。
// implementation 'cn.jiguang.sdk:jpush:4.6.0' // 此处以JPush 4.0.0 版本为例 // implementation 'cn.jiguang.sdk:jpush:4.6.0' // 此处以JPush 4.0.0 版本为例
implementation 'cn.jiguang.sdk:jcore-google:5.1.0' // 此处以JCore 2.7.2 版本为例。 implementation 'cn.jiguang.sdk:jcore-google:5.3.7' // 此处以JCore 2.7.2 版本为例。
implementation 'cn.jiguang.sdk:jpush-google:5.8.0' // 此处以JPush 4.0.0 版本为例 implementation 'cn.jiguang.sdk:jpush-google:6.0.7' // 此处以JPush 4.0.0 版本为例
// 接入华为厂商 // 接入华为厂商
// implementation 'com.huawei.hms:push:6.1.0.300' // implementation 'com.huawei.hms:push:6.1.0.300'
// implementation 'cn.jiguang.sdk.plugin:huawei:4.0.0'// 极光厂商插件版本与接入 JPush 版本保持一致,下同 // implementation 'cn.jiguang.sdk.plugin:huawei:4.0.0'// 极光厂商插件版本与接入 JPush 版本保持一致,下同
@@ -294,7 +322,7 @@ dependencies {
//******************************************极光推送end******************************************************* //******************************************极光推送end*******************************************************
//其中指代最新Bugly SDK版本号也可以指定明确的版本号例如4.0.0 //其中指代最新Bugly SDK版本号也可以指定明确的版本号例如4.0.0
implementation 'com.tencent.bugly:crashreport:4.1.9.3' // implementation 'com.tencent.bugly:crashreport:4.1.9.3'
//其中latest.release指代最新Bugly NDK版本号也可以指定明确的版本号例如3.9.2 //其中latest.release指代最新Bugly NDK版本号也可以指定明确的版本号例如3.9.2
// implementation 'com.tencent.bugly:nativecrashreport:3.9.2' // implementation 'com.tencent.bugly:nativecrashreport:3.9.2'
@@ -306,24 +334,27 @@ dependencies {
implementation 'com.stripe:stripe-android:20.27.0' implementation 'com.stripe:stripe-android:20.27.0'
//百度地图基础定位组件 //百度地图基础定位组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.6.5.1' implementation 'com.baidu.lbsyun:BaiduMapSDK_Location:9.6.7'
//地图组件 //地图组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.5.2' implementation 'com.baidu.lbsyun:BaiduMapSDK_Map:7.6.7'
//检索组件 //检索组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.5.2' implementation 'com.baidu.lbsyun:BaiduMapSDK_Search:7.6.7'
//工具组件 //工具组件
implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.5.2' implementation 'com.baidu.lbsyun:BaiduMapSDK_Util:7.6.7'
//微信登录、支付 //微信登录、支付
implementation 'com.tencent.mm.opensdk:wechat-sdk-android:+' implementation 'com.tencent.mm.opensdk:wechat-sdk-android:+'
//支付宝支付 //支付宝支付
implementation 'com.alipay.sdk:alipaysdk-android:+@aar' implementation 'com.alipay.sdk:alipaysdk-android:+@aar'
//dfu升级https://github.com/NordicSemiconductor/Android-DFU-Library //g30 dfu升级https://github.com/NordicSemiconductor/Android-DFU-Library
implementation 'no.nordicsemi.android:dfu:2.9.0' implementation 'no.nordicsemi.android:dfu:2.10.1'
//g40 dfu升级https://github.com/nordicsemi/Android-nRF-Connect-Device-Manager?tab=readme-ov-file#migration-from-the-original-repo
// implementation 'no.nordicsemi.android:mcumgr-core:2.7.4'
implementation 'no.nordicsemi.android:mcumgr-ble:2.7.4'
//适配Android 12以下SplashScreen启动动画闪屏图片 //适配Android 12以下SplashScreen启动动画闪屏图片
implementation 'androidx.core:core-splashscreen:1.0.1' implementation 'androidx.core:core-splashscreen:1.2.0'
//优雅、万能自定义日历https://github.com/huanghaibin-dev/CalendarView //优雅、万能自定义日历https://github.com/huanghaibin-dev/CalendarView
// implementation 'com.haibin:calendarview:3.7.1' // implementation 'com.haibin:calendarview:3.7.1'
//https://github.com/angcyo/CalendarView //https://github.com/angcyo/CalendarView

665
app/proguard-rules.pro vendored
View File

@@ -14,21 +14,672 @@
# Uncomment this to preserve the line number information for # Uncomment this to preserve the line number information for
# debugging stack traces. # debugging stack traces.
#-keepattributes SourceFile,LineNumberTable -keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
# ==============================
# 基础混淆配置
# ==============================
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
# 保留注解、泛型、异常信息(反射必备)
-keepattributes *Annotation*,Signature,Exception
-keepattributes InnerClasses,EnclosingMethod
# 单独再声明一次,确保泛型签名在 R8 full mode 下不被过度优化(修复 ParameterizedType cast 错误)
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,AnnotationDefault
#禁用所有优化规则,查看混淆后 APK是否可以正常工作 # ==============================
-dontoptimize # Android 基础组件保护
# ==============================
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
# Please add these rules to your existing keep rules in order to suppress warnings. # 保留 Activity 中 onClick 属性引用方法名xml 里直接引用)
# This is generated automatically by the Android Gradle plugin. -keepclassmembers public class * extends android.app.Activity {
-dontwarn com.baidu.mapsdkplatform.comapi.util.SysOSAPI public void *(android.view.View);
}
# ==============================
# R 文件资源 ID 不混淆
# ==============================
-keep class **.R$* { *; }
# ==============================
# Parcelable 和 Serializable 支持
# ==============================
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
# ==============================
# Kotlin 标准库(只保留必要部分,避免全量 keep 造成包体积大)
# ==============================
-keep class kotlin.Metadata { *; }
-dontwarn kotlin.**
-keepclassmembers class **$WhenMappings {
<fields>;
}
# ==============================
# 网络层 Retrofit + Gson核心反射依赖必须保留
# 修复java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
# ==============================
# BaseNetworkApi 与 NetworkApi保留继承关系及泛型参数INetworkService 实际类型)
-keep class com.abbidot.baselibrary.network.base.BaseNetworkApi { *; }
-keep class * extends com.abbidot.baselibrary.network.base.BaseNetworkApi { *; }
-keep interface com.abbidot.baselibrary.network.base.IService { *; }
-keep class com.abbidot.tracker.retrofit2.NetworkApi { *; }
# 显式保留 NetworkApi -> BaseNetworkApi<INetworkService> 的泛型签名
-keep,allowshrinking class * extends com.abbidot.baselibrary.network.base.BaseNetworkApi
# BaseResponse<T> 网络响应泛型基类Gson 反序列化核心)
-keep class com.abbidot.baselibrary.network.base.BaseResponse { *; }
-keepclassmembers class * extends com.abbidot.baselibrary.network.base.BaseResponse {
<fields>;
<init>(...);
}
# baselibrary 网络拦截器/异常类Gson TypeAdapter & OkHttp Interceptor
-keep class com.abbidot.baselibrary.network.interceptor.** { *; }
-keep class com.abbidot.baselibrary.network.exception.** { *; }
-keep class com.abbidot.baselibrary.util.** { *; }
# Retrofit 服务接口 INetworkService所有方法、注解、参数不可混淆动态代理反射
-keep interface com.abbidot.tracker.retrofit2.INetworkService { *; }
-keepclassmembers interface com.abbidot.tracker.retrofit2.INetworkService {
public <methods>;
@retrofit2.http.* <methods>;
}
# Retrofit + OkHttp 官方推荐规则
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface * { <methods>; }
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.**
-dontwarn org.conscrypt.**
-dontwarn org.bouncycastle.**
-dontwarn org.openjsse.**
# Gson 官方推荐规则TypeToken 反射、匿名内部类泛型、字段保留
-keep class com.google.gson.** { *; }
-dontwarn com.google.gson.**
# 保持 Gson TypeToken 及其子类(防止 object : TypeToken<...>() {} 的泛型签名被擦除)
-keep class com.google.gson.reflect.TypeToken { *; }
-keep class * extends com.google.gson.reflect.TypeToken { *; }
-keepclassmembers class * extends com.google.gson.reflect.TypeToken {
<init>(...);
java.lang.reflect.Type getType();
}
# 保留 @SerializedName / @Expose 标记的字段
-keepclassmembers,allowshrinking,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
@com.google.gson.annotations.Expose <fields>;
}
-keepnames class com.google.gson.internal.** { *; }
-keep class com.google.gson.internal.LinkedTreeMap { *; }
# ==============================
# 项目实体类/数据类 —— 这是核心,开启混淆后必崩的关键!!
# ==============================
-keep class com.abbidot.tracker.bean.** { *; }
-keep class com.abbidot.tracker.data.** { *; }
-keep class com.abbidot.tracker.model.** { *; }
-keep class com.abbidot.tracker.entity.** { *; }
# kotlinx-parcelize@Parcelize 注解在编译期生成 Parcelable 实现
# 注意:@Parcelize 是 SOURCE/BINARY 级注解,运行时不存在,因此禁止写 -keep @kotlinx.parcelize.Parcelize
# 直接保留所有 Parcelable 实现类 + kotlin-parcelize 生成的 $Creator/$Parceler 内部类即可
-keep class * implements android.os.Parcelable { *; }
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
public static final android.os.Parcelable$ClassLoaderCreator *;
<init>(android.os.Parcel);
<init>(android.os.Parcel, java.lang.ClassLoader);
void writeToParcel(android.os.Parcel, int);
int describeContents();
}
# kotlin-parcelize 运行时生成的内部辅助类($Creator、$Parceler 等)
-keep class **$Creator { *; }
-keep class **$Parceler { *; }
-keepclassmembers class **$Creator { <fields>; <methods>; }
-keepclassmembers class **$Parceler { <fields>; <methods>; }
-dontwarn kotlinx.parcelize.**
# BaseDiffBean列表 DiffUtil 比较基类PetBean 等继承)
-keep class com.abbidot.tracker.base.BaseDiffBean { *; }
-keepclassmembers class * extends com.abbidot.tracker.base.BaseDiffBean {
<init>(...);
<fields>;
<methods>;
}
# ==============================
# ViewModelby viewModels() / Hilt / SavedStateHandle 反射创建
# ==============================
-keep class * extends androidx.lifecycle.ViewModel { *; }
-keepclassmembers class * extends androidx.lifecycle.ViewModel {
public <init>(...);
protected <init>(...);
<fields>;
<methods>;
}
# ViewModelProvider.Factory反射创建 ViewModel 的工厂接口(内部类用 $ 分隔)
-keep class * implements androidx.lifecycle.ViewModelProvider$Factory { *; }
-keepclassmembers class * implements androidx.lifecycle.ViewModelProvider$Factory {
public <init>(...);
<fields>;
<methods>;
}
# SavedStateHandleViewModel 构造参数 SavedStateHandle 创建器
-keep class * implements androidx.lifecycle.SavedStateViewModelFactory$** { *; }
-keep class androidx.lifecycle.SavedStateHandle { *; }
# ==============================
# Kotlin 协程 / suspend 函数:防止挂起函数签名被 R8 过度优化
# ==============================
-keep class kotlin.coroutines.Continuation { *; }
-keep class kotlin.coroutines.intrinsics.** { *; }
-keep class kotlinx.coroutines.** { *; }
-keepclassmembers class kotlinx.coroutines.** {
<fields>;
<methods>;
}
-dontwarn kotlinx.coroutines.**
-dontwarn kotlin.coroutines.**
# ==============================
# Kotlin 伴生对象 / 单例 INSTANCEViewUtil.instance / SRBleUtil.instance / ConstantString.Companion 等
# ==============================
-keepclassmembers class **$Companion {
<fields>;
<methods>;
public static final *;
static *;
}
-keep class **$Companion { *; }
-keepclassmembers class * {
public static final ** INSTANCE;
public static final ** Companion;
public static ** getINSTANCE();
public static ** getCompanion();
}
# ==============================
# 工具类核心ViewUtil/Util/SRBleUtil 等 —— 所有页面都在调用,不能混淆!!
# ==============================
-keep class com.abbidot.tracker.util.** { *; }
-keepclassmembers class com.abbidot.tracker.util.** {
public <init>(...);
<fields>;
<methods>;
public static final *;
static *;
}
# ==============================
# 项目常量类ConstantString 等Intent extra key、MMKVKey、事件 key 等)
# ==============================
-keep class com.abbidot.tracker.constant.** { *; }
-keepclassmembers class com.abbidot.tracker.constant.** {
public static final *;
<fields>;
<methods>;
}
# ==============================
# 自定义 View/控件37个TrackLineView、VerifyEditText、MyBluetoothAnimView 等,所有 XML inflate
# ==============================
-keep class com.abbidot.tracker.widget.** { *; }
-keepclassmembers class com.abbidot.tracker.widget.** {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(android.content.Context, android.util.AttributeSet, int, int);
public <init>(...);
<fields>;
<methods>;
void set*(***);
*** get*();
}
# ==============================
# ViewBinding
# ==============================
-keep class com.abbidot.tracker.databinding.** { *; }
# ==============================
# Hilt 依赖注入
# ==============================
-keep class dagger.hilt.** { *; }
-keep @dagger.hilt.android.lifecycle.HiltViewModel class * { *; }
-keep @dagger.hilt.android.AndroidEntryPoint class * { *; }
-keep @dagger.Module class * { *; }
-keep @dagger.hilt.EntryPoint class * { *; }
# ==============================
# Room 数据库
# ==============================
-keep class * extends androidx.room.RoomDatabase { *; }
-keep @androidx.room.Entity class * { *; }
-keep @androidx.room.Dao interface * { *; }
# ==============================
# 第三方库规则(仅保留不能被混淆的 SDK —— 多数自带 consumer-rules 的就不重复写)
# ==============================
# —— Coil 图片加载(注意:包名是 coil不是 io.coil——
-keep class coil.** { *; }
-dontwarn coil.**
# —— Lottie 动画(自带 consumer rules保险起见仍保留关键规则
-keep class com.airbnb.lottie.** { *; }
-dontwarn com.airbnb.lottie.**
# —— BaseRecyclerViewAdapterHelperBRVAH 3.xBaseViewHolder 在 viewholder 子包)
-keep class com.chad.library.adapter.** { *; }
-keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter
-keep public class * extends com.chad.library.adapter.base.viewholder.BaseViewHolder
# —— QMUI UI 库(官方推荐规则)
-keep class com.qmuiteam.** { *; }
-dontwarn com.qmuiteam.**
# —— Mapbox自带 consumer rules
# —— 百度地图/百度定位(官方要求全量 keep
-keep class com.baidu.** { *; }
-keep class vi.com.gdi.bgl.android.** { *; }
-dontwarn com.baidu.**
# —— 极光推送(官方要求全量 keep
-keep class cn.jiguang.** { *; }
-dontwarn cn.jiguang.**
# —— Stripe 支付(自带 consumer rules
# —— Braintree / PayPal 支付(自带 consumer rules
# —— 微信 SDK官方要求
-keep class com.tencent.mm.opensdk.** { *; }
-keep class com.tencent.wxop.** { *; }
-keep class com.tencent.mm.sdk.** { *; }
# —— 支付宝 SDK官方要求全量 keep
-keep class com.alipay.** { *; }
-dontwarn com.alipay.**
# —— Nordic DFU 升级(自带 consumer rules
-keep class no.nordicsemi.android.** { *; }
-dontwarn no.nordicsemi.android.**
# —— XXPermissions / Toaster官方推荐规则
-keep class com.hjq.permissions.** { *; }
-keep class com.hjq.toast.** { *; }
-dontwarn com.hjq.permissions.**
-dontwarn com.hjq.toast.**
# —— daimajia AndroidViewAnimationsR8 missing_rules 自动生成:引用了 Android 不存在的可选分支)
-dontwarn com.daimajia.easing.Glider -dontwarn com.daimajia.easing.Glider
-dontwarn com.daimajia.easing.Skill -dontwarn com.daimajia.easing.Skill
-keep class android.* # ==============================
# 自定义 View / XML LayoutInflater 反射实例化保留(核心!)
# 修复 InflateException / InvocationTargetExceptionCalendarView 就是因此崩溃)
# ==============================
#
# 规则 1所有继承 android.view.View 的类必须保留 (Context, AttributeSet) 构造函数
# LayoutInflater 通过反射调用此构造函数从 XML 创建 View
-keepclassmembers class * extends android.view.View {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(android.content.Context, android.util.AttributeSet, int, int);
void set*(***);
*** get*();
}
#
# 规则 2所有继承 ViewGroup / Layout / 常用容器的类同样保留构造
-keepclassmembers class * extends android.view.ViewGroup {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(android.content.Context, android.util.AttributeSet, int, int);
}
#
# 规则 3CalendarViewangcyo fork 版XML 中包名仍然是 com.haibin.calendarview
# 本包下所有自定义 View、内部类、attrs 属性全部保留
-keep class com.haibin.calendarview.** { *; }
-keepclassmembers class com.haibin.calendarview.** {
public <init>(...);
<fields>;
<methods>;
}
-dontwarn com.haibin.calendarview.**
#
# 规则 4项目内部自定义 View 包TrackLineView、VerifyEditText、RingChartView 等)
# 包路径com.abbidot.tracker.widget.**
-keep class com.abbidot.tracker.widget.** { *; }
-keepclassmembers class com.abbidot.tracker.widget.** {
public <init>(...);
<fields>;
<methods>;
}
#
# 规则 5AndroidX FlexboxLayout自定义 ViewGroup
-keep class com.google.android.flexbox.** { *; }
-keepclassmembers class com.google.android.flexbox.** {
public <init>(...);
<fields>;
<methods>;
}
-dontwarn com.google.android.flexbox.**
#
# 规则 6VannikTech Android Image Cropper自定义 View + Activity
-keep class com.vanniktech.ui.** { *; }
-keep class com.canhub.cropper.** { *; }
-keep class * extends androidx.activity.ComponentActivity
-dontwarn com.vanniktech.ui.**
-dontwarn com.canhub.cropper.**
#
# 规则 7Compressor 图片压缩库
-keep class id.zelory.compressor.** { *; }
-dontwarn id.zelory.compressor.**
# ==============================
# 子模块(本地 project 依赖easyPhotos / FastBleLib / easysocket
# 完全不混淆!
# 各子模块自身 build.gradle 已配置 consumerProguardFiles 传递以下规则,这里再写一份做双重保险
# 实际包名(以各子模块 namespace 为准):
# FastBleLib → com.clj.fastble
# easyPhotos → com.huantansheng.easyphotos
# easysocket → com.easysocket
# ==============================
# ==============================
# 子模块 1FastBleLib蓝牙库核心强化规则
# 问题BleManager.getInstance().isConnected(mac) 执行不正常
# ==============================
# 基础包全量 keep
-keep class com.clj.fastble.** { *; }
-keepclassmembers class com.clj.fastble.** {
public <init>(...);
protected <init>(...);
<fields>;
<methods>;
}
# Parcelable 强化BleDevice 等):全量 Parcelable CREATOR + FastBle 专属类单独 keep
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
public static final android.os.Parcelable$ClassLoaderCreator *;
public <init>(android.os.Parcel);
public <init>(android.os.Parcel, java.lang.ClassLoader);
public void writeToParcel(android.os.Parcel, int);
public int describeContents();
}
# 说明:因为上面已经 -keep class com.clj.fastble.** { *; },这些类所有成员已全量保留
# 这里只做显式声明(防止 outer keep 失效时的兜底)
-keep class com.clj.fastble.data.BleDevice { *; }
-keep class com.clj.fastble.data.BleConnectStateParameter { *; }
-keep class com.clj.fastble.data.BleScanState { *; }
-keep class com.clj.fastble.data.BleMsg { *; }
# 系统蓝牙回调覆写方法最关键Binder 回调触发)
-keepclassmembers class * extends android.bluetooth.BluetoothGattCallback {
public *;
protected *;
void onConnectionStateChange(...);
void onServicesDiscovered(...);
void onCharacteristicRead(...);
void onCharacteristicWrite(...);
void onCharacteristicChanged(...);
void onDescriptorRead(...);
void onDescriptorWrite(...);
void onReliableWriteCompleted(...);
void onReadRemoteRssi(...);
void onMtuChanged(...);
void onPhyUpdate(...);
void onPhyRead(...);
void onServiceChanged(...);
}
-keepclassmembers class * implements android.bluetooth.BluetoothAdapter$LeScanCallback {
void onLeScan(...);
}
-keepclassmembers class * extends android.bluetooth.le.ScanCallback {
void onScanResult(...);
void onBatchScanResults(...);
void onScanFailed(...);
}
# Handler 内部类 handleMessage 保留
-keepclassmembers class * extends android.os.Handler {
public void handleMessage(android.os.Message);
protected void handleMessage(android.os.Message);
void handleMessage(...);
}
# 枚举类保留
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
public static ** valueOf(java.lang.Class, java.lang.String);
}
-keep enum com.clj.fastble.** { *; }
-keep class com.clj.fastble.bluetooth.BleBluetooth$LastState { *; }
# 静态 Holder 单例
-keep class com.clj.fastble.BleManager$BleManagerHolder { *; }
-keepclassmembers class com.clj.fastble.BleManager$BleManagerHolder {
static com.clj.fastble.BleManager sBleManager;
<init>(...);
}
-keep class com.clj.fastble.scan.BleScanner$BleScannerHolder { *; }
-keepclassmembers class com.clj.fastble.scan.BleScanner$BleScannerHolder {
static com.clj.fastble.scan.BleScanner sBleScanner;
<init>(...);
}
# 内部类+匿名内部类(禁止 class merging
-keepattributes InnerClasses,EnclosingMethod
-keep class com.clj.fastble.**$* { *; }
-keepclassmembers class com.clj.fastble.**$* {
<init>(...);
<fields>;
<methods>;
}
# 反射支持BluetoothGatt#refresh
# 说明:
# - java.lang.reflect.* / android.bluetooth.BluetoothGatt 均为 Android 系统框架类R8 不会修改/混淆/优化系统类
# - BluetoothGatt#refresh() 是 @hide 隐藏 API编译期 SDKandroid.jar中不存在故无需也无法 keep
# - 运行时反射 Class.getMethod("refresh") 可正常查找系统 ROM 中的真实方法,不受 ProGuard/R8 影响
# - 因此这里不需要写任何 -keep 规则,仅保留 -dontwarn 防止反射类的警告
-dontwarn java.lang.reflect.**
-dontwarn android.bluetooth.BluetoothGatt
# 回调接口保留
-keep interface com.clj.fastble.callback.** { *; }
-keepclassmembers interface com.clj.fastble.callback.** { <methods>; }
-keep class * implements com.clj.fastble.callback.BleGattCallback { *; }
-keep class * implements com.clj.fastble.callback.BleScanCallback { *; }
-keep class * implements com.clj.fastble.callback.BleNotifyCallback { *; }
-keep class * implements com.clj.fastble.callback.BleWriteCallback { *; }
-keep class * implements com.clj.fastble.callback.BleReadCallback { *; }
-keep class * implements com.clj.fastble.callback.BleIndicateCallback { *; }
# 控制器核心类额外 keep
# 说明BluetoothBLEManager 类不存在于当前 FastBle 代码中,已移除(之前是误加的)
-keep class com.clj.fastble.BleManager { *; }
-keep class com.clj.fastble.bluetooth.BleBluetooth { *; }
-keep class com.clj.fastble.bluetooth.MultipleBluetoothController { *; }
-keep class com.clj.fastble.bluetooth.BleConnector { *; }
-keep class com.clj.fastble.scan.BleScanner { *; }
-keep class com.clj.fastble.scan.BleScanPresenter { *; }
-keep class com.clj.fastble.scan.BleScanRuleConfig { *; }
-keep class com.clj.fastble.utils.BleLog { *; }
-dontwarn com.clj.fastble.**
-dontwarn android.bluetooth.**
-dontwarn java.lang.reflect.**
# ==============================
# 子模块 2easyPhotos图片选择库及其依赖的 PhotoView / SubsamplingScaleImageView
# 强化:自定义 View 构造函数 + Parcelable + 内部类 + Handler + 反射
# ==============================
-keep class com.huantansheng.easyphotos.** { *; }
-keepclassmembers class com.huantansheng.easyphotos.** {
public <init>(...);
protected <init>(...);
<fields>;
<methods>;
}
# easyPhotos 自定义 ViewXML 反射实例化)保留构造函数
-keepclassmembers class com.huantansheng.easyphotos.** extends android.view.View {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(android.content.Context, android.util.AttributeSet, int, int);
void set*(***);
*** get*();
}
-keepclassmembers class com.huantansheng.easyphotos.** extends android.view.ViewGroup {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(android.content.Context, android.util.AttributeSet, int, int);
}
# easyPhotos 的 Activity/FragmentAndroidManifest 注册 & XML 引用)
-keep public class * extends androidx.fragment.app.FragmentActivity
-keep public class * extends androidx.appcompat.app.AppCompatActivity
-keep public class * extends androidx.fragment.app.Fragment
# easyPhotos Handler/内部类
-keepattributes InnerClasses,EnclosingMethod
-keep class com.huantansheng.easyphotos.**$* { *; }
-keepclassmembers class com.huantansheng.easyphotos.**$* {
<init>(...);
<fields>;
<methods>;
}
# easyPhotos Parcelable
-keepclassmembers class com.huantansheng.easyphotos.** implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
public static final android.os.Parcelable$ClassLoaderCreator *;
public <init>(android.os.Parcel);
public void writeToParcel(android.os.Parcel, int);
public int describeContents();
}
# Dave Morrissey SubsamplingScaleImageView长图查看器自定义 View + 手势)
# 说明:
# - 已通过 -keep class com.davemorrissey.labs.subscaleview.** { *; } 全量 keep 所有成员
# - 下面 -keepclassmembers class * extends SubsamplingScaleImageView 属于冗余规则,且 IDE 对 external aar 依赖可能解析不到类名(误报 Unresolved
# - 因此删除冗余 extends 规则,仅保留 dontwarn防止 ProGuard 找不到第三方类的警告)
-keep class com.davemorrissey.labs.subscaleview.** { *; }
-keepclassmembers class com.davemorrissey.labs.subscaleview.** {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(...);
<fields>;
<methods>;
}
-dontwarn com.davemorrissey.labs.subscaleview.**
# Chris Banes PhotoView图片缩放自定义 View + 手势检测器)
-keep class com.github.chrisbanes.photoview.** { *; }
-keepclassmembers class com.github.chrisbanes.photoview.** {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public <init>(...);
<fields>;
<methods>;
}
-dontwarn com.github.chrisbanes.photoview.**
-dontwarn com.huantansheng.easyphotos.**
# ==============================
# 子模块 3easysocket蓝牙/通用 Socket 通信协议库)
# 强化Parcelable + 接口回调 + 内部类 + Handler + 反射 + OkIO
# ==============================
-keep class com.easysocket.** { *; }
-keepclassmembers class com.easysocket.** {
public <init>(...);
protected <init>(...);
<fields>;
<methods>;
}
# easysocket 回调接口保留(避免动态代理/反射查找失败)
-keep interface com.easysocket.** { *; }
-keepclassmembers interface com.easysocket.** { <methods>; }
-keep class * implements com.easysocket.interfaces.** { *; }
# easysocket Parcelable/Serializable
-keepclassmembers class com.easysocket.** implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
public static final android.os.Parcelable$ClassLoaderCreator *;
public <init>(android.os.Parcel);
public void writeToParcel(android.os.Parcel, int);
public int describeContents();
}
-keepclassmembers class com.easysocket.** implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
# easysocket Handler/消息分发(内部类 handleMessage
-keep class com.easysocket.**$* { *; }
-keepclassmembers class com.easysocket.**$* {
<init>(...);
<fields>;
<methods>;
}
-keepattributes InnerClasses,EnclosingMethod,Signature,*Annotation*
-dontwarn com.easysocket.**
-dontwarn okio.**
-dontwarn org.jetbrains.annotations.**
# ==============================
# 测试相关(禁止对测试相关包警告)
# ==============================
-dontnote junit.framework.**
-dontnote junit.runner.**
-dontwarn android.test.**
-dontwarn android.support.test.**
-dontwarn org.junit.**
# ==============================
# 移除冗余日志(只移除 v/d/i保留 w 和 e错误日志不能删
# ==============================
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int d(...);
public static int i(...);
}
# ==============================
# 混淆产物输出(方便分析映射关系)
# ==============================
-printmapping proguardMapping.txt
-printseeds proguardSeeds.txt
-printusage proguardUsage.txt

View File

@@ -38,13 +38,14 @@
<uses-permission <uses-permission
android:name="android.permission.WRITE_SETTINGS" android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" /> <!-- android 9.0上使用前台服务,需要添加权限 --> tools:ignore="ProtectedPermissions" /> <!-- android 9.0上使用前台服务,需要添加权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- BLUETOOTH permissions are added by lib_dfu module. -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 用于读取手机当前的状态 --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 用于读取手机当前的状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 读取缓存数据 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 读取缓存数据 -->
<!-- 蓝牙扫描权限 --> <!-- 蓝牙扫描权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 获取模拟定位信息 --> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 获取模拟定位信息 -->
<uses-permission <!-- <uses-permission-->
android:name="android.permission.ACCESS_MOCK_LOCATION" <!-- android:name="android.permission.ACCESS_MOCK_LOCATION"-->
tools:ignore="MockLocation,ProtectedPermissions" /> <!-- tools:ignore="MockLocation,ProtectedPermissions" />-->
<permission <permission
android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:name="android.permission.INTERACT_ACROSS_USERS_FULL"
@@ -55,7 +56,6 @@
android:protectionLevel="signature" /> <!-- Optional. Required for location feature --> android:protectionLevel="signature" /> <!-- Optional. Required for location feature -->
<uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" /> <!-- 为了提高sdk识别唯一用户的能力保证消息推送的精准送达建议集成以下权限可选 --> <uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" /> <!-- 为了提高sdk识别唯一用户的能力保证消息推送的精准送达建议集成以下权限可选 -->
<!-- <uses-permission --> <!-- <uses-permission -->
<!-- android:name="android.permission.QUERY_ALL_PACKAGES" -->
<!-- tools:ignore="QueryAllPackagesPermission" /> --> <!-- tools:ignore="QueryAllPackagesPermission" /> -->
<!-- 如您需要接入地理围栏业务,建议集成以下权限(可选) --> <!-- 如您需要接入地理围栏业务,建议集成以下权限(可选) -->
<uses-permission android:name="android.permission.GET_TASKS" /> <!-- 如您需要对应设备通知相关的能力,建议集成以下权限(可选) --> <uses-permission android:name="android.permission.GET_TASKS" /> <!-- 如您需要对应设备通知相关的能力,建议集成以下权限(可选) -->
@@ -77,17 +77,17 @@
<uses-permission <uses-permission
android:name="android.permission.REQUEST_INSTALL_PACKAGES" android:name="android.permission.REQUEST_INSTALL_PACKAGES"
tools:node="remove" /> <!-- Android 13上一新增运行时权限 --> tools:node="remove" /> <!-- Android 13上一新增运行时权限 -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!-- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> -->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> <!-- <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> -->
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- 通知权限 --> <!-- <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> -->
<!-- 通知权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- Android 12新增权限适配 --> <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <!-- Android 12新增权限适配 -->
<uses-permission <uses-permission
android:name="android.permission.BLUETOOTH_SCAN" android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation" android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" /> tools:targetApi="s" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <!-- BLUETOOTH permissions are added by lib_dfu module. --> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" /> <!-- 指定微信包名 --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE" /> <!-- 指定微信包名 -->
<queries> <queries>
<package android:name="com.tencent.mm" /> <package android:name="com.tencent.mm" />
@@ -95,7 +95,9 @@
<application <application
android:name=".MyApplication" android:name=".MyApplication"
android:allowBackup="true" android:allowBackup="false"
android:enableOnBackInvokedCallback="true"
android:fullBackupContent="false"
android:icon="@mipmap/logo_abbidot" android:icon="@mipmap/logo_abbidot"
android:label="@string/app_name" android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
@@ -105,7 +107,28 @@
android:theme="@style/Theme.Tracker" android:theme="@style/Theme.Tracker"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:replace="android:supportsRtl" tools:replace="android:supportsRtl"
tools:targetApi="n"> tools:targetApi="33">
<activity
android:name=".ui.activity.account.cn.RegisterCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.ForgotPasswordCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.VerifyCodeLoginCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.WXLoginActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.LoginV2CNActivity"
android:exported="false" />
<activity
android:name=".deprecated.ui.activity.profile.recharge.cn.RechargeOrderDetailCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.device.InitializingDeviceActivity"
android:exported="false" />
<activity <activity
android:name=".ui.activity.device.set.PowerOffActivity" android:name=".ui.activity.device.set.PowerOffActivity"
android:exported="false" android:exported="false"
@@ -259,10 +282,6 @@
android:name=".ui.activity.device.wifi.AddWifiPowerZone1Activity" android:name=".ui.activity.device.wifi.AddWifiPowerZone1Activity"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.subscribe.SubscriptionDetailActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.set.FirstPermissionsActivity" android:name=".ui.activity.set.FirstPermissionsActivity"
android:exported="false" android:exported="false"
@@ -386,11 +405,8 @@
<activity <activity
android:name=".ui.activity.device.wifi.EditWifiPowerZoneActivity" android:name=".ui.activity.device.wifi.EditWifiPowerZoneActivity"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait"
<activity android:windowSoftInputMode="adjustPan" />
android:name=".ui.activity.map.LiveActivityV2"
android:exported="false"
android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.map.LiveActivityV3" android:name=".ui.activity.map.LiveActivityV3"
android:exported="false" android:exported="false"
@@ -414,36 +430,43 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.set.AboutActivity" android:name=".ui.activity.set.AboutActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.recharge.cn.RechargeHistoryCNActivity" android:name=".ui.activity.account.recharge.cn.RechargeHistoryCNActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.recharge.cn.RechargeDeviceDetailCNActivity" android:name=".ui.activity.account.recharge.cn.RechargeDeviceDetailCNActivity"
android:screenOrientation="portrait" /> android:exported="false"
<activity
android:name=".ui.activity.account.recharge.cn.RechargeOrderDetailCNActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.recharge.cn.RechargeAmountCNActivity" android:name=".ui.activity.account.recharge.cn.RechargeAmountCNActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".deprecated.ui.activity.LoginRegisterCNActivity" android:name=".deprecated.ui.activity.LoginRegisterCNActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.DebugActivity" android:name=".ui.DebugActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.MyCropImageActivity" android:name=".ui.activity.MyCropImageActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.WebViewActivity" android:name=".ui.activity.WebViewActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.recharge.AddCreditCardActivity" android:name=".ui.activity.account.recharge.AddCreditCardActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".deprecated.ui.activity.profile.recharge.PaymentResultActivity" android:name=".deprecated.ui.activity.profile.recharge.PaymentResultActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.recharge.PaymentMethodPayPalActivity" android:name=".ui.activity.account.recharge.PaymentMethodPayPalActivity"
@@ -465,15 +488,19 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.recharge.PaymentMethodStripeActivity" android:name=".ui.activity.account.recharge.PaymentMethodStripeActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.map.MapLiveActivity" android:name=".ui.activity.map.MapLiveActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.map.HomeMapNavigationActivity" android:name=".ui.activity.map.HomeMapNavigationActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.data.HistoryDataActivity" android:name=".ui.activity.data.HistoryDataActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.device.set.LedLightActivity" android:name=".ui.activity.device.set.LedLightActivity"
@@ -481,12 +508,15 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.account.FencesAddActivity" android:name=".ui.activity.account.FencesAddActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.SwipeActionActivity" android:name=".ui.activity.SwipeActionActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.DetailActivity" android:name=".ui.activity.DetailActivity"
android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.SplashActivity" android:name=".ui.activity.SplashActivity"
@@ -547,6 +577,7 @@
<service <service
android:name="com.baidu.location.f" android:name="com.baidu.location.f"
android:enabled="true" android:enabled="true"
android:exported="false"
android:process=":remote" /> <!-- 谷歌地图 --> android:process=":remote" /> <!-- 谷歌地图 -->
<meta-data <meta-data
android:name="com.google.android.geo.API_KEY" android:name="com.google.android.geo.API_KEY"
@@ -564,6 +595,7 @@
<activity <activity
android:name="com.hjq.logcat.LogcatActivity" android:name="com.hjq.logcat.LogcatActivity"
android:configChanges="orientation|screenSize|keyboardHidden" android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="false"
android:launchMode="singleInstance" android:launchMode="singleInstance"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" android:theme="@style/Theme.AppCompat.Light.NoActionBar"
@@ -597,7 +629,12 @@
android:value="${MAPBOX_ACCESS_TOKEN}" /> android:value="${MAPBOX_ACCESS_TOKEN}" />
<meta-data <meta-data
android:name="com.abbidot.metadata.http.request.key" android:name="com.abbidot.metadata.http.request.key"
android:value="${HTTP_REQUEST_KEY}" /> <!-- **************************************Stripe支付start********************************************* --> android:value="${HTTP_REQUEST_KEY}" />
<meta-data
android:name="com.abbidot.metadata.card.rsa.key"
android:value="${CARD_RSA_KEY}" />
<!-- **************************************Stripe支付start********************************************* -->
<!-- <meta-data --> <!-- <meta-data -->
<!-- android:name="com.stripe.example.metadata.backend_url" --> <!-- android:name="com.stripe.example.metadata.backend_url" -->
<!-- android:value="${BACKEND_URL}" /> --> <!-- android:value="${BACKEND_URL}" /> -->

View File

@@ -1,469 +0,0 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=gb2312" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title><!--[if gte mso 9]><xml><o:DocumentProperties><o:Author>Administrator</o:Author><o:LastAuthor>Administrator</o:LastAuthor><o:Revision>1</o:Revision><o:Pages>3</o:Pages><o:Characters>3201</o:Characters></o:DocumentProperties><o:CustomDocumentProperties><o:KSOProductBuildVer dt:dt="string" >2052-11.1.0.11875</o:KSOProductBuildVer><o:ICV dt:dt="string" >C04E27608BE34562B8408B8D5F23791D</o:ICV></o:CustomDocumentProperties></xml><![endif]--><!--[if gte mso 9]><xml><o:OfficeDocumentSettings></o:OfficeDocumentSettings></xml><![endif]--><!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8 <20><></w:DrawingGridVerticalSpacing><w:View>Web</w:View><w:Compatibility><w:AdjustLineHeightInTable/><w:DontGrowAutofit/><w:BalanceSingleByteDoubleByteWidth/><w:DoNotExpandShiftReturn/><w:UseFELayout/></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]--><!--[if gte mso 9]><xml><w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="260" >
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 9" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 9" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 9" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Normal Indent" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="footnote text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="annotation text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="header" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="footer" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index heading" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="caption" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="table of figures" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="envelope address" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="envelope return" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="footnote reference" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="annotation reference" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="line number" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="page number" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="endnote reference" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="endnote text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="table of authorities" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="macro" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toa heading" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Closing" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Signature" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" UnhideWhenUsed="false" Name="Default Paragraph Font" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text Indent" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Message Header" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Salutation" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Date" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text First Indent" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text First Indent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Note Heading" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text Indent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text Indent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Block Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Hyperlink" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="FollowedHyperlink" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Document Map" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Plain Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="E-mail Signature" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Normal (Web)" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Acronym" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Address" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Cite" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Code" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Definition" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Keyboard" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Preformatted" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Sample" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Typewriter" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Variable" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" UnhideWhenUsed="false" Name="Normal Table" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="annotation subject" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="No List" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="1 / a / i" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="1 / 1.1 / 1.1.1" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Article / Section" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Simple 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Simple 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Simple 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Colorful 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Colorful 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Colorful 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table 3D effects 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table 3D effects 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table 3D effects 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Contemporary" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Elegant" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Professional" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Subtle 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Subtle 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Web 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Web 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Web 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Balloon Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Theme" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Placeholder Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="No Spacing" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="List Paragraph" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Quote" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Intense Quote" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6" ></w:LsdException>
</w:LatentStyles></xml><![endif]--><style>
@font-face{
font-family:"Times New Roman";
}
@font-face{
font-family:"<22><><EFBFBD><EFBFBD>";
}
@font-face{
font-family:"Wingdings";
}
@font-face{
font-family:"Calibri";
}
p.MsoNormal{
mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-parent:"";
margin:0pt;
margin-bottom:.0001pt;
mso-pagination:none;
text-align:justify;
text-justify:inter-ideograph;
font-family:Calibri;
mso-fareast-font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';
font-size:10.5000pt;
mso-font-kerning:1.0000pt;
}
span.10{
font-family:'Times New Roman';
}
span.msoIns{
mso-style-type:export-only;
mso-style-name:"";
text-decoration:underline;
text-underline:single;
color:blue;
}
span.msoDel{
mso-style-type:export-only;
mso-style-name:"";
text-decoration:line-through;
color:red;
}
table.MsoNormalTable{
mso-style-name:<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-parent:"";
mso-style-noshow:yes;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-padding-alt:0.0000pt 5.4000pt 0.0000pt 5.4000pt;
mso-para-margin:0pt;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-family:'Times New Roman';
font-size:10.0000pt;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;
}
@page{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}@page Section0{
margin-top:72.0000pt;
margin-bottom:72.0000pt;
margin-left:90.0000pt;
margin-right:90.0000pt;
size:595.3000pt 841.9000pt;
layout-grid:15.6000pt;
mso-header-margin:42.5500pt;
mso-footer-margin:49.6000pt;
}
div.Section0{page:Section0;}</style></head><body style="tab-interval:21pt;text-justify-trim:punctuation;" ><!--StartFragment--><div class="Section0" style="layout-grid:15.6000pt;" >
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򡰱<EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>ʽ<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ƽ̨<C6BD><EFBFBD><E1BDBB><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8>İ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ܱ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ͬ<EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>й¶<D0B9>κθ<CEBA><CEB8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ĵ<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾ǿ<EFBFBD>ҽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>˽Ȿ<EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD>ʵ<EFBFBD><EFBFBD>Ӧ<EFBFBD>á<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>Ҫʱ<EFBFBD>ɲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><EFBFBD>¡<EFBFBD><EFBFBD>޶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><EFBFBD>İ汾<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0755-86352225<32><35></p>
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD>߹<EFBFBD><EFBFBD>ɡ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>޸ı<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD><EFBFBD>֮ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD></p>
<h3>һ<EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></h3>
<p>(1<><31><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>û<EFBFBD><C3BB><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1>õ<EFBFBD><C3B5><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF>ܰ<EFBFBD><DCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3>û<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><E1BDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ф<EFBFBD><D0A4><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD><EFBFBD>ء<EFBFBD><D8A1>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>罻ý<E7BDBB><C3BD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>ͥ<EFBFBD><CDA5>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵȸ<CFB5><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD>֧<EFBFBD><D6A7>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD></p>
<p>(2<><32><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD>ǵķ<C7B5><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒʱ<C6B7><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1>û<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>ܱ<EFBFBD><DCB1>ɼ<EFBFBD><C9BC>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ϵͳ<CFB5><CDB3><EFBFBD>͡<EFBFBD><CDA1>豸ʶ<E8B1B8><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><>ַ<EFBFBD><D6B7> MAC <20><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPS <20><>λ<EFBFBD>á<EFBFBD><C3A1><EFBFBD><EEB6AF><EFBFBD>ݡ<EFBFBD><DDA1>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD>Ϊƫ<CEAA>á<EFBFBD><C3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD>֡<EFBFBD>ͼƬ<CDBC><C6AC>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD></p>
<p>(3<><33><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ<EFBFBD><D5BE>ý<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>񣨡<EFBFBD><F1A3A8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>΢<EFBFBD>š<EFBFBD><C5A1>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ܽ<EFBFBD><DCBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD>ǵĻ<C7B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ܰ<EFBFBD><DCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>̡<EFBFBD><CCA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><E1B1BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD>ֻҪ<D6BB><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC></p>
<p>(4<><34><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6>ض<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع涨<D8B9><E6B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>18<31><38><EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ͬ<EFBFBD><CDAC>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7>ͬ<EFBFBD><EFBFBD><E2B1BE>˽<EFBFBD><CBBD><EFBFBD>ߡ<EFBFBD></p>
<h3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></h3>
<p><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>İ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD>ܱ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD></p>
<p>(1<><31>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7>(2<><32><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>ά<EFBFBD><CEAC><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD></p>
<p>(3)<29><><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7>񡢲<EFBFBD>Ʒ<EFBFBD>ͻ<CDBB>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>ͨ<EFBFBD><CDA8></p>
<p>(4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2></p>
<p>(5<><35>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒʹ<C6B7><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EBB1BE>˾<EFBFBD><CBBE><EFBFBD><EFBFBD>ֱ<EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF>ƹ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>ش<EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ڲ<EFBFBD>ʹ<EFBFBD>á<EFBFBD></p>
<h3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ</h3>
<p>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ά<EFBFBD>ֺ͸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD>ڲ<EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>Ϊ<EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD>ܻὫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD>ݸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p>(1<><31><EFBFBD>ڱ<EFBFBD><DAB1>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ܻὫ<DCBB><E1BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>κα<CEBA><CEB1><EFBFBD>˾<EFBFBD><CBBE>Ȩ<EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>̻<EFBFBD><CCBB>ⲿ<EFBFBD><E2B2BF>Ӧ<EFBFBD>̣<EFBFBD><CCA3>Դٽ<D4B4><D9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA>й<EFBFBD>֮<EFBFBD><D6AE><EFBFBD>Ĺ<EFBFBD><C4B9>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪Ϥ<D6AA><CFA4>ͬ<EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD><C9BF>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD>ˡ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p>(2<><32><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><E1B9A9><EFBFBD>Ա㿪չ<E3BFAA><D5B9><EFBFBD>ǵ<EFBFBD>ҵ<EFBFBD>񣬵<EFBFBD><F1A3ACB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD>κδ<CEBA><CEB4><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE>Ȩʹ<C8A8>øõ<C3B8><C3B5><EFBFBD><EFBFBD>Ϻͣ<CFBA><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>Ҳ<EFBFBD><D2B2><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ķ<EFBFBD>ʹ<EFBFBD>á<EFBFBD></p>
<p>(3<><33><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>ϽȨ<CFBD><C8A8>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EEA1A2><EFBFBD>շ<EFBFBD><D5B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ϊִ<CEAA><D6B4><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>߻<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA1B7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><CFBD>з<EFBFBD><D0B7>ɿ<EFBFBD><C9BF></p>
<p>(4<><34><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>з<EFBFBD><D0B7><EFBFBD>թ<EFBFBD><D5A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC>͵<EFBFBD><CDB5><EFBFBD>ְȨ<D6B0><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD>򡢷<EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵķ<CFB5><C4B7>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ҫ<EFBFBD><EFBFBD><E1B9A9></p>
<p>(5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>ռ<EFBFBD><D5BC>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾֮<CBBE><D6AE>ת<EFBFBD>ƻ򴢴档<F2B4A2B4><E6A1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊͬ<CEAA><EFBFBD><E2B2A2>Ȩ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><C2B6>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD></p>
<p>(6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>򲿷<EFBFBD><F2B2BFB7>ʲ<EFBFBD><CAB2><EFBFBD><EFBFBD>ۡ<EFBFBD>ת<EFBFBD>á<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>ŷ<EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD></p>
<h3><EFBFBD>ġ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></h3>
<p>(1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ض<EFBFBD><D8B6>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EEB6AF><CAB1><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><E2B9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><DCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3>к<EFBFBD>ͷ<EFBFBD><CDB7>ͼƬ<CDBC><C6AC></p>
<p>(2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><E2B9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>á<EFBFBD></p>
<p>(3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵİ<DDB5>ȫ<EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>Ρ<EFBFBD></p>
<p>(4<><34><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>ƹ㱾<C6B9><E3B1BE>˾<EFBFBD><CBBE>Ʒ<EFBFBD><C6B7>Ŀ<EFBFBD>Ŀ<EFBFBD><C4BF>ܻ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD></p>
<h3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></h3>
<p>(1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵİ<DDB5>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>Ƿdz<C7B7><C7B3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>Ȩ<EFBFBD>ĽӴ<C4BD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ö<EFBFBD><C3B6>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>ʩ<EFBFBD><CAA9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>ȫ<EFBFBD><C8AB></p>
<p>(2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>ҵ<EFBFBD><D2B5>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>ȫ<EFBFBD><C8AB>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰٷ<DDB0>֮<EFBFBD>ٰ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ܡ<EFBFBD></p>
<p>(3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ر<EFBFBD><D8B1>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>ϢͨѶ<CDA8><D1B6>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1>رն<D8B1>λ<EFBFBD><CEBB><EFBFBD>ܵȣ<DCB5><C8A3><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD><EFBFBD>͹<EFBFBD><CDB9>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p>(4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>(5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ײ<EFBFBD><D7B2>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>ƽ̨<C6BD><CCA8><EFBFBD>Դٽ<D4B4><D9BD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD>׵<EFBFBD><D7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p>(6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>¼<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>ġ<EFBFBD></p>
<p>(7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κκ<CEBA><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ񾭹<C7B7><F1BEADB9><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><E2A1A3><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κλ<CEBA><CEBB><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>Ȩʹ<C8A8><CAB9><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й¶<D0B9><C2B6><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p>(8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD><D7A1><EFBFBD>κι<CEBA><CEB9>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7>ɹ涨<C9B9><E6B6A8><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>ͣ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽҪ<CABD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ʸ<EFBFBD><CAB8><EFBFBD></p>
<h3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񹤾߰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>SDK<EFBFBD><EFBFBD><EFBFBD><EFBFBD></h3>
<p>Bugly(<28><>ѶBugly)</p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> Ϊ<>˿<EFBFBD><CBBF>ٶ<EFBFBD>λӦ<CEBB>ò<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>⻹ԭCrash<73><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Crash<73>豸ͳ<E8B1B8><CDB3></p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>Crash<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Crash<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>̶߳<EFBFBD>ջ<EFBFBD><EFBFBD>ROM/RAM/SD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD>Ե<EFBFBD>״̬<D7B4><CCAC>App<70><70>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ϣ<EFBFBD><CFA2>IMEI<45><49><EFBFBD>豸ʶ<E8B1B8><CAB6><EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://privacy.qq.com/document/preview/fc748b3d96224fdb825ea79e132c1a56</p>
<p><EFBFBD>ٶȶ<EFBFBD>λ</p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <20><><EFBFBD><EFBFBD>ʵ<EFBFBD>ֶ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Android ID<49><44>IDFA<46><41>IDFV<46><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><EFBFBD><E6B1BE><EFBFBD>Ʒ<E8B1B8>Ƽ<EFBFBD><C6BC>ͺš<CDBA><C5A1><EFBFBD><E8B1B8><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://lbs.baidu.com/index.php?title=openprivacy#service-page-anchor-0-0</p>
<p><EFBFBD>ٶȵ<EFBFBD>ͼ</p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <20>ڵ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD></p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Android ID<49><44>IDFA<46><41>IDFV<46><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>д<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ô洢<C3B4><E6B4A2>Ϣ<EFBFBD><CFA2></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://lbs.baidu.com/index.php?title=openprivacy#service-page-anchor-0-1</p>
<p>QQ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> QQ<51><51>Ȩ<EFBFBD><C8A8>¼<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD></p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Android ID<49><44>IDFA<46><41>IDFV<46><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD>ڴ濨Ȩ<E6BFA8>޺<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>б<EFBFBD><D0B1><EFBFBD>Ϣ<EFBFBD><CFA2></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://wiki.connect.qq.com/qq%e4%ba%92%e8%81%94sdk%e9%9a%90%e7%a7%81%e4%bf%9d%e6%8a%a4%e5%a3%b0%e6%98%8e</p>
<p>΢<EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> ΢<><CEA2><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>¼<EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD></p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Android ID<49><44>IDFA<46><41>IDFV<46><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD>ڴ濨Ȩ<E6BFA8>޺<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>б<EFBFBD><D0B1><EFBFBD>Ϣ<EFBFBD><CFA2></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://support.weixin.qq.com/cgi-bin/mmsupportacctnodeweb-bin/pages/RYiYJkLOrQwu0nb8</p>
<p>mapbox</p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD> <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>߹滮</p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Android ID<49><44>IDFA<46><41>IDFV<46><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD>ڴ濨Ȩ<E6BFA8><C8A8>,<2C><>γ<EFBFBD><CEB3><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://www.mapbox.com/legal/privacy</p>
<p><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>û<EFBFBD><EFBFBD>豸Ψһ<EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ</p>
<p><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>Android ID<49><44>IMEI<45><49>IDFA<46><41>IDFV<46><56><EFBFBD>豸MAC<41><43>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ<EFBFBD><CFA2><EFBFBD>Ѱ<EFBFBD>װAPP<50><50>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>д<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ô洢<C3B4><E6B4A2>Ϣ<EFBFBD><CFA2></p>
<p><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>https://www.jiguang.cn/license/privacy</p>
<h3><EFBFBD>ߡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></h3>
<p><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>ɴ˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></p>
<p><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0755-86352225 <20><></p>
</div><!--EndFragment--></body></html>

View File

@@ -0,0 +1,71 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<p>Bei ABBI PET INC respektieren wir Ihre Privatsphäre und verpflichten uns, diese zu schützen. Diese Datenschutzerklärung beschreibt, wie wir Ihre Informationen erfassen, verwenden, schützen und vertraulich behandeln, wenn Sie unsere mobile App („App“) verwenden.</p>
<h3>1. Informationen, die wir erfassen</h3>
<ul>
<li>Persönliche Informationen: Wenn Sie ein Konto erstellen, erfassen wir möglicherweise persönliche Informationen wie Ihren Namen, Ihre E-Mail-Adresse und Ihre Telefonnummer.</li>
<li>Haustierinformationen: Wir erfassen Informationen über Ihre Haustiere, einschließlich Name, Alter, Rasse und Gewicht, um maßgeschneiderte Dienstleistungen anzubieten.</li>
<li>Nutzungsdaten: Wir erfassen Informationen darüber, wie Sie mit unserer App interagieren, z. B. die Funktionen, die Sie nutzen, und die in der App verbrachte Zeit.</li>
<li>Geräteinformationen: Wir können Informationen über das Gerät erfassen, das Sie für den Zugriff auf die App verwenden, einschließlich Gerätetyp, Betriebssystem und eindeutiger Gerätekennungen.</li>
<li>Standortdaten: Mit Ihrer Erlaubnis können wir Informationen über den Standort Ihres Geräts und Ihres Haustieres erfassen und verarbeiten, um standortbezogene Dienste bereitzustellen.</li>
</ul>
<h3>2. Wie wir Ihre Informationen verwenden</h3>
<ul>
<li>Zur Bereitstellung und Verbesserung unserer Dienste: Wir verwenden Ihre Informationen, um die App und unsere Dienste zu betreiben und zu verbessern.</li>
<li>Zur Kommunikation mit Ihnen: Wir können Ihre Informationen verwenden, um Ihnen Updates, Newsletter, Werbematerialien und andere Informationen zu senden, die für Sie von Interesse sein könnten.</li>
<li>Zur Personalisierung Ihrer Erfahrung: Wir verwenden Ihre Informationen, um die Inhalte und Dienste, die wir anbieten, an Ihre Bedürfnisse und Vorlieben anzupassen.</li>
<li>Zur Gewährleistung von Sicherheit und Compliance: Wir verwenden Ihre Informationen, um die Sicherheit unserer App und die Einhaltung geltender Gesetze und Vorschriften zu gewährleisten.</li>
</ul>
<h3>3. Datengeheimhaltung und Sicherheit</h3>
<ul>
<li>Datenverschlüsselung: Wir verwenden branchenübliche Verschlüsselungsprotokolle, um Ihre persönlichen Informationen bei der Übertragung und Speicherung zu schützen.</li>
<li>Zugangskontrollen: Der Zugriff auf Ihre persönlichen Informationen ist nur autorisiertem Personal gestattet, und wir implementieren strenge Zugangskontrollen, um unbefugten Zugriff zu verhindern.</li>
<li>Datenminimierung: Wir erfassen und speichern nur die Mindestmenge an persönlichen Informationen, die zur Erbringung unserer Dienste erforderlich ist.</li>
<li>Regelmäßige Audits: Wir führen regelmäßige Sicherheitsaudits und -bewertungen durch, um sicherzustellen, dass unsere Datenschutzmaßnahmen aktuell und effektiv sind.</li>
</ul>
<h3>4. Weitergabe Ihrer Informationen</h3>
<ul>
<li>Dienstleister: Wir können Ihre Informationen an Drittdienstleister weitergeben, die in unserem Auftrag Leistungen wie Hosting, Datenanalyse und Kundensupport erbringen. Diese Dienstleister sind vertraglich verpflichtet, Ihre Informationen vertraulich und sicher zu behandeln.</li>
<li>Gesetzliche Anforderungen: Wir können Ihre Informationen offenlegen, wenn dies gesetzlich vorgeschrieben ist oder als Reaktion auf eine rechtliche Anforderung.</li>
<li>Unternehmensübertragungen: Im Falle einer Fusion, Übernahme oder eines Verkaufs aller oder eines Teils unserer Vermögenswerte können Ihre Informationen an den neuen Eigentümer übertragen werden, vorbehaltlich der gleichen Datenschutzzusagen.</li>
</ul>
<h3>5. Ihre Auswahlmöglichkeiten</h3>
<ul>
<li>Kontoinformationen: Sie können Ihre Kontoinformationen über die Einstellungen der App aktualisieren oder löschen.</li>
<li>Marketingkommunikation: Sie können sich von Marketingmitteilungen abmelden, indem Sie den Anweisungen zum Abbestellen in diesen Mitteilungen folgen oder uns direkt kontaktieren.</li>
<li>Standortdaten: Sie können die Standortdienste über die Einstellungen Ihres Geräts deaktivieren, dies kann jedoch bestimmte Funktionen der App beeinträchtigen.</li>
</ul>
<h3>6. Sicherheit</h3>
<p>Wir ergreifen angemessene Maßnahmen, um Ihre Informationen vor unbefugtem Zugriff, Verwendung oder Offenlegung zu schützen. Es gibt jedoch keine zu 100 % sichere Methode der Übertragung über das Internet oder der elektronischen Speicherung.</p>
<h3>7. Datenschutz für Kinder</h3>
<p>Unsere App ist nicht für die Nutzung durch Kinder unter 13 Jahren bestimmt, und wir erfassen wissentlich keine persönlichen Informationen von Kindern unter 13 Jahren. Wenn wir feststellen, dass wir persönliche Informationen von einem Kind unter 13 Jahren erfasst haben, werden wir Schritte unternehmen, um diese Informationen zu löschen.</p>
<h3>8. Änderungen dieser Datenschutzerklärung</h3>
<p>Wir können diese Datenschutzerklärung von Zeit zu Zeit aktualisieren. Wir werden Sie über Änderungen informieren, indem wir die neue Datenschutzerklärung in der App veröffentlichen. Es wird empfohlen, diese Datenschutzerklärung regelmäßig auf Änderungen zu überprüfen.</p>
<h3>9. Kontaktieren Sie uns</h3>
<p>Wenn Sie Fragen zu dieser Datenschutzerklärung haben, kontaktieren Sie uns bitte unter:</p>
<p>ABBI PET INC</p>
<p>10700 Richmond Ave Suite 143</p>
<p>Houston, TX 77042</p>
<p>E-Mail: support@abbidot.com</p>
</div>
</body></html>

View File

@@ -0,0 +1,71 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<p>Chez ABBI PET INC, nous respectons et nous engageons à protéger votre vie privée. Cette politique de confidentialité décrit comment nous collectons, utilisons, protégeons et conservons vos informations de manière confidentielle lorsque vous utilisez notre application mobile (« App »).</p>
<h3>1. Informations que nous collectons</h3>
<ul>
<li>Informations personnelles : Lorsque vous créez un compte, nous pouvons collecter des informations personnelles telles que votre nom, votre adresse e-mail et votre numéro de téléphone.</li>
<li>Informations sur l'animal : Nous collectons des informations sur vos animaux, notamment leur nom, âge, race et poids, afin de fournir des services personnalisés.</li>
<li>Données d'utilisation : Nous collectons des informations sur la manière dont vous interagissez avec notre App, telles que les fonctionnalités que vous utilisez et le temps passé sur l'App.</li>
<li>Informations sur l'appareil : Nous pouvons collecter des informations sur l'appareil que vous utilisez pour accéder à l'App, notamment le type d'appareil, le système d'exploitation et les identifiants uniques de l'appareil.</li>
<li>Données de localisation : Avec votre autorisation, nous pouvons collecter et traiter des informations sur la localisation de votre appareil et de votre animal afin de fournir des services basés sur la localisation.</li>
</ul>
<h3>2. Comment nous utilisons vos informations</h3>
<ul>
<li>Pour fournir et améliorer nos services : Nous utilisons vos informations pour exploiter et améliorer l'App et nos services.</li>
<li>Pour communiquer avec vous : Nous pouvons utiliser vos informations pour vous envoyer des mises à jour, des newsletters, des documents marketing et d'autres informations susceptibles de vous intéresser.</li>
<li>Pour personnaliser votre expérience : Nous utilisons vos informations pour adapter le contenu et les services que nous proposons afin de mieux répondre à vos besoins et préférences.</li>
<li>Pour assurer la sécurité et la conformité : Nous utilisons vos informations pour assurer la sécurité de notre App et la conformité aux lois et réglementations applicables.</li>
</ul>
<h3>3. Confidentialité et sécurité des données</h3>
<ul>
<li>Chiffrement des données : Nous utilisons des protocoles de chiffrement conformes aux normes de l'industrie pour protéger vos informations personnelles lors de la transmission et du stockage.</li>
<li>Contrôles d'accès : L'accès à vos informations personnelles est limité au personnel autorisé uniquement, et nous mettons en œuvre des contrôles d'accès stricts pour empêcher tout accès non autorisé.</li>
<li>Minimisation des données : Nous ne collectons et ne conservons que la quantité minimale d'informations personnelles nécessaire pour fournir nos services.</li>
<li>Audits réguliers : Nous effectuons des audits et des évaluations de sécurité réguliers pour nous assurer que nos mesures de protection des données sont à jour et efficaces.</li>
</ul>
<h3>4. Partage de vos informations</h3>
<ul>
<li>Prestataires de services : Nous pouvons partager vos informations avec des prestataires de services tiers qui effectuent des services en notre nom, tels que l'hébergement, l'analyse de données et l'assistance client. Ces prestataires de services sont contractuellement tenus de garder vos informations confidentielles et sécurisées.</li>
<li>Exigences légales : Nous pouvons divulguer vos informations si la loi l'exige ou en réponse à une demande légale.</li>
<li>Transferts d'entreprise : En cas de fusion, d'acquisition ou de vente de tout ou partie de nos actifs, vos informations peuvent être transférées au nouveau propriétaire, sous réserve des mêmes engagements en matière de protection des données.</li>
</ul>
<h3>5. Vos choix</h3>
<ul>
<li>Informations sur le compte : Vous pouvez mettre à jour ou supprimer les informations de votre compte via les paramètres de l'App.</li>
<li>Communications marketing : Vous pouvez vous désabonner des communications marketing de notre part en suivant les instructions de désabonnement dans ces communications ou en nous contactant directement.</li>
<li>Données de localisation : Vous pouvez désactiver les services de localisation via les paramètres de votre appareil, mais cela peut affecter certaines fonctionnalités de l'App.</li>
</ul>
<h3>6. Sécurité</h3>
<p>Nous prenons des mesures raisonnables pour protéger vos informations contre tout accès, utilisation ou divulgation non autorisé. Cependant, aucune méthode de transmission sur Internet ou méthode de stockage électronique n'est sécurisée à 100 %.</p>
<h3>7. Confidentialité des enfants</h3>
<p>Notre App n'est pas destinée à être utilisée par des enfants de moins de 13 ans, et nous ne collectons pas sciemment d'informations personnelles auprès d'enfants de moins de 13 ans. Si nous découvrons que nous avons collecté des informations personnelles auprès d'un enfant de moins de 13 ans, nous prendrons des mesures pour supprimer ces informations.</p>
<h3>8. Modifications de cette politique de confidentialité</h3>
<p>Nous pouvons mettre à jour cette politique de confidentialité de temps à autre. Nous vous informerons de toute modification en publiant la nouvelle politique de confidentialité dans l'App. Il vous est conseillé de consulter régulièrement cette politique de confidentialité pour toute modification.</p>
<h3>9. Contactez-nous</h3>
<p>Si vous avez des questions concernant cette politique de confidentialité, veuillez nous contacter à :</p>
<p>ABBI PET INC</p>
<p>10700 Richmond Ave Suite 143</p>
<p>Houston, TX 77042</p>
<p>E-mail : support@abbidot.com</p>
</div>
</body></html>

View File

@@ -0,0 +1,71 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<p>在 ABBI PET INC我们尊重并致力于保护您的隐私。本隐私政策说明了当您使用我们的移动应用程序"App")时,我们如何收集、使用、保护您的信息并对您的信息予以保密。</p>
<h3>1. 我们收集的信息</h3>
<ul>
<li>个人信息:当您创建账户时,我们可能会收集您的姓名、电子邮箱地址和电话号码等个人信息。</li>
<li>宠物信息:我们收集宠物的相关信息,包括其姓名、年龄、品种和体重,以提供个性化的服务。</li>
<li>使用数据:我们收集有关您如何与 App 交互的信息,例如您使用的功能以及在 App 上停留的时间。</li>
<li>设备信息:我们可能会收集您用于访问 App 的设备信息,包括设备类型、操作系统和唯一设备标识符。</li>
<li>位置数据:在获得您的许可后,我们可能会收集并处理有关您设备位置和宠物位置的信息,以提供基于位置的服务。</li>
</ul>
<h3>2. 我们如何使用您的信息</h3>
<ul>
<li>提供和改进我们的服务:我们使用您的信息来运营和改进 App 及我们的服务。</li>
<li>与您沟通:我们可能会使用您的信息向您发送更新、新闻通讯、营销材料以及其他可能令您感兴趣的信息。</li>
<li>个性化您的体验:我们使用您的信息来调整我们提供的内容和服务,以更好地满足您的需求和偏好。</li>
<li>确保安全与合规:我们使用您的信息来确保 App 的安全并遵守适用的法律法规。</li>
</ul>
<h3>3. 数据保密与安全</h3>
<ul>
<li>数据加密:我们采用行业标准加密协议,在传输和存储过程中保护您的个人信息。</li>
<li>访问控制:您的个人信息仅限授权人员访问,我们实施严格的访问控制以防止未经授权的访问。</li>
<li>数据最小化:我们仅收集和保留提供服务所需的最少量个人信息。</li>
<li>定期审计:我们定期进行安全审计和评估,以确保我们的数据保护措施保持最新且有效。</li>
</ul>
<h3>4. 信息的共享</h3>
<ul>
<li>服务提供商:我们可能会与代表我们提供服务的第三方服务提供商共享您的信息,例如托管、数据分析和客户支持。这些服务提供商受合同约束,须对您的信息保密并确保安全。</li>
<li>法律要求:如果法律要求或作为对法律请求的回应,我们可能会披露您的信息。</li>
<li>业务转让:在发生合并、收购或出售全部或部分资产的情况下,您的信息可能会转让给新所有者,但须遵守相同的数据保护承诺。</li>
</ul>
<h3>5. 您的选择</h3>
<ul>
<li>账户信息:您可以通过 App 的设置更新或删除您的账户信息。</li>
<li>营销通讯:您可以按照那些通讯中的退订说明或直接联系我们,选择不再接收我们的营销通讯。</li>
<li>位置数据:您可以通过设备设置禁用定位服务,但这可能会影响 App 的某些功能。</li>
</ul>
<h3>6. 安全</h3>
<p>我们采取合理措施保护您的信息免受未经授权的访问、使用或披露。然而,任何通过互联网传输的方法或电子存储方法都不是 100% 安全的。</p>
<h3>7. 儿童隐私</h3>
<p>我们的 App 不面向 13 岁以下的儿童使用,我们也不会有意收集 13 岁以下儿童的个人信息。如果我们发现我们收集了 13 岁以下儿童的个人信息,我们将采取措施删除该信息。</p>
<h3>8. 本隐私政策的变更</h3>
<p>我们可能会不时更新本隐私政策。我们将通过在 App 内发布新的隐私政策来通知您任何变更。建议您定期查阅本隐私政策以了解任何变更。</p>
<h3>9. 联系我们</h3>
<p>如果您对本隐私政策有任何疑问,请通过以下方式联系我们:</p>
<p>ABBI PET INC</p>
<p>10700 Richmond Ave Suite 143</p>
<p>Houston, TX 77042</p>
<p>电子邮箱support@abbidot.com</p>
</div>
</body></html>

View File

@@ -0,0 +1,54 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<h2>Allgemeine Geschäftsbedingungen für das ABBIDOT Tracker-Abonnement</h2>
<hr>
<h3>1. Abonnementpläne</h3>
<p>ABBIDOT bietet drei Abonnementpläne:</p>
<ul>
<li>3-Monats-Plan</li>
<li>1-Jahres-Plan</li>
<li>2-Jahres-Plan</li>
</ul>
<p>Alle Abonnements werden am Ende jedes Abrechnungszyklus automatisch verlängert, sofern sie nicht vom Nutzer gekündigt werden.</p>
<p>Nutzer können ihr Abonnement jederzeit kündigen. Nach der Kündigung bleibt das Abonnement bis zum Ende der aktuellen Abrechnungsperiode aktiv, und es werden keine weiteren Gebühren erhoben.</p>
<p>Das Gerät funktioniert während der aktiven Abonnementperiode weiterhin normal.</p>
<hr>
<h3>2. Rückerstattungsrichtlinie</h3>
<h4>2.1 Automatische Rückerstattung (innerhalb von 48 Stunden)</h4>
<p>Alle Abonnementkäufe sind innerhalb von 48 Stunden nach Zahlung für eine <strong>volle automatische Rückerstattung</strong> berechtigt. Rückerstattungen werden automatisch ohne manuelle Prüfung verarbeitet.</p>
<hr>
<h4>2.2 Standard-Rückerstattungszeitraum (30 Tage)</h4>
<p>Nach der anfänglichen 48-Stunden-Periode können Nutzer innerhalb von <strong>30 Tagen nach dem Kauf</strong> eine Rückerstattung beantragen.</p>
<ul>
<li>Alle Abonnementpläne (3 Monate, 1 Jahr, 2 Jahre) sind berechtigt</li>
<li>Rückerstattungsanträge unterliegen der Prüfung und Genehmigung</li>
<li>Rückerstattungen können basierend auf Nutzung und Dienstleistungsverbrauch teilweise angepasst werden</li>
</ul>
<hr>
<h4>2.3 Keine Rückerstattung nach 30 Tagen</h4>
<p>Abonnements, die älter als 30 Tage sind, sind nicht erstattungsfähig.</p>
<hr>
<h3>3. Abonnementkündigung</h3>
<p>Nutzer können ihr Abonnement jederzeit kündigen.</p>
<ul>
<li>Die Kündigung stoppt zukünftige Abrechnungen</li>
<li>Das aktuelle Abonnement bleibt bis zum Ende der Abrechnungsperiode aktiv</li>
<li>Nach der Kündigung wird keine teilweise Rückerstattung ausgestellt, sofern nicht innerhalb des Rückerstattungszeitraums</li>
</ul>
<hr>
<h3>4. Richtlinienaktualisierungen</h3>
<p>ABBIDOT behält sich das Recht vor, diese Allgemeinen Geschäftsbedingungen jederzeit zu aktualisieren oder zu ändern. Nutzer werden über wesentliche Änderungen informiert.</p>
<p>Durch das Abonnieren von ABBIDOT-Diensten stimmen Sie diesen Bedingungen zu.</p>
<hr>
<h3>5. Kundenservice</h3>
<p>Wenn Sie auf Schwierigkeiten stoßen, kontaktieren Sie uns bitte unter:</p>
<p><a title="Mail to subscription@abbidot.com" href="subscription@abbidot.com">subscription@abbidot.com</a></p>
<p>Unser Support-Team wird Ihnen so schnell wie möglich helfen.</p>
</div>
</body></html>

View File

@@ -2,19 +2,50 @@
<body> <body>
<div> <div>
<h3>ABBIDOT Tracker Subscription Terms and Conditions <h2>ABBIDOT Tracker Subscription Terms and Conditions</h2>
</h3> <hr>
<p>1.Subscription Plans Users can choose between Basic and Prime plans. Basic plan subscribers can upgrade to Prime at any time. Prime plan subscribers can't change to Basic plan. <h3>1. Subscription Plans</h3>
<p>ABBIDOT offers three subscription plans:</p>
<p>2.Refund Policy Automatic Refund (Within 48 Hours): Full refund available if canceled within 48 hours of subscription. Processed automatically without manual review. Manual Refund (After 48 Hours): For subscriptions older than 48 hours but within 1 month, refunds require manual approval. Eligibility: Only applicable to annual (1-year) subscriptions. Refunds may be prorated based on usage. No Refund After 1 Month: Subscriptions active for over 1 month are non-refundable.</p> <ul>
<li>3-Month Plan</li>
<p>3.Pausing Subscription & Number Retention Users may pause their subscription. Number Retention: Paused numbers can be retained for up to 1 year. A small fee will apply for number retention during the pause period. Failure to reactivate within 1 year may result in number release.</p> <li>1-Year Plan</li>
<li>2-Year Plan</li>
<p>4.Modifications ABBIDOT reserves the right to update these terms. Users will be notified of changes. By subscribing, you agree to these terms.</p> </ul>
<p>All subscriptions are automatically renewed at the end of each billing cycle unless canceled by the user.</p>
<p>For support contact:</p> <p>Users may cancel their subscription at any time. After cancellation, the subscription will remain active until the end of the current billing period, and no further charges will be applied.</p>
<p>support@abbidot.com</p> <p>The device will continue to function normally during the active subscription period.</p>
<hr>
<h3>2. Refund Policy</h3>
<h4>2.1 Automatic Refund (Within 48 Hours)</h4>
<p>All subscription purchases are eligible for a <strong>full automatic refund within 48 hours</strong> of payment. Refunds will be processed automatically without manual review.</p>
<hr>
<h4>2.2 Standard Refund Window (30 Days)</h4>
<p>After the initial 48-hour period, users may request a refund within <strong>30 days of purchase.</strong></p>
<ul>
<li>All subscription plans (3-Month, 1-Year, 2-Year) are eligible</li>
<li>Refund requests are subject to review and approval</li>
<li>Refunds may be partially adjusted based on usage and service consumption</li>
</ul>
<hr>
<h4>2.3 No Refund After 30 Days</h4>
<p>Subscriptions older than 30 days are non-refundable.</p>
<hr>
<h3>3. Subscription Cancellation</h3>
<p>Users may cancel their subscription at any time.</p>
<ul>
<li>Cancellation stops future billing</li>
<li>The current subscription remains active until the end of the billing period</li>
<li>No partial refund is issued after cancellation unless within the refund window</li>
</ul>
<hr>
<h3>4. Policy Updates</h3>
<p>ABBIDOT reserves the right to update or modify these Terms and Conditions at any time. Users will be notified of significant changes.</p>
<p>By subscribing to ABBIDOT services, you agree to these terms.</p>
<hr>
<h3>5. Customer Support</h3>
<p>If you encounter any difficulties, please contact us at:</p>
<p><a title="Mail to subscription@abbidot.com" href="subscription@abbidot.com">subscription@abbidot.com</a></p>
<p>Our support team will assist you as soon as possible.</p>
</div> </div>

View File

@@ -0,0 +1,54 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<h2>Conditions générales de l'abonnement ABBIDOT Tracker</h2>
<hr>
<h3>1. Plans d'abonnement</h3>
<p>ABBIDOT propose trois plans d'abonnement :</p>
<ul>
<li>Plan de 3 mois</li>
<li>Plan de 1 an</li>
<li>Plan de 2 ans</li>
</ul>
<p>Tous les abonnements sont automatiquement renouvelés à la fin de chaque cycle de facturation, sauf annulation par l'utilisateur.</p>
<p>Les utilisateurs peuvent annuler leur abonnement à tout moment. Après l'annulation, l'abonnement restera actif jusqu'à la fin de la période de facturation en cours, et aucun frais supplémentaire ne sera appliqué.</p>
<p>L'appareil continuera de fonctionner normalement pendant la période d'abonnement active.</p>
<hr>
<h3>2. Politique de remboursement</h3>
<h4>2.1 Remboursement automatique (dans les 48 heures)</h4>
<p>Tous les achats d'abonnement sont éligibles à un <strong>remboursement automatique intégral dans les 48 heures</strong> suivant le paiement. Les remboursements seront traités automatiquement sans examen manuel.</p>
<hr>
<h4>2.2 Fenêtre de remboursement standard (30 jours)</h4>
<p>Après la période initiale de 48 heures, les utilisateurs peuvent demander un remboursement dans les <strong>30 jours suivant l'achat.</strong></p>
<ul>
<li>Tous les plans d'abonnement (3 mois, 1 an, 2 ans) sont éligibles</li>
<li>Les demandes de remboursement sont soumises à examen et approbation</li>
<li>Les remboursements peuvent être partiellement ajustés en fonction de l'utilisation et de la consommation de services</li>
</ul>
<hr>
<h4>2.3 Aucun remboursement après 30 jours</h4>
<p>Les abonnements de plus de 30 jours ne sont pas remboursables.</p>
<hr>
<h3>3. Annulation de l'abonnement</h3>
<p>Les utilisateurs peuvent annuler leur abonnement à tout moment.</p>
<ul>
<li>L'annulation arrête la facturation future</li>
<li>L'abonnement en cours reste actif jusqu'à la fin de la période de facturation</li>
<li>Aucun remboursement partiel n'est effectué après l'annulation, sauf dans la fenêtre de remboursement</li>
</ul>
<hr>
<h3>4. Mises à jour de la politique</h3>
<p>ABBIDOT se réserve le droit de mettre à jour ou de modifier ces Conditions générales à tout moment. Les utilisateurs seront informés des modifications importantes.</p>
<p>En vous abonnant aux services ABBIDOT, vous acceptez ces conditions.</p>
<hr>
<h3>5. Service client</h3>
<p>Si vous rencontrez des difficultés, veuillez nous contacter à :</p>
<p><a title="Mail to subscription@abbidot.com" href="subscription@abbidot.com">subscription@abbidot.com</a></p>
<p>Notre équipe d'assistance vous aidera dans les meilleurs délais.</p>
</div>
</body></html>

View File

@@ -0,0 +1,54 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<h2>ABBIDOT 追踪器订阅条款与条件</h2>
<hr>
<h3>1. 订阅计划</h3>
<p>ABBIDOT 提供三种订阅计划:</p>
<ul>
<li>3 个月计划</li>
<li>1 年计划</li>
<li>2 年计划</li>
</ul>
<p>所有订阅在每个计费周期结束时自动续费,除非用户取消。</p>
<p>用户可随时取消订阅。取消后,订阅将在当前计费周期结束前保持有效,且不会产生额外费用。</p>
<p>在有效订阅期内,设备将继续正常运行。</p>
<hr>
<h3>2. 退款政策</h3>
<h4>2.1 自动退款48 小时内)</h4>
<p>所有订阅购买均可在付款后 <strong>48 小时内获得全额自动退款</strong>。退款将自动处理,无需人工审核。</p>
<hr>
<h4>2.2 标准退款窗口30 天)</h4>
<p>在初始 48 小时之后,用户可在 <strong>购买后 30 天内</strong>申请退款。</p>
<ul>
<li>所有订阅计划3 个月、1 年、2 年)均适用</li>
<li>退款申请需经审核和批准</li>
<li>退款可能会根据使用情况和服务消耗进行部分调整</li>
</ul>
<hr>
<h4>2.3 30 天后不予退款</h4>
<p>超过 30 天的订阅不可退款。</p>
<hr>
<h3>3. 订阅取消</h3>
<p>用户可随时取消订阅。</p>
<ul>
<li>取消将停止未来的计费</li>
<li>当前订阅在计费周期结束前仍保持有效</li>
<li>取消后不予部分退款,但在退款窗口期内除外</li>
</ul>
<hr>
<h3>4. 政策更新</h3>
<p>ABBIDOT 保留随时更新或修改这些条款与条件的权利。重大变更将通知用户。</p>
<p>订阅 ABBIDOT 服务即表示您同意这些条款。</p>
<hr>
<h3>5. 客户支持</h3>
<p>如果您遇到任何困难,请通过以下方式联系我们:</p>
<p><a title="Mail to subscription@abbidot.com" href="subscription@abbidot.com">subscription@abbidot.com</a></p>
<p>我们的支持团队将尽快为您提供帮助。</p>
</div>
</body></html>

View File

@@ -1,476 +0,0 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=gb2312" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title><!--[if gte mso 9]><xml><o:DocumentProperties><o:Author>Administrator</o:Author><o:LastAuthor>Administrator</o:LastAuthor><o:Revision>1</o:Revision><o:Pages>4</o:Pages><o:Characters>4655</o:Characters></o:DocumentProperties><o:CustomDocumentProperties><o:KSOProductBuildVer dt:dt="string" >2052-11.1.0.11875</o:KSOProductBuildVer><o:ICV dt:dt="string" >FBB05287C6EE4A78BF914DBD714C3B04</o:ICV></o:CustomDocumentProperties></xml><![endif]--><!--[if gte mso 9]><xml><o:OfficeDocumentSettings></o:OfficeDocumentSettings></xml><![endif]--><!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8 <20><></w:DrawingGridVerticalSpacing><w:View>Web</w:View><w:Compatibility><w:AdjustLineHeightInTable/><w:DontGrowAutofit/><w:BalanceSingleByteDoubleByteWidth/><w:DoNotExpandShiftReturn/><w:UseFELayout/></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]--><!--[if gte mso 9]><xml><w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="260" >
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="heading 9" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index 9" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toc 9" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Normal Indent" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="footnote text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="annotation text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="header" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="footer" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="index heading" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" QFormat="true" Name="caption" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="table of figures" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="envelope address" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="envelope return" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="footnote reference" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="annotation reference" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="line number" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="page number" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="endnote reference" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="endnote text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="table of authorities" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="macro" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="toa heading" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Bullet 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Number 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Closing" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Signature" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" UnhideWhenUsed="false" Name="Default Paragraph Font" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text Indent" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="List Continue 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Message Header" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Salutation" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Date" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text First Indent" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text First Indent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Note Heading" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text Indent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Body Text Indent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Block Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Hyperlink" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="FollowedHyperlink" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Document Map" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Plain Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="E-mail Signature" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Normal (Web)" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Acronym" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Address" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Cite" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Code" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Definition" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Keyboard" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Preformatted" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Sample" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Typewriter" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="HTML Variable" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" UnhideWhenUsed="false" Name="Normal Table" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="annotation subject" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="No List" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="1 / a / i" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="1 / 1.1 / 1.1.1" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Article / Section" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Simple 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Simple 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Simple 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Classic 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Colorful 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Colorful 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Colorful 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Columns 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 7" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table List 8" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table 3D effects 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table 3D effects 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table 3D effects 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Contemporary" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Elegant" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Professional" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Subtle 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Subtle 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Web 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Web 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Web 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Balloon Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid" ></w:LsdException>
<w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" Name="Table Theme" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Placeholder Text" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="No Spacing" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="List Paragraph" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Quote" ></w:LsdException>
<w:LsdException Locked="false" Priority="99" SemiHidden="false" Name="Intense Quote" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5" ></w:LsdException>
<w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6" ></w:LsdException>
<w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6" ></w:LsdException>
</w:LatentStyles></xml><![endif]--><style>
@font-face{
font-family:"Times New Roman";
}
@font-face{
font-family:"<22><><EFBFBD><EFBFBD>";
}
@font-face{
font-family:"Wingdings";
}
@font-face{
font-family:"Calibri";
}
p.MsoNormal{
mso-style-name:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-parent:"";
margin:0pt;
margin-bottom:.0001pt;
mso-pagination:none;
text-align:justify;
text-justify:inter-ideograph;
font-family:Calibri;
mso-fareast-font-family:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';
font-size:10.5000pt;
mso-font-kerning:1.0000pt;
}
span.10{
font-family:'Times New Roman';
}
span.msoIns{
mso-style-type:export-only;
mso-style-name:"";
text-decoration:underline;
text-underline:single;
color:blue;
}
span.msoDel{
mso-style-type:export-only;
mso-style-name:"";
text-decoration:line-through;
color:red;
}
table.MsoNormalTable{
mso-style-name:<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
mso-style-parent:"";
mso-style-noshow:yes;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-padding-alt:0.0000pt 5.4000pt 0.0000pt 5.4000pt;
mso-para-margin:0pt;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-family:'Times New Roman';
font-size:10.0000pt;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;
}
@page{mso-page-border-surround-header:no;
mso-page-border-surround-footer:no;}@page Section0{
margin-top:72.0000pt;
margin-bottom:72.0000pt;
margin-left:90.0000pt;
margin-right:90.0000pt;
size:595.3000pt 841.9000pt;
layout-grid:15.6000pt;
mso-header-margin:42.5500pt;
mso-footer-margin:49.6000pt;
}
div.Section0{page:Section0;}</style></head><body style="tab-interval:21pt;text-justify-trim:punctuation;" ><!--StartFragment--><div class="Section0" style="layout-grid:15.6000pt;" ><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD></font>ABBIDOT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD>лʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD></font><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򡰱<EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>Ʒ<EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒǰ<EFBFBD><EFBFBD>ϸ<EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>IJ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κι<EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD>ʹ<EFBFBD>ö<EFBFBD><EFBFBD>޽<EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD>з<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD>ܻ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD>ɽ<EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ѽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸<EFBFBD><EFBFBD>º<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" >һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD></font>18<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>ø<EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>󣬲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD>ض<EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ع涨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>18<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD><EFBFBD><E1B9A9>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>׼ȷ<D7BC><C8B7><EFBFBD><EFBFBD><EFBFBD>µĸ<C2B5><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>ע<EFBFBD>ᡣ(2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ί<EFBFBD><CEAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>˻<EFBFBD><CBBB><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>˻<EFBFBD><CBBB>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD>ǡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κκ<CEBA><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ񾭹<C7B7><F1BEADB9><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><E2A1A3><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>Ȩʹ<C8A8><CAB9><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ʒ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>ͼ<EFBFBD>Ρ<EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¡<EFBFBD><C2A1><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5BBAD>Ӧ<EFBFBD>ó<EFBFBD><C3B3>򡢽<EFBFBD><F2A1A2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>Ϊ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>Ȩʹ<C8A8>õĵ<C3B5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD>̱ꡢר<EAA1A2><D7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ˵<C8B7><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̱ꡢ<CCB1><EAA1A2>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ۡ<EFBFBD><DBA1><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺͱ<C6BA>־<EFBFBD><D6BE><EFBFBD>ƣ<EFBFBD>Ϊ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>С<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD><C9A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>IJ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>̱ꡢ<CCB1><EAA1A2>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ۡ<EFBFBD><DBA1><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><E2B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>κδ<CEBA><CEB4>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>ӡ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵ġ<CBB5><C4A1><EFBFBD><EFBFBD>޵ġ<DEB5><C4A1><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>õġ<C3B5><C4A1><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ɵġ<C9B5><C4A1>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD>Ľ<EFBFBD>Ϊ<EFBFBD><CEAA>Ԥ<EFBFBD><D4A4>ʹ<EFBFBD><CAB9>Ŀ<EFBFBD><C4BF><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڷ<EFBFBD><DAB7>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD>ز<EFBFBD>ʹ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>̱<EFBFBD><CCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ʶ<D6AA><CAB6>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>ȨȨ<C8A8><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>޸<EFBFBD><DEB8><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(5<><35><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0B6BD><EFBFBD><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>κ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵķ<DDB5><C4B7><EFBFBD>Ȩ<EFBFBD>޵<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>֪ʶ<D6AA><CAB6>Ȩ<EFBFBD><C8A8>ɾ<EFBFBD><C9BE><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݵ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޵<EFBFBD>ʹ<EFBFBD><CAB9>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD>κ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD>ķ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(6<><36><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ض<EFBFBD>ʹ<EFBFBD><CAB9>Ȩ<EFBFBD><C8A8><EFBFBD>⣬δ<E2A3AC><CEB4><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><E2A3AC>ʹ<EFBFBD>á<EFBFBD><C3A1><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><E0BCAD><EFBFBD><EFBFBD><EFBFBD>ء<EFBFBD><D8A1><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۡ<EFBFBD><DBA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>κη<CEBA>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݡ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>Ȩʹ<C8A8><CAB9><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>غʹ<D8BA><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>Դ˲<D4B4><CBB2>е<EFBFBD><D0B5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>Ρ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD></font><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD>κδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8>κη<CEBA><CEB7><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD>ص<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>Ф<EFBFBD><D0A4>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD><DAB0><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>;<EFBFBD><CDBE><EFBFBD>ڵ<EFBFBD><DAB5>κ<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1>޸ġ<DEB8><C4A1><EFBFBD><EFBFBD><EFBFBD><EBA1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>ת<EFBFBD><D7AA><EFBFBD>ɡ<EFBFBD><C9A1>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD>õ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD>ѱ<EFBFBD>ת<EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B7A2><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE>ڷDZ<DAB7><C7B1>ܵĻ<DCB5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>õġ<C3B5><C4A1>Ƕ<EFBFBD><C7B6>ҵġ<D2B5><C4A1><EFBFBD>ת<EFBFBD>õġ<C3B5><C4A1><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ɵġ<C9B5><C4A1><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD>ġ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>Χ<E7B7B6><CEA7><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD><C9A1><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>κ<EFBFBD>Ŀ<EFBFBD><C4BF>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸Ļ<DEB8><C4BB>Ľ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ġ<EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD>Ϊרҵ<EFBFBD><EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ȩɸѡ<C9B8><D1A1><EFBFBD><EFBFBD><E0B6BD>ɾ<EFBFBD><C9BE><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD>֤Υ<D6A4><CEA5><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD><EFBFBD>𷢲<EFBFBD><F0B7A2B2>κ<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1>󵼵ġ<F3B5BCB5>ɧ<EFBFBD>ŵġ<C5B5>ɫ<EFBFBD><C9AB><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵġ<D3B5><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĻ<D3B5><C4BB><EFBFBD><EFBFBD>˷<EFBFBD><CBB7>еġ<D0B5><C4A1><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD>Ļ<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κξ<CEBA><CEBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD><EFBFBD>𷢲<EFBFBD><F0B7A2B2>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>δӵ<CEB4><D3B5>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD><D0B3>ֻ<EFBFBD><D6BB><EFBFBD><E1B5BD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ɡ<EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD>𷢲<EFBFBD><F0B7A2B2>κο<CEBA><CEBF><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><E7BBB0><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" >Ϣ<EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(5<><35><EFBFBD><EFBFBD><EFBFBD>𷢲<EFBFBD><F0B7A2B2>κι<CEBA><CEB9><EFBFBD><E6A1A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κε<CEBA><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>Ȩ<EFBFBD><C8A8></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>¡<EFBFBD>αװ<CEB1><D7B0><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>֯<EFBFBD><D6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>Զ<EFBFBD>ץȡ<D7A5><C8A1><EFBFBD>ھ<EFBFBD><DABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>ݲɼ<DDB2><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(8<><38><EFBFBD><EFBFBD><EFBFBD>𷢲<EFBFBD><F0B7A2B2>κο<CEBA><CEBF>ܹ<EFBFBD><DCB9>ܡ<EFBFBD><DCA1><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>۸<EFBFBD>ƽ̨<C6BD><CCA8>ȫϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>κο<CEBA><CEBF>ܸ<EFBFBD><DCB8>š<EFBFBD><C5A1>𻵡<EFBFBD><F0BBB5A1><EFBFBD><EFBFBD>ơ<EFBFBD>ʹ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD><C9BB><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD>ݡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>վ<EFBFBD><EFBFBD>ý<EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD>Ͽɡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ге<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>ա<EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>IJ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7>ա<EFBFBD>(2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>κ<EFBFBD><CEBA><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7>ա<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5>Ӳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>֤ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵġ<CFB5><C4A1>޲<EFBFBD><DEB2><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1>κδ<CEBA><CEB4>󶼽<EFBFBD><F3B6BCBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5>Ӳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>ʽ<EFBFBD>ij<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7>񼰲<EFBFBD>Ʒ<EFBFBD><C6B7>׼ȷ<D7BC>ԡ<EFBFBD><D4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>ԡ<EFBFBD><D4A1>ɿ<EFBFBD><C9BF>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD>ŵ<EFBFBD><C5B5></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ͨ<EFBFBD><CDA8>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>ȡ<EFBFBD>û<EFBFBD><C3BB>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>֤<EFBFBD><D6A4><EFBFBD>𣬰<EFBFBD><F0A3ACB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>ʵ<EFBFBD><CAB5><EFBFBD>ԡ<EFBFBD><D4A1><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD><CDBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>Եı<D4B5>֤<EFBFBD><D6A4></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD>Ĺ<EFBFBD><C4B9>ܿ<EFBFBD><DCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5>κ<EFBFBD><CEBA><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD>е<EFBFBD><D0B5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>Ρ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><E0BBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5>κ<EFBFBD><CEBA><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD>е<EFBFBD><D0B5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>Ρ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޶<EFBFBD><DEB6>ڣ<EFBFBD><DAA3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD>ϵ<EFBFBD><CFB5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݾ<EFBFBD><DDBE><EFBFBD><EFBFBD>е<EFBFBD><D0B5>κ<EFBFBD><CEBA><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>Ρ<EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(9<><39><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA>û<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A3AC><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD>о<EFBFBD><D0BE><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(10<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ<EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(11<31><31><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵķ<C7B5><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>κν<CEBA><CEBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ߡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2BB>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>޸<EFBFBD><DEB8>κ<EFBFBD><CEBA>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼƻ<DBBC><C6BB><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7>ɣ<EFBFBD><C9A3>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>е<EFBFBD><D0B5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD>κ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ԭ<EFBFBD>򶳽ᡢ<F2B6B3BD><E1A1A2>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κη<CEBA><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ȫ<EFBFBD><C8AB><EFBFBD>򲿷ַ<F2B2BFB7><D6B7><EFBFBD><EFBFBD>͹<EFBFBD><CDB9>ܡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<E2B2A2><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD>ijЩ<C4B3><D0A9><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<DABB><EEB6AF>Ҫ<EFBFBD>л<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʻ<EFBFBD><CABB><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>ݡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>ֹͣʹ<D6B9><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ч<EFBFBD><D0A7></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>ˡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵķ<C7B5><C4B7><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>κ<EFBFBD><CEBA>𺦡<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><E2B3A5>Ϊ֮<CEAA><EFBFBD><EFBFBD><E7BBA4>ʹ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD>¡<EFBFBD><C2A1><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>̼<EFBFBD><CCBC><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7>ʹ<EFBFBD>á<EFBFBD><C3A1><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨<C6BD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>κ<EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κη<CEBA><CEB7>ɻ<EFBFBD><C9BB>κε<CEBA><CEB5><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>κη<CEBA>ʽ<EFBFBD><CABD>֮<EFBFBD><D6AE><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD>Ρ<EFBFBD><CEA1><EFBFBD><EFBFBD><EFBFBD><E2A1A2>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʦ<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ̳<C4BC><CCB3>ˡ<EFBFBD><CBA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1>а<EFBFBD><D0B0>ˡ<EFBFBD><CBA1>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><D8B4><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>׷<EFBFBD><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ƽ̨<C6BD>йص<D0B9><D8B5><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>û<EFBFBD><C3BB>޷<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ƽ̨<C6BD><CCA8>ͨ<EFBFBD><CDA8>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵĻ<CFB5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µģ<C2B5><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EEB6AF><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ʹ<CCA8><CAB9><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ݡ<EFBFBD><DDA1><EFBFBD><EFBFBD>μ<EFBFBD><CEBC>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ӵġ<D3B5><C4A1><EFBFBD><EFBFBD>ӵġ<D3B5>żȻ<C5BC>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>𺦳е<F0BAA6B3><D0B5><EFBFBD><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD><EFBFBD>ʹ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD>𺦡<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(4<><34><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD>Ρ<EFBFBD><CEA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𺦵<EFBFBD>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʩ<EFBFBD><CAA9>ֹͣʹ<D6B9>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ø<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5>κ<EFBFBD><CEBA>𺦻<EFBFBD><F0BAA6BB><EFBFBD>ʧ<EFBFBD><CAA7><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><E2B3A5><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><31><D4AA><EFBFBD><EFBFBD><EFBFBD>ҡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD>š<EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϽȨ</font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۰<EFBFBD>̨<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ס<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κι<EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>й<EFBFBD><D0B9><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾<EFBFBD><CBBE>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>й<EFBFBD>ϽȨ<CFBD><C8A8></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD>ͬ<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA1A2>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ܵ<EFBFBD><DCB5>й<EFBFBD><D0B9><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7>ɹ<EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>кͽ<D0BA><CDBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7>ɡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD>ִ<EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>飬˫<E9A3AC><CBAB>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD>Э<EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD>̲<EFBFBD><CCB2><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>κ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD>ס<EFBFBD><D7A1><EFBFBD>صķ<D8B5>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" >ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(1<><31><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ<EFBFBD><CEA7>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ӷ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>֪ͨ<CDA8><D6AA>Э<EFBFBD><EFBFBD><E9A1A2><EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>ž<EFBFBD><C5BE><EFBFBD><EFBFBD>з<EFBFBD><D0B7><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(2<><32><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬳<EFBFBD><F1A3ACB3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>й涨<D0B9><E6B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2BDAB><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" >(3<><33><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>κβ<CEBA><CEB2>ֱ<EFBFBD><D6B1>϶<EFBFBD>Ϊ<EFBFBD><CEAA>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ಿ<EFBFBD><E0B2BF>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal style="mso-pagination:widow-orphan;text-align:left;mso-line-height-alt:12pt;" ><span style="mso-spacerun:'yes';font-family:<3A><><EFBFBD><EFBFBD>;font-size:10.5000pt;
mso-font-kerning:0.0000pt;" ><font face="<22><><EFBFBD><EFBFBD>" ><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD>ܶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></font>0755-86352225<32><35></span><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p></o:p></span></p><p class=MsoNormal ><span style="mso-spacerun:'yes';font-family:Calibri;mso-fareast-font-family:<3A><><EFBFBD><EFBFBD>;
mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;mso-font-kerning:1.0000pt;" ><o:p>&nbsp;</o:p></span></p></div><!--EndFragment--></body></html>

View File

@@ -0,0 +1,77 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<h3>1. Annahme der Bedingungen</h3>
<p>Durch das Herunterladen, Installieren und Verwenden der mobilen ABBIDOT-App („App“) erklären Sie sich mit diesen Allgemeinen Geschäftsbedingungen („Bedingungen“) einverstanden. Wenn Sie diesen Bedingungen nicht zustimmen, verwenden Sie die App nicht.</p>
<h3>2. Nutzung der App</h3>
<ul>
<li>Berechtigung: Sie müssen mindestens 13 Jahre alt sein, um die App zu nutzen. Durch die Nutzung der App erklären und garantieren Sie, dass Sie diese Berechtigungsvoraussetzung erfüllen.</li>
<li>Lizenz: ABBI PET INC gewährt Ihnen eine eingeschränkte, nicht-exklusive, nicht-übertragbare und widerrufbare Lizenz zur Nutzung der App ausschließlich für den persönlichen, nicht-kommerziellen Gebrauch.</li>
<li>Einschränkungen: Sie stimmen zu, Folgendes nicht zu tun:</li>
</ul>
<ul>
<li>Die App zu modifizieren, per Reverse Engineering zu analysieren, zu dekompilieren oder zu zerlegen.</li>
<li>Die App für rechtswidrige Zwecke oder in einer Weise zu verwenden, die ABBI PET INC oder seinen Nutzern schaden könnte.</li>
<li>Auf die App zuzugreifen oder sie zu verwenden, um einen konkurrierenden Dienst oder ein konkurrierendes Produkt zu entwickeln.</li>
</ul>
<h3>3. Konten und Sicherheit</h3>
<ul>
<li>Kontoerstellung: Um bestimmte Funktionen der App zu nutzen, müssen Sie möglicherweise ein Konto erstellen. Sie stimmen zu, während des Registrierungsvorgangs genaue und vollständige Informationen anzugeben.</li>
<li>Kontosicherheit: Sie sind für die Vertraulichkeit Ihrer Kontoanmeldedaten und für alle Aktivitäten verantwortlich, die unter Ihrem Konto erfolgen. Sie verpflichten sich, ABBI PET INC unverzüglich über jede unbefugte Nutzung Ihres Kontos zu informieren.</li>
</ul>
<h3>4. Datenschutz</h3>
<p>Ihre Nutzung der App unterliegt auch unserer Datenschutzerklärung, die durch Verweis in diese Bedingungen aufgenommen wird. Bitte lesen Sie unsere Datenschutzerklärung, um unsere Praktiken in Bezug auf Ihre Informationen zu verstehen.</p>
<h3>5. Nutzergenerierte Inhalte</h3>
<ul>
<li>Eigentum: Sie behalten das Eigentum an allen Inhalten, die Sie über die App einreichen oder veröffentlichen („Nutzerinhalte“). Durch das Einreichen von Nutzerinhalten gewähren Sie ABBI PET INC eine weltweite, nicht-exklusive, lizenzgebührenfreie Lizenz zur Verwendung, Vervielfältigung, Verbreitung und Anzeige Ihrer Nutzerinhalte im Zusammenhang mit der App.</li>
<li>Verantwortung: Sie sind allein für Ihre Nutzerinhalte verantwortlich. Sie stimmen zu, keine Inhalte zu veröffentlichen, die illegal, schädlich sind oder die Rechte anderer verletzen.</li>
</ul>
<h3>6. Geistiges Eigentum</h3>
<p>Alle Inhalte, Funktionen und Funktionalitäten der App, einschließlich, aber nicht beschränkt auf Texte, Grafiken, Logos und Software, sind das ausschließliche Eigentum von ABBI PET INC oder seinen Lizenzgebern und durch Urheberrecht, Markenrecht und andere Gesetze zum geistigen Eigentum geschützt.</p>
<h3>7. Kündigung</h3>
<p>ABBI PET INC kann Ihren Zugriff auf die App jederzeit ohne Vorankündigung oder Haftung aus beliebigen Gründen kündigen oder aussetzen, auch wenn Sie diese Bedingungen verletzen. Bei Kündigung erlischt Ihr Recht zur Nutzung der App sofort.</p>
<h3>8. Haftungsausschluss und Haftungsbeschränkung</h3>
<ul>
<li>Haftungsausschlüsse: Die App wird „wie besehen“ und „wie verfügbar“ ohne jegliche Gewährleistung, weder ausdrücklich noch stillschweigend, bereitgestellt. ABBI PET INC garantiert nicht, dass die App unterbrechungsfrei oder fehlerfrei sein wird.</li>
<li>Haftungsbeschränkung: Im maximal gesetzlich zulässigen Umfang haftet ABBI PET INC nicht für indirekte, beiläufige, besondere oder Folgeschäden, die aus oder im Zusammenhang mit Ihrer Nutzung der App entstehen.</li>
</ul>
<h3>9. Anwendbares Recht</h3>
<p>Diese Bedingungen unterliegen den Gesetzen des Bundesstaates Texas und sind in Übereinstimmung mit diesen auszulegen, ohne Berücksichtigung seiner Grundsätze des Kollisionsrechts.</p>
<h3>10. Änderungen der Bedingungen</h3>
<p>ABBI PET INC behält sich das Recht vor, diese Bedingungen jederzeit zu ändern. Wir werden Sie über Änderungen informieren, indem wir die neuen Bedingungen in der App veröffentlichen. Ihre fortgesetzte Nutzung der App nach Inkrafttreten der Änderungen stellt Ihre Zustimmung zu den neuen Bedingungen dar.</p>
<h3>11. Datengeheimhaltung</h3>
<p>Wir verpflichten uns, die Vertraulichkeit Ihrer Daten zu wahren. Wir setzen die folgenden Maßnahmen zum Datenschutz ein:</p>
<ul>
<li>Vertraulichkeitsvereinbarungen: Alle Mitarbeiter und Drittdienstleister, die Zugriff auf Ihre Daten haben, sind verpflichtet, Vertraulichkeitsvereinbarungen zu unterzeichnen.</li>
<li>Datenanonymisierung: Wo möglich, anonymisieren wir Ihre Daten, um Ihre Privatsphäre zu schützen.</li>
<li>Datenaufbewahrungsrichtlinie: Wir bewahren Ihre Daten nur so lange auf, wie für die in unserer Datenschutzerklärung beschriebenen Zwecke erforderlich, danach werden sie sicher gelöscht oder anonymisiert.</li>
</ul>
<h3>12. Kontaktieren Sie uns</h3>
<p>Wenn Sie Fragen zu diesen Bedingungen haben, kontaktieren Sie uns bitte unter:</p>
<p>ABBI PET INC</p>
<p>10700 Richmond Ave Suite 143</p>
<p>Houston, TX 77042</p>
<p>E-Mail: support@abbidot.com</p>
</div></body></html>

View File

@@ -0,0 +1,77 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<h3>1. Acceptation des conditions</h3>
<p>En téléchargeant, installant et utilisant l'application mobile ABBIDOT (« App »), vous acceptez d'être lié par ces Conditions générales (« Conditions »). Si vous n'acceptez pas ces Conditions, n'utilisez pas l'App.</p>
<h3>2. Utilisation de l'App</h3>
<ul>
<li>Éligibilité : Vous devez avoir au moins 13 ans pour utiliser l'App. En utilisant l'App, vous déclarez et garantissez que vous remplissez cette condition d'éligibilité.</li>
<li>Licence : ABBI PET INC vous accorde une licence limitée, non exclusive, non transférable et révocable pour utiliser l'App à des fins personnelles et non commerciales uniquement.</li>
<li>Restrictions : Vous acceptez de ne pas :</li>
</ul>
<ul>
<li>Modifier, faire de l'ingénierie inverse, décompiler ou démonter l'App.</li>
<li>Utiliser l'App à toute fin illégale ou de quelque manière qui pourrait nuire à ABBI PET INC ou à ses utilisateurs.</li>
<li>Accéder à l'App ou l'utiliser pour créer un service ou un produit concurrent.</li>
</ul>
<h3>3. Comptes et sécurité</h3>
<ul>
<li>Création de compte : Pour utiliser certaines fonctionnalités de l'App, vous devrez peut-être créer un compte. Vous acceptez de fournir des informations exactes et complètes lors du processus d'inscription.</li>
<li>Sécurité du compte : Vous êtes responsable de la confidentialité de vos identifiants de compte et de toutes les activités qui se produisent sous votre compte. Vous acceptez d'avertir immédiatement ABBI PET INC de toute utilisation non autorisée de votre compte.</li>
</ul>
<h3>4. Confidentialité</h3>
<p>Votre utilisation de l'App est également régie par notre politique de confidentialité, qui est incorporée par référence dans ces Conditions. Veuillez consulter notre politique de confidentialité pour comprendre nos pratiques concernant vos informations.</p>
<h3>5. Contenu de l'utilisateur</h3>
<ul>
<li>Propriété : Vous conservez la propriété de tout contenu que vous soumettez ou publiez via l'App (« Contenu de l'utilisateur »). En soumettant du Contenu de l'utilisateur, vous accordez à ABBI PET INC une licence mondiale, non exclusive, libre de redevances pour utiliser, reproduire, distribuer et afficher votre Contenu de l'utilisateur en relation avec l'App.</li>
<li>Responsabilité : Vous êtes seul responsable de votre Contenu de l'utilisateur. Vous acceptez de ne pas publier de contenu illégal, nuisible ou qui viole les droits d'autrui.</li>
</ul>
<h3>6. Propriété intellectuelle</h3>
<p>Tout le contenu, toutes les fonctionnalités et caractéristiques de l'App, y compris mais sans s'y limiter les textes, graphiques, logos et logiciels, sont la propriété exclusive de ABBI PET INC ou de ses concédants et sont protégés par les lois sur le droit d'auteur, les marques et autres lois sur la propriété intellectuelle.</p>
<h3>7. Résiliation</h3>
<p>ABBI PET INC peut résilier ou suspendre votre accès à l'App à tout moment, sans préavis ni responsabilité, pour quelque raison que ce soit, y compris si vous enfreignez ces Conditions. En cas de résiliation, votre droit d'utiliser l'App cessera immédiatement.</p>
<h3>8. Avertissements et limitation de responsabilité</h3>
<ul>
<li>Avertissements : L'App est fournie « telle quelle » et « telle que disponible » sans aucune garantie d'aucune sorte, expresse ou implicite. ABBI PET INC ne garantit pas que l'App sera ininterrompue ou exempte d'erreurs.</li>
<li>Limitation de responsabilité : Dans la mesure maximale permise par la loi, ABBI PET INC ne sera pas responsable de tout dommage indirect, accessoire, spécial ou consécutif découlant de ou en relation avec votre utilisation de l'App.</li>
</ul>
<h3>9. Droit applicable</h3>
<p>Ces Conditions seront régies et interprétées conformément aux lois de l'État du Texas, sans égard à ses principes de conflit de lois.</p>
<h3>10. Modifications des Conditions</h3>
<p>ABBI PET INC se réserve le droit de modifier ces Conditions à tout moment. Nous vous informerons de toute modification en publiant les nouvelles Conditions dans l'App. Votre utilisation continue de l'App après l'entrée en vigueur des modifications constitue votre acceptation des nouvelles Conditions.</p>
<h3>11. Confidentialité des données</h3>
<p>Nous nous engageons à maintenir la confidentialité de vos données. Nous mettons en œuvre les mesures suivantes pour assurer la protection des données :</p>
<ul>
<li>Accords de confidentialité : Tous les employés et prestataires de services tiers qui ont accès à vos données sont tenus de signer des accords de confidentialité.</li>
<li>Anonymisation des données : Dans la mesure du possible, nous anonymisons vos données pour protéger votre vie privée.</li>
<li>Politique de conservation des données : Nous ne conservons vos données que le temps nécessaire aux fins décrites dans notre politique de confidentialité, après quoi elles sont supprimées ou anonymisées de manière sécurisée.</li>
</ul>
<h3>12. Contactez-nous</h3>
<p>Si vous avez des questions concernant ces Conditions, veuillez nous contacter à :</p>
<p>ABBI PET INC</p>
<p>10700 Richmond Ave Suite 143</p>
<p>Houston, TX 77042</p>
<p>E-mail : support@abbidot.com</p>
</div></body></html>

View File

@@ -0,0 +1,77 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8" ><meta name=ProgId content=Word.Document ><meta name=Generator content="Microsoft Word 14" ><meta name=Originator content="Microsoft Word 14" ><title></title></head>
<body>
<div>
<h3>1. 条款的接受</h3>
<p>下载、安装和使用 ABBIDOT 移动应用程序("App")即表示您同意受这些条款与条件("条款")的约束。如果您不同意这些条款,请勿使用本 App。</p>
<h3>2. App 的使用</h3>
<ul>
<li>资格要求:您必须年满 13 周岁才能使用本 App。使用本 App即表示您声明并保证您符合此资格要求。</li>
<li>许可ABBI PET INC 授予您一项有限的、非独占的、不可转让的、可撤销的许可,仅供您出于个人非商业目的使用本 App。</li>
<li>限制:您同意不会:</li>
</ul>
<ul>
<li>修改、逆向工程、反编译或拆解本 App。</li>
<li>将本 App 用于任何非法目的,或以任何可能损害 ABBI PET INC 或其用户的方式使用。</li>
<li>访问或使用本 App 来开发竞争性服务或产品。</li>
</ul>
<h3>3. 账户与安全</h3>
<ul>
<li>账户创建:要使用 App 的某些功能,您可能需要创建账户。您同意在注册过程中提供准确且完整的信息。</li>
<li>账户安全:您有责任保管好您的账户凭证的机密性,并对您账户下发生的所有活动负责。您同意在发现任何未经授权使用您账户的情况时立即通知 ABBI PET INC。</li>
</ul>
<h3>4. 隐私</h3>
<p>您对 App 的使用同时受我们的隐私政策约束,该政策通过引用并入本条款。请查阅我们的隐私政策,以了解我们关于您信息的处理方式。</p>
<h3>5. 用户内容</h3>
<ul>
<li>所有权:您保留您通过 App 提交或发布的任何内容("用户内容")的所有权。提交用户内容即表示您授予 ABBI PET INC 一项全球性的、非独占的、免版税的许可,允许其使用、复制、分发和展示您的用户内容,且仅限于与 App 相关的用途。</li>
<li>责任:您对您的用户内容负全部责任。您同意不发布非法、有害或侵犯他人权利的内容。</li>
</ul>
<h3>6. 知识产权</h3>
<p>App 的所有内容、功能和特性,包括但不限于文本、图形、标识和软件,均为 ABBI PET INC 或其许可方的独家财产,受版权、商标和其他知识产权法保护。</p>
<h3>7. 终止</h3>
<p>ABBI PET INC 可随时终止或暂停您对 App 的访问,无需事先通知或承担责任,原因包括您违反本条款。终止后,您使用 App 的权利将立即停止。</p>
<h3>8. 免责声明与责任限制</h3>
<ul>
<li>免责声明:本 App 按"现状"和"按可用" basis 提供不附带任何明示或暗示的保证。ABBI PET INC 不保证 App 不会中断或无错误。</li>
<li>责任限制在法律允许的最大范围内ABBI PET INC 对因您使用 App 而产生或与之相关的任何间接、附带、特殊或后果性损害概不负责。</li>
</ul>
<h3>9. 适用法律</h3>
<p>本条款受美国德克萨斯州法律管辖并据其解释,不适用其法律冲突原则。</p>
<h3>10. 条款的变更</h3>
<p>ABBI PET INC 保留随时修改本条款的权利。我们将通过在 App 内发布新条款的方式通知您任何变更。变更生效后,您继续使用 App 即表示您接受新条款。</p>
<h3>11. 数据保密</h3>
<p>我们致力于维护您数据的保密性。我们采取以下措施以确保数据安全:</p>
<ul>
<li>保密协议:所有有权访问您数据的员工和第三方服务提供商均须签署保密协议。</li>
<li>数据匿名化:在可能的情况下,我们会对您的数据进行匿名化处理以保护您的隐私。</li>
<li>数据保留政策:我们仅在隐私政策所述目的所需的时间内保留您的数据,之后将安全删除或匿名化处理。</li>
</ul>
<h3>12. 联系我们</h3>
<p>如果您对本条款有任何疑问,请通过以下方式联系我们:</p>
<p>ABBI PET INC</p>
<p>10700 Richmond Ave Suite 143</p>
<p>Houston, TX 77042</p>
<p>电子邮箱support@abbidot.com</p>
</div></body></html>

View File

@@ -27,6 +27,9 @@ class MyApplication : Application() {
companion object { companion object {
lateinit var instance: Application lateinit var instance: Application
//保存地图宠物头像对象在内存中,提高显示速度
val mapPetHeadHashMap = hashMapOf<String, Any>()
} }
override fun onCreate() { override fun onCreate() {

View File

@@ -40,7 +40,9 @@ class AssignOptionsAdapter(
} else { } else {
circleImageView.visibility = View.VISIBLE circleImageView.visibility = View.VISIBLE
wrapImageView.visibility = View.GONE wrapImageView.visibility = View.GONE
ViewUtil.instance.setPetTypeHead(circleImageView, item.value, item.menuType) ViewUtil.instance.setPetTypeHead(
mContext, circleImageView, item.value, item.menuType
)
} }
} }
} }

View File

@@ -38,7 +38,7 @@ class ChangePetListDialogAdapter(ctx: Context, list: MutableList<PetBean>?) :
holder.setText(R.id.dialog_my_pet_name, item.petName) holder.setText(R.id.dialog_my_pet_name, item.petName)
holder.getImageView(R.id.dialog_my_pet_head).apply { holder.getImageView(R.id.dialog_my_pet_head).apply {
ViewUtil.instance.setPetTypeHead(this, item.imgurl, item.petType) ViewUtil.instance.setPetTypeHead(mContext,this, item.imgurl, item.petType)
setOnClickListener { setOnClickListener {
if (null != mOnChangeClickListener) { if (null != mOnChangeClickListener) {
mOnChangeClickListener!!.onCurrentClick() mOnChangeClickListener!!.onCurrentClick()

View File

@@ -1,7 +1,11 @@
package com.abbidot.tracker.adapter package com.abbidot.tracker.adapter
import android.content.Context import android.content.Context
import android.content.res.ColorStateList
import android.text.TextUtils
import android.view.View import android.view.View
import androidx.core.content.ContextCompat
import androidx.core.graphics.toColorInt
import com.abbidot.baselibrary.list.BaseRecyclerAdapter import com.abbidot.baselibrary.list.BaseRecyclerAdapter
import com.abbidot.baselibrary.list.RecyclerViewHolder import com.abbidot.baselibrary.list.RecyclerViewHolder
import com.abbidot.baselibrary.util.Utils import com.abbidot.baselibrary.util.Utils
@@ -9,6 +13,8 @@ import com.abbidot.tracker.R
import com.abbidot.tracker.bean.PackageBean import com.abbidot.tracker.bean.PackageBean
import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.constant.ConstantInt
import com.abbidot.tracker.constant.ConstantString import com.abbidot.tracker.constant.ConstantString
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButtonDrawable
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundRelativeLayout
/** /**
*Created by .yzq on 2024/8/6/006. *Created by .yzq on 2024/8/6/006.
@@ -51,6 +57,10 @@ class ChoosePlanAdapter(
getView(R.id.ll_choose_plan_item_discount_percent).let { getView(R.id.ll_choose_plan_item_discount_percent).let {
it.visibility = if (item.popularType == ConstantInt.Type1) View.INVISIBLE
else View.INVISIBLE
}
getView(R.id.iv_choose_plan_item_popular_image).let {
it.visibility = if (item.popularType == ConstantInt.Type1) View.VISIBLE it.visibility = if (item.popularType == ConstantInt.Type1) View.VISIBLE
else View.INVISIBLE else View.INVISIBLE
} }
@@ -62,6 +72,44 @@ class ChoosePlanAdapter(
if (item.popularType == ConstantInt.Type1) it.visibility = View.GONE if (item.popularType == ConstantInt.Type1) it.visibility = View.GONE
else it.visibility = View.GONE else it.visibility = View.GONE
} }
(getView(R.id.rl_choose_plan_item_price) as QMUIRoundRelativeLayout).let {
(it.background as QMUIRoundButtonDrawable).let { drawable ->
val bgColor = if (TextUtils.isEmpty(item.bottomBgColor)) {
ContextCompat.getColor(mContext, R.color.tracker_manage_bg_color)
} else {
item.bottomBgColor.toColorInt()
}
drawable.setBgData(ColorStateList.valueOf(bgColor))
}
}
getTextView(R.id.tv_choose_plan_item_power).let {
it.visibility = if (TextUtils.isEmpty(item.description)) View.GONE
else {
// var str = getManyLanguageLimitDec(item.listTitleCode)
// if (TextUtils.isEmpty(str)) {
// for (i in 0 until item.list!!.size) {
// val packageDec = item.list!![i]
// str += "${i + 1}.${packageDec.title}"
// if (i != item.list!!.size - 1) {
// str += "\n"
// }
// }
// }
it.text = item.description
View.VISIBLE
}
}
}
}
private fun getManyLanguageLimitDec(nameCode: Int): String {
return when (nameCode) {
ConstantInt.Type1 -> mContext.getString(R.string.txt_package_permission1)
ConstantInt.Type2 -> mContext.getString(R.string.txt_package_permission2)
ConstantInt.Type3 -> mContext.getString(R.string.txt_package_permission3)
else -> ""
} }
} }
} }

View File

@@ -34,7 +34,7 @@ class CreditCardAdapter(
} }
primary.visibility = if (item.isPrimary) View.VISIBLE else View.GONE primary.visibility = if (item.isPrimary) View.VISIBLE else View.GONE
holder.getTextView(R.id.tv_credit_card_number_item).apply { holder.getTextView(R.id.tv_credit_card_number_item).apply {
val formatCardNumber = Util.formatCardNumber(item.cardNumber) val formatCardNumber = maskString(Util.formatCardNumber(item.cardNumber))
val cardLogoImageId = Util.getCreditCardType(item.cardNumber) val cardLogoImageId = Util.getCreditCardType(item.cardNumber)
text = formatCardNumber text = formatCardNumber
if (cardLogoImageId == 0) setCompoundDrawablesWithIntrinsicBounds( if (cardLogoImageId == 0) setCompoundDrawablesWithIntrinsicBounds(
@@ -50,4 +50,24 @@ class CreditCardAdapter(
) )
} }
} }
private fun maskString(input: String): String {
if (input.isBlank()) return input
// 先去除原有所有空格统一重新4位分隔
val noSpace = input.replace(" ", "")
// 每4位分组加空格
val splitStr = buildString {
for (i in noSpace.indices step 4) {
val end = minOf(i + 4, noSpace.length)
append(noSpace.substring(i, end))
if (end != noSpace.length) append(" ")
}
}
// 再对分隔后的字符串脱敏仅最后4位明文其余非空格变*
if (splitStr.length <= 4) return splitStr
val hidePart = splitStr.dropLast(4)
val showPart = splitStr.takeLast(4)
val maskHide = hidePart.map { if (it == ' ') ' ' else '*' }.joinToString("")
return maskHide + showPart
}
} }

View File

@@ -1,12 +1,13 @@
package com.abbidot.tracker.adapter package com.abbidot.tracker.adapter
import android.graphics.Typeface import android.graphics.Typeface
import android.widget.ImageView import android.util.TypedValue
import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatImageView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.abbidot.baselibrary.util.AppUtils import com.abbidot.baselibrary.util.AppUtils
import com.abbidot.tracker.R import com.abbidot.tracker.R
import com.abbidot.tracker.bean.MenuTxtBean import com.abbidot.tracker.bean.MenuTxtBean
import com.abbidot.tracker.constant.ConstantInt
import com.abbidot.tracker.constant.MultipleEntity import com.abbidot.tracker.constant.MultipleEntity
import com.abbidot.tracker.widget.TypefaceTextView import com.abbidot.tracker.widget.TypefaceTextView
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
@@ -32,6 +33,8 @@ class HelpTextImageTypeAdapter(list: MutableList<MenuTxtBean>?) :
addItemType(MultipleEntity.IMG_IMG, R.layout.layout_help_title1) addItemType(MultipleEntity.IMG_IMG, R.layout.layout_help_title1)
//显示14sp大小的文字内容 //显示14sp大小的文字内容
addItemType(MultipleEntity.IMG_TEXT_IMG, R.layout.layout_help_title2) addItemType(MultipleEntity.IMG_TEXT_IMG, R.layout.layout_help_title2)
//显示多大字体,是否粗体,字体颜色
addItemType(MultipleEntity.TEXT_TEXT_IMG, R.layout.layout_help_title2)
} }
override fun convert(holder: BaseViewHolder, item: MenuTxtBean) { override fun convert(holder: BaseViewHolder, item: MenuTxtBean) {
@@ -67,6 +70,23 @@ class HelpTextImageTypeAdapter(list: MutableList<MenuTxtBean>?) :
holder.getView<TypefaceTextView>(R.id.tv_help_title_two).text = item.menuName holder.getView<TypefaceTextView>(R.id.tv_help_title_two).text = item.menuName
holder.itemView.setPadding(0, AppUtils.dpToPx(14), 0, 0) holder.itemView.setPadding(0, AppUtils.dpToPx(14), 0, 0)
} }
MultipleEntity.TEXT_TEXT_IMG -> {
holder.getView<TypefaceTextView>(R.id.tv_help_title_two).apply {
//是否粗体
val typefaceBold =
if (item.isSwitch) Typeface.create(Typeface.DEFAULT, Typeface.BOLD)
else Typeface.create(Typeface.DEFAULT, Typeface.NORMAL)
typeface = typefaceBold
text = item.menuName
setTextSize(TypedValue.COMPLEX_UNIT_SP, item.state.toFloat())
val tColor = if (item.colorRedId == ConstantInt.Type0) R.color.data_black_color
else item.colorRedId
setTextColor(ContextCompat.getColor(context, tColor))
}
// holder.itemView.setPadding(0, AppUtils.dpToPx(14), 0, 0)
}
} }
} }

View File

@@ -0,0 +1,66 @@
package com.abbidot.tracker.adapter
import android.content.Context
import android.text.format.DateUtils
import android.view.View
import com.abbidot.baselibrary.list.BaseRecyclerAdapter
import com.abbidot.baselibrary.list.RecyclerViewHolder
import com.abbidot.baselibrary.util.Utils
import com.abbidot.tracker.R
import com.abbidot.tracker.bean.MessageBean
import com.abbidot.tracker.constant.ConstantInt
/**
*Created by .yzq on 2026/4/10/周五.
* @link
* @description:
*/
class HistoryFenceAdapter(
ctx: Context, list: MutableList<MessageBean>?
) : BaseRecyclerAdapter<MessageBean>(ctx, list) {
override fun getEmptyLayoutId(viewType: Int) = 0
override fun getItemLayoutId(viewType: Int) = R.layout.item_history_fence_layout
override fun bindData(holder: RecyclerViewHolder?, position: Int, item: MessageBean) {
holder?.apply {
getImageView(R.id.iv_history_fence_type_image).let {
when (item.deviceMessageType) {
ConstantInt.Type1, ConstantInt.Type3 -> it.setImageResource(R.drawable.icon_history_danger_fence_image)
ConstantInt.Type2 -> it.setImageResource(R.drawable.icon_history_save_fence_image)
ConstantInt.Type4 -> it.setImageResource(R.drawable.icon_history_no_save_fence_image)
}
}
getTextView(R.id.tv_history_fence_type_time).text =
getRelativeTimeString(item.timeStamp)
getTextView(R.id.tv_history_fence_type_content).text = item.message
getImageView(R.id.iv_history_fence_type_line).let {
it.visibility = if (position == getData().size - 1) View.GONE
else View.VISIBLE
}
}
}
private fun getRelativeTimeString(timeStamp: Long): String {
val formatDateStr: String
val cTimeStamp = Utils.stringToTimestamp(
Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_CN2
)
)
formatDateStr = if (DateUtils.isToday(cTimeStamp)) {
mContext.getString(R.string.txt_today) + " " + Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_EN14
)
} else if (Utils.isYesterday(cTimeStamp)) {
mContext.getString(R.string.txt_yesterday) + " " + Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_EN14
)
} else {
Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_EN15
)
}
return formatDateStr
}
}

View File

@@ -39,7 +39,7 @@ class HomePetTrackMenuAdapter(
} }
override fun convert(holder: BaseViewHolder, item: MenuTxtBean) { override fun convert(holder: BaseViewHolder, item: MenuTxtBean) {
val position = getItemPosition(item) // val position = getItemPosition(item)
val qMUICommonItemView = val qMUICommonItemView =
holder.getView<QMUICommonListItemView>(R.id.tracker_manage_setting_item).apply { holder.getView<QMUICommonListItemView>(R.id.tracker_manage_setting_item).apply {
ViewUtil.instance.showQMUICommonListItemView( ViewUtil.instance.showQMUICommonListItemView(
@@ -55,12 +55,21 @@ class HomePetTrackMenuAdapter(
setTextColor(ContextCompat.getColor(context, tColor)) setTextColor(ContextCompat.getColor(context, tColor))
} }
qMUICommonItemView.setOnClickListener { qMUICommonItemView.setOnClickListener {
when (position) { when (item.menuName) {
0 -> mHomeTrackFragment.goPetDataActivity(LedLightActivity::class.java) context.getString(R.string.tracker_manage_led) -> mHomeTrackFragment.goPetDataActivity(
1 -> mHomeTrackFragment.goMapDeviceDataActivity(TrackingDurationSetActivity::class.java) LedLightActivity::class.java
2 -> mHomeTrackFragment.goMapDeviceDataActivity(LiveDurationSetActivity::class.java) )
3 -> mHomeTrackFragment.firmwareCheckUpdate()
4 -> { context.getString(R.string.tracker_manage_set_duration) -> mHomeTrackFragment.goMapDeviceDataActivity(
TrackingDurationSetActivity::class.java
)
context.getString(R.string.txt_live_duration) -> mHomeTrackFragment.goMapDeviceDataActivity(
LiveDurationSetActivity::class.java
)
context.getString(R.string.txt_firmware_version) -> mHomeTrackFragment.firmwareCheckUpdate()
context.getString(R.string.txt_power_off) -> {
if (item.type == ConstantInt.SpecialType) return@setOnClickListener if (item.type == ConstantInt.SpecialType) return@setOnClickListener
mHomeTrackFragment.goPetDataActivity(PowerOffActivity::class.java) mHomeTrackFragment.goPetDataActivity(PowerOffActivity::class.java)
} }

View File

@@ -9,6 +9,7 @@ import com.abbidot.tracker.R
import com.abbidot.tracker.bean.MenuTxtBean import com.abbidot.tracker.bean.MenuTxtBean
import com.abbidot.tracker.constant.ConstantInt import com.abbidot.tracker.constant.ConstantInt
import com.abbidot.tracker.constant.MultipleEntity import com.abbidot.tracker.constant.MultipleEntity
import com.abbidot.tracker.util.ViewUtil
import com.abbidot.tracker.widget.BatteryView import com.abbidot.tracker.widget.BatteryView
import com.abbidot.tracker.widget.MyBluetoothAnimView import com.abbidot.tracker.widget.MyBluetoothAnimView
import com.abbidot.tracker.widget.TypefaceTextView import com.abbidot.tracker.widget.TypefaceTextView
@@ -27,12 +28,13 @@ class HomePetTrackStateAdapter(
val stateTextView = holder!!.getView(R.id.tv_home_pet_device_state_item) as TypefaceTextView val stateTextView = holder!!.getView(R.id.tv_home_pet_device_state_item) as TypefaceTextView
stateTextView.text = item.menuName stateTextView.text = item.menuName
holder.getTextView(R.id.tv_home_pet_device_state_name_item).apply { val stateName = holder.getTextView(R.id.tv_home_pet_device_state_name_item).apply {
text = item.menuValue text = item.menuValue
val color = if (item.type == ConstantInt.SpecialType) R.color.grey_color val color = if (item.type == ConstantInt.SpecialType) R.color.grey_color
else item.colorRedId else item.colorRedId
setTextColor(ContextCompat.getColor(mContext, color)) setTextColor(ContextCompat.getColor(mContext, color))
} }
val btnState = holder.getImageView(R.id.iv_home_pet_btn_state)
val color = if (item.type == ConstantInt.SpecialType) R.color.grey_color val color = if (item.type == ConstantInt.SpecialType) R.color.grey_color
else R.color.data_black_color else R.color.data_black_color
@@ -43,7 +45,9 @@ class HomePetTrackStateAdapter(
holder.getView(R.id.mba_home_pet_device_search_anim_item) as MyBluetoothAnimView holder.getView(R.id.mba_home_pet_device_search_anim_item) as MyBluetoothAnimView
when (item.menuType) { when (item.menuType) {
MultipleEntity.IMG_TEXT_IMG -> { MultipleEntity.IMG_TEXT_IMG -> {
stateName.visibility = View.VISIBLE
bluetoothAnimView.visibility = View.GONE bluetoothAnimView.visibility = View.GONE
btnState.visibility = View.GONE
bv.visibility = View.VISIBLE bv.visibility = View.VISIBLE
bv.setValue(item.imageId) bv.setValue(item.imageId)
bluetoothAnimView.setBluetoothAnimStartAndStop(item.isSwitch) bluetoothAnimView.setBluetoothAnimStartAndStop(item.isSwitch)
@@ -51,8 +55,10 @@ class HomePetTrackStateAdapter(
} }
MultipleEntity.TEXT_TEXT_IMG -> { MultipleEntity.TEXT_TEXT_IMG -> {
stateName.visibility = View.VISIBLE
bluetoothAnimView.visibility = View.VISIBLE bluetoothAnimView.visibility = View.VISIBLE
bv.visibility = View.GONE bv.visibility = View.GONE
btnState.visibility = View.GONE
bluetoothAnimView.setBluetoothAnimStartAndStop(item.isSwitch) bluetoothAnimView.setBluetoothAnimStartAndStop(item.isSwitch)
stateTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0) stateTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0)
} }
@@ -73,6 +79,16 @@ class HomePetTrackStateAdapter(
null, drawable, null, null null, drawable, null, null
) )
} }
btnState.apply {
ViewUtil.instance.viewRotationAnimator(this, true)
visibility = if (item.state == ConstantInt.Type1) {
stateName.visibility = View.GONE
View.VISIBLE
} else {
stateName.visibility = View.VISIBLE
View.GONE
}
}
} }
} }
} }

View File

@@ -47,25 +47,40 @@ class MySubscriptionAdapter(
holder.setText(R.id.tv_my_subscription_plan_name, item.mealName) holder.setText(R.id.tv_my_subscription_plan_name, item.mealName)
holder.getTextView(R.id.tv_my_subscription_auto_subscription_tips).apply { holder.getTextView(R.id.tv_my_subscription_auto_subscription_tips).apply {
visibility = if (item.subscriptionStatus == ConstantInt.Open) { visibility = if (item.subscriptionStatus == ConstantInt.Open) {
text = if (item.mealUnit == ConstantString.PackageUnitYear) String.format( text = when (item.mealUnit) {
mContext.getString(R.string.txt_auto_subscription_year), ConstantString.PackageUnitYear -> if (item.mealPeriod > 1) String.format(
item.autoRenewPrice.toString() mContext.getString(R.string.txt_auto_subscription_years),
) "${item.autoRenewPrice}",
else if (item.mealUnit == ConstantString.PackageUnitDay) String.format( "${item.mealPeriod}"
mContext.getString(R.string.txt_auto_subscription_day), ) else String.format(
"${item.autoRenewPrice}", mContext.getString(R.string.txt_auto_subscription_year),
"${item.mealPeriod}" "${item.autoRenewPrice}"
) )
else String.format(
mContext.getString(R.string.txt_auto_subscription_month), ConstantString.PackageUnitDay -> if (item.mealPeriod > 1) String.format(
item.autoRenewPrice.toString() mContext.getString(R.string.txt_auto_subscription_days),
) "${item.autoRenewPrice}",
"${item.mealPeriod}"
) else String.format(
mContext.getString(R.string.txt_auto_subscription_day),
"${item.autoRenewPrice}"
)
else -> if (item.mealPeriod > 1) String.format(
mContext.getString(R.string.txt_auto_subscription_months),
"${item.autoRenewPrice}",
"${item.mealPeriod}"
) else String.format(
mContext.getString(R.string.txt_auto_subscription_month),
"${item.autoRenewPrice}"
)
}
View.VISIBLE View.VISIBLE
} else View.GONE } else View.GONE
} }
holder.setText( holder.setText(
R.id.tv_my_subscription_active_time, R.id.tv_my_subscription_active_time,
Utils.stringToDate(item.updateTime, resultFormat = Utils.DATE_FORMAT_PATTERN_EN6) Utils.formatTime(item.payTime, Utils.DATE_FORMAT_PATTERN_CN4)
) )
holder.getTextView(R.id.tv_my_subscription_annual_care).apply { holder.getTextView(R.id.tv_my_subscription_annual_care).apply {
@@ -74,13 +89,17 @@ class MySubscriptionAdapter(
else mContext.getString(R.string.txt_no) else mContext.getString(R.string.txt_no)
} }
// val timestamp = getAfterHowTimestamp( holder.getTextView(R.id.tv_my_subscription_expires_on).apply {
// Utils.stringToTimestamp(item.currentTime), item.surplusDays text = if (item.orderStatus == 6 && item.refundTime > 0L) {
// ) Utils.formatTime(item.refundTime, Utils.DATE_FORMAT_PATTERN_CN4)
holder.setText( } else {
R.id.tv_my_subscription_expires_on, Utils.formatTime(
Utils.formatTime(item.endTime, Utils.DATE_FORMAT_PATTERN_EN7) Utils.timestampAddHowTimestamp(
) item.payTime, item.mealPeriod, item.mealUnit
), Utils.DATE_FORMAT_PATTERN_CN
)
}
}
if (item.subscriptionStatus == ConstantInt.Close) { if (item.subscriptionStatus == ConstantInt.Close) {
holder.setText( holder.setText(
@@ -93,40 +112,65 @@ class MySubscriptionAdapter(
mContext.getString(R.string.tracker_manage_set_led_on) mContext.getString(R.string.tracker_manage_set_led_on)
) )
} }
val cTimeMillis = System.currentTimeMillis()
val endTime = if (item.refundTime == 0L) item.endTime else item.refundTime
val expiredTime = endTime * 1000 - cTimeMillis
//是否过期套餐
val isExpired =
item.orderStatus == 6 || (item.subscriptionStatus == ConstantInt.Close && expiredTime <= 0)
val userId = MMKVUtil.getString(MMKVKey.UserId)
val expiresTitle = holder.getTextView(R.id.tv_my_subscription_expires_title) val expiresTitle = holder.getTextView(R.id.tv_my_subscription_expires_title)
holder.getButton(R.id.btn_my_subscription_recharge).apply { holder.getButton(R.id.btn_my_subscription_recharge).apply {
visibility = visibility = if (isExpired) {
if (item.orderStatus == 6 || (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close)) { setText(R.string.txt_card_recharge)
setText(R.string.txt_card_recharge) expiresTitle.setText(R.string.txt_expires_on2)
expiresTitle.setText(R.string.txt_expires_on2) View.VISIBLE
View.VISIBLE } else if (item.subscriptionStatus == ConstantInt.Close) {
} else if (item.subscriptionStatus == ConstantInt.Close) { setText(R.string.txt_enable_auto_renew)
setText(R.string.txt_enable_auto_renew) expiresTitle.setText(R.string.txt_expires_on1)
expiresTitle.setText(R.string.txt_expires_on1) //createUserId不一样就是绑定了其他用户有套餐的设备
View.VISIBLE if (item.createUserId == userId) visibility else View.GONE
} else { } else {
expiresTitle.setText(R.string.txt_expires_on1) expiresTitle.setText(R.string.txt_expires_on1)
View.GONE View.GONE
} }
//UserId不一样就是共享设备的订单
visibility = if (item.userId == userId) visibility else View.GONE
} }
holder.getView(R.id.il_my_subscription_count_down).apply { holder.getView(R.id.il_my_subscription_count_down).apply {
visibility = visibility = if (isExpired) {
if (item.orderStatus == 6 || (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close)) { View.GONE
View.GONE } else {
} else { View.VISIBLE
View.VISIBLE }
}
} }
val times = Utils.getDayToYearMonthDay(item.surplusDays) val times = Utils.differYear(cTimeMillis, item.endTime)
holder.setText(R.id.tv_add_success_device_expires_days, times[0]) holder.getTextView(R.id.tv_add_success_device_expires_days).apply {
holder.setText(R.id.tv_add_success_device_expires_hours, times[1]) visibility = if (item.subscriptionStatus == ConstantInt.Close) {
holder.setText(R.id.tv_add_success_device_expires_min, times[2]) text = times[0]
View.VISIBLE
} else View.GONE
holder.getTextView(R.id.tv_add_device_expires_year_title).visibility = visibility
}
holder.getTextView(R.id.tv_add_success_device_expires_hours).apply {
visibility = if (item.subscriptionStatus == ConstantInt.Close) {
text = times[1]
View.VISIBLE
} else View.GONE
holder.getTextView(R.id.tv_add_device_expires_month_title).visibility = visibility
}
holder.getTextView(R.id.tv_add_success_device_expires_min).apply {
visibility = if (item.subscriptionStatus == ConstantInt.Close) {
text = times[2]
View.VISIBLE
} else View.GONE
holder.getTextView(R.id.tv_add_device_expires_day_title).visibility = visibility
}
holder.getView(R.id.fl_my_subscription_btn_layout).apply { holder.getView(R.id.fl_my_subscription_btn_layout).apply {
val userId = MMKVUtil.getString(MMKVKey.UserId)
//UserId不一样就是共享设备的订单 //UserId不一样就是共享设备的订单
visibility = if (item.userId == userId) { visibility = if (item.userId == userId) {
setOnClickListener { setOnClickListener {
@@ -137,7 +181,7 @@ class MySubscriptionAdapter(
} }
//充值 //充值
holder.setClickListener(R.id.btn_my_subscription_recharge) { holder.setClickListener(R.id.btn_my_subscription_recharge) {
if (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close) { if (item.subscriptionStatus == ConstantInt.Close && expiredTime <= 0) {
Intent(mContext, SubscriptionPlanActivity::class.java).let { Intent(mContext, SubscriptionPlanActivity::class.java).let {
it.putExtra(ConstantString.LkSetMeal, item) it.putExtra(ConstantString.LkSetMeal, item)
it.putExtra(ConstantString.RechargeType, ConstantInt.Type2) it.putExtra(ConstantString.RechargeType, ConstantInt.Type2)
@@ -162,15 +206,18 @@ class MySubscriptionAdapter(
setOnClickListener { setOnClickListener {
qMUIPopups.dismiss() qMUIPopups.dismiss()
Intent(mContext, SubscriptionHistoryActivity::class.java).let { Intent(mContext, SubscriptionHistoryActivity::class.java).let {
it.putExtra(ConstantString.DeviceId, item.deviceId) it.putExtra(ConstantString.Id, item.subscriptionId)
mMySubscriptionActivity.startActivity(it) mMySubscriptionActivity.startActivity(it)
} }
} }
} }
//升级套餐 //升级套餐
view.findViewById<TypefaceTextView>(R.id.tv_pop_my_subscription_auto_renew).apply { view.findViewById<TypefaceTextView>(R.id.tv_pop_my_subscription_auto_renew).apply {
val cTimeMillis = System.currentTimeMillis()
val endTime = if (item.refundTime == 0L) item.endTime else item.refundTime
val expiredTime = endTime * 1000 - cTimeMillis
visibility = visibility =
if (item.planCategory == "Premium" || (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close)) { if (item.planCategory == "Premium" || (item.subscriptionStatus == ConstantInt.Close && expiredTime <= 0)) {
View.GONE View.GONE
} else { } else {
View.VISIBLE View.VISIBLE

View File

@@ -12,6 +12,7 @@ import com.abbidot.tracker.constant.ConstantInt
import com.abbidot.tracker.ui.activity.device.AddNewTracker1Activity import com.abbidot.tracker.ui.activity.device.AddNewTracker1Activity
import com.abbidot.tracker.ui.activity.device.MyTrackerV2Activity import com.abbidot.tracker.ui.activity.device.MyTrackerV2Activity
import com.abbidot.tracker.ui.activity.pet.PetProfileActivity import com.abbidot.tracker.ui.activity.pet.PetProfileActivity
import com.abbidot.tracker.util.Util
import com.abbidot.tracker.util.ViewUtil import com.abbidot.tracker.util.ViewUtil
import com.qmuiteam.qmui.widget.QMUIRadiusImageView import com.qmuiteam.qmui.widget.QMUIRadiusImageView
@@ -100,6 +101,7 @@ class MyTrackerV2Adapter(
trackerImageView.visibility = View.VISIBLE trackerImageView.visibility = View.VISIBLE
trackerName.visibility = View.VISIBLE trackerName.visibility = View.VISIBLE
trackerImageView.setImageResource(Util.getDeviceTypeImage(item.deviceType))
trackerName.text = item.deviceOutId trackerName.text = item.deviceOutId
val battery = "${item.batteryCapacity} " val battery = "${item.batteryCapacity} "
batteryTextView.text = battery batteryTextView.text = battery
@@ -114,7 +116,7 @@ class MyTrackerV2Adapter(
petName.visibility = View.VISIBLE petName.visibility = View.VISIBLE
item.pet?.let { item.pet?.let {
petName.text = it.petName petName.text = it.petName
ViewUtil.instance.setPetTypeHead(petHead, it.imgurl, it.petType) ViewUtil.instance.setPetTypeHead(mContext, petHead, it.imgurl, it.petType)
} }
} }
} }

View File

@@ -10,6 +10,7 @@ import com.abbidot.baselibrary.list.RecyclerViewHolder
import com.abbidot.baselibrary.util.Utils import com.abbidot.baselibrary.util.Utils
import com.abbidot.tracker.R import com.abbidot.tracker.R
import com.abbidot.tracker.bean.MessageBean import com.abbidot.tracker.bean.MessageBean
import com.abbidot.tracker.constant.ConstantInt
import com.abbidot.tracker.widget.TypefaceRoundButton import com.abbidot.tracker.widget.TypefaceRoundButton
/** /**
@@ -28,7 +29,7 @@ class NotificationV2Adapter(
override fun bindData(holder: RecyclerViewHolder?, position: Int, item: MessageBean) { override fun bindData(holder: RecyclerViewHolder?, position: Int, item: MessageBean) {
val roundButton = val roundButton =
holder!!.getView(R.id.iv_home_route_notification_state) as TypefaceRoundButton holder!!.getView(R.id.iv_home_route_notification_state) as TypefaceRoundButton
val textColor = if (item.isRead) { val textColor = if (item.isRead == ConstantInt.Type1) {
roundButton.visibility = View.GONE roundButton.visibility = View.GONE
R.color.black70 R.color.black70
} else { } else {
@@ -51,22 +52,30 @@ class NotificationV2Adapter(
setTextColor(ContextCompat.getColor(mContext, textColor)) setTextColor(ContextCompat.getColor(mContext, textColor))
} }
holder.getTextView(R.id.tv_home_route_notification_date).apply { holder.getTextView(R.id.tv_home_route_notification_date).apply {
text = getRelativeTimeString(Utils.stringToTimestamp(item.sendTime)) text = getRelativeTimeString(item.timeStamp)
setTextColor(ContextCompat.getColor(mContext, textColor)) setTextColor(ContextCompat.getColor(mContext, textColor))
} }
} }
private fun getRelativeTimeString(time: Long): String { private fun getRelativeTimeString(timeStamp: Long): String {
var formatDateStr = "" val formatDateStr: String
val now = System.currentTimeMillis() val cTimeStamp = Utils.stringToTimestamp(
formatDateStr = if (DateUtils.isToday(time)) { Utils.formatTime(
mContext.getString(R.string.txt_today) + " " + Utils.formatTime( timeStamp, Utils.DATE_FORMAT_PATTERN_CN2
time, Utils.DATE_FORMAT_PATTERN_EN8 )
)
formatDateStr = if (DateUtils.isToday(cTimeStamp)) {
mContext.getString(R.string.txt_today) + " " + Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_EN14
)
} else if (Utils.isYesterday(cTimeStamp)) {
mContext.getString(R.string.txt_yesterday) + " " + Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_EN14
) )
} else if (now - time < (48 * 60 * 60 * 1000)) {
mContext.getString(R.string.txt_yesterday)
} else { } else {
Utils.formatTime(time, Utils.DATE_FORMAT_PATTERN_EN9) Utils.formatTime(
timeStamp, Utils.DATE_FORMAT_PATTERN_CN2
)
} }
return formatDateStr return formatDateStr
} }

View File

@@ -8,6 +8,7 @@ import com.abbidot.baselibrary.list.BaseRecyclerAdapter
import com.abbidot.baselibrary.list.RecyclerViewHolder import com.abbidot.baselibrary.list.RecyclerViewHolder
import com.abbidot.tracker.R import com.abbidot.tracker.R
import com.abbidot.tracker.bean.DeviceBean import com.abbidot.tracker.bean.DeviceBean
import com.abbidot.tracker.util.Util
/** /**
*Created by .yzq on 2025/12/19/周五. *Created by .yzq on 2025/12/19/周五.
@@ -39,6 +40,8 @@ class ScanDeviceAdapter(
holder.getView(R.id.ld_add_new_tracker3_connect_state).visibility = holder.getView(R.id.ld_add_new_tracker3_connect_state).visibility =
if (item.conState == ConState.CONNECTING) View.VISIBLE if (item.conState == ConState.CONNECTING) View.VISIBLE
else View.GONE else View.GONE
holder.getImageView(R.id.iv_add_new_tracker3_device_image)
.setImageResource(Util.getDeviceTypeImage(item.type))
} }
} }
} }

View File

@@ -1,5 +1,6 @@
package com.abbidot.tracker.adapter package com.abbidot.tracker.adapter
import android.content.Context
import android.content.Intent import android.content.Intent
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
@@ -16,6 +17,8 @@ import com.abbidot.tracker.ui.activity.subscribe.SubscriptionHistoryActivity
import com.abbidot.tracker.widget.TypefaceRoundButton import com.abbidot.tracker.widget.TypefaceRoundButton
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.hjq.toast.Toaster
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButtonDrawable
/** /**
*Created by .yzq on 2024/8/19/019. *Created by .yzq on 2024/8/19/019.
@@ -46,30 +49,37 @@ class SubscriptionHistoryAdapter(
} }
} }
/**
* 保险订单
*/
private fun bindAnnualCareData(holder: BaseViewHolder, item: SubscriptionsOrderBean) { private fun bindAnnualCareData(holder: BaseViewHolder, item: SubscriptionsOrderBean) {
holder.setText( holder.setText(
R.id.tv_subscription_annual_care_order_id, R.id.tv_subscription_annual_care_order_id,
context.getString(R.string.txt_order_id) + item.orderNum context.getString(R.string.txt_order_id) + item.orderNum
) )
val cTimeMillis = System.currentTimeMillis()
val endTime = if (item.refundTime == 0L) item.endTime else item.refundTime
val expiredTime = endTime * 1000 - cTimeMillis
val state = val state =
if (item.enabled == ConstantInt.Type0 || (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close)) { if (item.enabled == ConstantInt.Type0 || (item.subscriptionStatus == ConstantInt.Close && expiredTime <= 0)) {
context.getString(R.string.txt_expired) context.getString(R.string.txt_expired)
} else { } else {
context.getString(R.string.txt_active) context.getString(R.string.txt_active)
} }
holder.setText(R.id.tv_subscription_annual_care_state, state) holder.setText(R.id.tv_subscription_annual_care_state, state)
holder.setText( holder.setText(
R.id.tv_subscription_annual_care_active_time, R.id.tv_subscription_annual_care_active_time, Utils.formatTime(
Utils.stringToDate(item.createTime, resultFormat = Utils.DATE_FORMAT_PATTERN_EN7) item.payTime, Utils.DATE_FORMAT_PATTERN_CN
)
) )
//保险时长不足一年按12个月算 //保险时长不足一年按12个月算
val insuranceTime = val insuranceTime =
if (item.mealUnit == ConstantString.PackageUnitYear) item.mealPeriod else 1 if (item.mealUnit == ConstantString.PackageUnitYear) item.mealPeriod else 1
holder.setText( holder.setText(
R.id.tv_subscription_annual_care_expiry_time, Utils.formatTime( R.id.tv_subscription_annual_care_expiry_time, Utils.formatTime(
Utils.getAfterHowTimestamp( Utils.timestampAddHowTimestamp(
Utils.stringToTimestamp(item.createTime), insuranceTime * 365L item.payTime, insuranceTime, ConstantString.PackageUnitYear
), Utils.DATE_FORMAT_PATTERN_EN7 ), Utils.DATE_FORMAT_PATTERN_CN
) )
) )
holder.setText( holder.setText(
@@ -85,11 +95,11 @@ class SubscriptionHistoryAdapter(
private fun bindOrderData(holder: BaseViewHolder, item: SubscriptionsOrderBean) { private fun bindOrderData(holder: BaseViewHolder, item: SubscriptionsOrderBean) {
holder.setText( holder.setText(
R.id.tv_subscription_history_order_id, R.id.tv_subscription_history_order_id,
context.getString(R.string.txt_order_id) + item.orderNum context.getString(R.string.txt_order_id) + item.renewNum
) )
holder.setText( holder.setText(
R.id.tv_subscription_history_order_time, R.id.tv_subscription_history_order_time,
Utils.stringToDate(item.createTime, resultFormat = Utils.DATE_FORMAT_PATTERN_EN10) Utils.formatTime(item.payTime, Utils.DATE_FORMAT_PATTERN_CN2)
) )
holder.setText(R.id.tv_subscription_history_package_name, item.mealName) holder.setText(R.id.tv_subscription_history_package_name, item.mealName)
holder.setText( holder.setText(
@@ -107,29 +117,39 @@ class SubscriptionHistoryAdapter(
visibility = View.VISIBLE visibility = View.VISIBLE
when (item.orderStatus) { when (item.orderStatus) {
1 -> { 1 -> {
val updateTimestamp = Utils.stringToTimestamp(item.updateTime) if (item.isAutoRenewal == ConstantInt.Type1) {
val nowTimestamp = System.currentTimeMillis() visibility = View.GONE
// val nowTimestamp = Utils.stringToTimestamp(item.currentTime)
if (item.mealUnit == ConstantString.PackageUnitMonth) {
val day7Timestamp = 7 * 24 * 60 * 60 * 1000L
//套餐超出7天不能退款
if (nowTimestamp - updateTimestamp <= day7Timestamp) {
visibility = View.VISIBLE
setText(R.string.txt_refund)
} else {
visibility = View.GONE
}
} else { } else {
val day30Timestamp = 30 * 24 * 60 * 60 * 1000L setRefundState(context, item.isRefundable, this)
//套餐超出30天不能退款
if (nowTimestamp - updateTimestamp <= day30Timestamp) {
visibility = View.VISIBLE
setText(R.string.txt_refund)
} else {
visibility = View.GONE
}
} }
setTextColor(ContextCompat.getColor(context, R.color.select_color))
// val updateTimestamp = Utils.stringToTimestamp(item.updateTime, isUtc = true)
// val nowTimestamp = System.currentTimeMillis()
// if (item.enabled == ConstantInt.Type0 || (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close)) {
// visibility = View.GONE
// } else if (item.mealUnit == ConstantString.PackageUnitDay) {
// visibility = View.VISIBLE
// setText(R.string.txt_refund)
// } else if (item.mealUnit == ConstantString.PackageUnitMonth) {
// val day7Timestamp = 7 * 24 * 60 * 60 * 1000L
// //套餐超出7天不能退款
// if (nowTimestamp - updateTimestamp <= day7Timestamp) {
// visibility = View.VISIBLE
// setText(R.string.txt_refund)
// } else {
// visibility = View.GONE
// }
// } else {
// val day30Timestamp = 30 * 24 * 60 * 60 * 1000L
// //套餐超出30天不能退款
// if (nowTimestamp - updateTimestamp <= day30Timestamp) {
// visibility = View.VISIBLE
// setText(R.string.txt_refund)
// } else {
// visibility = View.GONE
// }
// }
// setTextColor(ContextCompat.getColor(context, R.color.select_color))
} }
4 -> setText(R.string.txt_waiting) 4 -> setText(R.string.txt_waiting)
@@ -147,6 +167,10 @@ class SubscriptionHistoryAdapter(
setChangeAlphaWhenPress(true) setChangeAlphaWhenPress(true)
setOnClickListener { setOnClickListener {
if (item.orderStatus == ConstantInt.Type1) { if (item.orderStatus == ConstantInt.Type1) {
if (item.isRefundable == ConstantInt.Type0) {
Toaster.show(R.string.txt_refund_expired)
return@setOnClickListener
}
Intent(context, RequestRefundActivity::class.java).apply { Intent(context, RequestRefundActivity::class.java).apply {
putExtra(ConstantString.SetMeal, item) putExtra(ConstantString.SetMeal, item)
mHistoryActivity.startActivity(this) mHistoryActivity.startActivity(this)
@@ -155,12 +179,14 @@ class SubscriptionHistoryAdapter(
} }
} }
val state = val cTimeMillis = System.currentTimeMillis()
if (item.enabled == ConstantInt.Type0 || (item.surplusDays == 0L && item.subscriptionStatus == ConstantInt.Close)) { val endTime = if (item.refundTime == 0L) item.endTime else item.refundTime
context.getString(R.string.txt_expired) val expiredTime = endTime * 1000 - cTimeMillis
} else { val state = if (item.enabled == ConstantInt.Type0 || (expiredTime <= 0)) {
context.getString(R.string.txt_active) context.getString(R.string.txt_expired)
} } else {
context.getString(R.string.txt_active)
}
holder.setText(R.id.tv_subscription_history_subscription_state, state) holder.setText(R.id.tv_subscription_history_subscription_state, state)
holder.getView<TextView>(R.id.tv_subscription_history_annual_care).apply { holder.getView<TextView>(R.id.tv_subscription_history_annual_care).apply {
@@ -170,4 +196,24 @@ class SubscriptionHistoryAdapter(
} }
} }
private fun setRefundState(
context: Context, isRefundable: Int, roundButton: TypefaceRoundButton
) {
roundButton.apply {
var textColor = R.color.select_color
val strokeColor = if (isRefundable == ConstantInt.Type1) {
R.color.block_color
} else {
textColor = R.color.line_color1
R.color.permission_no_check_color
}
(background as QMUIRoundButtonDrawable).let {
it.setStroke(
it.strokeWidth, ContextCompat.getColor(context, strokeColor)
)
}
setTextColor(ContextCompat.getColor(context, textColor))
}
}
} }

View File

@@ -0,0 +1,41 @@
package com.abbidot.tracker.adapter;
import android.content.Context;
import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* Created by .yzq on 2026/4/13/周一.
*
* @link
* @description:
*/
public class TopSlideLayoutManager extends LinearLayoutManager {
private int mTopOffset;
public TopSlideLayoutManager(Context context, int orientation, boolean reverseLayout) {
super(context, orientation, reverseLayout);
}
public void setTopOffset(int topOffset) {
mTopOffset = topOffset;
requestLayout();
}
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
super.onLayoutChildren(recycler, state);
// 可以在这里调整子项的位置,例如将顶部几个项上移
if (getChildCount() > 0) {
View firstChild = getChildAt(0);
if (firstChild != null) {
int top = getDecoratedTop(firstChild) - mTopOffset;
layoutDecoratedWithMargins(firstChild, firstChild.getLeft(), top,
firstChild.getRight(), top + firstChild.getHeight());
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More