Commit 78b3fcc3 authored by Master Q's avatar Master Q

游戏模版

parents
# project ignores
node_modules
released
.DS_Store
.idea
output.js
output.js.map
\ No newline at end of file
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}
\ No newline at end of file
{
"compile-hero.disable-compile-files-on-did-save-code": true
}
\ No newline at end of file
# 最新模板分支newTemplate0805
### psd命名规则
按钮单图 图层名字_btn_id
按钮多图 组名_btn_id (里面多图层,0常态,1不可点击,2按钮)
普通图片png 图层名字_id
普通图片jpg 图层名字_jpg_id
矩形 图层名字_id
文本 图层名字_id (默认都居左,未改文本前, 调整调用Tool里方法changeTextAlign)
贴图 图层名字_tex (只切图,不进皮肤)
作为item的皮肤不进root 组名_item (比如自定义的类或滚动列表的item)
(组名,图层名字,id均为动态)
(id为英文,显示对象原属性名不能作为id,比如"name")
(同名的的图片只要图片相同就行,用clearSameImg脚本将同图移进common)
(能合并的图自行合并)
(视图模块名字命名成...Panel,...Scene,例如StartScene,RulePanel,方便生成模块传参,否则自行修改createModule脚本里的参数)
(id必须是英文,作为item的组名必须是英文,因为会生成类)
### psd解析
生成./resource/skinJson.json和./src/SkinJson.ts,
初始一致,json只用于脚本createModule.js生成场景或弹框模块,实际作用数据是ts,有需要自行修改SkinJson.ts
执行,会刷新资源配置及覆盖SkinJson.ts,注意
```shell script
#多视图解析,会解析./psd文件夹内所有psd及内视图
npm run psd
#单视图解析,主要用于处理后添加的视图,传参./psd文件夹内psd名字,
#资源及皮肤数据skin.json会在./psd文件夹内生成,自行处理进./resource/skin.json和./src/SkinJson.ts文件
npm run psdSin
```
### 生成模块 有psd生成皮肤数据时使用
会根据参数Panel或者Scene生成ts文件写入./src/panels或./src/scenes文件夹
```shell script
npm run createModule RulePanel
```
### 资源配置刷新
有资源删除或增加时执行
会根据resource里的子级文件夹分组
文件夹名字用于各模块里的groupNames,用于按需资源加载
```shell script
npm run flushRes
```
### 本地开发
```shell script
npm run dev
```
### 图集工具安装
```shell script
#全局安装
cnpm install pack_textures -g
#终端输入packTextures检查环境变量是否存在
```
### 淘宝打包流程
```shell script
#带资源打包,并生成./released/resource文件夹和./released/output.js文件
npm run build
#只打包代码,
npm run buildTS
#脚本copyJs.js自行修改小程序output.js文件路径,嫌麻烦自行修改package.json里的build和buildTS,也可自行复制output.js
npm run copyJs
```
### web打包流程
```shell script
#带资源打包,并生成./released/resource文件夹和./output.js文件及./released/index.html,可复制进皮肤
npm run buildWeb
#只打包代码,并生成./output.js文件及./released/index.html,会打印版本号,可直接更换皮肤的版本号
npm run buildWebTS
```
### 适配
./module/views/layers.ts可设置所有层级适配(弹框场景等等)
单独模块的适配自行在模块里处理,修改this.y
### psd导出文本
部分文案尺寸错误自行在SkinJson,ts里修改
居中居右,在未修改文本字号字符等属性前调用Tools.changeTextAlign修改,可与psd表现保持一致
\ No newline at end of file
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</title>
<meta name="viewport"
content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="full-screen" content="true" />
<meta name="screen-orientation" content="portrait" />
<meta name="x5-fullscreen" content="true" />
<meta name="360-fullscreen" content="true" />
<!-- 渲染引擎 -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/fyge2020.min.js" crossorigin="anonymous"></script>-->
<!-- svga解析库 -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/svgaParser.minWeb.js" crossorigin="anonymous"></script>-->
<!-- 本地的js,需要souremap调试的用本地js -->
<script src="libs/fyge.min.js"></script>
<script src="libs/svgaParser.min.js"></script>
<script src="libs/howler.min.js"></script>
<!-- <script src="libs/svgaParser.min1.js"></script> -->
<script src="//yun.duiba.com.cn/js-libs/vConsole/3.3.4/vconsole.min.js"></script>
<script>
// var vConsole = new VConsole();
</script>
<style>
html,
body {
padding: 0;
margin: 0;
border: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
background-color: #ffffff;
/* background: linear-gradient(#93dbb7,#ff0,#b5d89a); */
/* background: linear-gradient(#93dbb7,#b5d89a); */
/* 背景图片,解决加载太慢,白屏问题,加了这个下面的__loading__可以删掉了 */
/* background-size: 100%;
background-position: center;
background-image: url("https://yun.duiba.com.cn/db_games/activity/game/1550472986/resource/assets/playscene/playscenebg.jpg"); */
}
</style>
</head>
<body>
<script>
const app = {};
function getApp() {
return app;
}
</script>
<div id="__loading__" style="position:absolute;left:50%;top:50%;margin-left:-45px;color:#ffffff">拼命加载中...</div>
<div id="cusEngine" style="line-height:0;font-size:0;position: absolute;">
<canvas id="canvas" style="width: 100%;height: 100%"></canvas>
</div>
<!-- 帧率检测 -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/stats.js"></script> -->
<!-- <script src="https://yun.duiba.com.cn/db_games/libs0126/stats.js"></script>-->
<script>
window.addEventListener("load", function () {
//获取canvas
var canvas = document.getElementById("canvas");
canvas.width = document.body.clientWidth * (window.devicePixelRatio || 1)
canvas.height = document.body.clientHeight * (window.devicePixelRatio || 1)
var main = new Main(canvas);
var mouseEvent = main.stage.onMouseEvent.bind(main.stage);
canvas.addEventListener("touchstart", mouseEvent, false);
canvas.addEventListener('touchmove', mouseEvent, false);
canvas.addEventListener('touchend', mouseEvent, false);
window.stage = main.stage
})
</script>
<!-- 构建的js -->
<script src="output.js" crossorigin="anonymous"></script>
</body>
</html>
This source diff could not be displayed because it is too large. You can view the blob instead.
declare module SvgaParser {
/**
* 加载方法
* @param url 资源路径
* @param success
* @param failure
*/
export function loadSvga(url: string, success: (videoItem: VideoEntity) => void, failure?: (err: string) => void): void;
/**
* 导出只是当作类型接口用
*/
export interface VideoEntity {
/**
* SVGA 文件版本
*/
version: string;
/**
* 影片尺寸
*/
videoSize: {
width: number;
height: number;
};
/**
* 帧率,60,30等每秒
*/
FPS: number;
/**
* 总帧数
*/
frames: number;
/**
* base64图片数据记录
*/
images: {
[key: string]: string
};
/**
* 图片是否已被缓存,缓存全局,注意名字覆盖
*/
hasBeenCached: boolean;
/**
* sprite对象数据
*/
sprites: SpriteEntity[];
}
interface SpriteEntity {
/**
* 标识
*/
matteKey: string;
/**
* 图片key值
*/
imageKey: string;
/**
* 帧数据数组
*/
frames: FrameEntity[];
}
/**
* 还有很多其他数据,暂不需要,比如矢量路径和遮罩路径暂时都无
*/
interface FrameEntity {
/**
* 透明度
*/
alpha: number;
/**
* 2维矩阵数据
*/
transform: {
a: number,
b: number,
c: number,
d: number,
tx: number,
ty: number,
};
}
}
declare module "svga-parser" { export = SvgaParser; }
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// Type definitions for howler.js v2.1.1
// Project: https://github.com/goldfire/howler.js
// Definitions by: Pedro Casaubon <https://github.com/xperiments>
// Alexander Leon <https://github.com/alien35>
// Nicholas Higgins <https://github.com/nicholashza>
// Carlos Urango <https://github.com/cjurango>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface HowlerGlobal {
usingWebAudio: boolean;
html5PoolSize: number;
noAudio: boolean;
autoUnlock: boolean;
autoSuspend: boolean;
ctx: AudioContext;
masterGain: GainNode;
mute(muted: boolean): this;
volume(): number;
volume(volume: number): this;
codecs(ext: string): boolean;
unload(): this;
stereo(pan: number): this;
pos(x: number, y: number, z: number): this | void;
orientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): this | void;
}
declare let Howler: HowlerGlobal;
interface IHowlSoundSpriteDefinition {
[name: string]: [number, number] | [number, number, boolean]
}
interface IHowlProperties {
src: string | string[];
volume?: number;
html5?: boolean;
loop?: boolean;
preload?: boolean;
autoplay?: boolean;
mute?: boolean;
sprite?: IHowlSoundSpriteDefinition;
rate?: number;
pool?: number;
format?: string[] | string;
xhrWithCredentials?: boolean;
onload?: () => void;
onloaderror?: (soundId: number, error: any) => void;
onplay?: (soundId: number) => void;
onplayerror?: (soundId: number, error: any) => void;
onend?: (soundId: number) => void;
onpause?: (soundId: number) => void;
onstop?: (soundId: number) => void;
onmute?: (soundId: number) => void;
onvolume?: (soundId: number) => void;
onrate?: (soundId: number) => void;
onseek?: (soundId: number) => void;
onfade?: (soundId: number) => void;
onunlock?: (soundId: number) => void;
}
interface Howl {
play(spriteOrId?: string | number): number; // .play() is not chainable; the other methods are
pause(id?: number): this;
stop(id?: number): this;
mute(): boolean;
mute(muted: boolean, id?: number): this;
volume(): number;
volume(idOrSetVolume: number): this | number;
volume(volume: number, id: number): this;
fade(from: number, to: number, duration: number, id?: number): this;
rate(): number;
rate(idOrSetRate: number): this | number;
rate(rate: number, id: number): this;
seek(seek?: number, id?: number): this | number;
loop(id?: number): boolean;
loop(loop: boolean, id?: number): this;
playing(id?: number): boolean;
duration(id?: number): number;
state(): 'unloaded' | 'loading' | 'loaded';
load(): this;
unload(): void;
on(event: 'load', callback: () => void, id?: number): this;
on(event: 'loaderror', callback: (soundId: number, error: any) => void, id?: number): this;
on(event: 'play', callback: (soundId: number) => void, id?: number): this;
on(event: 'playerror', callback: (soundId: number, error: any) => void, id?: number): this;
on(event: 'end', callback: (soundId: number) => void, id?: number): this;
on(event: 'pause', callback: (soundId: number) => void, id?: number): this;
on(event: 'stop', callback: (soundId: number) => void, id?: number): this;
on(event: 'mute', callback: (soundId: number) => void, id?: number): this;
on(event: 'volume', callback: (soundId: number) => void, id?: number): this;
on(event: 'rate', callback: (soundId: number) => void, id?: number): this;
on(event: 'seek', callback: (soundId: number) => void, id?: number): this;
on(event: 'fade', callback: (soundId: number) => void, id?: number): this;
on(event: string, callback: Function, id?: number): this;
on(event: 'unlock', callback: (soundId: number) => void, id?: number): this;
once(event: 'load', callback: () => void, id?: number): this;
once(event: 'loaderror', callback: (soundId: number, error: any) => void, id?: number): this;
once(event: 'play', callback: (soundId: number) => void, id?: number): this;
once(event: 'playerror', callback: (soundId: number, error: any) => void, id?: number): this;
once(event: 'end', callback: (soundId: number) => void, id?: number): this;
once(event: 'pause', callback: (soundId: number) => void, id?: number): this;
once(event: 'stop', callback: (soundId: number) => void, id?: number): this;
once(event: 'mute', callback: (soundId: number) => void, id?: number): this;
once(event: 'volume', callback: (soundId: number) => void, id?: number): this;
once(event: 'rate', callback: (soundId: number) => void, id?: number): this;
once(event: 'seek', callback: (soundId: number) => void, id?: number): this;
once(event: 'fade', callback: (soundId: number) => void, id?: number): this;
once(event: string, callback: Function, id?: number): this;
once(event: 'unlock', callback: (soundId: number) => void, id?: number): this;
off(event: string, callback?: Function, id?: number): this;
off(): this;
stereo(pan: number, id?: number): this | void;
pos(x: number, y: number, z: number, id?: number): this | void;
orientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): this | void;
pannerAttr(o: {
coneInnerAngle?: number,
coneOuterAngle?: number, coneOuterGain?: number,
distanceModel: 'inverse' | 'linear', maxDistance: number,
panningModel: 'HRTF' | 'equalpower', refDistance: number, rolloffFactor: number
}, id?: number): this;
}
interface HowlStatic {
new(properties: IHowlProperties): Howl;
}
declare let Howl: HowlStatic;
declare module "howler" {
export let Howler: HowlerGlobal;
export let Howl: HowlStatic;
}
/*! howler.js v2.2.0 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */
!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e)}return o}return o._volume},mute:function(e){var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted)}return o},stop:function(){for(var e=this||n,o=0;o<e._howls.length;o++)e._howls[o].stop();return e},unload:function(){for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator&&e._navigator.userAgent.match(/OPR\/([0-6].)/g),a=r&&parseInt(r[0].split("/")[1],10)<33;return e._codecs={mp3:!(a||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!o.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(o.canPlayType("audio/x-m4b;")||o.canPlayType("audio/m4b;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),webm:!!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,""),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(;e._html5AudioPool.length<e.html5PoolSize;)try{var t=new Audio;t._unlocked=!0,e._releaseHtml5Audio(t)}catch(n){e.noAudio=!0;break}for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var a=e._howls[r]._getSoundIds(),u=0;u<a.length;u++){var i=e._howls[r]._soundById(a[u]);i&&i._node&&!i._node._unlocked&&(i._node._unlocked=!0,i._node.load())}e._autoResume();var d=e.ctx.createBufferSource();d.buffer=e._scratchBuffer,d.connect(e.ctx.destination),void 0===d.start?d.noteOn(0):d.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),d.onended=function(){d.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",o,!0),document.removeEventListener("touchend",o,!0),document.removeEventListener("click",o,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("unlock")}};return document.addEventListener("touchstart",o,!0),document.addEventListener("touchend",o,!0),document.addEventListener("click",o,!0),e}},_obtainHtml5Audio:function(){var e=this||n;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var o=(new Audio).play();return o&&"undefined"!=typeof Promise&&(o instanceof Promise||"function"==typeof o.then)&&o.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(e){var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){if(e.autoSuspend){e._suspendTimer=null,e.state="suspending";var n=function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())};e.ctx.suspend().then(n,n)}},3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("resume")}),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var n=new e,o=function(e){var n=this;if(!e.src||0===e.src.length)return void console.error("An array of source files must be passed with any new Howl.");n.init(e)};o.prototype={init:function(e){var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format="string"!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src="string"!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},o._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){o.play()}}),o._preload&&"none"!==o._preload&&o.load(),o},load:function(){var e=this,o=null;if(n.noAudio)return void e._emit("loaderror",null,"No audio support.");"string"==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){var u,i;if(e._format&&e._format[r])u=e._format[r];else{if("string"!=typeof(i=e._src[r])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}u=/^data:audio\/([^;,]+);/i.exec(i),u||(u=/\.([^.]+)$/.exec(i.split("?",1)[0])),u&&(u=u[1].toLowerCase())}if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){o=e._src[r];break}}return o?(e._src=o,e._state="loading","https:"===window.location.protocol&&"http:"===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit("loaderror",null,"No codec support for selected audio sources.")},play:function(e,o){var t=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===t._state&&!t._sprite[e])return null;if(void 0===e&&(e="__default",!t._playLock)){for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null}}var i=r?t._soundById(r):t._inactiveSound();if(!i)return null;if(r&&!e&&(e=i._sprite||"__default"),"loaded"!==t._state){i._sprite=e,i._ended=!1;var d=i._id;return t._queue.push({event:"play",action:function(){t.play(d)}}),d}if(r&&!i._paused)return o||t._loadQueue("play"),i._id;t._webAudio&&n._autoResume();var _=Math.max(0,i._seek>0?i._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(i._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;i._sprite=e,i._ended=!1;var p=function(){i._paused=!1,i._seek=_,i._start=c,i._stop=f,i._loop=!(!i._loop&&!t._sprite[e][2])};if(_>=f)return void t._ended(i);var m=i._node;if(t._webAudio){var v=function(){t._playLock=!1,p(),t._refreshBuffer(i);var e=i._muted||t._muted?0:i._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),i._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?i._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):i._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l)),o||setTimeout(function(){t._emit("play",i._id),t._loadQueue()},0)};"running"===n.state&&"interrupted"!==n.ctx.state?v():(t._playLock=!0,t.once("resume",v),t._clearTimer(i._id))}else{var h=function(){m.currentTime=_,m.muted=i._muted||t._muted||n._muted||m.muted,m.volume=i._volume*n.volume(),m.playbackRate=i._rate;try{var r=m.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){t._playLock=!1,m._unlocked=!0,o||(t._emit("play",i._id),t._loadQueue())}).catch(function(){t._playLock=!1,t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),i._ended=!0,i._paused=!0})):o||(t._playLock=!1,p(),t._emit("play",i._id),t._loadQueue()),m.playbackRate=i._rate,m.paused)return void t._emit("playerror",i._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||i._loop?t._endTimers[i._id]=setTimeout(t._ended.bind(t,i),l):(t._endTimers[i._id]=function(){t._ended(i),m.removeEventListener("ended",t._endTimers[i._id],!1)},m.addEventListener("ended",t._endTimers[i._id],!1))}catch(e){t._emit("playerror",i._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{t._playLock=!0;var g=function(){h(),m.removeEventListener(n._canPlayEvent,g,!1)};m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(i._id)}}return i._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit("pause",r?r._id:null)}return n},stop:function(e,n){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"stop",action:function(){o.stop(e)}}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause(),a._node.duration===1/0&&o._clearSound(a._node))),n||o._emit("stop",a._id))}return o},mute:function(e,o){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"mute",action:function(){t.mute(e,o)}}),t;if(void 0===o){if("boolean"!=typeof e)return t._muted;t._muted=e}for(var r=t._getSoundIds(o),a=0;a<r.length;a++){var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit("mute",u._id))}return t},volume:function(){var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit("volume",a._id));return t},fade:function(e,o,t,r){var a=this;if("loaded"!==a._state||a._playLock)return a._queue.push({event:"fade",action:function(){a.fade(e,o,t,r)}}),a;e=Math.min(Math.max(0,parseFloat(e)),1),o=Math.min(Math.max(0,parseFloat(o)),1),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),i=0;i<u.length;i++){var d=a._soundById(u[i]);if(d){if(r||a._stopFade(u[i]),a._webAudio&&!d._muted){var _=n.ctx.currentTime,s=_+t/1e3;d._volume=e,d._node.gain.setValueAtTime(e,_),d._node.gain.linearRampToValueAtTime(o,s)}a._startFadeInterval(d,e,o,t,u[i],void 0===r)}}return a},_startFadeInterval:function(e,n,o,t,r,a){var u=this,i=n,d=o-n,_=Math.abs(d/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),i+=d*r,i=d<0?Math.max(o,i):Math.min(o,i),i=Math.round(100*i)/100,u._webAudio?e._volume=i:u.volume(i,e._id,!0),a&&(u._volume=i),(o<n&&i<=o||o>n&&i>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop)));return t},rate:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var i;if("number"!=typeof e)return i=t._soundById(o),i?i._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var d=0;d<o.length;d++)if(i=t._soundById(o[d])){t.playing(o[d])&&(i._rateSeek=t.seek(o[d]),i._playStart=t._webAudio?n.ctx.currentTime:i._playStart),i._rate=e,t._webAudio&&i._node&&i._node.bufferSource?i._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):i._node&&(i._node.playbackRate=e);var _=t.seek(o[d]),s=(t._sprite[i._sprite][0]+t._sprite[i._sprite][1])/1e3-_,l=1e3*s/Math.abs(i._rate);!t._endTimers[o[d]]&&i._paused||(t._clearTimer(o[d]),t._endTimers[o[d]]=setTimeout(t._ended.bind(t,i),l)),t._emit("rate",i._id)}return t},seek:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return t;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var i=t._soundById(o);if(i){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var d=t.playing(o)?n.ctx.currentTime-i._playStart:0,_=i._rateSeek?i._rateSeek-i._seek:0;return i._seek+(_+d*Math.abs(i._rate))}return i._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),i._seek=e,i._ended=!1,t._clearTimer(o),t._webAudio||!i._node||isNaN(i._node.duration)||(i._node.currentTime=e);var l=function(){t._emit("seek",o),s&&t.play(o,!0)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1},duration:function(e){var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o},state:function(){return this._state},unload:function(){for(var e=this,o=e._sounds,t=0;t<o.length;t++)o[t]._paused||e.stop(o[t]._id),e._webAudio||(e._clearSound(o[t]._node),o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),n._releaseHtml5Audio(o[t]._node)),delete o[t]._node,e._clearTimer(o[t]._id);var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){r.splice(a,1);break}}else if(e)t["_on"+e]=[];else{var i=Object.keys(t);for(a=0;a<i.length;a++)0===i[a].indexOf("_on")&&Array.isArray(t[i[a]])&&(t[i[a]]=[])}return t},once:function(e,n,o){var t=this;return t.on(e,n,o,1),t},_emit:function(e,n,o){for(var t=this,r=t["_on"+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit("end",e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){o._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a)}return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o},_clearTimer:function(e){var n=this;if(n._endTimers[e]){if("function"!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{var o=n._soundById(e);o&&o._node&&o._node.removeEventListener("ended",n._endTimers[e],!1)}delete n._endTimers[e]}return n},_soundById:function(e){for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null},_inactiveSound:function(){var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e)},_drain:function(){var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o}return[e]},_refreshBuffer:function(e){var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o},_cleanBuffer:function(e){var o=this,t=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?"auto":o._preload,e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void d(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);i(t.buffer,e)}else{var _=new XMLHttpRequest;_.open(e._xhr.method,n,!0),_.withCredentials=e._xhr.withCredentials,_.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach(function(n){_.setRequestHeader(n,e._xhr.headers[n])}),_.onload=function(){var n=(_.status+"")[0];if("0"!==n&&"2"!==n&&"3"!==n)return void e._emit("loaderror",null,"Failed loading audio file with status: "+_.status+".");i(_.response,e)},_.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load())},u(_)}},u=function(e){try{e.send()}catch(n){e.onerror()}},i=function(e,o){var t=function(){o._emit("loaderror",null,"Decoding audio data failed.")},a=function(e){e&&o._sounds.length>0?(r[o._src]=e,d(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},d=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):"undefined"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t)}();
/*! Spatial Plugin */
!function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var n=this;if(!n.ctx||!n.ctx.listener)return n;for(var t=n._howls.length-1;t>=0;t--)n._howls[t].stereo(e);return n},HowlerGlobal.prototype.pos=function(e,n,t){var r=this;return r.ctx&&r.ctx.listener?(n="number"!=typeof n?r._pos[1]:n,t="number"!=typeof t?r._pos[2]:t,"number"!=typeof e?r._pos:(r._pos=[e,n,t],void 0!==r.ctx.listener.positionX?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]),r)):r},HowlerGlobal.prototype.orientation=function(e,n,t,r,o,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var s=a._orientation;return n="number"!=typeof n?s[1]:n,t="number"!=typeof t?s[2]:t,r="number"!=typeof r?s[3]:r,o="number"!=typeof o?s[4]:o,i="number"!=typeof i?s[5]:i,"number"!=typeof e?s:(a._orientation=[e,n,t,r,o,i],void 0!==a.ctx.listener.forwardX?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(o,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,n,t,r,o,i),a)},Howl.prototype.init=function(e){return function(n){var t=this;return t._orientation=n.orientation||[1,0,0],t._stereo=n.stereo||null,t._pos=n.pos||null,t._pannerAttr={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:360,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:360,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:0,distanceModel:void 0!==n.distanceModel?n.distanceModel:"inverse",maxDistance:void 0!==n.maxDistance?n.maxDistance:1e4,panningModel:void 0!==n.panningModel?n.panningModel:"HRTF",refDistance:void 0!==n.refDistance?n.refDistance:1,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:1},t._onstereo=n.onstereo?[{fn:n.onstereo}]:[],t._onpos=n.onpos?[{fn:n.onpos}]:[],t._onorientation=n.onorientation?[{fn:n.onorientation}]:[],e.call(this,n)}}(Howl.prototype.init),Howl.prototype.stereo=function(n,t){var r=this;if(!r._webAudio)return r;if("loaded"!==r._state)return r._queue.push({event:"stereo",action:function(){r.stereo(n,t)}}),r;var o=void 0===Howler.ctx.createStereoPanner?"spatial":"stereo";if(void 0===t){if("number"!=typeof n)return r._stereo;r._stereo=n,r._pos=[n,0,0]}for(var i=r._getSoundIds(t),a=0;a<i.length;a++){var s=r._soundById(i[a]);if(s){if("number"!=typeof n)return s._stereo;s._stereo=n,s._pos=[n,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",s._panner&&s._panner.pan||e(s,o),"spatial"===o?void 0!==s._panner.positionX?(s._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(n,0,0):s._panner.pan.setValueAtTime(n,Howler.ctx.currentTime)),r._emit("stereo",s._id)}}return r},Howl.prototype.pos=function(n,t,r,o){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"pos",action:function(){i.pos(n,t,r,o)}}),i;if(t="number"!=typeof t?0:t,r="number"!=typeof r?-.5:r,void 0===o){if("number"!=typeof n)return i._pos;i._pos=[n,t,r]}for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var p=i._soundById(a[s]);if(p){if("number"!=typeof n)return p._pos;p._pos=[n,t,r],p._node&&(p._panner&&!p._panner.pan||e(p,"spatial"),void 0!==p._panner.positionX?(p._panner.positionX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.positionY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setPosition(n,t,r)),i._emit("pos",p._id)}}return i},Howl.prototype.orientation=function(n,t,r,o){var i=this;if(!i._webAudio)return i;if("loaded"!==i._state)return i._queue.push({event:"orientation",action:function(){i.orientation(n,t,r,o)}}),i;if(t="number"!=typeof t?i._orientation[1]:t,r="number"!=typeof r?i._orientation[2]:r,void 0===o){if("number"!=typeof n)return i._orientation;i._orientation=[n,t,r]}for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var p=i._soundById(a[s]);if(p){if("number"!=typeof n)return p._orientation;p._orientation=[n,t,r],p._node&&(p._panner||(p._pos||(p._pos=i._pos||[0,0,-.5]),e(p,"spatial")),void 0!==p._panner.orientationX?(p._panner.orientationX.setValueAtTime(n,Howler.ctx.currentTime),p._panner.orientationY.setValueAtTime(t,Howler.ctx.currentTime),p._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):p._panner.setOrientation(n,t,r)),i._emit("orientation",p._id)}}return i},Howl.prototype.pannerAttr=function(){var n,t,r,o=this,i=arguments;if(!o._webAudio)return o;if(0===i.length)return o._pannerAttr;if(1===i.length){if("object"!=typeof i[0])return r=o._soundById(parseInt(i[0],10)),r?r._pannerAttr:o._pannerAttr;n=i[0],void 0===t&&(n.pannerAttr||(n.pannerAttr={coneInnerAngle:n.coneInnerAngle,coneOuterAngle:n.coneOuterAngle,coneOuterGain:n.coneOuterGain,distanceModel:n.distanceModel,maxDistance:n.maxDistance,refDistance:n.refDistance,rolloffFactor:n.rolloffFactor,panningModel:n.panningModel}),o._pannerAttr={coneInnerAngle:void 0!==n.pannerAttr.coneInnerAngle?n.pannerAttr.coneInnerAngle:o._coneInnerAngle,coneOuterAngle:void 0!==n.pannerAttr.coneOuterAngle?n.pannerAttr.coneOuterAngle:o._coneOuterAngle,coneOuterGain:void 0!==n.pannerAttr.coneOuterGain?n.pannerAttr.coneOuterGain:o._coneOuterGain,distanceModel:void 0!==n.pannerAttr.distanceModel?n.pannerAttr.distanceModel:o._distanceModel,maxDistance:void 0!==n.pannerAttr.maxDistance?n.pannerAttr.maxDistance:o._maxDistance,refDistance:void 0!==n.pannerAttr.refDistance?n.pannerAttr.refDistance:o._refDistance,rolloffFactor:void 0!==n.pannerAttr.rolloffFactor?n.pannerAttr.rolloffFactor:o._rolloffFactor,panningModel:void 0!==n.pannerAttr.panningModel?n.pannerAttr.panningModel:o._panningModel})}else 2===i.length&&(n=i[0],t=parseInt(i[1],10));for(var a=o._getSoundIds(t),s=0;s<a.length;s++)if(r=o._soundById(a[s])){var p=r._pannerAttr;p={coneInnerAngle:void 0!==n.coneInnerAngle?n.coneInnerAngle:p.coneInnerAngle,coneOuterAngle:void 0!==n.coneOuterAngle?n.coneOuterAngle:p.coneOuterAngle,coneOuterGain:void 0!==n.coneOuterGain?n.coneOuterGain:p.coneOuterGain,distanceModel:void 0!==n.distanceModel?n.distanceModel:p.distanceModel,maxDistance:void 0!==n.maxDistance?n.maxDistance:p.maxDistance,refDistance:void 0!==n.refDistance?n.refDistance:p.refDistance,rolloffFactor:void 0!==n.rolloffFactor?n.rolloffFactor:p.rolloffFactor,panningModel:void 0!==n.panningModel?n.panningModel:p.panningModel};var c=r._panner;c?(c.coneInnerAngle=p.coneInnerAngle,c.coneOuterAngle=p.coneOuterAngle,c.coneOuterGain=p.coneOuterGain,c.distanceModel=p.distanceModel,c.maxDistance=p.maxDistance,c.refDistance=p.refDistance,c.rolloffFactor=p.rolloffFactor,c.panningModel=p.panningModel):(r._pos||(r._pos=o._pos||[0,0,-.5]),e(r,"spatial"))}return o},Sound.prototype.init=function(e){return function(){var n=this,t=n._parent;n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,e.call(this),n._stereo?t.stereo(n._stereo):n._pos&&t.pos(n._pos[0],n._pos[1],n._pos[2],n._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var n=this,t=n._parent;return n._orientation=t._orientation,n._stereo=t._stereo,n._pos=t._pos,n._pannerAttr=t._pannerAttr,n._stereo?t.stereo(n._stereo):n._pos?t.pos(n._pos[0],n._pos[1],n._pos[2],n._id):n._panner&&(n._panner.disconnect(0),n._panner=void 0,t._refreshBuffer(n)),e.call(this)}}(Sound.prototype.reset);var e=function(e,n){n=n||"spatial","spatial"===n?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,void 0!==e._panner.positionX?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),void 0!==e._panner.orientationX?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}}();
\ No newline at end of file
var Stats = function () {
var startTime = Date.now(), prevTime = startTime;
var ms = 0, msMin = Infinity, msMax = 0;
var fps = 0, fpsMin = Infinity, fpsMax = 0;
var frames = 0, mode = 0;
var container = document.createElement('div');
container.id = 'stats';
container.addEventListener('mousedown', function (event) {
event.preventDefault();
setMode(++mode % 2)
}, false);
container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer';
var fpsDiv = document.createElement('div');
fpsDiv.id = 'fps';
fpsDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#002';
container.appendChild(fpsDiv);
var fpsText = document.createElement('div');
fpsText.id = 'fpsText';
fpsText.style.cssText = 'color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
fpsText.innerHTML = 'FPS';
fpsDiv.appendChild(fpsText);
var fpsGraph = document.createElement('div');
fpsGraph.id = 'fpsGraph';
fpsGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0ff';
fpsDiv.appendChild(fpsGraph);
while (fpsGraph.children.length < 74) {
var bar = document.createElement('span');
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#113';
fpsGraph.appendChild(bar);
}
var msDiv = document.createElement('div');
msDiv.id = 'ms';
msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;display:none';
container.appendChild(msDiv);
var msText = document.createElement('div');
msText.id = 'msText';
msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
msText.innerHTML = 'MS';
msDiv.appendChild(msText);
var msGraph = document.createElement('div');
msGraph.id = 'msGraph';
msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0';
msDiv.appendChild(msGraph);
while (msGraph.children.length < 74) {
var bar = document.createElement('span');
bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131';
msGraph.appendChild(bar);
}
var setMode = function (value) {
mode = value;
switch (mode) {
case 0:
fpsDiv.style.display = 'block';
msDiv.style.display = 'none';
break;
case 1:
fpsDiv.style.display = 'none';
msDiv.style.display = 'block';
break;
}
}
var updateGraph = function (dom, value) {
var child = dom.appendChild(dom.firstChild);
child.style.height = value + 'px';
}
return {
REVISION: 11,
domElement: container,
setMode: setMode,
begin: function () {
startTime = Date.now();
},
end: function () {
var time = Date.now();
ms = time - startTime;
msMin = Math.min(msMin, ms);
msMax = Math.max(msMax, ms);
msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')';
updateGraph(msGraph, Math.min(30, 30 - (ms / 200) * 30));
frames++;
if (time > prevTime + 1000) {
fps = Math.round((frames * 1000) / (time - prevTime));
fpsMin = Math.min(fpsMin, fps);
fpsMax = Math.max(fpsMax, fps);
fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')';
updateGraph(fpsGraph, Math.min(30, 30 - (fps / 100) * 30));
prevTime = time;
frames = 0;
}
return time;
},
update: function () {
startTime = this.end();
}
}
};
//执行
var stats = new Stats();
stats.domElement.style.position = 'absolute';
stats.domElement.style.top = '0px';
document.body.appendChild(stats.domElement);
aa();
function aa() {
stats.update();
requestAnimationFrame(aa)
}
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SvgaParser=t():e.SvgaParser=t()}(window,(function(){return d=[function(e,t,r){"use strict";var i,n,o=e.exports=r(1),s=r(16);o.codegen=r(45),o.fetch=r(46),o.path=r(47),o.fs=o.inquire("fs"),o.toArray=function(e){if(e){for(var t=Object.keys(e),r=new Array(t.length),i=0;i<t.length;)r[i]=e[t[i++]];return r}return[]},o.toObject=function(e){for(var t={},r=0;r<e.length;){var i=e[r++],n=e[r++];void 0!==n&&(t[i]=n)}return t};var a=/\\/g,f=/"/g;o.isReserved=function(e){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},o.safeProp=function(e){return!/^[$\w_]+$/.test(e)||o.isReserved(e)?'["'+e.replace(a,"\\\\").replace(f,'\\"')+'"]':"."+e},o.ucFirst=function(e){return e.charAt(0).toUpperCase()+e.substring(1)};var l=/_([a-z])/g;o.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(l,(function(e,t){return t.toUpperCase()}))},o.compareFieldsById=function(e,t){return e.id-t.id},o.decorateType=function(e,t){if(e.$type)return t&&e.$type.name!==t&&(o.decorateRoot.remove(e.$type),e.$type.name=t,o.decorateRoot.add(e.$type)),e.$type;var n=new(i=i||r(18))(t||e.name);return o.decorateRoot.add(n),n.ctor=e,Object.defineProperty(e,"$type",{value:n,enumerable:!1}),Object.defineProperty(e.prototype,"$type",{value:n,enumerable:!1}),n};var u=0;o.decorateEnum=function(e){if(e.$type)return e.$type;var t=new(n=n||r(2))("Enum"+u++,e);return o.decorateRoot.add(t),Object.defineProperty(e,"$type",{value:t,enumerable:!1}),t},Object.defineProperty(o,"decorateRoot",{get:function(){return s.decorated||(s.decorated=new(r(26)))}})},function(e,t,r){"use strict";(function(e){var i=t;function n(e,t,r){for(var i=Object.keys(t),n=0;n<i.length;++n)void 0!==e[i[n]]&&r||(e[i[n]]=t[i[n]]);return e}function o(e){function t(e,r){if(!(this instanceof t))return new t(e,r);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),r&&n(this,r)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}i.asPromise=r(13),i.base64=r(36),i.EventEmitter=r(37),i.float=r(38),i.inquire=r(14),i.utf8=r(39),i.pool=r(40),i.LongBits=r(41),i.global="undefined"!=typeof window&&window||void 0!==e&&e||"undefined"!=typeof self&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isNode=Boolean(i.global.process&&i.global.process.versions&&i.global.process.versions.node),i.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},i.isString=function(e){return"string"==typeof e||e instanceof String},i.isObject=function(e){return e&&"object"==typeof e},i.isset=i.isSet=function(e,t){var r=e[t];return!(null==r||!e.hasOwnProperty(t))&&("object"!=typeof r||0<(Array.isArray(r)?r.length:Object.keys(r).length))},i.Buffer=function(){try{var e=i.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(e){return"number"==typeof e?i.Buffer?i._Buffer_allocUnsafe(e):new i.Array(e):i.Buffer?i._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},i.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(e){return e?i.LongBits.from(e).toHash():i.LongBits.zeroHash},i.longFromHash=function(e,t){var r=i.LongBits.fromHash(e);return i.Long?i.Long.fromBits(r.lo,r.hi,t):r.toNumber(Boolean(t))},i.merge=n,i.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},i.newError=o,i.ProtocolError=o("ProtocolError"),i.oneOfGetter=function(e){for(var t={},r=0;r<e.length;++r)t[e[r]]=1;return function(){for(var e=Object.keys(this),r=e.length-1;-1<r;--r)if(1===t[e[r]]&&void 0!==this[e[r]]&&null!==this[e[r]])return e[r]}},i.oneOfSetter=function(e){return function(t){for(var r=0;r<e.length;++r)e[r]!==t&&delete this[e[r]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var e=i.Buffer;e?(i._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,r){return new e(t,r)},i._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}):i._Buffer_from=i._Buffer_allocUnsafe=null}}).call(this,r(35))},function(e,t,r){"use strict";e.exports=s;var i=r(3);((s.prototype=Object.create(i.prototype)).constructor=s).className="Enum";var n=r(5),o=r(0);function s(e,t,r,n,o){if(i.call(this,e,r),t&&"object"!=typeof t)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=n,this.comments=o||{},this.reserved=void 0,t)for(var s=Object.keys(t),a=0;a<s.length;++a)"number"==typeof t[s[a]]&&(this.valuesById[this.values[s[a]]=t[s[a]]]=s[a])}s.fromJSON=function(e,t){var r=new s(e,t.values,t.options,t.comment,t.comments);return r.reserved=t.reserved,r},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["options",this.options,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",t?this.comment:void 0,"comments",t?this.comments:void 0])},s.prototype.add=function(e,t,r){if(!o.isString(e))throw TypeError("name must be a string");if(!o.isInteger(t))throw TypeError("id must be an integer");if(void 0!==this.values[e])throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(void 0!==this.valuesById[t]){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return this.comments[e]=r||null,this},s.prototype.remove=function(e){if(!o.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this},s.prototype.isReservedId=function(e){return n.isReservedId(this.reserved,e)},s.prototype.isReservedName=function(e){return n.isReservedName(this.reserved,e)}},function(e,t,r){"use strict";(e.exports=o).className="ReflectionObject";var i,n=r(0);function o(e,t){if(!n.isString(e))throw TypeError("name must be a string");if(t&&!n.isObject(t))throw TypeError("options must be an object");this.options=t,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}Object.defineProperties(o.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),o.prototype.toJSON=function(){throw Error()},o.prototype.onAdd=function(e){this.parent&&this.parent!==e&&this.parent.remove(this),this.parent=e,this.resolved=!1;var t=e.root;t instanceof i&&t._handleAdd(this)},o.prototype.onRemove=function(e){var t=e.root;t instanceof i&&t._handleRemove(this),this.parent=null,this.resolved=!1},o.prototype.resolve=function(){return this.resolved||this.root instanceof i&&(this.resolved=!0),this},o.prototype.getOption=function(e){if(this.options)return this.options[e]},o.prototype.setOption=function(e,t,r){return r&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},o.prototype.setOptions=function(e,t){if(e)for(var r=Object.keys(e),i=0;i<r.length;++i)this.setOption(r[i],e[r[i]],t);return this},o.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},o._configure=function(e){i=e}},function(e,t,r){"use strict";e.exports=l;var i=r(3);((l.prototype=Object.create(i.prototype)).constructor=l).className="Field";var n,o=r(2),s=r(6),a=r(0),f=/^required|optional|repeated$/;function l(e,t,r,n,o,l,u){if(a.isObject(n)?(u=o,l=n,n=o=void 0):a.isObject(o)&&(u=l,l=o,o=void 0),i.call(this,e,l),!a.isInteger(t)||t<0)throw TypeError("id must be a non-negative integer");if(!a.isString(r))throw TypeError("type must be a string");if(void 0!==n&&!f.test(n=n.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(void 0!==o&&!a.isString(o))throw TypeError("extend must be a string");this.rule=n&&"optional"!==n?n:void 0,this.type=r,this.id=t,this.extend=o||void 0,this.required="required"===n,this.optional=!this.required,this.repeated="repeated"===n,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!a.Long&&void 0!==s.long[r],this.bytes="bytes"===r,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=u}l.fromJSON=function(e,t){return new l(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(l.prototype,"packed",{get:function(){return null===this._packed&&(this._packed=!1!==this.getOption("packed")),this._packed}}),l.prototype.setOption=function(e,t,r){return"packed"===e&&(this._packed=null),i.prototype.setOption.call(this,e,t,r)},l.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return a.toObject(["rule","optional"!==this.rule&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},l.prototype.resolve=function(){return this.resolved?this:(void 0===(this.typeDefault=s.defaults[this.type])&&(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof n?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof o&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof o)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long?(this.typeDefault=a.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault)):this.bytes&&"string"==typeof this.typeDefault&&(a.base64.test(this.typeDefault)?a.base64.decode(this.typeDefault,e=a.newBuffer(a.base64.length(this.typeDefault)),0):a.utf8.write(this.typeDefault,e=a.newBuffer(a.utf8.length(this.typeDefault)),0),this.typeDefault=e),this.map?this.defaultValue=a.emptyObject:this.repeated?this.defaultValue=a.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof n&&(this.parent.ctor.prototype[this.name]=this.defaultValue),i.prototype.resolve.call(this));var e},l.d=function(e,t,r,i){return"function"==typeof t?t=a.decorateType(t).name:t&&"object"==typeof t&&(t=a.decorateEnum(t).name),function(n,o){a.decorateType(n.constructor).add(new l(o,e,t,r,{default:i}))}},l._configure=function(e){n=e}},function(e,t,r){"use strict";e.exports=u;var i=r(3);((u.prototype=Object.create(i.prototype)).constructor=u).className="Namespace";var n,o,s,a=r(4),f=r(0);function l(e,t){if(e&&e.length){for(var r={},i=0;i<e.length;++i)r[e[i].name]=e[i].toJSON(t);return r}}function u(e,t){i.call(this,e,t),this.nested=void 0,this._nestedArray=null}function h(e){return e._nestedArray=null,e}u.fromJSON=function(e,t){return new u(e,t.options).addJSON(t.nested)},u.arrayToJSON=l,u.isReservedId=function(e,t){if(e)for(var r=0;r<e.length;++r)if("string"!=typeof e[r]&&e[r][0]<=t&&e[r][1]>t)return!0;return!1},u.isReservedName=function(e,t){if(e)for(var r=0;r<e.length;++r)if(e[r]===t)return!0;return!1},Object.defineProperty(u.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=f.toArray(this.nested))}}),u.prototype.toJSON=function(e){return f.toObject(["options",this.options,"nested",l(this.nestedArray,e)])},u.prototype.addJSON=function(e){if(e)for(var t,r=Object.keys(e),i=0;i<r.length;++i)t=e[r[i]],this.add((void 0!==t.fields?n.fromJSON:void 0!==t.values?s.fromJSON:void 0!==t.methods?o.fromJSON:void 0!==t.id?a.fromJSON:u.fromJSON)(r[i],t));return this},u.prototype.get=function(e){return this.nested&&this.nested[e]||null},u.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof s)return this.nested[e].values;throw Error("no such enum: "+e)},u.prototype.add=function(e){if(!(e instanceof a&&void 0!==e.extend||e instanceof n||e instanceof s||e instanceof o||e instanceof u))throw TypeError("object must be a valid nested object");if(this.nested){var t=this.get(e.name);if(t){if(!(t instanceof u&&e instanceof u)||t instanceof n||t instanceof o)throw Error("duplicate name '"+e.name+"' in "+this);for(var r=t.nestedArray,i=0;i<r.length;++i)e.add(r[i]);this.remove(t),this.nested||(this.nested={}),e.setOptions(t.options,!0)}}else this.nested={};return(this.nested[e.name]=e).onAdd(this),h(this)},u.prototype.remove=function(e){if(!(e instanceof i))throw TypeError("object must be a ReflectionObject");if(e.parent!==this)throw Error(e+" is not a member of "+this);return delete this.nested[e.name],Object.keys(this.nested).length||(this.nested=void 0),e.onRemove(this),h(this)},u.prototype.define=function(e,t){if(f.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var r=this;0<e.length;){var i=e.shift();if(r.nested&&r.nested[i]){if(!((r=r.nested[i])instanceof u))throw Error("path conflicts with non-namespace objects")}else r.add(r=new u(i))}return t&&r.addJSON(t),r},u.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof u?e[t++].resolveAll():e[t++].resolve();return this.resolve()},u.prototype.lookup=function(e,t,r){if("boolean"==typeof t?(r=t,t=void 0):t&&!Array.isArray(t)&&(t=[t]),f.isString(e)&&e.length){if("."===e)return this.root;e=e.split(".")}else if(!e.length)return this;if(""===e[0])return this.root.lookup(e.slice(1),t);var i=this.get(e[0]);if(i){if(1===e.length){if(!t||-1<t.indexOf(i.constructor))return i}else if(i instanceof u&&(i=i.lookup(e.slice(1),t,!0)))return i}else for(var n=0;n<this.nestedArray.length;++n)if(this._nestedArray[n]instanceof u&&(i=this._nestedArray[n].lookup(e,t,!0)))return i;return null===this.parent||r?null:this.parent.lookup(e,t)},u.prototype.lookupType=function(e){var t=this.lookup(e,[n]);if(!t)throw Error("no such type: "+e);return t},u.prototype.lookupEnum=function(e){var t=this.lookup(e,[s]);if(!t)throw Error("no such Enum '"+e+"' in "+this);return t},u.prototype.lookupTypeOrEnum=function(e){var t=this.lookup(e,[n,s]);if(!t)throw Error("no such Type or Enum '"+e+"' in "+this);return t},u.prototype.lookupService=function(e){var t=this.lookup(e,[o]);if(!t)throw Error("no such Service '"+e+"' in "+this);return t},u._configure=function(e,t,r){n=e,o=t,s=r}},function(e,t,r){"use strict";var i=t,n=r(0),o=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function s(e,t){var r=0,i={};for(t|=0;r<e.length;)i[o[r+t]]=e[r++];return i}i.basic=s([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=s([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",n.emptyArray,null]),i.long=s([0,0,0,1,1],7),i.mapKey=s([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=s([1,5,0,0,0,5,5,0,0,0,1,1,0])},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,n,o,s,a="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array?(i=Uint8Array,n=Uint16Array,o=Int32Array,s=function(e,t,r,i,n){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+i),n);else for(var o=0;o<i;o++)e[n+o]=t[r+o]},function(e){for(var t,r,i,n=0,o=0,s=e.length;o<s;o++)n+=e[o].length;for(i=new Uint8Array(n),o=t=0,s=e.length;o<s;o++)r=e[o],i.set(r,t),t+=r.length;return i}):(i=Array,n=Array,o=Array,s=function(e,t,r,i,n){for(var o=0;o<i;o++)e[n+o]=t[r+o]},function(e){return[].concat.apply([],e)});t.utils={assign:function(e,t){for(var r in t)i=t,n=r,Object.prototype.hasOwnProperty.call(i,n)&&(e[r]=t[r]);var i,n;return e},shrinkBuf:function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)},Buf8:i,Buf16:n,Buf32:o,arraySet:s,flattenChunks:a}},function(e,t,r){"use strict";e.exports=h;var i,n=r(1),o=n.LongBits,s=n.base64,a=n.utf8;function f(e,t,r){this.fn=e,this.len=t,this.next=void 0,this.val=r}function l(){}function u(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function h(){this.len=0,this.head=new f(l,0,0),this.tail=this.head,this.states=null}function c(){return n.Buffer?function(){return(h.create=function(){return new i})()}:function(){return new h}}function d(e,t,r){t[r]=255&e}function p(e,t){this.len=e,this.next=void 0,this.val=t}function y(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;127<e.lo;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function m(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}h.create=c(),h.alloc=function(e){return new n.Array(e)},n.Array!==Array&&(h.alloc=n.pool(h.alloc,n.Array.prototype.subarray)),h.prototype._push=function(e,t,r){return this.tail=this.tail.next=new f(e,t,r),this.len+=t,this},(p.prototype=Object.create(f.prototype)).fn=function(e,t,r){for(;127<e;)t[r++]=127&e|128,e>>>=7;t[r]=e},h.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new p((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},h.prototype.int32=function(e){return e<0?this._push(y,10,o.fromNumber(e)):this.uint32(e)},h.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},h.prototype.int64=h.prototype.uint64=function(e){var t=o.from(e);return this._push(y,t.length(),t)},h.prototype.sint64=function(e){var t=o.from(e).zzEncode();return this._push(y,t.length(),t)},h.prototype.bool=function(e){return this._push(d,1,e?1:0)},h.prototype.sfixed32=h.prototype.fixed32=function(e){return this._push(m,4,e>>>0)},h.prototype.sfixed64=h.prototype.fixed64=function(e){var t=o.from(e);return this._push(m,4,t.lo)._push(m,4,t.hi)},h.prototype.float=function(e){return this._push(n.float.writeFloatLE,4,e)},h.prototype.double=function(e){return this._push(n.float.writeDoubleLE,8,e)};var v=n.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var i=0;i<e.length;++i)t[r+i]=e[i]};h.prototype.bytes=function(e){var t,r=e.length>>>0;return r?(n.isString(e)&&(t=h.alloc(r=s.length(e)),s.decode(e,t,0),e=t),this.uint32(r)._push(v,r,e)):this._push(d,1,0)},h.prototype.string=function(e){var t=a.length(e);return t?this.uint32(t)._push(a.write,t,e):this._push(d,1,0)},h.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new f(l,0,0),this.len=0,this},h.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new f(l,0,0),this.len=0),this},h.prototype.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},h.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t},h._configure=function(e){i=e,h.create=c(),i._configure()}},function(e,t,r){"use strict";e.exports=f;var i,n=r(1),o=n.LongBits,s=n.utf8;function a(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function f(e){this.buf=e,this.pos=0,this.len=e.length}function l(){return n.Buffer?function(e){return(f.create=function(e){return n.Buffer.isBuffer(e)?new i(e):h(e)})(e)}:h}var u,h="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new f(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new f(e);throw Error("illegal buffer")};function c(){var e=new o(0,0),t=0;if(!(4<this.len-this.pos)){for(;t<3;++t){if(this.pos>=this.len)throw a(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,4<this.len-this.pos){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw a(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function d(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function p(){if(this.pos+8>this.len)throw a(this,8);return new o(d(this.buf,this.pos+=4),d(this.buf,this.pos+=4))}f.create=l(),f.prototype._slice=n.Array.prototype.subarray||n.Array.prototype.slice,f.prototype.uint32=(u=4294967295,function(){if(u=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return u;if(u=(u|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return u;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return u}),f.prototype.int32=function(){return 0|this.uint32()},f.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},f.prototype.bool=function(){return 0!==this.uint32()},f.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return d(this.buf,this.pos+=4)},f.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return 0|d(this.buf,this.pos+=4)},f.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var e=n.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e},f.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var e=n.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e},f.prototype.bytes=function(){var e=this.uint32(),t=this.pos,r=this.pos+e;if(r>this.len)throw a(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(t,r):t===r?new this.buf.constructor(0):this._slice.call(this.buf,t,r)},f.prototype.string=function(){var e=this.bytes();return s.read(e,0,e.length)},f.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw a(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw a(this)}while(128&this.buf[this.pos++]);return this},f.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;4!=(e=7&this.uint32());)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},f._configure=function(e){i=e,f.create=l(),i._configure();var t=n.Long?"toLong":"toNumber";n.merge(f.prototype,{int64:function(){return c.call(this)[t](!1)},uint64:function(){return c.call(this)[t](!0)},sint64:function(){return c.call(this).zzDecode()[t](!1)},fixed64:function(){return p.call(this)[t](!0)},sfixed64:function(){return p.call(this)[t](!1)}})}},function(e,t,r){"use strict";e.exports=s;var i=r(3);((s.prototype=Object.create(i.prototype)).constructor=s).className="OneOf";var n=r(4),o=r(0);function s(e,t,r,n){if(Array.isArray(t)||(r=t,t=void 0),i.call(this,e,r),void 0!==t&&!Array.isArray(t))throw TypeError("fieldNames must be an Array");this.oneof=t||[],this.fieldsArray=[],this.comment=n}function a(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}s.fromJSON=function(e,t){return new s(e,t.oneof,t.options,t.comment)},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["options",this.options,"oneof",this.oneof,"comment",t?this.comment:void 0])},s.prototype.add=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");return e.parent&&e.parent!==this.parent&&e.parent.remove(e),this.oneof.push(e.name),this.fieldsArray.push(e),a(e.partOf=this),this},s.prototype.remove=function(e){if(!(e instanceof n))throw TypeError("field must be a Field");var t=this.fieldsArray.indexOf(e);if(t<0)throw Error(e+" is not a member of "+this);return this.fieldsArray.splice(t,1),-1<(t=this.oneof.indexOf(e.name))&&this.oneof.splice(t,1),e.partOf=null,this},s.prototype.onAdd=function(e){i.prototype.onAdd.call(this,e);for(var t=0;t<this.oneof.length;++t){var r=e.get(this.oneof[t]);r&&!r.partOf&&(r.partOf=this).fieldsArray.push(r)}a(this)},s.prototype.onRemove=function(e){for(var t,r=0;r<this.fieldsArray.length;++r)(t=this.fieldsArray[r]).parent&&t.parent.remove(t);i.prototype.onRemove.call(this,e)},s.d=function(){for(var e=new Array(arguments.length),t=0;t<arguments.length;)e[t]=arguments[t++];return function(t,r){o.decorateType(t.constructor).add(new s(r,e)),Object.defineProperty(t,r,{get:o.oneOfGetter(e),set:o.oneOfSetter(e)})}}},function(e,t,r){"use strict";e.exports=n;var i=r(1);function n(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}n.create=function(e){return this.$type.create(e)},n.encode=function(e,t){return this.$type.encode(e,t)},n.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},n.decode=function(e){return this.$type.decode(e)},n.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},n.verify=function(e){return this.$type.verify(e)},n.fromObject=function(e){return this.$type.fromObject(e)},n.toObject=function(e,t){return this.$type.toObject(e,t)},n.prototype.toJSON=function(){return this.$type.toObject(this,i.toJSONOptions)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(32),n=JSON.parse('{"nested":{"com":{"nested":{"opensource":{"nested":{"svga":{"options":{"objc_class_prefix":"SVGAProto","java_package":"com.opensource.svgaplayer.proto"},"nested":{"MovieParams":{"fields":{"viewBoxWidth":{"type":"float","id":1},"viewBoxHeight":{"type":"float","id":2},"fps":{"type":"int32","id":3},"frames":{"type":"int32","id":4}}},"SpriteEntity":{"fields":{"imageKey":{"type":"string","id":1},"frames":{"rule":"repeated","type":"FrameEntity","id":2},"matteKey":{"type":"string","id":3}}},"AudioEntity":{"fields":{"audioKey":{"type":"string","id":1},"startFrame":{"type":"int32","id":2},"endFrame":{"type":"int32","id":3},"startTime":{"type":"int32","id":4},"totalTime":{"type":"int32","id":5}}},"Layout":{"fields":{"x":{"type":"float","id":1},"y":{"type":"float","id":2},"width":{"type":"float","id":3},"height":{"type":"float","id":4}}},"Transform":{"fields":{"a":{"type":"float","id":1},"b":{"type":"float","id":2},"c":{"type":"float","id":3},"d":{"type":"float","id":4},"tx":{"type":"float","id":5},"ty":{"type":"float","id":6}}},"ShapeEntity":{"oneofs":{"args":{"oneof":["shape","rect","ellipse"]}},"fields":{"type":{"type":"ShapeType","id":1},"shape":{"type":"ShapeArgs","id":2},"rect":{"type":"RectArgs","id":3},"ellipse":{"type":"EllipseArgs","id":4},"styles":{"type":"ShapeStyle","id":10},"transform":{"type":"Transform","id":11}},"nested":{"ShapeType":{"values":{"SHAPE":0,"RECT":1,"ELLIPSE":2,"KEEP":3}},"ShapeArgs":{"fields":{"d":{"type":"string","id":1}}},"RectArgs":{"fields":{"x":{"type":"float","id":1},"y":{"type":"float","id":2},"width":{"type":"float","id":3},"height":{"type":"float","id":4},"cornerRadius":{"type":"float","id":5}}},"EllipseArgs":{"fields":{"x":{"type":"float","id":1},"y":{"type":"float","id":2},"radiusX":{"type":"float","id":3},"radiusY":{"type":"float","id":4}}},"ShapeStyle":{"fields":{"fill":{"type":"RGBAColor","id":1},"stroke":{"type":"RGBAColor","id":2},"strokeWidth":{"type":"float","id":3},"lineCap":{"type":"LineCap","id":4},"lineJoin":{"type":"LineJoin","id":5},"miterLimit":{"type":"float","id":6},"lineDashI":{"type":"float","id":7},"lineDashII":{"type":"float","id":8},"lineDashIII":{"type":"float","id":9}},"nested":{"RGBAColor":{"fields":{"r":{"type":"float","id":1},"g":{"type":"float","id":2},"b":{"type":"float","id":3},"a":{"type":"float","id":4}}},"LineCap":{"values":{"LineCap_BUTT":0,"LineCap_ROUND":1,"LineCap_SQUARE":2}},"LineJoin":{"values":{"LineJoin_MITER":0,"LineJoin_ROUND":1,"LineJoin_BEVEL":2}}}}}},"FrameEntity":{"fields":{"alpha":{"type":"float","id":1},"layout":{"type":"Layout","id":2},"transform":{"type":"Transform","id":3},"clipPath":{"type":"string","id":4},"shapes":{"rule":"repeated","type":"ShapeEntity","id":5}}},"MovieEntity":{"fields":{"version":{"type":"string","id":1},"params":{"type":"MovieParams","id":2},"images":{"keyType":"string","type":"bytes","id":3},"sprites":{"rule":"repeated","type":"SpriteEntity","id":4},"audios":{"rule":"repeated","type":"AudioEntity","id":5}}}}}}}}}}}');t.proto=i.Root.fromJSON(n),t.ProtoMovieEntity=t.proto.lookupType("com.opensource.svga.MovieEntity")},function(e,t,r){"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),i=0,n=2,o=!0;n<arguments.length;)r[i++]=arguments[n++];return new Promise((function(n,s){r[i]=function(e){if(o)if(o=!1,e)s(e);else{for(var t=new Array(arguments.length-1),r=0;r<t.length;)t[r++]=arguments[r];n.apply(null,t)}};try{e.apply(t||null,r)}catch(e){o&&(o=!1,s(e))}}))}},function(module,exports,__webpack_require__){"use strict";function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},function(e,t,r){"use strict";t.Service=r(44)},function(e,t,r){"use strict";e.exports={}},function(e,t,r){"use strict";e.exports=function(e){for(var t,r=o.codegen(["m","w"],e.name+"$encode")("if(!w)")("w=Writer.create()"),a=e.fieldsArray.slice().sort(o.compareFieldsById),f=0;f<a.length;++f){var l=a[f].resolve(),u=e._fieldsArray.indexOf(l),h=l.resolvedType instanceof i?"int32":l.type,c=n.basic[h];t="m"+o.safeProp(l.name),l.map?(r("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",t,l.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",t)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(l.id<<3|2)>>>0,8|n.mapKey[l.keyType],l.keyType),void 0===c?r("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",u,t):r(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|c,h,t),r("}")("}")):l.repeated?(r("if(%s!=null&&%s.length){",t,t),l.packed&&void 0!==n.packed[h]?r("w.uint32(%i).fork()",(l.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",t)("w.%s(%s[i])",h,t)("w.ldelim()"):(r("for(var i=0;i<%s.length;++i)",t),void 0===c?s(r,l,u,t+"[i]"):r("w.uint32(%i).%s(%s[i])",(l.id<<3|c)>>>0,h,t)),r("}")):(l.optional&&r("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",t,l.name),void 0===c?s(r,l,u,t):r("w.uint32(%i).%s(%s)",(l.id<<3|c)>>>0,h,t))}return r("return w")};var i=r(2),n=r(6),o=r(0);function s(e,t,r,i){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,i,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,i,(t.id<<3|2)>>>0)}},function(e,t,r){"use strict";e.exports=g;var i=r(5);((g.prototype=Object.create(i.prototype)).constructor=g).className="Type";var n=r(2),o=r(10),s=r(4),a=r(19),f=r(20),l=r(11),u=r(9),h=r(8),c=r(0),d=r(17),p=r(22),y=r(23),m=r(24),v=r(25);function g(e,t){i.call(this,e,t),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}function b(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}Object.defineProperties(g.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],i=r.id;if(this._fieldsById[i])throw Error("duplicate id "+i+" in "+this);this._fieldsById[i]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=c.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=c.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=g.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof l||((e.prototype=new l).constructor=e,c.merge(e.prototype,t)),e.$type=e.prototype.$type=this,c.merge(e,l,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var i={};for(r=0;r<this.oneofsArray.length;++r)i[this._oneofsArray[r].resolve().name]={get:c.oneOfGetter(this._oneofsArray[r].oneof),set:c.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,i)}}}),g.generateConstructor=function(e){for(var t,r=c.codegen(["p"],e.name),i=0;i<e.fieldsArray.length;++i)(t=e._fieldsArray[i]).map?r("this%s={}",c.safeProp(t.name)):t.repeated&&r("this%s=[]",c.safeProp(t.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},g.fromJSON=function(e,t){var r=new g(e,t.options);r.extensions=t.extensions,r.reserved=t.reserved;for(var l=Object.keys(t.fields),u=0;u<l.length;++u)r.add((void 0!==t.fields[l[u]].keyType?a.fromJSON:s.fromJSON)(l[u],t.fields[l[u]]));if(t.oneofs)for(l=Object.keys(t.oneofs),u=0;u<l.length;++u)r.add(o.fromJSON(l[u],t.oneofs[l[u]]));if(t.nested)for(l=Object.keys(t.nested),u=0;u<l.length;++u){var h=t.nested[l[u]];r.add((void 0!==h.id?s.fromJSON:void 0!==h.fields?g.fromJSON:void 0!==h.values?n.fromJSON:void 0!==h.methods?f.fromJSON:i.fromJSON)(l[u],h))}return t.extensions&&t.extensions.length&&(r.extensions=t.extensions),t.reserved&&t.reserved.length&&(r.reserved=t.reserved),t.group&&(r.group=!0),t.comment&&(r.comment=t.comment),r},g.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return c.toObject(["options",t&&t.options||void 0,"oneofs",i.arrayToJSON(this.oneofsArray,e),"fields",i.arrayToJSON(this.fieldsArray.filter((function(e){return!e.declaringField})),e)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},g.prototype.resolveAll=function(){for(var e=this.fieldsArray,t=0;t<e.length;)e[t++].resolve();var r=this.oneofsArray;for(t=0;t<r.length;)r[t++].resolve();return i.prototype.resolveAll.call(this)},g.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},g.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);if(e instanceof s&&void 0===e.extend){if(this._fieldsById?this._fieldsById[e.id]:this.fieldsById[e.id])throw Error("duplicate id "+e.id+" in "+this);if(this.isReservedId(e.id))throw Error("id "+e.id+" is reserved in "+this);if(this.isReservedName(e.name))throw Error("name '"+e.name+"' is reserved in "+this);return e.parent&&e.parent.remove(e),(this.fields[e.name]=e).message=this,e.onAdd(this),b(this)}return e instanceof o?(this.oneofs||(this.oneofs={}),(this.oneofs[e.name]=e).onAdd(this),b(this)):i.prototype.add.call(this,e)},g.prototype.remove=function(e){if(e instanceof s&&void 0===e.extend){if(!this.fields||this.fields[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.fields[e.name],e.parent=null,e.onRemove(this),b(this)}if(e instanceof o){if(!this.oneofs||this.oneofs[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.oneofs[e.name],e.parent=null,e.onRemove(this),b(this)}return i.prototype.remove.call(this,e)},g.prototype.isReservedId=function(e){return i.isReservedId(this.reserved,e)},g.prototype.isReservedName=function(e){return i.isReservedName(this.reserved,e)},g.prototype.create=function(e){return new this.ctor(e)},g.prototype.setup=function(){for(var e=this.fullName,t=[],r=0;r<this.fieldsArray.length;++r)t.push(this._fieldsArray[r].resolve().resolvedType);this.encode=d(this)({Writer:h,types:t,util:c}),this.decode=p(this)({Reader:u,types:t,util:c}),this.verify=y(this)({types:t,util:c}),this.fromObject=m.fromObject(this)({types:t,util:c}),this.toObject=m.toObject(this)({types:t,util:c});var i,n=v[e];return n&&((i=Object.create(this)).fromObject=this.fromObject,this.fromObject=n.fromObject.bind(i),i.toObject=this.toObject,this.toObject=n.toObject.bind(i)),this},g.prototype.encode=function(e,t){return this.setup().encode(e,t)},g.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},g.prototype.decode=function(e,t){return this.setup().decode(e,t)},g.prototype.decodeDelimited=function(e){return e instanceof u||(e=u.create(e)),this.decode(e,e.uint32())},g.prototype.verify=function(e){return this.setup().verify(e)},g.prototype.fromObject=function(e){return this.setup().fromObject(e)},g.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},g.d=function(e){return function(t){c.decorateType(t,e)}}},function(e,t,r){"use strict";e.exports=s;var i=r(4);((s.prototype=Object.create(i.prototype)).constructor=s).className="MapField";var n=r(6),o=r(0);function s(e,t,r,n,s,a){if(i.call(this,e,t,n,void 0,void 0,s,a),!o.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}s.fromJSON=function(e,t){return new s(e,t.id,t.keyType,t.type,t.options,t.comment)},s.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},s.prototype.resolve=function(){if(this.resolved)return this;if(void 0===n.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return i.prototype.resolve.call(this)},s.d=function(e,t,r){return"function"==typeof r?r=o.decorateType(r).name:r&&"object"==typeof r&&(r=o.decorateEnum(r).name),function(i,n){o.decorateType(i.constructor).add(new s(n,e,t,r))}}},function(e,t,r){"use strict";e.exports=a;var i=r(5);((a.prototype=Object.create(i.prototype)).constructor=a).className="Service";var n=r(21),o=r(0),s=r(15);function a(e,t){i.call(this,e,t),this.methods={},this._methodsArray=null}function f(e){return e._methodsArray=null,e}a.fromJSON=function(e,t){var r=new a(e,t.options);if(t.methods)for(var i=Object.keys(t.methods),o=0;o<i.length;++o)r.add(n.fromJSON(i[o],t.methods[i[o]]));return t.nested&&r.addJSON(t.nested),r.comment=t.comment,r},a.prototype.toJSON=function(e){var t=i.prototype.toJSON.call(this,e),r=!!e&&Boolean(e.keepComments);return o.toObject(["options",t&&t.options||void 0,"methods",i.arrayToJSON(this.methodsArray,e)||{},"nested",t&&t.nested||void 0,"comment",r?this.comment:void 0])},Object.defineProperty(a.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=o.toArray(this.methods))}}),a.prototype.get=function(e){return this.methods[e]||i.prototype.get.call(this,e)},a.prototype.resolveAll=function(){for(var e=this.methodsArray,t=0;t<e.length;++t)e[t].resolve();return i.prototype.resolve.call(this)},a.prototype.add=function(e){if(this.get(e.name))throw Error("duplicate name '"+e.name+"' in "+this);return e instanceof n?f((this.methods[e.name]=e).parent=this):i.prototype.add.call(this,e)},a.prototype.remove=function(e){if(e instanceof n){if(this.methods[e.name]!==e)throw Error(e+" is not a member of "+this);return delete this.methods[e.name],e.parent=null,f(this)}return i.prototype.remove.call(this,e)},a.prototype.create=function(e,t,r){for(var i,n=new s.Service(e,t,r),a=0;a<this.methodsArray.length;++a){var f=o.lcFirst((i=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");n[f]=o.codegen(["r","c"],o.isReserved(f)?f+"_":f)("return this.rpcCall(m,q,s,r,c)")({m:i,q:i.resolvedRequestType.ctor,s:i.resolvedResponseType.ctor})}return n}},function(e,t,r){"use strict";e.exports=o;var i=r(3);((o.prototype=Object.create(i.prototype)).constructor=o).className="Method";var n=r(0);function o(e,t,r,o,s,a,f,l){if(n.isObject(s)?(f=s,s=a=void 0):n.isObject(a)&&(f=a,a=void 0),void 0!==t&&!n.isString(t))throw TypeError("type must be a string");if(!n.isString(r))throw TypeError("requestType must be a string");if(!n.isString(o))throw TypeError("responseType must be a string");i.call(this,e,f),this.type=t||"rpc",this.requestType=r,this.requestStream=!!s||void 0,this.responseType=o,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=l}o.fromJSON=function(e,t){return new o(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment)},o.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return n.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",t?this.comment:void 0])},o.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),i.prototype.resolve.call(this))}},function(e,t,r){"use strict";e.exports=function(e){var t=o.codegen(["r","l"],e.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(e.fieldsArray.filter((function(e){return e.map})).length?",k":""))("while(r.pos<c){")("var t=r.uint32()");e.group&&t("if((t&7)===4)")("break"),t("switch(t>>>3){");for(var r=0;r<e.fieldsArray.length;++r){var s=e._fieldsArray[r].resolve(),a=s.resolvedType instanceof i?"int32":s.type,f="m"+o.safeProp(s.name);t("case %i:",s.id),s.map?(t("r.skip().pos++")("if(%s===util.emptyObject)",f)("%s={}",f)("k=r.%s()",s.keyType)("r.pos++"),void 0!==n.long[s.keyType]?void 0===n.basic[a]?t('%s[typeof k==="object"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())',f,r):t('%s[typeof k==="object"?util.longToHash(k):k]=r.%s()',f,a):void 0===n.basic[a]?t("%s[k]=types[%i].decode(r,r.uint32())",f,r):t("%s[k]=r.%s()",f,a)):s.repeated?(t("if(!(%s&&%s.length))",f,f)("%s=[]",f),void 0!==n.packed[a]&&t("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",f,a)("}else"),void 0===n.basic[a]?t(s.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",f,r):t("%s.push(r.%s())",f,a)):void 0===n.basic[a]?t(s.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",f,r):t("%s=r.%s()",f,a),t("break")}for(t("default:")("r.skipType(t&7)")("break")("}")("}"),r=0;r<e._fieldsArray.length;++r){var l=e._fieldsArray[r];l.required&&t("if(!m.hasOwnProperty(%j))",l.name)("throw util.ProtocolError(%j,{instance:m})","missing required '"+l.name+"'")}return t("return m")};var i=r(2),n=r(6),o=r(0)},function(e,t,r){"use strict";e.exports=function(e){var t=n.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),r={};e.oneofsArray.length&&t("var p={}");for(var i=0;i<e.fieldsArray.length;++i){var f,l=e._fieldsArray[i].resolve(),u="m"+n.safeProp(l.name);l.optional&&t("if(%s!=null&&m.hasOwnProperty(%j)){",u,l.name),l.map?(t("if(!util.isObject(%s))",u)("return%j",o(l,"object"))("var k=Object.keys(%s)",u)("for(var i=0;i<k.length;++i){"),a(t,l,"k[i]"),s(t,l,i,u+"[k[i]]")("}")):l.repeated?(t("if(!Array.isArray(%s))",u)("return%j",o(l,"array"))("for(var i=0;i<%s.length;++i){",u),s(t,l,i,u+"[i]")("}")):(l.partOf&&(f=n.safeProp(l.partOf.name),1===r[l.partOf.name]&&t("if(p%s===1)",f)("return%j",l.partOf.name+": multiple values"),r[l.partOf.name]=1,t("p%s=1",f)),s(t,l,i,u)),l.optional&&t("}")}return t("return null")};var i=r(2),n=r(0);function o(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function s(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof i){e("switch(%s){",n)("default:")("return%j",o(t,"enum value"));for(var s=Object.keys(t.resolvedType.values),a=0;a<s.length;++a)e("case %i:",t.resolvedType.values[s[a]]);e("break")("}")}else e("{")("var e=types[%i].verify(%s);",r,n)("if(e)")("return%j+e",t.name+".")("}");else switch(t.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.isInteger(%s))",n)("return%j",o(t,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",n,n,n,n)("return%j",o(t,"integer|Long"));break;case"float":case"double":e('if(typeof %s!=="number")',n)("return%j",o(t,"number"));break;case"bool":e('if(typeof %s!=="boolean")',n)("return%j",o(t,"boolean"));break;case"string":e("if(!util.isString(%s))",n)("return%j",o(t,"string"));break;case"bytes":e('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',n,n,n)("return%j",o(t,"buffer"))}return e}function a(e,t,r){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",r)("return%j",o(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",r)("return%j",o(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",r)("return%j",o(t,"boolean key"))}return e}},function(e,t,r){"use strict";var i=t,n=r(2),o=r(0);function s(e,t,r,i){if(t.resolvedType)if(t.resolvedType instanceof n){e("switch(d%s){",i);for(var o=t.resolvedType.values,s=Object.keys(o),a=0;a<s.length;++a)t.repeated&&o[s[a]]===t.typeDefault&&e("default:"),e("case%j:",s[a])("case %i:",o[s[a]])("m%s=%j",i,o[s[a]])("break");e("}")}else e('if(typeof d%s!=="object")',i)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",i,r,i);else{var f=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",i,i);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",i,i);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",i,i);break;case"uint64":f=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",i,i,f)('else if(typeof d%s==="string")',i)("m%s=parseInt(d%s,10)",i,i)('else if(typeof d%s==="number")',i)("m%s=d%s",i,i)('else if(typeof d%s==="object")',i)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",i,i,i,f?"true":"");break;case"bytes":e('if(typeof d%s==="string")',i)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",i,i,i)("else if(d%s.length)",i)("m%s=d%s",i,i);break;case"string":e("m%s=String(d%s)",i,i);break;case"bool":e("m%s=Boolean(d%s)",i,i)}}return e}function a(e,t,r,i){if(t.resolvedType)t.resolvedType instanceof n?e("d%s=o.enums===String?types[%i].values[m%s]:m%s",i,r,i,i):e("d%s=types[%i].toObject(m%s,o)",i,r,i);else{var o=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",i,i,i,i);break;case"uint64":o=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',i)("d%s=o.longs===String?String(m%s):m%s",i,i,i)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",i,i,i,i,o?"true":"",i);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",i,i,i,i,i);break;default:e("d%s=m%s",i,i)}}return e}i.fromObject=function(e){var t=e.fieldsArray,r=o.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return r("return new this.ctor");r("var m=new this.ctor");for(var i=0;i<t.length;++i){var a=t[i].resolve(),f=o.safeProp(a.name);a.map?(r("if(d%s){",f)('if(typeof d%s!=="object")',f)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",f)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",f),s(r,a,i,f+"[ks[i]]")("}")("}")):a.repeated?(r("if(d%s){",f)("if(!Array.isArray(d%s))",f)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",f)("for(var i=0;i<d%s.length;++i){",f),s(r,a,i,f+"[i]")("}")("}")):(a.resolvedType instanceof n||r("if(d%s!=null){",f),s(r,a,i,f),a.resolvedType instanceof n||r("}"))}return r("return m")},i.toObject=function(e){var t=e.fieldsArray.slice().sort(o.compareFieldsById);if(!t.length)return o.codegen()("return {}");for(var r=o.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],s=[],f=[],l=0;l<t.length;++l)t[l].partOf||(t[l].resolve().repeated?i:t[l].map?s:f).push(t[l]);if(i.length){for(r("if(o.arrays||o.defaults){"),l=0;l<i.length;++l)r("d%s=[]",o.safeProp(i[l].name));r("}")}if(s.length){for(r("if(o.objects||o.defaults){"),l=0;l<s.length;++l)r("d%s={}",o.safeProp(s[l].name));r("}")}if(f.length){for(r("if(o.defaults){"),l=0;l<f.length;++l){var u,h=f[l],c=o.safeProp(h.name);h.resolvedType instanceof n?r("d%s=o.enums===String?%j:%j",c,h.resolvedType.valuesById[h.typeDefault],h.typeDefault):h.long?r("if(util.Long){")("var n=new util.Long(%i,%i,%j)",h.typeDefault.low,h.typeDefault.high,h.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",c)("}else")("d%s=o.longs===String?%j:%i",c,h.typeDefault.toString(),h.typeDefault.toNumber()):h.bytes?(u="["+Array.prototype.slice.call(h.typeDefault).join(",")+"]",r("if(o.bytes===String)d%s=%j",c,String.fromCharCode.apply(String,h.typeDefault))("else{")("d%s=%s",c,u)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",c,c)("}")):r("d%s=%j",c,h.typeDefault)}r("}")}var d=!1;for(l=0;l<t.length;++l){h=t[l];var p=e._fieldsArray.indexOf(h);c=o.safeProp(h.name);h.map?(d||(d=!0,r("var ks2")),r("if(m%s&&(ks2=Object.keys(m%s)).length){",c,c)("d%s={}",c)("for(var j=0;j<ks2.length;++j){"),a(r,h,p,c+"[ks2[j]]")("}")):h.repeated?(r("if(m%s&&m%s.length){",c,c)("d%s=[]",c)("for(var j=0;j<m%s.length;++j){",c),a(r,h,p,c+"[j]")("}")):(r("if(m%s!=null&&m.hasOwnProperty(%j)){",c,h.name),a(r,h,p,c),h.partOf&&r("if(o.oneofs)")("d%s=%j",o.safeProp(h.partOf.name),h.name)),r("}")}return r("return d")}},function(e,t,r){"use strict";var i=t,n=r(11);i[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=this.lookup(e["@type"]);if(t){var r="."===e["@type"].charAt(0)?e["@type"].substr(1):e["@type"];return this.create({type_url:"/"+r,value:t.encode(t.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var r,i;if(t&&t.json&&e.type_url&&e.value&&(r=e.type_url.substring(e.type_url.lastIndexOf("/")+1),(i=this.lookup(r))&&(e=i.decode(e.value))),e instanceof this.ctor||!(e instanceof n))return this.toObject(e,t);var o=e.$type.toObject(e,t);return o["@type"]=e.$type.fullName,o}}},function(e,t,r){"use strict";e.exports=h;var i=r(5);((h.prototype=Object.create(i.prototype)).constructor=h).className="Root";var n,o,s,a=r(4),f=r(2),l=r(10),u=r(0);function h(e){i.call(this,"",e),this.deferred=[],this.files=[]}function c(){}h.fromJSON=function(e,t){return t=t||new h,e.options&&t.setOptions(e.options),t.addJSON(e.nested)},h.prototype.resolvePath=u.path.resolve,h.prototype.load=function e(t,r,i){"function"==typeof r&&(i=r,r=void 0);var n=this;if(!i)return u.asPromise(e,n,t,r);var a=i===c;function f(e,t){if(i){var r=i;if(i=null,a)throw e;r(e,t)}}function l(e){var t=e.lastIndexOf("google/protobuf/");if(-1<t){var r=e.substring(t);if(r in s)return r}return null}function h(e,t){try{if(u.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),u.isString(t)){o.filename=e;var i,s=o(t,n,r),h=0;if(s.imports)for(;h<s.imports.length;++h)(i=l(s.imports[h])||n.resolvePath(e,s.imports[h]))&&d(i);if(s.weakImports)for(h=0;h<s.weakImports.length;++h)(i=l(s.weakImports[h])||n.resolvePath(e,s.weakImports[h]))&&d(i,!0)}else n.setOptions(t.options).addJSON(t.nested)}catch(e){f(e)}a||p||f(null,n)}function d(e,t){if(!(-1<n.files.indexOf(e)))if(n.files.push(e),e in s)a?h(e,s[e]):(++p,setTimeout((function(){--p,h(e,s[e])})));else if(a){var r;try{r=u.fs.readFileSync(e).toString("utf8")}catch(r){return void(t||f(r))}h(e,r)}else++p,u.fetch(e,(function(r,o){--p,i&&(r?t?p||f(null,n):f(r):h(e,o))}))}var p=0;u.isString(t)&&(t=[t]);for(var y,m=0;m<t.length;++m)(y=n.resolvePath("",t[m]))&&d(y);if(a)return n;p||f(null,n)},h.prototype.loadSync=function(e,t){if(!u.isNode)throw Error("not supported");return this.load(e,t,c)},h.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map((function(e){return"'extend "+e.extend+"' in "+e.parent.fullName})).join(", "));return i.prototype.resolveAll.call(this)};var d=/^[A-Z]/;function p(e,t){var r=t.parent.lookup(t.extend);if(r){var i=new a(t.fullName,t.id,t.type,t.rule,void 0,t.options);return(i.declaringField=t).extensionField=i,r.add(i),1}}h.prototype._handleAdd=function(e){if(e instanceof a)void 0===e.extend||e.extensionField||p(0,e)||this.deferred.push(e);else if(e instanceof f)d.test(e.name)&&(e.parent[e.name]=e.values);else if(!(e instanceof l)){if(e instanceof n)for(var t=0;t<this.deferred.length;)p(0,this.deferred[t])?this.deferred.splice(t,1):++t;for(var r=0;r<e.nestedArray.length;++r)this._handleAdd(e._nestedArray[r]);d.test(e.name)&&(e.parent[e.name]=e)}},h.prototype._handleRemove=function(e){var t;if(e instanceof a)void 0!==e.extend&&(e.extensionField?(e.extensionField.parent.remove(e.extensionField),e.extensionField=null):-1<(t=this.deferred.indexOf(e))&&this.deferred.splice(t,1));else if(e instanceof f)d.test(e.name)&&delete e.parent[e.name];else if(e instanceof i){for(var r=0;r<e.nestedArray.length;++r)this._handleRemove(e._nestedArray[r]);d.test(e.name)&&delete e.parent[e.name]}},h._configure=function(e,t,r){n=e,o=t,s=r}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(28),n=r(48);t.loadSvga=function(e,t,r){n.default(e,(function(e){var r=e.movie;r.version=e.ver;var n=e.images,o=new i.VideoEntity(r,n);t(o)}),r)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(29),n=r(12),o=(s.prototype.resetSprites=function(e){e.sprites instanceof Array&&(this.sprites=e.sprites.map((function(e){return new i.SpriteEntity(e)})))},s.prototype.destroy=function(){},s);function s(e,t){this.version="",this.videoSize={width:0,height:0},this.FPS=20,this.frames=0,this.images={},this.hasBeenCached=!1,this.sprites=[],this.audios=[],"object"==typeof e&&e.$type==n.ProtoMovieEntity?("object"==typeof e.params&&(this.version=e.ver,this.videoSize.width=e.params.viewBoxWidth||0,this.videoSize.height=e.params.viewBoxHeight||0,this.FPS=e.params.fps||20,this.frames=e.params.frames||0),this.resetSprites(e),this.audios=e.audios):e&&(e.movie&&(e.movie.viewBox&&(this.videoSize.width=parseFloat(e.movie.viewBox.width)||0,this.videoSize.height=parseFloat(e.movie.viewBox.height)||0),this.version=e.ver,this.FPS=parseInt(e.movie.fps)||20,this.frames=parseInt(e.movie.frames)||0),this.resetSprites(e)),t&&(this.images=t)}t.VideoEntity=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(30);t.SpriteEntity=function(e){this.matteKey=null,this.imageKey=null,this.frames=[],this.matteKey=e.matteKey,this.imageKey=e.imageKey,e.frames&&(this.frames=e.frames.map((function(e){return new i.FrameEntity(e)})))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(31);t.FrameEntity=function e(t){this.alpha=0,this.transform={a:1,b:0,c:0,d:1,tx:0,ty:0},this.layout={x:0,y:0,width:0,height:0},this.nx=0,this.ny=0,this.maskPath=null,this.shapes=[],this.alpha=parseFloat(t.alpha)||0,t.layout&&(this.layout.x=parseFloat(t.layout.x)||0,this.layout.y=parseFloat(t.layout.y)||0,this.layout.width=parseFloat(t.layout.width)||0,this.layout.height=parseFloat(t.layout.height)||0),t.transform&&(this.transform.a=parseFloat(t.transform.a)||1,this.transform.b=parseFloat(t.transform.b)||0,this.transform.c=parseFloat(t.transform.c)||0,this.transform.d=parseFloat(t.transform.d)||1,this.transform.tx=parseFloat(t.transform.tx)||0,this.transform.ty=parseFloat(t.transform.ty)||0),t.clipPath&&0<t.clipPath.length&&(this.maskPath=new i.BezierPath(t.clipPath,void 0,{fill:"#000000"})),t.shapes&&(t.shapes instanceof Array&&t.shapes.forEach((function(e){switch(e.pathArgs=e.args,e.type){case 0:e.type="shape",e.pathArgs=e.shape;break;case 1:e.type="rect",e.pathArgs=e.rect;break;case 2:e.type="ellipse",e.pathArgs=e.ellipse;break;case 3:e.type="keep"}if(e.styles){e.styles.fill&&("number"==typeof e.styles.fill.r&&(e.styles.fill[0]=e.styles.fill.r),"number"==typeof e.styles.fill.g&&(e.styles.fill[1]=e.styles.fill.g),"number"==typeof e.styles.fill.b&&(e.styles.fill[2]=e.styles.fill.b),"number"==typeof e.styles.fill.a&&(e.styles.fill[3]=e.styles.fill.a)),e.styles.stroke&&("number"==typeof e.styles.stroke.r&&(e.styles.stroke[0]=e.styles.stroke.r),"number"==typeof e.styles.stroke.g&&(e.styles.stroke[1]=e.styles.stroke.g),"number"==typeof e.styles.stroke.b&&(e.styles.stroke[2]=e.styles.stroke.b),"number"==typeof e.styles.stroke.a&&(e.styles.stroke[3]=e.styles.stroke.a));var t=e.styles.lineDash||[];switch(0<e.styles.lineDashI&&t.push(e.styles.lineDashI),0<e.styles.lineDashII&&(t.length<1&&t.push(0),t.push(e.styles.lineDashII),t.push(0)),0<e.styles.lineDashIII&&(t.length<2&&(t.push(0),t.push(0)),t[2]=e.styles.lineDashIII),e.styles.lineDash=t,e.styles.lineJoin){case 0:e.styles.lineJoin="miter";break;case 1:e.styles.lineJoin="round";break;case 2:e.styles.lineJoin="bevel"}switch(e.styles.lineCap){case 0:e.styles.lineCap="butt";break;case 1:e.styles.lineCap="round";break;case 2:e.styles.lineCap="square"}}})),t.shapes[0]&&"keep"===t.shapes[0].type?this.shapes=e.lastShapes:(this.shapes=t.shapes,e.lastShapes=t.shapes));var r=this.transform.a*this.layout.x+this.transform.c*this.layout.y+this.transform.tx,n=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*this.layout.y+this.transform.tx,o=this.transform.a*this.layout.x+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,s=this.transform.a*(this.layout.x+this.layout.width)+this.transform.c*(this.layout.y+this.layout.height)+this.transform.tx,a=this.transform.b*this.layout.x+this.transform.d*this.layout.y+this.transform.ty,f=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*this.layout.y+this.transform.ty,l=this.transform.b*this.layout.x+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty,u=this.transform.b*(this.layout.x+this.layout.width)+this.transform.d*(this.layout.y+this.layout.height)+this.transform.ty;this.nx=Math.min(Math.min(o,s),Math.min(r,n)),this.ny=Math.min(Math.min(l,u),Math.min(a,f))}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BezierPath=function(e,t,r){this._d=e,this._transform=t,this._styles=r}},function(e,t,r){"use strict";e.exports=r(33)},function(e,t,r){"use strict";var i=e.exports=r(34);i.build="light",i.load=function(e,t,r){return(t="function"==typeof t?(r=t,new i.Root):t||new i.Root).load(e,r)},i.loadSync=function(e,t){return(t=t||new i.Root).loadSync(e)},i.encoder=r(17),i.decoder=r(22),i.verifier=r(23),i.converter=r(24),i.ReflectionObject=r(3),i.Namespace=r(5),i.Root=r(26),i.Enum=r(2),i.Type=r(18),i.Field=r(4),i.OneOf=r(10),i.MapField=r(19),i.Service=r(20),i.Method=r(21),i.Message=r(11),i.wrappers=r(25),i.types=r(6),i.util=r(0),i.ReflectionObject._configure(i.Root),i.Namespace._configure(i.Type,i.Service,i.Enum),i.Root._configure(i.Type),i.Field._configure(i.Type)},function(e,t,r){"use strict";var i=t;i.build="minimal",i.Writer=r(8),i.BufferWriter=r(42),i.Reader=r(9),i.BufferReader=r(43),i.util=r(1),i.rpc=r(15),i.roots=r(16),(i.configure=function(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)})()},function(e,t){var r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";var i=t;i.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;1<--t%4&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),o=new Array(123),s=0;s<64;)o[n[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(e,t,r){for(var i,o=null,s=[],a=0,f=0;t<r;){var l=e[t++];switch(f){case 0:s[a++]=n[l>>2],i=(3&l)<<4,f=1;break;case 1:s[a++]=n[i|l>>4],i=(15&l)<<2,f=2;break;case 2:s[a++]=n[i|l>>6],s[a++]=n[63&l],f=0}8191<a&&((o=o||[]).push(String.fromCharCode.apply(String,s)),a=0)}return f&&(s[a++]=n[i],s[a++]=61,1===f&&(s[a++]=61)),o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};var a="invalid encoding";i.decode=function(e,t,r){for(var i,n=r,s=0,f=0;f<e.length;){var l=e.charCodeAt(f++);if(61===l&&1<s)break;if(void 0===(l=o[l]))throw Error(a);switch(s){case 0:i=l,s=1;break;case 1:t[r++]=i<<2|(48&l)>>4,i=l,s=2;break;case 2:t[r++]=(15&i)<<4|(60&l)>>2,i=l,s=3;break;case 3:t[r++]=(3&i)<<6|l,s=0}}if(1===s)throw Error(a);return r-n},i.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},function(e,t,r){"use strict";function i(){this._listeners={}}(e.exports=i).prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},i.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],i=0;i<r.length;)r[i].fn===t?r.splice(i,1):++i;return this},i.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var r=[],i=1;i<arguments.length;)r.push(arguments[i++]);for(i=0;i<t.length;)t[i].fn.apply(t[i++].ctx,r)}return this}},function(e,t,r){"use strict";function i(e){function t(e,t,r,i){var n,o=t<0?1:0;o&&(t=-t),0===t?e(0<1/t?0:2147483648,r,i):isNaN(t)?e(2143289344,r,i):e(34028234663852886e22<t?(o<<31|2139095040)>>>0:t<11754943508222875e-54?(o<<31|Math.round(t/1401298464324817e-60))>>>0:(o<<31|(n=Math.floor(Math.log(t)/Math.LN2))+127<<23|8388607&Math.round(t*Math.pow(2,-n)*8388608))>>>0,r,i)}function r(e,t,r){var i=e(t,r),n=2*(i>>31)+1,o=i>>>23&255,s=8388607&i;return 255==o?s?NaN:1/0*n:0==o?1401298464324817e-60*n*s:n*Math.pow(2,o-150)*(8388608+s)}function i(e,t,r){h[0]=e,t[r]=c[0],t[r+1]=c[1],t[r+2]=c[2],t[r+3]=c[3]}function f(e,t,r){h[0]=e,t[r]=c[3],t[r+1]=c[2],t[r+2]=c[1],t[r+3]=c[0]}function l(e,t){return c[0]=e[t],c[1]=e[t+1],c[2]=e[t+2],c[3]=e[t+3],h[0]}function u(e,t){return c[3]=e[t],c[2]=e[t+1],c[1]=e[t+2],c[0]=e[t+3],h[0]}var h,c,d,p,y,m;function v(e,t,r,i,n,o){var s,a,f=i<0?1:0;f&&(i=-i),0===i?(e(0,n,o+t),e(0<1/i?0:2147483648,n,o+r)):isNaN(i)?(e(0,n,o+t),e(2146959360,n,o+r)):17976931348623157e292<i?(e(0,n,o+t),e((f<<31|2146435072)>>>0,n,o+r)):i<22250738585072014e-324?(e((s=i/5e-324)>>>0,n,o+t),e((f<<31|s/4294967296)>>>0,n,o+r)):(1024===(a=Math.floor(Math.log(i)/Math.LN2))&&(a=1023),e(4503599627370496*(s=i*Math.pow(2,-a))>>>0,n,o+t),e((f<<31|a+1023<<20|1048576*s&1048575)>>>0,n,o+r))}function g(e,t,r,i,n){var o=e(i,n+t),s=e(i,n+r),a=2*(s>>31)+1,f=s>>>20&2047,l=4294967296*(1048575&s)+o;return 2047==f?l?NaN:1/0*a:0==f?5e-324*a*l:a*Math.pow(2,f-1075)*(l+4503599627370496)}function b(e,t,r){p[0]=e,t[r]=y[0],t[r+1]=y[1],t[r+2]=y[2],t[r+3]=y[3],t[r+4]=y[4],t[r+5]=y[5],t[r+6]=y[6],t[r+7]=y[7]}function w(e,t,r){p[0]=e,t[r]=y[7],t[r+1]=y[6],t[r+2]=y[5],t[r+3]=y[4],t[r+4]=y[3],t[r+5]=y[2],t[r+6]=y[1],t[r+7]=y[0]}function k(e,t){return y[0]=e[t],y[1]=e[t+1],y[2]=e[t+2],y[3]=e[t+3],y[4]=e[t+4],y[5]=e[t+5],y[6]=e[t+6],y[7]=e[t+7],p[0]}function _(e,t){return y[7]=e[t],y[6]=e[t+1],y[5]=e[t+2],y[4]=e[t+3],y[3]=e[t+4],y[2]=e[t+5],y[1]=e[t+6],y[0]=e[t+7],p[0]}return"undefined"!=typeof Float32Array?(h=new Float32Array([-0]),d=128===(c=new Uint8Array(h.buffer))[3],e.writeFloatLE=d?i:f,e.writeFloatBE=d?f:i,e.readFloatLE=d?l:u,e.readFloatBE=d?u:l):(e.writeFloatLE=t.bind(null,n),e.writeFloatBE=t.bind(null,o),e.readFloatLE=r.bind(null,s),e.readFloatBE=r.bind(null,a)),"undefined"!=typeof Float64Array?(p=new Float64Array([-0]),m=128===(y=new Uint8Array(p.buffer))[7],e.writeDoubleLE=m?b:w,e.writeDoubleBE=m?w:b,e.readDoubleLE=m?k:_,e.readDoubleBE=m?_:k):(e.writeDoubleLE=v.bind(null,n,0,4),e.writeDoubleBE=v.bind(null,o,4,0),e.readDoubleLE=g.bind(null,s,0,4),e.readDoubleBE=g.bind(null,a,4,0)),e}function n(e,t,r){t[r]=255&e,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function o(e,t,r){t[r]=e>>>24,t[r+1]=e>>>16&255,t[r+2]=e>>>8&255,t[r+3]=255&e}function s(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function a(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}e.exports=i(i)},function(e,t,r){"use strict";var i=t;i.length=function(e){for(var t=0,r=0,i=0;i<e.length;++i)(r=e.charCodeAt(i))<128?t+=1:r<2048?t+=2:55296==(64512&r)&&56320==(64512&e.charCodeAt(i+1))?(++i,t+=4):t+=3;return t},i.read=function(e,t,r){if(r-t<1)return"";for(var i,n=null,o=[],s=0;t<r;)(i=e[t++])<128?o[s++]=i:191<i&&i<224?o[s++]=(31&i)<<6|63&e[t++]:239<i&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[s++]=55296+(i>>10),o[s++]=56320+(1023&i)):o[s++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],8191<s&&((n=n||[]).push(String.fromCharCode.apply(String,o)),s=0);return n?(s&&n.push(String.fromCharCode.apply(String,o.slice(0,s))),n.join("")):String.fromCharCode.apply(String,o.slice(0,s))},i.write=function(e,t,r){for(var i,n,o=r,s=0;s<e.length;++s)(i=e.charCodeAt(s))<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:(55296==(64512&i)&&56320==(64512&(n=e.charCodeAt(s+1)))?(i=65536+((1023&i)<<10)+(1023&n),++s,t[r++]=i>>18|240,t[r++]=i>>12&63|128):t[r++]=i>>12|224,t[r++]=i>>6&63|128),t[r++]=63&i|128);return r-o}},function(e,t,r){"use strict";e.exports=function(e,t,r){var i=r||8192,n=i>>>1,o=null,s=i;return function(r){if(r<1||n<r)return e(r);i<s+r&&(o=e(i),s=0);var a=t.call(o,s,s+=r);return 7&s&&(s=1+(7|s)),a}}},function(e,t,r){"use strict";e.exports=n;var i=r(1);function n(e,t){this.lo=e>>>0,this.hi=t>>>0}var o=n.zero=new n(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var s=n.zeroHash="\0\0\0\0\0\0\0\0";n.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var r=e>>>0,i=(e-r)/4294967296>>>0;return t&&(i=~i>>>0,r=~r>>>0,4294967295<++r&&(r=0,4294967295<++i&&(i=0))),new n(r,i)},n.from=function(e){if("number"==typeof e)return n.fromNumber(e);if(i.isString(e)){if(!i.Long)return n.fromNumber(parseInt(e,10));e=i.Long.fromString(e)}return e.low||e.high?new n(e.low>>>0,e.high>>>0):o},n.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},n.prototype.toLong=function(e){return i.Long?new i.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var a=String.prototype.charCodeAt;n.fromHash=function(e){return e===s?o:new n((a.call(e,0)|a.call(e,1)<<8|a.call(e,2)<<16|a.call(e,3)<<24)>>>0,(a.call(e,4)|a.call(e,5)<<8|a.call(e,6)<<16|a.call(e,7)<<24)>>>0)},n.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},n.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},n.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},n.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0==r?0==t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},function(e,t,r){"use strict";e.exports=o;var i=r(8);(o.prototype=Object.create(i.prototype)).constructor=o;var n=r(1);function o(){i.call(this)}function s(e,t,r){e.length<40?n.utf8.write(e,t,r):t.utf8Write?t.utf8Write(e,r):t.write(e,r)}o._configure=function(){o.alloc=n._Buffer_allocUnsafe,o.writeBytesBuffer=n.Buffer&&n.Buffer.prototype instanceof Uint8Array&&"set"===n.Buffer.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var i=0;i<e.length;)t[r++]=e[i++]}},o.prototype.bytes=function(e){n.isString(e)&&(e=n._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this._push(o.writeBytesBuffer,t,e),this},o.prototype.string=function(e){var t=n.Buffer.byteLength(e);return this.uint32(t),t&&this._push(s,t,e),this},o._configure()},function(e,t,r){"use strict";e.exports=o;var i=r(9);(o.prototype=Object.create(i.prototype)).constructor=o;var n=r(1);function o(e){i.call(this,e)}o._configure=function(){n.Buffer&&(o.prototype._slice=n.Buffer.prototype.slice)},o.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))},o._configure()},function(e,t,r){"use strict";e.exports=n;var i=r(1);function n(e,t,r){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(r)}((n.prototype=Object.create(i.EventEmitter.prototype)).constructor=n).prototype.rpcCall=function e(t,r,n,o,s){if(!o)throw TypeError("request must be specified");var a=this;if(!s)return i.asPromise(e,a,t,r,n,o);if(a.rpcImpl)try{return a.rpcImpl(t,r[a.requestDelimited?"encodeDelimited":"encode"](o).finish(),(function(e,r){if(e)return a.emit("error",e,t),s(e);if(null!==r){if(!(r instanceof n))try{r=n[a.responseDelimited?"decodeDelimited":"decode"](r)}catch(e){return a.emit("error",e,t),s(e)}return a.emit("data",r,t),s(null,r)}a.end(!0)}))}catch(e){return a.emit("error",e,t),void setTimeout((function(){s(e)}),0)}else setTimeout((function(){s(Error("already ended"))}),0)},n.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},function(e,t,r){"use strict";(e.exports=function e(t,r){"string"==typeof t&&(r=t,t=void 0);var i=[];function n(t){if("string"!=typeof t){var r=o();if(e.verbose&&console.log("codegen: "+r),r="return "+r,t){for(var s=Object.keys(t),a=new Array(s.length+1),f=new Array(s.length),l=0;l<s.length;)a[l]=s[l],f[l]=t[s[l++]];return a[l]=r,Function.apply(null,a).apply(null,f)}return Function(r)()}for(var u=new Array(arguments.length-1),h=0;h<u.length;)u[h]=arguments[++h];if(h=0,t=t.replace(/%([%dfijs])/g,(function(e,t){var r=u[h++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"})),h!==u.length)throw Error("parameter count mismatch");return i.push(t),n}function o(e){return"function "+(e||r||"")+"("+(t&&t.join(",")||"")+"){\n "+i.join("\n ")+"\n}"}return n.toString=o,n}).verbose=!1},function(e,t,r){"use strict";e.exports=o;var i=r(13),n=r(14)("fs");function o(e,t,r){return t="function"==typeof t?(r=t,{}):t||{},r?!t.xhr&&n&&n.readFile?n.readFile(e,(function(i,n){return i&&"undefined"!=typeof XMLHttpRequest?o.xhr(e,t,r):i?r(i):r(null,t.binary?n:n.toString("utf8"))})):o.xhr(e,t,r):i(o,this,e,t)}o.xhr=function(e,t,r){var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(0!==i.status&&200!==i.status)return r(Error("status "+i.status));if(t.binary){var e=i.response;if(!e){e=[];for(var n=0;n<i.responseText.length;++n)e.push(255&i.responseText.charCodeAt(n))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,i.responseText)}},t.binary&&("overrideMimeType"in i&&i.overrideMimeType("text/plain; charset=x-user-defined"),i.responseType="arraybuffer"),i.open("GET",e),i.send()}},function(e,t,r){"use strict";var i=t,n=i.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},o=i.normalize=function(e){var t=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),r=n(e),i="";r&&(i=t.shift()+"/");for(var o=0;o<t.length;)".."===t[o]?0<o&&".."!==t[o-1]?t.splice(--o,2):r?t.splice(o,1):++o:"."===t[o]?t.splice(o,1):++o;return i+t.join("/")};i.resolve=function(e,t,r){return r||(t=o(t)),n(t)?t:(r||(e=o(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?o(e+"/"+t):t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(12),n=r(7),o=r(49),s={};function a(e){for(var t=[],r=0;r<e.length;r+=32768)t.push(String.fromCharCode.apply(null,e.subarray(r,r+32768)));return t.join("")}n.utils.assign(s,o.default);var f={loadAssets:function(e,t,r){var i,n;try{i=my}catch(e){}i?i.request({url:e,method:"GET",dataType:"arraybuffer",success:function(e){f.load_viaProto(e.data,t,r)},fail:function(e){r(e)}}):((n=new XMLHttpRequest).open("GET",e,!0),n.responseType="arraybuffer",n.onloadend=function(){f.load_viaProto(n.response,t,r)},n.send())},load_viaProto:function(e,t,r){try{var n=s.inflate(e),o=i.ProtoMovieEntity.decode(n),a={};f._loadImages(a,void 0,o,(function(){o.ver="2.0",t({movie:o,images:a})}))}catch(e){throw r&&r(e),console.error(e),e}},_loadImages:function(e,t,r,n){if("object"==typeof r&&r.$type==i.ProtoMovieEntity){var o,s=!0;if(t){var l=function(i){if(r.images.hasOwnProperty(i)){var o=a(r.images[i]);return e.hasOwnProperty(i)?"continue":(s=!1,t.file(o+".png").async("base64").then(function(o){e[i]=o,f._loadImages(e,t,r,n)}.bind(u)),"break")}},u=this;for(var h in r.images)if("break"===l(h))break}else for(var c in r.images)r.images.hasOwnProperty(c)&&(o=a(r.images[c]),e[c]=btoa(o));s&&n.call(this)}else{for(var d in s=!0,r.images)if(r.images.hasOwnProperty(d)){var p=r.images[d];if(e.hasOwnProperty(d))continue;s=!1,t.file(p+".png").async("base64").then(function(i){e[d]=i,f._loadImages(e,t,r,n)}.bind(this));break}s&&n.call(this)}}};t.default=function(e,t,r){f.loadAssets(e,t,r)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(50),n=r(7),o=r(51),s=r(56),a=r(57),f=r(58),l=r(59),u=Object.prototype.toString;function h(e){this.options=n.utils.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f.default,this.strm.avail_out=0;var r=o.default.inflateInit2(this.strm,t.windowBits);if(r!==s.default.Z_OK)throw new Error(a.default[r]);if(this.header=new l.default,o.default.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=i.strings.string2buf(t.dictionary):"[object ArrayBuffer]"===u.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=o.default.inflateSetDictionary(this.strm,t.dictionary))!==s.default.Z_OK))throw new Error(a.default[r])}h.prototype.push=function(e,t){var r,a,f,l,h,c=this.strm,d=this.options.chunkSize,p=this.options.dictionary,y=!1;if(this.ended)return!1;a=t===~~t?t:!0===t?s.default.Z_FINISH:s.default.Z_NO_FLUSH,"string"==typeof e?c.input=i.strings.binstring2buf(e):"[object ArrayBuffer]"===u.call(e)?c.input=new Uint8Array(e):c.input=e,c.next_in=0,c.avail_in=c.input.length;do{if(0===c.avail_out&&(c.output=new n.utils.Buf8(d),c.next_out=0,c.avail_out=d),(r=o.default.inflate(c,s.default.Z_NO_FLUSH))===s.default.Z_NEED_DICT&&p&&(r=o.default.inflateSetDictionary(this.strm,p)),r===s.default.Z_BUF_ERROR&&!0===y&&(r=s.default.Z_OK,y=!1),r!==s.default.Z_STREAM_END&&r!==s.default.Z_OK)return this.onEnd(r),!(this.ended=!0);c.next_out&&(0!==c.avail_out&&r!==s.default.Z_STREAM_END&&(0!==c.avail_in||a!==s.default.Z_FINISH&&a!==s.default.Z_SYNC_FLUSH)||("string"===this.options.to?(f=i.strings.utf8border(c.output,c.next_out),l=c.next_out-f,h=i.strings.buf2string(c.output,f),c.next_out=l,c.avail_out=d-l,l&&n.utils.arraySet(c.output,c.output,f,l,0),this.onData(h)):this.onData(n.utils.shrinkBuf(c.output,c.next_out)))),0===c.avail_in&&0===c.avail_out&&(y=!0)}while((0<c.avail_in||0===c.avail_out)&&r!==s.default.Z_STREAM_END);return r===s.default.Z_STREAM_END&&(a=s.default.Z_FINISH),a===s.default.Z_FINISH?(r=o.default.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.default.Z_OK):a!==s.default.Z_SYNC_FLUSH||(this.onEnd(s.default.Z_OK),!(c.avail_out=0))},h.prototype.onData=function(e){this.chunks.push(e)},h.prototype.onEnd=function(e){e===s.default.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=n.utils.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},t.default={inflate:function(e,t){var r=new h(t);if(r.push(e,!0),r.err)throw r.msg||a.default[r.err];return r.result}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(7),n=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch(e){n=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){o=!1}for(var s=new i.utils.Buf8(256),a=0;a<256;a++)s[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function f(e,t){if((t=t||e.length)<65534&&(e.subarray&&o||!e.subarray&&n))return String.fromCharCode.apply(null,i.utils.shrinkBuf(e,t));for(var r="",s=0;s<t;s++)r+=String.fromCharCode(e[s]);return r}s[254]=s[254]=1,t.strings={utf8border:function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return!(r<0)&&0!==r&&r+s[e[r]]>t?r:t},buf2string:function(e,t){for(var r,i,n=t||e.length,o=new Array(2*n),a=0,l=0;l<n;)if((r=e[l++])<128)o[a++]=r;else if(4<(i=s[r]))o[a++]=65533,l+=i-1;else{for(r&=2===i?31:3===i?15:7;1<i&&l<n;)r=r<<6|63&e[l++],i--;1<i?o[a++]=65533:r<65536?o[a++]=r:(r-=65536,o[a++]=55296|r>>10&1023,o[a++]=56320|1023&r)}return f(o,a)},binstring2buf:function(e){for(var t=new i.utils.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},buf2binstring:f,string2buf:function(e){for(var t,r,n,o,s=e.length,a=0,f=0;f<s;f++)55296==(64512&(r=e.charCodeAt(f)))&&f+1<s&&56320==(64512&(n=e.charCodeAt(f+1)))&&(r=65536+(r-55296<<10)+(n-56320),f++),a+=r<128?1:r<2048?2:r<65536?3:4;for(t=new i.utils.Buf8(a),f=o=0;o<a;f++)55296==(64512&(r=e.charCodeAt(f)))&&f+1<s&&56320==(64512&(n=e.charCodeAt(f+1)))&&(r=65536+(r-55296<<10)+(n-56320),f++),r<128?t[o++]=r:(r<2048?t[o++]=192|r>>>6:(r<65536?t[o++]=224|r>>>12:(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63),t[o++]=128|r>>>6&63),t[o++]=128|63&r);return t}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(7),n=r(52),o=r(53),s=r(54),a=r(55),f=-2;function l(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function u(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.utils.Buf16(320),this.work=new i.utils.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function h(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new i.utils.Buf32(852),t.distcode=t.distdyn=new i.utils.Buf32(592),t.sane=1,t.back=-1,0):f}function c(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,h(e)):f}function d(e,t){var r,i;return e&&e.state?(i=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?f:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=r,i.wbits=t,c(e))):f}function p(e,t){var r,i;return e?(i=new u,(e.state=i).window=null,0!==(r=d(e,t))&&(e.state=null),r):f}var y,m,v=!0;function g(e){if(v){var t;for(y=new i.utils.Buf32(512),m=new i.utils.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(a.default(1,e.lens,0,288,y,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;a.default(2,e.lens,0,32,m,0,e.work,{bits:5}),v=!1}e.lencode=y,e.lenbits=9,e.distcode=m,e.distbits=5}function b(e,t,r,n){var o,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new i.utils.Buf8(s.wsize)),n>=s.wsize?(i.utils.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(o=s.wsize-s.wnext)&&(o=n),i.utils.arraySet(s.window,t,r-n,o,s.wnext),(n-=o)?(i.utils.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=o))),0}t.default={inflateReset:c,inflateReset2:d,inflateResetKeep:h,inflateInit:function(e){return p(e,15)},inflateInit2:p,inflate:function(e,t){var r,u,h,c,d,p,y,m,v,w,k,_,O,x,j,S,A,E,T,B,N,R,I,P,F=0,D=new i.utils.Buf8(4),C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return f;12===(r=e.state).mode&&(r.mode=13),d=e.next_out,h=e.output,y=e.avail_out,c=e.next_in,u=e.input,p=e.avail_in,m=r.hold,v=r.bits,w=p,k=y,R=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(2&r.wrap&&35615===m){D[r.check=0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0),v=m=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&m)<<8)+(m>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&m)){e.msg="unknown compression method",r.mode=30;break}if(v-=4,N=8+(15&(m>>>=4)),0===r.wbits)r.wbits=N;else if(N>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<<N,e.adler=r.check=1,r.mode=512&m?10:12,v=m=0;break;case 2:for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(r.flags=m,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=30;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=30;break}r.head&&(r.head.text=m>>8&1),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0)),v=m=0,r.mode=3;case 3:for(;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.head&&(r.head.time=m),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,D[2]=m>>>16&255,D[3]=m>>>24&255,r.check=o.default(r.check,D,4,0)),v=m=0,r.mode=4;case 4:for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.head&&(r.head.xflags=255&m,r.head.os=m>>8),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0)),v=m=0,r.mode=5;case 5:if(1024&r.flags){for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.length=m,r.head&&(r.head.extra_len=m),512&r.flags&&(D[0]=255&m,D[1]=m>>>8&255,r.check=o.default(r.check,D,2,0)),v=m=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(p<(_=r.length)&&(_=p),_&&(r.head&&(N=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),i.utils.arraySet(r.head.extra,u,c,_,N)),512&r.flags&&(r.check=o.default(r.check,u,_,c)),p-=_,c+=_,r.length-=_),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===p)break e;for(_=0;N=u[c+_++],r.head&&N&&r.length<65536&&(r.head.name+=String.fromCharCode(N)),N&&_<p;);if(512&r.flags&&(r.check=o.default(r.check,u,_,c)),p-=_,c+=_,N)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===p)break e;for(_=0;N=u[c+_++],r.head&&N&&r.length<65536&&(r.head.comment+=String.fromCharCode(N)),N&&_<p;);if(512&r.flags&&(r.check=o.default(r.check,u,_,c)),p-=_,c+=_,N)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;v<16;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(m!==(65535&r.check)){e.msg="header crc mismatch",r.mode=30;break}v=m=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}e.adler=r.check=l(m),v=m=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=d,e.avail_out=y,e.next_in=c,e.avail_in=p,r.hold=m,r.bits=v,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){m>>>=7&v,v-=7&v,r.mode=27;break}for(;v<3;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}switch(r.last=1&m,--v,3&(m>>>=1)){case 0:r.mode=14;break;case 1:if(g(r),r.mode=20,6!==t)break;m>>>=2,v-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}m>>>=2,v-=2;break;case 14:for(m>>>=7&v,v-=7&v;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if((65535&m)!=(m>>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&m,v=m=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(_=r.length){if(p<_&&(_=p),y<_&&(_=y),0===_)break e;i.utils.arraySet(h,u,c,_,d),p-=_,c+=_,y-=_,d+=_,r.length-=_;break}r.mode=12;break;case 17:for(;v<14;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(r.nlen=257+(31&m),m>>>=5,v-=5,r.ndist=1+(31&m),m>>>=5,v-=5,r.ncode=4+(15&m),m>>>=4,v-=4,286<r.nlen||30<r.ndist){e.msg="too many length or distance symbols",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;v<3;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.lens[C[r.have++]]=7&m,m>>>=3,v-=3}for(;r.have<19;)r.lens[C[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,I={bits:r.lenbits},R=a.default(0,r.lens,0,19,r.lencode,0,r.work,I),r.lenbits=I.bits,R){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;S=(F=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,A=65535&F,!((j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(A<16)m>>>=j,v-=j,r.lens[r.have++]=A;else{if(16===A){for(P=j+2;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(m>>>=j,v-=j,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}N=r.lens[r.have-1],_=3+(3&m),m>>>=2,v-=2}else if(17===A){for(P=j+3;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}v-=j,N=0,_=3+(7&(m>>>=j)),m>>>=3,v-=3}else{for(P=j+7;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}v-=j,N=0,_=11+(127&(m>>>=j)),m>>>=7,v-=7}if(r.have+_>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;_--;)r.lens[r.have++]=N}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,I={bits:r.lenbits},R=a.default(1,r.lens,0,r.nlen,r.lencode,0,r.work,I),r.lenbits=I.bits,R){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,I={bits:r.distbits},R=a.default(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,I),r.distbits=I.bits,R){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=p&&258<=y){e.next_out=d,e.avail_out=y,e.next_in=c,e.avail_in=p,r.hold=m,r.bits=v,s.default(e,k),d=e.next_out,h=e.output,y=e.avail_out,c=e.next_in,u=e.input,p=e.avail_in,m=r.hold,v=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;S=(F=r.lencode[m&(1<<r.lenbits)-1])>>>16&255,A=65535&F,!((j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(S&&0==(240&S)){for(E=j,T=S,B=A;S=(F=r.lencode[B+((m&(1<<E+T)-1)>>E)])>>>16&255,A=65535&F,!(E+(j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}m>>>=E,v-=E,r.back+=E}if(m>>>=j,v-=j,r.back+=j,r.length=A,0===S){r.mode=26;break}if(32&S){r.back=-1,r.mode=12;break}if(64&S){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&S,r.mode=22;case 22:if(r.extra){for(P=r.extra;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.length+=m&(1<<r.extra)-1,m>>>=r.extra,v-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;S=(F=r.distcode[m&(1<<r.distbits)-1])>>>16&255,A=65535&F,!((j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(0==(240&S)){for(E=j,T=S,B=A;S=(F=r.distcode[B+((m&(1<<E+T)-1)>>E)])>>>16&255,A=65535&F,!(E+(j=F>>>24)<=v);){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}m>>>=E,v-=E,r.back+=E}if(m>>>=j,v-=j,r.back+=j,64&S){e.msg="invalid distance code",r.mode=30;break}r.offset=A,r.extra=15&S,r.mode=24;case 24:if(r.extra){for(P=r.extra;v<P;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}r.offset+=m&(1<<r.extra)-1,m>>>=r.extra,v-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===y)break e;if(_=k-y,r.offset>_){if((_=r.offset-_)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}O=_>r.wnext?(_-=r.wnext,r.wsize-_):r.wnext-_,_>r.length&&(_=r.length),x=r.window}else x=h,O=d-r.offset,_=r.length;for(y<_&&(_=y),y-=_,r.length-=_;h[d++]=x[O++],--_;);0===r.length&&(r.mode=21);break;case 26:if(0===y)break e;h[d++]=r.length,y--,r.mode=21;break;case 27:if(r.wrap){for(;v<32;){if(0===p)break e;p--,m|=u[c++]<<v,v+=8}if(k-=y,e.total_out+=k,r.total+=k,k&&(e.adler=r.check=r.flags?o.default(r.check,h,k,d-k):n.default(r.check,h,k,d-k)),k=y,(r.flags?m:l(m))!==r.check){e.msg="incorrect data check",r.mode=30;break}v=m=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;v<32;){if(0===p)break e;p--,m+=u[c++]<<v,v+=8}if(m!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=30;break}v=m=0}r.mode=29;case 29:R=1;break e;case 30:R=-3;break e;case 31:return-4;case 32:default:return f}return e.next_out=d,e.avail_out=y,e.next_in=c,e.avail_in=p,r.hold=m,r.bits=v,(r.wsize||k!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&b(e,e.output,e.next_out,k-e.avail_out)?(r.mode=31,-4):(w-=e.avail_in,k-=e.avail_out,e.total_in+=w,e.total_out+=k,r.total+=k,r.wrap&&k&&(e.adler=r.check=r.flags?o.default(r.check,h,k,e.next_out-k):n.default(r.check,h,k,e.next_out-k)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==w&&0===k||4===t)&&0===R&&(R=-5),R)},inflateEnd:function(e){if(!e||!e.state)return f;var t=e.state;return t.window&&(t.window=null),e.state=null,0},inflateGetHeader:function(e,t){var r;return e&&e.state&&0!=(2&(r=e.state).wrap)?((r.head=t).done=!1,0):f},inflateSetDictionary:function(e,t){var r,i,o=t.length;return!e||!e.state||0!==(r=e.state).wrap&&11!==r.mode?f:11===r.mode&&(i=1,(i=n.default(i,t,o,0))!==r.check)?-3:b(e,t,o,o)?(r.mode=31,-4):(r.havedict=1,0)},inflateInfo:"pako inflate (from Nodeca project)"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,i){for(var n=65535&e|0,o=e>>>16&65535|0,s=0;0!==r;){for(r-=s=2e3<r?2e3:r;o=o+(n=n+t[i++]|0)|0,--s;);n%=65521,o%=65521}return n|o<<16|0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.default=function(e,t,r,n){var o=i,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^o[255&(e^t[a])];return-1^e}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,i,n,o,s,a,f=e.state,l=e.next_in,u=e.input,h=l+(e.avail_in-5),c=e.next_out,d=e.output,p=c-(t-e.avail_out),y=c+(e.avail_out-257),m=f.dmax,v=f.wsize,g=f.whave,b=f.wnext,w=f.window,k=f.hold,_=f.bits,O=f.lencode,x=f.distcode,j=(1<<f.lenbits)-1,S=(1<<f.distbits)-1;e:do{_<15&&(k+=u[l++]<<_,_+=8,k+=u[l++]<<_,_+=8),r=O[k&j];t:for(;;){if(k>>>=i=r>>>24,_-=i,0==(i=r>>>16&255))d[c++]=65535&r;else{if(!(16&i)){if(0==(64&i)){r=O[(65535&r)+(k&(1<<i)-1)];continue t}if(32&i){f.mode=12;break e}e.msg="invalid literal/length code",f.mode=30;break e}n=65535&r,(i&=15)&&(_<i&&(k+=u[l++]<<_,_+=8),n+=k&(1<<i)-1,k>>>=i,_-=i),_<15&&(k+=u[l++]<<_,_+=8,k+=u[l++]<<_,_+=8),r=x[k&S];r:for(;;){if(k>>>=i=r>>>24,_-=i,!(16&(i=r>>>16&255))){if(0==(64&i)){r=x[(65535&r)+(k&(1<<i)-1)];continue r}e.msg="invalid distance code",f.mode=30;break e}if(o=65535&r,_<(i&=15)&&(k+=u[l++]<<_,(_+=8)<i&&(k+=u[l++]<<_,_+=8)),m<(o+=k&(1<<i)-1)){e.msg="invalid distance too far back",f.mode=30;break e}if(k>>>=i,_-=i,(i=c-p)<o){if(g<(i=o-i)&&f.sane){e.msg="invalid distance too far back",f.mode=30;break e}if(a=w,(s=0)===b){if(s+=v-i,i<n){for(n-=i;d[c++]=w[s++],--i;);s=c-o,a=d}}else if(b<i){if(s+=v+b-i,(i-=b)<n){for(n-=i;d[c++]=w[s++],--i;);if(s=0,b<n){for(n-=i=b;d[c++]=w[s++],--i;);s=c-o,a=d}}}else if(s+=b-i,i<n){for(n-=i;d[c++]=w[s++],--i;);s=c-o,a=d}for(;2<n;)d[c++]=a[s++],d[c++]=a[s++],d[c++]=a[s++],n-=3;n&&(d[c++]=a[s++],1<n&&(d[c++]=a[s++]))}else{for(s=c-o;d[c++]=d[s++],d[c++]=d[s++],d[c++]=d[s++],2<(n-=3););n&&(d[c++]=d[s++],1<n&&(d[c++]=d[s++]))}break}}break}}while(l<h&&c<y);l-=n=_>>3,k&=(1<<(_-=n<<3))-1,e.next_in=l,e.next_out=c,e.avail_in=l<h?h-l+5:5-(l-h),e.avail_out=c<y?y-c+257:257-(c-y),f.hold=k,f.bits=_}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=r(7),n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],s=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.default=function(e,t,r,f,l,u,h,c){var d,p,y,m,v,g,b,w,k,_=c.bits,O=0,x=0,j=0,S=0,A=0,E=0,T=0,B=0,N=0,R=0,I=null,P=0,F=new i.utils.Buf16(16),D=new i.utils.Buf16(16),C=null,L=0;for(O=0;O<=15;O++)F[O]=0;for(x=0;x<f;x++)F[t[r+x]]++;for(A=_,S=15;1<=S&&0===F[S];S--);if(S<A&&(A=S),0===S)return l[u++]=20971520,l[u++]=20971520,c.bits=1,0;for(j=1;j<S&&0===F[j];j++);for(A<j&&(A=j),O=B=1;O<=15;O++)if(B<<=1,(B-=F[O])<0)return-1;if(0<B&&(0===e||1!==S))return-1;for(D[1]=0,O=1;O<15;O++)D[O+1]=D[O]+F[O];for(x=0;x<f;x++)0!==t[r+x]&&(h[D[t[r+x]]++]=x);if(g=0===e?(I=C=h,19):1===e?(I=n,P-=257,C=o,L-=257,256):(I=s,C=a,-1),O=j,v=u,T=x=R=0,y=-1,m=(N=1<<(E=A))-1,1===e&&852<N||2===e&&592<N)return 1;for(;;){for(b=O-T,k=h[x]<g?(w=0,h[x]):h[x]>g?(w=C[L+h[x]],I[P+h[x]]):(w=96,0),d=1<<O-T,j=p=1<<E;l[v+(R>>T)+(p-=d)]=b<<24|w<<16|k|0,0!==p;);for(d=1<<O-1;R&d;)d>>=1;if(0!==d?(R&=d-1,R+=d):R=0,x++,0==--F[O]){if(O===S)break;O=t[r+h[x]]}if(A<O&&(R&m)!==y){for(0===T&&(T=A),v+=j,B=1<<(E=O-T);E+T<S&&!((B-=F[E+T])<=0);)E++,B<<=1;if(N+=1<<E,1===e&&852<N||2===e&&592<N)return 1;l[y=R&m]=A<<24|E<<16|v-u|0}}return 0!==R&&(l[v+R]=O-T<<24|64<<16|0),c.bits=A,0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}}],e={},f.m=d,f.c=e,f.d=function(e,t,r){f.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,t){if(1&t&&(e=f(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(f.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)f.d(r,i,function(t){return e[t]}.bind(null,i));return r},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,"a",t),t},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.p="",f(f.s=27);function f(t){if(e[t])return e[t].exports;var r=e[t]={i:t,l:!1,exports:{}};return d[t].call(r.exports,r,r.exports,f),r.l=!0,r.exports}var d,e}));
//// # sourceMappingURL=svgaParser.min.js.map
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
declare const app;
declare const PAGE;
declare function getApp();
declare namespace my {
export function postMessage(e);
export function onMessage(e);
export const tb;
}
{"v":"5.6.3","fr":30,"ip":0,"op":120,"w":750,"h":1624,"nm":"海滩sv","ddd":0,"assets":[{"id":"0","w":47,"h":118,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAB2CAMAAABveDqhAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAM1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbQS4qAAAAEXRSTlMAbL4q4Bqr/gvxWph6SjvPicnmEZIAAACxSURBVFjD7ZdbCgQhDAR9x3FGnfufdo+wFGwgrvrdEAJdUnHeO/Tuq6L8kMYGzMDyXiLKZ3nZgAI37nTjBDd+JMONHzYgJJZv0lG+XkW3dFFgq+ekpRtw49sYZrx02pjB0nVYOpdg6V6IWdTHbGyHWdTFrNjDLNvCrK2P2dTGTP1vN4bZUaj1FIpjdhTqx5fKUSgDmB2F+n+FWhyzuuGlsptCqWN2FOrrM6dQwZpCef8BwHIJ95ZJNxgAAAAASUVORK5CYII=","e":1},{"id":"1","w":47,"h":113,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAABxCAMAAAByfQoZAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAV1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/v8AAACrq6zi4+QSEhJ1dnbz9PXR0tNHSEgkJCQ0NDSampu/v8CJiYphYmIRw6DWAAAADnRSTlMAYNXIB4wlTnUUn+y2Nz0HaMMAAAKlSURBVFjDlVjbooQgCKy0stqke+3l/7/z2N7OlqDg85gwM6CRJKFlTCJZOdQSeA2Qir4+QCWBj0vGh6fwsAM//BIWO/PDb5ttslcomPCqWXtrHw0TrtUwW2u3C5uazsEnyLm5jg7u0i1Z8GLP1S1uumrod7gdgQU3z+Dd4qlbOF1fa60l0Th6DMs21/fnWW6omuUNtx20nBKZP/g7w/ztS6kXnQ0n2emLZ9BZfpNluU1n6z+cQX/6Ufa5hqg7s+0HHperPHy+j8qlfqOPu/9AjrW3mLyXdfrFx+xQwN0e8UWkxvsDPlKNunlYCT6F2xlfhbO1Enz1Y2QO3vzXCQuvNivBn8mP8W9O5MfwHjthP2iPnd1vZcCaNw8falf5MHn4UH1li/UXfbtUPpvB/oCFH+o/OUwInu5vCguf7p8Y+8/+rKmm3GF40hCp5+WwwPmAwekG53s/LNi5M0QEw9XdBVASesjnD0EPKYBB3UALUON0kjfAhaCTqhjcbfSNR9FPVQDuziehmUQu4kFWHK+56JVByks4ukWL/e1ow20ONKElZR+C0DSAxxya+q3fhp5wITz2hgjhMYJC8WM/PCF+sBIO4ke/JEN6YZdeG8Ijl1hB+w1NuKL9jF4amq4XXGG6fvESUOt4vU1kT/EsXWYNAGwjTtOGNd2qNReA9d5jihHPIF26LUsneXZUJoO1iyZwTOa8I/Zb4nYs80GByF+nTht4TOGmcsojh6ELM3o2rQuqjzF6CMp8j5hZ/537Ee8sOAHtR9SwziyGvtQ2z5h67pwgKRSM094WNXdwUcMyOQ/xx0AprL3dBHMdl8TtypxcvJLIoFsVH59UCjbJAYl2lZRpwYZ9UiadxLFnTZ9XktLCDRctDEm4oZZNE3daxRtkrCa5+QPLMnM2LGn7WwAAAABJRU5ErkJggg==","e":1},{"id":"2","w":36,"h":105,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAABpCAMAAABlGHEYAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAVFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD9/v8BAQEXFxdRUlLv8PG7u7zP0NHg4eKmpqeHh4hoaWkrKyuWlpd4eXk/QEBe937OAAAADXRSTlMA4PI7ymdTsCUQd5mIUDevlgAAAbpJREFUSMeN10mSgzAMQNEGzIwEBJIQuP89G0IYbGsw61/1sBYu6y9N//TPxAFRjllIVIdEcUiEiR5NbR0QdXFA9NS9eur18+UTdJEataB7a6R7dQu6t0Wqt0Wqt0Wq94007xv12IhRs0Wat0eK1yDo3h4p3i+SvWqPZO8Xyd4RiV6Fve4dkeid0Ufw0iOSvDOCJRKiEQ6v0CPBuyLBy66I924R790i3stwANW7RyNWegSLCYg4z4o4z4o4L8MHqJ4dMV5iRYznRC/ScyLacyLacyPScyPSK5wIJhMQUV6BT1A9L6I8PyI8PyI8PyI8IvK9Aj9uNGCqR75XEtELSz3yPCryvBJffjQ7Hhm5HhnBlNseGbkeGbkeGbkezqB7dOR4MRk5HhPZHhPZXvwG3eMiy+Miy4uYCNo8IJrjUo/uXtSB7vHR+/L4aLge/YaNbp4QXZ4QPU5PiC5Pik5Pik5Pik7PLKB7pn32qpfFiMtn1M6XNBHiNA+0d7sUK4PYvh89P8/9esnyFe5c2F+iknqFl9fAeB7MeBecrnDb/SbDL21ltsMj410/2JhtMrO2lBbpukgGLKUrnP4DfERdEIQU1MQAAAAASUVORK5CYII=","e":1},{"id":"3","w":5,"h":110,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAABuAgMAAACSMjHvAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAACVBMVEUAAABjoLsAAAC3V8I5AAAAAXRSTlPE3O/ezwAAABhJREFUGNNj0GJgWNXAsGwUUYCAAajFAAA6oHxlLk6StwAAAABJRU5ErkJggg==","e":1},{"id":"4","w":77,"h":37,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAAlCAMAAAAwcJS1AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAYFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADb1NjBwOIPDxEwLjIeHiBcW2ZSUFdubHk/PkSLiJaiob6VkqS7utvQyc18e5Gqpaiwr8+9t7qAfH/CYD4CAAAADHRSTlMALxhnzeIGTLqA9ZmrqnYtAAACVElEQVRIx62WV7KjMBBFHzm1hAISIu9/l6MA2CYZ23M/KBeFT90OavVfDmFaZInn//0PwaIoLYLkV2YIICom6MrMfkFmGtFhrVpVnJQL0ou/oiWgbUm8qJbMIfOviD4An91hWZasNsiOU0cM/I8TJ9mMs6ZI15jfw0wMM++zxHFUAVQLDcAZtERhXkUfAD0okcHxRke6tMtsEONGcfMyvB1yBD1CUhMG3HRk4a0GMXbANInvhopQT6E0pa3Z3iBupLAR+7dCbTWuFTZa/GLw0TpDRe8ZTEEio2n9+2qwxE9S/IbBOAFiaWjUpsTgYnMGX2izwby4LHEcgXI4NGlPbM6WNvgU6WpQ2IAvaMFiTtvT0ZRVgy9k0xAF8Q1zurjkLa+xAZ8mMACKHlKGx4YrHpbkPIFxCBXa8ECoS55LoHc8l8yBeFJvvqWP83CYQH5WkAJo+4JDrW3Xa+BgChImR7GSDU4btAeUMtV8yvMjoD3ayZ34UlT1eYENb9swfqobt93zUM/s2NRENZw3zK4BsxzK6YiHxskNYqCCdQfMpjvgealp3EOeJi73j/6GCs6qTqraScnOlizcdoq+Xks+ojNppCDrANwq3Hdeaubk1KILtb2aKs4FIYRSqp+Cc3IEM/EWuTkJ8hK4kZk9WXw2VFJbxLtASc/O2NIvWWgyIabxHaqdTD2Tt/eFA1KuLiz2b4bdi8Mgze3tVfWHfT3fPPdXgThxFssNcZT80z1gsZgUobthmRzbsZ+Y3SggKpIv97yVuK6NgffbHqqjTqM8Couz/fMf1SFavB6HNM4AAAAASUVORK5CYII=","e":1},{"id":"5","w":77,"h":35,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAAjBAMAAAAj2ZqpAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAALVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQZcDKDkAAAADXRSTlMArxjwziwLdEffm12GwVcxUwAAAUVJREFUOMuN1D1LxEAQBuCwkDu1Es4vkBMrEdFaRCPYKCILipVWwdI0KlZWgtjIVTZaaGWhYGVr7w+QS3PIuyDYTn6De/GEy85sctOkeXhnl+xMEISn2+srG8/XQXnVmvirn9fdMjcCk9kiK9uTJXIpZz3anp6tdrlMPzxuuM/l8uFSdHVkhQI6cqQ2RWgjt6RT7juB3chvoXcYGRcSOmccHrBAG2mmmFNagGR2GDyGESDuYhdeSTDDmntt1RQ620QGh7QHuq3rkQyXXbhAMrx377IHGY4PBmFOBoQpe+SH8hlX2Y9ZlG5NmGAw0cKfoZQ/x/BJOCRuhXE+55DSWHjfNxHrjVFpYJIZN5K+xMlSb+TI1DPUSQOF5vCuiZZGXyZi795R74/4D6XPsk2mWo3eysNmxXKcvxiL7GZ8CaqrdjTX/fwCUEE67HIYHQoAAAAASUVORK5CYII=","e":1},{"id":"6","w":86,"h":112,"u":"","p":"data:image/png;base64,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","e":1},{"id":"7","w":463,"h":181,"u":"","p":"data:image/png;base64,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","e":1},{"id":"8","w":108,"h":56,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAAA4CAMAAAAvp+0eAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAbFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAADBAMAAAAAAAAAAACq1qP9/v8AAAARExEdIR04QDZIUkYqMClUZFKjzZz29/iOs4iZwZNwjWxoaWng4eKAoXrr7O2Xl5hhel16e3vR0tO/wMGrq6yIiIkAfAqAAAAAC3RSTlMAsGaA5s0n+xBDlyU1FZYAAAPGSURBVFjDvZjpgoIwDIQXL1DsQZHbRcD3f8dNC0rSgrfbn8vaj3ZmkujPz1srWCx+/mkFyxVjXvAfqM3OZ0xytt5+HbX1GGNRu28U85ffPdx2zZhfNHtYyYmx1feUCxYgFT+Ve7OSX+FrXPA1V4jfpEeVJy6rMBdw0N32O67oetK+KXiUhnrlHCRcfZR3cUW/uojXmUFlMS/ak/gkD7lCS6VEHvaoiBdGwOakPsMbXHHEUlGU+Xvkm/t8yy7UFU18kSpMo+sLAKrg8SFMY/FOGKgrOsnrw4CSDqq3C1zna4WFuCI5CzVIpVFngsqGB/pq4Ta9zbOoBXYFkgpQ4pxcUEcLdTomZ878p3DUFW087ljJq4KAOvHoijrEg2GOBVy+t33FFUknxUWqsFKzqJrHozc1brXcPOmKI5IKUGoOlfOo2aP1y2ETtl5sHncFiC/Ty4a5Ut11s+MZoaBEyhajWikquHDDW26DR1zRRkj8XCAUmCC6voQ+MEGVMc+H80qddH93zxVJp0ap9KsTlCSoDqPgeuPr58KD1Ke77QotVTUKgm8J2hhCpdic5im+XtMT3H5OXDE2kN5m0RwKgnVOiFhKjU/D1HS74JYriFR3UGPNMi8ZiTykN+iku3dFOTaQA0Y1GDXerckwQYF16xEVxswtk8QVR1SVzHYxCk9HUDXqL4NrkC+MWA4Ku4JIpZswQSmECmsrw/Am0hLL7jXEFR2WyvT7cg6VCwvVSvw4U64FsSuoVLQJ26jKKhfQpTn2RTRhwd3oipJI5aAk9pidYTvEtT/Vz5YXGOr1Tr83ZQ6hdIYJaiLEk51642kbol7v9HsblUlOyoW+YOyLStwYCjZGNYo6z6PgyBTV6OKOPnxn3NET4bXAkH6vKwmpB7FVLqwQZxG7/61GZ9oIXNGSCkULbeVk2ArxIfYnquBEY4GwiYz0e13lsJK65dNg7aFIZvj5wyOVvssbKDfDuriTjD8zLAYeUyMLokBRVoYhxDR4T86lwZoV0ygnw3pSRP9w14JTIfBZN4wPMYmCsFAJGXQesqC7loyXeGifavl2cX/Ugu7ymKQop+XbIa5fmup72VaMoyKXORkeJ7QXLOjIBrTcHtuRWKS4V4q995vLBuLGozqlY/tUiF+x4OQ8DPbylRUsOqG9aMGJ0y28leaR6kQmtNctOAeEblskkyF+w4LzX9B8pspLcc8+ZMFbbuGtFeK3LXirOPsFDvFHLHijgjGRftyCs31ON/HsCxacaeJwnCjPvmDB2fmLsf/4Odjglmv/bdQf2Kir+8EjFgcAAAAASUVORK5CYII=","e":1},{"id":"9","w":14,"h":5,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAFCAMAAABCUS0gAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAUVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxtF0yJhNkSieieD7ssFuxhEQHBQK/j0nRnFFzViwmHA8lHA5OOx5NOh4BpZXzAAAADXRSTlMAhMi0C2lB7FqP2B0pJSirJwAAAEZJREFUCNcdykcSwCAMBMElSoAtMg7/f6gpz6kPAwDJs3Ps0yZsoC5Pzq90UoCSVs+/2i4HT7LKmHOUddOxbw5Gx6hNYIsPZcYC1w57kQ0AAAAASUVORK5CYII=","e":1},{"id":"a","w":20,"h":23,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAXCAMAAAA8w5+RAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAflBMVEVHcEwAAAAAAAAAAAAAAAAAAAADAwMAAAAAAAAAAAAAAAAAAAABAQEAAAAAAAAAAAD9/v//5vAAAAD++vwzMyPKy8z//7H+9fn88ff/6fLIwcX/7fQeHhpBQj2FhYZeX19NTk52d3dqa2uxsXsyMzPg4eKRkZL09KqkpKWPj2NQ5SuxAAAAEHRSTlMAQn/fIRL1aQWNWszoMcGtUaHbXwAAAMJJREFUGNNl0dkSgiAYBeCjyJK2keZCmpra8v4vGCKS2rngMN8MM/wAyi6bEAGvOs/JZTZWGSCsHd4mrDzwxwLjsZoQ/t1hMWHNsfvDh8bnAk21/hKlxdVxi/q4384Wy8J0HYLXW9T3/E0Uy9vZThSUM2YT5kwA+2GNKgJwejvMx7rvNPLGPZLB3tNI2bB8OUUwxm+uJkopvfbcICVl4lJGwiAOrEttPvsANgdSda80fXVJ5AwQ/Kh/jB1DgVUEpW7/BS9YG1ZQvL/zAAAAAElFTkSuQmCC","e":1},{"id":"b","w":16,"h":14,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAMAAAAR8Wy4AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWEAgAAADxtF3UnlG4ikdUPiCnfEAfFwzm6QC/AAAADHRSTlMAdVGe4R+vzDLD+/3DqVMQAAAAP0lEQVQI173ISxKAIAwE0Ukg4SNK4P6HdWXVcAHfrhsgppUTesUWHm3dTz7G/HFY/aRY4dA+SBfIOCSYF+L2AmYIBD43IWrVAAAAAElFTkSuQmCC","e":1},{"id":"c","w":9,"h":11,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAALCAMAAACah1cpAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAANlBMVEVHcEz1ydn1yNn1ydnuxNX1ydr0yNj0ydn1ydn1yNr0yNn2ytz3xdb0yNr0yNn0yNn1yNn0yNnGy6URAAAAEXRSTlMAa9pZCj2L+C6luh0fj8/nfpFh5s0AAABCSURBVAjXNYpJEoAwDMPSNQlb0f8/CyXFF2tki8wcZ26zzRWKSN1A3V6T0L5/HydJ5KIFVKUGGXmNBV/UuX83LOABZ6YBqI1DecAAAAAASUVORK5CYII=","e":1},{"id":"d","w":27,"h":25,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAZCAMAAAD3wqVsAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAolBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACg2bMAAADg4OCVzccRFRRfg38cIyMLDg0rNC58qqUyPDtFXlWUyaZNa2ib0q5/rY46T0VznIhRUVGHh4ddfmeNv52/v7+Ht5cGCAZpaWmampqPxL6HubSRyMJ5eXmurq7V1dVTcF1Vc19jhm/v1IkKAAAAEnRSTlMADtZsy5O7pDf3QuwEgxlYJt9U/wDOAAAA+0lEQVQoz72S126DMBhGDXiz69iYFcLKXqTt+79aS6pWgTi3PbdHv6XvyIBzSqPAAiZYkWVapYK5sQ0xJgT5vuOEIacWgMPizu223Q7D8dj318Oh67pCE4CuCzM9AVyJF2DgsfLNSIkAQGpldCoCwGIfJvUZjyucff2slorfJ2K1matVRn7me1C1s6sM/rbxiGh2D0frlDyUo7bI3ttdvdzU6ya16bRrgGy2V99ZoR8Ysru5rBAwI6RMyL85i44OR96TcaDQo1MpI7N1SCdnqau8qGResqmEiZQyL3R5kfJUOBPHXV2154s85UmT4tmPtEIEYyZcG/t/L34BFFgfht7dpzcAAAAASUVORK5CYII=","e":1},{"id":"e","w":15,"h":15,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAhFBMVEVHcEwAAAAAAAAAAAAAAAAaFgoKCQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1WX///8SEQ7hvFkJBwT0zGBsWysqJRnKqFCMdTfpw1w5MBd/ajLw8PDWs1S4uLi/n0tHR0f70WOxlEZVRyE2NjZPQh+amprl5eXQ0NCWlpZuvT8LAAAAEXRSTlMA5cRTJv75FZ14A9kGY7WUNvvb+QgAAACVSURBVAjXTU9XFoMwDDMzzLbKIGHTRdf979dA6KP6smxLlolWFIx2hEdPqfgQZI6mcT8C1a3z16XUSECOFdDnthFGLc5GGNVfoROipEEtJs5fF40qZuRJ3D/cYhAtHgEpwLwXzucaulznz7/5Tz9s+tPiH5lZaOdPaWfvj7W93+QukGikyxdu+RNPRcovs/0lxgpXfAEGdwzTbc6wQAAAAABJRU5ErkJggg==","e":1},{"id":"f","w":20,"h":4,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAEBAMAAAB8cQKlAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAG1BMVEUAAAAAAABHcEwAAAAAAAAAAAAAAAAAAAAAAABrVI7+AAAACHRSTlMyzAC8DAhof4fedUkAAAAdSURBVAjXY1BggIIghooOKBBisIAxWxiYBaEgCQDqQgsmYCox4gAAAABJRU5ErkJggg==","e":1},{"id":"g","w":13,"h":12,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAMCAMAAACOacfrAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEz+/v/////8/v/9/v/9///+///8///////9/v/////+/v/9///9/v/9/f/7///9/f/////9/v9zcBUnAAAAEnRSTlMAqgjJ5G09URT3MrV904tHmye2qpT5AAAARklEQVQI11XKSQ6AMAxD0YQ2U8vo+x8WEEJNvXv6JreLxhiIckr7pL3inf3ZVRhb+i91xGeCMkdNXNGTPNASd/AUI4kOoxvPngIY1KqpkQAAAABJRU5ErkJggg==","e":1},{"id":"h","w":85,"h":38,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAAAmCAMAAACCnScHAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAARVBMVEVHcEwYERAYEQ8XERAYERAYEA8YERAeGRYYEBAXERAYERAYEQ+q1qMYERBrgWQuLyaXvZBPXEg/RTd6lnOiy5tdblWJqYFJiyK0AAAADHRSTlMAc8CP1ypA/aUSW+1jCO5PAAACWUlEQVRIx62W2bqDIAyEK4IsEnZ4/0c9Ae1m1ao9c9mv/IwhA7ndvokxNgwDY/L2L2KqF2SEp0YqesV+IEolZh63NqCs5Xc26S6RZUcaL+RYkn7KlZhDg9N+OMkcRCMap9floq9k2p0o9FBthpj0rkq2uLM4WAmJPnl2+oCKx+3JEa4akZn0QbmMlfjuF40Gp08oIZd3+19PgBt9Ug7rQHfsSgq26PMqeG7bdglYp68oZTw1uVXTPSj2v8kelbMxcfnHyDeq0AHfgBbjH2F9yPq3kDgL40rYGIe4ZtFMAcXLoLlE5eyDnckvxxCAf2Ip5BWknW2VZQunMm33Ehj/ie3ALhfGUFd54/ZTC+FuOC+xclx+v6sx9/F7avmTi27Zu9WwdArWpKPpAu9mLJVvVj/a351LrZmPjOxZPZ/adn8kC/1LA0T9mzAGvDIKwP3EGPB0/Htryppicc9lCTum9qZ5lLYDf4iHIQuLkNmQ771s8NBSLa24XytfC5Cit/OLS4nomwSh0x7zC1c4hKQdn2ogAfYLgLGF6V3tBvkxMRDe3rmpxzFLeeqDAewuspkkH8DXyQHB1sxY7ANV36rtsqbmchRKfpsfKHJjxYYUgeJPPZidOI7i2DihaD2titXNrFinttuFqOODRFd7Fg/LN7NirQVqNcf+3DjFcD4x2Am4dlihpso8NfDM6qE6BY89u6xrmx2oujRJKiwA3rN4G7z3wFTO4eqAOoxQ3x+F1wC4R4L4iZlsCwuttfDNNjGaKZNXyrnoXdEQOLTMGb84RG8VuRcCQ/6PxD/HgF3Pu2swFgAAAABJRU5ErkJggg==","e":1},{"id":"i","w":67,"h":69,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAABFCAMAAAAmTatcAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAQlBMVEVHcEwXERAXEA8aEBAYERAXEQ8YEQ8cFhQYEBAYEBCq1qMYERAoJyBwiWlfcFd/nHeizJuYvpE0NyyMroVCSjpPW0cZzSZOAAAACnRSTlMA6BsNYq/P/DqIUTlwvwAAArxJREFUWMOlV9m2gyAMlCpGDSAK/P+v3rijoII3T562zplMJkuLIhZlWRZfo6laXjPAOVjN27b65bz/qzjDNQBge0LGq0RSDZ/eElb1ZuiWGEwvlRUTEG8SOHD6pZXb26cw0tKXdfUCUQGCigKsjJR4Q2kR3QPCHP1IKPcZVYiyew9JXNobdRvEvksJrYhKvNQ1qi4xzIhQRWmILjm0o3xigqouIyQij2DIHIyuB+RlUBWXhdEZETApAXQmCAQgbS6RCeQi7I9lKkKaIFaByW5BRiF1tDrQBP1yB0JdIlQExSErw6Z76DUhY+A8bP5xeEAZTTAO4CpJ0TCEW1F66linA0mu2cyTzJqHjhXX5raRzqF8UN3ZbaCEVJBNEx2q4jYhomL15ZM6NgfqBxTqE3FKVseITAk9oFA+0L8T2VBuhrw9g9wRWVHQRWesO89eFZlHuy4tTGRMTFmfyYDwsI7LmUwkJ4dg/OSe19+vnVZ44DuHQntDoE5a5PbMRY9ofVXfb4tyInM26CC8SfGWzIaCl57uEYaj83jaacIuBnU4epVJvJD4xVteNgKbxDurPXtLHvvVJQkSAxl3Iiq2f29BYPBlFfsTTz8b+SHkTGSlZd5d5tX4dKfIzWgaWc79C2h8g+oVA3KO4Na/duymKmLWJV57JpfbVgPMOu0bPM6MYSOViUG1OWQVuNQ6T48zEbtUN68uFyJqeczyx+wR7xBdRc3y6RJsb5t+cVlOv+we2QahWbxv0/t2HyW7qitGykANfdb7BsmW9HSJLjxcvhzeX4QFI30UniszHHWRX1KZbCYPf4z5VfEFmXzaZxt9E8SuA13SjvhEgxwi1olq1Dc1KJYpqBENfirKLCqopbTiizf2vxl0ZNKq+5zJtsPpSGS/7xjFr0awyJriP1HSRQ3/g5juT/ZvCKLiPf8BohFZIFcjlwIAAAAASUVORK5CYII=","e":1},{"id":"j","w":68,"h":65,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABBCAMAAABfAPIzAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAP1BMVEVHcEwYEBAYEBAYERAYERAYERAYERAaEhIYEBAYEQ+q1qMYERA1OS6gyJgkIhxZaVJpf2J5lHKGpn9IUkGStovmEq97AAAACnRSTlMAHkQx6rRqC5HUV9MgWgAAApdJREFUWMOlmNeChCAMRS2gIL38/7du0BlHmoKbxx09JjeFsMPQZivY8N7mhWDKdkOYLHM3YJ0wOt5nUrIvaenxaSaBIJ02XmzBvNWKBxCeWhEYnubab4kJ4+AH2uJOQEiVET4cDf6g5UkLEhBiq5sBDL0NaoZs3CJ2DChN6jEtoIXdnk1BTBVnVlBDbU3mIaaiMiNl0mytBs7gtcjwW7uBMjRjIMbF1mNesjHzo5OxbZzN/QzhrTH6Y8bYBAJ5uWOI0DnfNrxaFA5hssaAhuHfdubcOfUxF/6c1Fi5xPzRuoyHfk5/dIzEidG1ZgvzoPwBE0UDgriCE6Htpao2gY5LdikIsiOcrQqtZMyAYNKHhavOA3jf7XmKp0EejJYVxDHaAoHEPTwxJjI3XAlh3fH+MmZ9R5PMWHDDVgYawwXA7kisqim7ERCIjJVZljgCidPlEXQz5BNHgJGPJRGG4d05gaMP61L52/uxDDUSpcaUGOAGvT+FybVGYFJlsQhQgzwcVfTyaXheFSYgeloGZiavfvOCHHR8OnbJ5ds+n/W2eCrcRcOzAjHPciTRmCwY28SAQeIujthMjxYGVJqpOuIbGQNi/jd0TVofuIkx/iTx11wfUNq2400/SXRSZ/q5xk5dVUVWX1k+iqX2rQyRRMMbRd2TY8/cuCSY5qWXnslRkSQQzNS8NqNzlsQJdu3BDANjZ3WqaDSh9Q0kKjPZnJk6RDWW6h0EVO261yAmSssc6WFcUnwNhvbd1XB+QHSVyKfsTX5A9AUTNeDbYMIo4Nlk7r5xrsl64/vKrHiaQ6nifgaIwiNR6Zub+HrZG4GBxuGNkdMV/5oRXFHfXYi+ZOz7p9yvC/e70BPl+K8Enod/2ThN83sv/gDyXFvaiFyV8wAAAABJRU5ErkJggg==","e":1},{"id":"k","w":84,"h":79,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAABPCAMAAABCpBKrAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAP1BMVEVHcEwYERAYERAYERAYEBAcEREYDw8YEQ8YERAYERAYEBCq1qMYEhBVY00+RTcqKiKjzJxpfmF5lHGXvZCLrISYqHrFAAAAC3RSTlMAhMIwRgsZZqTv3NtZHvsAAAMRSURBVFjDrVlJksMgEPMWFocd//+tAyTxGGgSFnOYg6tGVkvqNpBp+rke64ZnvzDe1sc0utCGyUJZtHaC1064hyN3wknBOdfa/REyPKBka4RbHdx+oulDPaN1GO6R6Yxqq53JCadNCve/rPa45KcMK/7gCf4F7p8w97Bf2CJM6AfPXv5RcW3LsJZ7EQppQAHR1XtkbPx7vuB62B3UYHWQMgcMy4jA3xTVME5bDIASz8YcBT4q4EpeoqscWZJLgNmZRg0apILV4iiRZWxBgO/zfPaN5FCtwWphCspKtqNy6MnyyoBWgCeyyFaJgl1nd85LwZuggrAl1B/9hfACe6O0e85VH6rH9d2Vw/pgSkhaJdlSMRQ3AsIeAibr3JqrxguBqvUaSMAw131143AlULWHM8xAeaWVw3BdILJOWZ6jCrbUzmxMgWqdBEIBZuFaVE8WkiBHrRfANYRTVlehiroEnDOHAxnKUC1jqB51ozBq+owzMg2j8iGqHlUDedcZ1bllO7AxdgDz+UjfQ5v2RZhJm2soVRoA3LR1Ibkxz0xWU99Wr7zuoKwxfdVmVZAVEECM1Q8J4BreDNU/IcqA2SLT+hv3xXMFVcla964gVTGS/0A161aV2Gea+j+oCgaAxynbW88CBMqqjJnTVtANtMrGTqFWVArVr+P4rzfUb2L2ojVTYP02FrUD1EVV5bPKjoG6+k3+FTVjmrphzb871QP6YFn9OnpPR6SmacnqT0E7ju95/SZ6wljPqT2rPwK17b0P1h+BHq2jv1B/pKluHn1w/vU1Urz1y1fIv7lui3saqtD/V/PR1Fl/8RKg03z4U9X/iTrPAcnH/jnuk1s7K5zTXZP2XoW5qIqSpLQXE/xUj0T/E1XYKtEvqbeKgQf/3pR+pooGq18GMP0R4O7qw67CAN6zsUvbGaDKR7x/DwCT27SOgQJUB216U9Xp9m8bBfUBULGiw0TDaY3H1o8TTQ/BYtT6cwLIS/E7ugX0IoC+p/j33bP+YOLprrX5yzDlbwDvwwz3IOEXlW26c6F5p0tC8w9Q+n/ReUS5LwAAAABJRU5ErkJggg==","e":1},{"id":"l","w":95,"h":37,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAAAlCAMAAAATK8VgAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAQlBMVEVHcEwYERAYERAYERAYExIYEQ8XERAYEQ8YERAYEBAYERAYERCq1qNidVtzi2ucw5UnJR+PsohDSjtRXkmCoHs0Ny1pD/jfAAAAC3RSTlMAKvF+E0jiyp9mt58E4NEAAAIgSURBVEjHtVfZtoMgDCwubAFBhP//1Zug7XWrS9V58dh6ZiYJhPB6nQSrVSml1kIIraUsa/a6B1WtpOawRCHKurpIXepiYPOps00TY9u2MTa2Cz5ryPpHbqbkYBqJY2uWcNEm/Jur00FUSmbbPthmjXmkQRJFeUaBlSJzdzvUb8SACuqw80we7DHuHi0q6CMhsJyWrnHmJBoPxW6ha7IeGvMLHIawnSNKjLfO/AoLUG5khtgbcwXNd4FKX2bvBdZTpLCq1lwHCtTr5oMzd8ACXyxTxmepcS53GIQdgd6p+bhNJwH0fFEWkJxxLbWsLiTvYR8+hQ6bXWwXWs7PSlDT11NO71MKARm6sX98xR/T3IAPKDTSiVBUU/cfR5YctQcK4Sha6tD/xlAmvjMkR7kvIEzkT4PyGlLW6FkcwOdgqzh0t6wbOgreC7z7D0BCMrcDA6g+tW3v58cAhjYhbtm0y5IAH+x78whS3yUENM/w21xhBvAM/ZAgBeEhfuNpC8in0kMrCJuQhnhkNRNwZGvpefwckBv+actTc1nppT73qd2GEkHk5emmWzy3rPkMW3DOcWQW+CgmbXNj+nK5wALPFTcQj3gLLnD6VnXN2OIsqlie0kWv9H3CA6CPadxJH2KkRVZWHR6s+aDhvvD3Iw8Sa3mYd3XCXsQRhw5BPti1GwJTwwWBKkLnU4x2d5Q7H4eYLopb6d/XM7qd0eVM5vvGH7jtdib60xGFAAAAAElFTkSuQmCC","e":1},{"id":"m","w":93,"h":52,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF0AAAA0CAMAAADfVMRjAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAS1BMVEVHcEwYEA8XERAXERAXEA8YEQ8YERAYERAYERAZExIYEQ8XEBCq1qMYERCfyJg0NywlIx1DSzt6lnNPXEhcbFSHpn+Tt4xleV5wh2ghhLIKAAAADHRSTlMAWN2jJG3wP74OhI8+Tz6NAAACqklEQVRYw7VX2ZarMAyDQBaW7Anh/7/0OkBvwzSUtXqbnjOqK8uyUxQ30NS0LDEuS1oXj6IpO4Z4AtaVzTPUtFuIpdbWWaulin8RVt6nrggwKR3M0L8hfJDwMcJ3fkCDY9XS+T4DMcIXoMv11x2UrdzQb8IDP7vU4rqCsrXpv8MoTug1bjv0uxCac3xS7y5yi/4Qwkl6TI7VvWDk/HhvawY2Oc490x/VvgWfmP4cHEeHjE/B4G5PcOFHq1clSF4dK1z6r8w+WDnnQkg+HQ5oExV3X0o2biGWNvjhjzZsh7wkXG0W7hdmaUefUU6o78U31abFxainVJTOiO3GVjuqjLl/G6Y05Mqar80eONm2DSVZj085CHET9v0vt6XBwPBZmtET9SiOeb7dljx8/FSnjlPHUjZc04Dkf6fTREVkEMfndeAo20/E1VpWEVRsoz+VBoKTjX6uShRREnWm7G12IF/1c+KWZ2MMhJGZrpYwQqtVANzan+b2FhZsk3GiW2/JvRTLVG1sdFeXI0+cOOgTmohh8GZ0drmcujqXt2M6DlyN+TQPzsENBleY1VpLqZRKjj7C2tyUdqnN42nyGWLCvNL8AwQhVnV462JdkYdPwV9xTljVxsu3pDNqWtdNs7+GTKq4/Ru6kRlV+Mqp1aTkXq0X9ULN8NU7PY2WcRWQ/6mvn7ep5i7xvJhDl906/XFiRfv+Ij+NBbv5qiiTIdKvTT0FI9z7d99EDXlLoZf09XqaOFrcRkXsW5ZIPpfNHqCGbcG5eM+Qn/KNo/ahV2LL9XuPm2nFPfB6ewFxv9rMpH3wcVtyma6he4/CzJSGhftZSWY7zj2d6q5o8TDw1NMxctfF42CQAcPlR+wBYcDliBa/AOUSZr4tfgMc44QWv2NH9a/I4Zjump+R/wMGxGwNdONPNwAAAABJRU5ErkJggg==","e":1},{"id":"n","w":75,"h":73,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABJCAMAAABCWCvTAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwXERAYERAXEBAYEQ8XERAYEQ8dGRUYERAWEBAYEQ+q1qMYERCfyJhqgGMwMSiQs4hHUD97l3RYaFEq6RhPAAAAC3RSTlMATbec52bO+zEUiS799rEAAAI2SURBVFjDrZjrruMgDIRDQiAh5hJ4/3c9pN2Vtt1ij9Pjn5X6aTwYB3uaVLGtYXa2h3NzWLfpdmzB0mv4ed1vgPYHyJ+plhJjLKWmM1+/LFp1Zu5/y60crxHThVs02oy7FL2DnlFOImtgm7omn+IxipLJr5hPy0U62GhEiLLVspr+RCIvnsDe0ztF0kPZLHneRdUDieiJF7aCop5ZLhyqm54ONApZ1iowv2d4Glbs7igXBerIQ9aFihpUHOaoR50UBqxZiUqe3P4bqEezGKECedz20nxvFKO7bYiKwqeuadglNo+XaPeJ7auOTlRUFnrqAvte++GxFxo3qxJ/nafdUoNRge9YgTLaYyTUhmbYUdLnYgYzbDLKkI8YyovfHYdV6QmgVsx4BDVZqhDKyq8RTBaEwmRhKIPIwlDQIYKoDaitBjxBnr2m/RZq9+JNTEhdYQVRsQfb41YnEYU9JKediHe+eKlf/ZPiKX0mZhDVU6xCYTl4qPB8ioksPA8YPsUCH+GjUBNvVoBRvUUUtt4djtrJsxl6xSjG26XKkLcraTK8WlfhJgqjYXHVlfCCl+wSBx1Fj1DKYntE1rnF9YjKjUwfT7EyslZdiuMPUNPVFpdiVd0etujxFi8Wvfy6hYs+SW9uvN80var+jsif9ypar0asPjPZG4uyDzleq6P5zo7sv14fGzNbTtLY0l7GVO1y7O07+7dYY73G1PmLlaLxlFuqqd1b/70dpftuLfkmLSxLWM2XlB9MGXGO8TjCxAAAAABJRU5ErkJggg==","e":1},{"id":"o","w":26,"h":26,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAASFBMVEVHcEwYERAYERAYEQ8XEBAYEBAYEQ8YERAbFBQYERAYERDFmGQgFxS9kV6pf0+QZTSxiFmhdUMsIRprUjhfSDKQb0qge1J/YUKa2fIKAAAACnRSTlMAK/rnmT98xgy/gRDoFgAAAMtJREFUKM99UlsShCAMQ1GRlCL4uv9Rl66uq9Uxv5lk0jTG7Kg6b+va+q4yV7QeB3x7IvoGCPOSiOMyB6DpD8YhTEw7eApw/cGMkU6I449rMCa6II1ovgkQVlJYAySLw6QZpgmu3IPAiknDkAIq02HWojwMeUZnPJarWYyxqBZ4Y5G0JDJTgjU1bm5Fx4S6UNcUnHMxzEJpQ2mjUGKoY2xClhgP4QUS/uFkEcrJT0XRVtRbvS9PeXvlywBOs6GkZiNZ3H9srlVLvE/0A9gBGJ+2PLeGAAAAAElFTkSuQmCC","e":1},{"id":"p","w":25,"h":12,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAMCAMAAACgLOZ5AAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHr/7WAAAAE3RSTlMAhcQfaJRJoNz47gkXLDVUzrJ3diSwlAAAAGZJREFUGNN10FsSwBAMQFGPIF5F7X+vNVo1pL2/Z0wSjMmzZMzC8CTZEtj6hkb7KViXnIpDRN0rxy2HJVRN6KQ/yOlOESnZ1Mlz+sw+iwTlyKyxogfxIy0JZk4U24ewoIErxaGddAFL7A08gUBOjAAAAABJRU5ErkJggg==","e":1},{"id":"q","w":50,"h":15,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAPCAMAAACRBWzwAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAUVBMVEVHcEwYERAYERAXERAYEBAYEQ8YEA8YEBAYEQ8YEBAXEQ8YEA8YERAYERAYEhAYERDFmGRCMSQjGRW3jV1oTzeTcUwzJh1WQS6ifVOIaEZ9YEGuFDc3AAAAD3RSTlMAQvibWGghD9l76a/FijH+45OUAAAA+0lEQVQoz41SS4KFIAxDlJ+iERDQd/+DTn06joiLyZKmKU3DWAElp6bphBnbYbB6ZBWUYkwejJYYukcJfWh0h4a1uueAZJLfST4l53J2hJQAjhodYyOwLJ8txjWE+cRSaORMBGKsa5gdGhqtkecHgofbGeGlQMuwiWN7liKwzi9YMHxdEPBrXfOh7ojg0+FcW/fQNi68zDa/blNPLL7swPuq5wPcLtWSbbeaR99IjXTvCfk2Y4cB0mlCdMCwH1nD//myefCuTEKj6Qh0gEwX7I+aGmiheMlYWcVH6DMmRl1PFCFPSfCXzBOyM0ZMRQqF/cpYodj/oSjbBf8H42EfaoPzeo0AAAAASUVORK5CYII=","e":1},{"id":"r","w":32,"h":166,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAACmCAMAAACMTX0DAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAS1BMVEVHcEwYEQ8YEBAYEQ8XERAYERAXERAYEBAiGRUYEBAYEBDFmGTyyZoYERBPPSw6LCHMoG7rwpLXrXtrVDyXdlHht4eDZUa6kWOrhVrO2trlAAAAC3RSTlMA33KtLo9ZRvsZxnuRdw4AAAOSSURBVFjDzZjhsqsqDIW3rVZbSUuxat//SS+ISkgW7DkzZ85cf26+KcnKSmDz84O/++Ux0OP2U/ouA21fV1onen7WdSHCv9HT8BnDt1ADgY6mbX380gCBhuIPjB+6wgxoiOvjhKO80HMHnjjIKy078KI7AgZa4/qKY+zpNR4xPqpJehlgjI8jSR/jBSZJ4xljD4DbmeQ4wCRSCIUkTp0LSSSdfRLXeggTTCKF4LPsqyH4JNpqCCtRPYQv9BsLASeRClEoFR1eKJQqeaGQZbJjqGVbs+M4wiwbcq6WpZfJGFeppZfJGDOXZejo4wHztqVaPmg1BwG7iuht4uegY1t6HYBxyLGhlPNBIBm6IJOL6zOSIZYyEhbJsLe1DYF8gQztUcpAfIAbmN1mswCdmN1GNwGdmN2wG4ZkN9jZbWoJbBcWI7YLj9EDj6ofoV0a+nKgqwwvPKVb1jPQcLxn3BsIeSZhQ71B3+1C22gpoPQmtD0cp5UOs+dcNm89Q3vmaO9prfSFprRuVq303nXR0RYcd0fXhWVYioZihM5ipbfJYN6uqHTvJ8O5jCbcjSbHaqV7P7MTOq0yOyHTZ3ZCpifeEwFQWb54jKOqVchyrnXFVqpt+hWAvVSueGJe91LNJcAPcXOOUFTMNEG3bRTga+mSXUDjhZPInr/xtsoOsauSp5Ud9lqe26gRd9Ty2Eb9Qppv8w7civPNIeDO51vYRvZ2Pjt8h0qg5wMwBCKBS+5Y7dnuN0BYWps6G/MIEJ7XQDZCAZDptCkh7rK5TkFtAdxynWYjgUynreIC4DpFRwiA6bR7SmQh7aKAQ6fkawHwMz32jgCikKlzrFAyCpmawkqp26ytZl0Lbzibta4EbuwgsMhRF1oMHw4KOE+KueDJK30NH1AAWNn2AHiQ5SNQA2GAzbW+8IeRE6bNW4/IjjVAefqPAWl6BfS/AaIrEDCZaprxLHE1YMlKrQBQ7QLACp4Bhx0MO/0F8GGXlxhKBoTOdOz6MsvDP7buzBAngW/emX6fDDhnoEvIBAHWvxmQXZZnAORTNIZSAWIomQ5qDvtQOIAsaX8Dxn8MoLb4XwCvvwC0fxGASvIL6T8AgOXEP3pDfh/WgLpdyPcTdYGRz3FgDH6yS/F9UHuIG2unxBYX0nsjNlnlI1Db0Ivtsj7VpdkT9Fw25rs8B2r0w0IXXjSHIb5rXu+lN9EAPbq2+DB695/6439wJo28hEOB5gAAAABJRU5ErkJggg==","e":1},{"id":"s","w":359,"h":229,"u":"","p":"data:image/png;base64,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","e":1},{"id":"t","w":77,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE0AAAAiCAMAAAAtdaQNAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAS1BMVEVHcEwXERAYEQ8YERAXERAYEQ8YERAbFRMYERAYEBAYEBAYEBAYERCq1qMxMik/RTeYvpFkeF0kIRyNroV/nHhNWUajzZxZaVFyimrY7+itAAAADHRSTlMAX7YhDkqI/NQ16qEGtc6bAAACJUlEQVRIx6VW2baCMAyUYmkL6b7+/5fetLhcFLTqvHnAYTKZND2d+jAKIagQ4/n0E850WvgMNzBOJjp+x7TwC4lTSmutFFt/8ol+pvI8kPpXpnPxRt6QfMja1QeL6OYal0qlrZe78FZVhUMXlyCVqiT5AiajQk67uFg28i0KCiSv/TtPyGWT7IJlML+yj2IacidXrVcDG14JU15+AgtwQDdyLFJ+iHKgTsxbYSaUXCNboaMtPh2oYzveUQb69r4pLaMPULHs9DoDf+rswCBeqVo4waGgELxB+FBsVCtjfjJWw/JMdrHMx8q0pyL5ouuMKLt9ZhjQxzLttecAMRy7HuoQsJi21vFNN2fIjQt1OftuDgK+tfleUv9jcuarZ5jtvjkw4TEm/8QtoNJaZDTyK7i7cwMwJAkOXJBfwt7aiqaVNiJXa02w19jqmG3o0GuAXTJHQEuJxto1azuxxRP4HaW+lEqxzoRnAVaZSkvoTKahbijcVHSYJjIfxXZT6tTYOFgkcx6PU4zmvAzj3uZqW8IdB9GvXR2wn5Us1ZiTF0czneoGcwcKE7BVWolIhh2Ft2tobIT7G8PB2KRlYHU2SddKE9Ncx+WZT4Go0pAIzWdD/6ble2tIVzb8EOABxMUnq7utyOiftaFurXaOu571rUN68G2pUSJf3H3GZuAtMh7m6gKBefruItUMxBPa4vkc1CW9v9zJ1sis96Yf73b3OeF4q0OyPzmET+lr79bAAAAAAElFTkSuQmCC","e":1},{"id":"u","w":60,"h":61,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA9CAMAAADGfvrlAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAQlBMVEVHcEwYEQ8XEQ8YEBAYERAXEQ8YERAYEREXEBAXERAXEQ+q1qMYEhAzNStqgGJFTj2YvZF6lnOIqIEmJB5XZk+kzZ29O/TLAAAAC3RSTlMA2G2IoVfEEijvP78gdQIAAAJfSURBVEjHnVdZsoQgDFRERQmLLPe/6ovbAIoKL39TZU86nU6iTfMZI5vnvu/nmY1NTTBChwlCTAMlrAg503aHCKG2EHb72XZfDEayIq2TxvMQ3ki14l/hI0GyVmqeiwXxU/+I7RGqFv4YGuHdg0oDlmn4a8gHNKa1C/8KAzDfsR0y9vw7JLQ3LFKWvCS8uKYeB7CGl4UDkmJbEJoXg/tL3nKst8DSesuxKNgQYynYciy2Kk5MAO5aSZH/Q2MTuRjA1Rpe4hjZXNMXABqTbsFdnxBo05zXvLxgOxD+Zv4slGtxMTa7Fox/DtI/zMRlIIeU9JpW6ae0Q7qJ+lQX1DI/WNphWnIZhzaZBiSWdYtHKNDrBkoT4yPuIStQlplDmWAzQ2nWxUcz8z/Hid3dLFxLlGmi2Y1NI5ruZtINCS3Jb9txAh35brnTnXJ8T7lENCvyXmn/suHpD4B7yV1aM5H32xJYu8TgaKbp6ywxsIG0ScZu+LyIBNTxeEJaPl6UbMlL3G7EkoIzPJxcRdQl5NyX3PBTryV0jOuyvE0DsANU1GJbUu/qr0NsD+CDR4fCd5aD7fITfSXN6sAqyCUKCw5g+/OZyVze95p10NqWdWkHQ1ryUp747LP8WVOUJz4d5s4uG5gq3i93b//EdoX+OBeJ2sDmlItVgPd5FgfY1Mi1nYslgOtYr9dVhZoFzFVg7LQ+wTgeda/z29I/WrWUzlN82fVhEllZ8pZamd3bqnig4oMjd4vX6rUbBezaK+zyWA1G4uuFk1DP+nhXfvly+EKvX0JT3zT/Rbes+W+MXbVWfzbeTxxrQWrgAAAAAElFTkSuQmCC","e":1},{"id":"v","w":61,"h":58,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAA6CAMAAAA0uaFjAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAP1BMVEVHcEwXERAYEQ8WEBAYERAXERAYEQ8YEBAYEBAYERCq1qMYEhAmIx55lHJHUD+Kq4JpfmE2Oi5WZU6gyZmXvZAQO/FnAAAACnRSTlMA2Ykru++jThhv6o9dlAAAAk1JREFUSMelV9m2gyAMFBVRww7//603sYuyqNibh556TsdMJkNIu66MQSwUQszds5hFz2APPi5DM1aMG0ZqT6GdpCe2tFCYF46/ddase0Sl6Q3TLYGeEzSsRShN+Mv8AqvVZq1H9KjAck4a63Vn2A2P+ceT9IKDVOt1KAlcVCtG0nG9i4Dp+ypru7aERfFy9ALSrG2hsPgMPTVmpjAyz45oY5RS1uKHMfEZfIIspNNWnb3EACxp3eA0Bvpaa/ey9uZ1a05qPzZu5pD+LBrlN3eD9KamPJ+TdssKz/f5qDhfp8JTw6t1Gi+JQIYPMi2dhCOpzg5Ylh+VS06seAvvKkrRAcn85AvTDEs/8nqhxgEk9JF77cAIGhHgY+WAuZjozi5GWy7UGl3Kvp58q4FEKLyP40UdPcNORw3hi1FjE/h58veYs6VHzeFd4+WIxfQhz76bMmQ9L+izYmx4cIfv/fXtMCaVUjjwu+HYzQUx5fAo99Il3F0wfQ63O/c76q/RoTLuqpn6Bjdp29yu+v3dms8O932buzLMLl3Sdwv6+61vuNbZ3qYX4fApYmzYCgaeKKc/TxF40z4CMtSot8i2la4PjgH5la1pI5p5ejjjA9Ff92woe6Yb0Tjy/eGe+Hp1aUMPmeWeodFy7h/ojpWDsrluajrE39Hk9zWfNO0bMDY94y7hwfItMt1jw3hIj3pIBsX0aPVnSem6vWGf0v3xoD/844GW84130YlyOlxtADdwXMZpuwj6eWoiT9uBxF2Kzd0vIWi/4eNv4E38D/QP2yxKCbI7inQAAAAASUVORK5CYII=","e":1},{"id":"w","w":76,"h":71,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABHCAMAAACajlHaAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAP1BMVEVHcEwYEBAYEBAZEBAYEhIYERAYEQ8YERAYERAYERAYEQ6q1qMYERAnJR+dxZZrgWSOsId7l3RZaFFJU0E4PTE7SlthAAAAC3RSTlMAgqAaDNa7Yu9ELfy8Au4AAAK7SURBVFjDrZjbtoMgDERFi4ANV/n/bz3BrrZCsIIeHrt0NzMMARyG0zEtSgil1PIYbo1FjBy+Q/JRqOkSSY1yQ+i44ohRv5FzL3JiiaSDd8/vMM6GVe+QTcKnER+P1jyrw/kPko/shPhg+Njq6qTn+x+wyvgmikOgQoHhoChjI9i8yBdxFtWyUGF0hyT00Ze/v4B8oWHgoG3dqTVVsPrq33jE8YrEelnp6RrJ7CajYAl8oeaW1SkmhoA+OeHzyCbCCkcoWzUQ48bEUkuwAqjY5REVS30v0syWH5GgLLPS+TNBb2H4kdZJVjQmhbZEJbPF79xzWGtllROSUKM6WY4MdDlbThOFycB5Oe03AGW+LBpvSKVcnbaJByfmB5ITrFSyhp7DIFKWJZWeK0wzSUSiIE/orKmvjuVMBtCOsETbvgFgSkWkLqmGxsJyq/0N1kPmjhldeo/0RhY2i9yxWDroWv3aFpLPDSvXQoSxedsGnYkkMQnAm08GLFe1VkQuzZv3nKl0FZGsmfXIQxbLFelBth9/VLYsa4WJ9iMKy0oJpFX0FIbx91leyYpnHYcnvn/dl60Ig9JzFJN7/1faxOYOFk7m7l2isst+7Is6m0ui8nEVZsv0+y6VOSyUlq1dKodhD1vLpqih76Qu4dj/TpUpZ+YQFjpVZqHVxcbSqzLrQFnmUlI6VeJCt0eVdavE7SQcwbpVZv0sZhPQPZd5ap2/k1jSg7J1KfuvqyNUbx24UMduVtG39/arfthS9p13yPiV+7OE2hWnr/nvTLM1++HS1V6QA+2W/vkKq9zTb9j/WuuW5oJfY9V06gvpr59DO08rZ0d3fS0X1UuFvVEYKe1OYdu1wv1XYflNzMDlqfzcEcO3387DvbF8roQocroJSx81bOfV5jctWmfvGvbep7bvi/JfWNtnxpnd8OsPyQVm1JHTo4gAAAAASUVORK5CYII=","e":1},{"id":"x","w":85,"h":33,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAAAhCAMAAACfmBe/AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAS1BMVEVHcEwYERAYERAXERAXEhEYERAYEBAYEA8YEQ8YEQ8YEBAYERCq1qMiHhqhy5o8QjQvMCeZvpGHp39zi2tKVEJ8mHRWZU9me1+PsogTLnoYAAAAC3RSTlMAzqmNEW/kK070usRbgWUAAAH5SURBVEjHrZbZooMgDESrsigB2cH//9Ib1K4urV7nxYfaYxySOLfblnhLm1pURaJuaMvJ7Z/itGawUFfVCD+JJLQqDKVTjm4oij6nYNTMFs1xNGk6JAZv5ULW+aQnNqspP8jUsZfbsjFP6Kr5Edyim2GQ3+VyKGT2C7gBME7+qD6mAq7ofm8QAZDlIbkC7podLqlARXlYUSO35ttQY+UZDWG7XnEWWtoCuaxdPSh1GloMRh/qRbktwNeG6lHW2nJZ6WevgH24SzrwC4h1ZVJT0NoYpT6XglLGaB1Syh7nGh9jNXTvLtQQnrQh5qTNAoMcVVDjZfmj0cEA0Lf3n0y1OejnH/C+MFbiBrt8ZzRjcOPbhPBSwwu2mrtfT08NycehP3Zc/eDwAQhoX0qdGDF518v/KEPHH62a5VUKUM2L/17qFerVbG0DSV6nCGycBgbuQioeOZ0MuBIq/egsfZmAS5wFIGWu/KVUtKAttn5dVv04RjF6H3HS8Gtu95omobFkz1ZcCWFtJcyDj/Ps7GqtHMz6JvbJPEILK6lokhCYktg7H0f8ScfxIjiueoUYzBwmtgIW4bydglj33Ea4P7IZV8FnrfcaO0F/zGuk5DzxKH/61DDQvmyosnXmwFOIJyJfgTfzzuLv6e9YgtrLgIJ15UQEmkiuIN7+AM6VYORbutM2AAAAAElFTkSuQmCC","e":1},{"id":"y","w":83,"h":47,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAAAvCAMAAACojAaIAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAARVBMVEVHcEwYEQ8YERAXEBAYERAYEhEYEA8XERAYEA8YERCq1qMYERAkIRyiy5tidVs/RjhUYkyXvZBzjGwxMyqAnXhLVUOLrINe4LVOAAAACnRSTlMA79qnwRKJSy1pu7DAFgAAAkdJREFUSMetl1eWhCAQRY0Ei4yw/6UOqCMGTK3126evr14FoCgyQTCmlGJM2uKLaHFdQYqyQfglGNdlJDHplFJOWjaAG0R+J0aFUnjezaF7ISO2oj+pJU0QKHS3C96rqLd+LpaWgdgdRe+iB/gZEgE43p2EFuwhtQYw3UXwgUruq2S+u46Biu5ViwLcQUaqCj1L71R8mTjn51QtbxnQgEp/iR2vzJlsw66lUmBJG5fj7ITe748U89BYzbmr1abkYXacHbhWHXD7IPWsrTDYnJZpKMEKf+AqOmvNw/HxI5epfv+bOMu/BH3WPOOwZ7D+OH+STX0jN9q72y88JEEPqq5u9PqIlWZdMnVgKjq2c4N1LIpdUU3e1Pp6eczJmihW6bWpVZvJXXb3w8dGcAuqtlDtJrWtwJoHVK3WWrmFcg+NZ4Yz+hk1+RrKn+kpWo2HpRKm95rfoIaBZ6lhXbZRCWoWhzowG0JK6Vw8k8OndM5XqRc9le9+glFdN1UJuWByyw0bL3WMOur+2eCWTIFjUIrGq0kwnW9W/nwsiito9sqDBu5Kbth4s6u/QKM5tNlg48SLBEW/3tDK1dwHknqndMIO3vZz/pJfVP8WdjBh2n0+QV1mop54O5RMRrE6QWVuoTy7q05iI3SefVS8i5aOYgN0qr6H8v1VfRBrBfsvvn1RpoVYVC7Wv4Hmk2fFsNcmKmdAvoEWuPmnutdV2rwGwp7qoSqKT6nWd98lP7+FhPow+f+Xhv2q8klqaKzqY2ZBSqi/ZoZd2P4Bo49KsomninUAAAAASUVORK5CYII=","e":1},{"id":"z","w":67,"h":66,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAABCCAMAAAA7SJvkAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAP1BMVEVHcEwXEQ8YERAXEBAYERAYERAYEQ8YEQ8YEQ8YEQ8YEQ+q1qMYERCgyJhjd1wnJR9HUD81OS6Kq4NUYkx4k3FxCiGMAAAAC3RSTlMAXox0GEjEL/LapaZrCqIAAAIOSURBVFjDpZjbkoMgDIYR5aAG5OD7P+uC47Z115BYctfO+E2SP4QEIS5m1DhKKcfBiK9MyRneZrV8ypmkrV/GkH2xHGL9NY/TA4Ss3/u0vs2lvJU/F8UkmBJE+ASclnKhaBZFWYg3hMMbX5zRdGKMhbziVimSYsxNRPWlZLcd0AhxJSxFwpUZ9pW04orGdTawrQxLG8xoagcIHMbqAliFMvLKs1IsAxZLZDJqUhCIhuD4EIWV2OZdJ2TS5VTkxMyJRdRRlRJYlAAzWiVLaR+ZEZGLsOBNaCx5YbjiNhgbrWwB8DRkB2j1ggE4BZdBi15IO5qjpQVGNNZ0Q4hoatmStV+iURQkOrLmZ/KmICEbdoJfhUJDdsoRDoR0hAGhHaEhpDQciCdqhANx7aP3goR2N5Ki9y5PYAUL4pvyciYTBa272De64mUmgNQZjBALbLg4EXjDmm6I4znKVIUtnpJE1/urxaLRcMrsTEnAy2wQvdEw1T0ExrRhJ6Rq49GEcAd6hToSQHU7wk9IdQRrIpa9naBzcGhfvddCi1hr1qI3I46vTG1HO3J2B8GP5h7CPbu/G99+W6r8hBwQf6vuk/W1NMabyQTg0Q483E2fD4R577Dur7hP9/m6S18WhGc5PV0po/3nmvGg2P8tCPuBcRnmSXxjZqkPCluMZXu2Xz5ylB47LMczhV0m0WOTUacPP6GfXGNHrhrWAAAAAElFTkSuQmCC","e":1},{"id":"10","w":27,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAANCAMAAABvheXhAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAVFBMVEVHcEwXEQ8XERAYEBAXEQ8YEQ8YDw8YERAZEBAYERAYERAYERAYEBAYERAYEBAXEBDFmGQYERBmTTY4Kh9HNSevh1kiGRV8X0BaRDCPbkm/k2GeelGfDUsxAAAAEHRSTlMAHKFO6NYwPw32jH1e/r5s5ZRaEwAAAJVJREFUGNNtkNcShCAUQwEpYg9N0f//z2UQHZbdvJ7ckhAyDuM6dUrSnrTqZ7zSXCwLY8VMCAWMOZyzNjyW2y3SIMe1FZ3eXzHuuzEWs0psgN1anRZDPshhWuYg7s+UbuEBTsurnYbz1cIDWr05FEfYH+RtjVKQBXAxExMg5HcFEwdCSpnSsZ+C+lHkapgk/0RVJ+uZDybPDa/U+/2wAAAAAElFTkSuQmCC","e":1},{"id":"11","w":26,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAANCAMAAACAR47fAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAWlBMVEVHcEwYERAZEBAXEQ8XERAYEBAYERAYERAcEg8XERAXERAZEw8YEBAYEQ8YERAYERAYERDFmGQjGRWYdU4xJRxxVjt8X0CogVZRPithSjREMyW2jFyLakdpUThXvS9EAAAAEHRSTlMAix/l9EawYRCceygxyd7VSj79IgAAAJJJREFUGNNtkFkCgyAQQ0GEEVwaZBGX3v+aRW2t1b7fTCAJq2VTVOwvLVZK8WiV0twQyeNWwPseN8quzi5nrZ3nwbklhueY0rTdasYMJnsjQOQ3K4FwVRwg188kEH+VoYfZMxIwXhT1yU8lvDuU5aQw1nTZOO+WtIX7UvFcJcUYptyILqM06l1VF/fFCuKa02nOF4CNDflEg4W+AAAAAElFTkSuQmCC","e":1},{"id":"12","w":29,"h":148,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAACUCAMAAABY8tItAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwYERAXERAYERAYEBAYERAYEQ8YERAYEQ8XEBAYEQ/FmGQYERDyyZqhfVTiuIhnTzjNonGGaEc4KiBPPSzUq3yxjWbtw5M8ncxaAAAAC3RSTlMAM0jjF4Kgzrdi8qkUf+kAAAMeSURBVFjDvZjbtqswCEVrtRqVmEYb/f8/PTHmQgB7xrn6sh/maIC1gLh9PB6NmiY1PuRnhPC0Iu8meO/7usHQCPQFn/l83qDEg9+B7gAdp0/YAp03ECJ3ABddoReObmEJdIFWoArWdHQjJX2l5bN+SWl9UmD1JS25pgn2FPjJ6RCTlgP3KekFhi9Jz1LgnLQYuElKy4FTSXLgpLQcOCstBu5z0lLgMVNJ6lLSDtOXkkSPc0k+8CiUdLlkj0VoruiSPbQVmutyyWn/CHoEl8wJ9YfrMfqSLqhXrocv+Lig3rkevuAIj11ICyBCK9nUQghrZJsGsBFKNinYtXZ3o9jD4kPejeILVjvfds+YHZbSQg4LaXWICmkV/6WmzlMa0rqdUrG3FKIf1ls97MbeJv2Cxetsb1reixVMsqKWfliiw07Q0veOTu3hWNJNoVqzgfBSHpnyvvRSuvu+nE6hI3cs6ThogR9M6Sy09d3JkkZCW8OSzstSVLqirD3KKpXaY8TU0tWDe9b4pLubnTUffANkag/Bh9TvRvQh0kP2IUyDTS5ZUtJ5Z7nsMCsJwOTe4dsDIB1rhHmY0m+dNA9x7cQFQV0awOk8DsylQE1xSTHqkIctobstHtIRxxPM99JQU1Kwwo3FCiaUFEzikoL7OmeyHjxF9dKmPWnRaib3Q1jgCNdyXDR5ROWINF0ARI5M4+l1wxd64VosrxVuOyLWqWRpWTevhC6o3bWppYwO5tPrYUkuJOwqKbP7MbippCwOxuCVlLhzwunVdqjcN5osvLrr3Lk7bqkPXglNKHnl+WX6+kLXr7R6mSLU1TZU9Lwe7qg1zKRC0+7BJiWau8dw6sp9d+BteFJrylV5WGywp4hpcg1f2wz3O6Zt2bFx4W3Sb/MU4uZI1IlLKW7Rm5V1UmPrlfXEL362trCmxN+f0vEf0fd/oeqP6PpLFNfb/2X6/G2KO6d6SWI3A6MLniP8khTF6IX/+/N1hbdZh1/OQ8bkIkRH7x9oq8u7a2Fb44eBN0BL34OH8zvH9tnOP4r/Mzuq6foS0jfyl5KueTblZz8Aa4dy0fWkRlcAAAAASUVORK5CYII=","e":1},{"id":"13","w":33,"h":21,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAVCAMAAAD/0XfmAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHr/7WAAAAE3RSTlMAPehpg5Me9LpNEswE2S2lClcs0bwCsQAAAIlJREFUKM+d0tEOwiAMQNFCC2032Jj8/7+6aVRwxSXe5xOgoQCg4lm2BMOoPso4MlpfeSymkPrJ02QIrm1smF7sJsQft9hGq9G6GNN+Ja49Zf7bzNoYJ7Zx1wbbJy+rRW7d5DHwSYROJMPI6Rcm4gsBUMg3gsyNKPg2HAd7lTA/gY6XM22S8/HLd02hF+CKGz3EAAAAAElFTkSuQmCC","e":1},{"id":"14","w":618,"h":311,"u":"","p":"data:image/png;base64,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","e":1},{"id":"15","w":618,"h":266,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"形状 599","parent":5,"refId":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[52.5,-33,0],"ix":2},"a":{"a":0,"k":[23.5,59,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"形状 597","parent":5,"refId":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[44,-31.5,0],"ix":2},"a":{"a":0,"k":[47,56.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[110,100,100]},{"t":60,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"形状 596","parent":5,"refId":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[29,-41.5,0],"ix":2},"a":{"a":0,"k":[0,52.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[70,100,100]},{"t":60,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"矩形 529","parent":5,"refId":"3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,-40,0],"ix":2},"a":{"a":0,"k":[2.5,55,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"组 105","parent":42,"refId":"4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[83.5,125.552,0],"to":[0,0.167,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.834,"s":[83.5,126.552,0],"to":[0,0,0],"ti":[0,0.167,0]},{"t":120,"s":[83.5,125.552,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[27.5,28,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"椭圆 595","parent":42,"refId":"5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[84.5,122.052,0],"ix":2},"a":{"a":0,"k":[38.5,17.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":59.834,"s":[104,104,100]},{"t":120,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"阳伞__m","parent":42,"refId":"6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[446,112.5,0],"ix":2},"a":{"a":0,"k":[43,56,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"海","parent":42,"refId":"7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[232.5,171,0],"ix":2},"a":{"a":0,"k":[231.5,90.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"毯子__m","parent":42,"refId":"8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[446,135.5,0],"ix":2},"a":{"a":0,"k":[54,28,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"椭圆 502","parent":42,"refId":"9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[356,53,0],"ix":2},"a":{"a":0,"k":[7,2.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"组 115","parent":42,"refId":"a","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[356,37,0],"ix":2},"a":{"a":0,"k":[10,11.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"组 116","parent":42,"refId":"b","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[351,48.5,0],"ix":2},"a":{"a":0,"k":[8,7,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"形状 605","parent":42,"refId":"c","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[6]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[356.5,42,0],"ix":2},"a":{"a":0,"k":[-0.5,21.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"组 117","parent":42,"refId":"d","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[322.5,44,0],"ix":2},"a":{"a":0,"k":[13.5,12.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"组 118","parent":42,"refId":"e","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1,"s":[327.5,31,0],"to":[0,0.104,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.724,"s":[327.5,31.625,0],"to":[0,0,0],"ti":[0,0.104,0]},{"t":39.779,"s":[327.5,31,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[7.5,7.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":2,"nm":"形状 602","parent":42,"refId":"f","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[319,53.5,0],"ix":2},"a":{"a":0,"k":[10,2,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":2,"nm":"形状 601","parent":42,"refId":"g","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[-3]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[322,43.625,0],"ix":2},"a":{"a":0,"k":[15,18.125,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":2,"nm":"组 106","parent":29,"refId":"h","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[-2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[22.75,-4,0],"ix":2},"a":{"a":0,"k":[82.75,33,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":2,"nm":"组 107","parent":29,"refId":"i","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[-1]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[26.25,-5.75,0],"ix":2},"a":{"a":0,"k":[56.25,65.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":2,"nm":"组 108","parent":29,"refId":"j","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[-2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[21.75,0.75,0],"ix":2},"a":{"a":0,"k":[64.75,15.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":2,"nm":"组 109","parent":29,"refId":"k","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[1]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[23.75,-3.5,0],"ix":2},"a":{"a":0,"k":[31.75,7.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":2,"nm":"组 110","parent":29,"refId":"l","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[27.75,-6.5,0],"ix":2},"a":{"a":0,"k":[4.75,20.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":2,"nm":"组 111","parent":29,"refId":"m","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[21.75,-5,0],"ix":2},"a":{"a":0,"k":[1.75,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":2,"nm":"组 114","parent":29,"refId":"n","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.724,"s":[1]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[29.5,1.5,0],"ix":2},"a":{"a":0,"k":[5.5,68.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":2,"nm":"椰子.png","cl":"png","parent":29,"refId":"o","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[154]},{"t":64,"s":[-54]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[14.25,7.967,0],"to":[-0.498,-0.105,0],"ti":[-0.602,-0.083,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":10,"s":[11.262,7.339,0],"to":[0.602,0.083,0],"ti":[-2.036,-0.111,0]},{"i":{"x":1,"y":1},"o":{"x":0.167,"y":0.167},"t":16,"s":[17.861,8.464,0],"to":[3.899,0.213,0],"ti":[1.564,-1.137,0]},{"i":{"x":0.778,"y":0.928},"o":{"x":0.333,"y":0},"t":21,"s":[21.004,9.122,0],"to":[-28.056,20.396,0],"ti":[0.141,-23.134,0]},{"i":{"x":0.739,"y":0.582},"o":{"x":0,"y":0},"t":40,"s":[-13.686,139.303,0],"to":[-1.774,-2.013,0],"ti":[0.838,0.594,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0,"y":0},"t":42,"s":[-19.217,136,0],"to":[-1.873,0.594,0],"ti":[0.876,-2.076,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43.5,"s":[-24.455,140.493,0],"to":[-7.604,-0.3,0],"ti":[16.726,0.319,0]},{"t":64,"s":[-73.763,140.457,0]}],"ix":2},"a":{"a":0,"k":[13,13,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":2,"nm":"影子.png","cl":"png","refId":"p","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":21,"s":[0]},{"t":40,"s":[100]}],"ix":11},"r":{"a":0,"k":-16.667,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":40,"s":[574.512,712.22,0],"to":[-1.794,0,0],"ti":[3.762,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":42,"s":[566.361,712.22,0],"to":[-2.879,0,0],"ti":[4.408,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":43.5,"s":[562.512,712.22,0],"to":[-10.167,0,0],"ti":[8.167,0,0]},{"t":64,"s":[513.512,712.22,0]}],"ix":2},"a":{"a":0,"k":[13,6,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":21,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":40,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":42,"s":[80,80,100]},{"t":43.5,"s":[90,90,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":2,"nm":"组 112","parent":29,"refId":"q","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[23,12.5,0],"ix":2},"a":{"a":0,"k":[25,7.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":2,"nm":"组 113","parent":42,"refId":"r","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":11,"s":[-1]},{"t":21.272,"s":[-2]}],"ix":10},"p":{"a":0,"k":[537.5,107.5,0],"ix":2},"a":{"a":0,"k":[12.5,152,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":11,"s":[100,97,100]},{"t":20.8,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":2,"nm":"组 119","parent":42,"refId":"s","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[315.5,6,0],"ix":2},"a":{"a":0,"k":[179.5,114.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":2,"nm":"组 120","parent":42,"refId":"t","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[163.25,-66.25,0],"ix":2},"a":{"a":0,"k":[1.25,29.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":2,"nm":"组 121","parent":42,"refId":"u","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[1]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[162.75,-66.25,0],"ix":2},"a":{"a":0,"k":[10.75,59.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":2,"nm":"组 122","parent":42,"refId":"v","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[3]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[164.5,-64,0],"ix":2},"a":{"a":0,"k":[1.5,11.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":2,"nm":"组 123","parent":42,"refId":"w","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[163.25,-63.5,0],"ix":2},"a":{"a":0,"k":[46.25,9,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":2,"nm":"组 124","parent":42,"refId":"x","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-1]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[161.75,-65.75,0],"ix":2},"a":{"a":0,"k":[81.75,20.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":2,"nm":"组 125","parent":42,"refId":"y","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-2]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[163.75,-66.75,0],"ix":2},"a":{"a":0,"k":[79.75,44.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":2,"nm":"形状 633","parent":42,"refId":"z","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-3]},{"t":39.779,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[162,-65.75,0],"ix":2},"a":{"a":0,"k":[65,56.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":2,"nm":"形状 644 拷贝","parent":42,"refId":"10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[155.5,-51,0],"ix":2},"a":{"a":0,"k":[13.5,6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":2,"nm":"形状 644","parent":42,"refId":"11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174,-52,0],"ix":2},"a":{"a":0,"k":[13,6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":2,"nm":"组 126","parent":42,"refId":"12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[170.5,11.5,0],"ix":2},"a":{"a":0,"k":[14.5,74,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":2,"nm":"形状 569 拷贝 2","parent":42,"refId":"13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[161.5,74,0],"ix":2},"a":{"a":0,"k":[16.5,10.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":2,"nm":"底4__m.png","cl":"png","refId":"14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[374,771,0],"to":[0,-1.833,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.834,"s":[374,760,0],"to":[0,0,0],"ti":[0,-1.833,0]},{"t":120,"s":[374,771,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[309,155.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":2,"nm":"矩形 3 拷贝.png","cl":"png","refId":"15","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.85],"y":[0.994]},"o":{"x":[0.09],"y":[0.006]},"t":0,"s":[100]},{"i":{"x":[0.85],"y":[1]},"o":{"x":[0.09],"y":[0.006]},"t":60,"s":[70]},{"i":{"x":[0.85],"y":[1]},"o":{"x":[0.09],"y":[-0.186]},"t":120,"s":[100]},{"t":180,"s":[100]}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,812,0],"ix":2},"a":{"a":0,"k":[309,133,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.85,0.85,0.85],"y":[0.991,0.991,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.85,0.85,0.85],"y":[1,1,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":90,"s":[96,96,100]},{"t":180,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0}],"markers":[],"tiny":0.55}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"v": "5.6.10",
"fr": 29.9700012207031,
"ip": 0,
"op": 28.0000011404634,
"w": 1920,
"h": 1080,
"nm": "circle 54",
"ddd": 0,
"assets": [
{
"id": "image_0",
"w": 396,
"h": 396,
"u": "",
"p": "data:image/png;base64,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",
"e": 1
}
],
"layers": [
{
"ddd": 0,
"ind": 1,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
667.188,
823.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.47,
0.47,
0.667
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.205,
0.205,
0.333
],
"y": [
0.772,
0.772,
0
]
},
"t": 4,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 14,
"s": [
55.1,
55.1,
100
]
},
{
"t": 22.0000008960784,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 4.00000016292334,
"op": 90.0000036657752,
"st": 0,
"bm": 0
},
{
"ddd": 0,
"ind": 2,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
688.188,
271.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.47,
0.47,
0.667
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.205,
0.205,
0.333
],
"y": [
0.772,
0.772,
0
]
},
"t": 4,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 14,
"s": [
55.1,
55.1,
100
]
},
{
"t": 22.0000008960784,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 4.00000016292334,
"op": 90.0000036657752,
"st": 0,
"bm": 0
},
{
"ddd": 0,
"ind": 3,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
1182.188,
815.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.47,
0.47,
0.667
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.205,
0.205,
0.333
],
"y": [
0.772,
0.772,
0
]
},
"t": 3,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 13,
"s": [
55.1,
55.1,
100
]
},
{
"t": 21.0000008553475,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 3.00000012219251,
"op": 93.0000037879676,
"st": 3.00000012219251,
"bm": 0
},
{
"ddd": 0,
"ind": 4,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
1218.188,
269.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.47,
0.47,
0.667
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.205,
0.205,
0.333
],
"y": [
0.772,
0.772,
0
]
},
"t": 2,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 12,
"s": [
55.1,
55.1,
100
]
},
{
"t": 20.0000008146167,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 2.00000008146167,
"op": 92.0000037472368,
"st": 2.00000008146167,
"bm": 0
},
{
"ddd": 0,
"ind": 5,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
586.188,
523.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.47,
0.47,
0.667
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.205,
0.205,
0.333
],
"y": [
0.772,
0.772,
0
]
},
"t": 6,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 16,
"s": [
55.1,
55.1,
100
]
},
{
"t": 24.00000097754,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 6.00000024438501,
"op": 96.0000039101601,
"st": 6.00000024438501,
"bm": 0
},
{
"ddd": 0,
"ind": 6,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
962.188,
143.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.47,
0.47,
0.667
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.205,
0.205,
0.333
],
"y": [
0.772,
0.772,
0
]
},
"t": 7,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 17,
"s": [
55.1,
55.1,
100
]
},
{
"t": 25.0000010182709,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 7.00000028511585,
"op": 97.000003950891,
"st": 7.00000028511585,
"bm": 0
},
{
"ddd": 0,
"ind": 7,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
1274.188,
545.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.75,
0.75,
0.75
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.21,
0.21,
0.21
],
"y": [
0.77,
0.77,
0
]
},
"t": 8,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 18,
"s": [
55.1,
55.1,
100
]
},
{
"t": 26.0000010590017,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 7.00000028511585,
"op": 97.000003950891,
"st": 7.00000028511585,
"bm": 0
},
{
"ddd": 0,
"ind": 8,
"ty": 2,
"nm": "图层 1.png",
"cl": "png",
"refId": "image_0",
"sr": 1,
"ks": {
"o": {
"a": 0,
"k": 100,
"ix": 11
},
"r": {
"a": 0,
"k": 0,
"ix": 10
},
"p": {
"a": 0,
"k": [
946.188,
921.622,
0
],
"ix": 2
},
"a": {
"a": 0,
"k": [
198,
198,
0
],
"ix": 1
},
"s": {
"a": 1,
"k": [
{
"i": {
"x": [
0.75,
0.75,
0.75
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.21,
0.21,
0.21
],
"y": [
0.77,
0.77,
0
]
},
"t": 7,
"s": [
18.517,
18.517,
100
]
},
{
"i": {
"x": [
0.833,
0.833,
0.833
],
"y": [
1,
1,
1
]
},
"o": {
"x": [
0.167,
0.167,
0.167
],
"y": [
0,
0,
0
]
},
"t": 17,
"s": [
55.1,
55.1,
100
]
},
{
"t": 25.0000010182709,
"s": [
0,
0,
100
]
}
],
"ix": 6
}
},
"ao": 0,
"ip": 7.00000028511585,
"op": 97.000003950891,
"st": 7.00000028511585,
"bm": 0
}
],
"markers": []
}
{"v":"5.6.3","fr":30,"ip":0,"op":120,"w":750,"h":1624,"nm":"FILA商店svga","ddd":0,"assets":[{"id":"0","w":74,"h":29,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAdCAMAAAA6hQoMAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAZlBMVEVHcEwYEQ8XDw8YERAYERAbFRMYEA8YERAZEBAYERAYERAYERAYEQ8XEA8BAQH5+c+DtIULCAg9QzUvMCcjIRxLWETb2rZWa1FxmHF6p3xjhGLs68PMyqmJhnCdmoF1cF+BsYO2tJa2eiGiAAAADXRSTlMAcCPxVP422BKJoOi9qQ05AwAAAi9JREFUSMetlomSoyAQhj0gitqJcgTUeL3/S25zmNFJ3E2t+aZqqiLw83dDA1EUuMSMxeSSJHmeR/8mz5PkghCC48h2BMkAKACHQJqm2Url/lbKNKXwG1o8xQoAMQ3DNHIhpJT7bvAGKqUQnCul9TAMikKWr0pyvO3o+/4eeHjWn9hye+HOofDRgXzcznGn1NnKYLydRQGxawfitNJtAIZSMQznpUaXLPYdKe9q+laA38hVL1zaoxL4uc3wmCj4zcBw+/Lx/p9+lknY/e+3aF666uDT+Og/l8AyWMaJ25ESTSVOKs6AKu4rT3A9DeOy2ErpA758lmUZR6zTSSku5LM4qVAGT4HYCiWZ+6Jno7mgR/XrP9NtQWM9K921tRFAWYgOmmuDLnVb13NrOq0V9yfEBnsO+JNAd50x7VwHOrSUEh8dwBVpXHSqM88+v3ltsHH4tFwiv3zN1dE0q3H0jVPj3KZ1zNatxViwBX3/5MuGxIKrIPVUO8iVbaF0fxo2jY/IS+XpRgu/8rZT3E56pCdtIjHf9vAOY0KAEaFbX6Bqjd0xndsZrrsOKCLqWgUpCDvBaaXwHNZgJ+xJZ/x/ICVmJ9XKsPJQks1FVNjg/UgAbbjoZhXcv4BVYZRqzZqAlO3vuoSVPos28QIXSMJ7U06LciVC/qv4zaVJWLZZqQOlxk/myQpyePnmhFUlfEBa/k3mR++CV3dR4S38IpBVVWEfA588BA7eBfiQSD54SPwBBx1sArUgQnwAAAAASUVORK5CYII=","e":1},{"id":"1","w":19,"h":24,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAYCAMAAAAvSTY9AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAWlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADegZ0AAAAfEhYyHSO/b4euZXxFKDEMBwhiOUWQVGZyQlGaWWzTepVh5u7pAAAAEXRSTlMAPfSDIRH6MQfjoFKQ1bVmzalKv6EAAAC/SURBVBjTbZFZEoQgEENRQcS9gwrqeP9rDosL1kw+X5Em6WYsShZ1kbFUoodXLx7EFey6rRaKX6gaoWcimjW66mQtrEcOWrSns8RGUR+U/Hw20SWDOkzLsdxsQen/bqDp0YTGsRp7wvZg7hKrNys3rgSlshCMv8YRaUgmkyTxk+wv+/VyH/lI0BFC93fb2Hh0+YbXwAmD79thTWqosEGZw8Qqs0Eu4wIzBWizGg2o+06iUOFGqhDp5WQzNKeNfQFJghZBUryo/wAAAABJRU5ErkJggg==","e":1},{"id":"2","w":2,"h":12,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAMAgMAAAA4zPSAAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAACVBMVEVHcEwAAAAAAAAWawmTAAAAAnRSTlMAxOqay5EAAAAOSURBVAjXYxBh0MACRQAUuAG5vsbFRQAAAABJRU5ErkJggg==","e":1},{"id":"3","w":18,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAMAAAC3SZ14AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAUVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+qpACBgUMIRw6oYgUOTAzjngcT0MrdWMHFBEwhHAfVkkL3c5cAAAAD3RSTlMAFc7nQZKjegswX9sd9cZuwhnfAAAAo0lEQVQY01WQVxaEIBRDKYqAJXRx9r/QGaTo5POeFxJCCFFiZfNEXpp2FB3qQQwhXp8Mu3RCYb0xxidgbkjBmVunhegoV2Qui+qVFr6xE6jBB86GzAerLGhB6Mi4GkF3xI4idlrY/DoLNYHy57UL/A7QsMOaUT8m4Pxw6tqNDZZaXbKtyPEfkY3BJn83G8tJAdiQHLh8TXmUJbl6z0s2vejfzReSBg4SftumvwAAAABJRU5ErkJggg==","e":1},{"id":"4","w":17,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAMAAABcfiZ7AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAVFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA+qpAUOTAKHRk7ookmaFgGEQ41lH0rdmQwhXAeUkYzjXci0PTQAAAAEHRSTlMA+AWjYCiCFu4wx9TgI5FFVhiHBgAAAJxJREFUGNNNkFcWhSAMREFQim0iiOXtf59PEKPzl3tm0oR45Cbfq5ZLYRSyrGPDAJzHb4F/gEXYiCgCpoDRYomUFVBijcdC9CUdQqwkldQocVSwYcgWxRk6ofImEhtxaC5d2LLeIY+9gpig82iJZ1Dd2CBxRpZDW4Qb7CiZ7EF1oKtX9liJrqsZCA2EcH1Gv8/S9qonIz5qXNu81R/lVw2FrY+CyQAAAABJRU5ErkJggg==","e":1},{"id":"5","w":23,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAANCAMAAAB1uQVvAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLcPMfAAAAEnRSTlMAKj4Ja4f4EeBl7spSu50ErRpKiWRfAAAAYUlEQVQY02WPWw7AIAgEfYCKj6rc/7BtGo2o87kTyK5SHqirGx+YXTNXTvwTwO858MA9+vwzSWSFQGEiiqOayzJccl1KY1wmoOhgKQmzlTOPmwKOkTA60LXTNHf+GXT6tr+4WAe+Ay+GjQAAAABJRU5ErkJggg==","e":1},{"id":"6","w":367,"h":256,"u":"","p":"data:image/png;base64,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","e":1},{"id":"7","w":55,"h":96,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAABgCAMAAACOjho7AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcyHMAAABPZToTGQ53mFeGq2IjLRo+UC6TvWxhfUd59+YdAAAACnRSTlMA3sJpiw2i7zJM0un0zAAAAglJREFUWMOd2NmygyAMgOGKqJgAbu//rgfUnrqwJOGynQzf1PEv+vnklzEfyeqGoZPMjYijZK5H7EVMRAl0xHmWQHu0VgANzGnCQcIEcGgETACLWsAE8NhImALozgRYmNCDyYeeTDb0ZEZoK2BGqJIwARA7AZMH/TEBNgb0woSVAb0wAWYy9MrkQK9MDvTGjNBRwIzQXsAEmIhZezDJ0Acz1qIXMHeohBlvwlHApGXtzaTVIsEk1SLBpGRtRPceI0CTTAI0yaxD08x61jLMmDUjYNaylmPWapFlVmqRZZazlmeWoTrLLEMLzBK0xCxlrcQsZW1AX5jLZs0UmfmslZn5rFWYOWiNmYPWmDloU2Oma1FnpvtbZ6azRmCmoBRmKmsaF8LcG0piwvqE0pjvrNGY71rQmK9jJZX5hFKZTyiZec8anXnPGp15h9KZNyiHea0Fh3mtBYd56S+P+YPymD8oj/mfNS7ze6zkMr9Z4zLPWvCZR9b4zCNrfOYBbXBjz21hrkU3Mcem/UWQwnnljbn9OnRN4gRfHjvuXDNwdtwQ1XnjmgYd8Udd7fVlVacQLWVL7/Aeeo3ottqkn4Px8QdowpbOTiVh2KtJHO3GMImz9YldV2/DVmEqfUAzegjfolvs5v20hjV5v9nFxU+HvvQsZ3Tc9bWUHuuPuKbVvVLNEFajVK/b1JPDHxTKdJUVByStAAAAAElFTkSuQmCC","e":1},{"id":"8","w":15,"h":37,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAlBAMAAABvz64pAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAC/qH8AAABDOy0sJx1tYEhsX0huYUl0sQa4AAAAB3RSTlMEWvhQz3BtObhEigAAAERJREFUGNNjYDDR6OhQMWBgYOsAgTYGBqae8vLymiYGBovlQEb5CgMGiekgxgyBEc2AhwZTN5CuBoYPKzjEWhkYYGEIAEuJc7Q/Uhk3AAAAAElFTkSuQmCC","e":1},{"id":"9","w":31,"h":16,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAQBAMAAAAc1rnfAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAG1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABp4cHsAAAACHRSTlMA8m7UETuhjncK1+YAAABaSURBVBjTY2AXTGVAARUdHUYOyAISHR0dYgFoAh3NKihagKARYRA7WAmyQU4WEBGEQayJEBGEQSzKHegGheE0SJwB3aACBjSDBJDcDDYIWQBsUAGKz1kTxRkA++gvAdyWTCIAAAAASUVORK5CYII=","e":1},{"id":"a","w":68,"h":118,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAAB2CAMAAABGf8UmAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcyHMBAQATGA6Uvm1jf0krOCB2mFc6SitKXzaHrWNVWUuiAAAACnRSTlMAtyk+512UFXnPV+s4+AAAAoJJREFUWMOl2duCgiAQgOEUPDCj4uH933Wh1TIVmAO3bbN+aX9hr1dpdc1Lv1rs9UMsOvUMg4idXoPY6DUrVmrNMKo9La7gtR6LM0xKT9AAbIhqDWg9UQOwYqvVRI9VawAGNFqNzrNrdJ5Do/IcGo3nowGYxZ6vJnpqrQZgEUbypIkep9YAoMxz1kg9PxoIUXFqTfR0Wk2MSq/VgCiSVw1Iou8uGkkk66tG4umvmnf0O925kXgeNHxPj8t9CDeSTxpuJB813Eg+arieZw3Pk9DwPAkNL/ouoeF4khqOJ6nhRD+toX+IZTT06Gc0dE9OEyNZazVUT1ZDjUpWQ4x+jQjZRYlkQUPzFDQkT9CMoPUUNRRPUUPYuRA0ZQ9BU46Kw6k8pBD94pVGiSRJU/KQNAUP6dyUPERN3kPUZD/EyJpc9MmaXCTJmkz0O7omvXNhaNIehia5c2FpUpFkaVJRYWkSkeRpEp4ePYDWw9Q8eriax50LW/PkqbiaGJVKq3mIpEBzj6RAc4ukRHPzNBLN1SPSXDwyzSX6Qs2vR6iJnl6r+Ym+WAPj90NMrDlFX645RV+uOd2uUmg+Ho3mE0mV5oi+SrNHUqfZPTrN7lFq/j2t8kjm+HWns6pDCe+e9n2Ky1uc9Ay/X/ctDpv8grXd8S4WTgnHYY8UdE42ZRu+M8KUCgWv7oToustPhgvvwt083nYJjUVc6WPGFdHevylF0jDRxmxhBLaP+3TjwkNr8ZoZpwDBKnkrxoSjwWGd08ezvSdgm72bU/c2/pFfpvly0sdtWv0QH6ya8g0U00dWXMPg/RKW9//PDstSJuwvsulbZ/FnWVf1jeCHlc4Y08RlTJ39/38S3azwfl4TfgAAAABJRU5ErkJggg==","e":1},{"id":"b","w":14,"h":46,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAuCAMAAAAvOtjVAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/qH+0nniGdlmYhWUyLCFhVUAZFhGJ91PfAAAAC3RSTlMAMJN+y+UMtPBFa47w3FIAAABXSURBVCjP7dI7EoAgFEPRICA8w3//ixUQnbFwB97uTNoAgJKZ2jFguPIC7JatzBop0CwxXFU6OKalEGnf9D9/fnJjvZn7c4SseZYaNfr8ZMYrxZmZO4ATdNwbzSYwh5MAAAAASUVORK5CYII=","e":1},{"id":"c","w":24,"h":11,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAALCAMAAABS673/AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAM1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbQS4qAAAAEHRSTlMAW4bOHXKk7pAHMUHB20+wB3UKxwAAAFZJREFUGNNtjkkOwCAMxFgSEnb+/9oCqqrQ4Kslz5jIRB3BKHhsKrd4ChofBdNdTChYOFMC7/KqznGlBvFW2Xml+A2CDb8xcSNhuYtVbVzPlACw0xx/AKIsCJ+2DxmDAAAAAElFTkSuQmCC","e":1},{"id":"d","w":101,"h":101,"u":"","p":"data:image/png;base64,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","e":1},{"id":"e","w":45,"h":31,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAfCAMAAABEdrQOAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAaVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABksHUJDwofMyQrTTNcomxIgFURHBNWmGVRj14YJBxDc043YEBhq3I8akZnoXhpjXlpcng1LzxYU2OpyQERAAAAD3RSTlMAdL6YCdcY6j31g2dRJqcahATdAAABfklEQVQ4y4VUi5KDIAxUFF9VIygoim3v/v8jL9pelYB3O+OMo8vOZkkSRRuyIk4Y5zmCc5ZUdRNdILu1OXgoWVwEyPH2T8h+VdM4IMZJrb0U29c8aQJsMXUehrnXeKDNCL3IQXZBjD06uhF6k0MfpncD8tuUqAOoC3o3C2CEXoG5YnejR09zmP+it674zREfXV+TgNgVL2E8fi9gHP4MpRt8co7FYmnydLrrgZNYxFnNLgCLPYIU4MbOSZ2jBD2dvOSp2wDST7r/yBuoSJ20Wx5fh7wi4onfLfdvAcv7XbspZr54Z58G5LC/riSWCrT1LvLjxgpwpiPloVZEN0K9Mk/czEtYA/Sn3j9PpE7slmDnovllr7OmnfvJgJhffCv7kL4zcKK5SzSjSCqIugSx+tEgXVkAOtJRwwD04ulbIxSUmb9gao6bQc4DnSDhtsrBZ9vu0biQhvOIhKR/t1352nDCGCml0bi8quga6bZIzwuSZdF/SLOiKGp8mv0ifwC6pTo1/Lb8qAAAAABJRU5ErkJggg==","e":1},{"id":"f","w":42,"h":28,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAcCAMAAAAgPt3ZAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAWlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAADBAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABksHVbnmoPGxIIDwlMhFlWkmRgqXA7aUUgNyYxVzomQy0uRjYXKRvaEpNoAAAAEHRSTlMA1GUfLL0I/hLm9VKAlkCmieyrQAAAAVdJREFUOMt9lNmWgyAQRMUlLG4lIIjK///maDIH0EjqTbmnqd4oike96qEtD7VD/Spyeg1dTziiKOnbJ7wexedcebcdcl6dn7y7w3Vz/Fb7MsspyprVH/BwITsKvaRU0KwgWATZEXK107M28IgyAj1nwGmBqFNSyRwpNcpYouYHOe1ootEeOk9KSuP1Lejdp1y8CTn10SjHcquOo/D/9xiIKqAjfMrZRUHvJjqNQWvAJDevGn6JBbYU0WmDPRyYDXDztaZNklPI3jjQ3Vxta7QBJVgTUH41igRygH4bk9sDOE0qadT4DmpXivvVn6A8jCoTkO8pc+a5+9FpCTfZDepxqqy/dn81KjOo1oHHRp1Z6cygHq54na4Jz4zf7ABSXTcKaluX2SStNPPqNCDue1qdS0/PFdZaKaU1/ew/6djX7rOh7MaGiPBICNL0ZVX8EmPVIZZ7ef4AWDo1hRMaCE4AAAAASUVORK5CYII=","e":1},{"id":"g","w":13,"h":140,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAACMBAMAAABVKT4yAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJ1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4ZYc4MEAjHihkVHDX3OL6AAAACHRSTlMAeEseY7TjncIGXlYAAABZSURBVDjLY2BgMBExYAAC9o6OVhAjont1RzIDA2PHyZmnWxkY2HpmzpzTYcBg0Tlz5swdDgwaO4H0CoFRepQepUcgDSsHYOUCuJxoR5QbQIGOdnCBwuQEpACZY88yL7TjhwAAAABJRU5ErkJggg==","e":1},{"id":"h","w":36,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAUCAMAAADSpG8HAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLcPMfAAAAEnRSTlMAlTSF1a/EKPIQbgddRvil6RreyIxEAAAAiklEQVQoz4WSWw7EIAgAfRZ8VC33P+yuyabbANr5nowKGgMRMZ5mCwyaDH9tpEg/2iaH9CfkRW7Qk9bVXCdGyEleHLn1zTlhRZLI3OWH1NCKXD2U3FELP1XPAdOKnhMzASvfSl5MRMs5ZbyO57y6qpTDU7Krvbvebqmu/9CdC2X7Ic+Zi8m8kGAqHwb9FAsa1JfbAAAAAElFTkSuQmCC","e":1},{"id":"i","w":618,"h":311,"u":"","p":"data:image/png;base64,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","e":1},{"id":"j","w":618,"h":266,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"滑板5","parent":39,"refId":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[215,165,0],"ix":2},"a":{"a":0,"k":[37,14.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"椭圆 809","parent":39,"refId":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[-3.185]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":33.333,"s":[-3.185]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44,"s":[-8.185]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":62,"s":[7.815]},{"t":70,"s":[-3.185]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[467.139,133.209,0],"ix":2},"a":{"a":0,"k":[10,22,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":16,"s":[0,0,100]},{"t":23,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"形状 1005","parent":39,"refId":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[4]},{"t":70,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[467.75,144.192,0],"ix":2},"a":{"a":0,"k":[1,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":16,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":23,"s":[105,105,100]},{"t":25,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"椭圆 808","parent":39,"refId":"3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[-3]},{"t":50,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[466.75,150.755,0],"ix":2},"a":{"a":0,"k":[15,17.562,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.732,0.732,-27.125]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":8,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-1.875,-1.875,9.375]},"t":14,"s":[105,105,100]},{"t":16,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"椭圆 807","parent":39,"refId":"4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[3]},{"t":50,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[467.25,151.005,0],"ix":2},"a":{"a":0,"k":[2.5,17.812,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.6,0.6,-40.983]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-2.799,-2.799,13.994]},"t":10,"s":[105,105,100]},{"t":12,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"形状 1004 拷贝 5","parent":39,"refId":"5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":18,"s":[0]},{"t":25,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[466.625,152.192,0],"ix":2},"a":{"a":0,"k":[19.875,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":40,"s":[102,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[93,100,100]},{"t":70,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"椭圆 806","parent":39,"refId":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[-3.185]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":29.333,"s":[-3.185]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":39.333,"s":[-6.185]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":57.333,"s":[-1.185]},{"t":66,"s":[-3.185]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[119.139,116.664,0],"ix":2},"a":{"a":0,"k":[10,22,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":12,"s":[0,0,100]},{"t":19,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"形状 1004","parent":39,"refId":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[4]},{"t":66,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[119.75,127.647,0],"ix":2},"a":{"a":0,"k":[1,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":12,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":19,"s":[105,105,100]},{"t":21,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"椭圆 805","parent":39,"refId":"3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[-3]},{"t":46,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[118.75,134.209,0],"ix":2},"a":{"a":0,"k":[15,17.562,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.732,0.732,-27.125]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-1.875,-1.875,9.375]},"t":10,"s":[105,105,100]},{"t":12,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"椭圆 804","parent":39,"refId":"4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[3]},{"t":46,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[119.25,134.459,0],"ix":2},"a":{"a":0,"k":[2.5,17.812,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.6,0.6,-40.983]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-2.799,-2.799,13.994]},"t":6,"s":[105,105,100]},{"t":8,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"形状 1004 拷贝 4","parent":39,"refId":"5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[0]},{"t":21,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118.625,135.647,0],"ix":2},"a":{"a":0,"k":[19.875,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":36,"s":[102,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":56,"s":[93,100,100]},{"t":66,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"椭圆 803","parent":39,"refId":"4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[3]},{"t":46,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[526.75,125.688,0],"ix":2},"a":{"a":0,"k":[2.5,17.812,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.6,0.6,-40.983]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-2.799,-2.799,13.994]},"t":6,"s":[105,105,100]},{"t":8,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"椭圆 802","parent":39,"refId":"3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[-3]},{"t":46,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[526.25,125.438,0],"ix":2},"a":{"a":0,"k":[15,17.562,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.732,0.732,-27.125]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":4,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-1.875,-1.875,9.375]},"t":10,"s":[105,105,100]},{"t":12,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"形状 798","parent":39,"refId":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[4]},{"t":66,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[527.25,118.875,0],"ix":2},"a":{"a":0,"k":[1,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":12,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":19,"s":[105,105,100]},{"t":21,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"椭圆 801","parent":14,"refId":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":29.333,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":39.333,"s":[-3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":57.333,"s":[2]},{"t":66,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[1,1,0],"ix":2},"a":{"a":0,"k":[10,22,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":12,"s":[0,0,100]},{"t":19,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"形状 1004 拷贝 3","parent":39,"refId":"5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[0]},{"t":21,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[526.125,126.875,0],"ix":2},"a":{"a":0,"k":[19.875,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":26,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":36,"s":[102,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":56,"s":[93,100,100]},{"t":66,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":2,"nm":"房子","parent":39,"refId":"6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[294.5,32.5,0],"ix":2},"a":{"a":0,"k":[183.5,128,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":2,"nm":"形状 791","parent":39,"refId":"7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[93.5,83.5,0],"ix":2},"a":{"a":0,"k":[27.5,96,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":2,"nm":"圆角矩形 791","parent":39,"refId":"8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[94.5,85,0],"ix":2},"a":{"a":0,"k":[7.5,18.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":2,"nm":"形状 1002","parent":39,"refId":"9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[83.5,96.5,0],"ix":2},"a":{"a":0,"k":[15.5,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":2,"nm":"形状 791 拷贝","parent":39,"refId":"a","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[130,75.5,0],"ix":2},"a":{"a":0,"k":[34,118,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":2,"nm":"圆角矩形 791 拷贝","parent":39,"refId":"b","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[132,70.5,0],"ix":2},"a":{"a":0,"k":[7,23,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":2,"nm":"形状 1003","parent":39,"refId":"c","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[124,88,0],"ix":2},"a":{"a":0,"k":[12,5.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":2,"nm":"组 141","parent":39,"refId":"d","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[3]},{"t":20,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[513.25,-25.5,0],"ix":2},"a":{"a":0,"k":[51.25,50,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":2,"nm":"组 142","parent":39,"refId":"e","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":29.333,"s":[-4]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[510,70.75,0],"ix":2},"a":{"a":0,"k":[42,27.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":2,"nm":"组 143","parent":39,"refId":"f","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[-2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":29.333,"s":[4]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[520.5,62.75,0],"ix":2},"a":{"a":0,"k":[0.5,23.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":2,"nm":"圆角矩形 1","parent":39,"refId":"g","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.5,38.5,0],"ix":2},"a":{"a":0,"k":[6.5,70,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":2,"nm":"形状 562 拷贝","parent":39,"refId":"h","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[501,98.5,0],"ix":2},"a":{"a":0,"k":[18,10,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":2,"nm":"底__m.png","cl":"png","refId":"i","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[374,771,0],"to":[0,-1.833,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[374,760,0],"to":[0,0,0],"ti":[0,-1.833,0]},{"t":120,"s":[374,771,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[309,155.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":2,"nm":"矩形 3 拷贝.png","cl":"png","refId":"j","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.85],"y":[0.991]},"o":{"x":[0.09],"y":[0.009]},"t":0,"s":[100]},{"i":{"x":[0.85],"y":[1]},"o":{"x":[0.09],"y":[0.009]},"t":60,"s":[70]},{"t":120,"s":[100]}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,812,0],"ix":2},"a":{"a":0,"k":[309,133,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.85,0.85,0.85],"y":[0.991,0.991,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.85,0.85,0.85],"y":[1,1,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":60,"s":[96,96,100]},{"t":120,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0}],"markers":[],"tiny":0.55}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{"v":"5.6.10","fr":29.9700012207031,"ip":0,"op":28.0000011404634,"w":1920,"h":1080,"nm":"circle 54","ddd":0,"assets":[{"id":"image_0","w":396,"h":396,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[667.188,823.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[688.188,271.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1182.188,815.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":3,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":13,"s":[55.1,55.1,100]},{"t":21.0000008553475,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":3.00000012219251,"op":93.0000037879676,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1218.188,269.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":2,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":12,"s":[55.1,55.1,100]},{"t":20.0000008146167,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":2.00000008146167,"op":92.0000037472368,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[586.188,523.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":6,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":16,"s":[55.1,55.1,100]},{"t":24.00000097754,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":6.00000024438501,"op":96.0000039101601,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[962.188,143.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274.188,545.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":8,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":18,"s":[55.1,55.1,100]},{"t":26.0000010590017,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946.188,921.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0}],"markers":[]}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
{"v":"5.6.10","fr":29.9700012207031,"ip":0,"op":28.0000011404634,"w":1920,"h":1080,"nm":"circle 54","ddd":0,"assets":[{"id":"image_0","w":396,"h":396,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[667.188,823.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[688.188,271.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1182.188,815.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":3,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":13,"s":[55.1,55.1,100]},{"t":21.0000008553475,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":3.00000012219251,"op":93.0000037879676,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1218.188,269.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":2,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":12,"s":[55.1,55.1,100]},{"t":20.0000008146167,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":2.00000008146167,"op":92.0000037472368,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[586.188,523.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":6,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":16,"s":[55.1,55.1,100]},{"t":24.00000097754,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":6.00000024438501,"op":96.0000039101601,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[962.188,143.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274.188,545.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":8,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":18,"s":[55.1,55.1,100]},{"t":26.0000010590017,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946.188,921.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0}],"markers":[]}
\ No newline at end of file
{"v":"5.6.3","fr":30,"ip":0,"op":120,"w":750,"h":1624,"nm":"游乐场svga","ddd":0,"assets":[{"id":"0","w":17,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAMAAABcfiZ7AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAVFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA+qpAUOTAKHRk7ookmaFgGEQ41lH0rdmQwhXAeUkYzjXci0PTQAAAAEHRSTlMA+AWjYCiCFu4wx9TgI5FFVhiHBgAAAJxJREFUGNNNkFcWhSAMREFQim0iiOXtf59PEKPzl3tm0oR45Cbfq5ZLYRSyrGPDAJzHb4F/gEXYiCgCpoDRYomUFVBijcdC9CUdQqwkldQocVSwYcgWxRk6ofImEhtxaC5d2LLeIY+9gpig82iJZ1Dd2CBxRpZDW4Qb7CiZ7EF1oKtX9liJrqsZCA2EcH1Gv8/S9qonIz5qXNu81R/lVw2FrY+CyQAAAABJRU5ErkJggg==","e":1},{"id":"1","w":18,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAMAAAC3SZ14AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAUVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+qpACBgUMIRw6oYgUOTAzjngcT0MrdWMHFBEwhHAfVkkL3c5cAAAAD3RSTlMAFc7nQZKjegswX9sd9cZuwhnfAAAAo0lEQVQY01WQVxaEIBRDKYqAJXRx9r/QGaTo5POeFxJCCFFiZfNEXpp2FB3qQQwhXp8Mu3RCYb0xxidgbkjBmVunhegoV2Qui+qVFr6xE6jBB86GzAerLGhB6Mi4GkF3xI4idlrY/DoLNYHy57UL/A7QsMOaUT8m4Pxw6tqNDZZaXbKtyPEfkY3BJn83G8tJAdiQHLh8TXmUJbl6z0s2vejfzReSBg4SftumvwAAAABJRU5ErkJggg==","e":1},{"id":"2","w":2,"h":12,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAMAgMAAAA4zPSAAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAACVBMVEVHcEwAAAAAAAAWawmTAAAAAnRSTlMAxOqay5EAAAAOSURBVAjXYxBh0MACRQAUuAG5vsbFRQAAAABJRU5ErkJggg==","e":1},{"id":"3","w":19,"h":24,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAYCAMAAAAvSTY9AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAbFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw3JHLunsNDAggHRM6NSO7q3ElIhakl2N8cUpuZUIxLB3m04tIQiuajVxRSjHWxIFNRy9dVTjvQQ30AAAAEXRSTlMALg2X9gfm1R87hlIVtWamfrCx63EAAADFSURBVBjTbZHpEoMgDIRBEbzbjWi9aq/3f8eCeKQz3Z/fsEnYFSIoyy95JrjKCl5VeaLUwE6PyUKnO0oM2oaImh4m2lgO6xHRyyLenAoPChqA4I7R0a4lPEwUbge7QfmJBXo6NaNYrSNjIy6OGWb1Zu3GAXfGyCISKVqOqIcUEvMP65CJjF23s39edzLfcYfbISoMjA0w7r76Z0mHOqQ3sW+YxIcgFd4hv+YJJbd+NNAun6UF9NFTdNVrRzoveXOyqIvNJr4bYhcxNBUzPwAAAABJRU5ErkJggg==","e":1},{"id":"4","w":23,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAANCAMAAAB1uQVvAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLcPMfAAAAEnRSTlMAKj4Ja4f4EeBl7spSu50ErRpKiWRfAAAAYUlEQVQY02WPWw7AIAgEfYCKj6rc/7BtGo2o87kTyK5SHqirGx+YXTNXTvwTwO858MA9+vwzSWSFQGEiiqOayzJccl1KY1wmoOhgKQmzlTOPmwKOkTA60LXTNHf+GXT6tr+4WAe+Ay+GjQAAAABJRU5ErkJggg==","e":1},{"id":"5","w":95,"h":37,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAAAlCAMAAAATK8VgAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAWlBMVEVHcEwYERAXERAYEQ8YERAZEBAXEQ8YEA8YERAYERAYERABAQGDtIX5+c8QDAsjIRwyNCpTYkxrkGtDSztdelvr68Pc27Z5pHqTj3h5dWOopYq4tpjPzqzHxaRUzs3XAAAACnRSTlMAa4+t3jDIGu9N+yfVUQAAAshJREFUSMe1V9u2oyAMrResRuWiVPHS///NSYjSanucnpm6H7pWEXZC2CTkcllxLeIsy5K4QAghroTLJ/AzcQUtjBBxnBCP2E6Kc2C0sEHuke7BwzkcIC0e9AXONG6a75NzpkVorZSCT4DzlNaaFhkzIJyb7vdx0ABRoEf2rn6H24Juh2W4PoADWHYgchjq78NByvzZKfR1rXkDEejbKfwOEnZ/PIW+vkNG0gR1Dn3dQe7FY07irwFO5b+d7H/nBSpOi//kz/dyzu2qb05BTPwxJrXp2+zzQOnL3y9BaUq7L96x2WlOoZwfEtBkrHXzN7h96gTV2pBArznYxud91Q7j/fcbuXWY2UfnBtMqprFVr1b3RYJDTdXbds34ujWYxsfpPlMm3ibrrpvnaRpHohsMFgu9rROqNU2FUJALrlw87Af7xuznf1ZjfIExxjZ95dEgfbEkZ5BlKbHCVAFNY71nvoqpba3y1YrZjLVN0/fVC3oMdsoFGL0vCWhAmTdT/wE9xTldHgcp07MF0By7/0BjSD0yaAcCP1vwhxvC+BuvMaYtyx7jXXJqoORQPkPKEGsKso8xRfkN6AMeEz039OOQpGSilT8BWW4hUWJPGpLh528aAvXgkpx6fHKQe35SktWtd4888gC5mpLrEP7HHeJpaoqnBR2o8Mv6+Iv2BiTYqjLkEV+T8mcA9DQDzVS0JPDL8PRhA/Div8bN0uIGjvi9K7Ql4qclK3v+9Da8iAw2eyDHzeKUfjmeLb/2U+ny24WEghjvXsZR+mzBu2MNula1h+57Az0qs2d68OrLd09nfoEmT+LCO0DkeMZ/oaepyjQofb3KKIt+eNVfo2RVsFz0BofBCUcZxJsn0XHLgC3G5kl/SL8o9MEtPmtHCuw/XhuHoPiXNiJLouIz6mcrouBGJ33Xo2A/kyVJHBW/J/6pwxKMj7uyBX8AsMyVTHfV9XwAAAAASUVORK5CYII=","e":1},{"id":"6","w":47,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAUCAMAAAAqRJTwAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAANlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAR2LVAAAAEXRSTlMAY4+ARhWu9gfC2DQhU59x6Rrj/xEAAACSSURBVCjPtZJJDgMhDATZjM2O///ZwChCudFziM+NVe3CmBcjoeDhaiMrg+His65JFshS63NlOVoCFo+0F2cXBKjnNgWnUcF6qrM3AZi/9Tx4v4rWO/uVwxuTxv33ATW35BP4UfpzHU3XS0oZcbtfjvxNqASftiGdcRS54j7fRHO3N/d0cF0DChJjuAc73nF/5gO31gdTriJxcwAAAABJRU5ErkJggg==","e":1},{"id":"7","w":54,"h":23,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAAXCAMAAAB3a0x8AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAANlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAR2LVAAAAEXRSTlMAdjDVl74R8gXmP6khTGOIVyIhCngAAACiSURBVDjLndPJFQQhCARQF1TElfyTHbqdAKz2/h9alM7BJ3jKIOFBVVUHYvpMxUyle8WyohFNPlybvNszprSZgQTSMyYuYTABu1oHMqCTwMbyZlMUPiy2auw4cz1q/TDO5aRlfGDD3idYIrLejRUBiH/7p+l6yxz+JK6Rr6vUDqFr0merh2yU1Db79b+gCBInh5TmoTrY1Yp9WQZ7sL0w3p4fejcIpCZBgIQAAAAASUVORK5CYII=","e":1},{"id":"8","w":112,"h":114,"u":"","p":"data:image/png;base64,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","e":1},{"id":"9","w":11,"h":71,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAABHCAMAAADm6E0DAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHr/7WAAAAE3RSTlMAsgn3kjyigsMXcepXL2Pd0UskzpvEDAAAAIBJREFUKM+t0ssOgCAMRFFEERCQx/z/v7ob66IhUVldVidpa0IwfCsiu6GwF2T2hoN9YGN3LOyCxrZYbyA9APcBqHMgCGAXgIdnn9gFcI9i6MBQgHMKOBWA5af+BiS5WA3oUyArQNQBeTl9utgsFuvE5ahA+wAUHXh/+06My0RzAdmZChCdylPfAAAAAElFTkSuQmCC","e":1},{"id":"a","w":45,"h":53,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAA1CAMAAADiQZJeAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAY1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/98YAAAANDApSUEC9t5MnJR4/PTHKxJ1pZlHi2697d1+OiW748MCvqojWz6bv6LqdmHro4bUFWAufAAAAD3RSTlMAFuBDMs4Hqe18I5JXvGqU+1TXAAABy0lEQVRIx5WWSZaDMAxEmbEZ4rIZDAFC7n/KFtBJE8KgrlUW/+mVRVSS43wpCrKbvGVB5FzKlTleCmVyygbxRJXGttaU08/cP647saZ/qEVdbzQQH9TPBNA+1VrPVkNke7AEqkFt1Rgg/YbJxV3taSQ32/ak0L3aV6ERb23oQh2p1p9mfKBXxyqA1VNdgVad6Q7hrl5YqXOZP+sB9HBBNxqvr5pf+Fi8hO/Sj0u6exWPGaWn4rNzV6Nh0A+NqS3ZZUNebbnNRu4sekROtGAZISvQkZOgVDyVCMi2YdKWjEtW/5YepvTIkUn31PEcBZOu6ePz6YHoEAOTbuARXbNre//0HZ9O5Od05hQNdyY9UgdvsEy6haRwqJh0RTERAR2PnschZDalpgZOoWaZttNl5Dve33se+pDV8WI24lAPK9YQy2XjCcY763duSsZoVr+lqbh3+fXHVST7VyFLEZutV1R5Fpxd+bF5ohDVcdM7A89dL57Eg+mOYRFsNrxA9dxPtOoLJtzbX4JFuQNTjtOpYbYB+rR0eOzeBRFtem3XCTBYOiLSo6smmU6O0o5182jq0U4XSn520CSpwJ9EGlycSpEv49ATXhhL/8vDD/75cMqyFKu8AAAAAElFTkSuQmCC","e":1},{"id":"b","w":46,"h":53,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAA1CAMAAAAJdildAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAXVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAADBAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACi2vcAAACaz+oMEBIiLjQuPkaIts92n7RLZXJ/q8JWdIMYICWRw949Ul1ojaD+pvLfAAAAEHRSTlMAexzNNA+Q/PEGTKNj3rO/wA1m3gAAAbtJREFUSMeVll27QzAQhBEkaMkI8e3//8yzcZ622qqsuenNK2bTtTtB8KEsDsu7ApQowjjwKEqJfOkeJmdwQcjUr7bWuh7WxdBLwuwXfaOTl0Hv1LX0hmNLCR3dWv2hroEMj4wImFUfqAeKL0OJwGT1oTqJMvumZ/1Dg0HxjhcnNPESb/5vMFafaIXc3U+ksOpT9RAv+yWWc1rX08tODDN7cN1BPfqhwqi9apE+D6/9+AD17z5FrxlqcNsaXMFy8BWVw3NMHFrXkAnfiyvWuRHoePjo7iaTqHl4B+GukWfdmVeu0paJa4OImnHh4g3iIORezAMfuXiL/Dp+yczFUi9e5MW/id8Eg2sCarHhQotRA49XGjhHw7MuqdLt45svfHw0H3u+F+7gsM+5JDjFLo+xRMX6jx8go+A59RZ/v6TPCRxL3zQYcd9t2NAzgztQq+82e4nmxL41OyvbKruf8ER/rr6I+Pnn4qu+Fivx5rDekdbqQZBIKkoEXy+wlArSwxSRhRKyf3vALpQ58l+RIy4poDTjsBU9d/0EyPQs0cSFdLHHTNP2q9LIk5eSvBBbYlIizbOApSSKjj38AVpTdpSny+JVAAAAAElFTkSuQmCC","e":1},{"id":"c","w":14,"h":67,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAABDCAMAAACbUMRRAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHr/7WAAAAE3RSTlMABigRtI3poPZre1rOw0BMNNwbf9rsdwAAAJlJREFUKM+Vk8sOhSAMRHmIIIoi8///6naGmzSX7k6aND3N1Dmq1pgGdsYH0j2QGDMOxgudsSASBbzcPLExVh284WR8EYg8iifsuHTFzJhQdfDDuGMQRRRu3rN7Nt1vy3066pJ7F3eo+3TUJfdguV//uzfLfay4Z3XXQPki7nagftyNQC25J9NdA2U/U114Jm8+Uyiyoot8pw8R3wmXzIWTEgAAAABJRU5ErkJggg==","e":1},{"id":"d","w":47,"h":59,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA7CAMAAADcviMTAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAXVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/98YAAAAJCQf27r8cGxUvLSRFQzZwbFeWkXRfXErc1aujnn64so/n4LPPyaGBfWTJtxMtAAAAD3RSTlMAw9ZO84ERPake5QWXZS1swgTMAAAB9ElEQVRIx5VW1wKDIAx04B4cinv8/2cWsLa2VUnz4ssFL5fpOOcWZg7RMj93UwDMi4vEik5yBm1CmI/r36LDWGHkOs2c82rpeuXk3XgUDKJf+Nuqrgbi8IJ4DjQD/7JOII1OubgQHf+1QYL5p/B64WdW9RA/DpmCD/zCWrBvSvkNXDukn6nwIRZ+Yw3cY8IThu4OzucawQEfo+H3NoG9GUUQgwXPe8QvvIvVBuezQPl+vrLilUbxi739efODLYKQYSbgVQSbRIVVnF0i70lnJOF5bSLOiHR2QhEkDc5Ho1CAloifkf5DXwegFPWwUPENVBswVFR8j8IJIahwviqBEtRkfIfcKclybviIWA17Av55f1TvJ3/y+SderU8Guv6t0t9JMdDz6+tmn+j1U+r6XMn1ycwopCZggqvbnTRNtnCDbVoRA5AwUz1AT4IvYGZGJ0RCrcruc3x2BHhV7wPUJ5VEZ9Qx5hFaXj3/WnoF6spea55zWAC2GTQIHFak2gCTTfv4uB8D1PO9lmn4ta5lddeI+FrYSYrm0mESulE+rWSXDqP4WL67Qwp5NkmrFmdwRcmDWH9+sUj8knlfY3L88Fh6XJxLWyV5QN1OT5eha9Q5F4R3x2Th6bNQNk0j9YXIcutJGeXudksijYuQdrKWkR+Vp9gHNid+cFxAaYQAAAAASUVORK5CYII=","e":1},{"id":"e","w":18,"h":68,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAABECAMAAAC7x5WPAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAOVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLcPMfAAAAEnRSTlMA96Tfw0MfkVQSCX+1MGbu0HLmx5hXAAAAh0lEQVQ4y9XS0QqAIAyFYa2laZZ63v9huz8TkkFBXv448YM5R0eES0DldKFwiuicGk4qCT5T2iH6qUP9ChuV7JEobWg81xE5FeycKoIyr9q8cFq0eR2Z3afmw2g+J83XjLlqc7GZgfwLc7Ca28DstVlsZr0yA3N/2dyfzclqlhlz8mplXOBLN9tUCVdx9gc3AAAAAElFTkSuQmCC","e":1},{"id":"f","w":284,"h":318,"u":"","p":"data:image/png;base64,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","e":1},{"id":"g","w":189,"h":219,"u":"","p":"data:image/png;base64,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","e":1},{"id":"h","w":72,"h":30,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAeCAMAAAC45KifAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAUVBMVEVHcEwXEA4YEBAYEQ8YERAXEQ8YEBAYERAXERAYEA8XEBAXERAYERCi2vcgHR4tMDRnhZVbc4Cd0+9GVF1QY246Qkh1mayXyuWKt8+Aqb6QwNmwXs2pAAAADHRSTlMAJdJmln87VOkSq7lnvQgeAAACCklEQVRIx52W2ZaCMBBEZU2AJnuA8P8fOhUInkFA0X5yy6V6SbWPx0VkNSuqGAVjdfP4JRpWtTntg+dlUX9FqcvEkN46pxHOeilWWlvclJZVHL8XXg+T6XcxBmVlhHU3WHUXhejQX8WsbNRVZu/VACPcNSUpGzxY71AVMHrsb8TkIuoiwQZy3C3MkiJQnJ1ychKh/yImJNg2Zxw5vztnxvGli/0giB8GqyV5npYJytk0RCSkdyo8gTNEvaTHSJzoMYOT21wLxPbSq+2hqFS1A3FSR4pdTkLDMKWDZhrUyrbD+olC93aC5KErkeJ1MGeDFB8h9PLVsCN1r4KmSFHXw2AUdAmVSMUTRPRyZvZu+tD+gErLsJK2iteHzG5FgCqH/DTxbCuR/QXUGw1RUG4pX0EFuRun0DEYE8JpNaRhmSSJoR9lGoJPiszmRP8CjhWraOAqqg9E2ccaTcqvR/O2jObN4ONlxxcH1XOsEGkMZrdIEnTR6UkvSvKSZQdXL/kymAZd06NYO9cCejJ4cVjghqy5NHcMppwjSa31rkkcJIU4vrx8vzeaaIYKJDwzSfL7u7DYacduLK4W+eHG6VVSw3ekmBOvsnt7h3GSDu5Ai/iMQ6JJBUZOeXF/D2YwRU+p3MsGIW+tj7c+Z9/t5TwKoi0D1qXVXNZfb3gUitp/72uMW/bTn4W6Qi3+ANuaSCRn0+s+AAAAAElFTkSuQmCC","e":1},{"id":"i","w":47,"h":66,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAABCCAMAAADwk38aAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwYERAXERAYERAYERAXERAYERAXEREZEBAXEA8YEQ+i2vcYERA8RUwhHyCCrMJmgpJ0l6krLC+d0++PvtdKWmRXbXqXyuSmQJV9AAAAC3RSTlMAzkR+tedfIg+f9TTs6q0AAAJeSURBVEjHlVbXtoQgDNS1rg7d8v9/eoMFAYX15mXLScjMJCQUhWcdWfHSPlU5wFr5bfuf3m1pXbnWeoupP1nvvgb0osxobVIzpyyZiK4BV6NnRlKab592Z+sYmpEcTfvsX2Ie77bOlOLJvYI245NJ4n3H1DcQ47MJjvIW0IKNKZv0PeALOWYDbmzFmA2ISDeYMv6WQ/Uf/1EBnzSeVcaVGxc0XZKvjDrDGkOd1HNlwByVb+LwOqMfQoGoqnqKC930fj+wWMIYE/NFpYYIK2ao08J/BOBR/gAqliRq2SWgXMXnWdED1mtYhOomCpWVmWSCoh2gVS5gDRjQnaT5oKUJVfcD5rjv2obmySzCAO8XhvgmtDRVwIQPafFrUN0nRUVJFuPJLj3JyqfJVRFz4cnqvhuOLjXr5CUjXy/GVWKW4sLNLs7iEdDWIIMLWLlLlgK0B0hHgU8OUJtcBlcLzg6RfJ6PB4fzWIKhzpI16Rlfu2OVm69pAsEt0uc3hswS+TjpBbg5qlEVOUSzK4I8kH0z/p0bHMTgSFTntuDXUda7RFmB/Mkkd2gGQ5FPMJ/K74yBrH8HrCdjtRcgv/nrU/kDkEb+edEewhAg/ca/cLuTb8h+4SHGy0lA/Oa7NcV5MaUdWs2vd84JSNpE6Rt5A6SsQCrfD/62EvYz359Hyfjln+3/kID1pxn9+2F3rFvr/wK+JTDvfNnjxH2ogD70md7AKQrAbPValuxtjN4XMyTw6u1bb62vwd4dT3uKngckJYaXT+sSXBDX9LB9WCALf4nmXOdvSuXvg7r/j39xUf0Ds05Fzt9PaR8AAAAASUVORK5CYII=","e":1},{"id":"j","w":62,"h":50,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAyCAMAAAAz3ZgNAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwYEBAbEhIXEQ8YEA8YERAYERAZEA8YERAYEQ8XEBCi2vcYERAiHyCazuqPv9c9R04xNTlgeol6oLSEr8VsjJ1UaXVIV2C6DkpzAAAAC3RSTlMAZQijuojwFzHgSicORlkAAAI4SURBVEjHnVbruqMgDBQVlRpAbvr+b7qx2z0noSi4+dPqx5hJMiTpurrNLyGHEW2QYum7JzaLQQG1aRRzI7YX44nQ255CiDEkf7jzxbC0OJYTHt2SXamZtOHbcWkBu2TWb7NeI4O7EPoTfMT1wswOoF6X6Bem67DrjVkMQV7wxoS5uFbMYwBF1xPotNYtwFRAS8z2Le/VoJ2/GuYScV+ONvj9cE7/04/Gf3n5ZgU6FHj6Tf8KT2v9ecrgiwKXE0ed6I/2fIr2RwjG5uSXCbZMJ/E4oW4P3+mwoCrosL1la4rJOHjhEX1wzwjWvlwFg7TUzLO25cLUuWObMPuf1CmauF5x5tGhZwY24SDpV5LlbQBHD6dcPHHX72aBDWdGy5qOAE1P75l44vuSi6tbvgAEhmbiMVi9SV53CAx852h64QLSlnfdQYJjVzEP5L43IXXiLTLfBqMW931toNSNBnLbjeP1LTrXhmqRam/j2irZSIsUs29V0dy5o9Q9TNWJIGnkgdYgAryq02QCS2NNlImsohfqz4Km1FV9nkqaOE8CwQrWqWPeA6UbyafGhkFKQzeEOzpvmMM9jTaQhpOyTngx0HiydhKHeAoPv5MxwtQ/hV+34ZvUFTcIgLYNiBWOOB/a1icmeTK7G9cvfuF+ai5aN7/xe6BvTYL7q5uF99W2FsOiZ50Vm+O0tKO7fqRTIelqc8zxw7lA2vfCiEvrOHcPTajPsoOjU3TPDZfncwFWw6v7X+sfk+7+AEu+R749K0r0AAAAAElFTkSuQmCC","e":1},{"id":"k","w":71,"h":57,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAA5CAMAAABTRsacAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAQlBMVEVHcEwXERAYERAYEQ8YEQ8YEQ8YEQ8YEBAYEREYEQ+i2vcYERB+pbqZzeggHR5vj6E3PkOMu9MrLC9eeIZQY25EUlpW/HoIAAAACnRSTlMAooxS7b7bNBJrfKLf9wAAAmZJREFUWMOtV+uaqyAMBMULG24Cvv+rHrDdNkFswT35V/oxzkxCAoxdxjLKgU85+CDHlXXHuiSAGYqYeTtWRpjEc6PfY7Aqhw3Rmbw0jV8hlvGFYNwebLD6h8QWXPpPyGtS6wvCuBjUdmxLv1wJpYPPSHUUOT9VBLuhPSp/HXZFkY7leanpeRDZgyo+nr7uaqRU4jRURE2vjCRKW+lJstcEiqRjorTW0zRK/rDIxEKJdWckZUAsH1ImuTigtpMlJlBKDsTnEliG+TDlhOQpzx3gWy0tQ2LlKZJN5kYiLn4HYmuuhYJASCtbAbR8PyEZaScENg/GUmmiAYhJUezL+Y54wV2kv1JZkbpEOWoPvOn4y5Q5XRQOXlANXj9SNxfmJpMwUADR1pOSthPQTizirBmIps1g07am5D+BXAlkcRVNrb12PmXNvKVq00qILQLoIYngsNWthNiICTzqxt4hxDjJUa4boxE73jyOBJRdI6CUiea5JrEjx15EyIFsHrHzB0K23ekTIQX+7TTA2uEQbdoeEdw7hA0QivYYkbDmjKVx6UunccbYbac9EmraDToJwxnbG9tZTZhFBoXawG8UplAl9BidhMUro1VHJSZhhvQzAIQ5d1w/J9qGDOh3RXckPrUh/19wktO2rqsThxxWfR+HENIItM/nTAg5tOl7eX8QCj+V6KrD5yV5q+DEjgb0OzlcBce3j563sniCUZ3pqg7XQ9bQjZPvVsVNvWeiknNvVEFnYneCUyAFt+gcQHgsmzvuvDz6vaWnm+fEbseS7/vR2vxCm1b2h3i+Ii9fmR2cJOfD6yn+D0AaSmPcmx6EAAAAAElFTkSuQmCC","e":1},{"id":"l","w":78,"h":30,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAAAeCAMAAAC1+tjYAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwXEQ8YEBAYEBAYEA8YEhEYERAYERAbEREYEQ8YEA8YERCi2vdBTVUlJSczOT6Zzel8ordacX6Pv9hNXmlmgpJyk6aGscjBBcMtAAAAC3RSTlMATjjVtyCG7w1lnp9eWegAAAGrSURBVEjHrZbbgoMgDETLXQ13BP//Tzeopdq13ep2Hq09DCQTvN1OSlBKSF9FqOhu19QJ0suBMwV7KS7JOaYgkrMHwDpnzIgyxtnlEScfk+5+rBtjCcnrvVKJDn9l/Z/bI8PiyZpYkn4jn5HIxTtWz2dXLgavP1CxoOgrGBkW1KQ/ljcveJ2svkz2+pxGYL9LLCrM5aTPy4E8cmaCvqQJ1L4cPcLGpK/KwLZdBEdnk76uAnxTTgW2HBYN9Vl1QT02ita89mkKJccaIGet3efTrvmKuYTp6Ews3A9PYj1bBp8p9vi5MzGHtKstbbT2zhjr8rj+U0C9T+h9Nj9uV3Ymt1qQtlMM+HSqddNU8mhmbLjjZncUoFwvKFKbu3p2HYOovyGrlq06/w3aBEM1pyB8xdxydGjuGzAcUXMoOOT/w0K0wOcBpeB86mvwErbh2of1uljHkwD77n9r59bWrclzLyLC5D1fB7jaoXF8Ebp2xaIY43yQPd3MYQ5jw4Qc9xBV3x+kxDufEEoFqkO9ubUoTqbY8rIycMmr3wyUPTBIufzhsbkJkUPF7f/6AWVCUKGJWPz2AAAAAElFTkSuQmCC","e":1},{"id":"m","w":74,"h":45,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEoAAAAtCAMAAAA+/w2hAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwYEA8XEBAXERAXEQ8XERAYERAYEBAYERAYERAYEQ+i2vcYERAiHyGc0u1NXmkwNDhcdIJqiJmKt889R06VyOKAqb52ma2ahvu+AAAAC3RSTlMAPidp9JVV1rsVeTcnQTcAAAIpSURBVEjHrZbZooMgDETFDVR2UP7/T28QvNoWsGrnqS89JsMkUFU3NYCqZxpQ0xHcUq8Wk+Ymb+g7TKMYY+EH6S9zUMAwKbQzfPKajRYAJPU1jm+JWb0EyC6uGW3R16De1yPVByZoFl+zGgAxsUx5Aav+siKp+VSUpeTcIwIgN51pZvSsxQ5a09MXUidlIehN8W9I00zpUC5JmiKAG7O7lU9q7UsqUBYlJETE/HfYZQ+uzZdk3ErxWRNb/y5rFjQnki5xJ1ikvCR/yaAGiEDq4Iyy6xjaz+DrdINgE/sM9xLKsSrZt0wGC4FN80c9nsOE47lc4bThlr8Nv6TlMVTJIWzA8NeCfGPFcYbVkErV+JamxRtdHOd1YaVJx6NbfGeiFPnZm4jrM5KviKm5wNG+ZtxUJySzgrKdzTHy6VuiOZC4yoK4ccqGyOMxvT2PJAdfFG+tGa2EtTLeWS3p+iF3x+0kDqcrl7eRYdsNiEk39qVdDrfTlgIjX9zfJhgDAdXnt/Ehmfq48iIHZ7tJzZ3Ym9vs5m7dBGS8cP0OeJs7bimLN0yo5+oDg1AZXwGSMrOvAnz5oTLG/3uS3y88pHisL79RYNWFk+craS2o7dCdZ1O3WW6B5OytxqLaeAXNMCrydkEhUnJbYexBQV44RNvvwjuvwaPplPGwCShB1SONYLpfqrSrq4fC1Pm9Sx6DqgGODcxG1XP1fo2N1S8E26VFPyHBUviBS6v+ALNeRjWK797xAAAAAElFTkSuQmCC","e":1},{"id":"n","w":47,"h":69,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAABFCAMAAADtlk+iAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAARVBMVEVHcEwYEQ8YEA8YEQ8YERAYERAYEBAYERAYExEYEQ8YERCi2vcYERAlJSdcdIKEr8Z6oLVripw1PEGbz+tCTlaRwdpPYm2uUQvRAAAAC3RSTlMA2ihc8EB6kBPAqIoYt48AAAHdSURBVEjHlVfruq0gCLSLWYlZWr7/ox5aa+9vHxPQ+D3hMIxgStWi14PuVWPMUwd3dKZvQo8ALpzB4SdmrqENos/d3uETniEfMdxob3/jCtAJJ/QLQPhDY8QACwufkPdu84gOBoY5Jk/RPuOAjoTrsUz+CQeaKhTrjBTcbmBKuAHYLB07UTHCDwZufYlH+G7b8ZMERz5rUaoAL+rVAvc7Qt6wfmSV+VoIxsxBC5wS3KacjgEXJbgH6HPy3srss/SdTB7Fyfw/VdjskJltHkXl7eVgyos9K+QzK2D6SyafS28gvSBfS/8kj+KI7M+nj7uKLXPy2Fon+0A/L5XQ2hiKWy5Wm4qpoyE0u7JGJz6l/KjjX7BRM8AbNjgUztY7UqN/UDtiYZtLT3xe/URtlJk1w0UUK3UrPcfljzzpTXr0/sbZmEqPch6cOOSCXhn8wazblZE/MNuWaddzeP+H9zSdVb3Bn9zyZ/AOZvWCv2feCqiP862rX+BDPy3uAIjtzcIlStnzAjY9eXsDJz5tzyQ87Qh7Hjwbyp4IH5SA3wv4pFRz/k2GP6ZVPCvwXE/vYNSVV/Vff2P9Uf0p4DtPrg2TTw2P/BHCdmxIHJam/4j++wsxrrr1r2MwZtJzE/Qf43NQnl6a+owAAAAASUVORK5CYII=","e":1},{"id":"o","w":41,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAANCAMAAAADg7fkAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAV1BMVEVHcEwYERAXERAZDQ0XERAYEQ8ZBwcYEBAYEBAYERAYEA8YEQ8XDw8XEBAYEBAYERDFmGQlGxYzJh2YdU5XQS5tUzl6XT+mgFVjSzS/k2GJaUaziltFNCaRscujAAAAD3RSTlMArF4S9U0FNsJ25NYjjZjYjzdnAAAA00lEQVQoz4VR2XKFIBTDq8im5rIJLv//nT1or0rbmebxJGGSwNhv9O0gBPsLheAvpcapkdLoDoTuNvGDU4wfRA1rgdt0gqwScG7fQ47zvHqffG0iLhBXlEOH9f1EBnIxpbQtn9sKSVlegH8qF4fwrrFZ8BJ7hE3PewBiLXRozoIN7P3qtqOrpcnBtOwjRT4zLbOFFhQoXBlnQLbXpIpaRuodyz50pu3c2dM7YOof6wv5PYs5orPBkDfETDrNf/yUGKWR03XtlT6cWvXsXwj6RXHpvgDaJxXspbhXjAAAAABJRU5ErkJggg==","e":1},{"id":"p","w":22,"h":138,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAACKCAMAAACZzkoxAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAYFBMVEVHcEwXEhIYERAYERAYEQ8YEBAYERAZERAYEBAgGRUYERAYEQ8YEQ8YERAYERDFmGSq1qM7QTQpJR53Wz01LSOOsIdFNCZeSDJQXUmKakdkeFyxiFqdeFB3kXCdxJacmG64i36MAAAADnRSTlMAEKRv481bPiX9t5KB/MwaSw8AAAKUSURBVEjHtZfZcoMwDEUDGMKqgNnX///MKoCNLnWm7UP1kMycceIr6dqCxwPCC3w/8B43mCfEoZ6IAyJdjx0pWB8TL+7mV0MRLh5aTcnSIfZpKreK+DexxCG1ZVkOzEEHJWW581TiJ1U7niiTOKfhXA07prTuuCFIR+07liWRh8nstCUlF0fnjisKyTkZhxCz40CBa8cKhJgcywSEmBw3rEhO1dpyTBRiVU34uGPXdU3TacrljgW99uihUE9qDtyBvoj6A2voWEb1ganA1MedLlg/RfOJU0z9+I8a6meF9FC/wAhB2VYI9tcIuck2QlC2R7TMHEsNsmNbVah2RLrRWjdVBdU2Zri5wT/NcHNDeJrh5taEtvK7STzSB2UTx989cvNOdJ4D9nbh0rdBklZfC0lafWh5ZfStkGRBpck9l/UzsiH3SzbkbmVvkHtOuuLQ7xvp6XA881jKHhcObjKUxLYd+24OwmuWJWHZFocOW7KLQym7O/EoK2Xdyth3uBWxb9yKRyGlxeJcJmkwnBBFy+zAxV4lDv6KpOWb5CxhEYncm3cHOMCBV8sAX04DHLixNSDaOHNj60vE6YXlybZ2Raw+4c2FrYsB2wv6jrUL850xrO3mwIdbtZaGZU/Vne2DwKen+E4SydureL/tfsKBG+fWgb/B2c9YjIvLxr/B6R/x4sLhH3FX1/U48kefSCxD4Gka3jFNayOxNZX09wesPuHt3/DfBP4rLj6sTqphWjmmScsWO9uQUs0N6/cQR0q6qnFj7XbsBywmRu7G8kgJLA8gkWMywNh5XngWD3fX1MGHJzujcL4oMRoyOUhqWxKYrdrx1w9PHcvHBJ9UI6K+7pvb0yTnv88SFdxeFx5xkOX4rvAFyV9o0Gf+p5UAAAAASUVORK5CYII=","e":1},{"id":"q","w":33,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAUCAMAAAA0jaRDAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAANlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAR2LVAAAAEXRSTlMAIc0qmXNRPgjp3BRk9LyHrMN+FW0AAACESURBVCjPfZJZDoAgDAVZWpBN7P0vqwGMspT5fRnSPioEi7ZSbAjoichbLrcXNQyvN9wx65Doz/DIERUNYDf8oBfip5uTVrwby+yWOUHNGf3hKqtoxea1sMC87/I7Aizz03xV+Z1emHIVh6b7MRLo6SNgp/e7JOCuofbhMWwOyiKyxyRuIwwUinZB1EEAAAAASUVORK5CYII=","e":1},{"id":"r","w":618,"h":311,"u":"","p":"data:image/png;base64,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","e":1},{"id":"s","w":618,"h":266,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"椭圆 797","parent":28,"refId":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[3]},{"t":20,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[148.125,153.688,0],"ix":2},"a":{"a":0,"k":[2.5,17.812,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"椭圆 796","parent":28,"refId":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[-3]},{"t":20,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[147.625,153.438,0],"ix":2},"a":{"a":0,"k":[15,17.562,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"形状 795","parent":28,"refId":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[-5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[4]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[148.625,146.875,0],"ix":2},"a":{"a":0,"k":[1,12,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"椭圆 798","parent":3,"refId":"3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.562,-9.062,0],"ix":2},"a":{"a":0,"k":[9.5,12,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"形状 1004 拷贝","parent":28,"refId":"4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[147.5,154.875,0],"ix":2},"a":{"a":0,"k":[19.875,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":10,"s":[102,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[93,100,100]},{"t":40,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"滑板","parent":28,"refId":"5","sr":1,"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":0,"s":[351.5,185,0],"to":[-5.333,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[319.5,185,0],"to":[0,0,0],"ti":[-5.333,0,0]},{"t":120,"s":[351.5,185,0]}],"ix":2},"a":{"a":0,"k":[47.5,18.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"形状 819 拷贝","parent":28,"refId":"6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[413,169.5,0],"ix":2},"a":{"a":0,"k":[23.5,10,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"形状 818 拷贝","parent":28,"refId":"7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[421.5,178,0],"ix":2},"a":{"a":0,"k":[27,11.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"组 127","parent":28,"refId":"8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[118,65.5,0],"ix":2},"a":{"a":0,"k":[56,57,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"形状 625","parent":28,"refId":"9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[-2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[2]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[134.25,49.25,0],"ix":2},"a":{"a":0,"k":[9.25,68.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"椭圆 624","parent":10,"refId":"a","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":3.333,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13.333,"s":[-3]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":31.333,"s":[2]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[0.5,0.25,0],"ix":2},"a":{"a":0,"k":[25.5,51.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"椭圆 623","parent":13,"refId":"b","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":3.333,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13.333,"s":[-1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":31.333,"s":[1]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[13,0.5,0],"ix":2},"a":{"a":0,"k":[21,50.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"形状 628","parent":28,"refId":"c","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[-1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[1]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[136.5,49.5,0],"ix":2},"a":{"a":0,"k":[1.5,65,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"椭圆 622","parent":15,"refId":"d","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":3.333,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13.333,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":31.333,"s":[-2]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[14.25,-19.25,0],"ix":2},"a":{"a":0,"k":[24.25,56.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"形状 626","parent":28,"refId":"e","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[-1]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[140,51.25,0],"ix":2},"a":{"a":0,"k":[2,65.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"房子","parent":28,"refId":"f","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[302,182.5,0],"ix":2},"a":{"a":0,"k":[142,318,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[97,104,100]},{"t":120,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":2,"nm":"摩天轮","parent":28,"refId":"g","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":20,"ix":10},"p":{"a":0,"k":[452.5,24,0],"ix":2},"a":{"a":0,"k":[94.5,109.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":2,"nm":"组 128","parent":28,"refId":"h","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-3]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[235,-47.5,0],"ix":2},"a":{"a":0,"k":[70,27,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":2,"nm":"组 129","parent":28,"refId":"i","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-1]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[238,-49.75,0],"ix":2},"a":{"a":0,"k":[39,61.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":2,"nm":"组 130","parent":28,"refId":"j","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[-2]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[234.75,-43.5,0],"ix":2},"a":{"a":0,"k":[59.75,11,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":2,"nm":"组 131","parent":28,"refId":"k","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[2]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[237,-46.25,0],"ix":2},"a":{"a":0,"k":[29,5.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":2,"nm":"组 132","parent":28,"refId":"l","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[1]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[238.25,-50.25,0],"ix":2},"a":{"a":0,"k":[4.25,17.25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":2,"nm":"组 133","parent":28,"refId":"m","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[2]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[238.5,-50.5,0],"ix":2},"a":{"a":0,"k":[6.5,41,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":2,"nm":"组 135","parent":28,"refId":"n","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[1]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[240.75,-41,0],"ix":2},"a":{"a":0,"k":[2.75,66.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":2,"nm":"组 134","parent":28,"refId":"o","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[234.5,-34,0],"ix":2},"a":{"a":0,"k":[20.5,6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":2,"nm":"组 136","parent":28,"refId":"p","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[232,24.5,0],"ix":2},"a":{"a":0,"k":[11,69,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":2,"nm":"形状 569 拷贝","parent":28,"refId":"q","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[238.5,84.5,0],"ix":2},"a":{"a":0,"k":[16.5,10,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":2,"nm":"底3__m.png","cl":"png","refId":"r","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[374,771,0],"to":[0,-1.833,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[374,760,0],"to":[0,0,0],"ti":[0,-1.833,0]},{"t":120,"s":[374,771,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[309,155.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":2,"nm":"矩形 3 拷贝.png","cl":"png","refId":"s","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.85],"y":[0.991]},"o":{"x":[0.09],"y":[0.009]},"t":0,"s":[100]},{"i":{"x":[0.85],"y":[1]},"o":{"x":[0.09],"y":[0.009]},"t":60,"s":[70]},{"t":120,"s":[100]}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,812,0],"ix":2},"a":{"a":0,"k":[309,133,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.85,0.85,0.85],"y":[0.991,0.991,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.85,0.85,0.85],"y":[1,1,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":60,"s":[96,96,100]},{"t":120,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0}],"markers":[],"tiny":0.55}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{"v":"5.6.10","fr":29.9700012207031,"ip":0,"op":28.0000011404634,"w":1920,"h":1080,"nm":"circle 54","ddd":0,"assets":[{"id":"image_0","w":396,"h":396,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[667.188,823.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[688.188,271.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1182.188,815.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":3,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":13,"s":[55.1,55.1,100]},{"t":21.0000008553475,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":3.00000012219251,"op":93.0000037879676,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1218.188,269.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":2,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":12,"s":[55.1,55.1,100]},{"t":20.0000008146167,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":2.00000008146167,"op":92.0000037472368,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[586.188,523.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":6,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":16,"s":[55.1,55.1,100]},{"t":24.00000097754,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":6.00000024438501,"op":96.0000039101601,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[962.188,143.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274.188,545.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":8,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":18,"s":[55.1,55.1,100]},{"t":26.0000010590017,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946.188,921.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0}],"markers":[]}
\ No newline at end of file
{"v":"5.6.3","fr":30,"ip":0,"op":97,"w":473,"h":203,"nm":"按钮更新","ddd":0,"assets":[{"id":"0","w":368,"h":154,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXAAAACaCAMAAACHb+NdAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAATlBMVEVHcEwAAAD////w3JH///////+8ua7////////////88M0aGRdMRzSnn4g+OSZnYEmViVmxomrQx6vd3d3y4aCCel/hzofu4sDMu3u4sZ7v1/NnAAAACnRSTlMA////jBzb68JJ4N679AAAEINJREFUeNrsnOt64ioUhodp55kqx8SBkPu/0c3ikAAhCajdtU34MVMVMb4svnWA+OvXw+3y/vH7QO3j/fLrK9ufQ9H2zP98IfAD8jbEv4735fch29epyvsxgb9/raIQdKBGvlZT7HyjQzX7lb8a+Nth2gn8BH4CP4GfwE/g/wNw1fbNVOf/6Lr0nbrcXyu1HML3VVodD7jCRFeBVrrrBGcISfcYoeR9GrEiPYJ48rgT0PXtjZuJE9lrRwCuTHYkUiIsbcJzmzIMoQrANUaoi4dxvaBbOjxDGoALRN7epJ+8IwHnwDAxVZElFI6XwIRwjKQTASFUCrxDiCVoOcLCv5AuoA5xWAwYnibpHJUtQphL5N0PAa7Ml5EktU1hUNnWwT84pkjCA2OmCXBpmNh/1LxOzFpQ9hURmlsZTBrgGhDmqlR0AcyvK/UTgIOe8FxVBChspAD2JW7VBSFs/9cpcO0HMGuD6XgumcEbrRVsoDGGmVEfGMVYOnKqxf0cFbwJrBTdLXTvewLvMLJeC9jM37UrAk9UJgGujBHjbh5wNnKzcLowRzBbMK77y5Lmk3hxr/ag64s1qKxnTy7qewIHzIamXegSzSZUtHClVCeMJQtt1FvFkiJiyHZMrueAk4NZayv8OHhIyxk+liBiAh8jaDoAZxuu5rsDB1DGMLmzzg6+rQusi8DtdzbaIwQCehNwOwqKYhrMgsW6WBHebsfQYUUAb0yM+JhncLygJFr3oRy6fmfgVlvBMIOAgw47EywC14RgD1xgGQGHUWKdJjAHevayVrdhDOmG1SDK5k+OOKwGFcfiatUxarQXQH4u8Mvl/ePj4+9G27VwEXQXVID7wG89StGgvA64WQmRpAjzj4ZmQMJ/MIeRO7DvhjGUGwjE2Mbhbx24TARLTOwnt8xOXAXwMg0D6/1y7/Zbw+mHbUlRc0zHYwMrx+GzpAi1DAsXC8Mn+9ouIhsKSZeIduaZzobV0ii4WR54NzREKHbF28CffZLi8v63YYdv29HoKT4m9l8d5TBzm4AbzQkaHlu46nwDZ+CbCkUDGfQAxzUbBUoCxM0YuNu1XQscC/U4cFgBTcwvjWcftoHnlhw8VlHDBei0B67jsFAXNrvEFFmo8EE6Khy4MNzOhvGdNeUULUsR4z3Awc4vn4R7D3hSM4lCiyLwDnNj4QyAY4xVBDwaIfzZpY6OxHHLPM0yn4sd6+ieBLwSeXKS6kYlMTay1+rr4eDL1BZwIwgCEhWurfjUaDjzQxrwxNu6dRTGZZhQ3kn3fkIzA+U7r2+AYIxI2jed0XqPYDecfqjlTeJFvxKHe/UQy1oKd6VWCD2YeMujaqDNktC8mxy1AU6eBbziJAW9VZ5gmc27d7RhzvZbNXAelyrWEh/wfYhjWwTQOqo8ObT2bXyKl3UgBNUrcMRdVNUya8W5ShJFQSu1FBEkRewA30RhPQcw72uM/BJCk9EqpajdJqkFLhLzWakWQtJonOZU6ZqA81C5YtFQkAxpPzazKf6swdYBd6EyNb1QrKUIqL9rcJo7wUzFd1X2g9m4q+SB9818V8wbNqUqgWuUbNas1MPBdm15lifApwnwC0NM9TDhsypLSkXVcpvUQi5khWyainItJVwN1s/4rsqsUES8sPy9bJ/LhAKTbNoDrLwInFpPMQ53WuHq4Z2Lvi1wZTd6lI3DWbJcOi8fvmALdW1m30ngOTMfUIbRoUS8XktRUK8nQj1pNSuLcevs52U279YdwLo9TZbvjRWrhdYbkkhfvOlq5rFPVyenRaizQiJYKXC3tRub5L/Ni2GzlvI8+XSV0WDkl1U9ucVf6bnABRZ5Bprs+UZrmZOgt3b/IJokCLxUYbsmnsrOGj0PiWg3e8un7Gm2AEf4tqIqfxzv3pgD/xzgzeckXvVcSgNwzhB24crfP8UbGXrY05OtwNWxDgKpBuDgOPrSTRPvQU+I36htaAIfCzgW9cBtpf62zID+RLxbgXN8NOCYNwCfif9ZCIrPGNuAd/h4wHHXANzESyQXlfcp/m4HTo4InLQAVyEen0XFRig3dBdwVy0Uh2muWtgCHOpdVlT+pgbOHgF+pHYPcJKYuFXwEWp0d0oKPhpv0gocjZGKX7yB47uAC3zAJhqBm3QyyvAnA78LuCLH483emoHHJu5DQnwf8AMSJ6oZOPYqPinKDd0N3ITikh+oydoSWArcBSqXEKPIR4CfrQa4DHHKx6QoJ/DPA+7d5sd8HPME/snAwyHQyxSjFIBrAedSGD5bXfTCCJHTRkoOfHQibiWcFoArQQ6WQj4tNSLh5oMEOHUiboFzhDPgbscbE0nH/na2ytaPVDozJToDjhF3wD9CmhkDh7M9iEXnh87W0G7UnkvhGXDvNW2lEGfAYYf/pP0IcznfxBWAY1cxXAInEe7rdRj+na26DcP1GiFnBeBRVGiBw7anO01xHf6dsd1dbbiGEz62ChAiEhcXZsB1iF+Gk9tDzEO0rbeBG97sBsZ9InuGmd8YEN8C7vYmTtxPs3L4fYFN4CZYvBbqgYJzcratxmW3PHd7tSnOFnCyNG8t2Zk81qaY3dLICVoFjiA2zyKTzv1CAJeCnm2rSW5TzPxc/T+7O78GHN8y3hY3pya4PFtF6yVe3lsLB9rKwCEezDbPzPPypN3SRjL9xshEfEzqsxNwcJj/0kNsJuM8cTebOcv3E35zxzcHjm8Jb7hLqT/53dFkei/T2z8rKjlwhOiQ71ec7O408uxupoFawBlwPGT2LU9yTyOOF8CzH2bpTt4PtSG71VzOPzw+Ae/j+ASfvB+28dhz9kvgyflEhsjJ7MH4ML1JkiyAZz/heIaDj8cqONXoDLhKBIWewJ4g45FbVDlwlig8O3k93mgSqbAMeKzwp4E/p7H0R4lT4CKWG3zCepKJJ4lNAryLHeqnhIRDb1rii0c6Pu6bKRwhnkoQ9kDxZm/aVw9MH6xsDPGPR3UZcB3fGNd/znyjdOTBntx49LN4MqzdB7AFJLmyyuHHeqoGJvVd169tdps6A64+XVEsmSGfgeLk9hu7Kn0FcDuyXB14KC2/4f6uGzbG4jAlAR7HKLwF4Wajee80bEIrBbL7gdv9qd5dmCzW8czzfPda27puaUosHCvAORKfAjzHO64a+APA3aNhhfiAovlYNH5n142GI+VYBc7Q+BnAhxwBW7/yobxtWA38ukLcWi1bu255Z9fNwLDbB46rfWYT8D57PBn4IHnlEq0HHoiPBQMfV66b39l12/GKGuDD44FCXw5SxqWCy1VhuQe4DNPa2+3cYWngiypR706BpH0bum6TqQCOng+8N3pgO0krDX0copS/WvGGvXzkgtnRaR2NC982FB1e727zSDdvG7q+JHC6QOMMnE6mLkvGvOc014EP/QgJEUtWPy9NLS2KckPXbwI8sutitHIn8F6uy+1YsFov9bktN3T9FsBp+o0sJDI8Kim4fCIvdRrphVH3HB4XhdXarq+r4dJLuAWd5jyzvDzkNFduuUvcYPZ2vwj6UvRY1/VFgc+VFBccOlu1DnSy3Io9pm3gWQTHObjnPl9kS4q0eKl1XV8YuE/srZawvWTirsTHOTrXZ1jNXZcUH+j6ysC9htCNLGl4LLV3xd+5zxgJQI+rKTZ0fWXgIc90Up5DZJmK319LcQ/HUDqgSdhRRbGh6/8NvOaIOs/yTG49vRdZ40NHtydhn8EPAB+opGmqmQ7J57fnGjU/HFu7vjBwXwx3ew5XuthLwQjvnEJfM7FZuueZlYt8Cj7Yr4W9i23o+sLA/d/jmq8fdw/9rwDvWRoA2k8gHnwU+Ug00kqKDV1fFngAHZSlX7Y7gPeUL8TGb9T0hTCugeJrAk8VdzNalr7ayXw0sqXNvGIe6TJ/DTfGuE9ydyYVU4EaYaYvqeGJX+ebwD0bHjA8BfgY0Z63//mqf6X1oQd96bBQpmlLMZYYcZLgPApczjXU/OPo6s7jjwFO0m9XTnzmfGL0fdi0PnkzcO57Yjlmcfhs9+T6Q4Hn5dWVHZ9Q3sTLDWVaTJV4mu6XnGa/THwmu1/WZn4KcJ4mLWvAr4NMLXwHuEQFpdpNc+cVAk+NfPx5wPu88rR6+mGcNaUCeL7xXgk8TGuIY6L4/ocAL28LlCyczS6uAnggTpuAB+FyE0WTtfczgNNFHrAGfC5Z4aEGeJihvgF4FAwFfScvDxy3nOXslxHvCnAnKI4hrQLuIxtWDXyIy5BwlgHvfMz3Ax4ODuzuy3je2DLh1zrg0aGHCuCD33ZEmHviWeXmC4CTmpNXpH4nya/gNAIrAqfTSuDQvaLs6mlOd5/vAJ9wI9738a7y+JXAWXQMfPW4Mq8+eeEp4n5v5zGOCAcozdYCh6PBNNqyz181jbg3T+oNYQktbCInFPnqmM1ddypuanFc2f9uoYrujSC104cKB/g2jknQrUJjv51YoUI1Ktmc8YLfZ9mqLFNcHbO567aHw9H5cP+7hf6nUHV0VB+3CAruK/bWZTYxTmpDY5vAh/Vz2WHKsfcn0ybGf+2d25KjIBCGRU1plhEUC0ff/0VXpTkrHmtvtvsiFxOSqfrsNC3C/9vp83eT4nSw1/vC0PQq04+DFaRQQa+9dWfN6fyUycWZzQxzh8dE/Ej5aNL0+0m+t6EBvlq4DzHUAi3ZudM0F5E2fw6AHw1N1wDXcpsr4OBIIN0d+We344otdaZ1PSrad+r/xV9SFlufCEq12Dyasn7PzqUSTfAkz/03atVM7F3lC0PTPfPgHCwBTwIQbHeO2o/Xn9tjHFWUpflTgu0fZXJCPWkDlJJ4IX6pexiTKpuTT7ZxbrBDbYN3EpwV8anBbOvsN0P1pechvNPG3ALXAuKFdzkmJPYwmCdBY+TDM92Ie4IpEovK84Liakl0xPr4gOuGr9E0981I/Ek0fgYzoj03MuMr4w0YKBJ/yLsN9IAaDVw7J/kpPiLxZ7y5XzCMb5JtU/xrshCnKMx5L3jAu7Wabpkza/rahsXAULvwXj/IgtwdllU+Zg1Mtb9jIKVXDPzWis3/fn/JI3nldcleWhdq42AaqHMqfWWG6uFXspvHAuJyRdtbT2Tr0Rv8FJbBy6/hpxUI/URuN5wqF7YiKOCeQ69vs04i/9mWwQNC9NVIBQNMPHTe6EjoQa191pXGNYkdxEf0eTwXjMd2yS1R2uyOy7peTgGjdbLt2T6OHUYqxmHHNZYY89JK81Z9CrhxgH8YxguxmmiAe4zpUWyKC3g37GowbkZnLJN6P8F1ikv9Pib5S+kNPGWY4NCoaIufdUveiMiexMiJgakKSu3yVk82F4sfxwWvxTS/G61ylFYoqTKD/XjAoagIGKWQE7Zl6IaRriQdeNcZjiIuKLaoTGYkpUZpB+N0GGiW4bRRUNaiUkXEKd7v3DMdpBHv6hMBh/vNXFD3E/A5fD396nEjVNUTe4+5QbxnJEaOcT2WSbBP8DbEc4nE3+Et8yRvSxyT/M303uc9E69gjDrAgdxu0ya0AZRVgvfcq9QwLJ8YQeY3Yc/ZPWmO9SdLR6lH5j26T99cF5e9gVhmh2GTfGY+Sc6wHT/fgDMuJ0v7OL0hyasc44WoyuxsIPJ/invtV2pE9iTqb3Y5vpjnd3P7Bm2YQL9lWVfI/Szpqi7Lb3qi/AvRXX6SLrIjFgAAAABJRU5ErkJggg==","e":1},{"id":"1","w":390,"h":176,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYYAAACwBAMAAAD5+tTSAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAFVBMVEVHcEz///////////////////////+3ygHaAAAABnRSTlMAXNWlK4m/aDWWAAACjElEQVR42u3dz07CQBAGcFoK58Y/PSNqz0i050UTzlUTztCWff9HEESBagXsNul8wzdPwC873dndsDudztmE92ZbifsQXdCgwotti5E1gpjZVmPZAOHZthx37oa4bUPmTOjZ1iN1NUTtGxbwqeSeTJ4VECH85+D8QfgSDAM3Q1+CYQ4/LTlPTDMJhiX81Oo8uVoRQQMNNJy7YfI+jK28yIZPVycKriX+/q3j9QTBpWTBp+Lh2G4hsfIjD+WeJDVy5NTDIKwQKXQiHU6nAIewQhi5ux23bVHXYsWoIpNiMENmwDOpMps8ixch/DD8GgjEYfg5EBGkoTQQgcUMI+1QtUbsn8MmoIYc/Ysuf9VTWEMBn0p7yYSbSrtkmgIbCvhU2iZTYJHDQG5+qrZCPrRhALzeK6/7EmhDLuh0vnagV7jvKtcFN4zgp6XNxDQFNxTwU+tmcp2BG5ZS/pDhEBl+eVgXCA/eEMr4v55TpPAlbl3kfHjDQIWhD2+Y00ADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQQAMNNNBAAw000EADDTTQoMjg0yAgBir+s67h7oCGOxwBvMGouA9Eg4DIlNyPS8ANuZK7lhG4YSHlMXinJZ+OO+DoC6ZUyZsI6Asm04Evcpmad06wC8RCTrcQp/Kg4/0l7Mk1FNQuxGlaUvGmmoq37brwnzT2asNgv6K7q3DYyTSCfwq49BhwBJ9KuMk0EtfZq3aRRi5zhbp31jW8d6+i74CG/g+AAxEKbNH8z6js6Iy1FcrldtZ1yaR1vAARHkX3dK05J8F1m/qj0xQSYmkONsG7ACDcHO37PRYuuD2lL+RkjC746s0pEnB6b064+ABVyde4CqqVygAAAABJRU5ErkJggg==","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"开始寻找仔仔按钮","refId":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[235,102,0],"ix":2},"a":{"a":0,"k":[184,77,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":5.75,"s":[90,102.983,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":11.5,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":17.25,"s":[90,102.983,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":23,"s":[105,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":30,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":65.75,"s":[90,102.983,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":71.5,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":77.25,"s":[90,102.983,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":83,"s":[105,100,100]},{"t":90,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"白色光晕.png","cl":"png","refId":"1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[40]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":37,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":82,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":83,"s":[40]},{"t":97,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[236.469,101.5,0],"ix":2},"a":{"a":0,"k":[195,88,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":23,"s":[104.469,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":37,"s":[122.229,117,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":83,"s":[104.469,100,100]},{"t":97,"s":[122.229,117,100]}],"ix":6}},"ao":0,"ip":23,"op":623,"st":23,"bm":0}],"markers":[{"tm":109,"cm":"1","dr":0}],"tiny":0.55}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{"v":"5.6.3","fr":30,"ip":0,"op":120,"w":750,"h":1624,"nm":"街道svga","ddd":0,"assets":[{"id":"0","w":81,"h":81,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAABRCAMAAACdUboEAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAVFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnuboBAQH+88urjIkrIyMYFBNFODjYra6ReHXEnZ5qVlXitbZcS0p9ZmTLwqLp37pv4fGOAAAADHRSTlMAL8mvHAre8FKNbj4I0EmxAAAEe0lEQVRYw61Z6dqzKgysK1pNWVTQ9v7v8wTQ1oWgx/fLzz50GpLMkKSPxxUrkqp6PqsqKR7/wopnBl9L6+bPeDVDIKnGcVRKWtDy+SfApARQfdfO1nGNqGl+H7BiIIZ2Y6aXwKrbHjLQ7cHMCHATsihDgGga2L2L16DasCnI7gDmDAYCsQO44+QTxrYlnbxTQylwErG/c+0cwJCIA5SXiqVpVsxtQJCAGEh2DpexmbnJ/EEE0XBIz0rPqoEUSljQzGEWALSPGupz+urB/zoyAmpbGww6ElGA16CiqrMsqw8Uyss1fTsNjrmRXGM9FjPvvbHnnm1ik9ZBoZuPDPp4GG2oxNTzXoudINUg9vebMJo1weoljA2GavlNLqD8QSYQYBtHzSJp7cJYwyZUCsrix42QLwNKq6CrMUkxl+tQdeKb/gZkMKcWkgwjYyD5nkZz/jEBE8U0qnxsganuGNx0oS/xPTNwMoyhMsCSSrxmKZpsxOeTGsKu1/7SffuPbPDyEePa+kpXTkmbmxzk6UE+OgERmp8cdIUf06wvHUBNfa+RmiKO6ZT9zEejEebl7YOPvzbRQJancTQKptfPPiOoCKQBcByM5VoBf22sjzyQbetE7rlTsp0E9a+dTTEPHCLZijgWqNfBlOxO3rMGyHBreB8R35QOYFnMzK6oqjByfAVMidP3zIqxmAKqu0/LkhyiHerkomdLazzybpeXTwjxTeVGrx/xovINgFq7quUraEQg+1nNftY8U3CuLp6OFKIOkyvUr+Vu0OD/G9EMSNAj4Dy4qN584xgE/KziiDo/ad/blLsr5wtctw7MO4TIv5fgYpmcymzXqATgHAWmEKKW5pcLbFDq43SXpwE4pxMyeOlxpcWul6uOfZTsuzCr+oCLmwI3vXJ+Jrs+aiDF7H2s772cdZMNZ1rF+qgVr+SONm95OG3s7VfFE+yjVq2KfG8BZfi0mb6jXUbL49z9TF83P5oOEFYv8ylnMRftxTGdI39/Pm+b2NjDNU9N569rO4zSl7HUsR9f5ocq0vasQHu04eSQfwkRcTwHNHRTtW1S8ss+XjM/0F6I41WbX8KC7Cl6+s2jvpBGm2as2GCEp/5s5q6C17bbjfDIBdS7NSx7ARSK45HOCookEkoMd+N3iA80PoMAlhJlhToTpDb/rS6OjQ/OWymKJieixUJiha9/vRr2t/dGrc+KhOpUR8BH+NhEjpAW66XJKt9WlmqrmpqSmDpnh4ig8CTbPQz2UsbTXXnppC7teu0GdiU3HfZeVWlnAeUeXrdmIy/tO7pqm3AdfP3T+eF1CwX60nP3jqPwZFbzfXCflDdV1SwFQF560SyElNNg2s6GiZ0vTpvITOI1ywfKW11cWZmp0zXKo8oQlKXPSzs5TIyhBeHWOjMy5ch933lxgQvUjMGv7eCOlhGDkxFwc3uNSqG6YPd+00W/+eKhxiF53IZEFo3DQYhvr8IdL5idnLhZeobxEjvibrrJye4l1byZzB9/taKq09//Hn/HW/6dsRpy9b+Z/wANJeV5GYrotgAAAABJRU5ErkJggg==","e":1},{"id":"1","w":36,"h":25,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAZCAMAAABuOnzZAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAZlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAEBgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABksHVLhVgtUTViq3JCc00THxYfNiQoPi5gpHAMFQ9WmGQYKxw0XD1Qjl5LX1Zig3FCSUyT0whhAAAAEHRSTlMA4RMI9CfR/oGlYZFJcsE5dDFGrQAAATJJREFUKM9tk9mWhCAMRF0J7iUouGH3/P9PjjqjBrvzxDm5UEVBgmCvqMmrSkpZ5WUafKu0ykKwSkRRRg8m2xtkrNbOOT0s00HW+RNa5pbVqNxCgGg4VRH69lFjP4Ekp3LQ/KTazgFZ7Cna9rMUIWNQlGD9Qq0ErlhgODtuUfdZQMmiAo1nY4K9HDqELLH6vmDniFz3vzYo+AXN7WW2MOoUpPuZYt/6lpL+O8zyGxZ+CuMAczhbkUQ8BeVl+SI6bC48BgnTeSm9DfSujPCGYnFndUnabd8E9tJpcuzk1A+WsdU8haAkDL5i+9ooxfU2KrnyubLYFAnej04FYNWD0hN/wN29TIBJK6aqgTB+/PioOobCDK5X6zyvqifkX6ankYIPz+dBp2yTF1ktRCjqOtts/wI4nSeIGqM2uwAAAABJRU5ErkJggg==","e":1},{"id":"2","w":34,"h":23,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAXCAMAAABZLm3uAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAXVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAEBwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABksHUeNiRhrHIMFg5XmmZCdE06ZkROilsVJRkRHRQtUDVIflVdpG0wVTgnRC2UY5v3AAAAD3RSTlMA2HFApDCJ/iEMvvTnXFSAmZTUAAABE0lEQVQoz22S27aDIAxEvWGg6hm5KVjr/3/mwSpo1TyxYK/MkEyW3UpwVpYlYyJ7KlZUrxax8urvgoki3560d1I6vx7b4kyUAdDL8Db9XsoMDngdRA24d3+tCeCRqIDhBvQzoT4Iurfo++XQKUDjAzGiiTKMYE8vyk7qe5BJRuSYDsB8NPy8NxHpM16l3hKQu62jCW8wRgUHmuJgDIin38gNGILCoE4zqWITgtkBZ39nwpKTJVxYfx3uJ81ErE6MhL+MzhDKHeng+oHo5GEz5pKTVUdCmutyJNqUlRL3BSqr0fIjBTmkHU3SmUcrKcTkRIQVfou0ds5r2iLZ/Qayq6u8pRjYJq8K9hjskHvOGOcPsf8HyXQg/Epd+HYAAAAASUVORK5CYII=","e":1},{"id":"3","w":11,"h":111,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAABvBAMAAADI5ydZAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJFBMVEUAAAAAAABHcEwAAAAAAAAAAAAAAAAHBggAAAB4ZYdOQVc4Lz9kPalaAAAAB3RSTlOlDgB9PMTfdyPOWwAAAElJREFUKM9jUHKtaGNUYFCp6OgoE2BQ7Z45s8KAQaNz5swVDAwSlaPUKDWMKPWumTN3MDAotO/e3eHAoBjR3tGswKCkYmzspAAAxvIKo3fhF58AAAAASUVORK5CYII=","e":1},{"id":"4","w":35,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAUCAMAAAAweHR+AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAM1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADbQS4qAAAAEHRSTlMAVtTmDCtA9IEbqpQEvmpxag4sLQAAAIRJREFUKM+FklESgCAIBdFUQK24/2kb+2gaH9l+7+gKEpGeEhItCWxm3PJCyUMZ7KF/OWIPm6jvVHvBtfyccxMP7FeeJK+/bAZAfzojWtDfS0XLoF/FuRL6e9jR4jaPLDdGCx6ZDuiPzlCh39321F/8Jb77+ftvPf2y+nx3Pwv9oHlcdAFjuBERvd/flgAAAABJRU5ErkJggg==","e":1},{"id":"5","w":14,"h":115,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAABzBAMAAABa2i79AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAKlBMVEVHcEwAAAAAAAAGCgsAAAAAAAAAAAAAAAAAAABTh5IUICIAAAA6X2YsSU82ZgZqAAAACXRSTlMAPLL9bswSJeT1T5DXAAAAcUlEQVQoz2NgAIIEEMHA5rrDAUgxKu/evYmBgSV695o51g4M3ptvzpx5OoBBG0jNnL2NQfskkJ68HULP2ohEz1kLps+s3gWmrTdD6B2OYNrVgRFMAy0YpUfpUZqBfTMoPwFBtJW1Aogu3b0VkhMLCxgAqDEzNCjh0QsAAAAASUVORK5CYII=","e":1},{"id":"6","w":12,"h":16,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQCAMAAAAVv241AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwWLUIPIkUMHUEiQkIPIEMOHkEQIUQNHUENHUEQIEBIaIdgrEYNHUExXEMhQEInSkNao0Y6bERFfUQTJ0EaNEJQkUUsVENjsBlbAAAADHRSTlMA5FWm+XmiZc30ICCkLEUVAAAAdUlEQVQI102PSRKEMAwDBRSJDRYhG/z/p5OFw/jUXa6SZQBYt2XZVozZldmC7p09GcxioAcOIR/rJkdfvNYnVg/HEm2agzBNtizQOig9VhWaG5ld5aJCbst3E5LSAt7yievR/MSPo1PkHHWm+Fk0pMBZ9O+FHzFVB9G5Oqo/AAAAAElFTkSuQmCC","e":1},{"id":"7","w":14,"h":18,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAMAAABcgh8DAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAY1BMVEVHcEwmP2AOHkEQIUKKwdQUKkMNHUINHUENHEENHUE4V3VHcG1fiqIbL1FYgJmGvNANG0MvS2paoUYNHUFgrEYTJ0EgPUJHgURRlEUmSEJVmUVaokYZM0ItVEM/dEQ0YkNOjkU2g/AKAAAAE3RSTlMAp4EfKS9sre/ZqiGB33ATE2mlHUnbIQAAAKNJREFUGNM9j1sShCAMBIOKgOVzR1AB0fufchPd2vlK06mEEBFNi7HWtDM9aRSeGP1Qx+UWY/GmZuyZwsq5fcVyAI5NcA1O0whc65uAlhRC+mGGIfeXO+DIwqf44AlYRtmzs/SCjskzxQxpNmLPLR5hy1DUii04U+LJI2nuPg5+KwlDQ1Rxb5BxBT3/uTbXLTb7rpGT9GcXC9W8B8+tnL9MXH4BKs0PrDbLy5IAAAAASUVORK5CYII=","e":1},{"id":"8","w":58,"h":47,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAvCAMAAACFfikyAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAbFBMVEVHcEwrS2gLIUMHHT8YM1IHHT8GHT8TJkcGHUAJHT8GHT8NHUGNx9gHHT/ghaR0p7trm7E+Nlg2V3JDZoIqR2VWgJl+tMdaR2MgOlZhjqWGvtCJw9VMcozHf5ajc4NzWG6GZHYiLE+3e42Tbns7glCLAAAAC3RSTlMAv4vgosAx/E0Wc7XOoqAAAAL3SURBVEjHnZbZduowDEW5TE5QnMmZgwGH///Hq8EmCYu2gB7ogrIt6ehYYbP5OOJoB4foc24T7TRH9BWnqg5fvuDKfEyS8wdphYOyR46i0qe3uONhzWHUevsBNxDS5Dn/zf5EhdOeS/oOMMxI6P4NrqqFS4YSJKrxV/SZS5KxAigwkK1/Ro977I64JpkDcxY2TacWwI2v0Xjv8y057BOzXVMKzJu/QOPtkhuyLNQ7OihultErwPkZ9Vx3lnwZy2IErqG4pGlAzQp94tBsQU9mO18tBjZbzmh88lz26M1ACEMVAISk1Osj61E9c1QgQHsrmG34bevJO8y9UsbOZCs9MQuNQtiaJqNxpNYnhV7QCAXNWcS8z4PBKz+KayEV43sNyneKdTAaK214EGeFn6meyZySipzIVqQSxd2m0wXhSty01SVX2HlR6uCcexrYTqpAYYuJ89Zyc5SmaWTqISg2PWB57TyLis8C6DpwbkqdGxk96oqqdfgfJ2jJ9fL5FLagT2jI7YXEtdZhUz1uiUjXiT/U3hhV/EVJOont+LDW8lyUogYN7qatzkUVuHn1sGK0g2Xu0l7I7Cw5WoLP7shdTsebPaGVCGrpUPomFnFPLZ514TJGFqPFIF82vJoOm80/RGn+gDkK1V5SnLcI3AbUyLxECtouSaNolxJ6lvlbdillFf8G1N+HoTZG7mKuKCmjWK8Lo0ip136JmpVDk6autN7FHlXztbAo6Jg0C7QbF9xAnNYHIgkdwigsO7YKw7pO6H6VPXP6cJSbimjjl451Dyc2wVwukEOPl2fBPVBJO7mHKpkcUzY/cYKOEO6Jm1UZ6rKUuz96bnd8WoEkE18avMc0cbVeoQ/uxTMxzBXbYpv1Sy4v1U+cRxtYrbC3OI/yDluRY27+4ALqS+58tZ5TUfzrE5RvDtnLnHmnjZlw8Ae3odW0FCYzjrlT/MbvhJM2M9ex0d7ieAsDDz47f8bR0wblqPvPOdHJxzb++Fff4UuOH3TRV9x/Q3hi3sFbdSYAAAAASUVORK5CYII=","e":1},{"id":"9","w":73,"h":123,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAB7BAMAAADK77BJAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJ1BMVEVHcEwKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGBgAAAAmNmFqAAAAC3RSTlMA/EuiuBIs5WqG0DmZxXQAAAI1SURBVFjD7Zi/S+RAFMcfkSxarsKB7hQLamfhD9TGQgU9iy0WGxUsAhaHcM0pCEKKBVcQsfUH9oIH22y9aQYX4u69P+peMmt2JpnJpLPJt0j1YfKZybw3QwD0cW/W1u4WIT/HDYyynwvNM+S1Kj3qZqbyjFjrURj+MELnHeQ9EeybtNujgSgBx6YWcnaSgWioq0bdoF1NoGDY1FGJdpwuLoOGOu5Ib6MZDiBLydrxUNFipSlnhRZSgkgdMtSZr7wtVk9TqrYYah1SVEr7S12hDtuZgYS6TE0xxF467AoUym1Iq62qS9REdiBS3wOV+v0vC43UJeqhloG6vJWmtrIUuwA7FQy9AlSinkcFA7BTXWwVoCR1MyWrU3xPS8nqtDVD0FFsoOzNX586SlV32rito9i0WpuzoKFkddrkw5emjpLUqaX8lWYrUcFHUpv3GD7J0xhTY3XqhDNqIY6pRH2e8d1U4SdUEAoPZxP7t2CiRurnPr5nW9sXxWJ19zWlrVJCnbQvPTBTkbq7gHxV321FDUXq1Jv6ptPiNK5HfIu0D5qm7h7XdvARfbYn80FBfYJX8aWD117emTPpI85huGo5v6bo8Jqpgy1nf8zaZcqUKVOmTJky357KznuBy8oRXXw8K7VE96N+vQiF4aP9jVEsV7JKR2CWOVRWBJZ/CwT3WWC2OSwILLy13ANZjPENy1+R0Rx28zFH/DzBC8uKiDlw29e6j7GW9S7LilBw4mNYYBs5P/fhP5GDR10ZVE98AAAAAElFTkSuQmCC","e":1},{"id":"a","w":49,"h":62,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAA+CAMAAAC1FAP7AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAASFBMVEVHcEwRDw8QDw8AAAAMCwsODQ0REREOCgsHBwcJCQkIBwcAAAAaGBj3nrg3JSqDVGHFfpOZYnLrlq+vcIJQMztpQ07bjKNvR1NX9FsGAAAAC3RSTlMAK2/ttkcS/o3dxj+3kSEAAAIkSURBVEjH3ZbZDpwwDEWHJdsYsgf+/0/rhKVAlqJKVav6ZUZMzoTrOPb9fMpBSc9HIQYYhBh5T+inGR0X8AzBu+r6Pi2Xq9GLnefZLtqsMkF9cT3B9WzVce01rF4ZMqSwAcBk5nKYCSDbhgAEO9fCBoDnLiOouRUKvg8CwDYJC5ARoUmEAgFSV9frmOSMwBxKVYK0kunXXEfAp8DwAB2eoJ0tnqDDI0xP11wHA1RnPIM8mDeYFWBZdjfli1PBy4kxYGySPii37MrHZw2yXyhnWT2Soal8KBQW/UJVOUDxmnDwReWTN1miDkJVlFsY6kSlqP5FYmkTk4zhffqYdkI0iVv8GSId9RZu70W6TZQq6+8TMtaTD8HH8pI78W0R98J9R2gXk+UwVW+JnwJ+m3BZW/h/CEo7WifMlaCEj1+RCpu9Ich4uQovCMpvl+ckjD3m8knwDRinEuFjK/VYh7Gs/I14ADiztzto5F6FMuyN24CIfbfLgPN+WOfOG7sRqbf3T2Cq3iiFv+H86B/A6oCVbYZh4AI2OfIgbJzZ0izPfhhlhc0BiDsR0p/FcaFQhF40NiHlozymdgdAHrpxDhambZq0hwPgN+JwANrEmSOx/eK8MfruAPhNxysHQC5E1QFMNwfQjWeJvHYARBybvHYAtBdntl47gH7cXqyunGcOgPbfyJSER7tbNtZdz0WiLhx+b1nqSCXTfmQ8+vbu8ypoh5G9yQ8ysWcguXbpGQAAAABJRU5ErkJggg==","e":1},{"id":"b","w":73,"h":43,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAArCAMAAAADkVW/AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAXVBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQH954EZGBgLCggVEw9oXzXfzHJ6hIE6NB/w3HpWTyx7cT8oJRiOgUi2plzMumiik1JCQS9UVlV0aGusboA8jbSBAAAACnRSTlMAUeMuyXKnEvKMPDvLWwAAA5hJREFUSMeVV416qyAMXdWqDQYoIqCu9/0f8ybgv3br8m392lkOJ4eThH19/R75vSzL+y2vvv4atzLLivJeTR9qAGckUGTlPf8cprpngFZZB1Dm+aMGqYZWUOjgLeEV9w+pEY4JvFD0CoEw04c5tDdQPz7AuhUzDsUgYWzFKXoF9f23xEpoFpzegOvFZWgL2e1HQhl0M4dWAQ7ibfQOyrcpVo8NB0pMteKn6PAdrbxY11Jiphe/BNG6VOtWy/BZYkvQ986sqgIwrInZVnwUpj759MEGlnbQnJjsOusconTGduE9qFZeZkfZC0MucWRE8nBDdnRWqU6pkXyOSl/LZGlzD+UhudrOPiGwbiN2GxSAPasfDO3R0Hf3qucZ2IVxcpTuqGSlsb6nPyGM+5IZmGtDAaOFjVR5DWj2W3oE5CCKimHlxhWtp/xlE0OCd6tUVQYNQrdzXdox7mrTaok+kSZUlPPTBjFgsRQ/b4BgorDppDwsULSFt9RVWsvsRMAtDj93AzWf6dww8QSlO6RmpKNcMxYMgsSVAxNV/LLD4XUdSfHYIDGtKbxYsST0wqDEhNIJveY9L/Js9jK5cvNnxxYaxIKFQE5GfkR6KQj0u8dJbvPRDPmyDcL38/n8BtmKBcslJHrm+Z3ekFpwCKmpq0gKZ/WeHA76TUHQekinpIVGu5Da4AhBH4qvDRSMEcnA3tNDUj9JFRKpHY4I8AJMRqjjkUycmgPSpD4ieUEaIiX3OCzgC2Bpc7jqBMfqSFh8Eh56DQecyBqWqiFaVJF0doa3pze+PWHR8bWk1NDpc4OBtevRXIFoKWSX8qQ7LIjqUyKXDYuq4rGbdREJYoGyGBftpE/GPTYZsK48zF/uAXI1jBlSlxqW3unMGWhA17pDz2O55LaqQPrWM02cJk8HS9J6maNGh9N0qB4HrKUcIQ2fPhaT7kPnYqLcCDvRNsXVBN1jNdzwxtdrBIhQcqQXOmYw0rbBRktoV+fX03iPRc3rGY3mUnp0BzHNv3/fbFHJJxzk9uROWGsnAnhF80NywCDjDOJ8VZgm7e3n+9iMhQvS5IrQWROnBeNQeyyqX+9SqbQxlTaXkRn2xuTxUN8+uW9CFAwY6ht5qAKOw2wDPViEtwqdBGOzyskG9BNdgW4cTbrDln+4D8ckZ0tFi0mehOwNfPzxXp0zMTiYDD67uF4oVgOkuTzN5o8v05f/KBRFltV1nRWP2wXMfw72bnnqaNFeAAAAAElFTkSuQmCC","e":1},{"id":"c","w":30,"h":117,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAB1CAMAAABu3aEJAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACq1qMAAABuimlddVkJCwhHWkSSuIwwPC2gyZl+n3km8juAAAAACnRSTlMAmAnQIsFrpUfzgGgQmwAAAMVJREFUSMftl0kShCAQBEEBhZJN///XwWUIRyH6Ooeua9IF3DqFqFFG6nHU0ijxzqxRo+cHVAWG7LeUNp9DOfDTMFsEv7orqw+wtwIDxAqPAxEwdRbw7hEPXPPKvunO7Xn/hOwayZjO6pBaOIWjfkJ0zcR9fLBIbZxgh9KdXSe5tJte995uhGz96vs3WV629PBS3saYMWPGjBkzZsyY8T9iYssldmRiwyb2c2K7p9yAMAvKSwiroZyIMirKx+42Fxo213PBD0WPgwTigHenAAAAAElFTkSuQmCC","e":1},{"id":"d","w":9,"h":39,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAnBAMAAAAvGX9lAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAABAACmeYZ7WWN/XWZq9k1cAAAABnRSTlMGgd3F8N4C9FYvAAAANklEQVQI12NgEEoSYGBgTktLZmAQy6xIE2BQay+fpsCQVl5eljAkSaD72wIYxDJAfoH4C+xHAD9ITTDwi5ARAAAAAElFTkSuQmCC","e":1},{"id":"e","w":21,"h":12,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAMBAMAAAB/4Ov2AAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAG1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABp4cHsAAAACHRSTlMA8Y5uEdQ7oYgQDhgAAABMSURBVAjXY2ASLGOAAY2OjmAHKFuio6NDPAHB7mg1gakBgkawJiawBFSTcwSEIwSSYSuEcBRAHBZTMFsAYli6BIIN1qQAs56tUIgBAHr4HiFFHDeWAAAAAElFTkSuQmCC","e":1},{"id":"f","w":36,"h":145,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAACRCAMAAACc2epsAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAANlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACq1qOl0J4YHhebxJWHq4JlgGFacVY5SDf9vOqpAAAACnRSTlMA7aX/RJv6zhthGzRUqgAAAO1JREFUWMPt2MkWgyAUA1AkDszo//9swXpabZFm183L+h7ytkSpU4zVyzDPw6KtUe3YBacstkHGSracovcx5a2y8dNMQMjeveJzAKYLMeWZ9UR2tpbHzMWE5L6SwlkVE10jsaj3PW2zq+OuEUjuJgkYj7LV3WZ9FloEf498gN0fyq6TXJ8ygO8hD5jStrluttKn+221T5eTUh+lctSA2EcRg5r7d9fLZwW4HwEECRIkSJAgQYIECRIkSJAgQX9G1C+f2guo5YHaMKg1hNpVqIWG23qo1Yjbn6gli9vEuHWN2um4xY/cDrkVsrdnPgBn7LOBTzZsNgAAAABJRU5ErkJggg==","e":1},{"id":"g","w":12,"h":43,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAArBAMAAAC+8nRaAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAHlBMVEVHcEwAAAAAAAAAAAAAAAAAAAAEAwOmeYZiR0+BXmgP3wZSAAAABnRSTlMAD1PFjY4mByyGAAAAP0lEQVQY02NgYDJLVmBgYHBLS0thYGBKa69IU2BgzigvbzNgYEsvLy9LYBADUYnDnoL6Fup3aEgwhIHDBRJKAIlXW0+ahzJxAAAAAElFTkSuQmCC","e":1},{"id":"h","w":26,"h":13,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAANCAMAAACAR47fAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAPFBMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHr/7WAAAAE3RSTlMA30b1/C1hjQftwIDOcxwSs5um1ZEWBQAAAGdJREFUGNN1z1kOgCAMRVEplFIVBLr/varRIIPc35M0r4sj5gxu+YnkjhOMxPKmCGd064bjwScjsvtQyJGWJrPao6CNptNoy+TDrp1q+v4Jfm+R6kW4qYq4ewVJzegKEo8Hy2TIzOROcRgK3sFYgeAAAAAASUVORK5CYII=","e":1},{"id":"i","w":301,"h":303,"u":"","p":"data:image/png;base64,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","e":1},{"id":"j","w":55,"h":74,"u":"","p":"data:image/png;base64,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","e":1},{"id":"k","w":618,"h":311,"u":"","p":"data:image/png;base64,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","e":1},{"id":"l","w":618,"h":266,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"组 137","parent":21,"refId":"0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[3]},{"t":20,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[156.5,-35,0],"ix":2},"a":{"a":0,"k":[40.5,40.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":2,"ty":2,"nm":"组 138","parent":21,"refId":"1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":29.333,"s":[-4]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[157,47.5,0],"ix":2},"a":{"a":0,"k":[36,25,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":3,"ty":2,"nm":"组 139","parent":21,"refId":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[-2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":29.333,"s":[4]},{"t":40,"s":[0]}],"ix":10,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"p":{"a":0,"k":[162,42.5,0],"ix":2},"a":{"a":0,"k":[0,23,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":4,"ty":2,"nm":"圆角矩形 1","parent":21,"refId":"3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[158.5,36,0],"ix":2},"a":{"a":0,"k":[5.5,55.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":5,"ty":2,"nm":"形状 562 拷贝","parent":21,"refId":"4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[144.5,81.5,0],"ix":2},"a":{"a":0,"k":[17.5,10,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":6,"ty":2,"nm":"形状 1095","parent":21,"refId":"5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[372,143,0],"ix":2},"a":{"a":0,"k":[7,57.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":7,"ty":2,"nm":"图层 587","parent":21,"refId":"6","sr":1,"ks":{"o":{"a":1,"k":[{"t":0,"s":[100],"h":1},{"t":6.667,"s":[0],"h":1},{"t":13.333,"s":[100],"h":1}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[338,103.5,0],"ix":2},"a":{"a":0,"k":[6,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":8,"ty":2,"nm":"图层 588","parent":21,"refId":"7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[356,96.5,0],"ix":2},"a":{"a":0,"k":[7,9,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":9,"ty":2,"nm":"矢量智能对象","parent":21,"refId":"8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[338,103,0],"ix":2},"a":{"a":0,"k":[29,23.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":10,"ty":2,"nm":"组 140","parent":21,"refId":"9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[341.5,139,0],"ix":2},"a":{"a":0,"k":[36.5,61.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":11,"ty":2,"nm":"邮筒","parent":21,"refId":"a","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[398.5,154.5,0],"ix":2},"a":{"a":0,"k":[24.5,31,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":12,"ty":2,"nm":"汽车","parent":21,"refId":"b","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":4,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":115,"s":[100]},{"t":120,"s":[0]}],"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":4,"s":[329.5,221,0],"to":[-42.667,-19.5,0],"ti":[42.667,19.5,0]},{"t":115,"s":[73.5,104,0]}],"ix":2},"a":{"a":0,"k":[36.5,21.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":13,"ty":2,"nm":"圆角矩形 1086 拷贝","parent":21,"refId":"c","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[522,41,0],"ix":2},"a":{"a":0,"k":[15,58.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":14,"ty":2,"nm":"圆角矩形 1089","parent":21,"refId":"d","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[522.5,111,0],"ix":2},"a":{"a":0,"k":[4.5,19.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":15,"ty":2,"nm":"形状 970","parent":21,"refId":"e","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.5,124.5,0],"ix":2},"a":{"a":0,"k":[10.5,6,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":16,"ty":2,"nm":"圆角矩形 1086","parent":21,"refId":"f","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[540,14,0],"ix":2},"a":{"a":0,"k":[18,72.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":17,"ty":2,"nm":"圆角矩形 1088","parent":21,"refId":"g","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[542,99,0],"ix":2},"a":{"a":0,"k":[6,21.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":18,"ty":2,"nm":"形状 969","parent":21,"refId":"h","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[532,114,0],"ix":2},"a":{"a":0,"k":[13,6.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":19,"ty":2,"nm":"组 94","parent":21,"refId":"i","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[320.5,18,0],"ix":2},"a":{"a":0,"k":[150.5,151.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":20,"ty":2,"nm":"JV 21Q3cad1020_画板 1","parent":21,"refId":"j","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[469.5,62.5,0],"to":[-1.667,-0.75,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[459.5,58,0],"to":[0,0,0],"ti":[-1.667,-0.75,0]},{"t":120,"s":[469.5,62.5,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[27.5,37,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":21,"ty":2,"nm":"底2__m.png","cl":"png","refId":"k","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[374,771,0],"to":[0,-1.833,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[374,760,0],"to":[0,0,0],"ti":[0,-1.833,0]},{"t":120,"s":[374,771,0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"a":{"a":0,"k":[309,155.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"},{"ddd":0,"ind":22,"ty":2,"nm":"矩形 3 拷贝.png","cl":"png","refId":"l","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.85],"y":[0.991]},"o":{"x":[0.09],"y":[0.009]},"t":0,"s":[100]},{"i":{"x":[0.85],"y":[1]},"o":{"x":[0.09],"y":[0.009]},"t":60,"s":[70]},{"t":120,"s":[100]}],"ix":11,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[375,812,0],"ix":2},"a":{"a":0,"k":[309,133,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.85,0.85,0.85],"y":[0.991,0.991,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.85,0.85,0.85],"y":[1,1,1]},"o":{"x":[0.09,0.09,0.09],"y":[0.009,0.009,0]},"t":60,"s":[96,96,100]},{"t":120,"s":[100,100,100]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle', 0);"}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0,"tyName":"图片"}],"markers":[],"tiny":0.55}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
{"v":"5.6.10","fr":29.9700012207031,"ip":0,"op":28.0000011404634,"w":1920,"h":1080,"nm":"circle 54","ddd":0,"assets":[{"id":"image_0","w":396,"h":396,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[667.188,823.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[688.188,271.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":4,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[55.1,55.1,100]},{"t":22.0000008960784,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":4.00000016292334,"op":90.0000036657752,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1182.188,815.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":3,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":13,"s":[55.1,55.1,100]},{"t":21.0000008553475,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":3.00000012219251,"op":93.0000037879676,"st":3.00000012219251,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1218.188,269.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":2,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":12,"s":[55.1,55.1,100]},{"t":20.0000008146167,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":2.00000008146167,"op":92.0000037472368,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[586.188,523.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":6,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":16,"s":[55.1,55.1,100]},{"t":24.00000097754,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":6.00000024438501,"op":96.0000039101601,"st":6.00000024438501,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[962.188,143.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.47,0.47,0.667],"y":[1,1,1]},"o":{"x":[0.205,0.205,0.333],"y":[0.772,0.772,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1274.188,545.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":8,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":18,"s":[55.1,55.1,100]},{"t":26.0000010590017,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"图层 1.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[946.188,921.622,0],"ix":2},"a":{"a":0,"k":[198,198,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.21,0.21,0.21],"y":[0.77,0.77,0]},"t":7,"s":[18.517,18.517,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":17,"s":[55.1,55.1,100]},{"t":25.0000010182709,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":7.00000028511585,"op":97.000003950891,"st":7.00000028511585,"bm":0}],"markers":[]}
\ No newline at end of file
const path = require('path');
const config = {
'/ngame/new/datapash': {
data: './json/datapash.json'
},
'/hdtool/recon/ngame/ngameSubmit': {
data: './json/ngameSubmit.json'
},
'/hdtool/recon/ajaxElement': {
data: './json/ajaxElement.json'
},
'/hdtool/recon/getOrderStatus': {
data: './json/getOrderStatus.json'
},
'/hdtool/recon/doJoin': {
data: './json/doJoin.json'
},
'/hdtool/recon/ngame/getNgameStartStatus': {
data: './json/getNgameStartStatus.json'
},
}
for (let item in config) {
if (config.hasOwnProperty(item))
config[item].path = path.resolve(__dirname, config[item].data);
}
module.exports = config;
\ No newline at end of file
{
"code": "0000000000",
"data": {
"creditsConf": {
"creditsUp": 100,
"creditsType": "virtual",
"creditsDown": 50,
"prize": [
{
"img": "adsfsadf",
"credits": 20,
"id": 4,
"title": "0.3"
},
{
"img": "sadfasdf",
"credits": 150,
"id": 3,
"title": "1.5倍"
},
{
"img": "sadfasdf",
"credits": 100,
"id": 2,
"title": "1倍"
},
{
"img": "sadfasdf",
"credits": 50,
"id": 1,
"title": "0.5倍"
}
]
},
"floating": {
"jsTest": "//yun1.duiba.com.cn/h5/showCouponPrize/4.0.0/index_201710191434.js",
"cssTest": "//yun1.duiba.com.cn/h5/showCouponPrize/4.0.0/index_201710191440.css"
},
"options": [
{
"itemId": 47861,
"hidden": false,
"prizeType": "thanks",
"name": "谢谢参与",
"description": "",
"logo": "//yun1.duiba.com.cn/upload/uP99F1462438316972.png",
"id": 15581
},
{
"itemId": 47862,
"hidden": false,
"prizeType": "lucky",
"name": "幸运福袋",
"description": "",
"logo": "//yun1.duiba.com.cn/webapp/img/luckynewn.png",
"id": 15582
},
{
"itemId": 47863,
"scoreArea": "",
"hidden": false,
"prizeType": "alipay",
"name": "支付宝1",
"description": "",
"logo": "//yun1.duiba.com.cn/developer/img/activityTool/slotMachine/alipay.png",
"id": 15585
},
{
"itemId": 47864,
"scoreArea": "",
"hidden": false,
"prizeType": "alipay",
"name": "支付宝1",
"description": "",
"logo": "//yun1.duiba.com.cn/developer/img/activityTool/slotMachine/alipay.png",
"id": 15585
}
],
"rule": "adsfasdfasd啊实打实爱的额求稳怕哦i求稳怕请问赔钱片尾曲哦物品i区乌日千万人i去我日哦确认iqo【iadsfasdfasd啊实打实爱的额求稳怕哦i求稳怕请问赔钱片尾曲哦物品i区乌日千万人i去我日哦确认iqo【iadsfasdfasd啊实打实爱的额求稳怕哦i求稳怕请问赔钱片尾曲哦物品i区乌日千万人i去我日哦确认iqo【i",
"type": "hdtool",
"element": {
"isCreditsTypeOpen": false,
"myCreditsLong": 999999632167,
"freeLimit": 5,
"success": false,
"myCredits": "999999632167",
"needCredits": "100",
"freeEmpty": true,
"needCreditsLong": 9,
"status": 7
},
"coinPusherConf": {
"exchangeRate": 60,
"creditsGear": "25,60,75,80"
}
},
"success": true,
"desc": "OK",
"timestamp": 1548832971636
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1548915321930,
"data":123456
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1550570639368,
"data":{
"orderId":"883006813674240289",
"submitToken":"d895deb9118f4b938d0b70a3dd2ace19",
"credits":"999999491765",
"unitName":"金币",
"consumerCredits":999999491765
}
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1548923950498,
"data":{
"element":{
"success":false,
"isCreditsTypeOpen":false,
"needCredits":"100",
"myCredits":"1123",
"myCreditsLong":1123,
"needCreditsLong":9,
"freeLimit":2,
"status":6,
"freeEmpty":true
},
"lottery":{
"id":null,
"type":"111",
"imgUrl":"//yun.duiba.com.cn/images/201607/73htz55ih9.jpg",
"link":null,
"title":"重复券测试grape",
"itemId":null,
"appItemId":null,
"bonus":null,
"bonusMin":null,
"bonusMax":null,
"needAccount":null,
"appLucky":null,
"tip":null,
"useBtnText":null,
"validate":null,
"couponCode":null,
"couponKey":null,
"stInfoDpmImg":null,
"stInfoDpmClose":null,
"stInfoDpmGoUse":null,
"showUse":null,
"openUrl":null,
"iosDownloadUrl":null,
"androidDownloadUrl":null,
"isDownloadUrl":null,
"confirm":null,
"phaseNumber":null,
"happyCode":null,
"appHidden":true,
"zybangJson":null
},
"exposure":11111,
"creditsInfo":{
"activityId":82567,
"prizeId":4,
"orderNum":null,
"developerBizId":"3029576",
"score":null,
"recordStatus":1,
"errorMsg":null
},
"againTag":null
}
}
\ No newline at end of file
{
"success":true,
"code":"0000000000",
"desc":"OK",
"timestamp":1550646190489,
"data":{
"score":100,
"maxScore":100
}
}
\ No newline at end of file
{
"success": true
}
\ No newline at end of file
{
"success": true
}
\ No newline at end of file
{
"success": true,
"data": {
"avatar": "https://source.unsplash.com/user/erondu/76x76",
"nickName": "我啊是大请问",
"activityId": "string",
"inviteId": "",
"isFollow": false,
"openId": "string",
"firstLoginToday": true,
"newUser": false,
"shop": "FUSION",
"shopId": 10004,
"completed": true
}
}
{
"success": true
}
\ No newline at end of file
{
"success": true
}
\ No newline at end of file
{
"success": true,
"code": "1",
"message": "ok",
"data": {
"rule": "rulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\nrulerulerulerulerurulerulerulerulerurulerulerulerulerurulerulerulerulerurulerulerulerulerurulerulerulerulerulerulerule\nrulerulerulerulerulerulerule\n",
"startTime": 1619683713395,
"endTime": 1619719725870,
"showPrizeImg": {
"image_1": "https://yun.duiba.com.cn/aurora/assets/874a3723b096a46ed3eba6ececc51e9525499f37.png",
"image_2": "https://yun.duiba.com.cn/aurora/assets/6497ba0ce2ba57cfb74c00456d48be995e0553ca.png",
"image_3": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png"
}
}
}
{
"code": "000000",
"data": {
"maxLevel": 5,
"invitePrize": [
{
"inviteCount": 18,
"receiveStatus": 3,
"type": "level1"
},
{
"inviteCount": 38,
"receiveStatus": 2,
"type": "level2"
},
{
"inviteCount": 68,
"receiveStatus": 1,
"type": "level3"
},
{
"inviteCount": 88,
"receiveStatus": 1,
"type": "level4"
}
],
"inviteTotalCount": 200,
"hasAccessMaxLevel": false,
"gameTimes": 3,
"hasTakeTotalTimesPrize": false,
"cardTotalCount": 8
},
"success": true,
"message": "成功"
}
{
"success": true,
"data": {
"isVip": true,
"url": "https://www.baidu.com/"
}
}
{
"success": true,
"data": {
"id": "123456",
"type": 1,
"name": "吕秀兰",
"image": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png"
}
}
{
"data": {
"id": 666666,
"isFirstJoin": true
},
"success": true,
"code": "111",
"message": "ok"
}
{
"data": {
"hasCardInfo": false,
"cardTotalCount": 1,
"prize": {
"image": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png",
"id": 123453546456,
"name": "prize",
"type": 1
}
},
"success": true,
"code": "111",
"message": "ok"
}
{
"data": null,
"success": true,
"code": "111",
"message": "ok"
}
{
"data": {
},
"success": true,
"code": "111",
"message": "ok"
}
{
"success": true,
"data": {
"id": "123456",
"type": 3,
"name": "吕秀兰",
"image": "https://yun.duiba.com.cn/aurora/assets/8c6cce25b4970d776a4ac89780ffe97b2c69c56c.png"
}
}
{
"data": {
"id": 666666,
"isFirstJoin": true
},
"success": true,
"code": "111",
"message": "ok"
}
{
"data": {
"id": 666666,
"score": 1,
"isNewRecord": false,
"productLink": "http://qnpic.top/yoona2",
"isWinPrize": false,
"level": "2"
},
"success": true,
"code": "111",
"message": "ok"
}
{
"success": true,
"message": "",
"code": "",
"data": {
"ruleIdList": [
"ru_1",
"ru_2",
"ru_3",
"ru_4"
],
"drawStatus": 12,
"prizeId": "aa",
"gameCounts": 1
}
}
\ No newline at end of file
{
"success": true,
"message": "",
"code": "",
"data": 1234
}
\ No newline at end of file
{
"success": true,
"message": "",
"code": "",
"data": {
"type": 1,
"status": 1,
"prize": {
"prizeId": "sp_1",
"prizeType": 1,
"optionId": "sdhjfhjhjjj",
"optionName": "10元话费",
"optionImg": "https://www.baidu.com/xxoo2.png",
"userRecordId": 1235,
"url": "https://www.baidu.com/order/1235"
}
}
}
\ No newline at end of file
{
"success": true,
"message": "",
"data": "<p class=\"p1\">1、什么人可以参与抽奖?</p><p class=\"p1\">同时持有中信银行借记卡和信用卡的客户,活动期间内预约报名(每个自然月均可报名),完成绑定中信银行借记卡并用中信银行手机银行app对本人绑定的信用卡进行自动还款任务即视为达标获得抽奖资格。达标用户将以短信形式通知抽奖。 </p><p>  </p><p class=\"p1\">2、抽奖的时间是什么时候?</p><p class=\"p1\">报名成功次月10日-15日。每期的抽奖资格当期有效,若满足抽奖资格未在有效期内抽奖,资格不保留。首轮达标客户的抽奖开启时间为:7月10-15日。</p><p>  </p><p class=\"p1\">3、活动说明:</p><p class=\"p1\">1)点击“立即抽奖”按钮,摇奖机开始转动,最终摇奖机中间停留的即为您所中的奖品。</p><p class=\"p1\">2)活动期间,每位客户每个自然月均可报名参与活动,预约报名并完成绑定中信银行借记卡并用中信银行手机银行app对本人绑定的信用卡进行自动还款任务即视为达标获得抽奖资格,可获抽奖资格,每位客户每个自然月最多可获一次抽奖机会,请在抽奖有效期内(报名次月10日—15日)通过短信路径或登录手机银行首页——特色服务——还款抽奖——进入页面抽奖,每期的抽奖资格当期有效,若满足抽奖资格未在有效期内抽奖,资格不保留。</p><p class=\"p1\">3)客户抽中的“10元话费”奖励将在当月30日前直接充值到您预留报名的手机号码中,请注意查收;</p><p class=\"p1\">4)大牌券奖励中奖后客户可在活动页面右上角的【我的奖品】中找到,奖品具体使用规则可在奖品详情页查看,大牌权益奖励兑换及使用将会跳转至权益对应的提供方平台,您填写的信息仅用于奖品或权益发放时使用(如姓名、手机号、地址等)。本活动服务由第三方杭州兑吧网络科技有限公司提供,相关责任将由杭州兑吧网络科技有限公司承担,如有问题请咨询该公司客服。中信银行仅为相关活动提供链接服务,不提供任何形式的担保和承诺。大牌券的领取使用有任何问题请致电兑吧客服专线:400-609-0828;</p><p class=\"p1\">5)为保证活动的公平公正,通过不当手段、利用系统漏洞恶意套取奖励等不当途径参与本活动抽奖的客户,中信银行有权终止该客户参与活动的权利并取消其获奖资格;</p><p class=\"p1\">6)凡参与活动的客户,即视为接受活动所有规则,在法律允许范围内,中信银行保留对本次活动的解释权、随时调整本活动优惠信息、变更活动的权利;</p><p class=\"p1\">7)通过本软件参加的任何商业活动,均与Apple Inc.无关;</p><p><span style=\"font-size:10.5ptpx\">8)本次活动授权杭州兑吧网络科技有限公司提供营销服务,若有相关疑问,请致电兑吧客服专线:400-609-0828。</span></p>"
}
\ No newline at end of file
{}
\ No newline at end of file
interface ResData {
/**
* 分组数据
*/
groups: GroupInt[];
//暂时没有工具,不用
resources?: any;
path?: string;
}
interface GroupInt {
/**
* 所有的资源名字,根据,分割,根据后缀区分类型
*
*/
keys: string;//"aa.png,bb.jpg,name.json"
/**
* 文件夹名字吧
*/
name: string;
/**
* 图集
* 线上打包合图可能有多张,暂时发现texturePacker版本问题只有一张
*/
atlas: {
[name: string]: {
"x": number,
"y": number,
"w": number,
"h": number,
"ox": number,
"oy": number,
"sw": number,
"sh": number,
"ro": boolean
},
};
}
interface SkinInt {
name: string,
x: 0,
y: 0,
type: 'container' | 'text' | 'button' | 'sprite' | 'rect' | 'item',//item的不初始化进节点,只作为数据
children?: SkinInt[],
id?: string,
alpha: number,
props?: {
source?: string,
text: string,
size: number,
fillColor: string,
textAlpha: number,
width: number,
height: number,
tUp: string,
tDown: string,
tDisable: string
}
}
/**
* 简单点,有工具的话像egret那样玩,可以自动生成图片组数据
*/
export namespace RES {
let resData: ResData
/**
* 资源路径
*/
export let resPath: string;
/**
* RES单独缓存一下纹理,全局的FYGE缓存纹理对于多page有覆盖的问题;
*/
let textureHash: {
[name: string]: FYGE.Texture;
} = {};
/**
* movieClip的ve数据
*/
let videoEntityHash: {
[name: string]: SvgaParser.VideoEntity
} = {};
/**
* 音频的加载
*/
let soundHash = {}
/**
* 记录组加载完成
*/
let groupsCompleteHash: {
[name: string]: boolean
} = {}
/**
* 记录加载的promise
*/
let groupsPromiseHash: {
[name: string]: Promise<any>
} = {}
/**
* 单独资源加载的promise记录
*/
let singleResPromiseHash: {
[name: string]: Promise<any>
} = {}
/**
*
* @param res 资源数据,就是对象,不考虑加载json先
* res格式{
* path:1111/
* groups: [
* {
*
* }
* ];
* }
* @param path
*/
export function loadConfig(res) {
resData = res;
resPath = res.path;
}
/**
* 根据组名加载一组资源,通常用于加载一个视图的的所有资源
* 里的promise的resolve并没有返回值
* @param name
*/
export function loadGroup(name: string): Promise<void> {
//已经加载完成的直接返回
if (groupsCompleteHash[name]) {//其实直接return就行
return new Promise((resolve) => {
resolve()
})
}
//如果是正在加载中的,返回正在加载中的promise
if (groupsPromiseHash[name]) {
return groupsPromiseHash[name];
}
//如果首次加载
//获取资源组
let arr = getGroupResByName(name);
//如果不存在arr,直接返回空p,且标记完成
if (!arr || !arr.length) {
groupsCompleteHash[name] = true;
return new Promise((resolve) => {
resolve()
})
}
// 建一个promise
let p:Promise<void> = new Promise((resolve, reject) => {
loadResList((s) => {
//移除
delete groupsPromiseHash[name];
if (s) {
groupsCompleteHash[name] = true;
resolve()
} else {
reject();
}
}, arr/*, resPath + name*/, name)
})
groupsPromiseHash[name] = p;
return p;
}
/**
* var textue = await RES.getResAsync(str);
* @param str 可以是网络图片路径或键值
* @param comFun 加载回调
* @param thisObj this指向
*/
export function getResAsync(str: string, comFun?: (res: any, str: string) => void, thisObj?: any, groupname?: string): Promise<any> {
// var arr = str.split(".");
var type = str.substring(str.lastIndexOf(".") + 1, str.length);
//如果是图片
if (type == "png" || type == "jpg") {
//原先就有了,加载过的,且已加载完成的
let cached = textureHash[str] || FYGE.TextureCache[str];
if (cached) {
//回调形式
comFun && comFun.call(thisObj, cached, str)
// return cached;
return new Promise((r) => { //为了能.then
r(cached)
})
}
//未加载完成的
else if (singleResPromiseHash[str]) {
return returnSingleResPromise(str, comFun, thisObj)
}
else {
//判断是否在资源里,判断是否要加载图集,注意已排除jpg
var groupName = groupname || hasRes(str);
if (groupName && type != "jpg") {
var group = getGroupByName(groupName);
if (group && group.atlas) {
//加载图集,现在就一张,以后有机会改
var json = groupName + ".json"//group.atlas.split(",")[0];
//找json是否在加载中
if (singleResPromiseHash[json]) {
return singleResPromiseHash[json].then(
(r) => {
//正在加载中,getResAsync首次加载的回调会缓存,完成后返回需要的,
let cached = textureHash[str] || FYGE.TextureCache[str]
comFun && comFun.call(thisObj, cached, str)
return cached;
},
() => {
comFun && comFun.call(thisObj, null, str)
return null
}
)
} else {
return getResAsync(json)
.then(() => {
let cached = textureHash[str] || FYGE.TextureCache[str]
comFun && comFun.call(thisObj, cached, str)
return cached
}, () => {
comFun && comFun.call(thisObj, null, str)
return null
})
}
}
}
var src = groupName ? resPath + groupName + "/" + str : str;
var p = new Promise((resolve, reject) => {
FYGE.GlobalLoader.loadImage((s, image) => {
//移除
delete singleResPromiseHash[str];
//入缓存
if (s) {
let cached = FYGE.Texture.from(image);
//入RES,
textureHash[str] = cached;
//入全局
FYGE.Texture.addToCache(cached, str);
comFun && comFun.call(thisObj, cached, str)
resolve(cached)
} else {
comFun && comFun.call(thisObj, null, str)
reject()
}
}, src)
})
singleResPromiseHash[str] = p
return p
}
}
else if (type == "svga") {//暂时不用,小程序时,也千万别把svga放入其他组,开发时和线上做区分
if (videoEntityHash[str]) {
comFun && comFun.call(thisObj, videoEntityHash[str], str)
return new Promise((r) => {
r(videoEntityHash[str])
})
}
//未加载完成的
else if (singleResPromiseHash[str]) {
return returnSingleResPromise(str, comFun, thisObj)
} else {
var groupName = hasRes(str);
var src = groupName ? resPath + groupName + "/" + str : str;
var p = new Promise((resolve, reject) => {
SvgaParser.loadSvga(
src,
(v) => {
delete singleResPromiseHash[str];
videoEntityHash[str] = v;
comFun && comFun.call(thisObj, v, str)
resolve(v)
},
(err) => {
delete singleResPromiseHash[str];
comFun && comFun.call(thisObj, null, str)
reject(err)
}
)
//@ts-ignore //以后要加
// FYGE.GlobalLoader.loadSvga((s, v) => {
// //移除
// delete singleResPromiseHash[str];
// //入缓存
// if (s) {
// if (s) videoEntityHash[str] = v;
// comFun && comFun.call(thisObj, v, str)
// resolve(v)
// } else {
// comFun && comFun.call(thisObj, null, str)
// reject()
// }
// }, src)
})
singleResPromiseHash[str] = p;
return p
}
}
//json图集的话,不晓得用啥判断加载完成,所以不删除promise吧,其实json可能只是数据,不管先
else if (type == "json") {
if (singleResPromiseHash[str]) {
return returnSingleResPromise(str, comFun, thisObj)
} else {
var groupName = hasRes(str);//json现在肯定在内,暂时不能加载其他域名的json
var src = groupName ? resPath + groupName + "/" + str : str;
var p = new Promise((resolve, reject) => {
var jsonData = getGroupByName(groupName).atlas
FYGE.GlobalLoader.loadImage((s, data) => {
if (s) {
//createTextureSheet会自行缓存全局
var t = FYGE.createTextureSheet(new FYGE.BaseTexture(data/*.img*/), jsonData)
//缓存进RES
for (let key in t) textureHash[key] = t[key];
comFun && comFun.call(thisObj, t, str)
resolve(t)
} else {
//加载失败,移除要,否则再次触发加载会出问题
delete singleResPromiseHash[str];
comFun && comFun.call(thisObj, null, str)
reject()
}
}, src.replace("json", "png"))
})
singleResPromiseHash[str] = p
return p
}
}
}
/**
* 待写,根据网络路径加载图片
*/
export function getResByUrl() {
}
/**
* 获取素材,
* @param str
* @return 已加载好得素材或null
*/
export function getRes(str: string)/*: Texture | VideoEntity*/ {
if (!str) return null;
var type = str.substring(str.lastIndexOf(".") + 1, str.length);
if (type == "png" || type == "jpg") {
return textureHash[str] || FYGE.TextureCache[str] || null;
}
else if (type == "svga") {
return videoEntityHash[str] || null;
}
else if (type == "mp3") {
return soundHash[str] || null;
}
}
/**
* 偷懒的方法,加载配置里所有的资源,基本也不用
*/
export function loadAllGroup() {
var groups = resData.groups;
var p = []
groups.forEach((g) => {
p.push(loadGroup(g.name))
})
return Promise.all(p)
}
/**
* 判断是否在资源组里
* 考虑是否init就做表
* 有就返回组名,为了加载路径,不然以后有工具可以放入resources
*/
function hasRes(str: string): string {
for (var i = 0; i < resData.groups.length; i++) {
var group = resData.groups[i];
var keys = group.keys;
if (keys && keys.split(",").indexOf(str) > -1) {
return group.name;
}
//如果是图集的json,altas现在是图集
if (group.atlas && group.name + ".json" == str) {
return group.name;
}
}
return null
}
/**
* 处理数据,获得所有资源单项
* @param name
*/
function getGroupResByName(name: string) {
var group: GroupInt = getGroupByName(name);
if (!group) return null;
//判断加载图集还是单图
if (group.atlas) {
// var arr: string[] = [].concat(group.atlas.split(","));
var arr = [name + ".json"]
//再添加非图片的资源,和图集已排除jpg
if (group.keys) {
arr = arr.concat(group.keys.split(",").filter((k: string) => {
return k.substr(-4) != ".png" //&& k.substr(-4) != ".jpg"
}))
}
return arr
}
else if (group.keys) {
return group.keys.split(",")
} else {
return null
}
}
/**
* 根据名字找组
* @param name
*/
function getGroupByName(name: string): GroupInt {
var groups = resData.groups;
var group: GroupInt;
for (var i = 0; i < groups.length; i++) {
if (groups[i].name === name) {
group = groups[i];
break;
}
}
return group
}
/**
* 新版的加载一列资源
* @param callback
* @param arr
*/
function loadResList(callback: (allLoaded: boolean) => void, arr: string[], groupName:string) {
let count = 0;
let countAll = arr.length;
if (!countAll) callback(true);
let mark = true;
for (var i = 0; i < countAll; i++) {
let resName = arr[i];
getResAsync(resName, (res, str) => {
//标记失败,如果有一项资源加载失败,标记下
if (!res) mark = false
if (++count == countAll) callback(mark);
}, this, groupName)
}
}
/**
*
* @param str
* @param comFun
* @param thisObj
*/
function returnSingleResPromise(str: string, comFun?: (res: any, str: string) => void, thisObj?: any) {
//已判断是否存在
singleResPromiseHash[str].then(
(r) => {
comFun && comFun.call(thisObj, r, str)
},
() => {
comFun && comFun.call(thisObj, null, str)
}
)
return singleResPromiseHash[str];
}
//皮肤相关的也放在RES吧
let skinData: SkinInt
/**
* 添加皮肤配置文件
*/
export function loadSkinConfig(skinJson) {
skinData = skinJson;
}
/**
* 根据
* @param con 添加显示对象的容器
* @param skin 皮肤名字或数据
* @param root 根容器,为了添加自定义引用
*/
export function initSkinDisplay(con: FYGE.Container, skin: string | SkinInt, root?: FYGE.Container) {
//@ts-ignore
var data: SkinInt = typeof (skin) == 'string' ? getSkinDataByName(skin) : skin;
if (!data.children || !data.children.length) return;
// for (var i = data.children.length - 1; i >= 0; i--) {
for (var i = 0; i < data.children.length; i++) {
var child = data.children[i];
if (child.type == "item") continue;
var dis = con.addChild(getDisplayByData(child));
if (root && child.id) root[child.id] = dis;
if (child.type == "container") initSkinDisplay(dis, child, root);
}
}
/**
* 遍历根据名字找节点数据,只会是container的
* @param skinName
*/
export function getSkinDataByName(skinName: string, skinNode: SkinInt = skinData): SkinInt {
if (!skinNode || !skinNode.children || !skinNode.children.length) return null;
for (var i = 0; i < skinNode.children.length; i++) {
var child = skinNode.children[i];
if (child.name == skinName && (child.type == "container" || child.type == "item")) return child;
var gson = getSkinDataByName(skinName, child);
if (gson) return gson
}
return null;
}
/**
* 通过数据创建显示对象
* @param data
*/
function getDisplayByData(data: SkinInt): FYGE.Container {
var dis: FYGE.Container;
switch (data.type) {
case "container":
dis = new FYGE.Container();
break;
case "button":
dis = new FYGE.Button(
getRes(data.props.tUp),
data.props.tDown ? getRes(data.props.tDown) : null,
data.props.tDisable ? getRes(data.props.tDisable) : null,
);
break;
case "text":
dis = new FYGE.TextField();
for (let key in data.props) dis[key] = data.props[key];
break;
case "sprite":
dis = new FYGE.Sprite(getRes(data.props.source));
break;
case "rect":
// dis = new FYGE.Graphics()
// .beginFill(data.props.fillColor)
// .drawRect(0, 0, data.props.width, data.props.height)
// .endFill();
dis = new FYGE.Shape()
//@ts-ignore
dis.beginFill(FYGE.string2hex(data.props.fillColor))
//@ts-ignore
dis.drawRect(0, 0, data.props.width, data.props.height)
//@ts-ignore
dis.endFill();
break;
}
dis.name = data.name;
dis.alpha = data.alpha || 1;
dis.position.set(data.x, data.y);
// if (data.type == "text") dis.y -= 4;//文本莫名偏下,移动下,手机调试的时候也试试
return dis;
}
/**
* 销毁组纹理
* 线上才有用,待测试,TODO
* @param name
*/
export function destroyGroup(name: string) {
var group: GroupInt = getGroupByName(name);
if (!group) return;
var arr = [];
if (group.keys) {
arr = group.keys.split(",")
}
var removedBase = [];
//散图清除
for (var i = 0; i < arr.length; i++) {
var t: FYGE.Texture = getRes(arr[i]);
if (t) {
//base的清除,不要重复清除
if (removedBase.indexOf(t.baseTexture) == -1) {
t.baseTexture.destroy();
removedBase.push(t.baseTexture)
}
//自己纹理清除
t.destroy();
}
//RES里单独缓存的清除
delete textureHash[arr[i]]
}
}
//貌似不需要,为了加载过一次的资源不用重新加载
function destroyRES() {
}
}
/**
* 到时放到Loader里,增加open类型、headers、参数、等等
* @param options
*/
export function ajax(options: ajaxParameterInt) {
/**
* 默认为GET请求
*/
options.type = options.type || "GET";
/**
* 返回值类型默认为json
*/
options.dataType = options.dataType || 'json';
/**
* 默认为异步请求
*/
options.async = options.async === false ? false : true;
/**
* 对需要传入的参数的处理
*/
var params = getParams(options.data);
var xhr: XMLHttpRequest;
/**
* 创建一个 ajax请求
* W3C标准和IE标准
*/
if (window["XMLHttpRequest"]) {
//W3C标准
xhr = new window["XMLHttpRequest"]();
} else if (window["ActiveXObject"]) {
//@ts-ignore IE标准
xhr = new ActiveXObject('Microsoft.XMLHTTP')
} else {
console.error("当前浏览器不支持XHR请求")
return
}
//返回类型
xhr.responseType = options.dataType;
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
var status = xhr.status;
if (status >= 200 && status < 300) {
options.success && options.success(xhr.response);
} else {
options.error && options.error(status || "error");
}
}
};
if (options.type == 'GET') {
xhr.open("GET", options.url + '?' + params, options.async);
xhr.send(null)
} else if (options.type == 'POST') {
/**
*打开请求
*/
xhr.open('POST', options.url, options.async);//待测试,post请求
/**
* POST请求设置请求头
*/
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
if (options.headers) {
for (let key in options.headers) {
xhr.setRequestHeader(key, options.headers[key]);
}
}
/**
* 发送请求参数
*/
xhr.send(params);
}
}
/**
* jsonp模拟,不考虑回调
* @param url
* @param params
*/
export function jsonp(url: string, params: any) {
const src = url + '?' + getParams(params);
const scriptEl = document.createElement('script');
scriptEl.src = src;
scriptEl.onload = function () {//body考虑改成head
document.body.removeChild(scriptEl);
};
scriptEl.onerror = function () {
document.body.removeChild(scriptEl);
};
document.body.appendChild(scriptEl);
}
/**
* 对象参数的处理
* @param data
* @returns {string}
*/
function getParams(data): string {
if (!data) return "";//没有就返回空字符
var arr = [];
for (var param in data) {
arr.push(encodeURIComponent(param) + '=' + encodeURIComponent(data[param]));
}
//不缓存
arr.push('_=' + Date.now());
return arr.join('&');
}
//基本没用到过cache,先不加
interface ajaxParameterInt {
url: string,
data?: any,
type?: "GET" | "POST",
async?: boolean,
dataType?: 'text' | 'json' | 'arraybuffer',
headers?: any,
success?: (res: any) => void,
error?: (err: any) => void
}
/**
* 对封装好的ajax请求进行调用
* */
// ajax({
// url: "", //请求地址
// type: 'GET', //请求方式
// data: { name: 'zhangsan', age: '23', email: '2372734044@qq.com' }, //请求参数
// dataType: "json", // 返回值类型的设定
// async: false, //是否异步
// headers: {},
// success: function (response) {
// console.log(response); // 此处执行请求成功后的代码
// },
// error: function (status) {
// console.log('状态码为' + status); // 此处为执行成功后的代码
// }
// });
import { destroyWaiting } from "./waitingCtrl";
import PanelCtrl from "./panelCtrl";
import SceneCtrl from "./sceneCtrl";
import { destroyToast } from "./toastCtrl";
import ConfirmPanel from "../../src/common/IConfirmPanel";
export { showToast } from "./toastCtrl";
export * from "./waitingCtrl";
/**
* 展示弹框
* @param panel 弹框类
* @param data 数据
*/
export const showPanel = (panel: any, data?: any) => {
return PanelCtrl.instance.show(panel, data)
}
export const showConfirm = (panel: any, data?: any) => {
const confirmPanel: ConfirmPanel = PanelCtrl.instance.show(panel, data);
return confirmPanel.makePromise();
}
/**
* 关闭所有弹框
*/
export const closeAllPanels = () => {
PanelCtrl.instance.closeAll();
}
/**
* 关闭当前弹框
*/
export const closeCurrentPanel = () => {
PanelCtrl.instance.closeCurrent();
}
/**
* 替换场景
* @param scene
* @param data
*/
export const changeScene = (scene: any, data?: any) => {
SceneCtrl.instance.change(scene, data)
}
/**
* 获取当前场景
*/
export function getCurrentScene(): any {
return SceneCtrl.instance.currentScene
}
/**
* 淘宝小程序的alert
* @param {string} title
* @param {string} content
*/
export const showAlert = (title?: string, content?: string) => {
//@ts-ignore
if (my) {
//@ts-ignore
my.alert({
title: title || "",
content: content || ""
});
} else {
console.log(title, content)
}
}
/**
* 替换setTimeout 因为页面销毁时setTimeout不会停
* 所以干脆用Tween的
* @param {Function} callback
* @param {number} time 毫秒计
*/
export function wait(callback: () => void, time: number): {} {
let obj = {};
FYGE.Tween.get(obj)
.wait(time)
.call(callback)
return obj
}
export function clearWait(obj: {}) {
obj && FYGE.Tween.removeTweens(obj);
}
/**
* 递归清除显示对象里面所有的Tween
* @param obj
* @param isRecursive 默认true,递归移除子级
*/
export function removeTweens(obj, isRecursive: boolean = true) {
if (!obj) return
FYGE.Tween.removeTweens(obj);
if (!isRecursive || !obj.children || !obj.children.length) return
obj.children.forEach(child => {
removeTweens(child)
});
}
/**
* 销毁方法
*/
export function destroyAllCtrls() {
destroyToast();
destroyWaiting();
PanelCtrl.instance.destroy();
SceneCtrl.instance.destroy();
}
import { Panel } from "../views/Panel";
import { layers } from "../views/layers";
import { showWaiting, hideWaiting } from "./waitingCtrl";
import { showToast } from "./toastCtrl";
export default class PanelCtrl {
/**
* 父级容器
*/
private _parent: FYGE.Container;
/**
* 半透明黑色背景
*/
private _bg: FYGE.Shape;//FYGE.Graphics;
/**
* 所有的弹框
*/
private stacks: Panel[] = [];
private static _instance: PanelCtrl;
static get instance() {
return PanelCtrl._instance || (PanelCtrl._instance = new PanelCtrl())
}
init(parent: FYGE.Container) {
this._parent = parent;
let bg = new FYGE.Shape();//Graphics()//Shape();
bg.beginFill(0);
bg.drawRect(//引用适配
layers.stageOffsetX - parent.x,
layers.stageOffsetY - parent.y,
layers.stageWidth,
layers.stageHeight
);
bg.endFill();
bg.hitTestByPixel = false;
bg.visible = false;
this._parent.addChild(bg);
this._bg = bg;
}
/**
* 关闭所有弹框
*/
closeAll() {
this.stacks.forEach(e => e.hidePanel());
}
show<T extends Panel>(cls: any, data?: any): T {
showWaiting()
const panel: T = new cls(data);
this.add(panel);
this.stacks.push(panel);
panel.onLoaded = () => {
hideWaiting();
this.updateView(false);//这里更新不显示动画先,自行判断是否显示
//start只执行一边
panel.start(data);
//如果是最后一个才显示动画
if (panel.visible) panel.showAni();
}
//资源加载失败时
panel.onLoadError = () => {
hideWaiting();
showToast("资源加载失败")
panel.removeEventListener('onDestroy', this.onPanelHide, this);
this.remove(panel);
}
return panel;
}
private bgAni: "hide" | "show";
private updateView(showPanelAni: boolean = true) {
//没有弹框的时候
console.info('当前弹窗个数:', this.stacks.length)
if (!this.stacks.length) {
// this._bg.visible = false;
// this._current = null;
// this._parent.visible = false;
console.info(this._bg.visible)
if (this._bg.visible) {//原先背景存在时,待测试
this.bgAni = "hide"
FYGE.Tween.removeTweens(this._bg);
FYGE.Tween.get(this._bg)
.to({ alpha: 0 }, 200, FYGE.Ease.cubicOut)
.call(() => {
this._bg.visible = false;
this._current = null;
this._parent.visible = false;
})
}
} else {
//显示弹框层
this._parent.visible = true;
if (this.bgAni == "hide") {//如果正在执行蒙层消失动画,
this.bgAni = "show"
FYGE.Tween.removeTweens(this._bg);
this._bg.alpha = 0.7;
}
//如果首次出现弹框,加个动画
if (this._bg.visible === false) {
this._bg.visible = true;
this._bg.alpha = 0;
FYGE.Tween.get(this._bg).to({ alpha: 0.7 }, 200, FYGE.Ease.cubicOut)
}
}
for (let i = 0; i < this.stacks.length; i++) {
if (i < this.stacks.length - 1) {
this.stacks[i].visible = false;
} else {
this.stacks[i].visible = true;
if (showPanelAni) this.stacks[i].showAni();
this._current = this.stacks[i];
}
}
}
/**
* 添加进父级并添加事件
* @param panel
*/
private add(panel: Panel) {
this._parent.addChild(panel);
panel.addEventListener('onDestroy', this.onPanelHide, this);
}
/**
* 移除
* @param panel
*/
private remove(panel: Panel) {
this._parent.removeChild(panel);
this.stacks = this.stacks.filter(e => e != panel);
}
/**
* 弹框移除时执行
* @param e
*/
private onPanelHide(e: FYGE.Event) {
const panel = e.target as Panel;
panel.removeEventListener('onDestroy', this.onPanelHide, this);
this.remove(panel);
this.updateView();
}
//当前弹框
private _current: Panel;
/**
* 关闭当前弹框
*/
closeCurrent() {
if (this._current) {
this._current.hidePanel();
// this._current.removeEventListener('onDestroy', this.onPanelHide, this);
// this.remove(this._current);
// this.updateView();
}
}
destroy() {
PanelCtrl._instance = null;
this.stacks = null;
this._current = null;
this._parent = null;
FYGE.Tween.removeTweens(this._bg);
this._bg = null;
}
}
\ No newline at end of file
import { Scene } from "../views/Scene";
import { showWaiting, hideWaiting } from "./waitingCtrl";
import { showToast } from "./toastCtrl";
export default class SceneCtrl {
private _parent: FYGE.Container;
private _currentScene: Scene;
private static _instance: SceneCtrl;
static get instance() {
return SceneCtrl._instance || (SceneCtrl._instance = new SceneCtrl())
}
init(parent: FYGE.Container) {
this._parent = parent;
}
change(cls: any, data?: any) {
//如果是同一个场景,考虑是替换还是return
// if (this._currentScene && this._currentScene instanceof cls) return;//new一个得了,playScene维护太蛋疼,到时看性能吧
let scene: Scene = new cls(data);
scene.visible = false;
showWaiting();
let preScene: Scene = this._currentScene;
scene.onLoaded = () => {
hideWaiting();
scene.showAni(() => {
if (preScene) preScene.destroy();
})
scene.visible = true;
//start里可能处理资源信息,所以在onLoaded后执行
scene.start(data);
}
//加载失败,继续用之前的场景,移除scene
scene.onLoadError = () => {
hideWaiting();
showToast("资源加载失败")
this._currentScene = preScene || null;
this._parent.removeChild(scene);
}
this._currentScene = scene;
this._parent.addChild(scene);
}
get currentScene() {
return this._currentScene
}
destroy() {
SceneCtrl._instance = null;
this._currentScene = null;
this._parent = null;
}
}
\ No newline at end of file
import { layers } from "../views/layers";
import { RES } from "../RES";
let inited = false;
let _toast: Toast;
let _parent: FYGE.Container;
let startY: number
let endY: number
const initToast = () => {
if (!inited) {
inited = true;
_toast = new Toast();
_parent = layers.toastLayer;
_toast.alpha = 0;
_toast.x = layers.stageOffsetX - _parent.x + (layers.stageWidth - _toast.width) / 2;
var h = _toast.height;
var y = layers.stageOffsetY - _parent.y;
startY = y - h;
endY = y + (layers.stageHeight - h) / 2;
}
}
export const showToast = (msg: string) => {
initToast();
_toast.show(msg)
_parent.addChild(_toast);
FYGE.Tween.removeTweens(_toast);
FYGE.Tween.get(_toast)//动画看需求
.set({ y: startY, alpha: 1 })
.to({ y: endY }, 500, FYGE.Ease.quartOut)
.wait(800)
.to({ alpha: 0 }, 300)
.call(() => {
_parent.removeChild(_toast);
})
}
/**
* 对于之前淘宝小程序遇到的问题,需要销毁,否则会出问题
*/
export const destroyToast = () => {
if (inited && _toast && !_toast.destroyed) {
_toast.destroy();
_toast = null;
_parent = null;
inited = false;
}
}
/**
* toast类,不对外导出,适配居中有问题,有时间改
* 自身居中,
*/
class Toast extends FYGE.Container {
msg: FYGE.TextField;
bg: FYGE.Sprite;
PADDING = 40;
constructor() {
super();
this.mouseChildren = false;
this.mouseEnable = false;
var toastBgTexture: FYGE.Texture = RES.getRes("toastBg.png");
this.bg = new FYGE.Sprite(toastBgTexture);
// this.bg.x = (750 - 460) / 2// (layers.stageWidth - this.bg.width) / 2
this.addChild(this.bg);
this.msg = new FYGE.TextField();
this.msg.size = 28;
this.msg.fillColor = "0xffffff";
this.msg.text = "";
this.msg.verticalAlign = FYGE.VERTICAL_ALIGN.MIDDLE;
this.msg.textHeight = toastBgTexture.height;
this.msg.textAlign = FYGE.TEXT_ALIGN.CENTER;
this.addChild(this.msg)
}
/**
* 显示时调用
* @param msg
*/
show(msg: string) {
this.msg.text = msg;
//文本居中适配
this.msg.x = (this.bg.width - this.msg.textWidth) / 2//(layers.stageWidth - this.msg.textWidth) / 2;
//是否需要根据文本宽度缩放背景
// this.bg.width = Math.min(this.msg.textWidth + this.PADDING * 2, 523);
//背景居中适配,由于上面一行注释,那这行就构造函数里只执行一次吧
// this.bg.x = (layers.stageWidth - this.bg.width) / 2
}
destroy() {
FYGE.Tween.removeTweens(this);
super.destroy();
this.msg = null
this.bg = null;
}
}
\ No newline at end of file
import { RES } from "../RES";
import { layers } from "../views/layers";
import { showAlert } from ".";
import { sendTbNet, TbNetName } from "../../src/TaoBaoNet";
let inited = false;
let _waiting: Waiting;
let _parent: FYGE.Container
const initWaiting = () => {
if (!inited) {
inited = true;
const waiting = new Waiting();
_parent = layers.topLayer;
_waiting = waiting;
//居中偏移
var offX = (layers.stageWidth - 160/*_waiting.width*/) / 2;
var offY = (layers.stageHeight - _waiting.height) / 2;
//位置适配
_waiting.x = layers.stageOffsetX - _parent.x + offX;
_waiting.y = layers.stageOffsetY - _parent.y + offY;
//阻止事件用
var bg: FYGE.Graphics = new FYGE.Graphics()
.beginFill(0x000000)
.drawRect(-offX, -offY, layers.stageWidth, layers.stageHeight)
.endFill();
bg.alpha = 0;
_waiting.addChildAt(bg, 0);
}
}
let customLoadingClose: Function // 小程序loading 关闭方法
/**
* 显示菊花圈
* @param msg 尽量三个字
*/
export const showWaiting = async (msg?: string) => {
initWaiting();
_waiting.show(msg)
_parent.addChild(_waiting);
// sendTbNet(TbNetName.showCustomLoading, {}, (s, d) => {
// if (s) {
// customLoadingClose = d.data
// }
// } , null, true)
}
/**
* 隐藏菊花圈
*/
export const hideWaiting = () => {
_parent.removeChild(_waiting);
// typeof customLoadingClose == 'function' && customLoadingClose()
}
export const destroyWaiting = () => {
if (inited && _waiting && !_waiting.destroyed) {
_waiting.destroy();
_waiting = null;
_parent = null;
inited = false;
}
}
/**
* 菊花圈,有机会重写,应该适应所有场景居中
*/
class Waiting extends FYGE.Container {
msg: FYGE.TextField;
constructor() {
super();
//圆角矩形背景
var rectBgTexture: FYGE.Texture = RES.getRes("waitingBg.png")
var rectBg = new FYGE.Sprite(rectBgTexture);
this.addChild(rectBg);
var rotTexture: FYGE.Texture = RES.getRes("waitingRot.png")
let rot = new FYGE.Sprite(rotTexture);
rot.x = (rectBgTexture.width - rotTexture.width) / 2
rot.y = 47//533;
rot.anchorX = rotTexture.width / 2;
rot.anchorY = rotTexture.height / 2;
this.addChild(rot);
let count = 0;
rot.addEventListener(FYGE.Event.ENTER_FRAME, () => {
count++;
if (count % 30 == 0) rot.rotation += 45;
}, this)
this.msg = new FYGE.TextField();
this.msg.y = 125;
this.msg.textWidth = rectBgTexture.width;
this.msg.textAlign = FYGE.TEXT_ALIGN.CENTER;
this.msg.size = 26
this.msg.fillColor = "#ffffff";
this.addChild(this.msg);
}
show(msg: string = "加载中") {
this.msg.text = msg;
}
destroy() {
super.destroy();
this.msg = null;
}
}
const _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
/**
* base64编码汉字,
* 一般用于链接参数传递,
* 先base64.encode,再encodeURIComponent后带入,取参数时会decodeURIComponent,然后再base64.decode后
* 直接调用Base64.ins
*/
export class Base64 {
// private property
// _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
private static instance: Base64;
public static get ins(): Base64 {
if (!this.instance) {
this.instance = new Base64();
}
return this.instance;
}
constructor() {
}
// public method for encoding
encode(input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = this._utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
decode(input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = this._utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
private _utf8_encode(string) {
string = string.replace(/\r\n/g, "\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
private _utf8_decode(utftext) {
var string = "";
var i = 0;
var c = 0;
var c2 = 0;
var c3 = 0
while (i < utftext.length) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if ((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i + 1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i + 1);
c3 = utftext.charCodeAt(i + 2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
\ No newline at end of file
/**
* 回收池
*/
export class GPool {
private static pool = {};
/**
* 取出
* @param name
*/
public static takeOut(name: string) {
if (this.pool[name] && this.pool[name].length) {
return this.pool[name].shift();
}
return null;
}
/**
* 回收
* @param name
* @param obj
*/
public static recover(name: string, obj) {
if (!this.pool[name]) {
this.pool[name] = [];
}
this.pool[name].push(obj);
}
}
\ No newline at end of file
/**
* 用到的和业务相关的
* 各种静态方法汇总
*
* 获取修改链接参数
* 获取cookie
* 缓存相关
* 数组相关
*
*/
export class GTool {
/**
* 读取缓存
*/
public static readCache(key: string/*, type: string = 'localStorage'*/) {
//@ts-ignore
return my ? my.getStorageSync({ key: key }).data : localStorage ? localStorage.getItem(key) : null;
// if (!window.localStorage) {
// return false;
// }
// return window[type].getItem(key);
}
/**
* 写缓存
*/
public static writeCache(key: string, value: any = 'true'/*, type: string = 'localStorage'*/) {
//@ts-ignore
my ? my.setStorageSync({ key: key, data: value }) : localStorage && localStorage.setItem(key, value);
// if (!window.localStorage) {
// // trace(Func.replace(SysLang.lang_012, [type]));
// return;
// }
// window[type].setItem(key, value);
}
/**
* 获得cacheKey今日次数
* 第二天归0重新计数
* @param cacheKey
*/
public static returnTodayTimes(cacheKey: string): number {
var year1 = this.readCache("year" + cacheKey);
var month1 = this.readCache("month" + cacheKey);
var day1 = this.readCache("day" + cacheKey);
var date = new Date();
var year2 = date.getFullYear().toString();
var month2 = date.getMonth().toString();
var day2 = date.getDate().toString();
if (this.int(year2) <= this.int(year1)) {
if (this.int(month2) <= this.int(month1)) {
if (this.int(day2) <= this.int(day1)) {
return this.int(this.readCache(cacheKey));
}
}
}
//如果不是同一天了,归0
var today = "0";
this.writeCache("year" + cacheKey, year2);
this.writeCache("month" + cacheKey, month2);
this.writeCache("day" + cacheKey, day2);
this.writeCache(cacheKey, today);
return 0;
}
/**
* 随机,两个参数时是数值范围,比如randomT(1,10),一个参数时是数组
* @param e
* @param n
*/
public static randomT(e, n?) {
return e && "number" == typeof e.length && e.length ? e[Math.floor(Math.random() * e.length)] : ("number" != typeof n && (n = e || 1, e = 0), e + Math.random() * (n - e))
}
/**
* 从数组中移除一个元素
* @param e 元素
* @param arr 数组
*/
public static removeEle(e, arr) {
var index = arr.indexOf(e);
if (index >= 0) {
arr.splice(index, 1)
}
}
/**
* 数组中插入一个数值,按顺序的
* 数组是从小到大的
* @param num
* @param arr
*/
public static insert(num, arr) {
for (var i = arr.length - 1; i >= 0; i--) {
if (num > arr[i]) {
//在arr[i]后加num
arr.splice(i + 1, 0, num);
break
}
}
}
/**
* 获取start到end里的n个整数
* @param start 0
* @param end 19
* @param n 3
*/
public static getRandomNumber(start: number, end: number, n: number): number[] {
var arr = [];
for (var i = 0; i < n; i++) {
var number = Math.floor(Math.random() * (end - start + 1) + start);
if (arr.indexOf(number) < 0) {
arr.push(number);
} else {
i--;
}
}
return arr;
}
/**
* 打乱数组,改变原数组,返回原数组引用
* @param arr
*/
public static disturbArr<T>(arr: T[]): T[] {
return arr.sort(function () {
return (0.5 - Math.random());
});
}
/**
* 其实打乱数组取前几个就行
* 随机取数组arr中count个元素,不改变原数组
* @param arr
* @param count
*/
public static getRandomArrayElements(arr: any[], count: number) {
var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
//如果count大于等于数组长度,返回所有数组
if (min <= 0) return shuffled;
if (count <= 0) return [];
//随机排序,然后取出后面的元素
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
/**
* 随机取数组arr中count个元素,原数组减少count个
* @param arr
* @param count
*/
public static getRandomArrayElementsEx(arr: any[], count: number): any[] {
//如果count大于等于数组长度,返回所有数组
if (arr.length <= count) return arr.slice();
if (count <= 0) return [];
var arrCopy = arr.slice();
var outArr = [];
while (count--) {
var rand = Math.floor(Math.random() * arrCopy.length);
var ele = arrCopy.splice(rand, 1)[0];
outArr.push(ele);
}
return outArr
}
/**
* 向下取整,或把字符串执行parseInt(字符串转数字取整数部分)
* @param n 数字或字符串
*/
private static int(n: any): number {
return n >> 0;//~~n
};
/**
* emoji正则式
*/
public static emojiReg = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig
/**
* 在字符串间加空格
* @param str
*/
public static addSpaceInString(str: string) {
if (!str.length || str.length == 1) return str;
var txt = "";
//每个字符后加空格
for (var i = 0; i < str.length - 1; i++) {
txt = txt + str[i] + " ";
}
txt = txt + str[str.length - 1]
return txt
}
/**
* 毫秒剩余时间转成时分秒
* 1小时1分1秒
* @param timeStamp
*/
public static getShiFenMiaoByTimeStamp(timeStamp: number) {
var hours: any = Math.floor((timeStamp % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes: any = Math.floor((timeStamp % (1000 * 60 * 60)) / (1000 * 60));
// var seconds: any = (timeStamp % (1000 * 60)) / 1000;
var seconds: any = Math.floor((timeStamp % (1000 * 60)) / 1000);
hours = hours < 10 ? ('0' + hours) : hours;
minutes = minutes < 10 ? ('0' + minutes) : minutes;
seconds = seconds < 10 && seconds >= 1 ? ('0' + seconds) : seconds;
// return hours + " :" + minutes + " :" + seconds;
return hours + "小时" + minutes + "分" + seconds + "秒";
}
/**
* 获取字符串真实长度,中文算两个
* @param str
*/
static getRealStringLength(str: string): number {
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) realLength += 1;
else realLength += 2;
}
return realLength;
}
/**
* 切字符串
* @param str
* @param realLength
* @param tailStr
*/
static cutStringAcoRealLength(str: string, limit: number, tailStr: string = "...") {
let length = 0;
let out = "";
for (let i of str) {
let charCode = i.charCodeAt(0);
if (charCode >= 0 && charCode <= 128) length += 1;
else length += 2;
if (length <= limit) {
out = out.concat(i);
} else {
out = out.concat(tailStr);
break;
}
}
return out;
}
/**
* 判断是否是数组
* @param obj
*/
static isArray(obj: any): boolean {
if (Array.isArray) return Array.isArray(obj);
return Object.prototype.toString.call(obj) === '[object Array]';
}
}
//entries兼容
if (!Object.entries) {
Object.entries = function (obj) {
var ownProps = Object.keys(obj),
i = ownProps.length,
resArray = new Array(i);
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
}
//数组fill方法兼容
if (!Array.prototype.fill) {
Object.defineProperty(Array.prototype, 'fill', {
value: function (value) {
// Steps 1-2.
if (this == null) {
throw new TypeError('this is null or not defined');
}
var O = Object(this);
// Steps 3-5.
var len = O.length >>> 0;
// Steps 6-7.
var start = arguments[1];
var relativeStart = start >> 0;
// Step 8.
var k = relativeStart < 0 ?
Math.max(len + relativeStart, 0) :
Math.min(relativeStart, len);
// Steps 9-10.
var end = arguments[2];
var relativeEnd = end === undefined ?
len : end >> 0;
// Step 11.
var final = relativeEnd < 0 ?
Math.max(len + relativeEnd, 0) :
Math.min(relativeEnd, len);
// Step 12.
while (k < final) {
O[k] = value;
k++;
}
// Step 13.
return O;
}
});
}
//数组判断静态方法兼容
if (!Array.isArray) {
//@ts-ignore
Array.isArray = function (arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
/////这里集成一些只有web环境才会用到的方法,链接参数,cookie参数等等
let urlParams: { [key: string]: string | true };
/**
* 获取链接参数
* @param key
*/
export function getUrlParams(key: string): string | true {
if (urlParams) return urlParams[key];
urlParams = {};
let search = window.location.search;
try {
search = top.location.search; //尝试获取顶层的链接
} catch (e) {
}
//获取链接参数
for (let item of search.replace('?', '').split('&')) {
let arr = item.split('=');
urlParams[arr[0]] = arr.length === 1 ? true : decodeURIComponent(arr[1]);
}
return urlParams[key];
}
let cookieParams: { [key: string]: string }
/**
* cookie参数
*/
export function getCookieParams(key: string): string {
if (cookieParams) return cookieParams[key]
cookieParams = {};
var arr1 = document.cookie.split("; ");//由于cookie是通过一个分号+空格的形式串联起来的,所以这里需要先按分号空格截断,变成[name=Jack,pwd=123456,age=22]数组类型;
for (var i = 0; i < arr1.length; i++) {
var arr2 = arr1[i].split("=");//通过=截断,把name=Jack截断成[name,Jack]数组;
cookieParams[arr2[0]] = decodeURIComponent(arr2[1]);
// if (arr2[0] == key) {
// return decodeURIComponent(arr2[1]);
// }
}
return cookieParams[key];
}
/**
* 替换或添加url里的参数
* @param url 修改的url
* @param arg 参数名
* @param arg_val 参数值
*/
export function changeURLArg(url: string, arg: string, arg_val: string) {
var pattern = arg + '=([^&]*)';
var replaceText = arg + '=' + arg_val;
if (url.match(pattern)) {
var tmp = '/(' + arg + '=)([^&]*)/gi';
tmp = url.replace(eval(tmp), replaceText);
return tmp;
} else {
if (url.match('[\?]')) {
return url + '&' + replaceText;
} else {
return url + '?' + replaceText;
}
}
}
/**
* 输入框ios兼容,如果加过输入框,加
*/
export function inputFeildIosEnable() {
var u = navigator.userAgent, app = navigator.appVersion
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isIOS) {
setTimeout(() => {
document.getElementsByTagName('input')[0].onblur = function () {
if (isIOS) {
blurAdjust()
// alert("1231321233")
}
};
}, 50)
}
// 解决苹果不回弹页面
function blurAdjust() {
setTimeout(() => {
// alert("1231321233")
if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
return
}
let result = 'pc';
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS
result = 'ios'
} else if (/(Android)/i.test(navigator.userAgent)) {  //判断Android
result = 'android'
}
if (result = 'ios') {
document.activeElement["scrollIntoViewIfNeeded"](true);
}
}, 100)
}
}
/**
* 处理iOS 微信客户端弹窗状态下调起输入法后关闭输入法页面元素错位解决办法
* 输入框不能在屏幕外下面放dom,否则回弹有问题
*/
export function inputIosAdapte() {
var ua = window.navigator.userAgent.toLowerCase();
if (/iphone|ipod|ipad/i.test(navigator.appVersion) && /MicroMessenger/i.test(ua)) {
document.body.addEventListener('focusout', () => {
console.log('focusout')
window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })
});
}
}
let el: HTMLDivElement;
/**
* html文本转纯文本
* @param htmlText
*/
export function htmlToPureText(htmlText: string) {
if (!el) el = document.createElement('div');
el.innerHTML = htmlText;
document.body.appendChild(el);
let pureText = el.innerText;
document.body.removeChild(el);
return pureText;
}
\ No newline at end of file
export const duiba_md5 = (function (/*$*/) {
// function safe_add(x, y) {
// var lsw = (x & 65535) + (y & 65535), msw = (x >> 16) + (y >> 16) + (lsw >> 16);
// return (msw << 16) | (lsw & 65535)
// }
function bit_rol(num, cnt) {
return (num << cnt) | (num >>> (32 - cnt))
}
function md5_cmn(q, a, b, x, s, t) {
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
}
function md5_ff(a, b, c, d, x, s, t) {
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
}
function md5_gg(a, b, c, d, x, s, t) {
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
}
function md5_hh(a, b, c, d, x, s, t) {
return md5_cmn(b ^ c ^ d, a, b, x, s, t)
}
function md5_ii(a, b, c, d, x, s, t) {
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
}
function binl_md5(x, len) {
x[len >> 5] |= 128 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var i, olda, oldb, oldc, oldd, a = 1732584193, b = -271733879, c = -1732584194, d = 271733878;
for (i = 0; i < x.length; i += 16) {
olda = a;
oldb = b;
oldc = c;
oldd = d;
a = md5_ff(a, b, c, d, x[i], 7, -680876936);
d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i], 20, -373897302);
a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
d = md5_hh(d, a, b, c, x[i], 11, -358537222);
c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i], 6, -198630844);
d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd)
}
return [a, b, c, d]
}
function binl2rstr(input) {
var i, output = "";
for (i = 0; i < input.length * 32; i += 8) {
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 255)
}
return output
}
function rstr2binl(input) {
var i, output = [];
output[(input.length >> 2) - 1] = undefined;
for (i = 0; i < output.length; i += 1) {
output[i] = 0
}
for (i = 0; i < input.length * 8; i += 8) {
output[i >> 5] |= (input.charCodeAt(i / 8) & 255) << (i % 32)
}
return output
}
function rstr_md5(s) {
return binl2rstr(binl_md5(rstr2binl(s), s.length * 8))
}
function rstr_hmac_md5(key, data) {
var i, bkey = rstr2binl(key), ipad = [], opad = [], hash;
ipad[15] = opad[15] = undefined;
if (bkey.length > 16) {
bkey = binl_md5(bkey, key.length * 8)
}
for (i = 0; i < 16; i += 1) {
ipad[i] = bkey[i] ^ 909522486;
opad[i] = bkey[i] ^ 1549556828
}
hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
return binl2rstr(binl_md5(opad.concat(hash), 512 + 128))
}
function rstr2hex(input) {
var hex_tab = "0123456789abcdef", output = "", x, i;
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i);
output += hex_tab.charAt((x >>> 4) & 15) + hex_tab.charAt(x & 15)
}
return output
}
function str2rstr_utf8(input) {
return unescape(encodeURIComponent(input))
}
function raw_md5(s) {
return rstr_md5(str2rstr_utf8(s))
}
function hex_md5(s) {
return rstr2hex(raw_md5(s))
}
function raw_hmac_md5(k, d) {
return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d))
}
function hex_hmac_md5(k, d) {
return rstr2hex(raw_hmac_md5(k, d))
}
var duiba_md5 = function (string, key?, raw?) {
if (!key) {
if (!raw) {
return hex_md5(string)
} else {
return raw_md5(string)
}
}
if (!raw) {
return hex_hmac_md5(key, string)
} else {
return raw_hmac_md5(key, string)
}
};
var hexcase = 0;
var b64pad = "";
var chrsz = 8;
// $.extend({
// duiba_b64_sha: function (input) {
// return binb2b64(core_sha1(str2binb(input), input.length * chrsz))
// }
// });
function core_sha1(x, len) {
x[len >> 5] |= 128 << (24 - len % 32);
x[((len + 64 >> 9) << 4) + 15] = len;
var w = Array(80);
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
var e = -1009589776;
for (var i = 0; i < x.length; i += 16) {
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
var olde = e;
for (var j = 0; j < 80; j++) {
if (j < 16) {
w[j] = x[i + j]
} else {
w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1)
}
var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j)));
e = d;
d = c;
c = rol(b, 30);
b = a;
a = t
}
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
e = safe_add(e, olde)
}
return Array(a, b, c, d, e)
}
function sha1_ft(t, b, c, d) {
if (t < 20) {
return (b & c) | ((~b) & d)
}
if (t < 40) {
return b ^ c ^ d
}
if (t < 60) {
return (b & c) | (b & d) | (c & d)
}
return b ^ c ^ d
}
function sha1_kt(t) {
return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514
}
function core_hmac_sha1(key, data) {
var bkey = str2binb(key);
if (bkey.length > 16) {
bkey = core_sha1(bkey, key.length * chrsz)
}
var ipad = Array(16), opad = Array(16);
for (var i = 0; i < 16; i++) {
ipad[i] = bkey[i] ^ 909522486;
opad[i] = bkey[i] ^ 1549556828
}
var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
return core_sha1(opad.concat(hash), 512 + 160)
}
function safe_add(x, y) {
var lsw = (x & 65535) + (y & 65535);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 65535)
}
function rol(num, cnt) {
return (num << cnt) | (num >>> (32 - cnt))
}
function str2binb(str) {
var bin = Array();
var mask = (1 << chrsz) - 1;
for (var i = 0; i < str.length * chrsz; i += chrsz) {
bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i % 32)
}
return bin
}
function binb2str(bin) {
var str = "";
var mask = (1 << chrsz) - 1;
for (var i = 0; i < bin.length * 32; i += chrsz) {
str += String.fromCharCode((bin[i >> 5] >>> (32 - chrsz - i % 32)) & mask)
}
return str
}
function binb2hex(binarray) {
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for (var i = 0; i < binarray.length * 4; i++) {
str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 15) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 15)
}
return str
}
function binb2b64(binarray) {
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var str = "";
for (var i = 0; i < binarray.length * 4; i += 3) {
var triplet = (((binarray[i >> 2] >> 8 * (3 - i % 4)) & 255) << 16) | (((binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4)) & 255) << 8) | ((binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4)) & 255);
for (var j = 0; j < 4; j++) {
if (i * 8 + j * 6 > binarray.length * 32) {
str += b64pad
} else {
str += tab.charAt((triplet >> 6 * (3 - j)) & 63)
}
}
}
str = str + "=";
return str
}
// window.duiba_md5 = duiba_md5;
return duiba_md5
}(/*Zepto*/));
\ No newline at end of file
///////////////////时间相关的方法放这里
/**
* 判断当前时间是否在指定时间区间内,每日,注意没判断起始时间是否肯定小于结束时间
* @param beginTime 形如"9:30","09:30",起始时间
* @param endTime 形如"21:30",结束时间
*/
export function checkAuditDayTime(beginTime: string, endTime: string, currentTimestamp: number = Date.now()): boolean {
return !checkBeforeDayTime(beginTime, currentTimestamp) && checkBeforeDayTime(endTime, currentTimestamp)
}
/**
* 判断当前时间是否在给定时间前,每天
* 精确到分,有需要自行改造截取方法和setHours传参
* @param time 形如"11:30","09:30",小时 0(午夜) ~ 23(晚上11点),分0 ~ 59 之间,负数或超出,会进行进制换算
* @returns 返回true表示当前时间小于传入时间,即未到传入时间
*/
export function checkBeforeDayTime(time: string, currentTimestamp: number = Date.now()): boolean {
var nowDate = new Date(currentTimestamp);
var timeDate = new Date(nowDate);
var index = time.lastIndexOf("\:");
var hour = time.substring(0, index);
var minue = time.substring(index + 1, time.length);
timeDate.setHours(+hour, +minue, 0, 0);
return nowDate.getTime() < timeDate.getTime()
}
/**
* 毫秒剩余时间转成时分秒,具体格式自行修改
* 01时01分01秒
* @param timeStamp
*/
export function getShiFenMiaoByTimeStamp(timeStamp: number): string {
var hours: any = Math.floor((timeStamp % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes: any = Math.floor((timeStamp % (1000 * 60 * 60)) / (1000 * 60));
var seconds: any = Math.floor((timeStamp % (1000 * 60)) / 1000);
hours = hours < 10 ? ('0' + hours) : hours;
minutes = minutes < 10 ? ('0' + minutes) : minutes;
seconds = seconds < 10 ? ('0' + seconds) : seconds;
// return hours + ":" + minutes + ":" + seconds;
return hours + "时" + minutes + "分" + seconds + "秒";
}
/**
* 根据时间戳返回各种格式,自行修改,到时加枚举
* @param timeStamp 时间戳
* @return 20190606 09:05:33 2019-06-06 09:05:33 2019/06/06 09:05:33 2019年3月12日10时9分29秒
*/
export function getDateTime(timeStamp: number): string {
function add0(m: number) {
return m < 10 ? '0' + m : m
}
var time = new Date(timeStamp);
var y = time.getFullYear();
var m = time.getMonth() + 1;
var d = time.getDate();
var h = time.getHours();
var mm = time.getMinutes();
var s = time.getSeconds();
// return "" + y + add0(m) + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
// return "" + y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
// return "" + y + '/' + add0(m) + '/' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
return y + "年" + m + '月' + d + '日' + h + '时' + mm + '分' + s + '秒'
}
/**
* 日期格式转时间戳
* 时间格式得用/,ios用-有问题,"2019/06/17 00:00:00",,,,ios也不能直接用Number(new Date())
* @param date "2019/06/17 00:00:00" "2019-06-17 00:00:00"
*/
export function getTimeStampByDate(date: string) {
return new Date(date.replace(/-/g, "/")).getTime();
}
/**
* 快速获取年月日时分秒 "2021-02-01 18:32:32"
* @param timeStamp 不传表示当前
*/
export function getDate(timeStamp: number = Date.now()): string {
//有局限性,但是无妨 19暂时年份不会超
return new Date(timeStamp + 8 * 3600 * 1000).toJSON().substr(0, 19).replace("T", " ");
}
/**
* 判断两个时间戳是否为同一天
* @param time1
* @param time2
*/
export function checkSameDay(time1: number, time2: number): boolean {
return new Date(time1).toDateString() === new Date(time2).toDateString()
}
import { ajax } from "../ajax";
// sdk 不能加crossorign
// <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
// 小程序分享得用这个
// <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
/**
* 判断是否是微信环境
*/
export function isWxClient() {
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) && ua.match(/MicroMessenger/i)[0] == "micromessenger") {
return true;
}
return false;
};
/**
* 初始化微信分享配置
*/
export function initWxConfig(callback?: (s: boolean) => void, debug: boolean = false) {
if (!isWxClient()) {
callback && callback(false)
return;
}
//微信分享,获取分享签名
ajax({
type: 'GET',
url: '/wechatShare/getShareInfo/v2',
//或者中文编码encodeURIComponent,此链接再编码一次encodeURIComponent 20210309
data: { url: window.location.href },//有问题再检查链接//部分链接参数会导致初始化失败,以后中文参数用base,%用自定字符替换
dataType: 'json',
success: function (data) {
if (data.success) {
console.log("微信配置获取:")
window["wx"].config({
debug,
appId: data.wxappid,
timestamp: data.wxtimestamp,
nonceStr: data.wxnonceStr,
signature: data.wxsignature,
jsApiList: ['checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'chooseImage']
});
callback && callback(true)
} else {
callback && callback(false)
}
},
error: function (data) {
callback && callback(false)
}
});
}
/**
* 初始化分享信息
* @param title 标题
* @param desc 描述,朋友圈无
* @param link 主域名一致的链接,且是https
* @param imgUrl 图片必须是https
*/
export function initWxShare(
title: string,
desc: string,
link: string,
imgUrl: string
) {
//执行ready可重新设置分享信息
window["wx"].ready(function () {
window["wx"].onMenuShareTimeline({
title,
link,
imgUrl,
success: function (res) {
}
});
//监听“分享给朋友”按钮点击、自定义分享内容及分享结果接口
window["wx"].onMenuShareAppMessage({
title,
desc,
link,
imgUrl,
success: function (res) {
}
});
})
}
//模拟下$ TODO
// 或者引个zepto
// <script crossorigin="anonymous" src="//yun.duiba.com.cn/db_games/libs/zepto_security_downloadApp.min.js"></script>
//易盾的sdk
// <script type="text/javascript" src="//cstaticdun.126.net/load.min.js"></script> -->
var $ = window["$"]
/**
* @note 极验 - 第三方插件
* @author 张晨辰
* @email zcc@duiba.com.cn
* @create 2017-04-19 12:01:45
* @update 2017-06-28 10:06:00
* @des https://www.163yun.com/help/documents/294963579379175424
* @dependencies <script type="text/javascript" src="//c.dun.163yun.com/js/c.js"></script>
* 2.0 <script src="//cstaticdun.126.net/load.min.js"></script> 用下面这个
*/
let captchaIns;
export function initNECaptcha(options) {
if (!options.captchaId) {
return false;
}
$('body').append('<div class="captcha"><div id="check_wrapper" class="neCaptcha-dialog"></div></div>');
var opts = {
element: '#check_wrapper', // 可以是验证码容器id,也可以是HTMLElement
captchaId: options.captchaId, // 这里填入申请到的验证码id
width: options.width || 270, // 验证码组件显示宽度
mode: options.mode || 'embed',
onVerify: function (err, data) {
if (!err) {
$(".captcha").unbind("click");
$('.captcha').remove();
// data.validate = base64.encode(data.validate);
options.callback && options.callback(data);
}
}
}
window["initNECaptcha"] && window["initNECaptcha"](opts, function (instance) {
captchaIns = instance
$(".captcha").click(function (e) {
if (e.target.className == "captcha") {
if (captchaIns) captchaIns.refresh()
}
});
}, function (err) {
console.log(err, 55655665)
//初始化失败,点击黑色区域重新初始
$(".captcha").click(function (e) {
// if (e.target.className == "captcha") {
$(".captcha").unbind("click");
$('.captcha').remove();
initNECaptcha(options)
// }
});
});
window["loading"] && window["loading"].close();
$('.captcha').show();
};
//例子
initNECaptcha({
captchaId: /*Tools.captchId*/111, //a869bfdfb9bd4cdf88e1ff2f8667a114
callback: function (ret) {
console.log(ret.validate)
}
})
/* 易盾css*/
.captcha {
display: none;
position: fixed;
z-index: 10000;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.6);
}
.captcha .neCaptcha-dialog {
background-color: #fff;
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.35);
-webkit-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.35);
position: absolute;
left: 50%;
top: 45%;
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transform: translate(-50%, -50%);
width: 270px;
height: 134px;
}
.captcha .neCaptcha-dialog::after {
position: absolute;
content: '单次游戏结束,请拖动滑块提交分数';
width: 100%;
height: 30px;
top: -40px;
left: 0;
text-align: center;
line-height: 30px;
font-size: 16px;
color: #ffff00;
}
.captcha .neCaptcha-dialog::before {
background-color: #fff;
content: '';
display: block;
width: 280px;
height: 144px;
position: absolute;
top: -5px;
left: -5px;
z-index: -1;
}
\ No newline at end of file
import { RES } from "../RES";
/**
* 暂时用列表的接口
*/
export class Item extends FYGE.Container implements FYGE.IScrollListItem {
get skinName(): string { return null };
constructor(data?) {
super();
if (this.skinName) RES.initSkinDisplay(this, this.skinName, this);
/*setTimeout(() => {*/ this.initUi(data); /*})*///考虑是否可以不加延时,加了会有问题,自行调用的updateData会先执行,不加的话继承类里initUi里的属性。。。
}
/**
* 自定义的初始布局方法
* 注意声明的变量会覆盖initUi里赋值的变量,
*/
initUi(data?) {
}
/**
* 自行调用的更新数据方法
*/
updateData(data?) {
}
/**
* 滚动列表的数据更新方法
* @param id
* @param data
*/
initData(id: number, data: any): void {
this.id = id;//这两个直接赋值吧
this.data = data;
this.resetData();
}
id: number;
data: any;
/**
* 滚动列表ScrollList里专用
* 重置item里属性及显示对象属性的方法,
* 在每次initData会调用
*/
resetData() {
}
}
import { RES } from "../RES";
import { removeTweens } from "../ctrls";
/**
*
*/
export class Module extends FYGE.Container {
protected data: any;
constructor(data?: any) {
super();
this.data = data;
this.init();
}
/**
* 初始化资源和皮肤
*/
private init() {
this.preLoadRes().then(
() => {
//添加皮肤配置
if (this.skinName) RES.initSkinDisplay(this, this.skinName, this);
this.initUi();
this.onLoaded && this.onLoaded();
},
() => {
this.onLoadError && this.onLoadError();
}
);
}
/**
* 提前加载的资源
*/
protected preLoadRes() {
return new Promise((resolve, reject) => {
if (this.groupNames && this.groupNames.length) {
var arr: Promise<any>[] = [];
for (var i = 0; i < this.groupNames.length; i++) {
arr.push(RES.loadGroup(this.groupNames[i]))
}
Promise.all(arr).then(resolve, reject)
} else {
resolve()
}
})
}
/**
* 初始化ui
* 子类修改
*/
protected initUi() {
}
/**
* 资源加载完成后执行,用于场景及弹框控制
*/
onLoaded: () => void
/**
* 资源加载失败时执行,用于场景及弹框控制
*/
onLoadError: () => void;
/**
* 可以有多个组
*/
get groupNames(): string[] { return null }
/**
* 皮肤名字
*/
get skinName(): string { return null };
/**
* 在构造函数后执行
*/
start(data?: any) {
this.initEvents();
}
/**
* 添加事件
*/
initEvents(): void {
}
/**
* 移除事件
*/
removeEvents(): void {
}
/**
* 鼠标事件
* @param enable
*/
protected enableMouseEvt(enable: boolean): void {
this.mouseEnable = enable;
this.mouseChildren = enable;
}
/**
* 延时防连点
* @param target
* @param {number} delay
*/
protected btnDelay(target, delay = 2000) {
target.mouseEnable = false;
target.mouseChildren = false;
setTimeout(() => {
target.mouseEnable = true;
target.mouseChildren = true;
}, delay);
}
public destroy(): void {
//以防有些地方用了showAni
removeTweens(this);
// this.data = null;//看情况吧,有时候hidePanel后用了data,注意,还是先去掉吧
//移除事件
this.removeEvents();
//派发销毁事件,主要用于场景及弹框控制
this.dispatchEvent("onDestroy");
super.destroy();
}
}
import { Module } from "./Module";
export class Panel extends Module {
protected isShowing: boolean
showAni() {
if (this.isShowing) return;
this.isShowing = true;
let oriY = this.y || 0;
this.y = -200;
FYGE.Tween.get(this)
.to({y: oriY}, 500, FYGE.Ease.quartOut)
.call(() => {
this.isShowing = false;
})
}
initEvents() {
this.closeBtns.forEach(
btn => {
if (btn) btn.addEventListener(FYGE.MouseEvent.CLICK, this.hidePanel, this)
}
)
}
removeEvents() {
this.closeBtns.forEach(
btn => {
if (btn) btn.removeEventListener(FYGE.MouseEvent.CLICK, this.hidePanel, this)
}
)
}
/**
* 需要的放入,不重复写关闭按钮事件
*/
protected get closeBtns(): any[] {
return [this['closeBtn']]
}
hidePanel() {
this.destroy();
}
}
import { Module } from "./Module";
export class Scene extends Module {
/**
* 显示动画
* 继承时注意,回调要加
* 因为这种动画基本原场景最好不消失
*/
showAni(callback: Function) {
callback()
}
/**
* 统一更新方法
*/
updateScene() {
}
}
\ No newline at end of file
import PanelCtrl from "../ctrls/panelCtrl";
import SceneCtrl from "../ctrls/sceneCtrl";
/**
* 添加进舞台的所有层级
* 仿白鹭的那套
*/
class Layers extends FYGE.Container {
private _bottomLayer: FYGE.Container;
private _sceneLayer: FYGE.Container;
private _popupLayer: FYGE.Container;
private _toastLayer: FYGE.Container;
private _topLayer: FYGE.Container;
private _shareLayer: FYGE.Container;
// 适配高度
private _adaptH = 0;
public get adaptH() {
return this._adaptH;
}
init(stage: FYGE.Stage) {
stage.addChild(this);
var arr = [
"_bottomLayer",
"_sceneLayer",
"_popupLayer",
"_toastLayer",
"_topLayer",
"_shareLayer"
];
for (var i = 0; i < arr.length; i++) {
this[arr[i]] = new FYGE.Container();
//有些时候,定宽的时候,部分layer置顶,部分居中,再处理
//为了都置顶和置左,stage的方式永远居中视窗,要么改stage永远左上为00
// this[arr[i]].y = this.stageOffsetY;
//如果定宽这里没必要,肯定是0
// this[arr[i]].x = this.stageOffsetX;//去掉,定高时就居中了
this.addChild(this[arr[i]]);
}
//都以顶部适配
// this.sceneLayer.y = this.stageOffsetY;
// this.popupLayer.y = this.stageOffsetY;
//都以底部适配
// this.sceneLayer.y = -this.stageOffsetY;
// this.popupLayer.y = -this.stageOffsetY;
//这个因为psd弹框不规范
// this.popupLayer.y -= 420 / 2;
this.shareLayer.y = -this.stageOffsetY;
//初始化场景层级
SceneCtrl.instance.init(this.sceneLayer);
//初始化弹框层级
PanelCtrl.instance.init(this.popupLayer);
this._adaptH = 211 - (this.stageOffsetY / 211) * 211 + this.stageOffsetY;
}
/**
* 底图所在层级,比如统一的背景
*/
get bottomLayer() { return this._bottomLayer }
/**
* 场景
*/
get sceneLayer() { return this._sceneLayer }
/**
* 弹框
*/
get popupLayer() { return this._popupLayer }
/**
* toast所在层级
*/
get toastLayer() { return this._toastLayer }
/**
* 顶层,比如统一标题栏等
*/
get topLayer() { return this._topLayer }
/**
* 分享引导层
*/
get shareLayer() { return this._shareLayer }
/**
* 舞台信息都放在layers里吧
* 舞台可见高度,初始化后才能使用
*/
get stageHeight() {
if (!this.stage) return 0;
return this.stage.viewRect.height;
}
/**
* 舞台可见宽度
*/
get stageWidth() {
if (!this.stage) return 0;
return this.stage.viewRect.width;
}
/**
* 适配方式x两边偏移的量,固定宽度x为0
*/
get stageOffsetX() {
if (!this.stage) return 0;
return this.stage.viewRect.x;
}
get stageOffsetY() {
if (!this.stage) return 0;
return this.stage.viewRect.y;
}
/**
* 舞台中心点位置x
*/
get stageCenterX(): number {
return this.stage.viewRect.x + this.stage.viewRect.width / 2;
}
/**
* 舞台中心点位置y,layer位置做过偏移的就不对了,所以还是自行算吧
*/
get stageCenterY(): number {
return this.stage.viewRect.y + this.stage.viewRect.height / 2;
}
}
export const layers = new Layers();
//先执行,在淘宝小程序中重新进入会再次初始化
export function destroyLayers() {
//所有层级移除,init会重新建
layers.removeChildren();
//从父级stage移除自己,init会重新加
if (layers.parent) layers.parent.removeChild(layers)
}
{
"name": "tbgame",
"version": "1.0.0",
"description": "",
"main": "index.html",
"devDependencies": {
"ali-oss": "^4.11.4",
"chalk": "^2.3.0",
"co": "^4.6.0",
"del": "^2.2.1",
"fs": "0.0.2",
"imagemin": "^7.0.1",
"imagemin-mozjpeg": "^8.0.0",
"imagemin-pngquant": "^8.0.0",
"mock-webpack-plugin": "^2.0.0",
"path": "^0.12.7",
"progress": "^2.0.0",
"ts-loader": "^4.0.0",
"tslint": "^5.9.1",
"typescript": "^3.5.1",
"webpack": "^4.1.0",
"webpack-cli": "^3.1.1",
"webpack-dev-server": "^3.1.0",
"webpack-merge": "^4.1.2",
"psd": "^3.2.0",
"readline": "^1.3.0"
},
"dependencies": {},
"scripts": {
"psd": "node scripts/psdH && node scripts/flushRes",
"psdSin": "node scripts/psdHSin",
"clearSameImg": "node scripts/clearSameImg && node scripts/flushRes",
"createModule": "node scripts/createModule",
"createAllModule": "node scripts/createAllModule",
"flushRes": "node scripts/flushRes",
"handleLotS": "node scripts/handleLotS",
"handleRes": "node scripts/delRel && node scripts/copyRes && node scripts/createTm && node scripts/textureMerge && node scripts/delTm && node scripts/imageMin",
"upload": "node scripts/upload",
"build": "npm run handleRes && node scripts/mergeJson && npm run upload && npm run buildTS",
"watch": "webpack --watch",
"dev": "node scripts/devServer -p 8099",
"dev1": "webpack-dev-server --open --config webpack.dev.js --host 0.0.0.0",
"buildTS": "webpack --config webpack.prod.js && node scripts/mergeJs",
"copyJs": "node scripts/copyJs",
"buildWeb": "npm run handleRes && node scripts/mergeJson && node scripts/upload 1",
"buildWebTS": "webpack --config webpack.prod.js && node scripts/uploadSingleJs 1"
},
"author": "MrKwon",
"license": "ISC"
}
{
"type": "activity",
"name": "template"
}
\ No newline at end of file
{
"groups": [
{
"keys": "countdown-back.png",
"name": "CountDownComp"
},
{
"keys": "back-home.png,jump-icon.png,more-btn.png,new-record-icon.png,product-link__icon.png,share-btn.png",
"name": "GameOver"
},
{
"keys": "over-back.png,over-tipsicon.png,prize-icon1.png,prize-icon2.png,prize-icon3.png",
"name": "GameOverPanel"
},
{
"keys": "num0.png,num1.png,num2.png,num3.png,num4.png,num5.png,num6.png,num7.png,num8.png,num9.png,numb0.png,numb1.png,numb2.png,numb3.png,numb4.png,numb5.png,numb6.png,numb7.png,numb8.png,numb9.png,numbp.png,nump.png,p1-b.png,p10-b.png,p11-b.png,p12-b.png,p13-b.png,p14-b.png,p15-b.png,p16-b.png,p17-b.png,p18-b.png,p19-b.png,p2-b.png,p20-b.png,p3-b.png,p4-b.png,p5-b.png,p6-b.png,p7-b.png,p8-b.png,p9-b.png",
"name": "GameScene"
},
{
"keys": "confirm-btn-1.png,newcp-back.png",
"name": "NewCompletePanel"
},
{
"keys": "confirm-btn.png,prize-back-title.png,prize-back.png",
"name": "PrizeShowPanel"
},
{
"keys": "0538f9077d06efad323df05b04e7662e.png,0b5fa6df9b5a26d539e77c2608608d8b.png,0b8805ae-138d-4397-ba2e-78c631199ce0.png,12ec8054b8c348ae7d1e958d1cd2588a.png,1ca73db4-7b05-4b0e-a0fb-8b8554ade130.png,25a820fd42aef3ebf647fa8a8f1b6d97.png,28d56a3f5babaecfd5f73e5813945b5f.png,293052b6-b434-43d0-9ab8-28b6186bd5ca.png,29d49776-b18b-4c9d-a753-82aaaa888624.png,2cf13601-7f36-49cc-8699-2a212858725f.png,359747a74903ade247a702ed9b9229e1.png,39f071fb61eea4b15c28ee87f9a42ab9.png,41178870-b275-495b-8c72-9badb88d9f8c.png,4b8809c43f465d648d826696fa6f402a.png,56b3e456-868a-49a1-bef9-029dc148ed5a.png,6a6640c7-6455-4901-b39c-6b326a1bedbe.png,6e2c9e1567421038ba7a35d5acc53cd5.png,73d6a8ce-2d10-48c1-9d98-6e9b9edf14cb.png,7c52769b370035c2ed3d45c4575899f6.png,8bc5a36a8dbf1a26043a75b265b4b1eb.png,96c45192-0b3e-4bb9-a56b-c8a6f02efef1.png,a0f816ef-8021-4202-a478-1e5c05dde786.png,a92d32f9a8c52dcc79d0c99de311474e.png,ad8b5041-5fdb-4947-8b91-be70e6227ce9.png,adf0dae232a9ffa6a9ce1352a7360980.png,b280118e-fcdf-4d8f-b2fd-357bd153c425.png,b75f6509-258d-4058-8ddc-382c082e5cd7.png,b901f16e009de3b207787382b611a267.png,beaa8224-6905-4ced-96eb-4f89d5896199.png,c2d234e2-dea6-44fd-bdf7-58d932204772.png,c3192272-4150-4f33-8e76-110355f09831.png,ce491a6c44cb6e60d7cc705630d719e1.png,d44c0d0dbb74647e3d1f3114e89a18fa.png,d5a8f96f100df42fd094915c7e70f625.png,d9e2bfe5ede84f7f53e57e6796cb54b2.png,da8a31673c7f5b4c68f4d4dc44ba8faf.png,dc51d376-f884-45fa-a76f-ca96f2f4d028.png,df583b9d-9a9c-4f47-90f1-67bcfa9fb308.png,e2feb63adef7d65f3d56dc84d5b59e65.png,e68dfb4b-2a63-43f2-a476-7445d80a0853.png,f992a7bf1bceafbc97fece72e04bcea9.png,ffc1d98f-d69e-43b1-8554-315276aa1322.png",
"name": "balance_guidance"
},
{
"keys": "0272a464df7d9c1ca7bcd240ff5b6ff1.png,0339f8cec366210e1895bb822005f5ca.png,0471fa62dfb977981f0bbcbf03d5364c.png,0521db775413790e5754d0a359a26c05.png,056b70b501ad2bb9de96fe5a40ec244c.png,0960016b2a4b0945ae1a504cf05d58b5.png,1366e0dc8765778425bc3612c5a02991.png,16794fd2bb051adab7cf54b7e36d2c87.png,1cb1e4d2fa9e520728a397f33dc41e85.png,1daa260b-4ad6-453a-bf2f-3f67fa4ee58d.png,23a5d1a88f781623a16727e8defbe5f2.png,243da2df1403d966f345a1bf61310276.png,2592ff4846d8e05ea9280a9206b2b765.png,2b774e8e40d7eeb4f56565090fcf1a1f.png,3845b99169cdf2ffd89eec33629236b2.png,3965e139993e5072b687ba1e944ae568.png,4947993d9e0c86dd197cab056f32b26e.png,4f7efec7932532041668f88e5eaa6485.png,55223ef0f41017b272998afbf097e11c.png,643f90f77b7858c5a54f1f2d2371a396.png,6a9d7e1fce8bc7e9b014add6ba3a40a6.png,6b5ba368fd1b35b4f7ae7d0941983b5f.png,6eab818514531d8dd0aff35576e834fe.png,70fcb05422163afdc827b4c7aa421932.png,7454ffe7-f273-42da-a8f3-56dcda5eb90c.png,7acaef1cbaa854fcc731bf08b137faaa.png,8e2a1bf2cfd857dae69edb9d70820e23.png,9da9f6301aab3bb530cc6f45520c8ad5.png,9e4c70df3c98f66fc402e0e5e64e1f0b.png,9f874f56586024e4c873b6237d027558.png,a2a8d4e441d527d8fbd8f1d1b6ec237d.png,a4e1f9ed07a40359eaf255394e272272.png,aef93a72f0db18e2c6fbc356d101bac0.png,b18be206e2cfcc766695779607b91e33.png,b7cc11169a1c2980ff1f543adc5e83fb.png,b8bcfabb7cb1690133fbc53df818a86e.png,c6d5f14a2986660aec470230367eb3d3.png,c78db3f7c109f9cf731d5045c4886854.png,c7d57022-9cec-4af2-bcb3-faf33977b271.png,c9cef93be7451b685edbd1fcd8f61732.png,e0c229e262c34b128c0f50ecac33369b.png,e8e4ae26-a99e-4a79-9261-e5fcac395fb0.png",
"name": "blank_shoe"
},
{
"keys": "comCloseBtn.png,com_light.png,count-start.png,count1.png,count2.png,count3.png,jordan-icon.png,music-off.png,music-on.png,nike-icon.png,percennt0.png,percennt1.png,percennt2.png,percennt3.png,percennt4.png,percennt5.png,percennt6.png,percennt7.png,percennt8.png,percennt9.png,percenntp.png,ruready.png,toastBg.png,waitingBg.png,waitingRot.png,跳过按钮.png",
"name": "common"
},
{
"keys": "c9a24fed01170dc61854098b7f6e50af.png",
"name": "excellent_icon"
},
{
"keys": "009ed41bfa913bd15c5dda62716e608c.png,02f26c4510df27a5acb8ce26b9c5b0ba.png,1d202725fd410588dfa8b3e1ccf810ce.png,2027bc3879e8f06799f1759fa914f426.png,245201acb5b065e60711e402277d4908.png,24cbb272ca0595390a65d16269acc141.png,28c9a63f6e33fbc7b7f9c51db5752ac9.png,32f6ae97f854c575c7130c9c2896a287.png,47d38d653cd78676a3ca3b4e7b6a7044.png,4fd8362250aa1555a1cb6352a10ac312.png,5cf06ed99e90cd0e4464cac6dbb29dc3.png,5d19c027ad8778f99a3f0950acdd2739.png,6c0fa5d1972318368c48f4c09418459d.png,71b5a61c46ec88c372180e56cbc0fb3d.png,722612e4c34ae14ba427382557a0c9cb.png,73ef3d3454a074c9decb1ecb7909105e.png,76d230aac3001933de45c949a9140889.png,77a0ae8dd94043602811479e935beafb.png,84f82a9ec12dd316f44382818fe0553c.png,9ac140216cfe3e2ba0c5f9dcb8de4856.png,a06938c7a7105be8ffd0e68c82527be5.png,a0f9249750bdd4bd9aa3f628c7f47c67.png,a3196dffd24bec4ceeb78c40e789411d.png,a811ad9246c54b177ae8c5a211ecbf02.png,a856a0dae3018ef19512f88849596579.png,addea92ee44e85d3b5c4ad97c67e0bbb.png,b7b9e7b3a43aff9ec5b46f0d253d69cc.png,ba494e2790eab1b74233301f7a6e68e2.png,bf2712c0db9cb0e2d408a529cd2421ec.png,bf3c7702119ae821578eb99c069617a3.png,c08f4c1bceb6c129da183349eaa18702.png,c111333453e0bb104a4c0d89c20c4472.png,c5aab24b86fe3182b1285f85eaec5bfe.png,ca3be215bf1c00d85f491a5ee971554f.png,cbb3cb0886f45f3e42e31b635ac2f13d.png,d024b2620af9a5f440a611167f596457.png,d77eb6d84abf89c0d276de9c598e4c58.png,d82e528b29ad71b09e0be5681959a789.png,db8bdb142b802b126523cfccf4d6a503.png,dfa3f688ec9fdd0a465f9417bd43ebf2.png,dfdbfa372b9183cb08d320aa3cc43a11.png,e0913099d595c5bc06c3d3daa62d2083.png,e1c091647a039b1c089709a81c4cd379.png,e3e8798120c483a49384a4fcc52c099c.png,e8b1bf3e159712ea403845a373fbf92e.png,f52e180cd79bcf8658830bc0c54942b9.png,f782b72f25909b59f23d0cad704f5eb4.png,ff5c46f42d987a67da838ff09c183a93.png",
"name": "guidan_360"
},
{
"keys": "p1.png,p10.png,p11.png,p12.png,p13.png,p14.png,p15.png,p16.png,p17.png,p18.png,p19.png,p2.png,p20.png,p3.png,p4.png,p5.png,p6.png,p7.png,p8.png,p9.png",
"name": "jordan_eles"
},
{
"keys": "p1.png,p10.png,p11.png,p12.png,p13.png,p14.png,p15.png,p16.png,p17.png,p18.png,p19.png,p2.png,p20.png,p3.png,p4.png,p5.png,p6.png,p7.png,p8.png,p9.png",
"name": "nike_eles"
},
{
"keys": "0272a464df7d9c1ca7bcd240ff5b6ff1.png,0339f8cec366210e1895bb822005f5ca.png,0471fa62dfb977981f0bbcbf03d5364c.png,0521db775413790e5754d0a359a26c05.png,056b70b501ad2bb9de96fe5a40ec244c.png,0960016b2a4b0945ae1a504cf05d58b5.png,1366e0dc8765778425bc3612c5a02991.png,16794fd2bb051adab7cf54b7e36d2c87.png,1cb1e4d2fa9e520728a397f33dc41e85.png,23a5d1a88f781623a16727e8defbe5f2.png,243da2df1403d966f345a1bf61310276.png,2592ff4846d8e05ea9280a9206b2b765.png,2b774e8e40d7eeb4f56565090fcf1a1f.png,3965e139993e5072b687ba1e944ae568.png,3d5139ce-fcfd-4604-b6da-282230f8afee.png,4947993d9e0c86dd197cab056f32b26e.png,4f7efec7932532041668f88e5eaa6485.png,55223ef0f41017b272998afbf097e11c.png,643f90f77b7858c5a54f1f2d2371a396.png,6a9d7e1fce8bc7e9b014add6ba3a40a6.png,6b5ba368fd1b35b4f7ae7d0941983b5f.png,6eab818514531d8dd0aff35576e834fe.png,70fcb05422163afdc827b4c7aa421932.png,7acaef1cbaa854fcc731bf08b137faaa.png,7f2a9fd9bb5aa175e606246dd843aed9.png,8e2a1bf2cfd857dae69edb9d70820e23.png,9e4c70df3c98f66fc402e0e5e64e1f0b.png,9f874f56586024e4c873b6237d027558.png,a2a8d4e441d527d8fbd8f1d1b6ec237d.png,a4e1f9ed07a40359eaf255394e272272.png,aef93a72f0db18e2c6fbc356d101bac0.png,b18be206e2cfcc766695779607b91e33.png,b7cc11169a1c2980ff1f543adc5e83fb.png,b9689750-84db-4dc3-9bba-70c6e86ff2ca.png,bbd780a01510cbc706a71d5f96f52dcb.png,c6d5f14a2986660aec470230367eb3d3.png,c78db3f7c109f9cf731d5045c4886854.png,c7d57022-9cec-4af2-bcb3-faf33977b271.png,c9cef93be7451b685edbd1fcd8f61732.png,ddde1ae50b039bf96ef7737d5708f7dd.png,e0c229e262c34b128c0f50ecac33369b.png,eb51f7d9-1919-48e8-8a5b-5e2ee8cf3075.png",
"name": "red_shoe"
},
{
"keys": "0272a464df7d9c1ca7bcd240ff5b6ff1.png,0339f8cec366210e1895bb822005f5ca.png,0471fa62dfb977981f0bbcbf03d5364c.png,0521db775413790e5754d0a359a26c05.png,056b70b501ad2bb9de96fe5a40ec244c.png,0960016b2a4b0945ae1a504cf05d58b5.png,1366e0dc8765778425bc3612c5a02991.png,16794fd2bb051adab7cf54b7e36d2c87.png,1cb1e4d2fa9e520728a397f33dc41e85.png,23a5d1a88f781623a16727e8defbe5f2.png,243da2df1403d966f345a1bf61310276.png,2592ff4846d8e05ea9280a9206b2b765.png,2b774e8e40d7eeb4f56565090fcf1a1f.png,3965e139993e5072b687ba1e944ae568.png,4947993d9e0c86dd197cab056f32b26e.png,4f7efec7932532041668f88e5eaa6485.png,55223ef0f41017b272998afbf097e11c.png,643f90f77b7858c5a54f1f2d2371a396.png,6a9d7e1fce8bc7e9b014add6ba3a40a6.png,6b5ba368fd1b35b4f7ae7d0941983b5f.png,6eab818514531d8dd0aff35576e834fe.png,70fcb05422163afdc827b4c7aa421932.png,75040919584435153d89b059a3df0bb3.png,77dbe8db0f6b44bf93b5033f3bfcf309.png,7acaef1cbaa854fcc731bf08b137faaa.png,8e2a1bf2cfd857dae69edb9d70820e23.png,9e4c70df3c98f66fc402e0e5e64e1f0b.png,9f874f56586024e4c873b6237d027558.png,a2a8d4e441d527d8fbd8f1d1b6ec237d.png,a4e1f9ed07a40359eaf255394e272272.png,aef93a72f0db18e2c6fbc356d101bac0.png,b18be206e2cfcc766695779607b91e33.png,b7cc11169a1c2980ff1f543adc5e83fb.png,c6d5f14a2986660aec470230367eb3d3.png,c78db3f7c109f9cf731d5045c4886854.png,c9cef93be7451b685edbd1fcd8f61732.png,e0c229e262c34b128c0f50ecac33369b.png,fd59bf6380de3ea52dcbbbec373bb1b4.png",
"name": "white_shoe"
},
{
"keys": "0513a2914668b008516adc921b90e29e.png",
"name": "yoga_fail"
}
],
"path": "./resource/"
}
\ No newline at end of file
{
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "LotPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "锦鲤中奖弹框背景",
"x": 73,
"y": 286,
"type": "sprite",
"props": {
"source": "锦鲤中奖弹框背景.png"
}
},
{
"name": "预置奖品图",
"x": 245,
"y": 599,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1131,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 939,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "LotNoPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "锦鲤未中奖弹框背景",
"x": 112,
"y": 449,
"type": "sprite",
"props": {
"source": "锦鲤未中奖弹框背景.png"
}
},
{
"name": "关闭按钮",
"x": 352,
"y": 1062,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 849,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "LotPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "抽奖弹框背景",
"x": 73,
"y": 286,
"type": "sprite",
"props": {
"source": "抽奖弹框背景.png"
}
},
{
"name": "立即抽奖",
"x": 200,
"y": 918,
"type": "button",
"props": {
"tUp": "立即抽奖.png"
},
"id": "lotBtn"
},
{
"name": "预置奖品图",
"x": 245,
"y": 618,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1131,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "NoLotQualifPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "没资格抽奖弹框背景",
"x": 112,
"y": 449,
"type": "sprite",
"props": {
"source": "没资格抽奖弹框背景.png"
}
},
{
"name": "关闭按钮",
"x": 352,
"y": 1062,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 849,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "RankPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "排行榜中奖弹框背景",
"x": 73,
"y": 286,
"type": "sprite",
"props": {
"source": "排行榜中奖弹框背景.png"
}
},
{
"name": "开心收下",
"x": 200,
"y": 918,
"type": "button",
"props": {
"tUp": "开心收下.png"
},
"id": "acceptBtn"
},
{
"name": "rank",
"x": 425,
"y": 481,
"type": "text",
"props": {
"text": "第2名",
"size": 66.6766,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "rank"
},
{
"name": "预置奖品图",
"x": 245,
"y": 561,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1131,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "RankNoPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "排行榜未中奖弹框背景",
"x": 112,
"y": 449,
"type": "sprite",
"props": {
"source": "排行榜未中奖弹框背景.png"
}
},
{
"name": "rankTxt",
"x": 304,
"y": 648,
"type": "text",
"props": {
"text": "500",
"size": 60.87863,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "rankTxt"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1062,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 849,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "RulePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "ruleBg",
"x": 28,
"y": 248,
"type": "sprite",
"props": {
"source": "ruleBg.png"
}
},
{
"name": "规则内容",
"x": 74,
"y": 369,
"type": "text",
"props": {
"text": "游戏规则\n",
"size": 74.03529,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "ruleTxt"
},
{
"name": "我知道了",
"x": 164,
"y": 1197,
"type": "button",
"props": {
"tUp": "我知道了.png"
},
"id": "knowBtn"
},
{
"name": "关闭按钮2",
"x": 625,
"y": 272,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
}
]
},
{
"name": "HelpPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "助力背景",
"x": 86,
"y": 379,
"type": "sprite",
"props": {
"source": "助力背景.png"
}
},
{
"name": "为他助力",
"x": 229,
"y": 730,
"type": "button",
"props": {
"tUp": "为他助力.png"
},
"id": "helpBtn"
},
{
"name": "关闭按钮2",
"x": 583,
"y": 390,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
}
]
},
{
"name": "TaskPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "taskBg",
"x": 0,
"y": 560,
"type": "sprite",
"props": {
"source": "taskBg.png"
}
},
{
"name": "滚动内容",
"x": 25,
"y": 718,
"type": "container",
"children": [
{
"name": "购买",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "购买.png"
}
},
{
"name": "txt5",
"x": 151,
"y": 710,
"type": "text",
"props": {
"text": "预售商品付定金(0/2)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt5"
},
{
"name": "txt4",
"x": 151,
"y": 545,
"type": "text",
"props": {
"text": "浏览指定页面10s(0/1)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt4"
},
{
"name": "txt2",
"x": 151,
"y": 212,
"type": "text",
"props": {
"text": "每日登陆(0/1)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt2"
},
{
"name": "txt1",
"x": 152,
"y": 44,
"type": "text",
"props": {
"text": "关注店铺(0/1)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt1"
},
{
"name": "goCompleteBtn",
"x": 529,
"y": 707,
"type": "button",
"props": {
"tUp": "goCompleteBtn.png"
},
"id": "btn5"
},
{
"name": "receiveBtn",
"x": 530,
"y": 540,
"type": "button",
"props": {
"tUp": "receiveBtn.png"
},
"id": "btn4"
},
{
"name": "goCompleteBtn",
"x": 533,
"y": 377,
"type": "button",
"props": {
"tUp": "goCompleteBtn.png"
},
"id": "btn3"
},
{
"name": "completeBtn",
"x": 533,
"y": 210,
"type": "button",
"props": {
"tUp": "completeBtn.png"
},
"id": "btn2"
},
{
"name": "completeBtn",
"x": 533,
"y": 43,
"type": "button",
"props": {
"tUp": "completeBtn.png"
},
"id": "btn1"
}
],
"id": "scrollView"
},
{
"name": "关闭按钮1",
"x": 675,
"y": 572,
"type": "button",
"props": {
"tUp": "关闭按钮1.png"
},
"id": "closeBtn"
}
]
},
{
"name": "LotMsgPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "锦鲤提示背景",
"x": 86,
"y": 309,
"type": "sprite",
"props": {
"source": "锦鲤提示背景.png"
}
},
{
"name": "知道啦",
"x": 225,
"y": 871,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
},
{
"name": "关闭按钮2",
"x": 583,
"y": 328,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
},
{
"name": "预置奖品图",
"x": 245,
"y": 566,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
}
]
},
{
"name": "GameOverPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "成绩",
"x": 70,
"y": 287,
"type": "sprite",
"props": {
"source": "成绩.png"
}
},
{
"name": "creditsCon",
"x": 152,
"y": 697,
"type": "container",
"children": [
{
"name": "开心收下",
"x": 48,
"y": 246,
"type": "button",
"props": {
"tUp": "开心收下.png"
},
"id": "acceptBtn"
},
{
"name": "恭喜获得文案",
"x": 136,
"y": 0,
"type": "sprite",
"props": {
"source": "恭喜获得文案.png"
}
},
{
"name": "一万文案替换",
"x": 0,
"y": 100,
"type": "sprite",
"props": {
"source": "一万文案替换.png"
},
"id": "creditsImg"
},
{
"name": "积分文案",
"x": 355,
"y": 129,
"type": "sprite",
"props": {
"source": "积分文案.png"
},
"id": "creditsIcon"
}
],
"id": "creditsCon"
},
{
"name": "rankCon",
"x": 200,
"y": 697,
"type": "container",
"children": [
{
"name": "再来一局",
"x": 0,
"y": 246,
"type": "button",
"props": {
"tUp": "再来一局.png"
},
"id": "againBtn"
},
{
"name": "当前排名文案",
"x": 91,
"y": 0,
"type": "sprite",
"props": {
"source": "当前排名文案.png"
}
},
{
"name": "三十文案替换",
"x": 31,
"y": 64,
"type": "sprite",
"props": {
"source": "三十文案替换.png"
},
"id": "rank"
}
],
"id": "rankCon"
},
{
"name": "totalScore",
"x": 381,
"y": 594,
"type": "text",
"props": {
"text": "28000000分",
"size": 69.57558,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "totalScore"
},
{
"name": "curScore",
"x": 120,
"y": 569,
"type": "text",
"props": {
"text": "2800分",
"size": 61.00614,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "curScore"
},
{
"name": "关闭按钮",
"x": 345,
"y": 1199,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "TimesOutPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "TimesOutBg",
"x": 86,
"y": 389,
"type": "sprite",
"props": {
"source": "TimesOutBg.png"
}
},
{
"name": "去赚次数",
"x": 225,
"y": 780,
"type": "button",
"props": {
"tUp": "去赚次数.png"
},
"id": "goTaskBtn"
},
{
"name": "关闭按钮2",
"x": 583,
"y": 408,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
}
]
},
{
"name": "RankPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "排行榜背景",
"x": 56,
"y": 284,
"type": "sprite",
"props": {
"source": "排行榜背景.png"
}
},
{
"name": "RankItem",
"x": 112,
"y": 549,
"type": "skin",
"children": [
{
"name": "num3",
"x": 0,
"y": 1,
"type": "sprite",
"props": {
"source": "num3.png"
},
"id": "num3"
},
{
"name": "num2",
"x": 0,
"y": 2,
"type": "sprite",
"props": {
"source": "num2.png"
},
"id": "num2"
},
{
"name": "num1",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "num1.png"
},
"id": "num1"
},
{
"name": "排名预置图",
"x": 5,
"y": 0,
"type": "sprite",
"props": {
"source": "排名预置图.png"
},
"id": "rank"
},
{
"name": "nickName",
"x": 174,
"y": 13,
"type": "text",
"props": {
"text": "一**猛",
"size": 30,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "nickName"
},
{
"name": "score",
"x": 363,
"y": 14,
"type": "text",
"props": {
"text": "29310900分",
"size": 30,
"fillColor": "#ef3d32",
"textAlpha": 1
},
"id": "score"
}
]
},
{
"name": "RankPrizeItem",
"x": 87,
"y": 1069,
"type": "skin",
"children": [
{
"name": "nameTxt",
"x": 38,
"y": 155,
"type": "text",
"props": {
"text": "第一名",
"size": 26,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "nameTxt"
},
{
"name": "奖项预置图",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "奖项预置图.png"
},
"id": "img"
}
]
},
{
"name": "openTime",
"x": 201,
"y": 1008,
"type": "text",
"props": {
"text": "排行榜奖励X月X日X点开奖",
"size": 30,
"fillColor": "#fffefe",
"textAlpha": 1
},
"id": "openTime"
},
{
"name": "rankNum",
"x": 103,
"y": 474,
"type": "text",
"props": {
"text": "未入榜 ",
"size": 30,
"fillColor": "#b3640b",
"textAlpha": 1
},
"id": "rankNum"
},
{
"name": "nickName",
"x": 289,
"y": 472,
"type": "text",
"props": {
"text": "巴拉巴拉",
"size": 34,
"fillColor": "#b3640b",
"textAlpha": 1
},
"id": "nickName"
},
{
"name": "score",
"x": 502,
"y": 473,
"type": "text",
"props": {
"text": "293109分",
"size": 34,
"fillColor": "#b3640b",
"textAlpha": 1
},
"id": "score"
},
{
"name": "关闭按钮",
"x": 636,
"y": 218,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "HelpTimesPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "助力次数弹框背景",
"x": 73,
"y": 359,
"type": "sprite",
"props": {
"source": "助力次数弹框背景.png"
}
},
{
"name": "知道了",
"x": 200,
"y": 809,
"type": "button",
"props": {
"tUp": "知道了.png"
},
"id": "knowBtn"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1041,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "friendsTxt",
"x": 256,
"y": 550,
"type": "text",
"props": {
"text": "xx为好友为你助力",
"size": 43.48474,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "friendsTxt"
},
{
"name": "gameTimes",
"x": 199,
"y": 612,
"type": "text",
"props": {
"text": "游戏次数+xx",
"size": 43.48474,
"fillColor": "#ff5555",
"textAlpha": 1
},
"id": "gameTimesTxt"
}
]
},
{
"name": "StartScene",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "startSceneBg",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "startSceneBg.jpg"
}
},
{
"name": "底部按钮区",
"x": 0,
"y": 1242,
"type": "container",
"children": [
{
"name": "底部按钮区背景",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "底部按钮区背景.png"
}
},
{
"name": "icon",
"x": 56,
"y": 35,
"type": "container",
"children": [
{
"name": "赚次数按钮",
"x": 547,
"y": 0,
"type": "button",
"props": {
"tUp": "赚次数按钮.png"
},
"id": "taskBtn"
},
{
"name": "运动锦鲤按钮",
"x": 258,
"y": 0,
"type": "button",
"props": {
"tUp": "运动锦鲤按钮.png"
},
"id": "lotBtn"
},
{
"name": "排行榜按钮",
"x": 0,
"y": 0,
"type": "button",
"props": {
"tUp": "排行榜按钮.png"
},
"id": "rankBtn"
}
]
}
]
},
{
"name": "timesTxt",
"x": 286,
"y": 1205,
"type": "text",
"props": {
"text": "剩余次数:3次",
"size": 16.00722,
"fillColor": "#ffffff",
"textAlpha": 1
},
"id": "timesTxt"
},
{
"name": "开始游戏",
"x": 171,
"y": 1052,
"type": "button",
"props": {
"tUp": "开始游戏.png"
},
"id": "startBtn"
},
{
"name": "规则按钮",
"x": 621,
"y": 212,
"type": "button",
"props": {
"tUp": "规则按钮.png"
},
"id": "ruleBtn"
},
{
"name": "奖品按钮",
"x": 11,
"y": 212,
"type": "button",
"props": {
"tUp": "奖品按钮.png"
},
"id": "recordBtn"
}
]
}
]
}
var fs = require("fs");
var path = require('path');
var del = require('del');
var pathName = "./resource";
var inPath = "./resource/common/";
{
key: ["aa", "bb"]
}
var hash = {};//记录名字和所在文件夹
var files = fs.readdirSync(pathName);
files.forEach(function (file) {
//文件common,不处理
if (file == "common") return
//路径
let fPath = path.join(pathName, file);
//只处理文件夹
if (fs.statSync(fPath).isDirectory()) {
var sonFiles = fs.readdirSync(fPath);
//没有文件
if (!sonFiles.length) return;
sonFiles.forEach(function (s) {
if (!hash[s]) hash[s] = [];
hash[s + ""].push(file);
})
}
})
//遍历
for (var key in hash) {
//有重复的,拷贝到common,删除原文件夹里的文件,
if (hash[key].length > 1) {
// 拷贝到common
fs.writeFileSync(inPath + key, fs.readFileSync(pathName + "/" + hash[key][0] + "/" + key));
console.log("重复资源:" + key)
//删除原文件夹里的文件,
hash[key].forEach(function (s) {
del(pathName + "/" + s + "/" + key)
})
}
}
console.log("重复资源处理完成")
\ No newline at end of file
var fs = require("fs");
// fs.writeFileSync(
// "./released/output.js",
// fs.readFileSync("./output.js")
// )
// var endPath = 'D:/duibaGame/测试项目0527/taobaominiTest/client/pages/index1/';
var endPath = '/Users/qiuxu/Documents/兑吧/项目/废了寻仔/taobao_mini/feile_xunzai/toC/client/pages/index/';
var version = Math.round(new Date().getTime() / 1000);
// fs.writeFileSync(endPath + "output." + version + ".js", fs.readFileSync("./released/output.js"));
fs.writeFileSync(endPath + "output.js", fs.readFileSync("./released/output.js"));
// console.log("js覆盖完成")
console.log(`版本号:
${version}`)
// cp infile outfile 拷贝文件直接放指令里
var fs = require('fs');
var path = require("path");
function writeFile(p, text) {
fs.writeFile(p, text, function (err) {
// if (!err)
// console.log("写入成功!")
})
}
//递归创建目录 同步方法
function mkdirsSync(dirname) {
if (fs.existsSync(dirname)) {
return true;
} else {
if (mkdirsSync(path.dirname(dirname))) {
// console.log("mkdirsSync = " + dirname);
fs.mkdirSync(dirname);
return true;
}
}
}
function _copy(src, dist) {
var paths = fs.readdirSync(src)
paths.forEach(function (p) {
var _src = src + '/' + p;
var _dist = dist + '/' + p;
var stat = fs.statSync(_src)
if (stat.isFile()) {// 判断是文件还是目录
fs.writeFileSync(_dist, fs.readFileSync(_src));
} else if (stat.isDirectory()) {
copyDir(_src, _dist)// 当是目录是,递归复制
}
})
}
/*
* 复制目录、子目录,及其中的文件
* @param src {String} 要复制的目录
* @param dist {String} 复制到目标目录
*/
function copyDir(src, dist) {
var b = fs.existsSync(dist)
// console.log("dist = " + dist)
if (!b) {
// console.log("mk dist = ",dist)
mkdirsSync(dist);//创建目录
}
// console.log("_copy start")
_copy(src, dist);
}
function createDocs(src, dist, callback) {
// console.log("createDocs...")
copyDir(src, dist);
// console.log("copyDir finish exec callback")
if (callback) {
callback();
}
}
createDocs("./resource", "./released/resource/", function () {
console.log("资源拷贝成功")
})
\ No newline at end of file
var exec = require('child_process').exec;
var fs = require("fs");
//用这个生成所有的,最好把createModule里的warn去掉,否则子进程的打不到
const skinDataAll = JSON.parse(fs.readFileSync("./resource/skin.json"));
skinDataAll.children.forEach(c => {
const cmd = "node ./scripts/createModule.js " + c.name;
exec(cmd, { encoding: 'utf8' }, (e) => {
console.log("生成模块:" + c.name)
})
});
var fs = require("fs");
function createHtml(url) {
var js = `//yun.duiba.com.cn/db_games/${url}/output.js`;
var template = fs.readFileSync("./index.html").toString();
//写入released
fs.writeFileSync("./released/index.html", template.replace("output.js", js))
}
module.exports = createHtml
\ No newline at end of file
var fs = require("fs");
function createHtml(url) {
var template =
`<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</title>
<meta name="viewport"
content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="full-screen" content="true" />
<meta name="screen-orientation" content="portrait" />
<meta name="x5-fullscreen" content="true" />
<meta name="360-fullscreen" content="true" />
<!-- <script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> -->
<!-- 小程序分享得用这个 -->
<!-- <script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script> -->
<!-- 易盾js -->
<!-- <script type="text/javascript" src="//cstaticdun.126.net/load.min.js"></script> -->
<!-- 渲染引擎 -->
<script src="//yun.duiba.com.cn/db_games/libs0924/fyge158.min.js" crossorigin="anonymous"></script>
<!-- svga解析js(按需) -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/svgaParser.minWeb.js" crossorigin="anonymous"></script> -->
<!-- 音效引擎(按需) -->
<!-- <script src="//yun.duiba.com.cn/db_games/libs0924/howler.min.js"></script> -->
<!-- vConsole -->
<script src="//yun.duiba.com.cn/db_games/libs0924/vConsole.min.js"></script>
<!-- 淘宝小程序webview sdk -->
<!-- <script type="text/javascript" src="https://appx/web-view.min.js"></script> -->
<style>
html,
body {
padding: 0;
margin: 0;
border: 0;
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
background-color: #015581;
}
</style>
</head>
<body>
<div id="__loading__" style="position:absolute;left:50%;top:50%;margin-left:-45px;color:#ffffff">拼命加载中...</div>
<div id="cusEngine" style="line-height:0;font-size:0;position:absolute;">
<canvas id="canvas" style="width: 100%;height: 100%"></canvas>
</div>
</body>
<script>
window.addEventListener("load", function () {
//获取canvas
var canvas = document.getElementById("canvas");
canvas.width = document.body.clientWidth * (window.devicePixelRatio || 1)
canvas.height = document.body.clientHeight * (window.devicePixelRatio || 1)
var main = new Main(canvas);
var mouseEvent = main.stage.onMouseEvent.bind(main.stage);
canvas.addEventListener("touchstart", mouseEvent, false);
canvas.addEventListener('touchmove', mouseEvent, false);
canvas.addEventListener('touchend', mouseEvent, false);
window.stage = main.stage
})
</script>
<script src="//yun.duiba.com.cn/db_games/${url}/output.js" crossorigin="anonymous"></script>
</html>`;
//写入released
fs.writeFileSync("./released/index.html", template)
}
module.exports = createHtml
\ No newline at end of file
var fs = require("fs");
var warn = require("./warn")
//类型对应
const DISRES = {
'container': "Container",
'text': "TextField",
'button': "Button",
'sprite': "Sprite",
'rect': "Graphics",
// 'skin'
}
const skinDataAll = JSON.parse(fs.readFileSync("./resource/skin.json"))
//取指令后的参数
let arg = process.argv.splice(2);
//类名
var className = arg[0];
//皮肤名字
var skinName = arg[0]; //arg[1];
//是否弹框,存在参数就是场景
var moduleType = className.indexOf("Scene") > -1 ? "Scene" : "Panel";
// console.log('类名:',className)
// console.log('皮肤名字:',skinName)
var skinData = getSkinDataByName(skinName, skinDataAll);
if (!skinData) {
console.log(skinName + "皮肤不存在");
return
}
var groupName = skinData.name;
var endPath = moduleType == "Panel" ? "./src/panels/" : "./src/scenes/";
// var template =
// (moduleType == "Panel" ?
// 'import { Panel } from "../../module/views/Panel";\n' :
// 'import { Scene } from "../../module/views/Scene";\n') +
// 'export class ' + className + ' extends ' + moduleType + ' {\n' +
// '\tget groupNames() { return ["' + groupName + '"] }\n' +
// '\tget skinName() { return "' + skinName + '" }\n' +
// '\t' + getIds(skinData) + "\n" +
// '\tinitUi() {\n' +
// ' \n' +
// '\t}\n' +
// '\tstart(data) {\n' +
// '\t\tsuper.start();\n' +
// '\t}\n' +
// '\tinitEvents() {\n' +
// '\t\tsuper.initEvents();' +
// ' \n' +
// '\t}\n' +
// '\tremoveEvents() {\n' +
// '\t\tsuper.removeEvents();' +
// ' \n' +
// '\t}\n' +
// '}\n'
var template =
(moduleType == "Panel" ?
'import { Panel } from "../../module/views/Panel";\n' :
'import { Scene } from "../../module/views/Scene";\n') +
`export class ${className} extends ${moduleType} {
get groupNames() { return ["${groupName}"] };
get skinName() { return "${skinName}" };
${getIds(skinData)}
initUi() {
}
start(data) {
super.start();
}
initEvents() {
super.initEvents();
}
removeEvents() {
super.removeEvents();
}
}\n\n`
//取出skinName里的Item
var skins = getItemSkins(skinData)
if (skins.length) template = 'import { Item } from "../../module/views/Item";\n' + template;
for (var i = 0; i < skins.length; i++) {
var skin = skins[i];
// template +=
// 'class ' + upperCaseFirstChar(skin.name) + ' extends Item {\n' +
// '\tget skinName() { return "' + skin.name + '" }\n' +
// '\t' + getIds(skin) + "\n" +
// '\tinitUi(data?) {\n' +
// ' \n' +
// '\t}\n' +
// '\tupdateData(data?) {\n' +
// ' \n' +
// '\t}\n' +
// '\tinitData(id: number, data: any): void {\n' +
// '\t\tsuper.initData(id,data);\n' +
// ' \n' +
// '\t}\n' +
// '\tresetData() {\n' +
// ' \n' +
// '\t}\n' +
// '}\n'
template +=
`class ${upperCaseFirstChar(skin.name)} extends Item {
get skinName() { return "${skin.name}" }
${getIds(skin)}
initUi(data?) {
}
updateData(data?) {
}
initData(id: number, data: any): void {
if (id < 0 || !data) return;
super.initData(id,data);
}
resetData() {
}
}\n\n`;
}
//不存在时建一个
if (!fs.existsSync(endPath)) fs.mkdirSync(endPath);
//判断ts文件是否已存在
if (fs.existsSync(endPath + className + ".ts")) {
warn(
className + ".ts已存在,是否覆盖",
() => {
fs.writeFileSync(endPath + className + ".ts", template)
},
() => { }
)
} else {
fs.writeFileSync(endPath + className + ".ts", template)
}
// function cutIds(ids) {
// var str = ''
// var arr = ids.split(";")
// // console.log(arr)
// arr.forEach(element => {
// if (element) str += element + ";\n\t"
// });
// return str
// }
/**
* 获取皮肤数据
* @param {*} skinName
* @param {*} skinNode
*/
function getSkinDataByName(skinName, skinNode) {
if (!skinNode || !skinNode.children || !skinNode.children.length) return null;
for (var i = 0; i < skinNode.children.length; i++) {
var child = skinNode.children[i];
//皮肤数据得是容器
if (child.name == skinName && (child.type == "container" || child.type == "item")) return child;
var gson = getSkinDataByName(skinName, child);
if (gson) return gson
}
return null;
}
//取出所有的Item的皮肤,标记为item的
function getItemSkins(skinNode) {
var arr = []
for (var i = 0; i < skinNode.children.length; i++) {
var c = skinNode.children[i];
if (c.type == 'item') arr.push(c);
if (c.children) getItemSkins(c).forEach((cc) => {
arr.push(cc);
})
}
return arr
}
function getIds(skinNode, str) {
str = str || ''
for (var i = 0; i < skinNode.children.length; i++) {
var c = skinNode.children[i];
if (c.id) str += c.id + ": FYGE." + DISRES[c.type] + ";\n\t";
//作为item的不进
if (c.type == "container" && c.type != "item") str = getIds(c, str);
}
return str
}
function upperCaseFirstChar(str) {
return str.charAt(0).toUpperCase() + str.slice(1)
}
var fs = require("fs");
var iconv = require('iconv-lite');
var del = require('del');
var readPath = "./released/resource/";
//读取json文件
var data = iconv.decode(fs.readFileSync(readPath + "res.json"), "utf-8");//GBK
//反序列化
data = JSON.parse(data); //eval(data)
//取出里面的图片,暂存到tm文件夹中,同时删除文件夹里的,和本身json里的
if (!fs.existsSync("./released/tm"))
fs.mkdirSync("./released/tm");
for (var i = 0; i < data.groups.length; i++) {
var name = data.groups[i].name;
var path = readPath + name + "/";
var arr = data.groups[i].keys.split(",");
//取出图片的,注意已排除jpg
var images = arr.filter((f) => { return (f.substr(-4) == ".png" /*|| f.substr(-4) == ".jpg"*/) })
//没有图片,
if (!images.length) continue;
//去掉原先数据里的
// data.groups[i].keys = arr.filter((f) => { return (f.substr(-4) != ".png" && f.substr(-4) != ".jpg") }).join(",");
//添加新的json,加到atlas里
// if (data.groups[i].keys) data.groups[i].keys += ","
data.groups[i].atlas = name + ".json"
//读取原先路径里的图片,写到tm的文件夹里,并删除原文件夹里的图片
fs.mkdirSync("./released/tm/" + name);
for (var m = 0; m < images.length; m++) {
fs.writeFileSync(
"./released/tm/" + name + "/" + images[m],
fs.readFileSync(path + images[m])
)
del(path + images[m])
}
}
//序列化
fs.writeFileSync(readPath + "res.json", JSON.stringify(data, "", "\t"));
var fs = require("fs");
var del = require('del');
function delDir(path, isSelf) {
let files = [];
if (fs.existsSync(path)) {
files = fs.readdirSync(path);
files.forEach((file, index) => {
let curPath = path + "/" + file;
if (fs.statSync(curPath).isDirectory()) {
delDir(curPath); //递归删除文件夹
} else {
fs.unlinkSync(curPath); //删除文件
}
});
if (!isSelf) fs.rmdirSync(path);
}
}
var paths = './released/';//设置删除路径
// delDir(paths, true);//删除文件夹
del(paths).then(() => {
fs.mkdirSync(paths);
}).catch(()=>{
fs.mkdirSync(paths);
})
// var tasks = [];
// function addTask(task) {
// tasks.push(task);
// }
// function next() {
// if (tasks.length > 0) {
// tasks.shift()();
// } else {
// return;
// }
// }
// var delRel = function () {
// del(paths).then(() => {
// // console.log("del")
// next();
// })
// }
// var createRel = function () {
// fs.mkdirSync(paths);
// // console.log("create")
// next();
// }
// addTask(delRel)
// addTask(createRel)
// next();
\ No newline at end of file
var del = require('del');
del("./released/tm")
\ No newline at end of file
const path = require("path");
const runScript = require("./runScript");
const argv = process.argv;
const fs = require("fs");
const skinUrl = "./resource/skin.json";
fs.watchFile(skinUrl, { persistent: true, interval: 2000 }, (curr, prev) => {
const skinDataAll = fs.readFileSync(skinUrl)
var endFile = `export const SkinJson = ${skinDataAll}`
fs.writeFileSync("./src/SkinJson.ts", endFile);
console.log("SkinJson.ts文件已更新")
})
// 修改resource文件夹任意内容自动刷新资源
fs.watch('./resource/', { recursive: true }, (event, filename) => {
if (
filename === ".DS_Store"
|| filename === "res.json"
|| filename === "skin.json"
) return;
runScript(path.resolve('./scripts/flushRes.js'), (err) => {
console.log(err);
});
});
runScript(path.resolve('./scripts/flushRes.js'), (err) => {
console.log(err);
});
const webpackDevServer = require('webpack-dev-server');
const webpack = require('webpack');
const config = require('../webpack.dev.js');
const options = {
open: true,
contentBase: '.',
hot: true,
host: 'localhost',
};
webpackDevServer.addDevServerEntrypoints(config, options);
const compiler = webpack(config);
const server = new webpackDevServer(compiler, options);
// 8080
server.listen(+argv[argv.indexOf("-p") + 1], '0.0.0.0', () => {
});
//生成res.json
//遍历资源文件夹,生成
var fs = require('fs');
var path = require("path");
var readPath = "./resource/"
var files = fs.readdirSync(readPath);
var obj = { groups: [] };//每项包括keys合name
files.forEach(function (file) {
//路径
let fPath = path.join(readPath, file);
//只处理文件夹
if (fs.statSync(fPath).isDirectory()) {
//继续读每个子文件夹,json和png名字有相同的,只留json,
var sonFiles = fs.readdirSync(fPath);
//没有文件
if (!sonFiles.length) return
//取出所有json
var jsons = sonFiles.filter((f) => { return f.substr(-5) == ".json" })
//去掉json所带png的图片
sonFiles = sonFiles.filter((f) => { return jsons.indexOf(f.substring(0, f.length - 4) + ".json") == -1 })
//去掉mac上的缓存文件
sonFiles = sonFiles.filter((f) => { return f != '.DS_Store' })
var group = {
keys: "",
name: file
}
for (var i = 0; i < sonFiles.length; i++) {
if (i != 0) group.keys += ",";
group.keys += sonFiles[i]
}
obj.groups.push(group)
}
})
obj.path="./resource/"
console.log("资源更新完成")
//生成json
fs.writeFileSync(readPath + "res.json", JSON.stringify(obj, "", "\t"));
//TS也更新
var endPath = './src/';
var endFile = `export const ResJson = ${JSON.stringify(obj, "", "\t")}`
fs.writeFileSync(endPath + "ResJson.ts", endFile);
\ No newline at end of file
var fs = require("fs");
var iconv = require('iconv-lite');
var path = require('path');
const trans = require("./trans")
//用于处理带base64图片的lottie文件,取出图片,同名lottie文件夹,写入代码"./src/lotties/"中;
//别再执行,会覆盖
// return
// var hashBase64 = {};
var pathName = "./lotties";
var outPath = "./resource"
//读文件夹
var files = fs.readdirSync(pathName);
//对每个json文件作处理
files.forEach(function (lottiesFileName) {
// console.log(lottiesFileName)
//后缀不是json的,不处理
if (path.extname(lottiesFileName).indexOf(".json") < 0) return;
//用文件名作为类名和资源文件夹名
const cusName = lottiesFileName.substring(0, lottiesFileName.lastIndexOf(".json"));
//读数据
var data = iconv.decode(fs.readFileSync(pathName + "/" + lottiesFileName), "utf-8");//GBK
//反序列化
data = JSON.parse(data);
//存图片
var assets = data.assets;
if (!assets || !assets.length) return;
//删除属性
delete data.assets;
var copyAssets = [];
var imgOutPath = outPath + "/" + cusName//data.nm
//建文件夹data.nm
if (!fs.existsSync(imgOutPath)) fs.mkdirSync(imgOutPath);
assets.forEach((e) => {
//没有base64数据,可能是嵌套的
if (!e.p) {
copyAssets.push(e);
return
}
let id = e.id;
// let uuid = guid();
// //存图片
var base64 = e.p.replace(/^data:image\/\w+;base64,/, "");//去掉图片base64码前面部分data:image/png;base64
var dataBuffer = /*new Buffer*/Buffer.from(base64, 'base64'); //把base64码转成buffer对象,
//用用到该图片的图层的名字当作图片名,必须是.png结尾,为了图片去重
var name = data.layers.find((l) => { return l.refId === id })
//没找到图层,
if (!name) {//再往嵌套图层里的找
for (var ii = 0; ii < assets.length; ii++) {
if (!assets[ii].p) {
name = assets[ii].layers.find((l) => { return l.refId === id })
if (name) break;
}
}
}
//还没找到图层,不处理
if (!name) return
//如果缓存过了,refId,统一把refId当作必有图片
// if (hashBase64[base64]) {
// name = hashBase64[base64];
// } else {
// //取图层名字,如果没有。png,用uuid
// // if (name.nm.indexOf(".png") == -1) {
// name = guid();
// // } else {
// // //取名字
// // name = name.nm.replace(".png", "");
// // }
// hashBase64[base64] = name
// }
//不用缓存了,直接用md5;
name = md5(base64);
//修改所有的refId
data.layers.forEach((l) => { l.refId === id && (l.refId = name) })
//还有嵌套的
assets.forEach((a) => {
if (!a.p) a.layers.forEach((l) => { l.refId === id && (l.refId = name) });
})
fs.writeFile(imgOutPath + "/" + name + ".png", dataBuffer, () => { });
})
//如果存在嵌套图层的,assets加回
if (copyAssets.length) data.assets = copyAssets;
//开始删东西
//是否3d
delete data.ddd;
//版本号,版本必须5.6.10,否则可能有问题
delete data.v;
//遍历删除图层东西
for (var i = 0; i < data.layers.length; i++) {
var l = data.layers[i];
//是否3d,后缀,sr,ao,开始时间,混合模式,特效
["ddd", "cl", "sr", "ao", "st", "bm", "ef"].forEach((e) => { delete l[e]; });
//ks删除
["o", "r", "p", "a", "s"].forEach((e) => {
var d = l.ks[e];
//ix不知道干嘛用,删了
delete d.ix;
//貌似标记0是没有关键帧的,1是有关键帧的
delete d.a;
//删除k里数据,都要用了,不能删,看情况用吧,如果不需要补间的,用Tween拼的,就删掉,不删只是文件大点
// if (d.k.length && typeof d.k[0] == "object") {
// d.k.forEach((ee) => {
// ["i", "o", "ti", "to"/*, "h"*/].forEach((eee) => { delete ee[eee]; })//h需要判断是否是缓动
// })
// }
})
}
//导出代码到src的lotties文件夹,名字就是lottie动画名字,资源名字临时处理了,首页加载动画用图层的nm,bonustime用refid
var endPath = './src/lotties';
if (!fs.existsSync(endPath)) fs.mkdirSync(endPath);
//文件名字修改,中划线变成下划线,中文变拼音
var fileName = trans(cusName/*data.nm*/).replace(/-/g, "_")
//导出对象直接用lottie动画名字
var endFile = `export const ${fileName} = ${JSON.stringify(data, "", "\t")}`
//文件名字用lottie动画名字
fs.writeFileSync(endPath + "/" + fileName + ".ts", endFile);
console.log("生成文件:" + fileName + ".ts")
})
// function guid() {
// return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
// var r = Math.random() * 16 | 0,
// v = c == 'x' ? r : (r & 0x3 | 0x8);
// return v.toString(16);
// });
// }
//////////////////////////md5方法
/**
* Copyright (c) 2014 Meizu bigertech, All rights reserved.
* http://www.bigertech.com/
* @author liuxing
* @date 14-12-1
* @description
*
*/
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF),
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt) {
return (num << cnt) | (num >>> (32 - cnt));
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t) {
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
}
function md5_ff(a, b, c, d, x, s, t) {
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t) {
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t) {
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t) {
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length.
*/
function binl_md5(x, len) {
/* append padding */
x[len >> 5] |= 0x80 << (len % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var i, olda, oldb, oldc, oldd,
a = 1732584193,
b = -271733879,
c = -1732584194,
d = 271733878;
for (i = 0; i < x.length; i += 16) {
olda = a;
oldb = b;
oldc = c;
oldd = d;
a = md5_ff(a, b, c, d, x[i], 7, -680876936);
d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i], 20, -373897302);
a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
d = md5_hh(d, a, b, c, x[i], 11, -358537222);
c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i], 6, -198630844);
d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return [a, b, c, d];
}
/*
* Convert an array of little-endian words to a string
*/
function binl2rstr(input) {
var i,
output = '';
for (i = 0; i < input.length * 32; i += 8) {
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
}
return output;
}
/*
* Convert a raw string to an array of little-endian words
* Characters >255 have their high-byte silently ignored.
*/
function rstr2binl(input) {
var i,
output = [];
output[(input.length >> 2) - 1] = undefined;
for (i = 0; i < output.length; i += 1) {
output[i] = 0;
}
for (i = 0; i < input.length * 8; i += 8) {
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
}
return output;
}
/*
* Calculate the MD5 of a raw string
*/
function rstr_md5(s) {
return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));
}
/*
* Calculate the HMAC-MD5, of a key and some data (raw strings)
*/
function rstr_hmac_md5(key, data) {
var i,
bkey = rstr2binl(key),
ipad = [],
opad = [],
hash;
ipad[15] = opad[15] = undefined;
if (bkey.length > 16) {
bkey = binl_md5(bkey, key.length * 8);
}
for (i = 0; i < 16; i += 1) {
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
return binl2rstr(binl_md5(opad.concat(hash), 512 + 128));
}
/*
* Convert a raw string to a hex string
*/
function rstr2hex(input) {
var hex_tab = '0123456789abcdef',
output = '',
x,
i;
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i);
output += hex_tab.charAt((x >>> 4) & 0x0F) +
hex_tab.charAt(x & 0x0F);
}
return output;
}
/*
* Encode a string as utf-8
*/
function str2rstr_utf8(input) {
return unescape(encodeURIComponent(input));
}
/*
* Take string arguments and return either raw or hex encoded strings
*/
function raw_md5(s) {
return rstr_md5(str2rstr_utf8(s));
}
function hex_md5(s) {
return rstr2hex(raw_md5(s));
}
function raw_hmac_md5(k, d) {
return rstr_hmac_md5(str2rstr_utf8(k), str2rstr_utf8(d));
}
function hex_hmac_md5(k, d) {
return rstr2hex(raw_hmac_md5(k, d));
}
function md5(string, key, raw) {
if (!key) {
if (!raw) {
return hex_md5(string);
}
return raw_md5(string);
}
if (!raw) {
return hex_hmac_md5(key, string);
}
return raw_hmac_md5(key, string);
}
const imagemin = require('imagemin');
// const imageminJpegtran = require('imagemin-jpegtran');imagemin-mozjpeg
const imageminJpegtran = require('imagemin-mozjpeg');
const imageminPngquant = require('imagemin-pngquant');
var fs = require('fs');
var path = require('path');
// 要处理的图片文件夹路径
var altasPath = "./released/resource/"
var folders = getFolders(altasPath);
folders.map(async function (folder) {
const files = await imagemin([altasPath + folder + '/*.{png,jpg}'], {
destination: altasPath + folder,
plugins: [
imageminJpegtran(),
imageminPngquant({
quality: [0.6, 0.8]
})
]
});
if (files && files.length) {
files.forEach((v) => {
console.log("压缩图片成功:", v.sourcePath.substring(v.sourcePath.lastIndexOf("/") + 1, v.sourcePath.length))
})
}
});
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function (file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
\ No newline at end of file
var fs = require("fs");
// fs.writeFileSync(
// "./released/output.js",
// fs.readFileSync("./output.js")
// )
var endPath = './released/';
fs.writeFileSync(endPath + "output.js",
// 'import * as FYGE from "fyge-tbmini";\n' +
'import * as FYGE from "fyge";\n' +//以后改成这个
// 'import * as SvgaParser from "svga-parser";\n' +
fs.readFileSync("./output.js"));
console.log("js生成")
var fs = require("fs");
var path = require('path');
var del = require('del');
var iconv = require('iconv-lite');
const join = require('path').join;
//写入图集的文件夹,将文件夹内所有的json合并,并删除原先json
var readPath = "./released/resource/";
//读取json文件
var data = iconv.decode(fs.readFileSync(readPath + "res.json"), "utf-8");//GBK
//反序列化
data = JSON.parse(data);
var files = fs.readdirSync(readPath);
// let obj = {};
let count = 0;
let countAll = files.length
files.forEach(function (file) {
//路径
let fPath = join(readPath, file);
//只处理文件夹
if (fs.statSync(fPath).isDirectory()) {
//读文件夹fPath里的json文件
fs.readdir(fPath, function (err, files) {
if (err) {
console.warn(err)
} else {
var hasJson
//遍历
for (var i = 0; i < files.length; i++) {
let filename = files[i];
if (filename.indexOf(".json") == -1) continue
hasJson = true;
//获取当前文件的绝对路径
let filedir = path.join(fPath, filename);
let content = fs.readFileSync(filedir, 'utf-8');
let group = getGroupByName(filename.replace(".json", ""), data.groups)
group.atlas = JSON.parse(content);
//删除原先json
del(filedir)
if (++count == countAll) endFun();
}
if(!hasJson)if (++count == countAll) endFun();
//序列化,不格式化,节省内存
}
})
} else {
if (++count == countAll) endFun();
}
})
function endFun() {
console.log("资源配置js生成完毕")
// del(join(readPath, "res.json"))
fs.writeFileSync(readPath + "res.json", JSON.stringify(data, "", "\t"));
}
function getGroupByName(name, groups) {
var group;
for (var i = 0; i < groups.length; i++) {
if (groups[i].name === name) {
group = groups[i];
break;
}
}
return group
}
var fs = require("fs");
var PSD = require('psd');
var path = require('path');
// const mkdirp = require('mkdirp');
//千万别再执行,否则覆盖
// return
var options = {
//导出图片的目录,没有就导在psd所在目录
outImgDir: "./resource/",
//导出Json的目录,没有就不导出
outJsonDir: "./resource/",
}
//psd文件所在文件夹目录
var pathName = "./psd";
var files = fs.readdirSync(pathName);
//只输出一个数据,就算多个psd,也按照每个psd的第一级进入root的children
var rootStructure = {
'x': 0,
'y': 0,
'type': "container",
'children': []
}
files.forEach(async function (psdFileName) {
//获取当前文件的后缀名
var extname = path.extname(psdFileName);
//后缀psd的,进行切图
if (extname.indexOf(".psd") >= 0) {
const psdFile = pathName + "/" + psdFileName
const psdFilePath = path.resolve(psdFile);
var pathInfo = path.parse(psdFile);
const psdData = PSD.fromFile(psdFilePath);//open(异步),fromDroppedFile(异步,拖入文件),fromFile
psdData.parse();
const rootNode = psdData.tree();
//按照第一层的进行分组导出
for (let i = 0; i < rootNode._children.length; i++) {
//一个组,比如开始页面,游戏页面等
const group111 = rootNode._children[i]
const queueNodes = [];
const queueNodesIndex = [];
const queueNodesName = [];
const queueNodesStructure = [];
//如果不是组,直接导common文件夹
if (!group111._children || !group111._children.length) {
saveAsPng("common", group111.name, group111)
} else {
const groupName = rootNode._children[i].name;
//颠倒一下
group111._children.reverse()
queueNodes.push(group111._children);
queueNodesIndex.push(0);
queueNodesName.push(undefined);
//首层的容器默认都是0,0,所以他的left和top修改下
group111.left = group111.top = 0;
const psdStructure = {
// 'ids': "",
"name": groupName,
'x': 0,
'y': 0,
'type': "container",
'children': []
};
queueNodesStructure.push(psdStructure);
queueLoop: while (0 < queueNodes.length) {
const queueIndex = queueNodes.length - 1;
const nodes = queueNodes[queueIndex];
const nodesStructure = queueNodesStructure[queueIndex];
let nodesIndex = queueNodesIndex[queueIndex];
let nodesName = queueNodesName[queueIndex];
if (nodesName === undefined) {
nodesName = '';
} else {
nodesName += path.sep;
}
while (nodesIndex < nodes.length) {
const node = nodes[nodesIndex];
nodesIndex++;
// if (node.layer.visible === false) continue;
//分割一下
const splitArr = node.name.split("_");
if (node.type === 'group') {
//如果是按钮的组,就单纯按钮的三种贴图,第一个是正常,第二个是无法点击,第三个down
if (splitArr[1] == "btn") {
const structure = {
'name': splitArr[0],
'x': node.left - (node.parent ? node.parent.left : 0),
'y': node.top - (node.parent ? node.parent.top : 0),
'type': "button",
};
structure.props = {}
// structure.source = splitArr[0] + ".png"
if (splitArr[2]) {
structure.id = splitArr[2];
// psdStructure.ids += splitArr[2] + ":FYGE.Button;"
}
saveAsPng(groupName, node._children[0].name, node._children[0]);
structure.props.tUp = node._children[0].name + ".png";
if (node._children[1]) {
saveAsPng(groupName, node._children[1].name, node._children[1]);
structure.props.tDisable = node._children[1].name + ".png";
}
if (node._children[2]) {
saveAsPng(groupName, node._children[2].name, node._children[2]);
structure.props.tDown = node._children[2].name + ".png";
}
nodesStructure.children.push(structure);
}
//单纯的组
else {
//颠倒一下
node._children.reverse()
queueNodes.push(node._children);
queueNodesIndex[queueIndex] = nodesIndex;
queueNodesIndex.push(0);
queueNodesName.push(nodesName + node.name);
const structure = {
'name': splitArr[0],
'x': node.left - (node.parent ? node.parent.left : 0),
'y': node.top - (node.parent ? node.parent.top : 0),
// 'id': splitArr[2]||,//对于group
'type': "container",
'children': [],
};
if (splitArr[1] == "skin" || splitArr[1] == "item") {//这种情况不该有id
structure.type = "item"
} else if (splitArr[1]) {
structure.id = splitArr[1];
// psdStructure.ids += splitArr[1] + ":FYGE.Container;"
}
nodesStructure.children.push(structure);
queueNodesStructure.push(structure);
continue queueLoop;
}
} else {
//如果单纯作为贴图,只保存,不进入节点
if (splitArr[1] == "tex") {
saveAsPng(groupName, splitArr[0], node)
continue;
}
const structure = {
'name': splitArr[0],
'x': node/*.layer*/.left - (node.parent ? node.parent.left : 0),
'y': node/*.layer*/.top - (node.parent ? node.parent.top : 0),
// 'width': node.layer.width,
// 'height': node.layer.height
// 'alpha': node.layer.opacity / 255,
};
//只有不为1才记录alpha
if (node.layer.opacity < 255) structure.alpha = node.layer.opacity / 255;
//如果是文本
if (node.layer.typeTool) {
structure.type = "text";
const text = node.layer.typeTool();
const sizes = text.sizes();
// if (splitArr[0] == "20%") console.log(sizes)
// var size = sizes && sizes.length > 1 ? sizes[0] || 12 :
// sizes ? (sizes[0] || 24) / 2 : 12
var size = sizes ? sizes[0] || 12 : 12 //这个psd又是正常的
const colors = text.colors()[0];
structure.props = {
text: text.textValue.replace("\r", "\n"),
size,
fillColor: rgb2String(colors),
textAlpha: colors[3] / 255 || 1,
}
if (splitArr[1]) {
//加入全局,方便复制
// psdStructure.ids += splitArr[1] + ":FYGE.TextField;";
structure.id = splitArr[1];
}
}
//如果是矢量图,考虑是否需要,简单点判断吧
else if (node.layer.solidColor &&
node.layer.vectorMask().paths[2].numPoints == 4 &&
(!node.layer.vectorMask().paths[3] || node.layer.vectorMask().paths[3].recordType == 2)
) {
const { r, g, b } = node.layer.solidColor();
let fillColor = rgb2String([r, g, b]);
structure.type = 'rect';
structure.props = {
width: node.width,
height: node.height,
fillColor
}
if (splitArr[1]) {
structure.id = splitArr[1];
// psdStructure.ids += splitArr[1] + ":FYGE.Graphics;"
}
}
//标记过按钮的
else if (splitArr[1] == "btn") {
structure.type = "button";
structure.props = {
tUp: splitArr[0] + ".png"
}
// structure.source = splitArr[0] + ".png"
if (splitArr[2]) {
structure.id = splitArr[2];
// psdStructure.ids += splitArr[2] + ":FYGE.Button;"
}
saveAsPng(groupName, splitArr[0], node)
}
//保存图片
else {
structure.type = "sprite";
//如果标记过jpg的
if (splitArr[1] == "jpg") {
structure.props = {
source: splitArr[0] + ".jpg"
}
// structure.source = splitArr[0] + ".jpg"
saveAsPng(groupName, splitArr[0], node, "jpg");
if (splitArr[2]) {
structure.id = splitArr[2];
// psdStructure.ids += splitArr[2] + ":FYGE.Sprite;"
}
} else {
structure.props = {
source: splitArr[0] + ".png"
}
// structure.source = splitArr[0] + ".png"
saveAsPng(groupName, splitArr[0], node);
if (splitArr[1]) {
structure.id = splitArr[1];
// psdStructure.ids += splitArr[1] + ":FYGE.Sprite;"
}
}
}
nodesStructure.children.push(structure);
}
}
queueNodes.pop();
queueNodesIndex.pop();
queueNodesName.pop();
queueNodesStructure.pop();
}
//存入root
rootStructure.children.push(psdStructure)
// const outJsonData = JSON.stringify(psdStructure/*.group*/, "", "\t");
//如果需要导出ui数据
// if (options.outJsonDir) {
// const outJsonDirPath = path.resolve(options.outJsonDir + groupName);
// const outJsonPath = path.join(outJsonDirPath, groupName + '.json');
// // make output directory.
// if (!fs.existsSync(outJsonDirPath)) {
// fs.mkdirSync(outJsonDirPath);
// }
// // output file.
// fs.writeFileSync(outJsonPath, outJsonData);
// }
}
}
}
})
//导出所有的数据
if (options.outJsonDir) {
//倒转一下所有children的层级
const outJsonData = JSON.stringify(rootStructure/*.group*/, "", "\t");
const outJsonDirPath = path.resolve(options.outJsonDir);
const outJsonPath = path.join(outJsonDirPath, 'skin.json');
if (!fs.existsSync(outJsonDirPath)) {
fs.mkdirSync(outJsonDirPath);
}
fs.writeFileSync(outJsonPath, outJsonData);
//代码也保存
var endPath = './src/';
var endFile = `export const SkinJson = ${outJsonData}`
fs.writeFileSync(endPath + "SkinJson.ts", endFile);
}
function rgb2String(rgb) {
var hex = ((rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] | 0));
hex = hex.toString(16);
hex = '000000'.substr(0, 6 - hex.length) + hex;
return `#${hex}`;
}
/**
*
* @param {string} dirName 文件夹名字
* @param {string} name 图片名称
* @param {*} node
* @param {*} format 保存图片格式,默认png
*/
function saveAsPng(dirName, name, node, format = "png") {
const outImgDirPath = options.outImgDir + dirName;
// mkdirp.sync(outImgDirPath);
if (!fs.existsSync(outImgDirPath)) fs.mkdirSync(outImgDirPath);
console.log('保存图片:' + name + '.' + format);
//保存成图片
node.layer.image.saveAsPng(path.join(outImgDirPath, name + '.' + format));
}
var fs = require("fs");
var PSD = require('psd');
var path = require('path');
// const mkdirp = require('mkdirp');
//千万别再执行,否则覆盖
// return
//取指令后的参数
let arg = process.argv.splice(2);
//psd文件名字
var psdName = arg[0];
var options = {
//导出图片的目录,没有就导在psd所在目录,单视图处理都先进psd,
outImgDir: "./psd/",
//导出Json的目录,没有就不导出,单视图处理都先进psd,剩下的自己复制,为了不影响原皮肤数据
outJsonDir: "./psd/",
}
//psd文件所在文件夹目录
var pathName = "./psd";
//只输出一个数据,就算多个psd,也按照每个psd的第一级进入root的children
var rootStructure = {
'x': 0,
'y': 0,
'type': "container",
'children': []
}
const psdFile = pathName + "/" + psdName + ".psd";
const psdFilePath = path.resolve(psdFile);
// var pathInfo = path.parse(psdFile);
const psdData = PSD.fromFile(psdFilePath);//open(异步),fromDroppedFile(异步,拖入文件),fromFile
psdData.parse();
const rootNode = psdData.tree();
//按照第一层的进行分组导出
for (let i = 0; i < rootNode._children.length; i++) {
//一个组,比如开始页面,游戏页面等
const group111 = rootNode._children[i]
const queueNodes = [];
const queueNodesIndex = [];
const queueNodesName = [];
const queueNodesStructure = [];
//如果不是组,直接导common文件夹
if (!group111._children || !group111._children.length) {
saveAsPng("common", group111.name, group111)
} else {
const groupName = rootNode._children[i].name;
//颠倒一下
group111._children.reverse()
queueNodes.push(group111._children);
queueNodesIndex.push(0);
queueNodesName.push(undefined);
//首层的容器默认都是0,0,所以他的left和top修改下
group111.left = group111.top = 0;
const psdStructure = {
// 'ids': "",
"name": groupName,
'x': 0,
'y': 0,
'type': "container",
'children': []
};
queueNodesStructure.push(psdStructure);
queueLoop: while (0 < queueNodes.length) {
const queueIndex = queueNodes.length - 1;
const nodes = queueNodes[queueIndex];
const nodesStructure = queueNodesStructure[queueIndex];
let nodesIndex = queueNodesIndex[queueIndex];
let nodesName = queueNodesName[queueIndex];
if (nodesName === undefined) {
nodesName = '';
} else {
nodesName += path.sep;
}
while (nodesIndex < nodes.length) {
const node = nodes[nodesIndex];
nodesIndex++;
// if (node.layer.visible === false) continue;
//分割一下
const splitArr = node.name.split("_");
if (node.type === 'group') {
//如果是按钮的组,就单纯按钮的三种贴图,第一个是正常,第二个是无法点击,第三个down
if (splitArr[1] == "btn") {
const structure = {
'name': splitArr[0],
'x': node.left - (node.parent ? node.parent.left : 0),
'y': node.top - (node.parent ? node.parent.top : 0),
'type': "button",
};
structure.props = {}
// structure.source = splitArr[0] + ".png"
if (splitArr[2]) {
structure.id = splitArr[2];
// psdStructure.ids += splitArr[2] + ":FYGE.Button;"
}
saveAsPng(groupName, node._children[0].name, node._children[0]);
structure.props.tUp = node._children[0].name + ".png";
if (node._children[1]) {
saveAsPng(groupName, node._children[1].name, node._children[1]);
structure.props.tDisable = node._children[1].name + ".png";
}
if (node._children[2]) {
saveAsPng(groupName, node._children[2].name, node._children[2]);
structure.props.tDown = node._children[2].name + ".png";
}
nodesStructure.children.push(structure);
}
//单纯的组
else {
//颠倒一下
node._children.reverse()
queueNodes.push(node._children);
queueNodesIndex[queueIndex] = nodesIndex;
queueNodesIndex.push(0);
queueNodesName.push(nodesName + node.name);
const structure = {
'name': splitArr[0],
'x': node.left - (node.parent ? node.parent.left : 0),
'y': node.top - (node.parent ? node.parent.top : 0),
// 'id': splitArr[2]||,//对于group
'type': "container",
'children': [],
};
if (splitArr[1] == "skin" || splitArr[1] == "item") {//这种情况不该有id,但是貌似没法集合id了
structure.type = "item"
} else if (splitArr[1]) {
structure.id = splitArr[1];
// psdStructure.ids += splitArr[1] + ":FYGE.Container;"
}
nodesStructure.children.push(structure);
queueNodesStructure.push(structure);
continue queueLoop;
}
} else {
//如果单纯作为贴图,只保存,不进入节点
if (splitArr[1] == "tex") {
saveAsPng(groupName, splitArr[0], node)
continue;
}
const structure = {
'name': splitArr[0],
'x': node/*.layer*/.left - (node.parent ? node.parent.left : 0),
'y': node/*.layer*/.top - (node.parent ? node.parent.top : 0),
// 'width': node.layer.width,
// 'height': node.layer.height
// 'alpha': node.layer.opacity / 255,
};
//只有不为1才记录alpha
if (node.layer.opacity < 255) structure.alpha = node.layer.opacity / 255;
//如果是文本
if (node.layer.typeTool) {
structure.type = "text";
const text = node.layer.typeTool();
const sizes = text.sizes();
// if (splitArr[0] == "20%") console.log(sizes)
// var size = sizes && sizes.length > 1 ? sizes[0] || 12 :
// sizes ? (sizes[0] || 24) / 2 : 12
var size = sizes ? sizes[0] || 12 : 12 //这个psd又是正常的
const colors = text.colors()[0];
structure.props = {
text: text.textValue.replace("\r", "\n"),
size,
fillColor: rgb2String(colors),
textAlpha: colors[3] / 255 || 1,
}
if (splitArr[1]) {
//加入全局,方便复制
// psdStructure.ids += splitArr[1] + ":FYGE.TextField;";
structure.id = splitArr[1];
}
}
//如果是矢量图,考虑是否需要,简单点判断吧
else if (node.layer.solidColor &&
node.layer.vectorMask().paths[2].numPoints == 4 &&
(!node.layer.vectorMask().paths[3] || node.layer.vectorMask().paths[3].recordType == 2)
) {
const { r, g, b } = node.layer.solidColor();
let fillColor = rgb2String([r, g, b]);
structure.type = 'rect';
structure.props = {
width: node.width,
height: node.height,
fillColor
}
if (splitArr[1]) {
structure.id = splitArr[1];
// psdStructure.ids += splitArr[1] + ":FYGE.Graphics;"
}
}
//标记过按钮的
else if (splitArr[1] == "btn") {
structure.type = "button";
structure.props = {
tUp: splitArr[0] + ".png"
}
// structure.source = splitArr[0] + ".png"
if (splitArr[2]) {
structure.id = splitArr[2];
// psdStructure.ids += splitArr[2] + ":FYGE.Button;"
}
saveAsPng(groupName, splitArr[0], node)
}
//保存图片
else {
structure.type = "sprite";
//如果标记过jpg的
if (splitArr[1] == "jpg") {
structure.props = {
source: splitArr[0] + ".jpg"
}
// structure.source = splitArr[0] + ".jpg"
saveAsPng(groupName, splitArr[0], node, "jpg");
if (splitArr[2]) {
structure.id = splitArr[2];
// psdStructure.ids += splitArr[2] + ":FYGE.Sprite;"
}
} else {
structure.props = {
source: splitArr[0] + ".png"
}
// structure.source = splitArr[0] + ".png"
saveAsPng(groupName, splitArr[0], node);
if (splitArr[1]) {
structure.id = splitArr[1];
// psdStructure.ids += splitArr[1] + ":FYGE.Sprite;"
}
}
}
nodesStructure.children.push(structure);
}
}
queueNodes.pop();
queueNodesIndex.pop();
queueNodesName.pop();
queueNodesStructure.pop();
}
//存入root
rootStructure.children.push(psdStructure)
// const outJsonData = JSON.stringify(psdStructure/*.group*/, "", "\t");
//如果需要导出ui数据
// if (options.outJsonDir) {
// const outJsonDirPath = path.resolve(options.outJsonDir + groupName);
// const outJsonPath = path.join(outJsonDirPath, groupName + '.json');
// // make output directory.
// if (!fs.existsSync(outJsonDirPath)) {
// fs.mkdirSync(outJsonDirPath);
// }
// // output file.
// fs.writeFileSync(outJsonPath, outJsonData);
// }
}
}
//导出所有的数据
if (options.outJsonDir) {
//倒转一下所有children的层级
const outJsonData = JSON.stringify(rootStructure/*.group*/, "", "\t");
const outJsonDirPath = path.resolve(options.outJsonDir);
const outJsonPath = path.join(outJsonDirPath, 'skin.json');
if (!fs.existsSync(outJsonDirPath)) {
fs.mkdirSync(outJsonDirPath);
}
fs.writeFileSync(outJsonPath, outJsonData);
//代码也保存
// var endPath = './src/';
// var endFile = `export const SkinJson = ${outJsonData}`
// fs.writeFileSync(endPath + "SkinJson.ts", endFile);
}
function rgb2String(rgb) {
var hex = ((rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] | 0));
hex = hex.toString(16);
hex = '000000'.substr(0, 6 - hex.length) + hex;
return `#${hex}`;
}
/**
*
* @param {string} dirName 文件夹名字
* @param {string} name 图片名称
* @param {*} node
* @param {*} format 保存图片格式,默认png
*/
function saveAsPng(dirName, name, node, format = "png") {
const outImgDirPath = options.outImgDir + dirName;
// mkdirp.sync(outImgDirPath);
if (!fs.existsSync(outImgDirPath)) fs.mkdirSync(outImgDirPath);
console.log('保存图片:' + name + '.' + format);
//保存成图片
node.layer.image.saveAsPng(path.join(outImgDirPath, name + '.' + format));
}
/*
* runScript.js
* Created by 还有醋v on 2021/5/8.
* Copyright © 2021 haiyoucuv. All rights reserved.
*/
const childProcess = require('child_process');
module.exports = function runScript(scriptPath, callback) {
let invoked = false;
const process = childProcess.fork(scriptPath);
process.on('error', function (err) {
if (invoked) return;
invoked = true;
callback(err);
});
process.on('exit', function (code) {
if (invoked) return;
invoked = true;
const err = code === 0 ? null : new Error('exit code ' + code);
callback(err);
});
}
var fs = require("fs");
var exec = require('child_process').exec;
var iconv = require('iconv-lite');
var del = require('del');
const join = require('path').join;
// var packTextures = require("pack_textures")
//写入图集的文件夹
var outPath = "./released/resource/";
//读取散图的文件夹
var readPath = "./released/tm/";
var files = fs.readdirSync(readPath);
files.forEach(function (file) {
//路径
let fPath = join(readPath, file);
//只处理文件夹
if (fs.statSync(fPath).isDirectory()) {
//判断文件夹内是否有图片
if (!judgeHasImage(fPath)) return;
//如果文件夹不存在
if (!fs.existsSync(outPath + file)) {
fs.mkdirSync(outPath + file);
}
else {
//图集文件存在就删除
if (fs.existsSync(outPath + file + "/" + file + ".json")) {
del(outPath + file + "/" + file + ".json")
}
if (fs.existsSync(outPath + file + "/" + file + ".png")) {
del(outPath + file + "/" + file + ".png")
}
}
// packTextures(
// fPath,
// outPath + file + "/" + file,
// 4096,
// 4096,
// false,
// 2,
// 2,
// true,
// true
// )
//全局命令装过,就直接用命令行
exec(
'packTextures' + //基础指令
' -i ' + fPath + //要合图集的文件夹路径
' -o ' + outPath + file + "/" + file + //输出路径及名字
' --mw ' + 4096 + //最大宽度
' --mh ' + 4096 +//最大高度
' -p ' + false + //长宽是否2的指数,canvas下没必要,false
' --sp ' + 2 + //图片间隔
' --bp ' + 2 + //边界间隔
' -r ' + true + //是否允许图片旋转
' -t ' + true //是否允许裁切图片边缘透明像素
, { encoding: 'utf8' }, (e) => {
if (e) {
console.log(e)
return
}
console.log("生成图集:" + file)
}
)
}
})
/**
* 判断文件夹内是否有图片
* @param {*} path
*/
function judgeHasImage(path) {
var files = fs.readdirSync(path);
for (var i = 0; i < files.length; i++) {
var itm = files[i]
var stat = fs.statSync(path + "/" + itm);
if (stat.isDirectory()) {
//递归读取文件
if (judgeHasImage(path + "/" + itm + "/")) return true;
} else {
if (itm.substr(-4) == ".jpg" || itm.substr(-4) == ".png") return true;
}
}
return false;
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
var fs = require('fs');
var path = require('path');
const co = require('co');
const OSS = require('ali-oss');
const chalk = require('chalk');
const ProgressBar = require('progress');
class TuiaAutoUpload {
constructor(props, type) {
this.type = type;
const defaultOptions = {
dir: undefined,
originDir: undefined
}
this.options = Object.assign({}, defaultOptions, props);
if (!this.options.dir || !this.options.originDir) {
console.log(chalk.red('缺少参数,初始化失败'))
return;
}
this.init();
}
init() {
var _this = this;
this.client = new OSS({
region: 'oss-cn-hangzhou',
accessKeyId: 'LTAI4Fw25WcfcGv7FvcHoiHK',
accessKeySecret: 'NZk1NtT9J5HFaAolNbtQdzTzLLvLYm',
bucket: _this.type === 'prod' ? 'duiba' : 'daily-duiba'
});
this.bar = new ProgressBar(chalk.yellow(` 文件上传中 [:bar] :current/${this.files().length} :percent :elapseds`), {
complete: '●',
incomplete: '○',
width: 20,
total: this.files().length,
callback: () => {
console.log(chalk.green('\n All complete.'));
console.log(chalk.blue(`\n 本次队列文件共${this.files().length}个,已存在文件${this.existFiles}个,上传文件${this.uploadFiles}个,上传失败文件${this.errorFiles}个\n`));
}
})
return this;
}
files() {
var _this = this;
if (this._files) return this._files;
this._files = [];
/**
* 文件遍历方法
* @param filePath 需要遍历的文件路径
*/
function fileDisplay(filePath) {
//根据文件路径读取文件,返回文件列表
var files = fs.readdirSync(filePath);
files.forEach(function (filename) {
//获取当前文件的绝对路径
var filedir = path.join(filePath, filename);
//根据文件路径获取文件信息,返回一个fs.Stats对象
var stats = fs.statSync(filedir);
var isFile = stats.isFile();//是文件
var isDir = stats.isDirectory();//是文件夹
if (isFile) {
var sep = '/';
if ('win32' == process.platform)
sep = '\\';
var newDirArr = filedir.split(sep);
newDirArr.shift();
_this._files.push(newDirArr.join('/'));
}
if (isDir) {
fileDisplay(filedir);//递归,如果是文件夹,就继续遍历该文件夹下面的文件
}
});
}
//调用文件遍历方法
fileDisplay(this.options.dir);
return this._files;
}
start() {
this.files().map((file, index) => {
let _this = this;
const path1 = path.join(path.resolve(__dirname, '..'), 'released', file);
let originFile;
this.existFiles = 0;
this.uploadFiles = 0;
this.errorFiles = 0;
co(function* () {
const originPath = `${_this.options.originDir}${file}`;
try {
originFile = yield _this.client.head(originPath);
} catch (error) {
originFile = error;
}
if (_this.type === 'prod') {
if (originFile.status === 404) {
yield _this.client.put(originPath, path1);
_this.uploadFiles += 1;
} else {
_this.existFiles += 1;
}
} else if (_this.type === 'dev') {
if (originFile.status === 404 || originFile.status === 200) {
_this.existFiles += 1;
}
yield _this.client.put(originPath, path1, {
headers: {
'Cache-Control': 'no-cache'
}
})
_this.uploadFiles += 1;
}
_this.bar.tick();
}).catch(function (err) {
_this.errorFiles += 1;
console.log(err);
});
});
}
}
const configFileName = 'project.json';
if (!fs.existsSync(configFileName)) {
throw new Error(`${configFileName}不存在.`)
}
let config = fs.readFileSync('project.json');
config = JSON.parse(config + '');
if (!config.type) {
throw new Error(`${configFileName}的type不存在.`)
}
if (!config.name) {
throw new Error(`${configFileName}的name不存在.`)
}
const now = new Date();
const version = Math.round(now.getTime() / 1000);
console.log(`版本号:
${version}`)
const autoupload = new TuiaAutoUpload({
dir: './released/',
// dir: path.join(__dirname, './released/'),
originDir: `/db_games/${config.type}/${config.name}/${version}/`
}, "prod")
autoupload.start()
var iconv = require('iconv-lite');
var readPath = "./released/resource/";
//读取json文件
var data = iconv.decode(fs.readFileSync(readPath + "res.json"), "utf-8");//GBK
//反序列化
data = JSON.parse(data);
data.path = `https://yun.duiba.com.cn/db_games/${config.type}/${config.name}/${version}/resource/`
//写入目标文件夹,可配置,每个项目必须修改,或者直接和project的保持一致(淘宝项目文件固定后)
var endPath = './src/';
var endFile = `export const ResJson = ${JSON.stringify(data, "", "\t")}`
fs.writeFileSync(endPath + "ResJson.ts", endFile);
//根据参数吧,有就是web。需要生成皮肤和js,没有就不执行后续
let arg = process.argv.splice(2);
if (!arg[0]) return;
//有版本号了,模板也生成吧
require("./createHtml")(`${config.type}/${config.name}/${version}`);
var uploadSingleJs = require("./uploadSingleJs")
var exec = require('child_process').exec;
//打包js
exec("webpack --config webpack.prod.js", { encoding: 'utf8' }, (e) => {
if (e) {
console.log(e)
return
}
uploadSingleJs(`${config.type}/${config.name}/${version}`)
//再打印一次
console.log(`版本号:
${version}`)
})
\ No newline at end of file
const co = require('co');
const OSS = require('ali-oss');
var fs = require('fs');
let arg = process.argv.splice(2);
//只打包js时,自执行上传
if(arg[0])uploadSingleJs();
function uploadSingleJs(url) {
if (!url) {//不传的时候
const configFileName = 'project.json';
if (!fs.existsSync(configFileName)) {
throw new Error(`${configFileName}不存在.`)
}
let config = fs.readFileSync('project.json');
config = JSON.parse(config + '');
if (!config.type) {
throw new Error(`${configFileName}的type不存在.`)
}
if (!config.name) {
throw new Error(`${configFileName}的name不存在.`)
}
const now = new Date();
const version = Math.round(now.getTime() / 1000);
console.log(`版本号:
${version}`)
url = `${config.type}/${config.name}/${version}`;
require("./createHtml")(`${config.type}/${config.name}/${version}`);
}
//单js文件上传
co(function* () {
const originPath = `/db_games/${url}/output.js`;
var client = new OSS({
region: 'oss-cn-hangzhou',
accessKeyId: 'LTAI4Fw25WcfcGv7FvcHoiHK',
accessKeySecret: 'NZk1NtT9J5HFaAolNbtQdzTzLLvLYm',
bucket: 'duiba'
})
var originFile;
try {
originFile = yield client.head(originPath);
} catch (error) {
originFile = error;
}
if (originFile.status === 404)
yield client.put(originPath, "./output.js");
})
}
module.exports = uploadSingleJs
\ No newline at end of file
var readline = require('readline');//node上有,不为了锁版本,可以不用安装
// warn("aaasd",()=>{console.log(213)},()=>{console.log(65)})
/**
* 提醒脚本
* @param {string} msg 提示信息
* @param {Function} resolve yes回调
* @param {Function} reject no回调
*/
function warn(msg, resolve, reject) {
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question(msg + "[y/n]", function (answer) {
switch (answer) {
case 'y':
case 'Y':
case 'yes':
case 'YES':
resolve && resolve();
// 不加close,则不会结束
rl.close();
break;
case 'n':
case 'N':
case 'no':
case 'NO':
default:
reject && reject();
rl.close();
break;
}
});
}
module.exports = warn
\ No newline at end of file
export default class Clock {
startTime = 0;
oldTime = 0;
elapsedTime = 0;
running = false;
constructor(
public autoStart = true
) {
}
start() {
this.startTime = (typeof performance === 'undefined' ? Date : performance).now();
this.oldTime = this.startTime;
// this.elapsedTime = 0;
this.running = true;
}
stop() {
this.running = false;
this.autoStart = false;
return this.getElapsedTime();
}
st() {
this.running = false
}
reset() {
this.elapsedTime = 0;
}
getElapsedTime() {
// this.getDelta();
return this.elapsedTime;
}
getDelta() {
let diff = 0;
if (this.autoStart && !this.running) {
this.start();
return 0;
}
if (this.running) {
const newTime = (typeof performance === 'undefined' ? Date : performance).now();
diff = (newTime - this.oldTime) / 1000;
this.oldTime = newTime;
this.elapsedTime += diff;
}
return diff;
}
}
import { destroyLayers, layers } from "../module/views/layers";
import { RES } from "../module/RES";
import { changeScene, destroyAllCtrls, hideWaiting, showPanel, showToast, showWaiting } from "../module/ctrls";
import MusicBtn from "./common/MusicBtn";
import { ResJson } from "./ResJson";
import { destroyTbNetData, sendTbNet, TbNetName } from "./TaoBaoNet";
import { SkinJson } from "./SkinJson";
import { G_EVENT } from "./common/G_EVENT";
import { Tools } from "./Tools";
import IndexScene from './scenes/IndexScene';
/**
* 全局事件,为了和小程序交互
* 有可能多处页面用到,所以单开
*/
export const GDispatcher = new FYGE.EventDispatcher();
export class Main {
//主舞台
stage: FYGE.Stage;
private requestID;
private _pause: boolean;
private canvas: HTMLCanvasElement
constructor(canvas: HTMLCanvasElement, PAGE) {
Tools.PAGE = PAGE;
var sysInfo;
//淘宝小程序环境就用canvas初始化
if (!window) {//自行处理吧,这么判断也不保险,万一淘宝小程序加进了window
FYGE.initedByCanvas(canvas)//里面会设置env为tb,这个很重要
//@ts-ignore 存在my就初始化
sysInfo = my.getSystemInfoSync()
}
//建舞台
var stage = new FYGE.Stage(
canvas,
750,//设计宽度,按设计搞给的就行
1624,//设计高度
sysInfo && sysInfo.windowWidth || document.body.clientWidth,
sysInfo && sysInfo.windowHeight || document.body.clientHeight,
FYGE.RENDERER_TYPE.WEBGL,
true //视窗居中裁切
);
this.stage = stage;
this.canvas = canvas;//赋值下,为了下面的destroy的cancelAnimationFrame
//stage初始化
stage.addEventListener(FYGE.Event.INIT_STAGE, this.onAddToStage, this);
//帧率
// var stats = new FYGE.Stats("canva4stats");
//循环
var self = this;
// console.log(FYGE)
loop();
function loop() {
if (!self._pause) {
// stats.begin();
FYGE.Tween.flush()
stage.flush();
// stats.end();
}
//@ts-ignore
// self.requestID = FYGE.getRequestAnimationFrame()(loop);
//为了兼容多page的canvas
FYGE.getEnv() == "tb" ? self.requestID = canvas.requestAnimationFrame(loop) :
self.requestID = window.requestAnimationFrame(loop);
}
}
/**
* 在小程序显示时调用onShow
*/
run() {
this._pause = false;
//@ts-ignore Tween计时清零
FYGE.Tween._lastTime = null;
GDispatcher.dispatchEvent({ type: G_EVENT.ON_SHOW });
}
/**
* 在小程序隐藏时调用onHide
*/
pause() {
// this._pause = true;//先不暂停了
GDispatcher.dispatchEvent({ type: G_EVENT.ON_HIDE });
}
/**
* 添加全局事件,用于小程序的交互调用
* 一直很犹豫要不要放在main的实例里,还是和Main同级导出,还有上面的pause,run,下面的事件等
* @param name
* @param fun
* @param thisObj
*/
addGlobalEvent(name: string, fun: Function, thisObj?: any, once: boolean = false) {
if (once) {
GDispatcher.once(name, fun, thisObj)
} else {
GDispatcher.addEventListener(name, fun, thisObj)
}
}
/**
* 派发全局事件,用于小程序的交互调用
* @param name 可以是事件名,也可以是事件
* @param data
*/
dispatchGlobalEvent(name: string | any, data?: any) {
GDispatcher.dispatchEvent(name, data)
}
/**
* 移除全局事件,用于小程序交互调用
* @param name
* @param fun
* @param thisObj
*/
removeGlobalEvent(name: string, fun: Function, thisObj?: any) {
GDispatcher.removeEventListener(name, fun, thisObj)
}
// 在小程序页面卸载时调用onUnload,多次销毁后会有问题,再检查
async destroy() {
// Tween都移除,注意吧,可能原先的也被移除,,对于多page时注意,会把其他页面的也去掉
FYGE.Tween.removeAllTweens()
// 停掉计时器
//@ts-ignore 为了兼容多page的canvas
FYGE.getEnv() == "tb" ? this.canvas.cancelAnimationFrame(this.requestID) :
window.cancelAnimationFrame(this.requestID);
// 层级销毁
destroyLayers()
// 销毁控制器
destroyAllCtrls();
// 舞台销毁
// this.stage.destroy();
// 全局事件置空
GDispatcher.removeAllEventListener();
// 淘宝环境网络数据记录清空
destroyTbNetData();
// web环境其实没必要
// destroyWebNetData()
}
private async onAddToStage() {
//初始化层级
layers.init(this.stage);
console.log("初始化层级完成")
// 初始化资源配置
RES.loadConfig(ResJson);
console.log("初始化资源配置完成")
// 皮肤配置加载
RES.loadSkinConfig(SkinJson);
console.log("初始化皮肤配置完成")
// 加载完美 icon 资源
await RES.loadGroup('excellent_icon')
// 加载通用资源
await RES.loadGroup("common");
console.log("通用资源加载完成")
// h5环境时,隐藏加载中
if (FYGE.getEnv() == "web" && document.getElementById("__loading__")) document.getElementById("__loading__").style.display = "none";
console.log('getGlobalData')
await Tools.getGlobalData()
// const baseSuccess = await Tools.getActivityBaseInfo();
// if (!baseSuccess) {
// showToast("获取活动信息失败");
// return;
// }
// const gameSuccess = await Tools.getGameInfo();
// if (!gameSuccess) {
// showToast("获取游戏信息失败");
// return;
// }
// vtodo 是否是新手
changeScene(IndexScene);
}
}
if (!String.prototype.repeat) {
String.prototype.repeat = function (count) {
const str = '' + this;
count = (count >> 0);
const t = (count > 1 ? this.repeat(str, count / 2) : '');
return t + (count % 2 ? t + str : t);
}
}
export const ResJson = {
"groups": [
{
"keys": "countdown-back.png",
"name": "CountDownComp"
},
{
"keys": "back-home.png,jump-icon.png,more-btn.png,new-record-icon.png,product-link__icon.png,share-btn.png",
"name": "GameOver"
},
{
"keys": "over-back.png,over-tipsicon.png,prize-icon1.png,prize-icon2.png,prize-icon3.png",
"name": "GameOverPanel"
},
{
"keys": "num0.png,num1.png,num2.png,num3.png,num4.png,num5.png,num6.png,num7.png,num8.png,num9.png,numb0.png,numb1.png,numb2.png,numb3.png,numb4.png,numb5.png,numb6.png,numb7.png,numb8.png,numb9.png,numbp.png,nump.png,p1-b.png,p10-b.png,p11-b.png,p12-b.png,p13-b.png,p14-b.png,p15-b.png,p16-b.png,p17-b.png,p18-b.png,p19-b.png,p2-b.png,p20-b.png,p3-b.png,p4-b.png,p5-b.png,p6-b.png,p7-b.png,p8-b.png,p9-b.png",
"name": "GameScene"
},
{
"keys": "confirm-btn-1.png,newcp-back.png",
"name": "NewCompletePanel"
},
{
"keys": "confirm-btn.png,prize-back-title.png,prize-back.png",
"name": "PrizeShowPanel"
},
{
"keys": "0538f9077d06efad323df05b04e7662e.png,0b5fa6df9b5a26d539e77c2608608d8b.png,0b8805ae-138d-4397-ba2e-78c631199ce0.png,12ec8054b8c348ae7d1e958d1cd2588a.png,1ca73db4-7b05-4b0e-a0fb-8b8554ade130.png,25a820fd42aef3ebf647fa8a8f1b6d97.png,28d56a3f5babaecfd5f73e5813945b5f.png,293052b6-b434-43d0-9ab8-28b6186bd5ca.png,29d49776-b18b-4c9d-a753-82aaaa888624.png,2cf13601-7f36-49cc-8699-2a212858725f.png,359747a74903ade247a702ed9b9229e1.png,39f071fb61eea4b15c28ee87f9a42ab9.png,41178870-b275-495b-8c72-9badb88d9f8c.png,4b8809c43f465d648d826696fa6f402a.png,56b3e456-868a-49a1-bef9-029dc148ed5a.png,6a6640c7-6455-4901-b39c-6b326a1bedbe.png,6e2c9e1567421038ba7a35d5acc53cd5.png,73d6a8ce-2d10-48c1-9d98-6e9b9edf14cb.png,7c52769b370035c2ed3d45c4575899f6.png,8bc5a36a8dbf1a26043a75b265b4b1eb.png,96c45192-0b3e-4bb9-a56b-c8a6f02efef1.png,a0f816ef-8021-4202-a478-1e5c05dde786.png,a92d32f9a8c52dcc79d0c99de311474e.png,ad8b5041-5fdb-4947-8b91-be70e6227ce9.png,adf0dae232a9ffa6a9ce1352a7360980.png,b280118e-fcdf-4d8f-b2fd-357bd153c425.png,b75f6509-258d-4058-8ddc-382c082e5cd7.png,b901f16e009de3b207787382b611a267.png,beaa8224-6905-4ced-96eb-4f89d5896199.png,c2d234e2-dea6-44fd-bdf7-58d932204772.png,c3192272-4150-4f33-8e76-110355f09831.png,ce491a6c44cb6e60d7cc705630d719e1.png,d44c0d0dbb74647e3d1f3114e89a18fa.png,d5a8f96f100df42fd094915c7e70f625.png,d9e2bfe5ede84f7f53e57e6796cb54b2.png,da8a31673c7f5b4c68f4d4dc44ba8faf.png,dc51d376-f884-45fa-a76f-ca96f2f4d028.png,df583b9d-9a9c-4f47-90f1-67bcfa9fb308.png,e2feb63adef7d65f3d56dc84d5b59e65.png,e68dfb4b-2a63-43f2-a476-7445d80a0853.png,f992a7bf1bceafbc97fece72e04bcea9.png,ffc1d98f-d69e-43b1-8554-315276aa1322.png",
"name": "balance_guidance"
},
{
"keys": "0272a464df7d9c1ca7bcd240ff5b6ff1.png,0339f8cec366210e1895bb822005f5ca.png,0471fa62dfb977981f0bbcbf03d5364c.png,0521db775413790e5754d0a359a26c05.png,056b70b501ad2bb9de96fe5a40ec244c.png,0960016b2a4b0945ae1a504cf05d58b5.png,1366e0dc8765778425bc3612c5a02991.png,16794fd2bb051adab7cf54b7e36d2c87.png,1cb1e4d2fa9e520728a397f33dc41e85.png,1daa260b-4ad6-453a-bf2f-3f67fa4ee58d.png,23a5d1a88f781623a16727e8defbe5f2.png,243da2df1403d966f345a1bf61310276.png,2592ff4846d8e05ea9280a9206b2b765.png,2b774e8e40d7eeb4f56565090fcf1a1f.png,3845b99169cdf2ffd89eec33629236b2.png,3965e139993e5072b687ba1e944ae568.png,4947993d9e0c86dd197cab056f32b26e.png,4f7efec7932532041668f88e5eaa6485.png,55223ef0f41017b272998afbf097e11c.png,643f90f77b7858c5a54f1f2d2371a396.png,6a9d7e1fce8bc7e9b014add6ba3a40a6.png,6b5ba368fd1b35b4f7ae7d0941983b5f.png,6eab818514531d8dd0aff35576e834fe.png,70fcb05422163afdc827b4c7aa421932.png,7454ffe7-f273-42da-a8f3-56dcda5eb90c.png,7acaef1cbaa854fcc731bf08b137faaa.png,8e2a1bf2cfd857dae69edb9d70820e23.png,9da9f6301aab3bb530cc6f45520c8ad5.png,9e4c70df3c98f66fc402e0e5e64e1f0b.png,9f874f56586024e4c873b6237d027558.png,a2a8d4e441d527d8fbd8f1d1b6ec237d.png,a4e1f9ed07a40359eaf255394e272272.png,aef93a72f0db18e2c6fbc356d101bac0.png,b18be206e2cfcc766695779607b91e33.png,b7cc11169a1c2980ff1f543adc5e83fb.png,b8bcfabb7cb1690133fbc53df818a86e.png,c6d5f14a2986660aec470230367eb3d3.png,c78db3f7c109f9cf731d5045c4886854.png,c7d57022-9cec-4af2-bcb3-faf33977b271.png,c9cef93be7451b685edbd1fcd8f61732.png,e0c229e262c34b128c0f50ecac33369b.png,e8e4ae26-a99e-4a79-9261-e5fcac395fb0.png",
"name": "blank_shoe"
},
{
"keys": "comCloseBtn.png,com_light.png,count-start.png,count1.png,count2.png,count3.png,jordan-icon.png,music-off.png,music-on.png,nike-icon.png,percennt0.png,percennt1.png,percennt2.png,percennt3.png,percennt4.png,percennt5.png,percennt6.png,percennt7.png,percennt8.png,percennt9.png,percenntp.png,ruready.png,toastBg.png,waitingBg.png,waitingRot.png,跳过按钮.png",
"name": "common"
},
{
"keys": "c9a24fed01170dc61854098b7f6e50af.png",
"name": "excellent_icon"
},
{
"keys": "009ed41bfa913bd15c5dda62716e608c.png,02f26c4510df27a5acb8ce26b9c5b0ba.png,1d202725fd410588dfa8b3e1ccf810ce.png,2027bc3879e8f06799f1759fa914f426.png,245201acb5b065e60711e402277d4908.png,24cbb272ca0595390a65d16269acc141.png,28c9a63f6e33fbc7b7f9c51db5752ac9.png,32f6ae97f854c575c7130c9c2896a287.png,47d38d653cd78676a3ca3b4e7b6a7044.png,4fd8362250aa1555a1cb6352a10ac312.png,5cf06ed99e90cd0e4464cac6dbb29dc3.png,5d19c027ad8778f99a3f0950acdd2739.png,6c0fa5d1972318368c48f4c09418459d.png,71b5a61c46ec88c372180e56cbc0fb3d.png,722612e4c34ae14ba427382557a0c9cb.png,73ef3d3454a074c9decb1ecb7909105e.png,76d230aac3001933de45c949a9140889.png,77a0ae8dd94043602811479e935beafb.png,84f82a9ec12dd316f44382818fe0553c.png,9ac140216cfe3e2ba0c5f9dcb8de4856.png,a06938c7a7105be8ffd0e68c82527be5.png,a0f9249750bdd4bd9aa3f628c7f47c67.png,a3196dffd24bec4ceeb78c40e789411d.png,a811ad9246c54b177ae8c5a211ecbf02.png,a856a0dae3018ef19512f88849596579.png,addea92ee44e85d3b5c4ad97c67e0bbb.png,b7b9e7b3a43aff9ec5b46f0d253d69cc.png,ba494e2790eab1b74233301f7a6e68e2.png,bf2712c0db9cb0e2d408a529cd2421ec.png,bf3c7702119ae821578eb99c069617a3.png,c08f4c1bceb6c129da183349eaa18702.png,c111333453e0bb104a4c0d89c20c4472.png,c5aab24b86fe3182b1285f85eaec5bfe.png,ca3be215bf1c00d85f491a5ee971554f.png,cbb3cb0886f45f3e42e31b635ac2f13d.png,d024b2620af9a5f440a611167f596457.png,d77eb6d84abf89c0d276de9c598e4c58.png,d82e528b29ad71b09e0be5681959a789.png,db8bdb142b802b126523cfccf4d6a503.png,dfa3f688ec9fdd0a465f9417bd43ebf2.png,dfdbfa372b9183cb08d320aa3cc43a11.png,e0913099d595c5bc06c3d3daa62d2083.png,e1c091647a039b1c089709a81c4cd379.png,e3e8798120c483a49384a4fcc52c099c.png,e8b1bf3e159712ea403845a373fbf92e.png,f52e180cd79bcf8658830bc0c54942b9.png,f782b72f25909b59f23d0cad704f5eb4.png,ff5c46f42d987a67da838ff09c183a93.png",
"name": "guidan_360"
},
{
"keys": "p1.png,p10.png,p11.png,p12.png,p13.png,p14.png,p15.png,p16.png,p17.png,p18.png,p19.png,p2.png,p20.png,p3.png,p4.png,p5.png,p6.png,p7.png,p8.png,p9.png",
"name": "jordan_eles"
},
{
"keys": "p1.png,p10.png,p11.png,p12.png,p13.png,p14.png,p15.png,p16.png,p17.png,p18.png,p19.png,p2.png,p20.png,p3.png,p4.png,p5.png,p6.png,p7.png,p8.png,p9.png",
"name": "nike_eles"
},
{
"keys": "0272a464df7d9c1ca7bcd240ff5b6ff1.png,0339f8cec366210e1895bb822005f5ca.png,0471fa62dfb977981f0bbcbf03d5364c.png,0521db775413790e5754d0a359a26c05.png,056b70b501ad2bb9de96fe5a40ec244c.png,0960016b2a4b0945ae1a504cf05d58b5.png,1366e0dc8765778425bc3612c5a02991.png,16794fd2bb051adab7cf54b7e36d2c87.png,1cb1e4d2fa9e520728a397f33dc41e85.png,23a5d1a88f781623a16727e8defbe5f2.png,243da2df1403d966f345a1bf61310276.png,2592ff4846d8e05ea9280a9206b2b765.png,2b774e8e40d7eeb4f56565090fcf1a1f.png,3965e139993e5072b687ba1e944ae568.png,3d5139ce-fcfd-4604-b6da-282230f8afee.png,4947993d9e0c86dd197cab056f32b26e.png,4f7efec7932532041668f88e5eaa6485.png,55223ef0f41017b272998afbf097e11c.png,643f90f77b7858c5a54f1f2d2371a396.png,6a9d7e1fce8bc7e9b014add6ba3a40a6.png,6b5ba368fd1b35b4f7ae7d0941983b5f.png,6eab818514531d8dd0aff35576e834fe.png,70fcb05422163afdc827b4c7aa421932.png,7acaef1cbaa854fcc731bf08b137faaa.png,7f2a9fd9bb5aa175e606246dd843aed9.png,8e2a1bf2cfd857dae69edb9d70820e23.png,9e4c70df3c98f66fc402e0e5e64e1f0b.png,9f874f56586024e4c873b6237d027558.png,a2a8d4e441d527d8fbd8f1d1b6ec237d.png,a4e1f9ed07a40359eaf255394e272272.png,aef93a72f0db18e2c6fbc356d101bac0.png,b18be206e2cfcc766695779607b91e33.png,b7cc11169a1c2980ff1f543adc5e83fb.png,b9689750-84db-4dc3-9bba-70c6e86ff2ca.png,bbd780a01510cbc706a71d5f96f52dcb.png,c6d5f14a2986660aec470230367eb3d3.png,c78db3f7c109f9cf731d5045c4886854.png,c7d57022-9cec-4af2-bcb3-faf33977b271.png,c9cef93be7451b685edbd1fcd8f61732.png,ddde1ae50b039bf96ef7737d5708f7dd.png,e0c229e262c34b128c0f50ecac33369b.png,eb51f7d9-1919-48e8-8a5b-5e2ee8cf3075.png",
"name": "red_shoe"
},
{
"keys": "0272a464df7d9c1ca7bcd240ff5b6ff1.png,0339f8cec366210e1895bb822005f5ca.png,0471fa62dfb977981f0bbcbf03d5364c.png,0521db775413790e5754d0a359a26c05.png,056b70b501ad2bb9de96fe5a40ec244c.png,0960016b2a4b0945ae1a504cf05d58b5.png,1366e0dc8765778425bc3612c5a02991.png,16794fd2bb051adab7cf54b7e36d2c87.png,1cb1e4d2fa9e520728a397f33dc41e85.png,23a5d1a88f781623a16727e8defbe5f2.png,243da2df1403d966f345a1bf61310276.png,2592ff4846d8e05ea9280a9206b2b765.png,2b774e8e40d7eeb4f56565090fcf1a1f.png,3965e139993e5072b687ba1e944ae568.png,4947993d9e0c86dd197cab056f32b26e.png,4f7efec7932532041668f88e5eaa6485.png,55223ef0f41017b272998afbf097e11c.png,643f90f77b7858c5a54f1f2d2371a396.png,6a9d7e1fce8bc7e9b014add6ba3a40a6.png,6b5ba368fd1b35b4f7ae7d0941983b5f.png,6eab818514531d8dd0aff35576e834fe.png,70fcb05422163afdc827b4c7aa421932.png,75040919584435153d89b059a3df0bb3.png,77dbe8db0f6b44bf93b5033f3bfcf309.png,7acaef1cbaa854fcc731bf08b137faaa.png,8e2a1bf2cfd857dae69edb9d70820e23.png,9e4c70df3c98f66fc402e0e5e64e1f0b.png,9f874f56586024e4c873b6237d027558.png,a2a8d4e441d527d8fbd8f1d1b6ec237d.png,a4e1f9ed07a40359eaf255394e272272.png,aef93a72f0db18e2c6fbc356d101bac0.png,b18be206e2cfcc766695779607b91e33.png,b7cc11169a1c2980ff1f543adc5e83fb.png,c6d5f14a2986660aec470230367eb3d3.png,c78db3f7c109f9cf731d5045c4886854.png,c9cef93be7451b685edbd1fcd8f61732.png,e0c229e262c34b128c0f50ecac33369b.png,fd59bf6380de3ea52dcbbbec373bb1b4.png",
"name": "white_shoe"
},
{
"keys": "0513a2914668b008516adc921b90e29e.png",
"name": "yoga_fail"
}
],
"path": "./resource/"
}
\ No newline at end of file
export const SkinJson = {
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "LotPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "锦鲤中奖弹框背景",
"x": 73,
"y": 286,
"type": "sprite",
"props": {
"source": "锦鲤中奖弹框背景.png"
}
},
{
"name": "预置奖品图",
"x": 245,
"y": 599,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1131,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 939,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "LotNoPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "锦鲤未中奖弹框背景",
"x": 112,
"y": 449,
"type": "sprite",
"props": {
"source": "锦鲤未中奖弹框背景.png"
}
},
{
"name": "关闭按钮",
"x": 352,
"y": 1062,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 849,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "LotPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "抽奖弹框背景",
"x": 73,
"y": 286,
"type": "sprite",
"props": {
"source": "抽奖弹框背景.png"
}
},
{
"name": "立即抽奖",
"x": 200,
"y": 918,
"type": "button",
"props": {
"tUp": "立即抽奖.png"
},
"id": "lotBtn"
},
{
"name": "预置奖品图",
"x": 245,
"y": 618,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1131,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "NoLotQualifPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "没资格抽奖弹框背景",
"x": 112,
"y": 449,
"type": "sprite",
"props": {
"source": "没资格抽奖弹框背景.png"
}
},
{
"name": "关闭按钮",
"x": 352,
"y": 1062,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 849,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "RankPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "排行榜中奖弹框背景",
"x": 73,
"y": 286,
"type": "sprite",
"props": {
"source": "排行榜中奖弹框背景.png"
}
},
{
"name": "开心收下",
"x": 200,
"y": 918,
"type": "button",
"props": {
"tUp": "开心收下.png"
},
"id": "acceptBtn"
},
{
"name": "rank",
"x": 425,
"y": 481,
"type": "text",
"props": {
"text": "第2名",
"size": 66.6766,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "rank"
},
{
"name": "预置奖品图",
"x": 245,
"y": 561,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1131,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "RankNoPrizePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "排行榜未中奖弹框背景",
"x": 112,
"y": 449,
"type": "sprite",
"props": {
"source": "排行榜未中奖弹框背景.png"
}
},
{
"name": "rankTxt",
"x": 304,
"y": 648,
"type": "text",
"props": {
"text": "500",
"size": 60.87863,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "rankTxt"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1062,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "知道啦",
"x": 225,
"y": 849,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
}
]
},
{
"name": "RulePanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "ruleBg",
"x": 28,
"y": 248,
"type": "sprite",
"props": {
"source": "ruleBg.png"
}
},
{
"name": "规则内容",
"x": 74,
"y": 369,
"type": "text",
"props": {
"text": "游戏规则\n",
"size": 74.03529,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "ruleTxt"
},
{
"name": "我知道了",
"x": 164,
"y": 1197,
"type": "button",
"props": {
"tUp": "我知道了.png"
},
"id": "knowBtn"
},
{
"name": "关闭按钮2",
"x": 625,
"y": 272,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
}
]
},
{
"name": "HelpPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "助力背景",
"x": 86,
"y": 379,
"type": "sprite",
"props": {
"source": "助力背景.png"
}
},
{
"name": "为他助力",
"x": 229,
"y": 730,
"type": "button",
"props": {
"tUp": "为他助力.png"
},
"id": "helpBtn"
},
{
"name": "关闭按钮2",
"x": 583,
"y": 390,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
}
]
},
{
"name": "TaskPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "taskBg",
"x": 0,
"y": 560,
"type": "sprite",
"props": {
"source": "taskBg.png"
}
},
{
"name": "滚动内容",
"x": 25,
"y": 718,
"type": "container",
"children": [
{
"name": "购买",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "购买.png"
}
},
{
"name": "txt5",
"x": 151,
"y": 710,
"type": "text",
"props": {
"text": "预售商品付定金(0/2)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt5"
},
{
"name": "txt4",
"x": 151,
"y": 545,
"type": "text",
"props": {
"text": "浏览指定页面10s(0/1)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt4"
},
{
"name": "txt2",
"x": 151,
"y": 212,
"type": "text",
"props": {
"text": "每日登陆(0/1)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt2"
},
{
"name": "txt1",
"x": 152,
"y": 44,
"type": "text",
"props": {
"text": "关注店铺(0/1)",
"size": 32,
"fillColor": "#3c3836",
"textAlpha": 1
},
"id": "txt1"
},
{
"name": "goCompleteBtn",
"x": 529,
"y": 707,
"type": "button",
"props": {
"tUp": "goCompleteBtn.png"
},
"id": "btn5"
},
{
"name": "receiveBtn",
"x": 530,
"y": 540,
"type": "button",
"props": {
"tUp": "receiveBtn.png"
},
"id": "btn4"
},
{
"name": "goCompleteBtn",
"x": 533,
"y": 377,
"type": "button",
"props": {
"tUp": "goCompleteBtn.png"
},
"id": "btn3"
},
{
"name": "completeBtn",
"x": 533,
"y": 210,
"type": "button",
"props": {
"tUp": "completeBtn.png"
},
"id": "btn2"
},
{
"name": "completeBtn",
"x": 533,
"y": 43,
"type": "button",
"props": {
"tUp": "completeBtn.png"
},
"id": "btn1"
}
],
"id": "scrollView"
},
{
"name": "关闭按钮1",
"x": 675,
"y": 572,
"type": "button",
"props": {
"tUp": "关闭按钮1.png"
},
"id": "closeBtn"
}
]
},
{
"name": "LotMsgPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "锦鲤提示背景",
"x": 86,
"y": 309,
"type": "sprite",
"props": {
"source": "锦鲤提示背景.png"
}
},
{
"name": "知道啦",
"x": 225,
"y": 871,
"type": "button",
"props": {
"tUp": "知道啦.png"
},
"id": "knowBtn"
},
{
"name": "关闭按钮2",
"x": 583,
"y": 328,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
},
{
"name": "预置奖品图",
"x": 245,
"y": 566,
"type": "sprite",
"props": {
"source": "预置奖品图.png"
},
"id": "img"
}
]
},
{
"name": "GameOverPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "成绩",
"x": 70,
"y": 287,
"type": "sprite",
"props": {
"source": "成绩.png"
}
},
{
"name": "creditsCon",
"x": 152,
"y": 697,
"type": "container",
"children": [
{
"name": "开心收下",
"x": 48,
"y": 246,
"type": "button",
"props": {
"tUp": "开心收下.png"
},
"id": "acceptBtn"
},
{
"name": "恭喜获得文案",
"x": 136,
"y": 0,
"type": "sprite",
"props": {
"source": "恭喜获得文案.png"
}
},
{
"name": "一万文案替换",
"x": 0,
"y": 100,
"type": "sprite",
"props": {
"source": "一万文案替换.png"
},
"id": "creditsImg"
},
{
"name": "积分文案",
"x": 355,
"y": 129,
"type": "sprite",
"props": {
"source": "积分文案.png"
},
"id": "creditsIcon"
}
],
"id": "creditsCon"
},
{
"name": "rankCon",
"x": 200,
"y": 697,
"type": "container",
"children": [
{
"name": "再来一局",
"x": 0,
"y": 246,
"type": "button",
"props": {
"tUp": "再来一局.png"
},
"id": "againBtn"
},
{
"name": "当前排名文案",
"x": 91,
"y": 0,
"type": "sprite",
"props": {
"source": "当前排名文案.png"
}
},
{
"name": "三十文案替换",
"x": 31,
"y": 64,
"type": "sprite",
"props": {
"source": "三十文案替换.png"
},
"id": "rank"
}
],
"id": "rankCon"
},
{
"name": "totalScore",
"x": 381,
"y": 594,
"type": "text",
"props": {
"text": "28000000分",
"size": 69.57558,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "totalScore"
},
{
"name": "curScore",
"x": 120,
"y": 569,
"type": "text",
"props": {
"text": "2800分",
"size": 61.00614,
"fillColor": "#ef453b",
"textAlpha": 1
},
"id": "curScore"
},
{
"name": "关闭按钮",
"x": 345,
"y": 1199,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "TimesOutPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "TimesOutBg",
"x": 86,
"y": 389,
"type": "sprite",
"props": {
"source": "TimesOutBg.png"
}
},
{
"name": "去赚次数",
"x": 225,
"y": 780,
"type": "button",
"props": {
"tUp": "去赚次数.png"
},
"id": "goTaskBtn"
},
{
"name": "关闭按钮2",
"x": 583,
"y": 408,
"type": "button",
"props": {
"tUp": "关闭按钮2.png"
},
"id": "closeBtn"
}
]
},
{
"name": "RankPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "排行榜背景",
"x": 56,
"y": 284,
"type": "sprite",
"props": {
"source": "排行榜背景.png"
}
},
{
"name": "RankItem",
"x": 112,
"y": 549,
"type": "skin",
"children": [
{
"name": "num3",
"x": 0,
"y": 1,
"type": "sprite",
"props": {
"source": "num3.png"
},
"id": "num3"
},
{
"name": "num2",
"x": 0,
"y": 2,
"type": "sprite",
"props": {
"source": "num2.png"
},
"id": "num2"
},
{
"name": "num1",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "num1.png"
},
"id": "num1"
},
{
"name": "排名预置图",
"x": 5,
"y": 0,
"type": "sprite",
"props": {
"source": "排名预置图.png"
},
"id": "rank"
},
{
"name": "nickName",
"x": 174,
"y": 13,
"type": "text",
"props": {
"text": "一**猛",
"size": 30,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "nickName"
},
{
"name": "score",
"x": 363,
"y": 14,
"type": "text",
"props": {
"text": "29310900分",
"size": 30,
"fillColor": "#ef3d32",
"textAlpha": 1
},
"id": "score"
}
]
},
{
"name": "RankPrizeItem",
"x": 87,
"y": 1069,
"type": "skin",
"children": [
{
"name": "nameTxt",
"x": 38,
"y": 155,
"type": "text",
"props": {
"text": "第一名",
"size": 26,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "nameTxt"
},
{
"name": "奖项预置图",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "奖项预置图.png"
},
"id": "img"
}
]
},
{
"name": "openTime",
"x": 201,
"y": 1008,
"type": "text",
"props": {
"text": "排行榜奖励X月X日X点开奖",
"size": 30,
"fillColor": "#fffefe",
"textAlpha": 1
},
"id": "openTime"
},
{
"name": "rankNum",
"x": 103,
"y": 474,
"type": "text",
"props": {
"text": "未入榜 ",
"size": 30,
"fillColor": "#b3640b",
"textAlpha": 1
},
"id": "rankNum"
},
{
"name": "nickName",
"x": 289,
"y": 472,
"type": "text",
"props": {
"text": "巴拉巴拉",
"size": 34,
"fillColor": "#b3640b",
"textAlpha": 1
},
"id": "nickName"
},
{
"name": "score",
"x": 502,
"y": 473,
"type": "text",
"props": {
"text": "293109分",
"size": 34,
"fillColor": "#b3640b",
"textAlpha": 1
},
"id": "score"
},
{
"name": "关闭按钮",
"x": 636,
"y": 218,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
}
]
},
{
"name": "HelpTimesPanel",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "助力次数弹框背景",
"x": 73,
"y": 359,
"type": "sprite",
"props": {
"source": "助力次数弹框背景.png"
}
},
{
"name": "知道了",
"x": 200,
"y": 809,
"type": "button",
"props": {
"tUp": "知道了.png"
},
"id": "knowBtn"
},
{
"name": "关闭按钮",
"x": 352,
"y": 1041,
"type": "button",
"props": {
"tUp": "关闭按钮.png"
},
"id": "closeBtn"
},
{
"name": "friendsTxt",
"x": 256,
"y": 550,
"type": "text",
"props": {
"text": "xx为好友为你助力",
"size": 43.48474,
"fillColor": "#000000",
"textAlpha": 1
},
"id": "friendsTxt"
},
{
"name": "gameTimes",
"x": 199,
"y": 612,
"type": "text",
"props": {
"text": "游戏次数+xx",
"size": 43.48474,
"fillColor": "#ff5555",
"textAlpha": 1
},
"id": "gameTimesTxt"
}
]
},
{
"name": "StartScene",
"x": 0,
"y": 0,
"type": "container",
"children": [
{
"name": "startSceneBg",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "startSceneBg.jpg"
}
},
{
"name": "底部按钮区",
"x": 0,
"y": 1242,
"type": "container",
"children": [
{
"name": "底部按钮区背景",
"x": 0,
"y": 0,
"type": "sprite",
"props": {
"source": "底部按钮区背景.png"
}
},
{
"name": "icon",
"x": 56,
"y": 35,
"type": "container",
"children": [
{
"name": "赚次数按钮",
"x": 547,
"y": 0,
"type": "button",
"props": {
"tUp": "赚次数按钮.png"
},
"id": "taskBtn"
},
{
"name": "运动锦鲤按钮",
"x": 258,
"y": 0,
"type": "button",
"props": {
"tUp": "运动锦鲤按钮.png"
},
"id": "lotBtn"
},
{
"name": "排行榜按钮",
"x": 0,
"y": 0,
"type": "button",
"props": {
"tUp": "排行榜按钮.png"
},
"id": "rankBtn"
}
]
}
]
},
{
"name": "timesTxt",
"x": 286,
"y": 1205,
"type": "text",
"props": {
"text": "剩余次数:3次",
"size": 16.00722,
"fillColor": "#ffffff",
"textAlpha": 1
},
"id": "timesTxt"
},
{
"name": "开始游戏",
"x": 171,
"y": 1052,
"type": "button",
"props": {
"tUp": "开始游戏.png"
},
"id": "startBtn"
},
{
"name": "规则按钮",
"x": 621,
"y": 212,
"type": "button",
"props": {
"tUp": "规则按钮.png"
},
"id": "ruleBtn"
},
{
"name": "奖品按钮",
"x": 11,
"y": 212,
"type": "button",
"props": {
"tUp": "奖品按钮.png"
},
"id": "recordBtn"
}
]
}
]
}
//sdk
// <script src="//yun.duiba.com.cn/db_games/libs0924/howler.min.js"></script>
// var head = document.querySelector('body');
// var script = document.createElement('script');
// script.type = 'text/javascript';
// script.src = '//yun.duiba.com.cn/db_games/libs0924/howler.min.js';
// head.appendChild(script);
// script.onload = function() {
// }
// var resPath = "https://yun.duiba.com.cn/db_games/activity/coinDozer2D/musicTry/";
// export enum SoundType {
// bg = "hailang",
// coin = 'oneCoinFall',
// haixing = 'oneCoinFall'
// }
export const Soundurl = {
bgm: '//yun.duiba.com.cn/spark/assets/9cda83ebb34225cfb5701f02eee9e190008cfffd.mp3',
sucess: '//yun.duiba.com.cn/spark/assets/b8d82c2e432278dcc4fddfec5c6d585ac7cc5675.mp3',
fail: '//yun.duiba.com.cn/spark/assets/aa8c3daa5c0717d58649b95216bd27e06ee714da.mp3'
}
// private sounds = {
// fall: new window["Howl"]({ src: ["https://yun.duiba.com.cn/db_games/activity/coinDozer2D/musicTry/fall.mp3"] }),
// oneCoinFall: new window["Howl"]({ src: ["https://yun.duiba.com.cn/db_games/activity/coinDozer2D/musicTry/oneCoinFall.mp3"] }),
// coinsFall: new window["Howl"]({ src: ["https://yun.duiba.com.cn/db_games/activity/coinDozer2D/musicTry/pushFall.mp3"] }),
// push: new window["Howl"]({ src: ["https://yun.duiba.com.cn/db_games/activity/coinDozer2D/musicTry/push.mp3"] })
// };
export function cusPlaySound(url: any, loop: boolean = false) {
playSound(url, loop);
}
/**
* 提前加载音频
* @param type
*/
// export function preloadSound(type: SoundType) {
// let src = resPath + type + ".mp3";
// soundHash[src] = new window['Howl']({
// src: src,
// preload: true,
// });
// }
/**
* 根据路径记录
*/
const soundHash: { [key: string]: any } = {};
export function playSound(src: string, loop: boolean = false) {
//console.log('测试音效',src);
let sound;
//循环的,且有缓存,取缓存的
if (soundHash[src] && loop) sound = soundHash[src]
//没有就新建
if (!sound) sound = new window['Howl']({ src: [src], autoplay: false, loop });
//记录下,方便停止
soundHash[src] = sound;
//不循环删除缓存
if (!loop) sound.on('stop', function () { delete soundHash[src] });
//播放
sound.play();
//console.log('测试是否播放音效',src);
//返回一个,可以自行控制
return sound;
}
export function stopSound(src: string) {
if (soundHash[src]) soundHash[src].stop();
}
export function stopAllSound() {
for (let key in soundHash) soundHash[key].stop();
}
export function playAllSound() {
for (let key in soundHash) soundHash[key].play();
}
//设置隐藏属性和改变可见属性的事件的名称
let hidden: string, visibilityChange: string;
if (typeof document.hidden !== 'undefined') {
hidden = 'hidden';
visibilityChange = 'visibilitychange';
} else if (typeof document['msHidden'] !== 'undefined') {
hidden = 'msHidden';
visibilityChange = 'msvisibilitychange';
} else if (typeof document['webkitHidden'] !== 'undefined') {
hidden = 'webkitHidden';
visibilityChange = 'webkitvisibilitychange';
}
const handleVisibilityChange = (e) => {
if (document.visibilityState == "visible") {
playAllSound();
console.log("网页显示")
}
else if (document.visibilityState == "hidden") {
stopAllSound()
console.log("网页隐藏")
}
};
document.addEventListener(
visibilityChange,
handleVisibilityChange,
false
);
window.onbeforeunload = function () {
//发接口
}
// window.addEventListener('beforeunload', ()=>{
// //发接口出去,
// })
// document.body['onbeforeunload'] = () => {
// }
import { showToast, wait, clearWait, showWaiting, hideWaiting } from "../module/ctrls";
import { GDispatcher } from "./Main";
import { myApp, Tools } from "./Tools";
//接口枚举,包括需要调用淘宝的api,用是否含有兑吧区分,或者单独区分
export enum TbNetName {
/**
* 埋点统计
* activityId type
*/
addData = "yoga.addStat",
/**
* 活动基本信息
* activityId
*/
getActivityBaseInfoById = "yoga.getActivityBaseInfoById",
getGameInfo = "xunzai.getGameInfo",
receiveInvitePrize = "xunzai.receiveInvitePrize",
startGame = "yoga.startGame",
submitGame = "yoga.submitGame",
drawLotteryPrize = "yoga.drawLotteryPrize",
doHelp = "xunzai.doHelp",
getVipInfo = "xunzai.getVipInfo",
receiveEnamePrize = "xunzai.receiveEnamePrize",
openMember = "mine.openMember",
openTask = "mine.openTask",
///////////////////前端调用接口都加个mine,下面这些基本固定的不修改,对应小程序那边的逻辑抽空整理下
////带用户操作,和index.js特殊操作的
/**
* 用户授权
*/
authorize = 'mine.authorize',
/**
* 关注店铺
*/
favorShop = "mine.favorShop",
/**
* 获取用户地址及确认
* prizeId
*/
getUserAddress = "mine.getUserAddress",
/**
* 获取名字
* type
*/
getAdoptName = "mine.getAdoptName",
///////////////////////////基本都是前端同步方法
/**
* 获取参数
*/
getAppData = "mine.getAppData",
/**
* 小程序内跳到其他页面
* url
*/
navigateToOutside = "mine.navigateToOutside",
/**
* 跳转到小程序的其他页面
* url
*/
navigateTo = "mine.navigateTo",
/**
* 返回上一页或多页
* delta,页面数,不传默认1
*/
navigateBack = "mine.navigateBack",
/**
* 分享面板
* openId
*/
showSharePanel = "mine.showSharePanel",
/**
* 打开详情页
* itemId
*/
openDetail = "mine.openDetail",
/**
* 自定义埋点
* logkey
*/
reportAnalytics = "mine.reportAnalytics",
/**
* 打开音频
* isOn
*/
openMusic = "mine.openMusic",
complteGuidance = 'yoga.complateGuide',
/**
* 添加 生命周期 事件
*/
addLifiCycleEvent = 'mine.addLifiCycleEvent',
// 显示 小程序的loading 记得注视下 自带的 菊花图
showCustomLoading = 'mine.showCustomLoading',
closeCustomLoading = 'mine.closeCustomLoading'
}
export enum TBBgm {
gameBgm = 'game_bgm',
preBgm = 'pre_game_bgm',
boxOpen = 'box_open',
exchangeSuccess = 'exchange_success',
scoreBgm = 'score_bgm',
guidanceFill = 'guidance_fill_bgm'
}
//返回数据类型
interface dataOut {
success: boolean,
data?: any
code?: string,
message?: string
}
//记录数据
let dataRecord: {
[name: string]: any
} = {};
/**
* 发送接口
* @param netName
* @param parameter
* @param callback
* @param hideMsg
* @param hidWaiting
*/
export function sendTbNet(
netName: TbNetName,
parameter?: any,
callback?: (success: boolean, res?: dataOut) => void,
hideMsg: boolean = false,
hidWaiting: boolean = false,
): Promise<dataOut> {
return new Promise((resolve, reject) => {
// musicStatus false 默认不进行音乐处理
// if (netName == TbNetName.openMusic && !myApp.musicStatus && !parameter.force) {
// resolve(null)
// return
// }
!hidWaiting && showWaiting();
//网络超时
// let waitObj;
//@ts-ignore 本地开发,直接取数据
if (!my) {
const netInfo = netName.split(".");
var url = `../../mock/miniTb/${netInfo[0]}/${netInfo[1]}.json`;
fetchAsync(url)
.then((data) => {
!hidWaiting && hideWaiting();
//清除超时
// clearWait(waitObj)
//记录数据
dataRecord[netName] = data;
//统一错误信息提示
if (!hideMsg && !data.success) showToast(data.message || "网络异常")
//回调
callback && callback(data.success, data);
resolve(data)
console.log(
`\n%c[ mock ]\n`
+ `NAME : ${netName} \n`
+ `STATE : %o \n`
+ `PARAM : %o \n`
+ `%cDATA : %o \n`
, `${data.success ? 'color:green' : 'color:red'}`
, data.success
, parameter
, `${data.success ? 'color:green' : 'color:red'}`
, data
);
}, () => {
!hidWaiting && hideWaiting();
resolve({ success: false, data: null });
})
return
}
let fun = function (e: { type: string, data: dataOut }) {
!hidWaiting && hideWaiting();
//清除超时记录
// clearWait(waitObj)
//移除事件
GDispatcher.removeEventListener(netName, fun);
var d = e.data;
//记录数据
dataRecord[netName] = d;
//统一错误信息提示,d.data为了区分网络超时
if (!hideMsg && !d.success) showToast(d.message || "网络超时")
//执行回调
callback && callback(d.success, d);
resolve(d)
console.log(
`\n%c[ request ]\n`
+ `NAME : ${netName} \n`
+ `STATE : %o \n`
+ `PARAM : %o \n`
+ `%cDATA : %o \n`
, `${d.success ? 'color:green' : 'color:red'}`
, d.success
, parameter
, `${d.success ? 'color:green' : 'color:red'}`
, d
);
}
//添加事件接收接口返回信息
GDispatcher.addEventListener(netName, fun);
//用事件方式吧,派发事件发接口,,,,注意很多独有的事件名别重了,onHide,onShow,onMessage等 放到最后,因为有同步的情况
GDispatcher.dispatchEvent({ type: "onMessage" }, { netName, parameter })
})
}
export function addData(type) {
sendTbNet(
TbNetName.addData,
{ type },
null,
true,
true
);
}
/**
* 获取数据
* @param netName
*/
export function getTbData(netName: TbNetName): dataOut {
return dataRecord[netName] || null;
}
//销毁数据
export function destroyTbNetData() {
dataRecord = {}
}
async function fetchAsync(url: string) {
// await response of fetch call
let response = await fetch(url);
// only proceed once promise is resolved
let data = await response.json();
// only proceed once second promise is resolved
return data;
}
/**
* 曝光埋点枚举
* 自定义,注意淘宝控制台也需要相应配置
*/
export enum LogTbEnum {
AD = "ad",
TASK_ICON = 'taskIcon',
FOLLOW_SHOP = 'followShop',
INVITE_FRIEND = 'inviteFriend',
BROWSE_PRODUCT = 'browseProduct',
COLLECTION_PRODUCT = 'collectionProduct',
BUY_PRODUCT = 'buyProduct',
IMPROVE_INFORMATION = 'improveInformation',
SECRET_ORDER = 'secretOrder',
SIGN_ICON = 'signIcon',
BAG_ICON = 'bagIcon',
}
/**
* 淘宝小程序点击埋点,自定义字段,
* @param elemType
*/
export function clickLogTb(elemType: LogTbEnum) {
//TODO确定参数
sendTbNet(TbNetName.addData, { params: { elemType }, type: "click" }, () => {
}, true)
//淘宝自定义埋点
sendTbNet(TbNetName.reportAnalytics, { logkey: elemType }, () => {
}, true)
}
//上面的可以也可以搞曝光的,反正都是手动
// export function showLog(elemType: string) {
// sendTbNet(TbNetName.trackingReport, { params: { elemType }, type: "exposure" }, () => { }, true)
// //淘宝自定义埋点
// sendTbNet(TbNetName.reportAnalytics, { logkey: elemType }, () => { }, true)
// }
/**
* 询问安卓淘宝加载权限,
* @param tryCloudUrl
*/
export async function checkTbDownloadPermission(tryCloudUrl: string) {
var tbMy;
try {//判断my是否有声明,万一引擎里去掉了my的声明,其他地方就要改成try的方式,或者用getEnv判断
//@ts-ignore
tbMy = my;
} catch (err) {
}
if (!tbMy) return;
//@ts-ignore
const { cloud } = getApp();
//测试地址//到时云存储传一个小json,,改路径
var url = tryCloudUrl//"cloud://B4F0300E5148F478B506DEDC26EA4C6C//butterfly0.svga";
//获取临时地址
var urls = await cloud.file.getTempFileURL({ fileId: [url] })
url = urls[0].url.replace('-internal', '');
tbMy.downloadFile({
url: url,
success(res) {
var i = res.apFilePath;
tbMy.getFileSystemManager().readFile({
filePath: i,
// encoding: "utf8",
success: function (r) {
},
fail: function (res) {
}
})
},
fail(res) {
},
});
}
/**
* 获取淘宝服务器时间,获取失败会直接用Date.now()
* @returns {number} 服务器时间戳
*/
export const getTbServerTime = () => {
return new Promise((resolve, reject) => {
if (FYGE.getEnv() == "tb") {
// @ts-ignore
my.getServerTime({
success: (res) => {
resolve(+res.time);
},
fail: err => {
resolve(Date.now());//失败就返回当前时间
}
});
} else {
resolve(Date.now());
}
});
};
//淘宝奖品类型,可能会变
export enum TBPRIZE_TYPE {
ENAME = 1,
CREDITS = 2,
OBJECT = 3,
THANKS = 5
}
import { showToast } from "../module/ctrls";
import { RES } from "../module/RES";
import { GTool } from "../module/tools/GTool";
import { layers } from "../module/views/layers";
import { sendTbNet, TbNetName } from "./TaoBaoNet";
import Tween = FYGE.Tween;
import Ease = FYGE.Ease;
export function goMyPrize() {
sendTbNet(
TbNetName.navigateTo,
{ url: '/pages/myprize/myprize' },
null,
true
);
}
export function goTask() {
sendTbNet(TbNetName.openTask);
}
export async function sleep(time: number): Promise<void> {
return new Promise((resolve) => {
Tween.get(FYGE)
.wait(time)
.call(resolve)
});
}
type AppType = {
musicStatus: boolean
}
export const myApp:AppType = getApp()
/**
* 定制,记录一些全局量和通用方法
*/
export class Tools {
public static PAGE;
/**
* 缓存key
*/
public static cacheKey: string = "guideThreeSquirrels"
public static isMember: boolean;
/**
* 全局数据,重要数据
*/
public static globalData: {
avatar: string,
nickName: string,
activityId: string,
inviteId: string,
old_inviteId: string,
isFollow: boolean
openId: string,
newUser: boolean
newUser1: boolean
firstLoginToday: boolean
shop: string,
startId: string,
completed: boolean,
shopId: number | string
}
public static async getGlobalData() {
const { data } = await sendTbNet(TbNetName.getAppData);
Tools.globalData = data;
}
static indexMask = {}
/**
* activityBaseInfo
* @member openId openId
* @member rule 规则
* @member startTime 开始时间
* @member endTime 结束时间
*/
public static activityBaseInfo: {
rule: string,
startTime: number,
endTime: number,
showPrizeImg: { // 弹窗奖品图
image_1: string,
image_2: string,
image_3: string,
}
} = {
rule: "",
startTime: 0,
endTime: 0,
showPrizeImg: {
image_1: "",
image_2: "",
image_3: "",
}
}
public static async getActivityBaseInfo() {
const { success, data } = await sendTbNet(TbNetName.getActivityBaseInfoById);
if (data) {
Tools.activityBaseInfo = data;
}
return success;
}
public static gameInfo: {
maxLevel: number,
gameTimes: number,
inviteTotalCount: number,
invitePrize: {
inviteCount: number,
receiveStatus: number, // 领取状态(1 待解锁 待领取 3已领取)
type: string // type: 档位(level1 邀请8人 level2 邀请16入 level3邀请28入 level4邀请40人)
}[],
inviteRemainTimes: { // inviteRemainTimes:有值则弹助力反馈弹窗 {rewards: 0,remainNumber: 0},
rewards: number,
remainNumber: number
},
accessMaxLevelCount: number,
hasAccessMaxLevel: boolean, // 是否通关
cardTotalCount: number, // 第几位获得
hasTakeTotalTimesPrize: boolean, // 是否领取618大奖
} = {
maxLevel: 1,
gameTimes: 0,
inviteTotalCount: 0,
invitePrize: [{
inviteCount: 0,
receiveStatus: 0,
type: "level1"
}],
inviteRemainTimes: null,
accessMaxLevelCount: 0,
hasAccessMaxLevel: false,
cardTotalCount: 0,
hasTakeTotalTimesPrize: false,
}
public static async getGameInfo() {
const { success, data } = await sendTbNet(TbNetName.getGameInfo);
if (data) {
Tools.gameInfo = data;
}
return success;
}
public static async queryVip() {
const { success, data } = await sendTbNet(TbNetName.getVipInfo);
return success && data.isVip;
}
public static async getPrize(prize, callFun: Function = () => 0) {
console.log(prize)
const call = async () => {
await sleep(500);
callFun();
}
const { type, id } = prize;
switch (type) {
case 1: // 权益
await sendTbNet(TbNetName.receiveEnamePrize, { id },
async (success, res) => {
if (!success || !res) {
showToast('奖品发放失败\n请前往我的奖品处进行处理');
await call();
return;
}
if (res.data && res.data.drawStatus == 3) {
showToast('奖品发放成功\n请前往我的奖品处查看');
} else {
showToast('奖品发放失败\n请前往我的奖品处进行处理');
}
await call();
}, true
);
break;
case 3: // 实物
await sendTbNet(TbNetName.getUserAddress, { prizeId: id },
async (success, res) => {
if (!success) {
// showToast('奖品发放失败\n请前往我的奖品处进行处理');
return;
}
showToast('奖品发放成功\n请前往我的奖品处查看');
await call();
}, true
);
break;
case 2: // 积分
case 5: // 谢谢参与
await call();
break;
}
}
/**
* 通过res里的名字生成一个sprite
* @param imageName
* @param x
* @param y
*/
public static getSprite(imageName: string, x: number = 0, y: number = 0): FYGE.Sprite {
const sprite = new FYGE.Sprite(RES.getRes(imageName));
sprite.x = x;
sprite.y = y;
return sprite
}
/**
* 中心原点
* @param radius
* @param color
* @param alpha
* @param x
* @param y
*/
public static getCircle(
radius: number = 10,
color: number = 0xff0000,
alpha: number = 1,
x: number = 0,
y: number = 0
): FYGE.Graphics {
var g = new FYGE.Graphics();
g.beginFill(color);
g.alpha = alpha;
g.drawCircle(0, 0, radius)
g.endFill();
g.position.set(x, y);
return g
}
/**
* 高度适配
* 遮挡上面的情况
* 顶部部ui要适配
* @param maxDis 最大距离
* @param minDis 最小距离
* @param type 页面适配类型
* @return y值
*/
public static getAdjustHeight(maxDis: number, minDis: number, type: "top" | "mid" | "bot" = "bot"): number {
//图层偏移量
var offsetY: number = (() => {
//顶部适配。layers会被置顶,返回0
if (type == "top") return 0;
//底部适配。layers会置底,返回两倍的
if (type == "bot") return layers.stageOffsetY * 2;
return layers.stageOffsetY;
})()
//小于1206时固定距离顶部高度
if (layers.stageHeight <= 1206) return minDis + offsetY;
//大于1206时取插值
return (layers.stageHeight - 1206) / (1624 - 1206) * (maxDis - minDis) + minDis + offsetY;
}
/**
* 修改皮肤上的文本对齐方式,原先默认是左的,多汗行的时候计算有误,待查
* @param text
* @param align
* @param textWidth
*/
public static changeTextAlign(text: FYGE.TextField, align: FYGE.TEXT_ALIGN, textWidth?: number) {
if (align == FYGE.TEXT_ALIGN.LEFT) return;
text.textAlign = align;
//没有就原先的
textWidth = textWidth || text.textWidth;
//修改位置
if (align == FYGE.TEXT_ALIGN.CENTER) text.x -= (textWidth - text.textWidth) / 2;
if (align == FYGE.TEXT_ALIGN.RIGHT) text.x -= textWidth - text.textWidth
text.textWidth = textWidth;
}
public static customToast(
target: FYGE.DisplayObject,
call: Function = () => 0,
time: number = 2000,
showTime: number = 300
) {
Tween.get(target)
.set({ alpha: 0, visible: true })
.to({ alpha: 1 }, showTime, Ease.quadIn)
.wait(time)
.to({ alpha: 0 }, showTime, Ease.quadOut)
.set({ alpha: 0, visible: false })
.call(() => {
call();
});
}
/**
* 延时防连点
* @param target
* @param {number} delay 默认2000毫秒
*/
public static btnDelay(target: FYGE.Container, delay: number = 2000) {
target.mouseEnable = false;
target.mouseChildren = false;
setTimeout(() => {
target.mouseEnable = true;
target.mouseChildren = true;
}, delay);
}
/**
* 根据名字获取0到9的贴图
* 位图字每次都写太烦了
* @param name
*/
public static getNumTextures(name: string): { [key: number]: FYGE.Texture } {
var arr = {}
for (var i = 0; i <= 9; i++) arr[i] = RES.getRes(name + i + ".png")
return arr
}
/**
* 获得距离底部的百分比高度,还要减个自身的高度,自行处理
* @param {number} percent 百分比
* @returns {number}
*/
static getAdjustBottomHeight(percent: number): number {
return layers.stageHeight - layers.stageHeight * percent + layers.stageOffsetY;//stageOffsetY加不加取决于页面适配类型
}
/**
* 获得距离顶部的百分比高度
* @param {number} percent 百分比
* @returns {number}
*/
static getAdjustTopHeight(percent: number): number {
return layers.stageHeight * percent + layers.stageOffsetY;//stageOffsetY加不加取决于页面适配类型
}
}
/**
* 从数组里随机取元素
* @param arr
* @param count
*/
export function getRandomArrayElements(arr, count) {
if (arr.length <= count) return arr;
let shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
while (i-- > min) {
index = (i + 1) * Math.random() >> 0;
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
/**
* 数字补0
* @param num 数字
* @param length 位数
*/
export function prefixInteger(num: number, length: number) {
return (Array(length).join('0') + num).slice(-length);
}
/*
* UI.ts
* Created by 还有醋v on 2021/5/12.
* Copyright © 2021 haiyoucuv. All rights reserved.
*/
import { RES } from "../module/RES";
import Container = FYGE.Container;
import Button = FYGE.Button;
import MouseEvent = FYGE.MouseEvent;
import Sprite = FYGE.Sprite;
import TEXT_ALIGN = FYGE.TEXT_ALIGN;
import TextField = FYGE.TextField;
import Shape = FYGE.Shape;
import Lottie = FYGE.Lottie;
export default class UI {
/**
* 按钮
* @param {FYGE.Container} parent
* @param {string} enImg
* @param {Function} func
* @param that
* @param {number} x
* @param {number} y
* @param {number} anchorX
* @param {number} anchorY
* @param {string} tImg
* @param {string} disImg
* @returns {FYGE.Button}
* @constructor
*/
static Btn(
parent: Container,
enImg: string,
func: Function,
that,
x: number = 0, y: number = 0,
anchorX?: number, anchorY?: number,
tImg: string = enImg, disImg: string = enImg
): Button {
const btn = new Button(RES.getRes(enImg), RES.getRes(tImg), RES.getRes(disImg));
btn.addEventListener(MouseEvent.CLICK, func, that);
btn.position.set(x, y);
anchorX !== undefined && (btn.anchorX = anchorX);
anchorY !== undefined && (btn.anchorY = anchorY);
parent && parent.addChild(btn);
return btn;
}
/**
* 图片
* @param {FYGE.Container} parent
* @param {string} imageName
* @param {number} x
* @param {number} y
* @returns {FYGE.Sprite}
* @constructor
*/
public static Sp(
parent: Container,
imageName: string,
x: number = 0, y: number = 0
): Sprite {
var texture = RES.getRes(imageName)
var sprite
if (texture) {
sprite = new Sprite(texture);
} else {
sprite = Sprite.fromUrl(imageName)
}
sprite.position.set(x, y);
parent && parent.addChild(sprite);
return sprite;
}
/**
* Container
* @param {Container} parent
* @param {number} x
* @param {number} y
* @returns {Container}
* @constructor
*/
public static Ctn(
parent: Container,
x: number = 0, y: number = 0
): Container {
const ctn = new Container();
ctn.position.set(x, y);
ctn && parent.addChild(ctn);
return ctn;
}
/**
* 文本
* @param {FYGE.Container} parent
* @param {string} txt
* @param {number} size
* @param {string} color
* @param {FYGE.TEXT_ALIGN} align
* @param {number} textWidth
* @param {number} x
* @param {number} y
* @returns {FYGE.TextField}
*/
public static Txt(
parent: Container,
txt: string,
size: number,
color: string = "#000000",
align: TEXT_ALIGN = TEXT_ALIGN.LEFT,
textWidth: number = 0,
x: number = 0,
y: number = 0,
bold:boolean = false
): TextField {
const text = new TextField();
text.fillColor = color;
text.size = size;
text.textWidth = textWidth;
text.textAlign = align;
text.position.set(x, y);
text.text = txt;
text.bold = bold
parent && parent.addChild(text);
return text;
}
public static Rect(
parent: Container,
width: number,
height: number,
color: number = 0xff0000,
radius: number = 0,
x: number = 0,
y: number = 0,
alpha: number = 1,
): Shape {
const shape = new Shape();
// shape.clear();
shape.beginFill(color);
if (!radius) {
shape.drawRect(0, 0, width, height);
} else {
shape.drawRoundedRect(0, 0, width, height, radius);
}
shape.endFill();
shape.alpha = alpha;
shape.position.set(x, y);
parent && parent.addChild(shape);
return shape;
}
public static Lottie(parent: Container, data: any, x:number=0, y:number=0) {
const lottie = new Lottie(data);
lottie.x = x
lottie.y = y
parent && parent.addChild(lottie);
return lottie;
}
}
import { showToast } from "../module/ctrls";
import { ajax, jsonp } from "../module/ajax";
import { GDispatcher } from "./Main";
import { getUrlParams } from "../module/tools/WebTool";
//////////////星速台接口方法集成
/**
* web接口枚举,mock 文件名类似aaa/homeInfo.do
*/
export enum WebNetName {
/**
* 首页
* 参数a 参数b
*/
index = "/projectx/{projectId}/game/index.do",
/**
* 参与
*/
join = "/projectx/{projectId}/game/join.do",
/**
* 获取结果
*/
queryResult = "/projectx/{projectId}/game/queryResult.do",
/**
* 获取规则
*/
projectRule = "/projectx/{projectId}/projectRule.query"
}
//返回数据类型
interface dataOut {
success: boolean,
data?: any
code?: string,
message?: string
}
//记录数据
let dataRecord: {
[name: string]: any
} = {};
/**
* 发送接口
* @param netName
* @param parameter
* @param callback
* @param hideMsg
*/
export function sendWebNet(
netName: WebNetName,
parameter?: any,
callback?: (success: boolean, res?: dataOut) => void,
hideMsg: boolean = false,
isGet: boolean = true,//这两个参数基本不设置,放后面吧
headers?: any,
): Promise<dataOut> {
return new Promise((resolve, reject) => {
if (/*window["development"]*/window.location.port == "8080") {//window.location.port == "8080";考虑按端口判断TODO
// var jname = netName.substring(netName.lastIndexOf("/") + 1);//待修改,TODO,部分接口后缀名字一致
// var url = "../../mock/miniTb/" + jname + ".json";
let path = netName.split('{projectId}/')[1];//后缀名字之前的是文件夹,mock里结构
if (path.indexOf('/') <= -1) path = `projectX/${path}`;
const url = "../../mock/webNet/" + path + ".json";
fetchAsync(url)
.then((data) => {
//清除超时
// clearWait(waitObj)
//记录数据
dataRecord[netName] = data;
//统一错误信息提示
if (!hideMsg && !data.success) showToast(data.message || "网络异常")
//回调
callback && callback(data.success, data);
resolve(data)
console.log(
`\n%c[ mock ]\n`
+ `NAME : ${netName} \n`
+ `STATE : %o \n`
+ `PARAM : %o \n`
+ `%cDATA : %o \n`
, `${data.success ? 'color:green' : 'color:red'}`
, data.success
, parameter
, `${data.success ? 'color:green' : 'color:red'}`
, data
);
}, () => {
})
return
}
//网络请求
ajax({
url: netName.replace("{projectId}", getProjectId()), //请求地址
type: isGet ? 'GET' : "POST", //请求方式
data: parameter || {}, //请求参数
dataType: "json", // 返回值类型的设定,暂时只有json
async: true, //是否异步
headers: headers,
success: function (response) {
//发现有些接口成功了,但是response为空
response = response || {}
//记录数据
dataRecord[netName] = response;
//统一错误信息提示,
if (!hideMsg && !response.success) {
showToast(response.message || "网络异常")
}
callback && callback(response.success, response)
resolve(response)
console.log(
`\n%c[ request ]\n`
+ `NAME : ${netName} \n`
+ `STATE : %o \n`
+ `PARAM : %o \n`
+ `%cDATA : %o \n`
, `${response.success ? 'color:green' : 'color:red'}`
, response.success
, parameter
, `${response.success ? 'color:green' : 'color:red'}`
, response
);
},
error: function (status) {
if (!hideMsg) showToast("网络超时");
callback && callback(false)
resolve({ success: false });
console.log("接口" + netName + ":网络超时");
},
})
})
}
/**
* 获取数据
* @param netName
*/
export function getWebData(netName: WebNetName): dataOut {
return dataRecord[netName] || null;
}
//销毁数据
export function destroyWebNetData() {
dataRecord = {}
}
async function fetchAsync(url: string) {
// await response of fetch call
let response = await fetch(url);
// only proceed once promise is resolved
let data = await response.json();
// only proceed once second promise is resolved
return data;
}
const projectxString = "projectx/";
let projectId: string;
/**
* 获取链接上的projectId
*/
export function getProjectId(): string {
if (projectId) return projectId;
let windowUrl = window.location.href;
let splitArr = windowUrl.split(projectxString);
if (splitArr.length != 2) {
return projectId = "projectId"
}
let start = windowUrl.indexOf(projectxString) + projectxString.length;
let end = splitArr[1].indexOf("/");
return projectId = windowUrl.substr(start, end);
}
//这个临时,如星速台链接有变,注意
var isProd = location.href.indexOf(".com.cn/projectx") >= 0;
/**
* 刷新星速台tokenkey,注意多活动跳转手动执行一边
* @param callback
*/
export function refreshPxTokenKey(callback?: (success: boolean) => void) {
if (isProd) {//线上
var head = document.getElementsByTagName("head")[0];
const scriptEl = document.createElement('script');
scriptEl.src = "getTokenKey?_=" + Date.now();
scriptEl.onload = function () {
head.removeChild(scriptEl);
callback && callback(true)
};
scriptEl.onerror = function () {
head.removeChild(scriptEl);
callback && callback(false)
};
head.appendChild(scriptEl);
} else {//本地环境
callback && callback(true)
}
}
//执行一次
refreshPxTokenKey();
/**
* 获取星速台token
* @param callback
*/
export function getPxToken(callback: (msg: string, token?: string) => void) {
if (!isProd) {//本地环境
callback(null, "token")
return
}
if (!window["ohjaiohdf"]) {
callback("need reload")
return
}
var xml = new XMLHttpRequest;
xml.open("get", "getToken?_t=" + Date.now(), !0);
xml.onreadystatechange = function () {
if (xml.readyState === 4 && xml.status === 200) {
var e = JSON.parse(xml.response);
if (e.success) {
window.eval(e.data);
callback(null, window["ohjaiohdf"]());
} else {
var msg = (() => {
switch (e.code) {
case "100001":
return "need login"
case "100024":
return "state invalid"
default:
return e.code
}
})();
callback(msg);
}
}
}
xml.onerror = function () {
callback("net error")
};
xml.onloadend = function () {
xml.status === 404 && callback("net error")
};
xml.send()
}
export enum LOG_TYPE {
EXPOSURE = 'exposure',
CLICK = 'click',
}
/**
* 埋点 sendLog(LOG_TYPE.EXPOSURE,"4")
* 注意点击埋点前必有曝光埋点
* @param type
* @param data
*/
export function sendLog(type: LOG_TYPE | 'exposure' | 'click', area: number) {
const projectID = getProjectId();
const appID = getUrlParams("appID");
//给个提示
if (!appID) console.error("appID不存在,检查链接")
var dpm = `${appID || 'appID'}.110.${area}.1`;// TODO appID注意默认写死一个,已防链接没有
var dcm = `202.${projectID || 'projectID'}.0.0`;
//看需求
// var dom = `${isWxClient() ? '2' : '1'}.0.0.0`;
let params: any = {
dpm,
dcm,
appId: appID
};
//看需求
// if (dom) params.dom = dom;
let isExposure = (type == LOG_TYPE.EXPOSURE);
if (isExposure) {
//曝光
jsonp('//embedlog.duiba.com.cn/exposure/standard', params);
} else {
//点击
jsonp('/log/click', params);
}
// console.log('try log', {type, ...params});
}
/**
* 根据规则id获取奖品列表
* @param strategyId 规则id
* @param optionId 不传表示返回所有奖品
*/
export function queryPrizeList(strategyId: string, optionId?: string): Promise<dataOut> {
let url = `/projectx/${getProjectId()}/${strategyId}.query`;
return new Promise((resolve) => {
if (window.location.port == "8080") {//本地环境
resolve({//自定义数据。暂时这样
"success": true,
"message": "consequat ea",
"data": [
{
"prizeType": "dolore culpa in tempor",
"name": "ka3",
"refType": "Excepteur adipisicing sint",
"icon": "//yun.duiba.com.cn/spark/assets/58184d8d965c556b412026acf7a5d5d9e7a975f5.png",
"index": "Ut in pariatur",
"id": "et",
"refId": "minim culpa veniam aliqua ut",
"prizeId": "aa",
"icon2": "aliquip consectetur laborum Duis"
}
],
"code": "fugiat velit in esse aute"
})
} else {
ajax({
url,
type: 'GET',
data: optionId ? { optionId } : {},
dataType: "json",
async: true,
success: function (response) {
resolve(response)
},
error: function () {
resolve({ success: false })
}
})
}
})
}
////////////webview通信的范例,小程序端的是天猫精灵的例子
//天猫的webview数据请求方式 webview和小程序通讯方式,别忘了html上加sdk
//<script type="text/javascript" src="https://appx/web-view.min.js"></script>
export enum TmallNetName {
getAppData = "mine.getAppData",
/**
* 监听声音类型
*/
getVoiceType = "mine.getVoiceType",
}
//淘宝小程序全局
const my = window["my"];
if (FYGE.getEnv() == "web" && my) {//小程序webview时
//接收数据
my.onMessage = function (e) {
console.log("返回数据", e.netName, e.data)
//记录数据
// data[e.netName] = e.data;
//触发事件,会考虑单独发过来的事件
GDispatcher.dispatchEvent(e.netName, e.data)
}
}
export function sendTmallNet(
netName: TmallNetName,
parameter?: any,
callback?: (success: boolean, res?: dataOut) => void,
): Promise<dataOut> {
console.log("发送数据", netName, parameter)
return new Promise((resolve, reject) => {
if (window["development"]) {
var url = "../../mock/miniTb/" + netName + ".json"
fetchAsync(url)
.then((data) => {
//回调
callback && callback(data.success, data);
resolve(data);
}, () => {
callback(false);
})
return
}
if (FYGE.getEnv() == "web" && !my) {//临时处理
if (netName == TmallNetName.getAppData) {
var d = {
success: true,
data: {
avatar: "https://source.unsplash.com/user/erondu/76x76",
userNick: "驱蚊器委屈委"
}
}
callback && callback(true, d);
resolve(d);
}
return
}
//向小程序发信息
my.postMessage({
netName: netName,
parameter: parameter
});
//事件回调
let fun = function (e: { type: string, data: dataOut }) {
var d = e.data;
GDispatcher.removeEventListener(netName, fun);
callback && callback(d.success, d);
resolve(d);
}
//加事件
GDispatcher.addEventListener(netName, fun);
})
}
type CircleProgressType = {
x?: number,
y?: number,
radius?: number,
circleColor?: number,
backColor?: number,
lineWidth?: number,
value?:number
}
export default class CircleProgressBar extends FYGE.Container {
opt: CircleProgressType
_value: number
private circlePointer
constructor(opt?: CircleProgressType) {
super()
this.opt = Object.assign({}, {
x: 0,
y: 0,
radius: 10,
lineWidth: 10,
circleColor: 0xfe5000,
backColor: 0xf0e4ce,
value: 0
}, opt)
this._value = this.opt.value > 1 ? 1 : (this.opt.value < 0 ? 0 : this.opt.value)
this.circlePointer = {
x: this.opt.radius + this.opt.lineWidth,
y: this.opt.radius + this.opt.lineWidth,
}
this.initUi()
}
backCircle: FYGE.Shape
progressCircle: FYGE.Shape
initUi() {
var radius = this.opt.radius
var lw = this.opt.lineWidth
this.x = this.opt.x - radius - lw
this.y = this.opt.y - radius - lw
this.strokeBackCircle()
this.strokeProgress(this.opt.value)
}
strokeBackCircle() {
var radius = this.opt.radius
var lw = this.opt.lineWidth
if (!this.backCircle) {
this.backCircle = this.addChild(new FYGE.Shape)
this.backCircle.anchorX = radius + lw
this.backCircle.anchorY = radius + lw
} else {
this.backCircle.clear()
}
this.backCircle.beginStroke(this.opt.backColor, this.opt.lineWidth)
this.backCircle.arc(this.circlePointer.x, this.circlePointer.y, radius, 0, 2*Math.PI)
this.backCircle.endStroke()
}
strokeProgress(v) {
if (!v) {
this.progressCircle && this.progressCircle.clear()
return
}
var radius = this.opt.radius
var lw = this.opt.lineWidth
if (!this.progressCircle) {
this.progressCircle = this.addChild(new FYGE.Shape)
this.progressCircle.anchorX = radius + lw
this.progressCircle.anchorY = radius + lw
this.progressCircle.rotation = -90 // 好看点
this.progressCircle.beginStroke(this.opt.circleColor, this.opt.lineWidth, FYGE.LINE_CAP.ROUND)
this.progressCircle.arc(radius + lw, radius + lw, radius, 0, 2*Math.PI * v)
this.progressCircle.endStroke()
} else {
this.progressCircle.clear()
this.progressCircle.beginStroke(this.opt.circleColor, this.opt.lineWidth, FYGE.LINE_CAP.ROUND)
.arc(this.circlePointer.x, this.circlePointer.y, radius, 0, 2*Math.PI * v)
.endStroke()
}
}
get value() {
return this._value;
}
set value(v) {
if (v < 0) v = 0;
if (v >= 1) v = 1;
this._value = v;
// this.progressTxt && (this.progressTxt.text = this.progressCfg.valueDesc + ((v * 100) >> 0) + "%");
this.strokeProgress(v)
}
get radius() {
return this.opt.radius
}
set radius(r: number) {
this.opt.radius = r
this.strokeBackCircle()
}
}
\ No newline at end of file
export enum G_EVENT {
ON_SHOW = 'onShow', // 页面显示
ON_HIDE = 'onHide', // 页面隐藏
UPDATE_TASK = 'onUpdateTask', // 更新任务
UPDATE_SCENE = "onUpdateScene",//更新场景
}
import { Panel } from "../../module/views/Panel";
// interface IConfirmPanel {
//
// resolve: Function;
// reject: Function;
// promise: Promise<any>;
//
// make(): Promise<any>;
//
// }
export default class ConfirmPanel extends Panel {
resolve: Function = null;
reject: Function = null;
promise: Promise<any> = null;
public makePromise(): Promise<any> {
this.promise = new Promise<any>((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
return this.promise;
}
}
import { RES } from "../../module/RES";
import { getLightBgTexture } from "./getLightBgTexture";
/**
* 旋转光
*/
export class Light extends FYGE.Sprite {
constructor() {
super();
this.texture = RES.getRes("light.png");
this.anchorTexture.set(0.5, 0.5);
this.addEventListener(FYGE.Event.ENTER_FRAME, () => {
this.rotation += 1;
}, this)
}
}
export class RotateLight extends FYGE.Sprite {
constructor() {
super();
this.texture = getLightBgTexture();
this.anchorTexture.set(0.5, 0.5);
this.addEventListener(FYGE.Event.ENTER_FRAME, () => {
this.rotation += 1;
}, this)
}
}
/**
* 背景光
* var light = stage.addChild(new LightBg("#ff00ff"))
*/
export class LightBg extends FYGE.Shape {
/**
* 背景光
* @param {string} lightColor 光条颜色,默认#fffbb0
* @param {number} lightRadius 光条半径,默认425
* @param {number} lightNum 光条数量,默认18
* @param {string} bgColor 背景光晕颜色,不传和lightColor相同
* @param {number} bgRadius 背景光晕半径,不传为光条半径-25
*/
constructor(
lightColor: string = "#fffbb0",
lightRadius: number = 425,
autoRotate: boolean = false,
lightNum: number = 18,
bgColor: string = lightColor,
bgRadius: number = lightRadius - 25
) {
super();
//最大值18,否则开放每个灯光角度
lightNum = Math.floor(Math.min(18, lightNum));
//底座的光晕
this.beginGradientFill([0, 0, 0, 0, 0, bgRadius], [
[0, bgColor, 1],
// [0.3, "#fffbb0", 0.7],
// [0.7, "#fffbb0", 0.3],
[1, bgColor, 0],
]);
this.drawCircle(0, 0, lightRadius)
this.endFill()
//径向的光
this.beginGradientFill([0, 0, 0, 0, 0, lightRadius], [
[0, lightColor, 1],
[1, lightColor, 0]
]);
var anglePer = Math.PI / 12;
var delta = Math.PI * 2 / lightNum;
for (var i = 0; i < lightNum; i++) {
this.moveTo(0, 0)
this.arc(0, 0, lightRadius, Math.PI * 1.5 - anglePer / 2 + delta * i, Math.PI * 1.5 + anglePer / 2 + delta * i)
}
this.endFill();
if (autoRotate) {
this.addEventListener(FYGE.Event.ENTER_FRAME, () => {
this.rotation += 0.02
}, this)
}
}
}
/*
* MusicBtn.ts
* Created by 还有醋v on 2021/4/27.
* Copyright © 2021 haiyoucuv. All rights reserved.
*/
import Button = FYGE.Button;
import Container = FYGE.Container;
import Texture = FYGE.Texture;
import MouseEvent = FYGE.MouseEvent;
import { sendTbNet, TbNetName } from "../TaoBaoNet";
export default class MusicBtn extends Container {
private static status = true;
private static btns: MusicBtn[] = [];
// 为了解决按钮改变图片会重设锚点的问题
// 解决方案:
// 1.记录MusicBtn设置的anchor
// 2.重写 anchorX anchorY anchor.set
// 3.在修改按钮图片的时候 设置按钮 anchor 为记录的 anchor
btnAnchor: number[] = [0, 0];
set anchorX(value: number) {
this.btn.anchorX = value;
this.btnAnchor[0] = value;
}
set anchorY(value: number) {
this.btn.anchorY = value;
this.btnAnchor[1] = value;
}
public static changeMusicStatus(status: boolean) {
MusicBtn.status = status;
MusicBtn.btns.forEach((v) => {
v.btn.changeTexture(status ? v.on : v.off);
v.btn.anchor.set(v.btnAnchor[0], v.btnAnchor[1]); // 在修改按钮图片的时候 设置按钮 anchor 为记录的 anchor
});
sendTbNet(TbNetName.openMusic, { isOn: status });
}
private btn: Button;
constructor(private on: Texture, private off: Texture) {
super();
this.btn = this.addChild(new Button(MusicBtn.status ? this.on : this.off));
this.btn.addEventListener(MouseEvent.CLICK, MusicBtn.onClick, this);
MusicBtn.btns.push(this);
// 重写 anchor.set
this.anchor.set = (x, y) => {
this.btn.anchor.set(x, y);
this.btnAnchor[0] = x;
this.btnAnchor[1] = y;
}
}
private static onClick() {
MusicBtn.changeMusicStatus(!MusicBtn.status);
}
destroy() {
super.destroy();
MusicBtn.btns.splice(MusicBtn.btns.indexOf(this), 1);
this.btn.removeEventListener(MouseEvent.CLICK, MusicBtn.onClick, this);
}
}
import { Tools } from "../Tools";
import { RES } from "../../module/RES";
import UI from "../UI";
type ProgressType = {
width?: number,
height?: number,
showProgressText?: boolean,
valueDesc?: string,
valueColor?: string,
type?: string,
typeColor?: number,
[x: string]: any
}
/**
* 纯色进度条
*/
export class ProgressBar extends FYGE.Container {
private upImage: FYGE.Graphics;
private progressTxt: FYGE.TextField;
private maxLength: number;
private pHeight: number
private barColor: number
private progressCfg: ProgressType
constructor(barColor?: number, opt?:ProgressType) {
super()
opt = this.progressCfg = Object.assign({}, {
width: 377,
height: 19,
showProgressText: true,
valueDesc: '',
valueColor: '#f8c862',
type: 'stroke',
typeColor: 0xffffff
}, opt)
this.maxLength = opt.width//最大长度
this.pHeight = opt.height
this._value = 0;
if (this.progressCfg.type == 'stroke') {
this.addChild(new FYGE.Shape())
.beginStroke(opt.typeColor, 2)
.drawRoundedRect(0, 0, this.maxLength, this.pHeight, this.pHeight / 2)
.endStroke();
} else {
this.addChild(new FYGE.Shape())
.beginFill(opt.typeColor)
.drawRoundedRect(-1, -1, this.maxLength + 2, this.pHeight + 2, this.pHeight / 2 + 1)
.endFill();
}
this.barColor = barColor || 0xf8c862
this.upImage = this.addChild(new FYGE.Graphics())
.beginFill(barColor)
.drawRoundedRect(0, 0, this.value * this.maxLength, this.pHeight, 10)
.endFill();
opt.showProgressText && (this.progressTxt = UI.Txt(
this, `${this.progressCfg.valueDesc} 0%`, 22, this.progressCfg.valueColor, FYGE.TEXT_ALIGN.CENTER,
this.maxLength, 0, 36
));
}
/**
* 0到1的进度
*/
private _value = 0;
get value() {
return this._value;
}
set value(v) {
if (v < 0) v = 0;
if (v > 1) v = 1;
this._value = v;
this.progressTxt && (this.progressTxt.text = this.progressCfg.valueDesc + ((v * 100) >> 0) + "%");
var length = this._value * this.maxLength
this.upImage.clear()
.beginFill(this.barColor)
.drawRoundedRect(0, 0, length, this.pHeight, 10)
.endFill();
}
}
/**
* 传入文案和进度条图片
* 进度条图片位移,固定遮罩
* 貌似这样就不需要继承显示类了
*/
export class ProgressBarS {
private upImage: FYGE.Sprite;
private progressTxt: FYGE.TextField;
private maxLength: number;
private oriX: number
constructor(upImage: FYGE.Sprite, txt?: FYGE.TextField) {
this.maxLength = upImage.width;//最大长度,直接取图片宽度
this.upImage = upImage;
this.progressTxt = txt;
this.oriX = upImage.x;
var delta = 0
//传入的也可能是帧动画,这样原点就有问题了
if (upImage instanceof FYGE.FrameAni) delta = 0.5
//给图片加个矩形遮罩
this.upImage.mask = this.upImage.parent.addChild(new FYGE.Graphics())
.beginFill(0xf8c862)
.drawRoundedRect(
upImage.x - upImage.width * delta,
upImage.y - upImage.height * delta,
upImage.width,
upImage.height,
111
)
.endFill();
this.value = 0;
}
/**
* 0到1的进度
*/
private _value = 0;
get value() {
return this._value;
}
set value(v) {
if (v < 0) v = 0;
if (v > 1) v = 1;
this._value = v;
if (this.progressTxt) this.progressTxt.text = ((v * 100) >> 0) + "%";
this.upImage.x = this.oriX - (1 - this._value) * this.maxLength
}
}
// var aa = this.addChild(new RichText(
// [
// { text: "啊请问请问", style: { color: "#000000", size: 30 } },
// { text: "=2134324234啊请问请问", style: { color: "#ff0000", size: 30 } },
// { text: "驱蚊器问问", style: { color: "#000000", size: 30 } }
// ]
// ))
// aa.text = [
// { text: "啊请问请问", style: { color: "#000000", size: 30 } },
// { text: "=2134", style: { color: "#ff0000", size: 30 } },
// { text: "驱蚊器问问", style: { color: "#000000", size: 30 } }
// ]
// aa.position.set(375, 800);
// [{text: "测试",style:{color: ""}},{},{}]
interface IRichTextEle {
text: string,
style: { color: string, size: number }
}
export class RichText extends FYGE.Container {
private static cache: FYGE.TextField[] = []
/**
*
* @param text
*/
constructor(text?: IRichTextEle[]) {
super()
if (text) this.text = text;
}
private _textAlign: FYGE.TEXT_ALIGN = FYGE.TEXT_ALIGN.CENTER;
/**
* 水平对齐方式,默认居中
*/
get textAlign() {
return this._textAlign
}
set textAlign(value: FYGE.TEXT_ALIGN) {
if (this._textAlign !== value) {
this._textAlign = value;
this.adaptate();
}
}
private _verticalAlign: FYGE.VERTICAL_ALIGN = FYGE.VERTICAL_ALIGN.MIDDLE;
/**
* 垂直居中方式,默认居中
*/
get verticalAlign() {
return this._verticalAlign
}
set verticalAlign(value: FYGE.VERTICAL_ALIGN) {
if (this._verticalAlign !== value) {
this._verticalAlign = value;
this.adaptate();
}
}
private _gap: number = 0;
/**
* 文字间隙
*/
get gap(): number {
return this._gap;
};
set gap(value: number) {
if (this._gap != value) {
this._gap = value;
this.adaptate();
}
};
/**
* 文本
*/
private _text: IRichTextEle[];
/**
* 按顺序
*/
get text(): IRichTextEle[] {
return this._text
}
/**
*
*/
set text(value: IRichTextEle[]) {
this._text = value;
var arr = value || [];
for (var i = 0; i < arr.length; i++) {
let a = arr[i];
let c: FYGE.TextField = (this.children[i] as FYGE.TextField) || this.addChild(RichText.cache.shift() || new FYGE.TextField());
c.text = a.text;
c.fillColor = a.style.color;
c.size = a.style.size;
}
//如果多了,去掉后面的,回收
if (this.children.length > arr.length) {
//移除后序
for (var i = this.children.length - 1; i >= arr.length; i--) {
let c = this.children[i] as FYGE.TextField;
this.removeChild(c);
RichText.cache.push(c);
}
}
//适配
this.adaptate()
}
/**
* 适配,
*/
private adaptate() {
if (!this.children.length) return
var len = this.children.length;
//算总长度
var sum = 0;
for (var m = 0; m < len; m++) {
sum += (this.children[m] as FYGE.TextField).textWidth;
}
sum += (len - 1) * this._gap;
//算出左边第一个元素的位置
var left: number;
if (this._textAlign == FYGE.TEXT_ALIGN.LEFT) {
left = 0
} else if (this._textAlign == FYGE.TEXT_ALIGN.RIGHT) {
left = -sum
} else {
left = -sum / 2
}
var temSum = 0;
for (var i = 0; i < this.children.length; i++) {
this.children[i].x = left + temSum
//@ts-ignore
temSum += this.children[i].textWidth + this._gap;
}
var up: number;
if (this._verticalAlign == FYGE.VERTICAL_ALIGN.UP) {
up = 0
} else if (this._verticalAlign == FYGE.VERTICAL_ALIGN.DOWN) {
up = -1
} else {
up = -1 / 2
}
for (var i = 0; i < this.children.length; i++) {
//@ts-ignore
this.children[i].y = this.children[i].textHeight * up;
}
}
}
//sdk
// <script src="//yun.duiba.com.cn/db_games/libs0924/howler.min.js"></script>
var resPath = "https://yun.duiba.com.cn/db_games/qx/hyundaiXXL/sound/";
export enum SoundType {
bg = "bg",
line = 'line',
boom = 'boom',
fall = 'fall',
eliminate = 'eliminate',
bonusTime = 'bonusTime',
}
export function cusPlaySound(type: SoundType, loop: boolean = false) {
playSound(resPath + type + ".mp3", loop);
}
/**
* 提前加载音频
* @param type
*/
export function preloadSound(type: SoundType) {
let src = resPath + type + ".mp3";
soundHash[src] = new Howl({
src: src,
preload: true,
});
}
/**
* 根据路径记录
*/
const soundHash: { [key: string]: Howl } = {};
export function playSound(src: string, loop: boolean = false) {
//console.log('测试音效',src);
let sound: Howl;
//循环的,且有缓存,取缓存的
if (soundHash[src] && loop) sound = soundHash[src]
//没有就新建
if (!sound) sound = new Howl({ src: [src], autoplay: false, loop });
//记录下,方便停止
soundHash[src] = sound;
//不循环删除缓存
if (!loop) sound.on('stop', function () {
delete soundHash[src]
});
//播放
sound.play();
//console.log('测试是否播放音效',src);
//返回一个,可以自行控制
return sound;
}
export function stopSound(src: string) {
if (soundHash[src]) soundHash[src].stop();
}
export function stopAllSound() {
for (let key in soundHash) soundHash[key].stop();
}
export function playAllSound() {
for (let key in soundHash) soundHash[key].play();
}
//设置隐藏属性和改变可见属性的事件的名称
let hidden: string, visibilityChange: string;
if (typeof document.hidden !== 'undefined') {
hidden = 'hidden';
visibilityChange = 'visibilitychange';
} else if (typeof document['msHidden'] !== 'undefined') {
hidden = 'msHidden';
visibilityChange = 'msvisibilitychange';
} else if (typeof document['webkitHidden'] !== 'undefined') {
hidden = 'webkitHidden';
visibilityChange = 'webkitvisibilitychange';
}
const handleVisibilityChange = (e) => {
if (document.visibilityState == "visible") {
playAllSound();
console.log("网页显示")
} else if (document.visibilityState == "hidden") {
stopAllSound()
console.log("网页隐藏")
}
};
document.addEventListener(
visibilityChange,
handleVisibilityChange,
false
);
window.onbeforeunload = function () {
//发接口
}
// window.addEventListener('beforeunload', ()=>{
// //发接口出去,
// })
// document.body['onbeforeunload'] = () => {
// }
/**
*
* @param dis
* @param zoomCenter 是否设定中心缩放,默认true,为了自行确定锚点的对象
*/
export function addBreathing(dis: FYGE.DisplayObject, zoomCenter: boolean = true) {
if (zoomCenter) {
dis.anchorX = dis.width / 2;
dis.anchorY = dis.height / 2;
}
FYGE.Tween.get(dis, { loop: true })
.to({ scaleX: 1.1, scaleY: 1.1 }, 1000)
.to({ scaleX: 1, scaleY: 1 }, 1000)
}
/**
*
* @param dis
* @param zoomCenter 是否设定中心缩放,默认true,为了自行确定锚点的对象
*/
export function addClickZoom(dis: FYGE.DisplayObject, zoomCenter: boolean = true) {
if (zoomCenter) {
dis.anchorX = dis.width / 2;
dis.anchorY = dis.height / 2;
}
dis.addEventListener("onMouseDown", _mouseEvent, dis)
.addEventListener("onMouseUp", _mouseEvent, dis)
.addEventListener("onMouseOut", _mouseEvent, dis);
let s = dis;
function _mouseEvent(e: FYGE.MouseEvent) {
if (e.type == FYGE.MouseEvent.MOUSE_DOWN) {
FYGE.Tween.removeTweens(s);
FYGE.Tween.get(s).to({ scaleX: 0.9, scaleY: 0.9 }, 50);
} else {
FYGE.Tween.removeTweens(s);
FYGE.Tween.get(s).to({ scaleX: 1, scaleY: 1 }, 50);
}
}
}
/**
* 倒计时
* @param time 毫秒计算
* @param onChange 根据时间倒计时的执行函数
*/
export function countDown(time: number, onChange: (t: number) => void) {
var timeObj = { a: time };
FYGE.Tween.get(timeObj, {
onChange: () => {
onChange(timeObj.a)
// this.timeTxt.text = "" + Math.round(timeObj.a / 1000) + "s"
// if (timeObj.a < 100) {
// FYGE.Tween.removeTweens(timeObj)
// callback()
// }
}
})
.to({ a: 0 }, time)
//返回一个,可以中途取消
return timeObj
}
/**
* 中断倒计时
* @param timeObj
*/
export function clearCountDown(timeObj) {
if (!timeObj) return
FYGE.Tween.removeTweens(timeObj)
}
const cache: {
[key: string]: FYGE.Texture
} = {}
/**
*
* @param lightColor 颜色
* @param lightRadius 光环半径
* @param lightNum 光环扇形数量
* @param bgColor 背光颜色
* @param bgRadius 背光半径
*/
export function getLightBgTexture(
lightColor: string = "#fffbb0",
lightRadius: number = 425,
lightNum: number = 18,
bgColor: string = lightColor,
bgRadius: number = lightRadius - 25
) {
const cacheKey = `${lightColor}_${lightRadius}_${lightNum}_${bgColor}_${bgRadius}`;
//缓存过就返回
if (cache[cacheKey]) return cache[cacheKey];
const canvas = FYGE.createCanvas()// document.createElement("canvas");
canvas.width = canvas.height = lightRadius * 2;
const x = lightRadius, y = x;
const ctx = canvas.getContext("2d");
//这一步为了淘宝
ctx.clearRect(0, 0, canvas.width, canvas.height)
//最大值18,否则开放每个灯光角度
lightNum = Math.floor(Math.min(18, lightNum));
//背景的光晕
var colorObj = ctx.createRadialGradient(x, y, 0, x, y, bgRadius);
colorObj.addColorStop(0, bgColor);
colorObj.addColorStop(1, bgColor + "00");
ctx.fillStyle = colorObj;
ctx.beginPath();
ctx.arc(x, y, lightRadius, 0, 2 * Math.PI)
ctx.fill()
//径向的光
var colorObj = ctx.createRadialGradient(x, y, 0, x, y, lightRadius);
colorObj.addColorStop(0, lightColor);
colorObj.addColorStop(1, lightColor + "00");
ctx.fillStyle = colorObj;
ctx.beginPath();
var anglePer = Math.PI / 12;
var delta = Math.PI * 2 / lightNum;
for (var i = 0; i < lightNum; i++) {
ctx.moveTo(x, y)
ctx.arc(x, y, lightRadius, Math.PI * 1.5 - anglePer / 2 + delta * i, Math.PI * 1.5 + anglePer / 2 + delta * i)
}
ctx.fill();
//缓存
cache[cacheKey] = FYGE.Texture.fromCanvas(canvas);
return cache[cacheKey];
}
import { layers } from "../../module/views/layers"
import { Module } from "../../module/views/Module"
import { countDown } from "../common/countDown"
import UI from "../UI"
import { dateLeftFormat, padStart } from "../utils/utils"
type TimeObj = {
t: number
}
export default class CountDownComp extends Module {
timeoutFn: Array<Function>
tobj: TimeObj // 倒计时
iTime: number // 第一次的时间
get initTime():number {
return this.iTime
}
/**
* 初始化时间
* @param t
*/
set initTime(t:number) {
this.iTime = t
this.tobj = {t}
this.formatTime(t)
}
constructor(t: number) {
super(t)
}
get groupNames(): string[] {
return ['CountDownComp']
}
cdt: FYGE.TextField
initUi() {
UI.Sp(this, 'countdown-back.png')
this.cdt = UI.Txt(this, '0', 30, '#ffffff', FYGE.TEXT_ALIGN.CENTER, 40, 55, 14)
this.initTime = this.data
}
/**
* 添加 Timeout function
* @param fnc
*/
addTimeoutFunc(fnc: Function) {
(this.timeoutFn || (this.timeoutFn = [])).push(fnc)
}
removeTimeoutFunc(fnc: Function) {
var i = this.timeoutFn.indexOf(fnc)
if (i == -1) return null;
this.timeoutFn.splice(i, 1)
}
formatTime(n:number) {
var _t = ((n / 1000) >> 0)
this.cdt.text = _t + ''
return _t
}
countDown(time: TimeObj, onChange: Function) {
var tobj = this.tobj = time
FYGE.Tween.get(this.tobj, {
onChange: () => {
onChange(tobj.t)
}
})
.to({t: 0}, time.t)
.call(() => {
this.stop()
this.timeoutFn && this.timeoutFn.forEach(f => f())
})
return tobj
}
stop() {
FYGE.Tween.removeTweens(this.tobj)
}
restart(t?:number) {
t && (this.initTime = t)
this.start()
}
start() {
this.countDown(this.tobj, (n:number) => {
this.formatTime(n)
})
}
destory() {
this.stop()
this.timeoutFn.length = 0
super.destroy()
}
}
\ No newline at end of file
import { Scene } from "../../module/views/Scene";
import UI from "../UI";
export default class IndexScene extends Scene {
initUi() {
UI.Txt(this, 'index', 28)
}
}
\ No newline at end of file
export enum Soundurl {
bgm = '//yun.duiba.com.cn/spark/assets/9cda83ebb34225cfb5701f02eee9e190008cfffd.mp3',
sucess = '//yun.duiba.com.cn/spark/assets/b8d82c2e432278dcc4fddfec5c6d585ac7cc5675.mp3',
fail = '//yun.duiba.com.cn/spark/assets/aa8c3daa5c0717d58649b95216bd27e06ee714da.mp3'
}
const gameSounds = {};
export const soundCtrl = {
loadSound() {
for (let k in Soundurl) {
var src = Soundurl[k]
if (src) {
if (!gameSounds[k]) {
gameSounds[k] = new Howl({ src: [src], autoplay: false, loop:false });
}
}
}
},
playSound(name:Soundurl, isLoop: boolean = false) {
console.log(name)
let isound = gameSounds[name];
if (!isound && Soundurl[name]) {
isound = new Howl({
src: [Soundurl[name]],
autoplay: false,
loop: isLoop
});
gameSounds[name] = isound;
}
isound && isound.play();
},
stopSound(name:Soundurl) {
let isound = gameSounds[name];
isound && isound.stop();
}
}
///////淘宝环境下用svga的方法,不能放在RES里面,因为云函数路径没法自动生成
////资源可以放在resource里,但只限本地,不和其他需要的组混用
//脚本mergeJs里需要注释放开
// 'import * as SvgaParser from "svga-parser";\n' +
//淘宝项目中需要加npm包
//"svga-parser":"*"
/**
* 所有用到的svga枚举,key就是名字,value就是云存储地址
* k表示kid幼年,a表示adult成年
* c表示const常态,f表示feed喂食
*/
export enum SvgaUrls {
//小贱
xiaojian_k_c = "cloud://3BA1EE46B105C2DFFA7A18295F346D2A//xiaojian_k_c.svga",
xiaojian_k_f = "cloud://80940E86AAA3308275C77F8AB1CE6E10//xiaojian_k_f.svga",
xiaojian_a_c = "cloud://80940E86AAA3308275C77F8AB1CE6E10//xiaojian_a_c.svga",
xiaojian_a_f = "cloud://113220E46736B8389130E32C09AD8EA9//xiaojian_a_f.svga",
//小美 cloud://80940E86AAA3308275C77F8AB1CE6E10//xiaojian_a_c.svga
xiaomei_k_c = "cloud://4906799F3DE94ABDEC782CC6500BF944//xiaomei_k_c.svga",
xiaomei_k_f = "cloud://0C1FF03240C0284EB540001CB73EA4D6//xiaomei_k_f.svga",
xiaomei_a_c = "cloud://D65D439BCF3923F0772680E29B7A1B67//xiaomei_a_c.svga",
xiaomei_a_f = "cloud://7C1572EEE6ED050A7F79F8C391474329//xiaomei_a_f.svga",
//小酷
xiaoku_k_c = "cloud://05FA1C9A39ECDF41B7AD4F5ABD9EAA1C//xiaoku_k_c.svga",
xiaoku_k_f = "cloud://87E6DF0B56C8C032BA8E1F90BB54255A//xiaoku_k_f.svga",
xiaoku_a_c = "cloud://B3F8278BD484680D6C9DD76B04CC5E96//xiaoku_a_c.svga",
xiaoku_a_f = "cloud://1BAFE5981F1D74B3F4A9E3CF20EF4299//xiaoku_a_f.svga",
//生成器粒子特效
genParticles = "cloud://E3672473A8920B163EA62C144117FD01//genParticles.svga",
//0s出现,间隔2秒
butterfly0 = "cloud://B4F0300E5148F478B506DEDC26EA4C6C//butterfly0.svga",
//1s出现,间隔2秒
butterfly1 = "cloud://6F50E9CB7E6D221A8437575DDFAB9C6E//butterfly1.svga",
}
//缓存,数据
const SvgaCaches: {
[key: string]: SvgaParser.VideoEntity
} = {}
//svga的Promise缓存
const SvgaProCaches: {
[key: string]: Promise<SvgaParser.VideoEntity>
} = {};
export function loadSvga(url: SvgaUrls): Promise<SvgaParser.VideoEntity> {
// let key = SvgaUrls[url];//只有数字枚举才能直接反向查找
let key = ((enu, what) => {
for (let item in enu) if (enu[item] == what) return item;
})(SvgaUrls, url)
//@ts-ignore //不是淘宝环境,用本地
let src = my ? url : "./resource/svgas/" + key + ".svga";
//有加载好的
if (SvgaCaches[key]) {
return new Promise((r) => {
r(SvgaCaches[key])
})
}
//原先有promise且没加载好
if (SvgaProCaches[key]) return SvgaProCaches[key];
SvgaProCaches[key] = new Promise((resolve, reject) => {
SvgaParser.loadSvga(
src,
(v) => {
SvgaCaches[key] = v;
delete SvgaProCaches[key]
resolve(v);
},
(err) => {
delete SvgaProCaches[key]
console.log(err);
reject(err)
}
)
})
return SvgaProCaches[key]
}
var a = 1
a = ''
export function test() {
console.log(233)
}
\ No newline at end of file
import { layers } from "../../module/views/layers";
/**
* 函数防抖,如下拉菜单
* @param {Function} fn
* @param {Number} delay
* @returns
*/
export function debounce(fn: Function, delay:number=2000) {
let timer = null;
return function(...args) {
let context = this;
if(timer) clearTimeout(timer)
timer = setTimeout(()=>{
fn.apply(context, args)
}, delay)
}
}
/**
* 函数节流, 用作防连点
* @param {Function} fn
* @param {Number} delay
* @returns
*/
export function throttle(fn:Function, delay: number=2000) {
let flag = true,
timer = null;
return function (...args) {
let context = this;
if(!flag) return;
flag = false;
clearTimeout(timer);
fn.apply(context, args);
timer = setTimeout(() => {
flag = true
}, delay)
}
}
/**
* 时间格式化
* @param {*} fmt
* @param {*} date
* @returns
*/
export function dateFormat(fmt, date) {
let ret;
date = new Date(date)
const opt = {
"Y+": date.getFullYear().toString(), // 年
"M+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"h+": date.getHours().toString(), // 时
"m+": date.getMinutes().toString(), // 分
"s+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
/**
* 返回时间格式 r 秒单位
* @param {*} fmt
* @param {*} r
* @returns
*/
export function dateLeftFormat(fmt: string, r:number):string {
if (r < 0) return '-1'
let ret
let opt = {
"h+": Math.floor(r / 3600).toString(), //小时
"m+": Math.floor(r % 3600 / 60).toString(), //分
"s+": Math.floor(r % 60).toString(), //秒
}
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
/**
* 字符串填充 向前
* @param ns 当前需要被填充的数据
* @param len 被填充至len
* @param s 填充的数据
*/
export function padStart(ns: number | string, len: number, s: string | number) {
var _ns = typeof ns == 'number' ? ns + '' : ns
var _s = typeof s == 'number' ? s + '' : s
var _len = _ns.length
return _len >= len ? _ns : (_s.repeat(len) + ns).slice(-len)
}
export function setCenterPos(cont: FYGE.Sprite) {
cont.anchorTexture.set(0.5, 0.5)
// vtodo 先这里设置一般大
// cont.scaleX = 0.5
// cont.scaleY = 0.5
cont.x = layers.stageCenterX
cont.y = layers.stageCenterY
return cont
}
export function sleep (time:number) {
return new Promise((resolve, reject) => setTimeout(resolve, time))
}
export function onceFnc(fn:Function, count:number = 1) {
var cn = count
return function() {
if (cn-- <=0) return
fn.apply(this, arguments)
}
}
\ No newline at end of file
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": false,
"sourceMap": true,
"removeComments": true,
"noEmitOnError":true,
"outDir":"dist",
/*"outFile": "./index.js",*/
"lib": [
"es5",
"dom",
"es2015.promise"
]
},
"exclude": [
"node_modules"
]
}
\ No newline at end of file
const path = require('path');
module.exports = {
entry: './src/Main.ts',
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.tsx', '.ts', '.js']
},
output: {
filename: 'output.js',
path: __dirname,
libraryTarget: 'umd',
}
};
\ No newline at end of file
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
const webpack = require('webpack');
const MockWebpackPlugin = require('mock-webpack-plugin');
const mockConfig = require('./mock/config.js');
module.exports = merge(common, {
mode: "development",
devtool: 'eval-source-map',
// devServer: {
// contentBase: '.',
// proxy: {
// '/plugin/*':'http://localhost:3000',
// '/ngapi/*': 'http://localhost:3000',
// '/ngame/*': 'http://localhost:3000',
// '/hdtool/*': 'http://localhost:3000',
// }
// },
// plugins: [
// new MockWebpackPlugin({
// config: mockConfig,
// port: 3000
// })
// ]
});
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
const webpack = require('webpack');
module.exports = merge(common, {
mode: "development",//production development
devtool: 'source-map',
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment