├── .gitignore
├── README.md
├── batch
├── app.js
├── instance.js
├── master.js
└── worker.js
├── browser
├── cache.js
├── cookie.js
├── index.js
├── test.js
└── ua.js
├── comm
└── index.js
├── conf.js
├── db
├── index.js
└── model.js
├── export
├── fetch.js
├── rename.js
└── saved.js
├── import
├── 1_caobi45.js
├── 2_668wy.js
├── 3_bka8.js
├── 4_14xav.js
├── 5_331sss.js
└── 6_8x3a.js
├── index.js
├── others
├── move.js
├── reext.js
└── reid.js
├── package-lock.json
├── package.json
├── runing.png
├── static
├── ckplayer
│ ├── ckplayer.js
│ ├── ckplayer.min.js
│ ├── ckplayer.swf
│ ├── ckplayer.xml
│ ├── hls
│ │ ├── LICENSE
│ │ ├── hls.js
│ │ └── hls.min.js
│ ├── language.xml
│ └── style.xml
├── crossdomain.xml
└── favicon.ico
└── www
└── index.ejs
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | *.log
4 | *.iml
5 | *.db
6 | *.db-journal
7 | .cache
8 | fetch.page
9 | fetch.txt
10 | rename.err
11 | rename.txt
12 | threads
13 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 91video
2 |
3 | > The adult video from 91 team
4 |
5 | ### Usage
6 |
7 | - install NodeJS
8 | - npm install
9 |
10 | ### Import videos
11 |
12 | - cd import
13 | - node 6_8x3a.js
14 |
15 | ### Export videos
16 |
17 | - cd export
18 | - node fetch js
19 | - batch download use Thunder
20 | - node rename.js
21 |
22 | ### Run local web
23 |
24 | - setting table name
25 | - npm start
26 |
27 | *more than 40000+ videos, good climax for you*
28 |
29 | 
--------------------------------------------------------------------------------
/batch/app.js:
--------------------------------------------------------------------------------
1 | const cluster = require('cluster');
2 | // 主程序
3 | const Master = require('./master');
4 | const Worker = require('./worker');
5 | // 爬虫实例
6 | const instance = require('./instance');
7 |
8 | (async () => {
9 | if (cluster.isMaster) {
10 | try {
11 | await Master.start(instance);
12 | } catch (e) {
13 | console.error(e);
14 | Master.stop();
15 | }
16 | } else {
17 | Worker.start(instance);
18 | }
19 | })().catch(err => console.error(err));
20 |
--------------------------------------------------------------------------------
/batch/instance.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 | const fetch = require('node-fetch');
4 | const cheerio = require('cheerio');
5 |
6 | const outDir = '/Volumes/Macintosh SD';
7 | const mmDir = path.join(outDir, 'Meizi');
8 | const dataDir = path.join(outDir, 'Meizi-Data');
9 | const cacheDir = path.join(outDir, 'Meizi-Cache');
10 |
11 | const instance = {};
12 |
13 | instance.urls = [];
14 |
15 | // 主线程刷列表
16 | instance.main = async () => {
17 | let tags = ['性感', '平面模特', '内地90后', '模特', '日本偶像', '日本模特', '内地平面模特', '中国模特', '比基尼', '正妹', '美腿',
18 | 'showgirl', '巨乳', '台湾正妹', '妹子', '内地模特', '诱惑', 'cosplay', '清纯', '美乳', '酥胸', '台湾模特', '美国模特', '爆乳',
19 | '写真', '美女', '日本演员', 'Coser', '私房', 'Jkf女郎', '翘臀', '车模', '可爱', '童颜巨乳', '女神', '日本歌手', '半裸', '大尺度',
20 | '韩国模特', '全裸'];
21 | for (let i = 0; i < tags.length; i++) {
22 | console.debug('===>', `${i + 1}/${tags.length}`, tags[i]);
23 | let tag = {};
24 | tag.name = tags[i];
25 | tag.url = `http://www.177521.com/e/tags/?tagname=${encodeURIComponent(tag.name)}`;
26 | const cache_file = path.join(dataDir, `${tag.name}.json`);
27 | if (fs.existsSync(cache_file)) {
28 | tag = JSON.parse(fs.readFileSync(cache_file));
29 | } else {
30 | let $ = await getWeb(tag.url);
31 | if ($ == null) {
32 | return;
33 | }
34 | tag.mm = [];
35 | let tags = $('.update_area_lists a');
36 | console.debug(tag.name, '第1页', tags.length, 'tag');
37 | tags.each(function () {
38 | tag.mm.push($(this).attr('href'));
39 | });
40 | const nexts = [];
41 | $('.nav-links a').each(function () {
42 | if ($(this).text().startsWith('第')) {
43 | nexts.push($(this).attr('href').replace(tag.name, encodeURIComponent(tag.name)));
44 | }
45 | });
46 | for (let i = 0; i < nexts.length; i++) {
47 | $ = await getWeb(nexts[i]);
48 | if ($ == null) {
49 | continue;
50 | }
51 | tags = $('.update_area_lists a');
52 | console.debug(`${tag.name} 第${parseInt(i) + 2}页`, tags.length, 'tag');
53 | tags.each(function () {
54 | tag.mm.push($(this).attr('href'));
55 | });
56 | }
57 | fs.writeFileSync(cache_file, JSON.stringify(tag, null, 2));
58 | }
59 | for (let i = 0; i < tag.mm.length; i++) {
60 | instance.urls.push(tag.mm[i]);
61 | }
62 | }
63 | }
64 |
65 | // 主线程分配任务
66 | instance.getTask = function () {
67 | const url = instance.urls.shift();
68 | console.log(`取到了任务 ${url}`);
69 | return url;
70 | }
71 |
72 | // 子线程执行任务
73 | instance.execTask = async function (url) {
74 | const id = url.split('/')[2].split('.')[0];
75 | if (id === 'www') {
76 | return;
77 | }
78 | let mm = {};
79 | mm.id = id;
80 | const cache_file = path.join(dataDir, `${id}.json`);
81 | if (fs.existsSync(cache_file)) {
82 | mm = JSON.parse(fs.readFileSync(cache_file));
83 | console.debug(mm.id, mm.name);
84 | } else {
85 | mm.url = `http://www.177521.com` + url;
86 | let $ = await getWeb(mm.url);
87 | if ($ == null) {
88 | return;
89 | }
90 | mm.name = $('title').text().split('--177521')[0].split('-177521')[0].replaceAll('/', '_');
91 | mm.img = [];
92 | console.debug(mm.id, mm.name);
93 | let imgs = $('.content_left img');
94 | if (imgs.length > 0) {
95 | console.debug(`${mm.id} 第1页`, imgs.length, 'img');
96 | imgs.each(function () {
97 | mm.img.push($(this).attr('src'));
98 | });
99 | }
100 | imgs = $('.image_div img');
101 | if (imgs.length > 0) {
102 | console.debug(mm.id, '第1页', imgs.length, 'img');
103 | imgs.each(function () {
104 | mm.img.push($(this).attr('src'));
105 | });
106 | let nexts = [];
107 | $('.page_imges a').each(function () {
108 | if ($(this).text().startsWith('第')) {
109 | nexts.push($(this).attr('href'));
110 | }
111 | });
112 | for (let i = 0; i < nexts.length; i++) {
113 | $ = await getWeb(nexts[i]);
114 | if ($ == null) {
115 | continue;
116 | }
117 | imgs = $('.image_div img');
118 | console.debug(`${mm.id} 第${parseInt(i) + 2}页`, imgs.length, 'img');
119 | imgs.each(function () {
120 | mm.img.push($(this).attr('src'));
121 | });
122 | }
123 | }
124 | fs.writeFileSync(cache_file, JSON.stringify(mm, null, 2));
125 | }
126 | if (mm.img.length > 0) {
127 | mm.name = mm.name.replaceAll('/', '_');
128 | for (let i = 0; i < mm.img.length; i++) {
129 | if (typeof mm.img[i] === 'string') {
130 | const name = path.basename(mm.img[i]);
131 | const newId = (Array(5).join('0') + mm.id).slice(-5);
132 | const idx = (Array(3).join('0') + (i + 1)).slice(-3)
133 | const newName = `${newId}-${idx}${path.extname(name)}`;
134 | const dst = path.join(mmDir, newName);
135 | if (!fs.existsSync(dst)) {
136 | console.log('mmDir =>', dst);
137 | await getImg(mm, i, dst);
138 | }
139 | }
140 | }
141 | }
142 | }
143 |
144 | function opts(url) {
145 | return {
146 | headers: {
147 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
148 | 'Accept-Encoding': 'gzip, deflate, br',
149 | 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7,zh-TW;q=0.6',
150 | 'Cache-Control': 'no-cache',
151 | 'Connection': 'keep-alive',
152 | 'Cookie': 'Hm_lvt_b96fe021352b520f1524a6deb63c9bc8=1617280098,1617295170,1617298156,1617636064',
153 | 'Host': url.split('/')[2],
154 | 'Pragma': 'no-cache',
155 | 'Sec-Fetch-Mode': 'navigate',
156 | 'Sec-Fetch-Site': 'none',
157 | 'Sec-Fetch-User': '?1',
158 | 'Upgrade-Insecure-Requests': '1',
159 | 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
160 | }
161 | }
162 | }
163 |
164 | // 下载网页
165 | async function getWeb(url) {
166 | try {
167 | if (url.startsWith('/')) {
168 | url = 'http://www.177521.com' + url;
169 | }
170 | let cache_url = url.split('://')[1].replaceAll('/', '_');
171 | let cache_file = path.join(cacheDir, cache_url);
172 | let body;
173 | if (fs.existsSync(cache_file)) {
174 | body = fs.readFileSync(cache_file);
175 | } else {
176 | console.debug('--->', url);
177 | body = await fetch(url, opts(url)).then(res => res.text());
178 | }
179 | if (body && body.length > 100) {
180 | fs.writeFileSync(cache_file, body);
181 | return cheerio.load(body);
182 | }
183 | } catch (e) {
184 | console.error(e.message);
185 | }
186 | return null;
187 | }
188 |
189 | // 下载图片
190 | async function getImg(mm, i, dst) {
191 | try {
192 | let url = mm.img[i];
193 | if (url.startsWith('/')) {
194 | url = 'http://www.177521.com' + url;
195 | }
196 | await fetch(url, opts(url)).then(res => {
197 | if (res.headers.get('content-type') === 'text/html') {
198 | console.error('下载失败,返回的是text/html', url);
199 | } else {
200 | res.body.pipe(fs.createWriteStream(dst));
201 | console.log(mm.id, 'save', url, 'success');
202 | }
203 | });
204 | } catch (e) {
205 | console.error(e.message);
206 | }
207 | }
208 |
209 | module.exports = instance;
--------------------------------------------------------------------------------
/batch/master.js:
--------------------------------------------------------------------------------
1 | const os = require('os');
2 | const cluster = require('cluster');
3 | const cupNums = os.cpus().length;
4 |
5 | module.exports.start = async function(instance) {
6 | console.log(`主进程${process.pid}开始`);
7 | for (let i = 0; i < cupNums; i++) {
8 | let worker = cluster.fork();
9 | worker.send({
10 | do: 'start',
11 | tip: `工人${worker.id}号,开始工作吧`,
12 | data: worker.id,
13 | });
14 | }
15 | cluster.on('message', function(worker, message) {
16 | console.log(`[0-${process.pid}]: 收到[${worker.id}-${worker.process.pid}]的消息:`, message);
17 | if (message === '我要下班') {
18 | console.log(`[0-${process.pid}]: 让[${worker.id}-${worker.process.pid}]下班`);
19 | worker.send({
20 | do: 'stop',
21 | tip: `你下班吧,给你1秒钟消失`,
22 | });
23 | setTimeout(function() {
24 | console.log(`[0-${process.pid}]: 断开与[${worker.id}-${worker.process.pid}]的IPC管道`);
25 | worker.disconnect(); // 主动断开IPC管道
26 | }, 1000);
27 | } else {
28 | console.log(`[0-${process.pid}]: 给[${worker.id}-${worker.process.pid}]派发一个任务`);
29 | worker.send({
30 | do: 'task',
31 | tip: '起来干活',
32 | data: instance.getTask(),
33 | });
34 | }
35 | });
36 | cluster.on('online', function(worker) {
37 | console.log(`[0-${process.pid}]: 启动[${worker.id}-${worker.process.pid}]`);
38 | });
39 | cluster.on('listening', function(worker, address) {
40 | console.log(`[0-${process.pid}]: [${worker.id}-${worker.process.pid}]正在监听 ${address.address || '*'}:${address.port}`);
41 | });
42 | cluster.on('disconnect', (worker) => {
43 | console.log(`[0-${process.pid}]: [${worker.id}-${worker.process.pid}]IPC管道已断开`);
44 | });
45 | cluster.on('exit', function(worker, code, signal) {
46 | console.log(`[0-${process.pid}]: [${worker.id}-${worker.process.pid}]已停止,退出码=${code} 信号=${signal}`);
47 | if (worker.exitedAfterDisconnect === true) {
48 | console.log(`[0-${process.pid}]: 这是主线程主动断开的,无需重启。`);
49 | } else {
50 | console.log(`[0-${process.pid}]: 启动一个新的工作进程`);
51 | let worker = cluster.fork();
52 | worker.send({
53 | do: 'start',
54 | tip: `工人${worker.id}号,接替${worker.id}-${worker.process.pid}的工作吧`,
55 | data: worker.id,
56 | });
57 | }
58 | });
59 | await instance.main();
60 | }
61 |
62 | // 主线程异常,全部退出
63 | module.exports.stop = function () {
64 | for (let id in cluster.workers) {
65 | let worker = cluster.workers[id];
66 | worker.send({
67 | do: 'stop',
68 | tip: `工厂倒闭了,工人${id}号,立刻下班,给你1秒钟消失`
69 | });
70 | setTimeout(function() {
71 | console.log(`[0-${process.pid}]: 断开与[${worker.id}-${worker.process.pid}]的IPC管道`);
72 | worker.disconnect(); // 主动断开IPC管道
73 | }, 1000);
74 | }
75 | }
--------------------------------------------------------------------------------
/batch/worker.js:
--------------------------------------------------------------------------------
1 | const http = require('http');
2 |
3 | module.exports.start = async function (instance) {
4 | console.log(`工作进程${process.pid}开始`);
5 | process.on('message', async function (msg) {
6 | console.log(`[${process.id || '?'}-${process.pid}]: 收到消息:${msg.tip}`);
7 | switch (msg.do) {
8 | case 'start':
9 | process.id = msg.data;
10 | process.sleepCount = 0;
11 | process.send(`好的`);
12 | const server = http.createServer(function (req, res) {
13 | res.writeHead(200);
14 | res.end(`你好,我是 ${process.id}-${process.pid} !\n`);
15 | });
16 | server.on('close', function () {
17 | console.log(`[${process.id}-${process.pid}]: 监听已停止`);
18 | });
19 | server.listen();
20 | process.server = server;
21 | break;
22 | case 'stop':
23 | console.log(`[${process.id}-${process.pid}]: 我停止监听,准备下班`);
24 | process.server.close();
25 | break;
26 | case 'task':
27 | if (msg.data) {
28 | console.log(`[${process.id}-${process.pid}]: 开始任务 ${msg.data}`);
29 | await instance.execTask(msg.data);
30 | process.send(`任务完成了`);
31 | } else {
32 | process.sleepCount++;
33 | if (process.sleepCount > 3) {
34 | process.send('我要下班')
35 | } else {
36 | console.log(`[${process.id}-${process.pid}]: 收到空任务,休息一会儿,第${process.sleepCount}次休息`);
37 | setTimeout(function () {
38 | process.send(`我休息好了`);
39 | }, 1000 * 2);
40 | }
41 | }
42 | break;
43 | default:
44 | process.send(`你说啥?`);
45 | }
46 | });
47 | }
--------------------------------------------------------------------------------
/browser/cache.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const fs = require('fs');
3 |
4 | const Conf = require('../conf');
5 | const Comm = require('../comm');
6 |
7 | const cacheDir = Conf.imp.cacheDir;
8 |
9 | Comm.mkDirs(cacheDir);
10 |
11 | module.exports.write = function (options, data) {
12 | const file = path.join(cacheDir, options.host, Comm.winName(options.path));
13 | Comm.mkDirs(path.dirname(file));
14 | fs.writeFile(file, data, 'utf8', function (err) {
15 | if (err) {
16 | console.error('write cache err', err);
17 | }
18 | });
19 | };
20 |
21 | module.exports.read = function (options) {
22 | const file = path.join(cacheDir, options.host, Comm.winName(options.path));
23 | if (fs.existsSync(file)) {
24 | return fs.readFileSync(file, 'utf8');
25 | }
26 | return '';
27 | };
--------------------------------------------------------------------------------
/browser/cookie.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 | const fs = require('fs');
3 | const Cookie = require('cookie');
4 |
5 | const Conf = require('../conf');
6 | const Comm = require('../comm');
7 |
8 | const file = path.join(Conf.imp.cacheDir, '.cookie.json');
9 | let obj = undefined;
10 |
11 | function loadCache() {
12 | if (fs.existsSync(file)) {
13 | try {
14 | const data = fs.readFileSync(file, 'utf8');
15 | obj = JSON.parse(data) || {}
16 | } catch (err) {
17 | console.log(err)
18 | }
19 | }
20 | }
21 |
22 | module.exports.append = function(headers) {
23 | if (obj === undefined) {
24 | loadCache()
25 | }
26 | const cookies = [];
27 | if (headers['Cookie']) {
28 | cookies.push(headers['Cookie']);
29 | }
30 | if (headers['cookie']) {
31 | cookies.push(headers['cookie']);
32 | delete headers['cookie'];
33 | }
34 | for (let k in obj) {
35 | cookies.push(`${k}=${obj[k][k]}`);
36 | }
37 | headers['Cookie'] = cookies.join('; ');
38 | };
39 |
40 | module.exports.remember = function(options, headers) {
41 | if (obj === undefined) {
42 | loadCache()
43 | }
44 | const cookies = headers['set-cookie'] || [];
45 | if (cookies.length > 0) {
46 | for (let i = 0; i < cookies.length; i++) {
47 | const cookie = Cookie.parse(cookies[i].trim());
48 | obj[Object.keys(cookie)[i]] = cookie;
49 | }
50 | fs.writeFile(file, JSON.stringify(obj, null, 2), 'utf8', function(err) {
51 | if (err) {
52 | console.error('write cookie err', err)
53 | }
54 | });
55 | }
56 | };
57 |
--------------------------------------------------------------------------------
/browser/index.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const URL = require('url');
3 | const zlib = require('zlib');
4 | const http = require('http');
5 | const https = require('https');
6 | const iconv = require('iconv-lite');
7 | const querystring = require('querystring');
8 |
9 | const ua = require('./ua');
10 | const cache = require('./cache');
11 | const Cookie = require('./cookie');
12 |
13 | const hostname_charset = {};
14 |
15 | module.exports.setCharset = function (hostname, charset) {
16 | hostname_charset[hostname] = charset;
17 | };
18 |
19 | module.exports.GET = function (url, headers) {
20 | return request('GET', url, headers);
21 | };
22 |
23 | module.exports.POST = function (url, headers, form) {
24 | return request('POST', url, headers, form);
25 | };
26 |
27 | function request(method, url, headers, form) {
28 | console.log(`Browser ${method} ${url}`);
29 | return function (cb) {
30 | headers = headers || {};
31 | form = form || {};
32 | const postData = querystring.stringify(form);
33 | const options = URL.parse(url);
34 | options.method = method;
35 | options.headers = {
36 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
37 | 'Accept-Encoding': 'gzip, deflate',
38 | 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7,zh-TW;q=0.6',
39 | 'Cache-Control': 'max-age=0',
40 | 'Connection': 'keep-alive',
41 | 'Upgrade-Insecure-Requests': '1',
42 | 'User-Agent': ua(),
43 | };
44 | if (method === 'POST') {
45 | options.headers['Content-Type'] = 'application/x-www-form-urlencoded';
46 | options.headers['Content-Length'] = postData.length;
47 | }
48 | for (let k in headers) {
49 | options.headers[k] = headers[k];
50 | }
51 | const html = cache.read(options);
52 | if (html) {
53 | const ret = {code: 304, headers: options.headers, body: html};
54 | cb(null, ret);
55 | return;
56 | }
57 | Cookie.append(options.headers);
58 | const agent = options.protocol === 'https:' ? https : http;
59 | const req = agent.request(options, (res) => {
60 | res.setTimeout(3000);
61 | const data = [];
62 | res.on('data', (chunk) => {
63 | data.push(chunk);
64 | });
65 | res.on('end', () => {
66 | co(function* () {
67 | let buff;
68 | if (res.headers['content-encoding'] === 'gzip') { // Gzip supper
69 | buff = yield gzip(Buffer.concat(data));
70 | } else {
71 | buff = Buffer.concat(data);
72 | }
73 | const charset = hostname_charset[options.hostname];
74 | if (charset) {
75 | buff = iconv.decode(buff, charset);
76 | }
77 | const body = buff.toString();
78 | if (body.length > 500) {
79 | cache.write(options, body);
80 | }
81 | Cookie.remember(options, res.headers);
82 | const ret = {code: res.statusCode, headers: res.headers, body: body};
83 | cb(null, ret);
84 | }).catch((err) => {
85 | console.log('Browser err', err);
86 | const ret = {code: 500, headers: {}, body: ''};
87 | cb(null, ret);
88 | });
89 | })
90 | });
91 | req.setTimeout(3000);
92 | req.on('error', (err) => {
93 | console.log('Browser err', err);
94 | const ret = {code: 500, headers: {}, body: ''};
95 | cb(null, ret);
96 | });
97 | if (method !== 'GET') {
98 | req.write(postData)
99 | }
100 | req.end();
101 | }
102 | }
103 |
104 | function gzip(data) {
105 | return function (cb) {
106 | zlib.gunzip(data, function (err, decoded) {
107 | cb(err, decoded);
108 | });
109 | }
110 | }
111 |
--------------------------------------------------------------------------------
/browser/test.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 |
3 | const Browser = require('./index');
4 |
5 | co(function* () {
6 | Browser.setCharset('www.caobi45.com', 'gb2312');
7 | const ret = yield Browser.GET('http://www.caobi45.com/index.html');
8 | console.log(ret);
9 | }).catch((err) => {
10 | console.error(err);
11 | });
--------------------------------------------------------------------------------
/browser/ua.js:
--------------------------------------------------------------------------------
1 | const UA = [
2 | // Chrome
3 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
4 | "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
5 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
6 | "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
7 | "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
8 | "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
9 | "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
10 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
11 | "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
12 | "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
13 | "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
14 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
15 | "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
16 | "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
17 | "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
18 | "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
19 | "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
20 | "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
21 | // Firefox
22 | "Mozilla/5.0 (Macintosh; U; Mac OS X Mach-O; en-US; rv:2.0a) Gecko/20040614 Firefox/3.0.0 ",
23 | "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3",
24 | "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5",
25 | "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110218 AlexaToolbar/alxf-2.0 Firefox/3.6.14",
26 | "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15",
27 | "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
28 | // Opera
29 | "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
30 | "Opera/9.80 (Android 2.3.4; Linux; Opera mobi/adr-1107051709; U; zh-cn) Presto/2.8.149 Version/11.10",
31 | // Safari
32 | "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10",
33 | "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8",
34 | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5",
35 | // IE
36 | "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0",
37 | "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",
38 | "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
39 | "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
40 | ]
41 |
42 | module.exports = function() {
43 | return UA[Math.floor(Math.random() * UA.length)];
44 | }
--------------------------------------------------------------------------------
/comm/index.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 | const exec = require('child_process').exec;
4 |
5 | module.exports.mkDirs = function (dir) {
6 | if (!fs.existsSync(dir)) {
7 | fs.mkdirSync(dir, {recursive: true});
8 | }
9 | };
10 |
11 | module.exports.mp4TempFiles = function (dir) {
12 | const files = [];
13 | const temps = fs.existsSync(dir) ? fs.readdirSync(dir) : [];
14 | for (let i = 0; i < temps.length; i++) {
15 | const idx = temps[i].indexOf('.mp4');
16 | if (idx !== -1) {
17 | files.push(temps[i].substring(0, idx) + '.mp4');
18 | }
19 | }
20 | return files;
21 | };
22 |
23 | module.exports.mp4Files = function (dir) {
24 | const files = [];
25 | const temps = fs.existsSync(dir) ? fs.readdirSync(dir) : [];
26 | for (let i = 0; i < temps.length; i++) {
27 | if (temps[i].endsWith('.mp4')) {
28 | files.push(temps[i]);
29 | }
30 | }
31 | return files;
32 | };
33 |
34 | module.exports.readFileInt = function (file, def) {
35 | if (fs.existsSync(file)) {
36 | const data = fs.readFileSync(file, 'utf8') || 0;
37 | return parseInt(data.trim() || def);
38 | }
39 | return def;
40 | };
41 |
42 | module.exports.writeFileVal = function (file, val) {
43 | if (fs.existsSync(file)) {
44 | fs.unlinkSync(file);
45 | }
46 | fs.writeFileSync(file, val);
47 | };
48 |
49 | module.exports.winName = function (name) {
50 | return name.trim().replace(/[\/\\:*?"|]+?/gim, '_').trim();
51 | };
52 |
53 | module.exports.newName = function (id, name) {
54 | return `${('00000' + id).slice(-5)}_${module.exports.winName(name)}`.trim() + '.mp4';
55 | };
56 |
57 | module.exports.openVideo = function (conf, data) {
58 | return function (cb) {
59 | const src = path.join(conf.dlDir, path.basename(data.mp4));
60 | const dst = fs.existsSync(src) ? src : path.join(conf.reDir, module.exports.newName(data.id, data.title));
61 | exec('start "' + dst + '"', function (err, stdout, stderr) {
62 | cb(null);
63 | });
64 | }
65 | };
66 |
67 | module.exports.exec = function (command) {
68 | console.log(command);
69 | exec(`start cmd /c ${command}`, function(err, stdout, stderr) {});
70 | };
71 |
--------------------------------------------------------------------------------
/conf.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | db: {
3 | dialect: 'sqlite',
4 | showSql: false,
5 | database: "91video",
6 | sqlite: {
7 | storage: '91video.db',
8 | },
9 | mysql: {
10 | host: "127.0.0.1",
11 | port: 3306,
12 | user: "root",
13 | password: "123456",
14 | }
15 | },
16 | imp: {
17 | cacheDir: 'F:/91Cache',
18 | },
19 | exp: {
20 | dlDir: 'F:/91Download', // Thunder download dir
21 | reDir: 'F:/91Video', // rename output dir
22 | },
23 | www: {
24 | port: 8080,
25 | table: 'caobi45', // the database table name
26 | mode: 'online', // load internet url
27 | // mode: 'offline', // open local disk file
28 | }
29 | };
--------------------------------------------------------------------------------
/db/index.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const fs = require('fs');
3 | const path = require('path');
4 | const Sequelize = require('sequelize');
5 |
6 | const conf = require('../conf').db;
7 | const model = require('./model');
8 |
9 | const DB = {};
10 |
11 | DB.useMySQL = conf.dialect === 'mysql';
12 |
13 | DB.sequelize = undefined;
14 |
15 | function init() {
16 | DB.sequelize = DB.useMySQL ? new Sequelize(conf.database, conf.mysql.user, conf.mysql.password, {
17 | dialect: 'mysql',
18 | timezone: '+08:00',
19 | dialectOptions: {charset: "utf8", },
20 | host: conf.mysql.host,
21 | port: conf.mysql.port,
22 | pool: {min: 0, max: 5, acquire: 30000, idle: 10000, },
23 | logging: conf.showSql === false ? false : console.log,
24 | }) : new Sequelize(conf.database, null, null, {
25 | dialect: 'sqlite',
26 | storage: path.join(__dirname, '../' + conf.sqlite.storage),
27 | logging: conf.showSql === false ? false : console.log,
28 | });
29 | }
30 |
31 | DB.query = function (sql, pms) {
32 | return DB.sequelize.query(sql, {
33 | raw: true,
34 | replacements: pms,
35 | type: DB.sequelize.QueryTypes.SELECT,
36 | });
37 | };
38 |
39 | DB.update = function (sql, pms) {
40 | return DB.sequelize.query(sql, {
41 | replacements: pms,
42 | });
43 | };
44 |
45 | DB.use = function (table) {
46 | if (DB.sequelize === undefined) {
47 | init();
48 | }
49 | return function (cb) {
50 | co(function* () {
51 | DB.table = table;
52 | DB.Model = DB.sequelize.define(table, model, {
53 | tableName: table,
54 | timestamps: false,
55 | charset: 'utf8',
56 | });
57 | DB.Model.replace = function (obj) {
58 | return DB.update("REPLACE INTO `" + table + "`(id,url,title,mp4,jpg) VALUES(?,?,?,?,?)",
59 | [obj.id, obj.url, obj.title, obj.mp4, obj.jpg]);
60 | };
61 | yield DB.Model.sync({force: false, alter: false});
62 | cb(null, DB.Model);
63 | }).catch((err) => {
64 | cb(err);
65 | });
66 | }
67 | };
68 |
69 | module.exports = DB;
70 |
--------------------------------------------------------------------------------
/db/model.js:
--------------------------------------------------------------------------------
1 | const Sequelize = require('sequelize');
2 |
3 | module.exports = {
4 | id: {
5 | type: Sequelize.INTEGER,
6 | allowNull: false,
7 | primaryKey: true,
8 | },
9 | url: {
10 | type: Sequelize.STRING(128),
11 | allowNull: true,
12 | comment: '地址',
13 | },
14 | title: {
15 | type: Sequelize.STRING(128),
16 | allowNull: true,
17 | comment: '标题',
18 | },
19 | mp4: {
20 | type: Sequelize.STRING(128),
21 | allowNull: true,
22 | comment: '视频',
23 | },
24 | jpg: {
25 | type: Sequelize.STRING(128),
26 | allowNull: true,
27 | comment: '图片',
28 | },
29 | saved: {
30 | type: Sequelize.INTEGER(1),
31 | allowNull: true,
32 | defaultValue: 0,
33 | comment: '是否已硬存',
34 | },
35 | };
--------------------------------------------------------------------------------
/export/fetch.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const fs = require('fs');
3 |
4 | const DB = require('../db');
5 | const Conf = require('../conf');
6 | const Comm = require('../comm');
7 |
8 | const dlDir = Conf.exp.dlDir;
9 | const skip = 0;
10 | const rows = 1000;
11 | const page = 1;
12 | const pageFile = 'fetch.page';
13 | const outFile = 'fetch.txt';
14 |
15 | co(function*() {
16 | const model = yield DB.use('caobi45');
17 | // const page = Comm.readFileInt(pageFile, 1);
18 | const exFiles = Comm.mp4TempFiles(dlDir);
19 | let sql = `SELECT id, mp4, SUBSTR(mp4,LENGTH(mp4)-38) AS fname FROM ${model.tableName} WHERE saved=0 and id>${skip}`;
20 | if (exFiles.length > 0) {
21 | sql += ` AND fname NOT IN ('${exFiles.join(`','`)}')`;
22 | }
23 | sql += ` GROUP BY fname`;
24 | sql += ` ORDER BY id LIMIT ${(page - 1) * rows}, ${rows}`;
25 | let pms = [];
26 | const data = yield DB.query(sql, pms);
27 | console.log(`Fetch page ${page} count ${data.length}`);
28 | if (data.length > 0) {
29 | // Comm.writeFileVal(pageFile, page + 1);
30 | if (fs.existsSync(outFile)) {
31 | fs.unlinkSync(outFile);
32 | }
33 | for (let i = 0; i < data.length; i++) {
34 | fs.appendFileSync(outFile, `${data[i].mp4}#id=${('00000' + data[i].id).slice(-5)}\r\n`);
35 | }
36 | }
37 | console.log(`Complete.`)
38 | }).catch((err) => {
39 | console.error(err);
40 | });
41 |
--------------------------------------------------------------------------------
/export/rename.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const fs = require('fs');
3 | const path = require('path');
4 | const Sequelize = require('sequelize');
5 | const Op = Sequelize.Op;
6 |
7 | const DB = require('../db');
8 | const Conf = require('../conf');
9 | const Comm = require('../comm');
10 |
11 | const dlDir = Conf.exp.dlDir;
12 | const reDir = Conf.exp.reDir;
13 | const logFile = 'rename.log';
14 | const errFile = 'rename.err';
15 |
16 | // execute, where Thunder downloaded a batch.
17 |
18 | co(function* () {
19 | yield DB.use('caobi45');
20 | Comm.mkDirs(reDir);
21 | const videos = Comm.mp4Files(dlDir);
22 | console.log(`Rename ${videos.length} files...`);
23 | for (let i = 0; i < videos.length; i++) {
24 | const file = videos[i];
25 | const src = path.join(dlDir, file);
26 | if (fs.statSync(src).size < 20480) {
27 | errLog(`Warning invalid file! name=${file}`);
28 | fs.unlinkSync(src);
29 | continue;
30 | }
31 | const data = yield DB.Model.findAll({
32 | where: {
33 | mp4: {[Op.endsWith]: file},
34 | },
35 | raw: true,
36 | });
37 | if (data.length === 0) {
38 | errLog(`Warning record not found! name=${file}`);
39 | } else {
40 | if (data.length > 1) {
41 | errLog(`Warning ${data.length} record! name=${file}`);
42 | data.map(function (x) {
43 | errLog(`\t${x.id} ${x.title}`);
44 | });
45 | }
46 | let name = data[0].title.trim();
47 | if (name.indexOf('http:/') !== -1) {
48 | name = name.split('http:/')[0] + Date.now().toString();
49 | }
50 | const newName = Comm.newName(data[0].id, name);
51 | const dst = path.join(reDir, newName);
52 | if (fs.existsSync(dst)) {
53 | errLog(`Warning dst exists! name=${file}`);
54 | errLog(`\tdst=${dst}`);
55 | fs.renameSync(src, path.join(dlDir, newName));
56 | continue;
57 | }
58 | try {
59 | fs.renameSync(src, dst);
60 | // fs.appendFileSync(logFile, `${file} => ${newName}\r\n`, 'utf8');
61 | const count = yield DB.Model.update({saved: 1}, {where: {mp4: {[Op.endsWith]: file}}});
62 | console.log(`Rename ${count} record by ${file}`);
63 | } catch (e) {
64 | errLog(`Warning rename failed! ${e.message}`);
65 | errLog(`\tsrc=${src}`);
66 | errLog(`\tdst=${dst}`);
67 | }
68 | }
69 | }
70 | console.log(`Complete.`)
71 | }).catch((err) => {
72 | console.error(err);
73 | });
74 |
75 | function errLog(msg) {
76 | console.log(msg);
77 | // fs.appendFileSync(errFile, msg + '\r\n', 'utf8');
78 | }
79 |
--------------------------------------------------------------------------------
/export/saved.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const fs = require('fs');
3 |
4 | const DB = require('../db');
5 | const Conf = require('../conf');
6 |
7 | // before use fetch.js, update saved.
8 |
9 | co(function*() {
10 | const tb = 'caobi45';
11 | yield DB.use(tb);
12 | const ids = [];
13 | const files = fs.readdirSync(Conf.exp.reDir);
14 | for (i in files) {
15 | ids.push(files[i].split('_')[0]);
16 | }
17 | // yield DB.update(`update ${tb} set saved=0`, []);
18 | // yield DB.update(`update ${tb} set saved=1 where id in (${ids.join(',')})`, []);
19 | // yield DB.update(`update ${tb} set saved=1 where SUBSTR(mp4, LENGTH(mp4)-38) in (select SUBSTR(mp4, LENGTH(mp4)-38) tmp from ${tb} where saved=1)`, []);
20 | const data1 = yield DB.query(`select count(*) num from ${tb} where saved=1`, [])
21 | const data2 = yield DB.query(`select count(*) num from ${tb} where saved=0`, [])
22 | console.log(`${files.length} files downloaded, ${data1[0].num} rows saved, and ${data2[0].num} not.`);
23 | }).catch(function(err) {
24 | console.log(err);
25 | })
--------------------------------------------------------------------------------
/import/1_caobi45.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const cheerio = require('cheerio');
3 |
4 | const DB = require('../db');
5 | const Browser = require('../browser');
6 |
7 | const mode = 0;
8 |
9 | co(function* () {
10 | yield DB.use('caobi45');
11 | Browser.setCharset('www.caobi45.com', 'gb2312');
12 | if (mode >= 0) {
13 | /* climb play page, get videos */
14 | for (let id = 1688; id < 50000; id++) {
15 | const url = `http://www.caobi45.com/player/index${id}.html`;
16 | const res = yield Browser.GET(url);
17 | const $ = cheerio.load(res.body);
18 | const result = /f:'(http[^\']+.mp4)',/.exec(res.body) || ['', ''];
19 | if (result[1]) {
20 | const title = $('title').text().trim();
21 | const video = {id: id, url: url, title: title.substring(5), mp4: result[1]};
22 | console.debug('Video', JSON.stringify(video));
23 | yield DB.Model.replace(video);
24 | }
25 | }
26 | }
27 | if (mode <= 0) {
28 | /* climb list page, update preview jpg */
29 | const list = [];
30 | add(list, 'http://www.caobi45.com/index.html');
31 | add(list, 'http://www.caobi45.com/list/index27.html', 117);
32 | add(list, 'http://www.caobi45.com/list/index28.html', 279);
33 | add(list, 'http://www.caobi45.com/list/index29.html', 27);
34 | add(list, 'http://www.caobi45.com/list/index34.html', 111);
35 | add(list, 'http://www.caobi45.com/list/index54.html', 147);
36 | add(list, 'http://www.caobi45.com/list/index55.html', 444);
37 | add(list, 'http://www.caobi45.com/list/index56.html', 38);
38 | add(list, 'http://www.caobi45.com/list/index57.html', 1354);
39 | for (let i = 0; i < list.length; i++) {
40 | const res = yield Browser.GET(list[i]);
41 | const $ = cheerio.load(res.body);
42 | const array = $('a.pic').map(function () {
43 | const href = $(this).attr('href');
44 | const id = href.substring(11, href.length - 5);
45 | const jpg = $(this).find('img').attr('src');
46 | return {id: id, jpg: jpg};
47 | });
48 | for (let j = 0; j < array.length; j++) {
49 | const video = array[j];
50 | console.debug('Image', JSON.stringify(video));
51 | if (video.id && video.jpg) {
52 | yield DB.Model.update({jpg: video.jpg}, {where: {id: video.id}});
53 | }
54 | }
55 | }
56 | }
57 | }).catch((err) => {
58 | console.error(err);
59 | });
60 |
61 | function add(list, url, count) {
62 | for (let i = 0; i < count + 10; i++) {
63 | list.push(i === 0 ? url : url.replace('.html', '') + '_' + i + '.html');
64 | }
65 | }
--------------------------------------------------------------------------------
/import/2_668wy.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const cheerio = require('cheerio');
3 |
4 | const DB = require('../db');
5 | const Browser = require('../browser');
6 |
7 | co(function* () {
8 | // 668wy.com or 0154s.com
9 | yield DB.use('668wy');
10 | for (let id = 1; id < 5530; id++) {
11 | const url = `http://668wy.com/?m=vod-play-id-${id}-src-1-num-1.html`;
12 | const res = yield Browser.GET(url, {Cookie: 'PHPSESSID=uign95nav471a0c3ujcn97qi30;'});
13 | const $ = cheerio.load(res.body);
14 | const result = /unescape\('([\S\s]+)'\);/.exec(res.body) || ['', ''];
15 | if (result[1]) {
16 | const title = $('.title_all').text().trim();
17 | const video = {id: id, url: url, title: title, mp4: unescape(result[1])};
18 | console.debug('Video', JSON.stringify(video));
19 | yield DB.Model.replace(video);
20 | }
21 | }
22 | }).catch((err) => {
23 | console.error(err);
24 | });
25 |
--------------------------------------------------------------------------------
/import/3_bka8.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const cheerio = require('cheerio');
3 |
4 | const DB = require('../db');
5 | const Browser = require('../browser');
6 |
7 | co(function* () {
8 | // www.bka8.com or www.ud35.com
9 | yield DB.use('bka8');
10 | for (let id = 2273; id < 8298; id++) {
11 | const url = `http://www.bka8.com/?m=vod-play-id-${id}-src-1-num-1.html`;
12 | const res = yield Browser.GET(url, {Cookie: 'PHPSESSID=1gendmsq3r3p0ohi8osg1mefi5;'});
13 | const $ = cheerio.load(res.body);
14 | const result = /unescape\('([\S\s]+)'\);/.exec(res.body) || ['', ''];
15 | if (result[1]) {
16 | const title = $('.position').find('a').last().text().trim();
17 | const video = {id: id, url: url, title: title, mp4: unescape(result[1])};
18 | console.debug('Video', JSON.stringify(video));
19 | yield DB.Model.replace(video);
20 | }
21 | }
22 | }).catch((err) => {
23 | console.error(err);
24 | });
25 |
--------------------------------------------------------------------------------
/import/4_14xav.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const cheerio = require('cheerio');
3 |
4 | const DB = require('../db');
5 | const Browser = require('../browser');
6 |
7 | co(function* () {
8 | // 14xav.com or 10xav.com
9 | yield DB.use('14xav');
10 | Browser.setCharset('10xav.com', 'gb2312');
11 | for (let id = 3393; id < 50000; id++) {
12 | const url = `http://10xav.com/player/index${id}.html`;
13 | const res = yield Browser.GET(url);
14 | const $ = cheerio.load(res.body);
15 | const result = /f:'(http[^\']+.mp4)',/.exec(res.body) || ['', ''];
16 | if (result[1]) {
17 | const title = $('title').text().trim();
18 | const video = {id: id, url: url, title: title.substring(5), mp4: result[1]};
19 | console.debug('Video', JSON.stringify(video));
20 | yield DB.Model.replace(video);
21 | }
22 | }
23 | }).catch((err) => {
24 | console.error(err);
25 | });
26 |
--------------------------------------------------------------------------------
/import/5_331sss.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const cheerio = require('cheerio');
3 |
4 | const DB = require('../db');
5 | const Browser = require('../browser');
6 |
7 | co(function* () {
8 | // 331sss.com or 225sss.com or 661sss.com
9 | yield DB.use('331sss');
10 | Browser.setCharset('331sss.com', 'gb2312');
11 | for (let id = 1644; id < 50000; id++) {
12 | /*const url = `http://14xav.com/player/index${id}.html`;
13 | const res = yield Browser.GET(url);
14 | const $ = cheerio.load(res.body);
15 | const result = /f:'(http[^\']+.mp4)',/.exec(res.body) || ['', ''];
16 | if (result[1]) {
17 | const title = $('title').text().trim();
18 | const video = {id: id, url: url, title: title.substring(5), mp4: result[1]};
19 | console.debug('Video', JSON.stringify(video));
20 | yield DB.Model.replace(video);
21 | }*/
22 | }
23 | }).catch((err) => {
24 | console.error(err);
25 | });
26 |
--------------------------------------------------------------------------------
/import/6_8x3a.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const cheerio = require('cheerio');
3 |
4 | const DB = require('../db');
5 | const Comm = require('../comm');
6 | const Browser = require('../browser');
7 |
8 | const start = 1; // 开始数
9 | const end = 1244; // 结束数
10 | const threads = 16; // 开多少个窗口
11 | let N = process.argv[2]; // 当前窗口序号
12 | if (N === undefined) {
13 | for (let n = 0; n < threads; n++) {
14 | Comm.exec(`node ${process.argv[1]} ${n}`);
15 | }
16 | setTimeout(function () {
17 | process.exit();
18 | }, 500);
19 | return;
20 | } else {
21 | console.log(`#${process.pid} ${JSON.stringify(process.argv)}`);
22 | N = parseInt(N)
23 | }
24 |
25 | co(function*() {
26 | yield DB.use('8x3a');
27 | for (let page = start; page <= end; page += threads) {
28 | const res = yield Browser.GET(`https://8dni.com/html/category/video/page_${page + N}.html`);
29 | const $ = cheerio.load(res.body);
30 | const arr = [];
31 | $('.l_b li').each(function() {
32 | const path = $(this).find('.t_p a').attr('href');
33 | if (path && path !== '/') {
34 | const url = 'https://8dni.com' + path;
35 | const id = path.substring(6, path.length - 1);
36 | const title = $(this).find('.w_z h3').text();
37 | const jpg = $(this).find('.t_p a img').attr('data-original');
38 | const video = { id: id, url: url, title: title, jpg: jpg };
39 | console.log(video);
40 | arr.push(video)
41 | }
42 | });
43 | for (let i in arr) {
44 | const video = arr[i];
45 | const data = yield DB.Model.findOne({where: {id: video.id}});
46 | if (!data || !data.mp4) {
47 | const res = yield Browser.GET(video.url);
48 | const $ = cheerio.load(res.body);
49 | const mp4 = $('.sp_kj .x_z a').first().attr('href');
50 | if (mp4 && mp4.endsWith('.mp4')) {
51 | video.mp4 = mp4;
52 | console.log(video);
53 | yield DB.Model.replace(video)
54 | }
55 | }
56 | }
57 | }
58 | }).catch((err) => {
59 | console.error(err)
60 | });
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const http = require('http');
3 | const path = require('path');
4 | const express = require('express');
5 |
6 | const DB = require('./db');
7 | const Conf = require('./conf');
8 | const Comm = require('./comm');
9 |
10 | const app = express();
11 | app.set('views', path.join(__dirname, 'www'));
12 | app.set('view engine', 'ejs');
13 | app.use(express.json());
14 | app.use(express.urlencoded({extended: false}));
15 | app.use(express.static(path.join(__dirname, 'static')));
16 |
17 | app.get('/', (req, res, next) => {
18 | co(function* () {
19 | const id = req.query.id;
20 | if (id > 0) {
21 | const data = yield DB.Model.findOne({where: {id: id}});
22 | if (Conf.www.mode === 'offline') {
23 | const flag = yield Comm.openVideo(Conf.exp, data);
24 | res.end(flag ? 'Play failure.' : '')
25 | } else {
26 | res.render('index', {data: data});
27 | }
28 | } else {
29 | const page = parseInt(req.query.page) || 1;
30 | const rows = parseInt(req.query.rows) || 48;
31 | const data = yield DB.Model.findAndCountAll({
32 | where: Conf.www.mode === 'offline' ? {saved: 1} : {},
33 | order: ['id'],
34 | limit: rows,
35 | offset: (page - 1) * rows,
36 | });
37 | res.render('index', {page: page, rows: rows, data: data, len: data.rows.length});
38 | }
39 | }).catch((err) => {
40 | next(err);
41 | });
42 | });
43 |
44 | app.use((req, res, next) => {
45 | res.status(404).send('404 is Fuck')
46 | });
47 | app.use((err, req, res, next) => {
48 | console.log(err);
49 | res.status(500).send('500 Server Error')
50 | });
51 | const server = http.createServer(app);
52 | server.on('error', (err) => {
53 | console.log(err);
54 | });
55 | server.on('listening', () => {
56 | co(function* () {
57 | yield DB.use(Conf.www.table);
58 | console.log(`Web start http://localhost:${server.address().port}/`);
59 | }).catch((err) => {
60 | console.log(err);
61 | });
62 | });
63 | server.listen(Conf.www.port);
--------------------------------------------------------------------------------
/others/move.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 |
4 | (async () => {
5 | const inDir = '/Users/liuzy/MeiZi';
6 | const outDir = '/Volumes/Macintosh SD/MeiZi';
7 | const dirs = fs.readdirSync(inDir);
8 | for (let i = 0; i < dirs.length; i++) {
9 | const dir = path.join(inDir, dirs[i]);
10 | if (dirs[i].indexOf('-') === -1) {
11 | continue;
12 | }
13 | const id = dirs[i].split('-')[0];
14 | const newId = (Array(5).join('0') + id).slice(-5);
15 | const files = fs.readdirSync(dir);
16 | for (let j = 0; j < files.length; j++) {
17 | const file = path.join(dir, files[j]);
18 | const idx = (Array(3).join('0') + (j+1)).slice(-3)
19 | const newName = `${newId}-${idx}${path.extname(file)}`;
20 | const newFile = path.join(outDir, newName);
21 | console.log(file, '=>', newFile);
22 | fs.copyFileSync(file, newFile);
23 | }
24 | }
25 | })().catch(err => console.log(err));
--------------------------------------------------------------------------------
/others/reext.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 |
4 | const Conf = require('../conf');
5 |
6 | const what = '.tmp';
7 |
8 | const files = fs.readdirSync(Conf.exp.dlDir);
9 | for (let i = 0; i < files.length; i++) {
10 | const file = files[i];
11 | if (file.endsWith(what)) {
12 | const src = path.join(Conf.exp.dlDir, file);
13 | const dst = path.join(Conf.exp.dlDir, file.replace(what, '.mp4'));
14 | fs.renameSync(src, dst);
15 | }
16 | }
--------------------------------------------------------------------------------
/others/reid.js:
--------------------------------------------------------------------------------
1 | const co = require('co');
2 | const Sequelize = require('sequelize');
3 |
4 | co(function* () {
5 | const sequelize = new Sequelize('test', 'root', '111111', {
6 | dialect: 'mysql',
7 | logging: false,
8 | timezone: '+08:00',
9 | dialectOptions: {charset: "utf8",},
10 | pool: {min: 0, max: 5, acquire: 30000, idle: 10000},
11 | });
12 | const video = sequelize.define('video', {
13 | id: {type: Sequelize.INTEGER(11), autoIncrement: true, primaryKey: true},
14 | title: Sequelize.STRING(128),
15 | mp4: Sequelize.STRING(1024),
16 | saved: Sequelize.INTEGER(1),
17 | }, {
18 | tableName: 'video',
19 | timestamps: false,
20 | charset: 'utf8',
21 | });
22 | yield video.sync({force: true});
23 | for (let i = 0; i < 17999; i++) {
24 | const sql = `SELECT * FROM videos order by SUBSTR(mp4, 1, LENGTH(mp4) - LOCATE('/', REVERSE(mp4))+1), \`name\` LIMIT ${i}, 1`;
25 | const data = yield sequelize.query(sql, {
26 | type: sequelize.QueryTypes.SELECT,
27 | });
28 | if (data.length === 0) {
29 | break;
30 | }
31 | yield sequelize.query(`insert into video(title,mp4,saved) value(?,?,?)`, {
32 | replacements: [data[0].name, data[0].mp4, data[0].saved],
33 | });
34 | }
35 | }).catch((err) => {
36 | console.log(err);
37 | });
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "91video",
3 | "version": "1.0.0",
4 | "main": "index.js",
5 | "scripts": {
6 | "start": "node index.js"
7 | },
8 | "keywords": [
9 | "spider",
10 | "video",
11 | "climax"
12 | ],
13 | "author": "liuzy",
14 | "license": "ISC",
15 | "dependencies": {
16 | "cheerio": "^1.0.0-rc.3",
17 | "co": "^4.6.0",
18 | "ejs": "^2.7.1",
19 | "express": "^4.17.1",
20 | "iconv-lite": "^0.5.0",
21 | "mysql2": "^1.7.0",
22 | "node-fetch": "^2.6.1",
23 | "sequelize": "^5.18.4",
24 | "sqlite3": "^4.1.0"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/runing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liuzy88/91video/4f2ab77b641fffbf104807832b1340cf57788a5f/runing.png
--------------------------------------------------------------------------------
/static/ckplayer/ckplayer.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liuzy88/91video/4f2ab77b641fffbf104807832b1340cf57788a5f/static/ckplayer/ckplayer.swf
--------------------------------------------------------------------------------
/static/ckplayer/ckplayer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | true
6 | 30
7 | 100
8 | true
9 | 0
10 | true
11 | false
12 | true
13 | true
14 | 200
15 | 0
16 | true
17 | true
18 | 200
19 |
20 | true
21 | true
22 | true
23 | true
24 | true
25 |
26 | 10
27 | 0.1
28 | 1
29 | true
30 | false
31 |
32 | false
33 | false
34 | true
35 | true
36 |
37 |
38 | false
39 | 2
40 | start
41 |
42 | false
43 | 1
44 | false
45 | true
46 |
47 |
53 |
54 | 30
55 | ,
56 |
57 | adPlay,adPause,playOrPause,videoPlay,videoPause,videoMute,videoEscMute,videoClear,changeVolume,fastBack,fastNext,videoSeek,newVideo,getMetaDate,videoRotation,videoBrightness,videoContrast,videoSaturation,videoHue,videoZoom,videoProportion,videoError,addListener,removeListener,addElement,getElement,deleteElement,elementShow,animate,animateResume,animatePause,deleteAnimate,changeConfig,getConfig,openUrl,fullScreen,quitFullScreen,switchFull,screenshot,custom,changeControlBarShow,getCurrentSrc,changeDefinition,changeSubtitles
58 |
59 |
67 |
68 |
69 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/static/ckplayer/hls/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017 Dailymotion (http://www.dailymotion.com)
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | src/remux/mp4-generator.js and src/demux/exp-golomb.js implementation in this project
16 | are derived from the HLS library for video.js (https://github.com/videojs/videojs-contrib-hls)
17 |
18 | That work is also covered by the Apache 2 License, following copyright:
19 | Copyright (c) 2013-2015 Brightcove
20 |
21 |
22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28 | THE SOFTWARE.
29 |
--------------------------------------------------------------------------------
/static/ckplayer/language.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | [$second]
4 | [$second]
5 |
6 | 点击播放
7 | 暂停播放
8 | 静音
9 | 恢复音量
10 | 全屏
11 | 退出全屏
12 | 上一集
13 | 下一集
14 | 点击选择清晰度
15 | 选择字幕
16 |
17 |
18 | 音量:[$volume]%
19 |
20 | [$percentage]%
21 |
22 | [$timeh]:[$timei]:[$times]
23 |
24 |
25 | [$timeh]:[$timei]:[$times]
26 |
27 |
28 | 直播中 [$liveTimeY]-[$liveTimem]-[$liveTimed] [$liveTimeh]:[$liveTimei]:[$liveTimes]
29 |
30 |
31 | 流畅
32 | 低清
33 | 标清
34 | 高清
35 | 超清
36 | 蓝光
37 | 未知
38 |
39 |
40 | 视频地址不存在
41 | 加载失败
42 | 视频格式错误
43 |
44 | 自动
45 | 默认
46 |
--------------------------------------------------------------------------------
/static/ckplayer/style.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 0x000000
6 |
7 | 0.5
8 | 3
9 | center
10 | middle
11 | 0
12 | 0
13 | 0
14 | 0
15 |
16 |
17 |
18 | left
19 | bottom
20 | 100%
21 | 38
22 | 0
23 | -38
24 |
25 |
26 | all
27 | 1000
28 | alpha
29 | 0.8
30 | all
31 |
32 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAABCAIAAACUgoPjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE5QTRFQjlCN0NDMzExRTdCOEU1OEZDRkMwNUMxRjkyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE5QTRFQjlDN0NDMzExRTdCOEU1OEZDRkMwNUMxRjkyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTlBNEVCOTk3Q0MzMTFFN0I4RTU4RkNGQzA1QzFGOTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTlBNEVCOUE3Q0MzMTFFN0I4RTU4RkNGQzA1QzFGOTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ey3YCAAAAEUlEQVR42mL0z61iAAOAAAMACZkBOI+IklEAAAAASUVORK5CYII=
33 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAABCAIAAACUgoPjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIyMUM5N0M3N0NDMzExRTdCODNCQzc4NEQ0NDdCQUZGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIyMUM5N0M4N0NDMzExRTdCODNCQzc4NEQ0NDdCQUZGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjIxQzk3QzU3Q0MzMTFFN0I4M0JDNzg0RDQ0N0JBRkYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjIxQzk3QzY3Q0MzMTFFN0I4M0JDNzg0RDQ0N0JBRkYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4rS13VAAAAEUlEQVR42mK8ePEiAxgABBgAE6wCdf2yccQAAAAASUVORK5CYII=
34 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERDI3MTY5QTJDNjExRTdCNTdGQjE2MTZDNkNCMzA1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERDI3MTZBQTJDNjExRTdCNTdGQjE2MTZDNkNCMzA1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkREMjcxNjdBMkM2MTFFN0I1N0ZCMTYxNkM2Q0IzMDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkREMjcxNjhBMkM2MTFFN0I1N0ZCMTYxNkM2Q0IzMDUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5MLZi3AAAADklEQVR42mJgb/oKEGAAAhIBf+DIxYEAAAAASUVORK5CYII=
35 | 100%
36 | left
37 | bottom
38 | 0
39 | -2
40 |
41 |
42 |
43 |
44 | 0x000000
45 |
46 | 0.6
47 |
48 |
49 |
121 |
122 |
123 |
124 | 0x333333
125 | 0x0787FF
126 | 0.8
127 | 0
128 | 0x333333
129 | 6
130 | 70
131 | 27
132 | center
133 | 5
134 | 14
135 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
136 | 0xFFFFFF
137 | 0xFFFFFF
138 | false
139 | 1
140 |
141 |
142 | 0x333333
143 | 0.8
144 | 0
145 | 0x333333
146 | 10
147 | 15
148 | 10
149 | 15
150 | 10
151 | 15
152 | 10
153 | 0x333333
154 | 0
155 | 0xFFFFFF
156 | 0.8
157 | 0
158 | 0
159 |
160 |
178 |
179 | 0x005CB2
180 | 0x0787FF
181 | 0.8
182 | 0
183 | 0x333333
184 | 6
185 | 70
186 | 27
187 | center
188 | 5
189 | 14
190 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
191 | 0xFFFFFF
192 | 0xFFFFFF
193 | false
194 | 1
195 |
196 |
197 | 5
198 | 5
199 | 5
200 | 5
201 | 0xFFFFFF
202 | 0
203 | 1
204 |
205 |
206 | right
207 | top
208 | -119
209 | 6
210 |
211 |
212 | right
213 | bottom
214 | -130
215 | -35
216 | true
217 |
218 | click
219 |
220 |
221 |
222 |
223 | 0x333333
224 | 0x0787FF
225 | 0.8
226 | 0
227 | 0x333333
228 | 6
229 | 70
230 | 27
231 | center
232 | 5
233 | 14
234 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
235 | 0xFFFFFF
236 | 0xFFFFFF
237 | false
238 | 1
239 |
240 |
241 | 0x333333
242 | 0.8
243 | 0
244 | 0x333333
245 | 10
246 | 15
247 | 10
248 | 15
249 | 10
250 | 15
251 | 10
252 | 0x333333
253 | 0
254 | 0xFFFFFF
255 | 0.8
256 | 0
257 | 0
258 |
259 |
277 |
278 | 0x005CB2
279 | 0x0787FF
280 | 0.8
281 | 0
282 | 0x333333
283 | 6
284 | 70
285 | 27
286 | center
287 | 5
288 | 14
289 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
290 | 0xFFFFFF
291 | 0xFFFFFF
292 | false
293 | 1
294 |
295 |
296 | 5
297 | 5
298 | 5
299 | 5
300 | 0xFFFFFF
301 | 0
302 | 1
303 |
304 |
305 | right
306 | top
307 | -119
308 | 6
309 |
310 |
311 | right
312 | bottom
313 | -130
314 | -35
315 | true
316 |
317 | click
318 |
319 |
320 |
321 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAFCAYAAAAZiY8XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY5RUEzNjQ1MDMxRDExRTY5OERCOEQ3NUNBQzJDMDlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY5RUEzNjQ2MDMxRDExRTY5OERCOEQ3NUNBQzJDMDlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjlFQTM2NDMwMzFEMTFFNjk4REI4RDc1Q0FDMkMwOUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjlFQTM2NDQwMzFEMTFFNjk4REI4RDc1Q0FDMkMwOUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ONxAiAAAAT0lEQVR42mL8//+/HAMDwxwgtgdiNobhCX4B8UEgTmEEeng3kOHCMDLAAZCHPwMZPCPEw7+YgMQJhpEDjoE8nAzEe6DpfLiC31A/JgAEGAAcdRWT+8TTHQAAAABJRU5ErkJggg==
322 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAFCAYAAAAZiY8XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcyRTE1NTk1MDMxRDExRTY4QTQ1Qzg3RjhDMENCNDU5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcyRTE1NTk2MDMxRDExRTY4QTQ1Qzg3RjhDMENCNDU5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzJFMTU1OTMwMzFEMTFFNjhBNDVDODdGOEMwQ0I0NTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzJFMTU1OTQwMzFEMTFFNjhBNDVDODdGOEMwQ0I0NTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5HSf2sAAAATElEQVR42mJkb/8vx8DAMAeI7YGYjWF4gl9AfBCIUxiBHt4NZLgwjAxwgAlIWDCMHGAF8vCJEeThYyAPJwPxHmg6H67gN9SPCQABBgDwKw4wg3IbiQAAAABJRU5ErkJggg==
323 | right
324 | top
325 | -200
326 | 14
327 |
331 |
332 |
333 |
334 |
335 |
336 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc4ODQ4MDY0QTAzMjExRTc4MEExRkVEMDk5Qzg3QzNBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc4ODQ4MDY1QTAzMjExRTc4MEExRkVEMDk5Qzg3QzNBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Nzg4NDgwNjJBMDMyMTFFNzgwQTFGRUQwOTlDODdDM0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Nzg4NDgwNjNBMDMyMTFFNzgwQTFGRUQwOTlDODdDM0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5pDHWjAAAAFUlEQVR42mKwt7c/w8QABNgIgAADACoYAZS6ywKEAAAAAElFTkSuQmCC
337 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAYAAAACEPQxAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhDQTMyRjExQTAzMjExRTdCMTcxQzJFNzY0M0U0MzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhDQTMyRjEyQTAzMjExRTdCMTcxQzJFNzY0M0U0MzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OENBMzJGMEZBMDMyMTFFN0IxNzFDMkU3NjQzRTQzNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OENBMzJGMTBBMDMyMTFFN0IxNzFDMkU3NjQzRTQzNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6fRHO8AAAAFUlEQVR42mLKz88/w8QABNgIgAADADoUAiYYttFgAAAAAElFTkSuQmCC
338 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAGCAIAAACNcmNmAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEwNUQyNkVGQTAzMjExRTdCQUQwRDkyQUU5RjZBRkQwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEwNUQyNkYwQTAzMjExRTdCQUQwRDkyQUU5RjZBRkQwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTA1RDI2RURBMDMyMTFFN0JBRDBEOTJBRTlGNkFGRDAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTA1RDI2RUVBMDMyMTFFN0JBRDBEOTJBRTlGNkFGRDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5DgcOwAAAAFElEQVR42mJgb/rKxMDAgI4BAgwAIHYBiWQRRygAAAAASUVORK5CYII=
339 | 100%
340 | left
341 | top
342 | 0
343 | -9
344 |
345 |
346 |
347 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAABCAIAAACUgoPjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE5QTRFQjlCN0NDMzExRTdCOEU1OEZDRkMwNUMxRjkyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE5QTRFQjlDN0NDMzExRTdCOEU1OEZDRkMwNUMxRjkyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTlBNEVCOTk3Q0MzMTFFN0I4RTU4RkNGQzA1QzFGOTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTlBNEVCOUE3Q0MzMTFFN0I4RTU4RkNGQzA1QzFGOTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ey3YCAAAAEUlEQVR42mL0z61iAAOAAAMACZkBOI+IklEAAAAASUVORK5CYII=
348 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAABCAIAAACUgoPjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIyMUM5N0M3N0NDMzExRTdCODNCQzc4NEQ0NDdCQUZGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIyMUM5N0M4N0NDMzExRTdCODNCQzc4NEQ0NDdCQUZGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjIxQzk3QzU3Q0MzMTFFN0I4M0JDNzg0RDQ0N0JBRkYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjIxQzk3QzY3Q0MzMTFFN0I4M0JDNzg0RDQ0N0JBRkYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4rS13VAAAAEUlEQVR42mK8ePEiAxgABBgAE6wCdf2yccQAAAAASUVORK5CYII=
349 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJERDI3MTY5QTJDNjExRTdCNTdGQjE2MTZDNkNCMzA1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJERDI3MTZBQTJDNjExRTdCNTdGQjE2MTZDNkNCMzA1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkREMjcxNjdBMkM2MTFFN0I1N0ZCMTYxNkM2Q0IzMDUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkREMjcxNjhBMkM2MTFFN0I1N0ZCMTYxNkM2Q0IzMDUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5MLZi3AAAADklEQVR42mJgb/oKEGAAAhIBf+DIxYEAAAAASUVORK5CYII=
350 | 100%
351 | left
352 | top
353 | 0
354 | -1
355 |
356 |
357 |
361 | 0.3
362 | 0.3
363 | 0.3
364 | 0.3
365 |
366 |
367 |
389 |
390 |
391 | [$timeh]:[$timei]:[$times] / [$durationh]:[$durationi]:[$durations]
392 | left
393 | top
394 | 45
395 | 7
396 | 14
397 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
398 | 0xFFFFFF
399 | 0.5
400 | false
401 |
402 |
403 | [$liveLanguage]
404 | left
405 | top
406 | 45
407 | 7
408 | 14
409 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
410 | 0xFFFFFF
411 | 1
412 | false
413 |
414 |
415 |
416 |
417 |
439 |
440 |
441 |
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAmCAYAAAAFvPEHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA4QUY5QzVEQTAzMTExRTdCQjA1QzM3RDE5N0NCNEEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA4QUY5QzVFQTAzMTExRTdCQjA1QzM3RDE5N0NCNEEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDhBRjlDNUJBMDMxMTFFN0JCMDVDMzdEMTk3Q0I0QTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDhBRjlDNUNBMDMxMTFFN0JCMDVDMzdEMTk3Q0I0QTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5OVecRAAAAFUlEQVR42mJISEg4w8QABEORAAgwAIP7AjcGIX7gAAAAAElFTkSuQmCC
442 | right
443 | top
444 | -130
445 | 0
446 |
447 |
448 |
449 |
450 |
458 |
459 |
460 |
461 |
462 |
463 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkFDRDQ4ODE2QTk2QjExRTdBQkMyQ0IzM0IyRjZFNUUwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkFDRDQ4ODE3QTk2QjExRTdBQkMyQ0IzM0IyRjZFNUUwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QUNENDg4MTRBOTZCMTFFN0FCQzJDQjMzQjJGNkU1RTAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QUNENDg4MTVBOTZCMTFFN0FCQzJDQjMzQjJGNkU1RTAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6JjFkJAAAGwElEQVR42uydbWgcRRjHJ2da6ymEapBUm/TMS2usmKJypq8WGtJoVIrEUIykCNWIzQc/FCMiSNQvIkI/+II2qE0EYyOlVWKjkIKxTWLAxiJNaNrGpqm0SKFGq2mwTfw/3nPh3M7sXvb2vfuHH4S7vd2Z/+3tzDzzzCRrZmZGuKhSZikoBPlgEcgFOeAGPm4STIDz4CwYB6NgBAwzrijLYQOXgNWgHMTBvWBehuf8BxwGA6AfHAJjQTKQ7qSNoBJsADGbr3cKdINvwTd85/rSwGKwCTwG1rr0C/sefAn2ghN+MfAOsBnUghXCG/oJ7Abt4BevGrgAbAH1YJXwpnpBK9gFLnnJwHXgGfDUHD/3NzgChsAxblnPgHPgAviLj7sRLAR5YDG32MvAXaAMROd43U/BTtDjtoFZYBt4nrsj6T7kvwMHQR84mmEdloOVYA14cA6NFHV93gPvAvMmkIEmiYEdM+mrE2wDRRlc04givkbnHMq1g+ti6ppmCxoHHWkUbhq0gxoQsdE4LRG+ZjuXwUgdXCdHDKwAB9IoVBeoc9A0FXVcFiMd4LrZamAV6DMoyBh4BeR5wLwkeVymMYOy93EdbTGwIg3z9oNqDxmnpZrLaGRihdUGxtP42b4PSjxsXpISLqvRzzlulYExgwZjCjSDqA/MSxLlMk8ZNCyxTA3MMuiqXARNPjJOSxPXQa+Lk5WJgY0Gd56fzUs1Ue9ObDRr4DowpHPi5gCYl6RZp55D7MWcDFwA2gwajGiADIwaNCxt7EnaBjYYdFVKAmReauus18VpkH0uoojn1SuGzqfBO+C4CJ6Oc91OK96vZ2/+J5mBm3XieRQC6hTBVSfXUaZV7I2ugcUcSZaJ5hdaRPDVwnWVqZY9Uhq4SRGGp3hZGwc6rVQTT2N6See4rrIY4Qr2SBoPzAE9igdou00PbtLPYAu42WONSrvCix726qpGZKPO7NkXNn3bU+Bu8AmH2R/x0J2oqvNa9uqqn3Cl4gNfgz0OFPgh8BlP+NzvAQP3cN1lqtQauIQnvVUGTjtU6Ju4u7APvAluddHAaR0DN7BnswauVkzG0ARQlwuFvw28yBPjz/KsnBvqYg+0irFnswaWK05As2cnXbwLKOnoA+6fVfHcs5M6yR7IVJ5qYFxx0EGPPNBpuvIrHinc5/C1VR7Ek/PCpTy5PU8y6R23YN5WT5QdcL2JftpHjBO/Dpp3HpBM3lNWWFmEJ8RlKWZHbDbPrCg74WWRSBp6gRseO3WUvdCKPCuN8HNGpiGPD7koreMtftA/avO1VF4sJQMLFW8e88G4NZtbQ+r0fg7uUQRIMpXKi0K6WL7izVEfBQDm80CfkoVel4WdMpTKi/yIzmD+jA8jKTn8fKQOMCU93WLReVVeLCIDc3VaO7/qTu7y0E/7CYsiNDLlRvhbk+mC8L/Wg49Bh0ikwJmVyosc6gdexh/XKR7QV2yuoJl+oFn9ycGKBhOfJX8uS16/EhHXjsiASTu6AZOKzigN4P8IgHG/i0SC+YfgR5PnUAUzJsnACYWBCwNgII2fd3KrnMnjaKHi9QkykJZP3a4YMo351DharbSL7zwrFtrkKV4/TwbS2rMyyZuUDf+Dz4yj4EIyA/9XC8+7WPH6WTJwXDVM8ZFx9KhJRrEp+97qCLrKi/FsnWHKMh8Yd1EkQk2vCXXg0wqpvBglA0d0oh1e1iB4mxsKuxs7lRcj2XzLU3BQGxOk5yIFE70WExxPGaY5EfBYrmgjyLPhpIG03vYBzQFRHv54xUDqz7XwaOKwg9ddKeRLyagMw8mRyIDiw2s8YBx90xTrexK85LB5eh7851nSwH7FQTSZU+SScdM8cqB1eE+D/Q6MzbUqYg9k6k81kDqepyQHxURiOtFpUVneEIkJ7BY7xrBpqkqo58sPpRpII45uxUkeFvaEyWX6jceslHvyqrB5ub6BIlx3mbpnR2kp2Ui1OumtNTZlQF1KucZesB7M90h2Vo2OH7WyHGm30tt6weN+TW/Tfmi7zrJVO1ZePgcKPJhwXqezTHa7XpZ+MRjUWb6aF8DsfNnKTtXy2EH2SJmlf4JDQDLRg33rNRC53ipSEig12i0026fIWlfaGqRXcQLaWKI6wOZVcx1l6mVvhJGBtK9Kq+IkBaARlATQvBKuW4Hi/VYh23MmXOplz1KvcLFhhosNw+WuFix3DRdcW7DgOlzyH2464f6mE+G2J+HGO97YeCfc+incfMwbm4+F29+lEG7AmOEGjOEWoBkq3ITWQwYmFW6DbJHCjbgtUrgVvIUK/xmBxfL9v8P4V4ABAK3rbH6mXXk6AAAAAElFTkSuQmCC
464 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjJBREI4MTY4QTk2QzExRTdBQTFEQ0Q2Nzk2NkRCRjk1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjJBREI4MTY5QTk2QzExRTdBQTFEQ0Q2Nzk2NkRCRjk1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MkFEQjgxNjZBOTZDMTFFN0FBMURDRDY3OTY2REJGOTUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MkFEQjgxNjdBOTZDMTFFN0FBMURDRDY3OTY2REJGOTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6vwz5dAAALgUlEQVR42uxd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
465 | center
466 | middle
467 | -40
468 | -40
469 | actionScript->videoPlay
470 |
471 |
472 |
473 | data:image/swf;base64,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
474 | center
475 | middle
476 | -30
477 | -30
478 |
479 | center
480 | middle
481 | -30
482 | -12
483 | 14
484 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
485 | 0xFFFFFF
486 | 1
487 | false
488 | 60
489 | center
490 |
491 |
492 |
493 |
494 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 | 14
504 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
505 | 0xFFFFFF
506 | 1
507 | false
508 | 120
509 | center
510 | center
511 | middle
512 | -60
513 | 30
514 |
515 |
516 |
517 |
518 |
519 | 0x000000
520 | 1
521 |
522 |
523 |
524 | 30
525 | 0
526 | 30
527 | 0
528 | center
529 | middle
530 |
531 |
532 |
533 | 0xFF0000
534 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAYAAAAUhR0LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBCN0E2RjdCODNDODExRTdBODQ3QUZBODc1OTA0QjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjBCN0E2RjdDODNDODExRTdBODQ3QUZBODc1OTA0QjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MEI3QTZGNzk4M0M4MTFFN0E4NDdBRkE4NzU5MDRCNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MEI3QTZGN0E4M0M4MTFFN0E4NDdBRkE4NzU5MDRCNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7cIKAYAAADQElEQVR42mKUEhf/xDAKaA6YRoNgNKBHA3oUjAb0aECPBvQoGA3o0YAeBaMBPRrQowE9CoZMQLOz6bJO3X2cuzuLm5OQ2rpVx7lXdUdy4eIPJOB2L+TYffIk98EdU7h1WNlYYeLRveu5KHUjCzUc+PPX5d/lm06y7IpfwOQ7N5Z9888fP7GpAznYQx4Yt/IFjMdOFnDDJdD5QHB0odO/0mlfv9M6cDnZ/dkXHKpikQXzHjG029n/weV+SgAjOaN3PLkTOHfFWBKZG74wLK/1+TtfvZ1xV4w0U7tdLIpHQCla5+Gk/2Gly78NZGoGBfiuh2VsXfLOv0DuA+XSvq2z2L6td/l3QXkJo/+/VQwbmcIYsm3+MKL7gaYpWl7wOZO7dtiPK79//SZKw64CBqvJQ6dMZXF0YVbje8Iwae7ff3xtDMwgsaXFgd+UgQmjZEEpy+bI5p90LzqIKfs2NEUwc+OMNcyig17FB7Lb5IGw8tBBlkqGRyxLlzz9x3bvEgMo5UYzMMDL586YtF/8q1tYc904OSbv+v5jUAX01539P1x39g/KlAtzG6j+6JL/w3DW1YupDijetOMm08ujhX+x1UfF/v6/Sc4h5Drwzr0n/8gt258+efIfn7r/99Yw0LPMBpXHVnoSjAwMigxBt04zSLfvYvjNfPXf4d0b/mGr0EHlNanuIyug/RXkGRnen2MgunxGK9vTbCJxlu3gyhEY1vRM1azpySzOX18y3WP4x9At3/Ur+lAMyxI7b5QK786jt/9AxUwCsDKcZLf+D83b0bDYf/nkzn+GYQBArY25MbpM1/Y/geQmhp0M4eahX5EDGVQJtt7SZtjQ5MO8qTbuLznNP5IDGlIbf2PAlq2GZI/NQYnx0dYp/6Jn7P6FS41nUS/HgjQlpknAVE5KBUh20QFKzV0lYcxs97YxkGshA58FQ/2K5aBeFyt2Bc/+0zOrgCrD0p2QlI0tgJOsFZhuH5j5LzR4F0V1BgvpqfkJQ49P9x9yLbxzYc2/xoii34OpjIZH8cNn/+7+Vfo7cW0zlxSQT40ApqhnOAoGaFBpFIwG9GhAjwb0KBgN6NGAHgWjAT0a0KMBPQpGA3oIA4AAAwAUEGI5e2B1agAAAABJRU5ErkJggg==
535 | 1
536 | 0
537 | 35
538 | 90
539 | right
540 | top
541 | -100
542 | 5
543 |
544 |
545 |
546 | 16
547 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
548 | 0xFF0000
549 | 1
550 | false
551 | 25
552 | center
553 | right
554 | top
555 | -59
556 | 10
557 |
558 |
559 |
560 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAjCAYAAAD8BaggAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjhDQTJFQTNGODNEMzExRTdBREE3RTJBMzExNUY5NTk0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjhDQTJFQTQwODNEMzExRTdBREE3RTJBMzExNUY5NTk0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OENBMkVBM0Q4M0QzMTFFN0FEQTdFMkEzMTE1Rjk1OTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OENBMkVBM0U4M0QzMTFFN0FEQTdFMkEzMTE1Rjk1OTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz49j/97AAAF2ElEQVR42uxX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
561 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAjCAYAAAD8BaggAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE4MUYxRTdGODNEMzExRTc4ODY3RkE2Njc3MTQwREZEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE4MUYxRTgwODNEMzExRTc4ODY3RkE2Njc3MTQwREZEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTgxRjFFN0Q4M0QzMTFFNzg4NjdGQTY2NzcxNDBERkQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTgxRjFFN0U4M0QzMTFFNzg4NjdGQTY2NzcxNDBERkQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5LQREtAAAFRElEQVR42uxXaWhcVRid+/Y3WyZptjYhS2NNQQW1roi41BWKtNQNkWBKK9jiQitK+ssFFKVYg0ttFYJiiz8UQlsoRUWtiIiiggtt05LGtM3SNLPmzduv55uslGkmL+2P/MiDgcm7894993znnO8LW1ZTkwktoEsILbBrEdAioEu9pKAP6AJnd8Zt8e64LV0XccVa2WeKwEOOHwoNOiL/Oy9536YV97uM4mU9xoO+n83V9io23ViVV9qr88pSgKB7Q47AT9uin/cZVxln9arHsFZg/RzWPh/R7N3DYScIsDkBuhZMvN2QVa/SXXEAG316TreJhROm6NucTdONr82qJ9wB9jZU5eVGfD+J33T0x8yfsrJ3WQBRefYsz+gRlGrnQNjagxNn5nBiEeCerjaUjmVjKv295VQ8fyCpupckamLmY4Dh2L7tZFl+x0DELgWmQvLZoZXJ8NVgc9dQ2H6kJ2GcdwX+flNGB3PivAGViZx90JTRNDCzqTeepxKV0hiVaxSbExNdLWk9IXH2S0722nEYlzPe2ZjVayb0FxjQllpDacIG76JMR+CYUierwAG+vDIVvr/Mkj4EM0fhtlfqcoVy/WlI3utnIlYVwGyvGy9hIEDVePApiLLPEv33BsN2MevTOrFCTNKHxP4GNn2nMatR2V76L2rdC3AtmlfYA0Zw/gKwdeWmPHlvzoAeTFgSibgLL5npIrood/Zekda3LjVUG+zfHHXE/a3JMIH6alRz/jBk7wWwS3Hw65jsPb7ElOk5Et4nw7pDYl9bbkqBAMFZEnIuRLq5p8yWHq4wZfq0gZXu1lSYQJC46eXf4DdnsHnHRCmoXPQ8HYO0dFtsWsg/ZBXXwiFujzlSoKRuBaWDtuBTGfauSKsNSnGKaVMCvmMgbO9uzmi6EGG/5SSPYYH09zsYelEylBjYo3CksOyFDCifAjFEGhhCG6AEtv3SYXYsL/kOSgsQjEqchNPqFY8NAwCBjovTSTHiCn5M5MFdFqQJ+TMYm2KPTd8P8t6igJKewMlpyCDkS2lArbonyMhLuJLLjDLMZ/34TgbwgQB6m/rtEskXjFmiqKiGevKifxfEjBATtvdHrQpx/A0UapRP5KiZp91WO6Z8j6waQ4lvheDpHmllPYyQgnYmmytJYTn08y8yKhCgI1nFWw1AGDFEsv7MNYwV7q7mTCGFXWxD7qNcea4vZtD65hpDwfOFVF9Tbkk/Z6dDFe4SifUfZ2m0RQtyMKk6Jkhpx7ghXcAuTuevP54w9o1oDgUjtYZ1+JuE/BAArAJDSHcbohYoHr44r00daCNGF9JV96jmBAI0SHbHLEMn34SOfeE6nMLfOhuxKBj7kUE0F92IzXcipbf1xUxqpm825NSv06rbg/GDnnkMAXl9xBGRTc7xiXuBXNaJlnEWWfQyxocbIo5YyokGdLK5N2YeSqkumJVpdnrtdMSitZW6K7xan1PT+A3aiz2v5kqnfL4vbnKYuaslo98SdWYdHf5BKQ+DkQfQdugQG9Dh6R3XhF3hM3R+CsetYI9ayqxzVCwa7bjYIsrBj5njbnkUlBtcCNHM7PGL21bFEukGv/OfrDTlj2CACokLVMrupFZyQJsVEF0nTAlNUvFuAkNryy15TcIqNMsU0h8fXqyfrMJg19mU1Z6oNBVqF8+eipv75zAtBhryEf/sGVi6rTIvk+XpHs3LJOocgi+CdlAHZ62AEWgR9zgxReMLmeCy/9cxeZUj3Fajm9+XsCUIV6Cwo3SmTKJp8SgYpSnhcEpxgwCZN6DFf6UXAS10QP8LMAAhFMkddrJ6ggAAAABJRU5ErkJggg==
562 | right
563 | top
564 | -138
565 | 5
566 | actionScript->adMute
567 |
568 |
569 |
570 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAjCAYAAAD8BaggAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkRBNUNDQUE4ODNEMzExRTdBNTJEOTExOTE3MkRDMjQ5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkRBNUNDQUE5ODNEMzExRTdBNTJEOTExOTE3MkRDMjQ5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6REE1Q0NBQTY4M0QzMTFFN0E1MkQ5MTE5MTcyREMyNDkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6REE1Q0NBQTc4M0QzMTFFN0E1MkQ5MTE5MTcyREMyNDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4hmF1qAAAGW0lEQVR42uxX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
571 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAjCAYAAAD8BaggAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNDOUJGRDQzODNEMzExRTc5RTRDQjhDNjREMkMwNDdCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNDOUJGRDQ0ODNEMzExRTc5RTRDQjhDNjREMkMwNDdCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0M5QkZENDE4M0QzMTFFNzlFNENCOEM2NEQyQzA0N0IiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0M5QkZENDI4M0QzMTFFNzlFNENCOEM2NEQyQzA0N0IiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5MlMisAAAF2UlEQVR42uxX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
572 | right
573 | top
574 | -138
575 | 5
576 | actionScript->escAdMute
577 |
578 |
579 |
580 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAYAAAAUhR0LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjRBMEFFNEU2ODNDODExRTc5ODQyQzk4N0I2NDlEOTFBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjRBMEFFNEU3ODNDODExRTc5ODQyQzk4N0I2NDlEOTFBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEEwQUU0RTQ4M0M4MTFFNzk4NDJDOTg3QjY0OUQ5MUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEEwQUU0RTU4M0M4MTFFNzk4NDJDOTg3QjY0OUQ5MUEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7O8tDHAAAEmElEQVR42uyafUxbVRjGT8/t991IjJkbE+mAacgUE5cpW3VlioVFZbhZqugQEhNMYJg5LFs1NNoZpysW4gZRsk2ZkmaFZKDbMlpZVzZAgvtjc8YvxuyyDCMRkialH7f3XO/pqBRoK5giLDlP0qTnns/8znue+56mgtUrV7oB0YILEgQENAFNREAT0AQ0EQFNQBMR0AQ0AU10x4CWiLNEjfZ+um9gYPLTTVflyaS4zmDtp62mYvmyqgaZ8+xh+iGRWBTuR+e/KT3ZWS+PfBZrbFMFLfu3dUSbI5rwvPaBNrpAIpVEKy/piE5WIHhJnQefVQ9CVvEgLN5/nsKAcd3D96+iRJmPCtemp8AwfAzO01Xvax9aAxqP7xXHHzttTutkPjsa/CtdAw0fvBATtExSKDlmfImiQSrQ9ziFODDsfHmdYjMMl8OfuWzaXCVcmP1zgz9GgvDxkl0geTgNgD+natQNDmkuewblNHm8uNyuNzDr294XVeXlSzN171KPJM1mqkgCYFXpOdhXCmhm+BTIKd7vwZFuPt0sntV+3IWAaregb2A3PW0T+H55pR2BulP7hIKeBk6ps0xERvilFg08oMoNfuP3+ReCSAJBZ4Adv/4CdvDfXK4fkaPpIDtCY3CuqZOTtBE8n9GOKgs+CoR7+QM/MNWFhUyoYOuKah2Wq3bptZankG5ycyIjvbchIzjzeTxVqjcxi+HRCQN9/aezbGfTZaQ/lCMqf0IbuMoEGAwO28TLYWNwfwcqC/bcrpu0kK0KvAc3wAFVSfBbkA8arVsos2YvE26TSE3NN1tjLoCwdehnMGHGB6eteVFB347KMgYfQX28hnxEYz/mj35o0UbtJo+J90ybqya0FV5/p797qEyOPVarsyQcNJ7PuEhZR0JAY8AdRiX1laGPxTCbL14Q97Z8KJRvr4HYQ0e/P8a30oQi+vSt9ZzTUktjn402FvZsJe+9poqvZfOxhPlkSNjb73Hf4uK1uzcFCfApS5RnJ8w67lOshhsycyCG2aa+CTfad4HfTPVcf0k5eCyi3Zl9LzLSVicP0hwVJD4dNXVW6vOiCv6Mm2KnS4J0uCLJDRxDiJt/hpQGrzU8HdPbJ1+OoiUX0bP1DihT+YNePhpO6F6nR8/xjx6YfoTj9cZpn7ZrehZzYwZQqvxJSLkuo9+dHAfuACX0ZuhP5dix8WRUZLch42sUfKbaLA1cOY8MTV4f8/NgMNqFAW5JF6yIMtYrH5+U41zWceGI+O5hG3I4WDayfs/mbMgMXwELlY4tOY/GnnfwLS015oIoFVmBMtviCd/SbNosylL7HIvf2Msm51LLZNIvtmnAurtGwVpzt1i/wYcsnw4G9T1fCoGq5B9wrdXbJ1rj3AC3KiaApbaO/a/rXpN7XNCWC+Sx6pcvNdDYU2fmpqGr9c4siCEfsnl9+Bnb7EAXd76Nox0U8eXezhPccsUbgt6Wbeg93ivr+vkXapT0atbtj794dFPZ4GbPJ1x47PlqxHUdTXS/ysXz6I4UpSCRoAXkfx3k1zsCmoiAJqAJaCICmoAmIqAJaAKa6P/Q3wIMAHa1AtuR4kGHAAAAAElFTkSuQmCC
581 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAYAAAAUhR0LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MzIwNzgwODNDODExRTdBQ0ZBRDJGOUVBRjgzMzYzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0MzIwNzgxODNDODExRTdBQ0ZBRDJGOUVBRjgzMzYzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQzMjA3N0U4M0M4MTFFN0FDRkFEMkY5RUFGODMzNjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQzMjA3N0Y4M0M4MTFFN0FDRkFEMkY5RUFGODMzNjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7VRqLVAAAEpUlEQVR42uyaa0ybVRjHn/f0QmmlpC7EZFBKwC1syTLEuaDMZdyULM4ljLEMuQV0UwcLSLIvShmt24IJjmRgglzkGjLHtkQYKjdpgNmQfVi8FIcWVLqQ2RhCHdj1cl7fA62U0iIsRVhy/kmTnst7zunvPOf/PofAQGScCag2XIgioKApaCoKmoKmoKkoaAqaioKmoCloqicGtIwNEXRcb5Hoe9ocnxpJSeyMiLRV17ZIvimJEStyivzHrhZJ9rPzAudzIQfSRMMtBWLXOm9jN2T96f9f6/A0hyeReb/ruSh5A5v8PJW3dESHhJjR3YRD6PWEEQTyHSintJtHAJO258MDeU89u5sfGRaEnPAJOMPw5+YOfRg0fZonXH3s4DWt0/TZNdts2BFUroz3CvoZ/KJfq/IoTwIKUPV18klgaLjyHnkMcpadn7Vs2lrF35j9M4Hx/jw6lJ4HoRPBAH8stRy/0CaKx914V/O2v0m5qfSyNbq1WFAS+4No73vneM8FrGQaLgUIyvgK6TNAYpnsgl2n2+dIpNfeuCRc0X92GsPLBYy+p0DiWk2ee+nUkKX65rt8dugKG6HWzrtGuK42CSkTT9jakPTRsvEYMWwx0BGQMn4PUrhvE1M/41t1VXaDlICbXjo50hh4bUcnzk6rtzh/wAxjsGZlFlkXCiOZHq3jy9Fmka41Gec6Nsc10jXVe23u9V7FAKQey7Ruhkf7DPT4+KC9veYnrK6IEpxMKrSMMmIrAUdsItM5i0kL2WkXFtscFpKsIHvwGygT82198CrUte3jqTPKrc4+vtTSfCtlnAJMrEPlxsQyc2fZmjcV9GJUqqzkCKpX68hFNPFj7ugvLPrMW5lzxDNv38td8OgH6NtH/fpUMfHYOLXW56DJfI/1oA/swyegCeBuZRSvXnXXTmC2994Ualo/5kuPFiLiocbRBq5X6kJEd03vY8dqQEJ81tNYxLMPcN7bkHXLf82WsM4MiXj7038Z2VUzmO1mhpyyFZ692dYRJg9CB8OjEIF5I8GAXug/BWMVV9iRjDch1qXftdJ3rOK66xzIKo8gyekovNzJazl2GkFzh9f5hKwcBUlNMKlH7PozpGCkqz7s1dsdL0eBLzd4g7KO9+FEYoDtARcNg8V5EmMvV7XT/Qhv8/o0SfvihpdnMe5ARbkxCKZ0eGKIxz4J1y6fLvFhuJ/dOKvAKf2D+FKOFaW/XSya+/E2PtskMz/8RWfzdGEQHJQzQR7GKjxfISa57J3ecmHgrxr89bCf3bX9XGw0skx+D7462ls+6yCeV1l0hGecQjjUXg8Rr2jnFm9pH/oPpOzkNZZ9YB9lZFaFY67jeEbUmJwEewKNEHXxqlC1H+PGep1N1VfFh8T8f8FVni+er/TyQiI3wGTFPDSWfcLBlz2e1cU3MQPx4PUtF7DVQBNPdc9NScR2pkeixrI0u3pEZiZ15gYt1qTnk2hfyLUHu75gxaFnGE3rYXyW88qPtNwL1UN65S5y8RhA0fD7UDXrHHu9MhjuY9NANruaR3dvj2J8CZqh/9dB/3pHQVNR0BQ0BU1FQVPQVBQ0BU1BU/0f+keAAQCcB/OKy1CfxwAAAABJRU5ErkJggg==
582 | right
583 | top
584 | -230
585 | 5
586 | javaScript->adjump
587 |
588 |
589 |
590 | 0xFF0000
591 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAjCAYAAAB2BvMkAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY0MUIzQkU3ODNDODExRTdCNEQwRjdCMUM4NjE2MERFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY0MUIzQkU4ODNDODExRTdCNEQwRjdCMUM4NjE2MERFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjQxQjNCRTU4M0M4MTFFN0I0RDBGN0IxQzg2MTYwREUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjQxQjNCRTY4M0M4MTFFN0I0RDBGN0IxQzg2MTYwREUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6nC8/UAAAGy0lEQVR42uxbC0wUVxS9O/vhJzSmFZFPF7GFNH6ijVZEBBFRW1FqqytEBK0JNSUYROgGE7GFRipoRaim0lgXs0qDWj6CkbVVxEqlaEt0rdECuhQFGltS4/LZz5vO22Vgd51dviaI7xCyM483M2/uO/fec+8GnvvkyU+AgGCUQRETEBBiERBiERBiERAQYhEQYhEQYhEQEGIREGIREGIREBBiEYx1CF6ERTot325fkh7JF3XUQfyqJI1Sq9Hi8Q37ix0jUBFIUgo7h3K/tKJfnFaIWZ96CoW7wvXf8bYCfobTkFZmvPaYXybv2GIvHjvqqqnnBUdlqI3rDuDnBuXoVpTvE3QWL0Uph9VdputwrjIfs8SEhByHipUCyvS9uWAnmin8qiJfZPkMa+8/Q5VLs3azPB/XxHKwi7CTVe8UeBnOmiEzKFh3tqe7ZzDXskae48IdkFuqc+gAidGIeK6vrx7UygPasMoDgyL5jYK1whRxqIZdzwQ/cKCbThsIjskeHxgONbWznI6k1ei9xO7UMrt3RFPEU6ERAOHr5Z+8Tu1aK9Vmb/xSJ6suEyQ0hNvnKbq6rT3zDR/PATNLj+aWVlpWK1DEyqhVRzfaWbMVXp/BqcSJvJraxH4/sjxncLVgyYAkfeGI1dVT2rN+fmkPJphC9amIyzPrTYwVH6jjZQZt7CMfs5HU1ZxpuoEMgzfklnJ01y7Wt1K1ry2C1N3uZoTwnx4nSF++WH/xUCQyRp9S2CIPoSo2J/OP+b3qoIhewE0gFzHk/3yFscFTEY6QmIQ4klmbn1p9WZBqtrf9kdVoJ3MnfakiltUFhyzl+7q0QO5RPXLZA3w8dmLHms5pjHGSZSmCs1EZPSO5PzbyTP4jGh+3tbUh/Onm5kY9+CmGtkVSzyCjxz9saaEbVPUopvABwhsvBl3f5vPnRiJUsIQ2jU5P8xK7gvOMxwF53KnwbkIrFRcoeSYViie2UsunS7ptpUgzKBI5n/FSaSxWV+HYLGZ+jF7YLDghf4hETTcBe9wGAEd2/t7oOM0rp74QJixzsM+vAj0eWxh7kaqJhUHIJqNHsxtuSaL9pT86DnQHnF6V4m0856oYet1htcHzw+4Z0ibFlVpM3w9fy6bR2Y3R9HDTz2DtyR1mn02FI0mHY5ZY6soD3VjzYGNniXVwI+w9Ko0ZTz9/l2q/ul3PldJ2RERojekShCPVCEOS8EzUkRii3TabJF4YW0axesr0/SJ6//7DTpl+dbVMYEsjjdSepCrs1VMBs9yYamsqfHCvDjwyFaDl30ZXLpQgLlE6nApxNMBqFGVvlLy8us7pYIUOJTOp0PlJKzQx4x7Mr/76HSowo5w54hbrWFcaNFfpPsH9VUlooBTX0NSChrpWVpvhlG1rHluMjEtiCT/eIghVt1NNgCBbnKXZUB0tkAetNBOeDc3/GCqtTYwozQ0q1vVf/QSaGxCNDWnaCrCEhycyE/3Dxaw33fjtrlMZ8vhBiUcd5EUpqBnXdaAM659z7bZU91lZHC2P30NduiQVchEHR7+Kt4sdQ0L4fCXjR9YIFOEt5kHHbzBofWWhzeICo6xqM4OjMNwat+2Go9EzqT9O3oFJ/pOYt6wEpkpUm87Bot2oHcL5ZYxGYslB8XyoSS4AIW+JhHLfeeCqOY9wX8la68By3Dv0OO9UKDj2iXfdf/BgCGuXxcwDGfO56XgdwOPfDceLTFLSmkrb12dtXmMeKTrazQjERvL2+gZ6rO7fmCUWtdiH11zxNUr7BukUqXNEXHPeTdpv/9FCEZVrEcX4cSEUqlegtMNdGu3WOgEEDO0bhoEqQG4EgytfhfhzFVBSVAclEqD8p3SgkwVS1Nntw0RSqT1XeT/Ni0n1KvPoYN7DM2rFZyvjTijjkASEWIMQmymVRiNzE8qb+rPqCFr3oaLTUpftXT2f+rV4qUGjTGDe8W/RbPrUmTOclZ2zxXm6ZIF6oLX9pXqETDULbjj+C1ok7+0Psb02t6ZyWM8QFBcTrar7iF3f5IkAqqpu+tAFhmCPb4By9jZeUTY4spqG7eFZ051ZyRK+qOkc2Gqq2oSLP+z+vhBHaiH3hEc0PV6JZfaazEY26n30B89kOLoz51yEMvVm985r9K5vtX16i/2KhbME9wzgDVbwmrYW2AiJNZFlb0gqzxfNeHwO2GfiirXmZpswnhH2l2JBhL9JONLoTb/PrDM+RqrFDoCjGFe5b9kWKSoo1+M+3r7wbN1w7dlQfxp9HpmkfZ4ai0f+r5DguUgZYgICQiwCQiwCQiwCAkIsAkIsAkIsAgJCLAJCLAJCLAKCUcT/AgwAg52Zj+B18S8AAAAASUVORK5CYII=
592 | 1
593 | 0
594 | 35
595 | 150
596 | right
597 | top
598 | -290
599 | 5
600 |
601 |
602 |
603 | 14
604 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
605 | 0xFFFFFF
606 | 1
607 | false
608 | 25
609 | right
610 | right
611 | top
612 | -278
613 | 10
614 |
615 |
616 |
617 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAYAAAAUhR0LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTJBMDMyQzI4M0Q1MTFFN0FDNEZDMjY4QjhBQ0U3QUIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTJBMDMyQzE4M0Q1MTFFN0FDNEZDMjY4QjhBQ0U3QUIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkFDRkEwOTM4M0QxMTFFN0I5NUREQzc5ODU5RkJCNjkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkFDRkEwOTQ4M0QxMTFFN0I5NUREQzc5ODU5RkJCNjkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4eBamxAAAEPklEQVR42uxYW0gUURj+193cVEQUAy3zIc1CukEPZlJRUBk9dAGD8EkiulIUCFmIUZQEXSgwKR8s6E4FFT3UgxkmIRF0v98vUGmara661/5zbKad2ZkzM+6Z7cHzwcfqmdk5O998/3f+M44fZc4wCMSCx8gSpId1UoLQKWZMRq42OkkIzQdbkNlCaPuRg9wshI4P1iILhdD2Iw1ZKYSOD8qRs7kJnV7bBhkHHwlZozECuQ3pUB9w/c9flbJyN7iLyxRjIc9P+LWjhNscGYefQainS/OaaduvgzNzLHivHoD+5pO8plyEXI68FDno0NuwpG5ohBETioc0U/DrS+jet4TeJDjYRTPQeh56z9dEjY+cWwFJpesh8OEBeOpXK6rJ4U6KEkca79w6RVdord/jzMqH4Lc3vB/2PeQcZJ+h0HoOTF5WpRjzXtqjKZTRNfpvNSoE1BR6wVpwpKTJDy5SPAgGZLHl/68dAgiHFA9AEjr8u0NxDYJRFwL003N0FU9HS1iPrLcsdOrGE5CQPhoCr+5C4rRS6p6Be1fAlV8EoR/vwXNsjWaWE6GsQO0mqbz9b+8zK4w4k1YTujPywRChndkF9G/fgxt4Xp6ho/WqzCLeIYuQHaYyWio3/9Pb0L17AR0jQhP0nq2WH0LGkRcAAZ+idLuqiqIyMXHaQktV0L13sX4/9fd6BO0rXFHR58qdpMq0AHRumqh8iCi093KtHY4eh9yI3Ml0tCRw8Pt7SJw6H3yPm5hXTZw8758zUPDwQJ9lN8vA74PTJeepOjrMCC3FAoH/dRv4nzTR6ouqhFG5mvNzWiCJm2cg3+o6unNzoXwztJxaTutOTPKUCM1aRKQcVS9WLJDrpq5roEKzoog8YFpREaUfwKhx5U2Xx6TqizMykVuRG0y3d+5Z5ZRD7btpdXR9g7Tqm/o5m57FdJJWFOmVvntmGfju4/HR46M6qWD7J+ZvsGIGE6hAnjAttBlHsyLIKAupaDmF3O5Oqkg6v2rx01vsqCH4IwlZY9uGhYifvLSSxkWw4zO9wViqYtC9eZrHkpdXUZrNWFdBsWZlhbzd4HQn2SFHsW3RIYlMytBMzkvnWOk+hto1kBY1jo4mOGVK6OCXZ4bR4czM0SxdnjkfDgW4bM/j7GiyO7xgKDSrj5VAdnmEseS8lqOdWeMGP8dMGHTi8xYudx5nR5OJWl0sB8XSB2ut3FYdnZCRQ1s3Pwqst10n1cYLjuRUGncc8Z24mbkzVLdSscIofoij1aJ56ipirjatnlurK5KP4waNE8hGcD/yo+WXSgKW3+CRnreH6ejILexwhXpbb7XTkERmCh3jJMMdJJfrFOuN0MQWnCNxL4S2Fw3IqF5VCM0XvcjjSJ8Q2l6cQT7U3BMIbbiBvDTfhfQLoe3FNeQX3V2u0IcL7iBrma8ThEbc2rlOIbS9aEZeNDrpjwADAAupBWlakPJjAAAAAElFTkSuQmCC
618 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAAjCAYAAAAUhR0LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUQ5RTU4QjA4M0Q1MTFFNzkwMzlDMkFBN0E4NjI2NjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUQ5RTU4QUY4M0Q1MTFFNzkwMzlDMkFBN0E4NjI2NjEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RDU0NTExOEM4M0QxMTFFNzgxODhCOTA0RkI1RDY2QzIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDU0NTExOEQ4M0QxMTFFNzgxODhCOTA0RkI1RDY2QzIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zYQ9GAAAEPUlEQVR42uxYXUgUURQ+s6NZYZZlkD9FGRGaUSSUP2A/RBRhUPQQ9pKEphVEUSQ+pAhlDxG9hGVUFiEi9ZIp0UtGGUoEWWIUaWlJCWplpvgzM507u7M6uzN3Z9w724P3g4M4e+feme9+57vnjDB+fpYCHMHgHUZmWPHoH9ogF+cpaKzFyAs0iBPNBicnLkTEcqKdRwLGCU50aFCAqk7mRDuP+RhnONGhwUFUdRYzosXclyDmv+G0+iMcowjJFnx/CPufT+XaUgZC0n79xeE+kO5kMVtDLGgDGBkwnFM8UAcQtRSU5ssgv73LasldGPswHky9KJg1LGL2TTxL06e3VP8HkGr3ul9SoCeN0l4L8rNS/01YdwiE1AJQeltBrj+iyyYIn+tHjnZdqlxvSrTR8wjRK0H52cF6s19hbMYmZiQg0WYKdGWc1V2Tm8oNiQo0h9xapSPQkOgN+QCzF3g3TkeePOEl2/t/yxXcOVm/AR6iYaRfN4eazsWj7nd4lMdS0RqO4vwVtokW99wCiIwDpacZhMQdblV9fAhC3EZQfn0GuaHQ0MtVouzAR01aesP319QMI8pUM4Soc8rGEKKFhavcv3U+AfCMoynaLMtsohNjE5LdZ8mjtXRTup6BXL3TfY0QTZTQeM67CWJhO4A0pktd6XaGnyeSTbKTBVJNtvmzeeYjwAPI3/oWr9HfgKqXKpL1m0iIbrrohKITMY5jlNI9WvMzVKuwYjsoX55SZxWWb51UBhIO48P21exlF+93hU36qY91WCFaswVVoT0tKJRGNfv8q99lhuszOiCJmtPwWTpMFS1dS5ncdfKwbdWmC6t+ikTTDhHNR30PK6qf47yu3ddBQaJpVkQ2WM2oKamvoNUIsamTYvZkX4gRg3EK45jl8k5IyQERY7p1t6rOoR8g5jw2Hxi5hKokIysyS30Ry0blUwOAx591ldTvbuoz2BGDBeRitlVZJtqSoikWRA4dmeKFqg3EJAGrj+PejCTr+xx+sslhpwqCPeZglDjWsKjkp59W7QIGv6rKCyorPOo1zLbMIhAxrHqsEJ9mnFmjg2o15QDSHbMOjWSShlZ8Xhtjp/qYbtVAStQQKprgniWilb73Aa0DohIMU5epz5ONY9Ceh1jRpDusDUg0rY71nujY5QGJIHzeUNHRie6/i1a77+9+zuTNQ6zoEizvmsKoCgqiDjY6uW3bz7x4tXQjBJu16yTbmCEiyn2msEMvUTO1M/QtpYJWUQD7IYr2JU2qOxx0thnV3IaNmQZs0Fi9MsYlVHOX7Y9KHLa/4G1Dooeoip7aws5U+Lb1tisND8lUooNcZKaD+PJVXWXGOXEENahmiRPtLG5g1Pv1GpwXpviLUYlqHuNEO4tqjFbD7plzwwzko3kZqnmcE+0s6pDkb2Y/cqLZ4AVGOW0AJ5pdOTfAiXYWjRj3Aw36J8AA+lUMlmbVgFMAAAAASUVORK5CYII=
619 | right
620 | bottom
621 | -100
622 | -40
623 | actionScript->openAdLink
624 |
625 |
626 |
627 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI5QTZDNTc2NEQ3MDExRTJCOEM3ODA5RkNGRkIzNzYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI5QTZDNTc3NEQ3MDExRTJCOEM3ODA5RkNGRkIzNzYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjlBNkM1NzQ0RDcwMTFFMkI4Qzc4MDlGQ0ZGQjM3NjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjlBNkM1NzU0RDcwMTFFMkI4Qzc4MDlGQ0ZGQjM3NjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz530M3/AAAEX0lEQVR42lRUXWyTVRh++n1fu/6u/+vWjbIVcT8MUOZkkDKNY4JMQwh6IRdEbzQmXmm8IUYvyIxonEE0LGbBhGBM8EajMwYMGqeyCyOD1jE7Nh2ydevvyvqztl9b3/dYFznJm3NyzvM+7+95NadHRsCrWq2KXSNJUBTFaTAaH3W73U+6XK7tZrPZy2+ZTCYSj8dvxGKxr9fz+R/UUilRLpeh0WiE8FJQW0xYqVR09SbTwfva21/r6uoKEOEGsLaaCLcrHos9d3N6+qdwOPxuOp3+Vpak4j2ENTKDu6Hh1cC+fSfa/H4D39Md2IMN70lJoggIxxLY5PP1TExMvBWLRt+jtzy/KzVFxeV2vzQwOHjS6/WiWCxClmUhJTr/fyl6vTDCwobr9PqT3126lEvE4x8QXpUYZDQa9z7U2/s6k+VyOWi1CqLRGP4Iz0JSFJTZUxI+8x2/MYaxrMO6zMFckkaWTc0tLcf9fr89k80Kr1ZX0zhzdgwn3hjGjWCIDBqE8Jnv+C1NGMayDusyB3PJR48c6ejs7HyHQjZUqxUkEkmc/mgMV38NIldQcevWPDratyCRTOL9D8cQWUnhTiSKhdu30d25FQZKgcSpKZX8lMsvFMp0j9PptOfyeXJXIwqgaHWw1NtgdzqRJKIzo+e5dEimc/C1+ZFKpUC5E9iSWkKhVAJx2AjUI12bmvJbbTasr69zn5HFOrz4/DEM9PehSnlzUUXjq1khDlcDtwQOPLYXLxCmjrCZTFboWq1WMJdCidULS1RN3tfImslgwLGnD1EoEn4LzcLusDMPCusF7OndgWcOPw5qakEmmppby2jkIuklin2tQGTcBmyJe0+l88LC36BfITwqV8Umwl5cWsLc3DzhKwLLOqzLHMylEGCGeghmi0U8MtmPv0ziy2+uEKiKeocDWkUWPVgoaBCanhOFOnxoALse2C5IdTodmIO5pGAweO361NSsyWwmRQWrlPDLVyYQja9CbzJDph918JGHhVAGYDBbEE2mcfn7CaSSKaHDulPEwVwy/YoMReMa3L+/nwdDlTxs3eyjiq4hm83hCSrAg91b4aYi6rRazITn0erz4uhTB+Cw1Qsy9nJkZOQskX4lUyHKkaWlCP3N/kAg4OGwzSYD3C4HfM0e7OzagjVKfp7uW5rcVE0Ldmy7H5tbGkXreDwefHrhQvCTc+fepKKsyPzZqQfjv4dCd5i0d/fu+kqlDH2dFh4izdL3UtVyrVgqNnkbYbOaYaGcO2kafX7x4uLw8PArK9Hoz9zH8n9jJ333bnhycvJmuVjs2dbd7fI0NdFs1BBRVUwYLYWr1xtgtdtEb2bWMvh4dHTm7VOnXl6KRMZF+/w7T8V8EB7w2WG3dxDh8aGhoWf7+vpaGxsbQQMWtQGL5eVlkOG/xsfHP6OozidTqRmhW3PsHkKa1EKZ2kBbVtU2h9O5p7m5eSfdOWuEicXFxevJROKqrCh/UkFLbERV1Q3CfwQYAGpDTIdVyPxeAAAAAElFTkSuQmCC
628 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAQXSURBVHjadFTfa1t1FD/3e+9Nc5OY3Pxq2mRJY2yZtMqoXV0dRWqZc6Vl/sIHX4Z/wJ6EvQk+SKEyEPogynQOimNupfowC4oP+uCwUKHpam1NN+zmkjTNj+Y2P5t7k3jOt0lRxg4c8r3nez6fc3LO+R7hk9lZIGk2m/yXCQJIkuS2KMqY1+ud8ng8z9tsNj/dFYvFZCaTuZtOp7+vVKu/6IaRrdfrICCGlESClhBho9EwWe32c8d7ey/19/ePIuGRY0u60e+FdCbz3p8bG7/GYrHLmqb9wESx1vYTX5uYaJMpnV7vpVfGxmYHBwefsVqt3E4ZkOI9/yYgZgzhnp6Q0+l8I5vJNDDzZYExg+44ITpLXo/n4tkzZ2ZCoZBcq9UOo4ki1HSdE/GgqLIs8wCGYQCWQ8YkxndSqVypXF5mjDUYAS0Wy+nhkyc/8Pv9UC6XsYYypNO7sBX7CyTGoEEZotKZbHRHPuRLGMISB++BKAjWY4HAhUgk4iwVizyr7ZQGr37TDe/cDsGnPyVAUSxc6Uw2uvsnvc99CUNY4iAuZrZYIsFg8C0qKVYIlu/l4fWbKsjVFDB9H76M9cD8nUdc6Uw2upu64YDl+xo0qcOIDQWDbyvIJeHHkNvtdlYwfSwsGI3Ddupm31FrP/r92NH5v3aqq17TQW8eAHKoaBpi0ZWViOpwQLVapTmDTrsMn51NgUUow5PELhTg6sQuqBYZSqUixzqQg7gYFtZMkaib1DmloUGvR4AvzlfBJhQfI3OLebj6pgFBRxNsoHFMexKIi+m6XqgdHPBRoEg0b9t7AD+u70OxaXuMMFtX4faqBg80gfsShrDEQVwsEY9vZrJZMJlM3KGOES//bMDcvfAT//Lc/TD3aQ88YYmDuNja2tpKdHV1y4YvQ8Kh3cvnIVb1g6TnjwhOOR5ybYtUO/TJ7eU4hrDRaHSLuFg+n3/43cLCLXzsYO7oAAUvx70PwJBVDu4zJ2GqX+JKZxLDpHIfi9XGMZVKBb5dWLhJXCIWs55IJpP4hF4eHR31UU0EhjvjIA9Sowrnj+vQi0TUWfUpBXbzFRhwZOF0mEHYxcDn88HX16+vfXXt2ofYlJSI7w9wBjN/rK8/ItJTw8N2b0cVTrgKMN5TBrWZw1oZvFadphKc6zPgxW4d+nwd4PW44db8fHx6evr93VTqDs2x2F47+5oWW1pa2qjV60PPDQx4/F1duBvxHTcbQEFpKSiKGZwOFTAwFIoF+PzKlc2PZ2YuJhOJRc5Dr4acSSgDOjtdrmeR8MLk5OS7IyMj4S4kpnXVWrCws7MDGHh7cXHxBv6rub1cbpOwQovnf4S4qTkYx0A26vWn3S7XS4FA4ATa3C3CbDweX83mcr9Jovg3rjmdgtBwtwn/FWAADXMqetJXpdYAAAAASUVORK5CYII=
629 | right
630 | top
631 | -10
632 | -10
633 | actionScript->closePauseAd
634 |
635 |
636 |
637 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA0M0ZFMTZDOEI5NjExRTc5QzI5RDZBNTdDQzBCOUE0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA0M0ZFMTZEOEI5NjExRTc5QzI5RDZBNTdDQzBCOUE0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDQzRkUxNkE4Qjk2MTFFNzlDMjlENkE1N0NDMEI5QTQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDQzRkUxNkI4Qjk2MTFFNzlDMjlENkE1N0NDMEI5QTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz63VRFqAAAAjElEQVR42mI8yEBbwMQwPC2wunkTvwimAlyAEVccAI04pq6OycZUgGkZsmJGqkcymmtYiAkfTKehmYLVizgtIFInkYCFwtBAY2O6hoXU9INsBP5UgN0CNHXEBBH+JMtEMD3g10/QBUwEdeKxgxj/MRGjE5cduDIa4UjGdBfcDqxSeCKDcbS4JgQAAgwABj9c9c65XkcAAAAASUVORK5CYII=
638 | data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAASCAIAAAC1qksFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE1RkZBNjNGOEI5NjExRTdBNUVBQTkyQ0NFRjA4QURGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE1RkZBNjQwOEI5NjExRTdBNUVBQTkyQ0NFRjA4QURGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTVGRkE2M0Q4Qjk2MTFFN0E1RUFBOTJDQ0VGMDhBREYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MTVGRkE2M0U4Qjk2MTFFN0E1RUFBOTJDQ0VGMDhBREYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz766zIBAAAAjElEQVR42uxUSQ6AIAykDY/hk3rhkzxHT4Z0uhklXpxTA21nugDtRGUluCzGRwTbGP4JOlggawZnit4a2uiAZLMzvT5koaZm+oPSRBa1RJMgGZlEfdgNYaOaend/5hT+FugEwi/TIn9lOdwHPz5UwGGkw5GpjzORFof10OIho66LQ71yhkH/dx3hEGAA31RctLVYOx4AAAAASUVORK5CYII=
639 | right
640 | top
641 | -32
642 | 0
643 |
644 |
645 |
646 |
668 |
669 |
670 | 14
671 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
672 | 0xFFFFFF
673 | false
674 | 0.8
675 | 0x333333
676 | 0.8
677 | 0
678 | 0x333333
679 | 3
680 | 15
681 | 2
682 | 15
683 | 4
684 | 5
685 | 15
686 | 10
687 | 0x333333
688 | 0
689 | 0xFFFFFF
690 | 0.8
691 | 0
692 | 0
693 |
694 |
695 |
696 | 0xFFFFFF
697 | 1
698 | 5
699 | 5
700 | 5
701 |
702 |
703 |
704 | 14
705 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
706 | 0xFFFFFF
707 | false
708 | 1
709 | 0x000000
710 | 0.8
711 | 0
712 | 0x333333
713 | 0
714 | 15
715 | 2
716 | 15
717 | 4
718 | 0
719 | 150
720 | 0
721 |
722 |
723 |
724 | 6
725 | 0x004eff
726 | 1
727 | 39
728 |
729 |
730 |
731 | 16
732 | Microsoft YaHei,\5FAE\8F6F\96C5\9ED1,微软雅黑
733 | 0xFFFFFF
734 | true
735 | 1
736 | 30
737 | 50
738 |
739 |
--------------------------------------------------------------------------------
/static/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liuzy88/91video/4f2ab77b641fffbf104807832b1340cf57788a5f/static/favicon.ico
--------------------------------------------------------------------------------
/www/index.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
8 |
9 | 91Video
10 |
26 |
27 |
28 | <% if (data.mp4) { %>
29 |
33 |
34 |
44 | <% } else if (data.rows) {
45 | let width = 11, pad = Math.floor(width / 2), start = 1, end = width, max = Math.ceil(data.count / rows);
46 | if (max <= width) {
47 | end = max;
48 | } else if (rows > width) {
49 | if (page > pad) {
50 | start += page - pad;
51 | end += page - pad;
52 | if (end > max) {
53 | end = max;
54 | start -= end - max;
55 | }
56 | }
57 | } else {end = rows;}
58 | %>
59 |
60 |
61 | Page <%=page%> of <%=max%>
62 | - Previous
63 | <% for (let i = start; i <= end; i++) { %>
64 | - <%= i %>
65 | <% } %>
66 | - Next
67 | Count <%=rows%> of <%=data.count%>
68 |
69 |
70 |
71 |
72 | <% for (let i = 0; i < Math.ceil(len / 2); i++) { let d = data.rows[i];%>
73 | - <%=d.title%>
74 | <% } %>
75 |
76 |
77 |
78 |
79 | <% for (let i = Math.ceil(len / 2); i < len; i++) { let d = data.rows[i];%>
80 | - <%=d.title%>
81 | <% } %>
82 |
83 |
84 |
85 |
86 | Page <%=page%> of <%=max%>
87 | - Previous
88 | <% for (let i = start; i <= end; i++) { %>
89 | - <%= i %>
90 | <% } %>
91 | - Next
92 | Count <%=rows%> of <%=data.count%>
93 |
94 | <% } %>
95 |
96 |
--------------------------------------------------------------------------------