liyubing

Merge remote-tracking branch 'origin/main'

Showing 61 changed files with 1060 additions and 60 deletions
... ... @@ -23,6 +23,10 @@
{
"name": "load_net_data_none",
"value": "no data"
},
{
"name": "location_reason",
"value": " "
}
]
}
... ...
{
"appKey": "662f39fecac2a664de284236",
"channel": "rmrb_china_0000"
}
\ No newline at end of file
... ...
... ... @@ -268,6 +268,18 @@
]
}
]
},
{
"name": "wdTracking",
"srcPath": "./features/wdTracking",
"targets": [
{
"name": "default",
"applyToProducts": [
"default"
]
}
]
}
]
}
\ No newline at end of file
... ...
... ... @@ -49,3 +49,5 @@ export { NetworkUtil } from './src/main/ets/utils/NetworkUtil'
export { NetworkManager } from './src/main/ets/network/NetworkManager'
export { NetworkType } from './src/main/ets/network/NetworkType'
export { UmengStats } from "./src/main/ets/umeng/UmengStats"
\ No newline at end of file
... ...
... ... @@ -6,5 +6,8 @@
"description": "Please describe the basic information.",
"main": "Index.ets",
"version": "1.0.0",
"dependencies": {}
"dependencies": {
"@umeng/common": "^1.0.21",
"@umeng/analytics": "^1.0.19"
}
}
... ...
import { preInit, InternalPlugin, setLogEnabled, init, onEventObject, onProfileSignOff,
onProfileSignIn } from '@umeng/analytics';
import { common } from '@kit.AbilityKit';
import { AccountManagerUtils } from '../utils/AccountManagerUtils';
import { UserDataLocal } from '../utils/UserDataLocal';
import { EmitterUtils } from '../utils/EmitterUtils';
export class UmengStats {
private static _inited = false
// 启动时调用
static preInit(context: common.UIAbilityContext) {
// 需在 AppScope/resources/rawfile/umconfig.json 配置key和channel
preInit({
context: context.getApplicationContext(),
plugins: [new InternalPlugin()],
enableLog: true
});
}
// 在用户同意隐私政策后再调用此方法
static initAfterAgreeProtocol() {
init();
UmengStats._inited = true
UmengStats.onLogin()
UmengStats.event("testHarmony", {"key1": "value1"})
}
// TODO: 登录成功调用
static onLogin() {
AccountManagerUtils.isLogin().then((login) => {
if (!login) { return }
let userId = UserDataLocal.getUserId()
if (userId.length > 0) {
onProfileSignIn("USER", userId)
}
})
}
// TODO: 退出登录调用
static onLogout() {
onProfileSignOff()
}
// 属性key,128位以内的非空字符串,value为256位以内的数值或字符串
static event(eventId: string, param?: Record<string, string | number>) {
if (!UmengStats._inited) {
return
}
onEventObject(eventId, param);
}
}
\ No newline at end of file
... ...
... ... @@ -73,7 +73,6 @@ export class DeviceUtil {
* 客户端日志链路追踪traceid生成:在每个请求头加上参数Key:EagleEye-TraceID ,value为32位生成随机值
*/
static getRandomUUIDForTraceID(): string {
deviceInfo.productModel
return util.generateRandomUUID().toUpperCase().replace('-', '')
return util.generateRandomUUID().toUpperCase().replace(/-/g, '')
}
}
... ...
import { SpConstants } from 'wdConstant';
import { DateTimeUtils, DeviceUtil, SPHelper, StringUtils } from 'wdKit';
import { AppUtils, DateTimeUtils, DeviceUtil, SPHelper, StringUtils } from 'wdKit';
import { HttpUtils } from '../utils/HttpUtils';
import { HostEnum, HostManager } from './HttpHostManager';
... ... @@ -19,8 +19,8 @@ export class HttpParams {
headers['adcode'] = HttpUtils.getProvinceCode()
headers['os_version'] = DeviceUtil.getOsVersion()
headers['system'] = 'Android' // TODO 后续是否新增鸿蒙标识
headers['versionCode'] = HttpParams.getVersionCode()
headers['version_name'] = HttpParams.getVersionName()
headers['versionCode'] = AppUtils.getAppVersionCode()
headers['version_name'] = AppUtils.getAppVersionName()
headers['EagleEye-TraceID'] = DeviceUtil.getRandomUUIDForTraceID()
headers['imei'] = DeviceUtil.clientId()
headers['Accept-Language'] = 'zh'
... ...
... ... @@ -4,6 +4,7 @@ import { Logger } from 'wdKit/Index';
import { performJSCallNative } from './JsBridgeBiz';
import { H5CallNativeType } from './H5CallNativeType';
import { Message } from 'wdJsBridge/src/main/ets/bean/Message';
import { DateTimeUtils } from 'wdKit'
const TAG = 'WdWebLocalComponent';
... ... @@ -22,6 +23,13 @@ export struct WdWebLocalComponent {
@State positionLeft: number = 0
@State positionTop: number = 0
@State videoLandscape: string = '1'
@State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
@State sliderStartTime: string = '';
@State currentTime: number = 0;
@State durationTime: number = 0;
@State durationStringTime: string = '';
@State isPause: boolean = true;
controller: VideoController = new VideoController()
build() {
Column() {
... ... @@ -77,22 +85,87 @@ export struct WdWebLocalComponent {
})
if (this.videoUrl) {
Video({ src: this.videoUrl })
.autoPlay(true)
.objectFit(ImageFit.Contain)
.width(this.positionWidth)
.height(this.positionHeight)
.borderRadius(5)
.alignRules({
top: { anchor: "__container__", align: VerticalAlign.Top },
Stack({ alignContent: Alignment.Bottom }) {
Video({
src: this.videoUrl,
currentProgressRate: this.curRate,
controller: this.controller
})
.offset({
x: this.positionLeft,
y: this.positionTop
})
.id("video")
}
.borderRadius(5)
.controls(false)
.autoPlay(true)
.objectFit(ImageFit.Contain)
.onStart(() => {
this.isPause = false
})
.onPause(() => {
this.isPause = true
})
.onPrepared((event) => {
if (event) {
this.durationTime = event.duration
}
})
.onUpdate((event) => {
if (event) {
this.currentTime = event.time
}
})
Row() {
Image($r(this.isPause ? 'app.media.icon_play' : 'app.media.icon_pause'))
.width(24)
.height(24)
.onClick(()=>{
if(this.isPause){
this.controller.start()
}else{
this.controller.pause()
}
})
Row() {
Text(DateTimeUtils.getFormattedDuration(this.currentTime * 1000)).fontSize(12).fontColor(Color.White).fontWeight(600)
Slider({
value: this.currentTime,
min: 0,
max: this.durationTime
})
.width("50%")
.selectedColor('#ED2800')
.margin({ left: 4, right: 4 })
// .blockStyle({
// type: SliderBlockType.IMAGE,
// image: $r('app.media.slider_block')
// })
// .blockSize({ width: 18, height: 12 })
.onChange((value: number, mode: SliderChangeMode) => {
this.controller.setCurrentTime(value);
})
Text(DateTimeUtils.getFormattedDuration(this.durationTime * 1000)).fontSize(12).fontColor(Color.White).fontWeight(600)
}
.justifyContent(FlexAlign.Center)
Image($r('app.media.icon_full_screen'))
.width(24)
.height(24)
.onClick(()=>{
this.controller.requestFullscreen(true)
})
}
.opacity(0.8)
.width("100%")
.justifyContent(FlexAlign.SpaceAround)
}
.width(this.positionWidth)
.height(this.positionHeight)
.alignRules({
top: { anchor: "__container__", align: VerticalAlign.Top },
})
.offset({
x: this.positionLeft,
y: this.positionTop
})
.id("video")
}
}
}.width('100%')
.height(this.webHeight)
... ...
import { Logger, NumberFormatterUtils, DateTimeUtils, EmitterUtils, EmitterEventId, NetworkUtil } from 'wdKit';
import {
Logger,
NumberFormatterUtils,
DateTimeUtils,
EmitterUtils,
EmitterEventId,
NetworkUtil,
DisplayUtils
} from 'wdKit';
import {
Action,
ContentDetailDTO,
... ... @@ -41,6 +49,7 @@ export struct ImageAndTextPageComponent {
@State publishCommentModel: publishCommentModel = new publishCommentModel()
@State operationButtonList: string[] = ['comment', 'collect', 'share']
@State isNetConnected: boolean = true
@State info: Area | null = null
build() {
Column() {
... ... @@ -131,8 +140,11 @@ export struct ImageAndTextPageComponent {
Divider().strokeWidth(6).color('#f5f5f5')
CommentComponent({
publishCommentModel: this.publishCommentModel
}).onAreaChange((oldValue: Area, newValue: Area) => {
this.info = newValue
})
// .onMeasureSize()
}
}
}
... ... @@ -144,28 +156,25 @@ export struct ImageAndTextPageComponent {
.scrollBar(BarState.Off)
.align(Alignment.Top)
if(!this.isNetConnected) {
if (!this.isNetConnected) {
EmptyComponent({
emptyType: 1,
emptyButton: true,
retry: () => {
this.getDetail()
}
})
}else{
}).padding({ bottom: 200 })
} else {
if (!this.isPageEnd) {
detailedSkeleton()
}
}
//底部交互区
if (this.contentDetailData?.length) {
OperRowListView({
contentDetailData: this.contentDetailData[0],
publishCommentModel: this.publishCommentModel,
operationButtonList: this.operationButtonList,
})
}
OperRowListView({
contentDetailData: this.contentDetailData[0],
publishCommentModel: this.publishCommentModel,
operationButtonList: this.operationButtonList,
})
}
}
... ... @@ -308,7 +317,16 @@ export struct ImageAndTextPageComponent {
if (targetId) {
if (targetId == this.publishCommentModel.targetId) {
// 滚动到评论列表
if (this.info) {
// let height = DisplayUtils.getDeviceHeight() / 2
let offSetY = this.info?.globalPosition.y as number
//头部距离48
this.scroller.scrollTo({
yOffset: offSetY - 100,
xOffset: 0,
animation: { duration: 1000, curve: Curve.Ease }
})
}
}
}
})
... ...
... ... @@ -182,9 +182,6 @@ export struct CommentComponent {
if (this.hasMore === false) NoMoreLayout()
}
}
// .onScrollFrameBegin((offset: number, state: ScrollState)=>{
//
// })
.onReachEnd(()=>{
if (this.hasMore) {
this.getData()
... ...
... ... @@ -319,7 +319,7 @@ struct ChannelDialog {
}
}
}),
PanGesture({ fingers: 1, direction: null, distance: 0 })
PanGesture({ fingers: 1, direction: this.isEditIng ? PanDirection.All:PanDirection.None, distance: 0 })
.onActionStart((event: GestureEvent) => {
this.dragItem = item.num
this.dragRefOffsetX = 0
... ...
... ... @@ -3,6 +3,7 @@ import { RefreshLayoutBean } from './RefreshLayoutBean';
/**
* Custom layout to show refresh or load.
* @deprecated
*/
@Component
export default struct CustomLayout {
... ...
... ... @@ -3,8 +3,6 @@ import { Logger } from 'wdKit';
import { EmptyComponent } from '../view/EmptyComponent';
import PageModel from '../../viewmodel/PageModel';
import { autoRefresh, listTouchEvent } from '../../utils/PullDownRefresh';
import RefreshLayout from './RefreshLayout';
import { RefreshLayoutBean } from './RefreshLayoutBean';
import LoadMoreLayout from './LoadMoreLayout';
import { CompParser } from '../CompParser';
import { CompDTO } from 'wdBean';
... ... @@ -14,6 +12,8 @@ import { ProcessUtils } from 'wdRouter/Index';
import PageAdModel from '../../viewmodel/PageAdvModel';
import PageNoMoreLayout from './PageNoMoreLayout';
import { NoMoreBean } from './NoMoreBean';
import { RefreshLayoutBean } from '../refresh/RefreshLayoutBean';
import RefreshLayout from '../refresh/RefreshLayout';
const TAG = 'PageComponent';
... ... @@ -66,8 +66,8 @@ export struct PageComponent {
// 下拉刷新
ListItem() {
RefreshLayout({
refreshBean: new RefreshLayoutBean(this.pageModel.isVisiblePullDown, this.pageModel.pullDownRefreshImage,
this.pageModel.pullDownRefreshText, this.pageModel.pullDownRefreshHeight)
refreshBean: new RefreshLayoutBean(this.pageModel.isVisiblePullDown, this.pageModel.load,
this.pageModel.offsetY)
})
}
... ...
... ... @@ -3,6 +3,7 @@ import { RefreshLayoutBean } from './RefreshLayoutBean';
/**
* The refresh layout component.
* @deprecated
*/
@Component
export default struct RefreshLayout {
... ...
/**
* Custom refresh load layout data.
* @deprecated
*/
@Observed
export class RefreshLayoutBean {
... ...
import { RefreshLayoutBean } from '../refresh/RefreshLayoutBean';
import RefreshLoadLayout from '../refresh/RefreshLoadLayout';
/**
* The refresh layout component.
*/
@Component
export default struct RefreshLayout {
@ObjectLink refreshBean: RefreshLayoutBean;
build() {
Column() {
if (this.refreshBean.isVisible) {
RefreshLoadLayout({
refreshBean: new RefreshLayoutBean(this.refreshBean.isVisible, this.refreshBean.loadStatus, this.refreshBean.offset)
})
}
}
}
}
\ No newline at end of file
... ...
/**
* 下拉刷新数据bean.
*/
@Observed
export class RefreshLayoutBean {
/**
* Custom refresh load layout isVisible.
*/
isVisible: boolean;
loadStatus: number; // 1-下拉刷新 2-松开刷新 3-刷新完成
offset: number;
constructor(isVisible: boolean, loadStatus: LoadStatus, offset: number) {
this.isVisible = isVisible;
this.loadStatus = loadStatus;
this.offset = offset;
}
}
export const enum LoadStatus {
/**
* 触发刷新前,有下拉动作了
*/
IDLE,
/**
* 触发刷新前,有下拉动作了
*/
PRELOAD,
/**
* 刷新中
*/
LOADING,
/**
* 触发刷新结束,展示‘已更新最新’
*/
LOADED,
}
\ No newline at end of file
... ...
import lottie, { AnimationItem } from '@ohos/lottie';
import { LoadStatus, RefreshLayoutBean } from './RefreshLayoutBean';
/**
* Custom layout to show refresh or load.
* TODO 待优化
*/
@Component
export default struct CustomLayout {
// 设置刷新view高度
static readonly REFRESH_HEIGHT: number = 90;
@ObjectLink @Watch('onOffsetChange') refreshBean: RefreshLayoutBean;
private mainRenderingSettings: RenderingContextSettings = new RenderingContextSettings(true)
private mainCanvasRenderingContext: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.mainRenderingSettings)
private mainRenderingSettings2: RenderingContextSettings = new RenderingContextSettings(true)
private mainCanvasRenderingContext2: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.mainRenderingSettings2)
private animateItem: AnimationItem | null = null;
private animateItem2: AnimationItem | null = null;
private animateName: string = "refresh";
private animateName2: string = "refreshing";
@State private layoutHeight: number = 0;
build() {
Stack({ alignContent: Alignment.Center }) {
Canvas(this.mainCanvasRenderingContext)
.width(60)
.height(60)
.backgroundColor(Color.Transparent)
.onReady(() => {
// 可在此生命回调周期中加载动画,可以保证动画尺寸正确
//抗锯齿的设置
this.mainCanvasRenderingContext.imageSmoothingEnabled = true;
this.mainCanvasRenderingContext.imageSmoothingQuality = 'medium'
})
.onDisAppear(() => {
lottie.destroy(this.animateName);
})
.visibility(this.refreshBean.loadStatus === LoadStatus.PRELOAD ? Visibility.Visible : Visibility.Hidden)
Canvas(this.mainCanvasRenderingContext2)
.width(60)
.height(60)
.backgroundColor(Color.Transparent)
.onReady(() => {
// 可在此生命回调周期中加载动画,可以保证动画尺寸正确
//抗锯齿的设置
this.mainCanvasRenderingContext2.imageSmoothingEnabled = true;
this.mainCanvasRenderingContext2.imageSmoothingQuality = 'medium'
})
.onDisAppear(() => {
lottie.destroy(this.animateName2);
})
.visibility(this.refreshBean.loadStatus === LoadStatus.LOADING ? Visibility.Visible : Visibility.Hidden)
Text('已更新至最新')
.fontSize(17)
.textAlign(TextAlign.Center)
.fontColor('#bbbbbb')
.visibility(this.refreshBean.loadStatus != LoadStatus.LOADED ? Visibility.Hidden : Visibility.Visible)
}
.clip(true)
.width('100%')
.height(this.layoutHeight)
}
animate1(offset: number) {
if (this.animateItem == null) {
this.animateItem = lottie.loadAnimation({
container: this.mainCanvasRenderingContext,
renderer: 'canvas', // canvas 渲染模式
loop: 1,
autoplay: true,
name: this.animateName,
path: "lottie/refresh_step1.json", // 路径加载动画只支持entry/src/main/ets 文件夹下的相对路径
})
}
this.animateItem.goToAndStop(1)
let total = CustomLayout.REFRESH_HEIGHT
let progress = offset * 100 / total
this.animateItem?.goToAndStop(this.getFramesByProgress(progress), true);
}
animate2() {
if (this.animateItem2 == null) {
this.animateItem2 = lottie.loadAnimation({
container: this.mainCanvasRenderingContext2,
renderer: 'canvas', // canvas 渲染模式
loop: 10,
autoplay: true,
name: this.animateName2,
path: "lottie/refresh_step2.json", // 路径加载动画只支持entry/src/main/ets 文件夹下的相对路径
})
}
// this.animateItem2.isLoaded
// TODO 是否拦截重复触发
this.animateItem2.goToAndPlay(1)
}
getFramesByProgress(progress: number): number {
if (this.animateItem == null) {
return 1;
}
let progressTmp = progress
let total = this.animateItem.totalFrames;
let frame = Math.floor(total * progressTmp / 100);
if (frame >= total - 1) {
frame = total - 1
}
return frame;
}
onOffsetChange() {
if (!this.refreshBean.isVisible) {
return
}
if (this.refreshBean.loadStatus === LoadStatus.PRELOAD) {
// 下拉刷新
this.animate1(this.refreshBean.offset)
} else if (this.refreshBean.loadStatus == LoadStatus.LOADING) {
// 正在刷新
this.animate2()
} else {
// 刷新完成
lottie.destroy()
}
let maxH = CustomLayout.REFRESH_HEIGHT
let tmpHeight = this.refreshBean.offset > maxH ? maxH : this.refreshBean.offset
if (this.refreshBean.loadStatus === LoadStatus.LOADED) {
if (tmpHeight <= 0) {
setTimeout(() => {
// 延时设置0,让“已更新到最新”展示
this.layoutHeight = 0
}, 1500)
}
} else {
// 直接设置高度
this.layoutHeight = tmpHeight
}
}
}
\ No newline at end of file
... ...
... ... @@ -231,7 +231,7 @@ export struct EmptyComponent {
} else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoSearchResult) {
imageString = $r('app.media.icon_no_result')
} else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoNetwork) {
imageString = $r('app.media.icon_no_net')
imageString = $r('app.media.icon_no_net1')
} else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_ContentFailed) {
imageString = $r('app.media.icon_no_content')
} else if (this.emptyType === WDViewDefaultType.WDViewDefaultType_NoCreation) {
... ...
... ... @@ -3,6 +3,7 @@ import { touchMoveLoadMore, touchUpLoadMore } from './PullUpLoadMore';
import PageModel from '../viewmodel/PageModel';
import PageHelper from '../viewmodel/PageHelper';
import PageAdModel from '../viewmodel/PageAdvModel';
import { LoadStatus } from '../components/refresh/RefreshLayoutBean';
export function listTouchEvent(pageModel: PageModel, pageAdvModel: PageAdModel, event: TouchEvent) {
switch (event.type) {
... ... @@ -46,7 +47,7 @@ export function listTouchEvent(pageModel: PageModel, pageAdvModel: PageAdModel,
export function touchMovePullRefresh(pageModel: PageModel, event: TouchEvent) {
if (pageModel.startIndex === 0) {
pageModel.isPullRefreshOperation = true;
let height = vp2px(pageModel.pullDownRefreshHeight);
let height = vp2px(Const.CUSTOM_REFRESH_DECIDE_HEIGHT);
pageModel.offsetY = event.touches[0].y - pageModel.downY;
// The sliding offset is greater than the pull-down refresh layout height, and the refresh condition is met.
if (pageModel.offsetY >= height) {
... ... @@ -98,12 +99,14 @@ export function pullRefreshState(pageModel: PageModel, state: number) {
pageModel.isCanRefresh = false;
pageModel.isRefreshing = false;
pageModel.isVisiblePullDown = true;
pageModel.load = LoadStatus.PRELOAD
break;
case RefreshState.Release:
pageModel.pullDownRefreshText = $r('app.string.release_refresh_text');
pageModel.pullDownRefreshImage = $r('app.media.ic_pull_up_refresh');
pageModel.isCanRefresh = true;
pageModel.isRefreshing = false;
pageModel.load = LoadStatus.PRELOAD
break;
case RefreshState.Refreshing:
pageModel.offsetY = vp2px(pageModel.pullDownRefreshHeight);
... ... @@ -111,18 +114,21 @@ export function pullRefreshState(pageModel: PageModel, state: number) {
pageModel.pullDownRefreshImage = $r('app.media.ic_pull_up_load');
pageModel.isCanRefresh = true;
pageModel.isRefreshing = true;
pageModel.load = LoadStatus.LOADING
break;
case RefreshState.Success:
pageModel.pullDownRefreshText = $r('app.string.refresh_success_text');
pageModel.pullDownRefreshImage = $r('app.media.ic_succeed_refresh');
pageModel.isCanRefresh = true;
pageModel.isRefreshing = true;
pageModel.load = LoadStatus.LOADED
break;
case RefreshState.Fail:
pageModel.pullDownRefreshText = $r('app.string.refresh_fail_text');
pageModel.pullDownRefreshImage = $r('app.media.ic_fail_refresh');
pageModel.isCanRefresh = true;
pageModel.isRefreshing = true;
pageModel.load = LoadStatus.LOADED
break;
default:
break;
... ...
... ... @@ -36,6 +36,10 @@ export class RefreshConstants {
*/
static readonly CUSTOM_LAYOUT_HEIGHT: number = 80;
/**
* 下拉刷新,判定距离
*/
static readonly CUSTOM_REFRESH_DECIDE_HEIGHT: number = 20;
/**
* Full the width.
*/
static readonly FULL_WIDTH: string = '100%';
... ...
... ... @@ -6,6 +6,7 @@ import { PageUIReqBean } from '../components/page/bean/PageUIReqBean';
import { GroupInfoDTO, PageInfoDTO } from 'wdBean/src/main/ets/bean/navigation/PageInfoDTO';
import { AdvRuleBean, CompAdvBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
import { WDViewDefaultType } from '../components/view/EmptyComponent';
import { LoadStatus } from '../components/refresh/RefreshLayoutBean';
/**
* 页面下拉刷新、上拉加载数据bean。
... ... @@ -33,6 +34,7 @@ export default class PageModel {
pullDownRefreshImage: Resource = $r('app.media.ic_pull_down_refresh');
pullDownRefreshHeight: number = Const.CUSTOM_LAYOUT_HEIGHT;
isVisiblePullDown: boolean = false;
load: LoadStatus = LoadStatus.IDLE;
pullUpLoadText: Resource = $r('app.string.pull_up_load_text');
pullUpLoadImage: Resource = $r('app.media.ic_pull_up_load');
pullUpLoadHeight: number = Const.CUSTOM_LAYOUT_HEIGHT;
... ...
export { add } from "./src/main/ets/utils/Calc"
export { HWLocationUtils } from './src/main/ets/location/HWLocationUtils'
\ No newline at end of file
export { HWLocationUtils } from './src/main/ets/location/HWLocationUtils'
export { WDPushNotificationManager } from "./src/main/ets/notification/WDPushNotificationManager"
\ No newline at end of file
... ...
import { pushCommon, pushService } from '@kit.PushKit';
import { AAID } from '@kit.PushKit';
import { AccountManagerUtils, Logger, SPHelper, UserDataLocal } from 'wdKit/Index';
import { BusinessError } from '@kit.BasicServicesKit';
import notificationManager from '@ohos.notificationManager';
import { common, Want } from '@kit.AbilityKit';
const TAG = "NotificationManager"
/*
* 远程推送通知管理类
* Push Kit: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-introduction-0000001726287974
* Notification Kit: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/notification-overview-0000001822162741
* */
export class WDPushNotificationManager {
private static instance: WDPushNotificationManager
static getInstance() : WDPushNotificationManager {
if (!WDPushNotificationManager.instance) {
WDPushNotificationManager.instance = new WDPushNotificationManager()
}
return WDPushNotificationManager.instance
}
async requestEnableNotifications(context: common.UIAbilityContext) : Promise<boolean> {
let enabled = await notificationManager.isNotificationEnabled()
if (!enabled) {
try {
await notificationManager.requestEnableNotification(context)
enabled = true
} catch (err) {
Logger.error(TAG, "请求通知权限报错: " + JSON.stringify(err))
let error = err as BusinessError
if (error.code == 1600004) {
Logger.error(TAG, "请求通知权限 - 用户已拒绝")
}
}
}
Logger.info(TAG, "推送 enabled " + enabled)
return enabled
}
async fetchTokenAndBindProfileId() {
try {
const pushToken: string = await pushService.getToken();
Logger.info(TAG, "获取推送token: " + pushToken)
//TODO: pushToken 上传至服务器
SPHelper.default.save("devicePushToken", pushToken)
if (AccountManagerUtils.isLoginSync()) {
this.bindUserProfileId(UserDataLocal.getUserId())
}
} catch (err) {
Logger.error(TAG, "获取推送token失败: " + JSON.stringify(err))
}
}
// 禁止推送
stopPush() {
pushService.deleteToken()
}
/// 应用匿名标识符
async getAAID() {
let aaid: string = ""
try {
aaid = await AAID.getAAID();
Logger.info(TAG, "获取应用匿名标识符AAID: " + aaid)
} catch (err) {
Logger.error(TAG, "获取应用匿名标识符AAID失败: " + JSON.stringify(err))
}
return aaid
}
// TODO: 登录时调用
bindUserProfileId(profileId: string) {
pushService.bindAppProfileId(pushCommon.AppProfileType.PROFILE_TYPE_APPLICATION_ACCOUNT, profileId).then(() => {
Logger.info(TAG, "推送绑定profileId 成功: " + profileId)
}).catch((err: BusinessError) => {
Logger.error(TAG, "推送绑定profileId失败: " + profileId + " " + JSON.stringify(err))
});
}
unbindUserProfileId(profileId: string) {
pushService.unbindAppProfileId(profileId).then(() => {
Logger.info(TAG, "推送解绑profileId 成功: " + profileId)
}).catch((err: BusinessError) => {
Logger.error(TAG, "推送解绑profileId失败: " + profileId + " " + JSON.stringify(err))
});
}
sendLocalNotification() {
let notificationRequest: notificationManager.NotificationRequest = {
id: 1,
content: {
notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
normal: {
title: "test_title",
text: "test_text",
additionalText: "test_additionalText"
}
}
};
notificationManager.publish(notificationRequest).then(() => {
console.info("publish success");
}).catch((err: BusinessError) => {
console.error(`publish fail: ${JSON.stringify(err)}`);
});
}
setBadgeNumber(number: number) : Promise<void> {
return notificationManager.setBadgeNumber(number)
}
// 接收推送数据,包括启动和二次点击拉起
// 参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-dev-0000001727885258
onWant(want: Want) {
Logger.info(TAG, "接收到推送?: " + JSON.stringify(want.parameters))
}
}
\ No newline at end of file
... ...
... ... @@ -3,10 +3,6 @@
{
"name": "shared_desc",
"value": "description"
},
{
"name": "location_reason",
"value": " "
}
]
}
\ No newline at end of file
... ...
import { Logger, EmitterEventId, EmitterUtils } from 'wdKit'
import { Logger, EmitterEventId, EmitterUtils, DateTimeUtils } from 'wdKit'
import { CustomProtocolDialog } from './CustomProtocolDialog'
import router from '@ohos.router'
import { LoginViewModel } from './LoginViewModel'
... ... @@ -45,6 +45,7 @@ struct LoginPage {
@State checkCodePage: boolean = true //判断是否是验证码页面 默认验证码登录
@State passwordSwitch: boolean = true //密码显示
// @State isPasswordSubmit: boolean = false //账户密码状态 是否出发登录
lastTime: number = 0
dialogController: CustomDialogController = new CustomDialogController({
builder: CustomProtocolDialog({
... ... @@ -136,7 +137,12 @@ struct LoginPage {
if (!this.isSubmit) {
return
}
this.loginSubmit()
let currentTime = DateTimeUtils.getTimeStamp()
if (currentTime - this.lastTime > 500) {
this.lastTime = currentTime
this.loginSubmit()
}
})
}.padding({ left: 25, right: 25 }).width('100%')
... ...
... ... @@ -3,6 +3,7 @@ import { Params } from 'wdBean/Index'
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
import HuaweiAuth from '../../utils/HuaweiAuth'
import { BusinessError } from '@kit.BasicServicesKit'
import { ToastUtils } from 'wdKit/Index'
@Entry
@Component
... ... @@ -44,8 +45,13 @@ struct OneKeyLoginPage {
return
}
HuaweiAuth.sharedInstance().oneKeyLogin().then((authorizeCode) => {
//TODO: 调用服务端接口登录
ToastUtils.shortToast("获取到授权code: " + authorizeCode + ",由于需要后台接口支持,暂时先跳转其他登录方式")
setTimeout(() => {
router.replaceUrl({url: WDRouterPage.loginPage.url()})
}, 3000)
}).catch((error: BusinessError) => {
})
... ...
... ... @@ -9,7 +9,7 @@ const TAG = "HuaweiOneKeyAuth"
export default class HuaweiAuth {
// 是否开启
static enable = false
static enable = true
// 匿名手机号
private _anonymousPhone?: string
get anonymousPhone() {
... ...
... ... @@ -15,12 +15,12 @@ enum LogLevel {
/**
* Common log for all features.
*
* @deprecated 弃用
* @param {string} prefix Identifies the log tag.
*/
export class Logger {
private static domain: number = 0xFF00;
private static prefix: string = 'MiguVideoApp';
private static prefix: string = 'SightApp';
private static format: string = `%{public}s, %{public}s`;
/**
... ... @@ -29,7 +29,7 @@ export class Logger {
* @param Prefix Identifies the log tag.
* @param domain Domain Indicates the service domain, which is a hexadecimal integer ranging from 0x0 to 0xFFFFF.
*/
constructor(prefix: string = 'MiguVideoApp', domain: number = 0xFF00) {
constructor(prefix: string = 'SightApp', domain: number = 0xFF00) {
Logger.prefix = prefix;
Logger.domain = domain;
}
... ... @@ -59,4 +59,4 @@ export class Logger {
}
}
export default new Logger('MiguVideoApp', 0xFF00)
\ No newline at end of file
export default new Logger('SightApp', 0xFF00)
\ No newline at end of file
... ...
/node_modules
/oh_modules
/.preview
/build
/.cxx
/.test
\ No newline at end of file
... ...
export { TrackingModule } from "./src/main/ets/TrackingModule"
\ No newline at end of file
... ...
{
"apiType": "stageMode",
"buildOption": {
},
"buildOptionSet": [
{
"name": "release",
"arkOptions": {
"obfuscation": {
"ruleOptions": {
"enable": true,
"files": [
"./obfuscation-rules.txt"
]
}
}
},
},
],
"targets": [
{
"name": "default"
}
]
}
\ No newline at end of file
... ...
import { hspTasks } from '@ohos/hvigor-ohos-plugin';
export default {
system: hspTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
plugins:[] /* Custom plugin to extend the functionality of Hvigor. */
}
... ...
# Define project specific obfuscation rules here.
# You can include the obfuscation configuration files in the current module's build-profile.json5.
#
# For more details, see
# https://gitee.com/openharmony/arkcompiler_ets_frontend/blob/master/arkguard/README.md
# Obfuscation options:
# -disable-obfuscation: disable all obfuscations
# -enable-property-obfuscation: obfuscate the property names
# -enable-toplevel-obfuscation: obfuscate the names in the global scope
# -compact: remove unnecessary blank spaces and all line feeds
# -remove-log: remove all console.* statements
# -print-namecache: print the name cache that contains the mapping from the old names to new names
# -apply-namecache: reuse the given cache file
# Keep options:
# -keep-property-name: specifies property names that you want to keep
# -keep-global-name: specifies names that you want to keep in the global scope
\ No newline at end of file
... ...
{
"meta": {
"stableOrder": true
},
"lockfileVersion": 3,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": {
"@ohos/axios@^2.1.1": "@ohos/axios@2.2.0",
"@sensorsdata/analytics@^0.0.2": "@sensorsdata/analytics@0.0.2",
"@umeng/analytics@^1.0.19": "@umeng/analytics@1.0.19",
"@umeng/common@^1.0.21": "@umeng/common@1.0.21",
"libcommon.so@../../oh_modules/.ohpm/@umeng+common@1.0.21/oh_modules/@umeng/common/src/main/cpp/types/libcommon": "libcommon.so@../../oh_modules/.ohpm/@umeng+common@1.0.21/oh_modules/@umeng/common/src/main/cpp/types/libcommon",
"wdBean@../wdBean": "wdBean@../wdBean",
"wdConstant@../../commons/wdConstant": "wdConstant@../../commons/wdConstant",
"wdHwAbility@../wdHwAbility": "wdHwAbility@../wdHwAbility",
"wdJsBridge@../../commons/wdJsBridge": "wdJsBridge@../../commons/wdJsBridge",
"wdKit@../../commons/wdKit": "wdKit@../../commons/wdKit",
"wdLogin@../wdLogin": "wdLogin@../wdLogin",
"wdNetwork@../../commons/wdNetwork": "wdNetwork@../../commons/wdNetwork",
"wdRouter@../../commons/wdRouter": "wdRouter@../../commons/wdRouter",
"wdWebComponent@../../commons/wdWebComponent": "wdWebComponent@../../commons/wdWebComponent"
},
"packages": {
"@ohos/axios@2.2.0": {
"name": "@ohos/axios",
"integrity": "sha512-v1QBWk6DfcN8wUW3D0ieFbHTR1taSI5cOgxp5l6B5cegXuNYhSc8ggKlAIXe6h/14LsfM+NW0ZGfSXcNEIM5yA==",
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/axios/-/axios-2.2.0.har",
"registryType": "ohpm"
},
"@sensorsdata/analytics@0.0.2": {
"name": "@sensorsdata/analytics",
"integrity": "sha512-SQCEmOw8ftGJmKtPl/1qUczZqu/yoQ4F2QHpK2Mayk+XctvNDSHn4QWengHj/pg36AopvuVfa0i6KR9c4KiIuQ==",
"resolved": "https://ohpm.openharmony.cn/ohpm/@sensorsdata/analytics/-/analytics-0.0.2.har",
"registryType": "ohpm"
},
"@umeng/analytics@1.0.19": {
"name": "@umeng/analytics",
"integrity": "sha512-0m9z5l8to+POjDl9UkCQC8s4P+e2E1OILwUglC7ME4QwqfH44e59GLJtQdwF0h6kwpsy3YBft4SoWK8MYbuP7g==",
"resolved": "https://ohpm.openharmony.cn/ohpm/@umeng/analytics/-/analytics-1.0.19.har",
"registryType": "ohpm"
},
"@umeng/common@1.0.21": {
"name": "@umeng/common",
"integrity": "sha512-EbXsd4OoRisTQf5egNY/+z1D2bvrYw9VwC2xu3EJA9TiDPSbnaJZ5+yltA/Se6yZ4oCcFvq6e5/AAfPuumunbw==",
"resolved": "https://ohpm.openharmony.cn/ohpm/@umeng/common/-/common-1.0.21.har",
"registryType": "ohpm",
"dependencies": {
"libcommon.so": "./src/main/cpp/types/libcommon"
}
},
"libcommon.so@../../oh_modules/.ohpm/@umeng+common@1.0.21/oh_modules/@umeng/common/src/main/cpp/types/libcommon": {
"name": "libcommon.so",
"resolved": "../../oh_modules/.ohpm/@umeng+common@1.0.21/oh_modules/@umeng/common/src/main/cpp/types/libcommon",
"registryType": "local"
},
"wdBean@../wdBean": {
"name": "wdbean",
"resolved": "../wdBean",
"registryType": "local"
},
"wdConstant@../../commons/wdConstant": {
"name": "wdconstant",
"resolved": "../../commons/wdConstant",
"registryType": "local"
},
"wdHwAbility@../wdHwAbility": {
"name": "wdhwability",
"resolved": "../wdHwAbility",
"registryType": "local",
"dependencies": {
"wdConstant": "file:../../commons/wdConstant",
"wdLogin": "file:../../features/wdLogin",
"wdKit": "file:../../commons/wdKit",
"wdBean": "file:../../features/wdBean",
"wdNetwork": "file:../../commons/wdNetwork"
},
"packageType": "InterfaceHar"
},
"wdJsBridge@../../commons/wdJsBridge": {
"name": "wdjsbridge",
"resolved": "../../commons/wdJsBridge",
"registryType": "local"
},
"wdKit@../../commons/wdKit": {
"name": "wdkit",
"resolved": "../../commons/wdKit",
"registryType": "local",
"dependencies": {
"@umeng/common": "^1.0.21",
"@umeng/analytics": "^1.0.19"
}
},
"wdLogin@../wdLogin": {
"name": "wdlogin",
"resolved": "../wdLogin",
"registryType": "local",
"dependencies": {
"wdConstant": "file:../../commons/wdConstant",
"wdKit": "file:../../commons/wdKit",
"wdWebComponent": "file:../../commons/wdWebComponent",
"wdBean": "file:../../features/wdBean",
"wdRouter": "file:../../commons/wdRouter",
"wdNetwork": "file:../../commons/wdNetwork"
}
},
"wdNetwork@../../commons/wdNetwork": {
"name": "wdnetwork",
"resolved": "../../commons/wdNetwork",
"registryType": "local",
"dependencies": {
"wdConstant": "file:../wdConstant",
"wdKit": "file:../wdKit",
"@ohos/axios": "^2.1.1"
}
},
"wdRouter@../../commons/wdRouter": {
"name": "wdrouter",
"resolved": "../../commons/wdRouter",
"registryType": "local",
"dependencies": {
"wdKit": "file:../wdKit",
"wdBean": "file:../../features/wdBean",
"wdNetwork": "file:../../commons/wdNetwork",
"wdConstant": "file:../../commons/wdConstant"
}
},
"wdWebComponent@../../commons/wdWebComponent": {
"name": "wdwebcomponent",
"resolved": "../../commons/wdWebComponent",
"registryType": "local",
"dependencies": {
"wdConstant": "file:../wdConstant",
"wdKit": "file:../wdKit",
"wdJsBridge": "file:../wdJsBridge",
"wdBean": "file:../../features/wdBean",
"wdRouter": "file:../wdRouter",
"wdNetwork": "file:../wdNetwork"
}
}
}
}
\ No newline at end of file
... ...
{
"name": "wdtracking",
"version": "1.0.0",
"description": "Please describe the basic information.",
"main": "Index.ets",
"author": "",
"license": "Apache-2.0",
"packageType": "InterfaceHar",
"dependencies": {
"@sensorsdata/analytics": "^0.0.2",
"wdKit": "file:../../commons/wdKit",
"wdBean": "file:../../features/wdBean",
"wdNetwork": "file:../../commons/wdNetwork",
// "wdHwAbility": "file:../../features/wdHwAbility",
"wdConstant": "file:../../commons/wdConstant"
}
}
\ No newline at end of file
... ...
import sensors from '@sensorsdata/analytics';
import { common } from '@kit.AbilityKit';
import { HostEnum, HostManager } from 'wdNetwork/Index';
/// 统计埋点模块
export class TrackingModule {
private static _init = false
static getHasInit() {
return TrackingModule._init;
}
/// 初始化
static startup(context: common.UIAbilityContext) {
// const isOnlineEnv = HostManager.getHost() === HostEnum.HOST_PRODUCT
//
// sensors.init({
// // 服务器接收地址
// server_url: isOnlineEnv ? '正式地址' : "测试地址",
// // Ability 上下文
// context: context,
// // 是否显示日志
// show_log: true,
// // 是否开启采集位置信息,需要 app 授权,默认 false
// enable_track_location: true,
// // 是否开启批量发送,默认 false
// batch_send: true,
// // 数据发送超时时间
// datasend_timeout: 10000,
// // 开启 App 打通 H5
// app_js_bridge: false
// });
// TrackingModule._init = true
}
}
\ No newline at end of file
... ...
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
\ No newline at end of file
... ...
import { SpConstants } from 'wdConstant/Index';
import { DeviceUtil, SPHelper, StringUtils } from 'wdKit/Index';
import { HostEnum, HostManager } from 'wdNetwork/Index';
export type ParamType = Record<string, string | number | boolean | Array<string>>
export class PublicParams {
getPublicParams() : Promise<ParamType> {
return new Promise((resolve) => {
let pub: ParamType = {
"userName":"",
"pdUseId":"",
"creatorId":"",
"pdCnsBirthday":"",
"city": PublicParams.getLocationCity(),
"sex":"",
"isSign":"0",
"environment": PublicParams.getEnv(),
"os": "harmonyos",
"actionTime": new Date().getTime() * 0.001,
"channel": "rmrb_china_0000",
"version": PublicParams.getVersionName(),
"deviceId": DeviceUtil.clientId(),
"model":"",
"mpaasId": PublicParams.getMpaasId(),
}
resolve(pub)
})
}
private static getEnv() {
switch (HostManager.getHost()) {
case HostEnum.HOST_UAT:
return "uat"
case HostEnum.HOST_SIT:
return "sit"
case HostEnum.HOST_PRODUCT:
return "prod"
case HostEnum.HOST_DEV:
return "dev"
default:
return "prod"
}
}
private static getLocationCity() {
let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string
if (StringUtils.isNotEmpty(cityName)) {
return encodeURI(cityName)
}
return ""
}
private static getBuildVersion() {
// TODO
return '202401242103';
}
private static getVersionCode() {
// TODO
return '10000';
}
private static getVersionName() {
// TODO 读取配置
return '1.0.0';
}
private static getMpaasId() {
// TODO
return 'alsjdflajxaljdlfjaldjfa';
}
}
... ...
import { Logger } from 'wdKit/Index';
import { TrackingModule } from '../TrackingModule';
import sensors from '@sensorsdata/analytics';
import { ParamType, PublicParams } from './PublicParams';
import { HashMap } from '@kit.ArkTS';
const TAG = "WDTracking"
export class Tracking {
static event(eventId: string, params?: ParamType) {
if (!TrackingModule.getHasInit()) {
Logger.warn(TAG, "还没有初始化 " + eventId + " " + JSON.stringify(params))
return
}
//TODO: 添加运行单独线程?
let publicParams = new PublicParams()
publicParams.getPublicParams().then((pubParams) => {
if (params) {
for (const obj of Object.entries(params)) {
Logger.info(TAG, ` ${obj[0]} => ` + `${obj[1]}`);
pubParams[obj[0]] = obj[1]
}
}
sensors.track(eventId, pubParams)
})
}
}
\ No newline at end of file
... ...
{
"module": {
"name": "wdTracking",
"type": "shared",
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
],
"deliveryWithInstall": true,
"pages": "$profile:main_pages"
}
}
\ No newline at end of file
... ...
{
"color": [
{
"name": "white",
"value": "#FFFFFF"
}
]
}
\ No newline at end of file
... ...
{
"string": [
{
"name": "shared_desc",
"value": "埋点封装库"
}
]
}
\ No newline at end of file
... ...
import localUnitTest from './LocalUnit.test';
export default function testsuite() {
localUnitTest();
}
\ No newline at end of file
... ...
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';
export default function localUnitTest() {
describe('localUnitTest',() => {
// Defines a test suite. Two parameters are supported: test suite name and test suite function.
beforeAll(() => {
// Presets an action, which is performed only once before all test cases of the test suite start.
// This API supports only one parameter: preset action function.
});
beforeEach(() => {
// Presets an action, which is performed before each unit test case starts.
// The number of execution times is the same as the number of test cases defined by **it**.
// This API supports only one parameter: preset action function.
});
afterEach(() => {
// Presets a clear action, which is performed after each unit test case ends.
// The number of execution times is the same as the number of test cases defined by **it**.
// This API supports only one parameter: clear action function.
});
afterAll(() => {
// Presets a clear action, which is performed after all test cases of the test suite end.
// This API supports only one parameter: clear action function.
});
it('assertContain', 0, () => {
// Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
let a = 'abc';
let b = 'b';
// Defines a variety of assertion methods, which are used to declare expected boolean conditions.
expect(a).assertContain(b);
expect(a).assertEqual(a);
});
});
}
\ No newline at end of file
... ...
... ... @@ -17,6 +17,7 @@
"wdNetwork": "file:../../commons/wdNetwork",
"wdHwAbility": "file:../../features/wdHwAbility",
"wdJsBridge": "file:../../commons/wdJsBridge",
"wdLogin": "file:../../features/wdLogin"
"wdLogin": "file:../../features/wdLogin",
"wdTracking": "file:../../features/wdTracking"
}
}
... ...
... ... @@ -12,14 +12,17 @@ import {
NetworkType,
SPHelper,
StringUtils,
UmengStats,
WindowModel
} from 'wdKit';
import { HostEnum, HostManager, WDHttp } from 'wdNetwork';
import { LoginModule } from 'wdLogin/src/main/ets/LoginModule';
import { ConfigurationConstant } from '@kit.AbilityKit';
import { WDPushNotificationManager } from 'wdHwAbility/Index';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
UmengStats.preInit(this.context)
SPHelper.init(this.context);
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
registerRouter();
... ... @@ -44,6 +47,13 @@ export default class EntryAbility extends UIAbility {
EmitterUtils.receiveEvent(EmitterEventId.NETWORK_DISCONNECTED, (() => {
Logger.info('network disconnected')
}))
WDPushNotificationManager.getInstance().onWant(want)
}
// App活着情况下,点击推送通知进入
onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
WDPushNotificationManager.getInstance().onWant(want)
}
onDestroy(): void {
... ...
lottie三方库,路径加载动画只支持entry/src/main/ets 文件夹下的相对路径
故,json动画文件统一放在这里。
\ No newline at end of file
... ...
{"v":"5.6.10","fr":60,"ip":0,"op":61,"w":216,"h":216,"nm":"阶段1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"形状图层 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"t":30,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[108,105.128,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":26,"s":[2,2]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":30,"s":[32,32]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":40,"s":[32,32]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":60,"s":[72,72]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":70,"s":[80,80]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":80,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":90,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":170,"s":[0,0]},{"t":180,"s":[80,80]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[0,0],"to":[0,0],"ti":[0,0]},{"t":180,"s":[0,0]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":170,"s":[40]},{"t":180,"s":[12]}],"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":61,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"形状图层 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"t":30,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[108,105.128,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":55,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":60,"s":[32,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":65,"s":[32,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":70,"s":[32,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":80,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":85,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":160,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":170,"s":[8,8]},{"t":180,"s":[32,8]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[0,0],"to":[-0.675,0],"ti":[1.667,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[0,0],"to":[-1.625,0],"ti":[0.74,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[-8,0],"to":[-0.47,0],"ti":[0.293,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[-8,0],"to":[-0.643,0],"ti":[-0.916,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[-9,0],"to":[1.333,0],"ti":[-1.5,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[0,0],"to":[-1.333,0],"ti":[1.333,0]},{"t":180,"s":[-8,0]}],"ix":3},"r":{"a":0,"k":4,"ix":4},"nm":"矩形路径 4","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":40,"s":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":60,"s":[50,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":65,"s":[16,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":70,"s":[50,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":80,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":90,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":100,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":110,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":115,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":135,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":140,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":150,"s":[16,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":160,"s":[16,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":170,"s":[24,8]},{"t":180,"s":[50,8]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[0,0],"to":[13.333,0],"ti":[0,3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[80,0],"to":[0,-3],"ti":[13.333,3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[0,-18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[-16,-18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[0,-18],"to":[-13.333,3],"ti":[-13.333,-3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[-80,0],"to":[6.982,1.571],"ti":[-36.763,0.427]},{"t":90,"s":[-4.023,11],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":100,"s":[-0.023,11],"to":[33.441,-0.389],"ti":[-12.702,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":110,"s":[80,0],"to":[26.667,0],"ti":[-36.763,0.427]},{"t":120,"s":[-5,1],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[-0.023,1],"to":[33.441,-0.389],"ti":[-12.702,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[80,0],"to":[26.667,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[-4,-20],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[-4,-20],"to":[0,0],"ti":[-12.702,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[80,0],"to":[26.667,0],"ti":[13.333,3]},{"t":180,"s":[0,-18]}],"ix":3},"r":{"a":0,"k":4,"ix":4},"nm":"矩形路径 3","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":40,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":60,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":65,"s":[50,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":70,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":80,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":90,"s":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":100,"s":[0,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":110,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":115,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":135,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":140,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":150,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":160,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":170,"s":[24,8]},{"t":180,"s":[24,8]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[0,0],"to":[-13.333,0],"ti":[2,-3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[-80,0],"to":[-2,3],"ti":[-11.333,-3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[-12,18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":65,"s":[0,18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":70,"s":[-12,18],"to":[15.333,-3],"ti":[11.333,3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":80,"s":[80,0],"to":[-5.54,-1.466],"ti":[34.366,0.891]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":89,"s":[-9,-10.939],"to":[-2.687,-0.07],"ti":[2.705,-0.032]},{"t":90,"s":[0,-11],"h":1},{"i":{"x":0.833,"y":0.813},"o":{"x":0.167,"y":0.167},"t":100,"s":[-0.023,-11],"to":[-33.471,0.39],"ti":[12.613,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.151},"t":110,"s":[-80,0],"to":[-26.667,0],"ti":[37.293,-0.434]},{"t":120,"s":[-1,-18],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":130,"s":[-1,-18],"to":[-33.471,0.39],"ti":[12.613,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":140,"s":[-80,0],"to":[-26.667,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[12,-20],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":160,"s":[12,-20],"to":[0,0],"ti":[12.613,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":170,"s":[-80,0],"to":[-26.667,0],"ti":[-11.333,-3]},{"t":180,"s":[-12,18]}],"ix":3},"r":{"a":0,"k":4,"ix":4},"nm":"矩形路径 5","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"矩形路径 6","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":61,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
... ...
{"v":"5.6.10","fr":30,"ip":0,"op":61,"w":216,"h":216,"nm":"循环","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"空 17","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[108,108,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[80,80,100],"ix":6}},"ao":0,"ip":0,"op":61,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"形状图层 9","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[],"ip":0,"op":62,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"形状图层 10","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[],"ip":0,"op":62,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"形状图层 8","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[],"ip":0,"op":62,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"形状图层 4","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[-128.719,-846.25,0],"ix":1},"s":{"a":0,"k":[75,75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-116.052,-812.547]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"形状 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-156.667,-856.417],[-157,-887.5],[-72.188,-887.5],[-72.25,-805],[-157,-805],[-157,-857.25],[-185.062,-876.875],[-185.25,-808.375],[-158,-828.688]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"圆角 1","r":{"a":0,"k":6,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"形状 1","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"t":55,"s":[100]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"修剪路径 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":5,"nm":"修剪路径 2","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":40,"op":62,"st":-30,"bm":0},{"ddd":0,"ind":7,"ty":3,"nm":"空 10","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,8,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":62,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"形状图层 6","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[],"ip":0,"op":62,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"形状图层 3","parent":7,"sr":0.55,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[-29.233,-8.102,0],"to":[5.206,0,0],"ti":[-5.206,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27.5,"s":[2,-8.102,0],"to":[0,0,0],"ti":[0,0,0]},{"t":30.000244140625,"s":[2,-8.102,0]}],"ix":2},"a":{"a":0,"k":[-161.25,-836.25,0],"ix":1},"s":{"a":0,"k":[75,75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.05,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-122.168,-825.454],[-122.187,-825.562],[-121.982,-825.563],[-122.169,-825.459],[-122.458,-825.25],[-122.125,-825.833],[-122.302,-825.428],[-122.263,-825.404],[-122.177,-825.24],[-122.129,-825.547],[-122.557,-825.307],[-122.006,-825.241],[-122.323,-825.531],[-122.287,-825.286],[-122.111,-825.556],[-122.067,-825.434],[-122.399,-825.651],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.325,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-122.168,-825.454],[-122.187,-825.562],[-121.982,-825.563],[-122.169,-825.459],[-122.458,-825.25],[-122.125,-825.833],[-122.302,-825.428],[-122.263,-825.404],[-122.177,-825.24],[-122.129,-825.547],[-122.557,-825.307],[-122.006,-825.241],[-122.323,-825.531],[-122.287,-825.286],[-122.111,-825.556],[-122.067,-825.434],[-122.399,-825.651],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.6,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.002,-0.002],[0.004,-0.004],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.008,0.008],[-0.012,0.012],[0,0]],"v":[[-104.503,-842.815],[-104.523,-842.923],[-104.317,-842.923],[-104.504,-842.819],[-104.794,-842.61],[-104.46,-843.194],[-104.637,-842.788],[-104.598,-842.765],[-104.512,-842.6],[-104.464,-842.908],[-104.892,-842.667],[-104.341,-842.602],[-104.658,-842.892],[-104.622,-842.647],[-104.446,-842.917],[-104.403,-842.794],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25.875,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.788,-0.816],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.118,4.266],[-5.943,5.974],[0,0]],"v":[[-105.501,-856.621],[-105.521,-856.729],[-105.315,-856.73],[-105.502,-856.625],[-105.792,-856.417],[-105.458,-857],[-105.635,-856.594],[-105.596,-856.571],[-105.51,-856.406],[-105.462,-856.714],[-105.89,-856.473],[-105.339,-856.408],[-105.656,-856.698],[-105.621,-856.453],[-105.444,-856.723],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26.15,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-128.668,-879.788],[-128.687,-879.896],[-128.482,-879.896],[-128.669,-879.792],[-128.958,-879.583],[-128.625,-880.167],[-128.802,-879.761],[-128.763,-879.738],[-128.677,-879.573],[-128.629,-879.881],[-129.057,-879.64],[-128.506,-879.574],[-128.823,-879.865],[-128.787,-879.62],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26.425,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.899,0.868],[-3.133,-3.104],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.047,-2.941],[6.288,6.23],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-141.642,-879.455],[-141.662,-879.563],[-141.456,-879.564],[-141.643,-879.459],[-141.933,-879.251],[-141.6,-879.834],[-141.776,-879.428],[-141.738,-879.405],[-141.652,-879.24],[-141.603,-879.548],[-142.032,-879.307],[-141.481,-879.242],[-141.797,-879.532],[-141.762,-879.287],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26.7,"s":[{"i":[[0,0],[-0.032,0.018],[-0.012,-0.068],[0.06,-0.039],[-0.014,0.118],[-0.148,0.168],[0.045,-0.14],[-0.008,-0.013],[-0.042,0.045],[0.102,0.018],[-0.118,0.114],[0,0],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,-0.036],[0.059,-0.035],[0.013,0.07],[-0.099,0.065],[0.026,-0.222],[0.097,-0.111],[-0.005,0.014],[0.034,0.052],[0.071,-0.076],[-0.161,-0.028],[2.702,-2.61],[0,0],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-161.668,-860.288],[-161.687,-860.396],[-161.482,-860.396],[-161.669,-860.292],[-161.958,-860.083],[-161.625,-860.667],[-161.802,-860.261],[-161.763,-860.238],[-161.677,-860.073],[-161.629,-860.381],[-162.057,-860.14],[-161.506,-860.074],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":26.975,"s":[{"i":[[0,0],[-0.032,0.018],[-0.012,-0.067],[0.06,-0.039],[-0.014,0.118],[-0.148,0.168],[0.045,-0.14],[-0.008,-0.013],[-0.042,0.045],[0.102,0.018],[-0.131,-0.098],[-0.007,-0.007],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,-0.036],[0.059,-0.035],[0.013,0.07],[-0.099,0.065],[0.026,-0.222],[0.097,-0.11],[-0.005,0.014],[0.034,0.052],[0.071,-0.076],[-0.161,-0.028],[2.205,1.713],[0.015,0.015],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-182.524,-880.121],[-182.544,-880.229],[-182.338,-880.23],[-182.525,-880.125],[-182.815,-879.917],[-182.481,-880.5],[-182.658,-880.094],[-182.62,-880.071],[-182.533,-879.906],[-182.485,-880.214],[-182.913,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27.25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.131,1.223],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-194.334,-880.121],[-194.354,-880.229],[-194.148,-880.23],[-194.335,-880.125],[-194.625,-879.917],[-194.292,-880.5],[-194.468,-880.094],[-194.43,-880.071],[-194.344,-879.906],[-194.296,-880.214],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27.525,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-217.668,-856.788],[-217.687,-856.896],[-217.482,-856.896],[-217.669,-856.792],[-217.958,-856.583],[-217.625,-857.167],[-217.802,-856.761],[-217.763,-856.738],[-217.677,-856.573],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":27.8,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.319,1.32],[-4.389,4.46],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.515,-2.517],[6.73,-6.839],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-217.501,-841.983],[-217.521,-842.091],[-217.315,-842.092],[-217.502,-841.988],[-217.792,-841.779],[-217.459,-842.362],[-217.635,-841.957],[-217.597,-841.933],[-217.511,-841.769],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28.075,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-169.334,-794.121],[-169.354,-794.229],[-169.148,-794.23],[-169.335,-794.125],[-169.625,-793.917],[-169.292,-794.5],[-169.468,-794.094],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28.35,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[2.003,-2.004],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.875,4.877],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-153.487,-794.01],[-153.507,-794.118],[-153.301,-794.119],[-153.488,-794.015],[-153.778,-793.806],[-153.444,-794.389],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28.625,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-125.043,-822.621],[-125.062,-822.729],[-124.857,-822.73],[-125.044,-822.625],[-125.333,-822.417],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":28.9,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-148.209,-846.954],[-148.229,-847.062],[-148.023,-847.063],[-148.21,-846.959],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29.175,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-159.022,-836.308],[-159.041,-836.417],[-158.835,-836.417],[-159.023,-836.313],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29.45,"s":[{"i":[[0,0],[0,0],[-2.624,-2.5],[-1.61,1.597],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[1.772,1.688],[3.515,-3.486],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-169.043,-836.788],[-169.062,-836.396],[-169.19,-836.563],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":29.725,"s":[{"i":[[0,0],[0,0],[-2.624,-2.5],[-1.61,1.597],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[1.772,1.688],[3.515,-3.486],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-177.018,-844.48],[-177.062,-844.062],[-169.19,-836.563],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[{"i":[[0,0],[0,0],[-2.624,-2.5],[-1.61,1.597],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[1.772,1.688],[3.515,-3.486],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-164.376,-857.788],[-177.062,-844.062],[-169.19,-836.563],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":34.825,"s":[{"i":[[0,0],[0,0],[-2.624,-2.5],[-1.61,1.597],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[1.772,1.688],[3.515,-3.486],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-164.376,-857.788],[-177.062,-844.062],[-169.19,-836.563],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35.325,"s":[{"i":[[0,0],[0,0],[-2.624,-2.5],[-1.61,1.597],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[1.772,1.688],[3.515,-3.486],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-164.376,-857.788],[-177.062,-844.062],[-169.19,-836.563],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35.6,"s":[{"i":[[0,0],[0,0],[-2.619,-2.495],[-1.607,1.594],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[1.768,1.684],[3.508,-3.479],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-169.023,-836.787],[-169.043,-836.396],[-169.17,-836.563],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35.875,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-159.043,-836.288],[-159.062,-836.396],[-158.857,-836.396],[-159.044,-836.292],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36.15,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-148.209,-846.954],[-148.229,-847.062],[-148.023,-847.063],[-148.21,-846.959],[-148.5,-846.75],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36.425,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[9.521,-9.728],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.823,4.928],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-125.088,-822.669],[-125.108,-822.777],[-124.902,-822.777],[-125.089,-822.673],[-125.379,-822.464],[-125,-823],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36.7,"s":[{"i":[[0,0],[0.072,-0.109],[0,0],[0,0],[0,0],[0,0],[1.988,-1.989],[4.844,4.778],[13.374,13.191],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,0.131],[-0.038,0.059],[0,0],[0,0],[0,0],[0,0],[-4.875,4.877],[-12.044,-11.879],[-2.538,-2.503],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-153.543,-793.954],[-153.562,-794.062],[-153.357,-794.063],[-153.544,-793.959],[-153.833,-793.75],[-153.5,-794.333],[-153.677,-793.928],[-169.43,-794.071],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":36.975,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[13.351,13.168],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.538,-2.504],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-169.429,-794.215],[-169.448,-794.323],[-169.242,-794.323],[-169.429,-794.219],[-169.719,-794.01],[-169.386,-794.593],[-169.562,-794.188],[-169.524,-794.165],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37.25,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[1.322,1.323],[-4.398,4.469],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-2.52,-2.522],[6.743,-6.853],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-217.501,-841.954],[-217.521,-842.062],[-217.315,-842.063],[-217.502,-841.959],[-217.792,-841.75],[-217.458,-842.333],[-217.635,-841.928],[-217.596,-841.904],[-217.51,-841.74],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37.525,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6.365,6.314],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-217.668,-856.788],[-217.687,-856.896],[-217.482,-856.896],[-217.669,-856.792],[-217.958,-856.583],[-217.625,-857.167],[-217.802,-856.761],[-217.763,-856.738],[-217.677,-856.573],[-217.629,-856.881],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":37.8,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.142,1.233],[-3.502,-3.39],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.78,-3.749],[7.835,7.585],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-194.38,-880.076],[-194.4,-880.184],[-194.194,-880.184],[-194.381,-880.08],[-194.671,-879.871],[-194.337,-880.454],[-194.514,-880.049],[-194.475,-880.026],[-194.389,-879.861],[-194.341,-880.169],[-194.724,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.075,"s":[{"i":[[0,0],[-0.032,0.018],[-0.012,-0.068],[0.06,-0.039],[-0.014,0.118],[-0.148,0.168],[0.045,-0.14],[-0.008,-0.013],[-0.042,0.045],[0.102,0.018],[-0.129,-0.101],[0,0],[0,0],[-6.474,6.677],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,-0.036],[0.059,-0.035],[0.013,0.07],[-0.099,0.065],[0.026,-0.222],[0.097,-0.111],[-0.005,0.014],[0.034,0.052],[0.071,-0.076],[-0.161,-0.028],[2.202,1.723],[0,0],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-182.501,-880.121],[-182.521,-880.229],[-182.315,-880.23],[-182.502,-880.125],[-182.792,-879.917],[-182.458,-880.5],[-182.635,-880.094],[-182.596,-880.071],[-182.51,-879.906],[-182.462,-880.214],[-182.89,-879.973],[-182.339,-879.908],[-161.823,-860.365],[-141.954,-879.953],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.35,"s":[{"i":[[0,0],[-0.032,0.018],[-0.012,-0.067],[0.06,-0.039],[-0.014,0.118],[-0.148,0.168],[0.045,-0.14],[-0.008,-0.013],[-0.042,0.045],[0.102,0.018],[-0.117,0.113],[0,0],[0,0],[-6.463,6.666],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[-0.007,-0.036],[0.059,-0.035],[0.013,0.07],[-0.099,0.065],[0.026,-0.222],[0.097,-0.11],[-0.005,0.014],[0.034,0.052],[0.071,-0.076],[-0.161,-0.028],[2.697,-2.605],[0,0],[0,0],[2.954,-3.047],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-161.629,-860.325],[-161.648,-860.433],[-161.443,-860.434],[-161.63,-860.329],[-161.919,-860.121],[-161.586,-860.704],[-161.763,-860.299],[-161.724,-860.275],[-161.638,-860.11],[-161.59,-860.418],[-162.018,-860.177],[-161.467,-860.112],[-161.784,-860.402],[-141.954,-879.952],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.625,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.901,0.87],[-3.139,-3.11],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[3.053,-2.947],[6.3,6.242],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-141.668,-879.454],[-141.687,-879.563],[-141.482,-879.563],[-141.669,-879.459],[-141.958,-879.25],[-141.625,-879.833],[-141.802,-879.428],[-141.763,-879.404],[-141.677,-879.24],[-141.629,-879.548],[-142.057,-879.307],[-141.506,-879.241],[-141.823,-879.532],[-141.787,-879.287],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":38.9,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-6.79,-6.854],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.173,4.212],[-5.943,5.974],[0,0]],"v":[[-128.668,-879.788],[-128.687,-879.896],[-128.482,-879.896],[-128.669,-879.792],[-128.958,-879.583],[-128.625,-880.167],[-128.802,-879.761],[-128.763,-879.738],[-128.677,-879.573],[-128.629,-879.881],[-129.057,-879.64],[-128.506,-879.574],[-128.823,-879.865],[-128.787,-879.62],[-128.611,-879.89],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.175,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.799,-0.828],[2.14,-2.151],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[4.118,4.266],[-5.943,5.974],[0,0]],"v":[[-105.546,-856.666],[-105.566,-856.774],[-105.36,-856.775],[-105.547,-856.671],[-105.837,-856.462],[-105.504,-857.045],[-105.68,-856.64],[-105.642,-856.616],[-105.556,-856.451],[-105.507,-856.759],[-105.935,-856.519],[-105.385,-856.453],[-105.701,-856.743],[-105.666,-856.498],[-105.489,-856.768],[-105.401,-856.601],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.45,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-104.501,-842.788],[-104.521,-842.896],[-104.315,-842.896],[-104.502,-842.792],[-104.792,-842.583],[-104.458,-843.167],[-104.635,-842.761],[-104.596,-842.738],[-104.51,-842.573],[-104.462,-842.881],[-104.89,-842.64],[-104.339,-842.574],[-104.656,-842.865],[-104.621,-842.62],[-104.444,-842.89],[-104.401,-842.767],[-104.733,-842.984],[-122.562,-825.062]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":39.725,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-122.168,-825.454],[-122.187,-825.562],[-121.982,-825.563],[-122.169,-825.459],[-122.458,-825.25],[-122.125,-825.833],[-122.302,-825.428],[-122.263,-825.404],[-122.177,-825.24],[-122.129,-825.547],[-122.557,-825.307],[-122.006,-825.241],[-122.323,-825.531],[-122.287,-825.286],[-122.111,-825.556],[-122.067,-825.434],[-122.399,-825.651],[-122.562,-825.062]],"c":false}]},{"t":40.000146484375,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-122.168,-825.454],[-122.187,-825.562],[-121.982,-825.563],[-122.169,-825.459],[-122.458,-825.25],[-122.125,-825.833],[-122.302,-825.428],[-122.263,-825.404],[-122.177,-825.24],[-122.129,-825.547],[-122.557,-825.307],[-122.006,-825.241],[-122.323,-825.531],[-122.287,-825.286],[-122.111,-825.556],[-122.067,-825.434],[-122.399,-825.651],[-122.562,-825.062]],"c":false}]}],"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"rd","nm":"圆角 1","r":{"a":0,"k":0,"ix":1},"ix":2,"mn":"ADBE Vector Filter - RC","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"形状 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":25,"op":40,"st":-5.5,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"形状图层 2","parent":1,"sr":0.5,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-4,1,0],"ix":2},"a":{"a":0,"k":[-100,-843.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-92.444,-835.25],[-92.525,-835.206],[-92.45,-835.2],[-92.35,-835.3],[-92.4,-835.25],[-92.36,-835.214],[-92.339,-835.211],[-92.389,-835.226]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-120.364,-835.25],[-120.38,-835.233],[-120.305,-835.227],[-120.205,-835.326],[-120.255,-835.277],[-120.215,-835.24],[-120.194,-835.238],[-120.244,-835.253]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.25,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-130.55,-836.9],[-130.45,-837],[-130.5,-836.95],[-130.46,-836.914],[-130.439,-836.911],[-130.489,-836.927]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10.5,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-129.15,-840.1],[-129.2,-840.05],[-129.16,-840.014],[-129.139,-840.011],[-129.189,-840.027]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.25,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-70.5,-877.25],[-70.06,-877.614],[-69.939,-877.611],[-69.889,-877.726]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.5,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.048,-1.1],[0.15,0.2],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.015,0.338],[-0.223,-0.297],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-67.008,-872.753],[-66.525,-872.625],[-66.75,-872.013]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":11.75,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-66.983,-873.003],[-67,-873],[-67.083,-872.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":12.75,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.386,-8.798],[0,0],[0.139,0.19]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.119,2.705],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-69.183,-825.003],[-69.45,-818.25],[-69.267,-818.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":13,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.483,-10.997],[0,0],[0.173,0.238]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.148,3.381],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-69.733,-813.003],[-74.75,-811.75],[-74.5,-811.688]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.483,-10.997],[1.5,2],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.148,3.381],[-2.23,-2.973],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-69.733,-813.003],[-74.75,-811.75],[-106.25,-853.688]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.483,-10.997],[1.5,2],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.148,3.381],[-2.23,-2.973],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-69.733,-813.003],[-74.75,-811.75],[-106.25,-853.688]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.483,-10.997],[0,0],[0.173,0.238]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.148,3.381],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-69.733,-813.003],[-74.75,-811.75],[-74.5,-811.688]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20.25,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.386,-8.798],[0,0],[0.139,0.19]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.119,2.705],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-69.183,-825.003],[-69.45,-818.25],[-69.267,-818.188]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.25,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-66.983,-873.003],[-67,-873],[-67.083,-872.938]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.5,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0.257,-4.242],[0.048,-1.1],[0.15,0.2],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[-0.25,4.125],[-0.015,0.338],[-0.223,-0.297],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-67,-873.5],[-67.008,-872.753],[-66.525,-872.625],[-66.75,-872.013]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":21.75,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-70.75,-877],[-70.5,-877.25],[-70.06,-877.614],[-69.939,-877.611],[-69.889,-877.726]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.5,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-129.25,-840],[-129.15,-840.1],[-129.2,-840.05],[-129.16,-840.014],[-129.139,-840.011],[-129.189,-840.027]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":22.75,"s":[{"i":[[0,0],[0,0],[0.75,1.906],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.782,-1.988],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-127.344,-835.25],[-130.625,-836.906],[-130.55,-836.9],[-130.45,-837],[-130.5,-836.95],[-130.46,-836.914],[-130.439,-836.911],[-130.489,-836.927]],"c":false}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":23,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-120.364,-835.25],[-120.38,-835.233],[-120.305,-835.227],[-120.205,-835.326],[-120.255,-835.277],[-120.215,-835.24],[-120.194,-835.238],[-120.244,-835.253]],"c":false}]},{"t":24,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-92.5,-835.156],[-92.444,-835.25],[-92.525,-835.206],[-92.45,-835.2],[-92.35,-835.3],[-92.4,-835.25],[-92.36,-835.214],[-92.339,-835.211],[-92.389,-835.226]],"c":false}]}],"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8.5,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9,"s":[8]},{"t":9.5,"s":[8]}],"ix":5},"lc":2,"lj":2,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"形状 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":24.5,"st":-7.5,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"外框","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-19.5,"s":[0]},{"t":-15.5,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":-10.5,"s":[32,32]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":-5.5,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":-0.5,"s":[72,72]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":4.5,"s":[72,72]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":9.5,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":14.5,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":54.5,"s":[0,0]},{"t":59.5,"s":[72,72]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":-0.5,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":4.5,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.5,"s":[0,0],"to":[0,0],"ti":[0,0]},{"t":59.5,"s":[0,0]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-10.5,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-5.5,"s":[30]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-0.5,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":4.5,"s":[12]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":9.5,"s":[40]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54.5,"s":[40]},{"t":59.5,"s":[12]}],"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":-0.5,"op":62,"st":-30.5,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"形状图层 5","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-19,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-15,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14.5,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":15,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":17,"s":[0]},{"t":17.5,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":-5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":0,"s":[32,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":2.5,"s":[32,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":5,"s":[32,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":9.5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":12.5,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":55,"s":[8,8]},{"t":60,"s":[32,8]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":-5,"s":[0,0],"to":[-1.333,0],"ti":[1.5,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[-8,0],"to":[-0.47,0],"ti":[0.293,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[-8,0],"to":[-0.643,0],"ti":[-0.916,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[-9,0],"to":[1.333,0],"ti":[-1.5,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":9.5,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[0,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[0,0],"to":[-1.333,0],"ti":[1.333,0]},{"t":60,"s":[-8,0]}],"ix":3},"r":{"a":0,"k":4,"ix":4},"nm":"矩形路径 4","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":-5,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":0,"s":[50,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":2.5,"s":[16,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":5,"s":[50,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":10,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":14.5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":17.5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":20,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":25,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":27.5,"s":[6,6]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":30,"s":[6,6]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":35,"s":[6,6]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":40,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":45,"s":[16,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[16,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":55,"s":[24,8]},{"t":60,"s":[50,8]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":-5,"s":[80,0],"to":[-13.333,-3],"ti":[13.333,3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[0,-18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[-16,-18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[0,-18],"to":[-13.333,3],"ti":[-13.333,-3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[-80,0],"to":[2.36,0.531],"ti":[-8.775,0.054]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.5,"s":[-25.6,0.037],"to":[1.115,-0.007],"ti":[-1.57,0.018]},{"t":17.5,"s":[28,0],"h":1},{"t":19,"s":[33,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[38,0],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[80,0],"to":[21.757,-0.253],"ti":[31.158,-0.084]},{"t":27.5,"s":[40,0],"h":1},{"t":30,"s":[39,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[39,0],"to":[-9.983,0.027],"ti":[-5.123,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[80,0],"to":[26.667,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[-4,-16],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[-4,-16],"to":[0,0],"ti":[-12.702,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[80,0],"to":[26.667,0],"ti":[13.333,3]},{"t":60,"s":[0,-18]}],"ix":3},"r":{"a":0,"k":4,"ix":4},"nm":"矩形路径 3","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":0,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":2.5,"s":[50,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":5,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":10,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":14.5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":17.5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":20,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":25,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":27.5,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":30,"s":[6,6]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":35,"s":[6,6]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":40,"s":[24,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":45,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":50,"s":[8,8]},{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":55,"s":[24,8]},{"t":60,"s":[24,8]}],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":-5,"s":[-80,0],"to":[11.333,3],"ti":[-11.333,-3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[-12,18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":2.5,"s":[0,18],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":5,"s":[-12,18],"to":[15.333,-3],"ti":[11.333,3]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[80,0],"to":[-5.54,-1.466],"ti":[34.366,0.891]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14.5,"s":[28,0],"to":[-2.687,-0.07],"ti":[37.293,-0.434]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":17.5,"s":[-25,0],"to":[-21.127,0.246],"ti":[-5.31,0.1]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":19,"s":[-31,-0.091],"to":[3.103,-0.058],"ti":[13.753,-0.16]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":20,"s":[-38,0],"to":[-33.471,0.39],"ti":[12.613,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":25,"s":[-80,0],"to":[-8.727,0],"ti":[-18.481,-0.021]},{"t":27.5,"s":[-40,0],"h":1},{"t":30,"s":[-36,0],"h":1},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[-36,0],"to":[5.828,-0.956],"ti":[-3.003,1.787]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[-80,0],"to":[9.053,-5.387],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":45,"s":[12,-16],"to":[0,0],"ti":[0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[12,-16],"to":[0,0],"ti":[12.613,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[-80,0],"to":[-26.667,0],"ti":[-11.333,-3]},{"t":60,"s":[-12,18]}],"ix":3},"r":{"a":0,"k":4,"ix":4},"nm":"矩形路径 5","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.854901960784,0.854901960784,0.854901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":12,"ix":4},"nm":"矩形路径 6","mn":"ADBE Vector Shape - Rect","hd":false}],"ip":0,"op":62,"st":-30,"bm":0}],"markers":[]}
\ No newline at end of file
... ...
... ... @@ -4,7 +4,8 @@ import { BreakpointConstants } from 'wdConstant';
import { BreakpointSystem, EmitterEventId, EmitterUtils, Logger } from 'wdKit';
import router from '@ohos.router';
import { promptAction } from '@kit.ArkUI';
import { HWLocationUtils } from 'wdHwAbility/Index';
import { HWLocationUtils, WDPushNotificationManager } from 'wdHwAbility/Index';
import { common } from '@kit.AbilityKit';
const TAG = 'MainPage';
... ... @@ -24,6 +25,16 @@ struct MainPage {
aboutToAppear() {
HWLocationUtils.startLocationService()
this.breakpointSystem.register()
let context = getContext(this) as common.UIAbilityContext
WDPushNotificationManager.getInstance().requestEnableNotifications(context).then((enabled) => {
if (enabled) {
WDPushNotificationManager.getInstance().fetchTokenAndBindProfileId()
// WDPushNotificationManager.getInstance().sendLocalNotification()
}
})
Logger.info(TAG, `aboutToAppear `);
EmitterUtils.receiveEvent(EmitterEventId.FORCE_USER_LOGIN_OUT, () => {
LogoutViewModel.clearLoginInfo()
... ...
... ... @@ -39,11 +39,13 @@ struct SpacialTopicPage {
}
onPageShow() {
WindowModel.shared.setWindowLayoutFullScreen(true)
Logger.info(TAG, 'onPageShow');
}
onPageHide() {
Logger.info(TAG, 'onPageHide');
WindowModel.shared.setWindowLayoutFullScreen(false)
}
onBackPress() {
... ...
... ... @@ -11,8 +11,9 @@ import { WDRouterPage } from 'wdRouter';
import { LaunchModel } from '../viewModel/LaunchModel'
import { LaunchPageModel } from '../viewModel/LaunchPageModel'
import LaunchDataModel from '../viewModel/LaunchDataModel'
import { Logger, SPHelper } from 'wdKit/Index';
import { Logger, SPHelper, UmengStats } from 'wdKit/Index';
import { SpConstants } from 'wdConstant/Index';
import { TrackingModule } from 'wdTracking/Index'
@Entry
@Component
... ... @@ -44,6 +45,8 @@ struct LaunchPage {
}
onConfirm() {
UmengStats.initAfterAgreeProtocol()
TrackingModule.startup(getContext(this) as common.UIAbilityContext)
// Save privacy agreement status.
this.saveIsPrivacy();
//跳转引导页
... ... @@ -94,6 +97,10 @@ struct LaunchPage {
this.dialogController.open();
// }
} else {
UmengStats.initAfterAgreeProtocol()
TrackingModule.startup(getContext(this) as common.UIAbilityContext)
//需要根据请求数据判断是否需要进入广告页,广告数据为nil则直接跳转到首页
//获取本地存储的启动页数据
... ...
... ... @@ -36,7 +36,7 @@
],
"metadata": [{
"name": "client_id",
"value": "220837707901830144"
"value": "110737325"
}],
"requestPermissions": [
{
... ...