Sync all projects

This commit is contained in:
github-actions[bot]
2026-07-11 04:45:19 +00:00
parent ee2c468427
commit 3ad48c717c
9487 changed files with 7075550 additions and 6121 deletions
+256
View File
@@ -0,0 +1,256 @@
// ==UserScript==
// @name 123av
// @namespace gmspider
// @version 2024.12.03
// @description 123av GMSpider
// @author Luomo
// @match https://*.123av.com/*
// @match https://123av.com/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = ["tags"];
}
Object.freeze(GMSpiderArgs);
const GmSpider = (function () {
const filter = {
key: "filter",
name: "过滤",
value: [{
n: "全部",
v: ""
}, {
n: "单个女演员",
v: "&filter=single_actress"
}]
};
const filterWithoutSort = [
filter
];
const defaultFilter = [
filter,
{
key: "sort",
name: "排序方式",
value: [
{
n: "最近更新",
v: "&sort=recent_update"
},
{
n: "发布时间",
v: "&sort=release_date"
},
{
n: "动态",
v: "&sort=trending"
},
{
n: "今日最好",
v: "&sort=most_viewed_today"
},
{
n: "本周最好",
v: "&sort=most_viewed_week"
},
{
n: "本月最好",
v: "&sort=most_viewed_month"
},
{
n: "观看次数最多",
v: "&sort=most_viewed"
},
{
n: "最喜欢",
v: "&sort=most_favourited"
}
]
}];
function pageList(select) {
let itemList = [];
$(select).each(function (i) {
if ($(this).find("a").attr("href") != "javascript:void(0);") {
itemList.push({
vod_id: $(this).find("a").attr("href").split("/zh/").at(-1),
vod_name: $(this).find(".detail a").text(),
vod_pic: $(this).find("img").data("src"),
vod_year: $(this).find(".duration").text()
})
}
});
return itemList;
}
function formatDetail(detail, ...keys) {
let format = "";
for (let key of keys) {
format += key in detail ? (Array.isArray(detail[key]) ? detail[key].join(" ") : detail[key]) : "";
}
return format;
}
return {
homeContent: function () {
let result = {
class: [
{type_id: "recent-update", type_name: "最近更新"},
{type_id: "trending", type_name: "热门"},
{type_id: "new-release", type_name: "全新上市"},
{type_id: "censored", type_name: "有码"},
{type_id: "uncensored", type_name: "无码"},
{type_id: "tags", type_name: "厂牌"},
{type_id: "genres", type_name: "类型"}
],
filters: {
"recent-update": filterWithoutSort,
"trending": defaultFilter,
"new-release": filterWithoutSort,
"censored": defaultFilter,
"uncensored": defaultFilter,
"tags": defaultFilter,
"genres": defaultFilter
},
list: []
};
result.class.map(item => {
$("#nav a").each(function () {
if ($(this).attr("href").endsWith(item.type_id)) {
item.type_id = $(this).attr("href")
return false
}
});
})
let itemList = pageList(".box-item-list .box-item:not(.splide__slide)");
result.list = itemList.filter((item, index) => {
return itemList.findIndex(i => i.vod_id === item.vod_id) === index
});
return result;
},
categoryContent: function (tid, pg, filter, extend) {
console.log(tid, pg, filter, JSON.stringify(extend));
let result = {
list: [],
page: pg,
pagecount: 0
};
if (tid === "tags") {
$("#nav ul li a").each(function () {
let tagHref = $(this).attr("href");
if (tagHref.includes("tags") && !tagHref.includes("http")) {
tagHref = tagHref.split("/");
result.list.push({
vod_id: tagHref.at(-2) + "/" + tagHref.at(-1),
vod_name: $(this).text().trim(),
vod_tag: "folder",
style: {
"type": "rect",
"ratio": 2
}
})
}
});
result.pagecount = 1;
} else if (tid === "genres") {
$("#page-list .bl-item").each(function () {
result.list.push({
vod_id: $(this).find("a").attr("href"),
vod_name: $(this).find(".name").text(),
vod_remarks: $(this).find(".text-muted").text(),
vod_tag: "folder",
style: {
"type": "rect",
"ratio": 1
}
})
});
result.pagecount = 1;
} else {
result.list = pageList("#page-list .box-item-list .box-item");
result.pagecount = Math.ceil(parseInt($("#page-list .section-title .text-muted").text().replace(",", "")) / 12);
}
return result;
},
detailContent: function (ids) {
let detail = {};
$("#details .detail-item div").each(function (item) {
const key = $(this).find("span:first").text().replace(":", "");
if ($(this).find("span:eq(1) a").length === 0) {
detail[key] = $(this).find("span:eq(1)").text().trim();
} else {
detail[key] = [];
$(this).find("span:eq(1) a").each(function () {
const id = $(this).attr("href");
const name = $(this).text();
detail[key].push(`[a=cr:{"id":"${id}","name":"${name}"}/]${name}[/a]`);
})
}
});
const vod = {
vod_id: ids[0],
vod_name: $(".favourite:first").data("code"),
vod_pic: $("#player").data("poster"),
vod_year: formatDetail(detail, "发布日期"),
vod_remarks: formatDetail(detail, "类型"),
vod_director: formatDetail(detail, "制作者", "标签"),
vod_actor: formatDetail(detail, "演员"),
vod_content: $(".justify-content-between.align-items-start h1").text().trim(),
vod_play_data: [{
from: "123AV",
media: [{
name: "720P",
type: "webview",
ext: {
replace: {
vod_id: ids[0]
}
}
}]
}]
};
return {list: [vod]};
},
playerContent: function (flag, id, vipFlags) {
return {
type: "match"
};
},
searchContent: function (key, quick, pg) {
const result = {
list: [],
page: pg,
pagecount: 0
};
result.list = pageList("#page-list .box-item-list .box-item");
result.pagecount = Math.ceil(parseInt($("#page-list .section-title .text-muted").text().replace(",", "")) / 12);
return result;
}
};
})();
$(document).ready(function () {
let result = "";
if ($("#cf-wrapper").length > 0) {
console.log("源站不可用:" + $('title').text());
GM_toastLong("源站不可用:" + $('title').text());
} else if ($("#body .btn-primary").text() === "Click here to continue") {
window.location = $("#body .btn-primary").attr("href");
} else {
result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
}
console.log(JSON.stringify(result));
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+240
View File
@@ -0,0 +1,240 @@
// 本资源来源于互联网公开渠道,仅可用于个人学习爬虫技术。
// 严禁将其用于任何商业用途,下载后请于 24 小时内删除,搜索结果均来自源站,本人不承担任何责任。
import {Crypto, _} from 'assets://js/lib/cat.js';
let host = 'https://bubutv.top';
let device_id = '';
const pkg = 'com.sunshine.tv';
const ver = '4';
const device_id_cache_key = 'com.sunshine.tv_3qys_B7k7Dt56Rn';
// 内嵌线路排序函数(合并到当前文件,无外部依赖)
function sortPlayLine(sourceList) {
const getPriority = (showName) => {
const name = showName.toLowerCase();
if (name.includes('4k')) return 1;
if (name.includes('k')) return 2;
if (name.includes('独家')) return 3;
if (name.includes('秒播')) return 4;
if (name.includes('自建')) return 5;
if (name.includes('蓝光')) return 6;
if (name.includes('专线')) return 7;
return 8;
};
return [...sourceList].sort((a, b) => getPriority(a.show) - getPriority(b.show));
}
async function init(cfg) {
const ext = cfg.ext;
if (typeof cfg.ext === 'string' && cfg.ext.startsWith('http')) {
host = cfg.ext.trim().replace(/\/$/, '');
}
}
async function home(filter) {
const hd = await getHeaders();
const resp = await req(`${host}/api.php/app/index/home`, { headers: hd });
const json = JSON.parse(resp.content);
const classes = _.map(json.data.categories, (i) => ({
'type_id': i.type_name,
'type_name': i.type_name
}));
const videos = [];
for (const cat of json.data.categories) {
videos.push(...arr2vods(cat.videos));
}
return JSON.stringify({ class: classes, list: videos });
}
async function homeVod() {
return JSON.stringify({ list: [] });
}
async function category(tid, pg, filter, extend) {
const hd = await getHeaders();
const url = `${host}/api.php/app/filter/vod?type_name=${encodeURIComponent(tid)}&page=${pg}&sort=hits`;
const resp = await req(url, { headers: hd });
const json = JSON.parse(resp.content);
return JSON.stringify({
list: arr2vods(json.data),
pagecount: json.pageCount,
page: parseInt(pg)
});
}
async function search(wd, quick, pg=1) {
const hd = await getHeaders();
const url = `${host}/api.php/app/search/index?wd=${encodeURIComponent(wd)}&page=${pg}&limit=15`;
const resp = await req(url, { headers: hd });
const json = JSON.parse(resp.content);
return JSON.stringify({
list: arr2vods(json.data),
pagecount: json.pageCount,
page: parseInt(pg)
});
}
async function detail(id) {
const hd = await getHeaders();
const resp = await req(`${host}/api.php/app/vod/get_detail?vod_id=${id}`, { headers: hd });
const json = JSON.parse(resp.content);
const data = json.data[0];
const vodplayer = json.vodplayer;
const shows = [];
const play_urls = [];
const raw_shows = data.vod_play_from.split('$$$');
const raw_urls_list = data.vod_play_url.split('$$$');
// 临时数组用于排序
let tempLines = [];
for (let i = 0; i < raw_shows.length; i++) {
const show_code = raw_shows[i];
const urls_str = raw_urls_list[i];
let need_parse = 0;
let is_show = 0;
let name = show_code;
const player_info = _.find(vodplayer, (p) => p.from === show_code);
if (player_info) {
is_show = 1;
need_parse = player_info.decode_status;
if (show_code.toLowerCase() !== player_info.show.toLowerCase()) {
name = `${player_info.show} (${show_code})`;
}
}
if (is_show === 1) {
const urls = [];
for (const url_item of urls_str.split('#')) {
if (url_item.includes('$')) {
const [episode, url] = url_item.split('$');
urls.push(`${episode}$${show_code}@${need_parse}@${url}`);
}
}
if (urls.length > 0) {
tempLines.push({ show: name, urls: urls.join('#') });
}
}
}
// 执行线路排序
tempLines = sortPlayLine(tempLines);
// 排序后还原为原格式
for(let item of tempLines){
shows.push(item.show);
play_urls.push(item.urls);
}
const video = {
'vod_id': data.vod_id.toString(),
'vod_name': data.vod_name,
'vod_pic': data.vod_pic,
'vod_remarks': data.vod_remarks,
'vod_year': data.vod_year,
'vod_area': data.vod_area,
'vod_actor': data.vod_actor,
'vod_director': data.vod_director,
'vod_content': data.vod_content,
'vod_play_from': shows.join('$$$'),
'vod_play_url': play_urls.join('$$$'),
'type_name': data.vod_class
};
return JSON.stringify({ list: [video] });
}
async function play(flag, vid, flags) {
const parts = vid.split('@');
const play_from = parts[0];
const need_parse = parts[1];
const raw_url = parts[2];
let url = '';
let jx = 0;
if (need_parse === '1') {
try {
const hd = await getHeaders();
const apiUrl = `${host}/api.php/app/decode/url/?url=${encodeURIComponent(raw_url)}&vodFrom=${play_from}`;
const resp = await req(apiUrl, { headers: hd, timeout: 30000 });
const json = JSON.parse(resp.content);
if (json.data && json.data.startsWith('http')) {
url = json.data;
}
} catch (e) {
console.error('Play decode error:', e);
}
}
if (!url) {
url = raw_url;
if (/(www.iqiyi|v.qq|v.youku|www.mgtv|www.bilibili).com/.test(raw_url)) {
jx = 1;
}
}
return JSON.stringify({ jx: jx, parse: 0, url: url, header: {'User-Agent': 'com.sunshine.tv/1.2.0 (Linux;Android 15) AndroidXMedia3/1.4.1'}});
}
async function getHeaders() {
const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = randomStr(3, '0123456789');
if (!device_id) {
device_id = await local.get('cache', device_id_cache_key);
if (!device_id || device_id.length !== 16) {
device_id = randomStr(16);
await local.set('cache', device_id_cache_key, device_id);
}
}
const sign_str = `finger=SF-C3B2B41F6EFFFF9869176CF68F6790E8F07506FC88632C94B4F5F0430D5498CA&id=${pkg}&nonce=${nonce}&sk=SK-thanks&time=${timestamp}&v=${ver}`;
const sign = sha256(sign_str);
return {
'User-Agent': 'okhttp/4.12.0',
'Accept': 'application/json',
'x-aid': pkg,
'x-ave': ver,
'x-time': timestamp,
'x-nonc': nonce,
'x-sign': sign,
'x-device-id': device_id,
'x-device-brand': 'vivo',
'x-device-model': 'V2309A',
'x-update-id': '0245861b-2ebf-5524-389d-f983830651ec'
};
}
function arr2vods(arr) {
return _.map(arr, (i) => {
let type_name = i.type_name || '';
if (i.vod_class) {
type_name = type_name + (type_name ? ',' : '') + i.vod_class;
}
return {
'vod_id': i.vod_id.toString(),
'vod_name': i.vod_name,
'vod_pic': i.vod_pic,
'vod_remarks': i.vod_remarks,
'type_name': type_name,
'vod_year': i.vod_year
};
});
}
function randomStr(len, chars = '0123456789abcdef') {
let str = '';
for (let i = 0; i < len; i++) {
str += chars[_.random(0, chars.length - 1)];
}
return str;
}
function sha256(text) {
return Crypto.SHA256(text).toString().toUpperCase();
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
search: search,
detail: detail,
play: play
};
}
+25
View File
@@ -0,0 +1,25 @@
var rule = {
title: 'JAVXX',
host: 'https://javxx.com',
url: 'https://javxx.com/cn/fyclass?page=fypage',
searchUrl: 'https://javxx.com/cn/search?keyword=**&page=fypage',
searchable: 2,
quickSearch: 0,
filterable: 0,
filter: '',
filter_url: '',
filter_def: {},
headers: {
'User-Agent': 'MOBILE_UA',
},
timeout: 5000,
class_parse: '#menu&&ul&&li;a&&Text;a&&href;.*/(.*)',
cate_exclude: '类别|女演员|制作商|系列|SIRO|LUXU|200GANA|PRESTIGE PREMIUM|ORECO|S-CUTE|ARA|390JAC|328HMDN|FC2|HEYZO|1pondo|Caribbeancom|Caribbeancompr|10musume|Pacopacomama|C0930|H0930|H4610|Tokyo Hot|XXX AV|GACHIG',
play_parse: true,
lazy: "js:\n input = { parse: 1, url: input, js: '' };",
double: true,
推荐: '列表1;列表2;标题;图片;描述;链接;详情',
一级: '.vid-items&&.item;span:eq(2)&&Text;img&&src;.meta&&Text;a&&href',
二级: '*',
搜索: '*',
}
+47
View File
@@ -0,0 +1,47 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 6]
},
defaultResult: {
class: [{
type_id: "6",
type_name: "短剧"
}]
}
}
})
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+44
View File
@@ -0,0 +1,44 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 5]
}
},
playerContent: {
OkPlayer: true
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+44
View File
@@ -0,0 +1,44 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 5]
}
},
playerContent: {
OkPlayer: true
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+44
View File
@@ -0,0 +1,44 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "playerContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 5]
}
},
playerContent: {
OkPlayer: true
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+283
View File
@@ -0,0 +1,283 @@
// ==UserScript==
// @name gaze
// @namespace gmspider
// @version 2024.12.01
// @description gaze GMSpider
// @author Luomo
// @match https://gaze.run/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/ajaxhook.umd.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/blob-util.min.js
// @grant unsafeWindow
// @run-at document-end
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
Object.defineProperty(Object.prototype, '_detectLoopStopped', {
set: function () {
return true;
},
get: function () {
console.log("devtools-detector disabled");
return false;
}
});
})();
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "detailContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
let _gotData = function (data) {
console.log("_gotData hook failed", data)
};
let hookRequestUrl = "";
const {unProxy, originXhr} = proxy({
onRequest: (config, handler) => {
let params = {};
switch (GMSpiderArgs.fName) {
case "categoryContent":
let filter = GMSpiderArgs.fArgs[3];
params = {
mform: GMSpiderArgs.fArgs[0],
mcountry: filter?.mcountry ?? "all",
"tag_arr[]": filter?.mtag ?? "all",
page: GMSpiderArgs.fArgs[1],
sort: filter?.sort ?? "updatetime",
album: "all",
title: "",
years: filter?.years ?? "all",
};
break;
case "searchContent":
let title = GMSpiderArgs.fArgs[0];
params = {
mform: "all",
mcountry: "all",
"tag_arr[]": "all",
page: GMSpiderArgs.fArgs[2],
sort: "updatetime",
album: "all",
title: GMSpiderArgs.fArgs[0],
years: "all",
};
break;
}
if (config.url.includes("filter_movielist")) {
if (!$.isEmptyObject(params)) {
config.body = $.param(params)
}
}
handler.next(config);
},
onResponse: (response, handler) => {
if (response.config.url.includes("filter_movielist")) {
let data = JSON.parse(response.response);
_gotData(data);
}
handler.next(response);
}
}, unsafeWindow)
let _gotSrc = function (src) {
console.log("_gotSrc hook failed", data)
};
let _player;
Object.defineProperty(unsafeWindow, 'player', {
configurable: true,
get: () => _player,
set: (player) => {
_player = new Proxy(player, {
get(target, prop) {
if (prop === "src") {
// console.log("src", src);
return new Proxy(target[prop], {
apply: (target, thisArg, argumentsList) => {
_gotSrc(argumentsList[0]);
// return false;
return Reflect.apply(target, thisArg, argumentsList);
}
});
} else {
return Reflect.get(target, prop);
}
}
})
},
});
const GmSpider = (function () {
function listVideos(result) {
return new Promise(function (resolve) {
_gotData = resolve;
}).then(async (movieList) => {
console.log("movelist", movieList);
movieList.mlist.forEach(function (item) {
result.list.push({
vod_id: item.mid,
vod_name: item.title,
vod_pic: item.cover_img,
vod_remarks: "豆瓣 " + item.grade,
vod_year: item.definition
})
})
result.pagecount = movieList.pages;
return result;
});
}
async function getPlay(src) {
let playData = {};
if (src.startsWith("blob:")) {
let blob = await fetch(src).then(r => r.blob());
await blobUtil.blobToBinaryString(blob).then(function (fileData) {
fileData = fileData.replaceAll(' ', "");
playData = {
type: "file",
ext: {
header: {
"User-Agent": window.navigator.userAgent,
"Referer": window.location.href
},
file: fileData
}
}
});
} else {
playData = {
type: "match"
}
}
return playData;
}
return {
homeContent: function (filter) {
const defaultFilters = [{
key: "mcountry",
name: "地区",
value: []
}, {
key: "mtag",
name: "类型",
value: []
}, {
key: "sort",
name: "排序",
value: []
}];
defaultFilters.forEach((item) => {
$(`.${item.key} .filter-item a`).each(function () {
item.value.push({
n: $(this).text(),
v: $(this).data("filter")
});
})
})
let yearFilter = [{
n: "全部年份",
v: "all"
}];
let thisYear = new Date().getFullYear();
for (let i = 0; i <= 20; i++) {
yearFilter.push({
n: thisYear - i,
v: thisYear - i,
})
}
defaultFilters.push({
key: "years",
name: "年份",
value: yearFilter
})
const result = {
class: [
{type_id: "1", type_name: "电影"},
{type_id: "2", type_name: "电视剧"},
{type_id: "bangumi", type_name: "番剧"},
{type_id: "chinese_cartoon", type_name: "国漫"},
],
filters: {
"1": defaultFilters,
"2": defaultFilters,
"bangumi": defaultFilters,
"chinese_cartoon": defaultFilters,
},
list: []
};
return listVideos(result);
},
categoryContent: function (tid, pg, filter, extend) {
console.log(tid, pg, filter, JSON.stringify(extend));
let result = {
list: [],
limit: 24,
pagecount: 0
};
return listVideos(result);
},
detailContent: function (ids) {
let media = [];
$("#btngroup .playbtn").each(function () {
media.push({
name: $(this).text().trim(),
type: "webview",
ext: {
replace: {
mcid: unsafeWindow.mcid,
path: $(this).data("path")
}
}
})
})
return {
vod_id: ids[0],
vod_name: $(".d-flex .grade:first").text().trim(),
vod_pic: $(".d-flex .pimgs").attr("src"),
vod_remarks: $(".d-flex .grade:eq(1)").text().trim(),
vod_content: $(".d-flex p").text().trim(),
vod_play_data: [{
from: "注视影视",
media: media
}]
};
},
playerContent: function (flag, id, vipFlags) {
console.log(flag, id, unsafeWindow.mid);
localStorage.setItem('mobj' + unsafeWindow.mid, JSON.stringify({
video_index: window.location.hash.split("#").at(1),
video_time: 1
}));
return new Promise(function (resolve) {
_gotSrc = resolve;
}).then(async (playerSrc) => {
return await getPlay(playerSrc.src);
});
},
searchContent: function (key, quick, pg) {
const result = {
list: [],
page: pg,
pagecount: 0
};
return listVideos(result);
}
};
})();
$(unsafeWindow).on("load", async function () {
if (document.readyState === 'complete') {
const result = await GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(GMSpiderArgs.fName, JSON.stringify(result));
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
}
});
})();
+282
View File
@@ -0,0 +1,282 @@
// ==UserScript==
// @name hitv
// @namespace gmspider
// @version 2024.11.12
// @description Hi视频 GMSpider
// @author Luomo
// @match https://www.upfuhn.com/*
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/Spiders-Lib@main/lib/browser-extension-url-match-1.2.0.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/ajaxHooker-1.4.3.js
// @grant GM_setValue
// @grant GM_getValue
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
// GMSpiderArgs.fName = "homeContent";
// GMSpiderArgs.fArgs = [true];
GMSpiderArgs.fName = "searchContent";
GMSpiderArgs.fArgs = ["82", 2, true, {tag: "动作", y: "2024", o: "1", a: "大陆"}];
}
Object.freeze(GMSpiderArgs);
let hookConfigs = {
"homeContent": [
{
matcher: matchPattern("https://*/*/meta/*.json").assertValid(),
onResponseHook: function (response) {
let executed = false;
unsafeWindow.useNuxtApp().hook('link:prefetch', () => {
if (!executed) {
Array.from(document.querySelectorAll(".left-wrap .tab-box:nth-child(2) .swiper-slide span")).find(el => el.textContent === "全部").dispatchEvent(new Event("click"));
}
executed = true;
});
}
},
{
dataKey: "ys_video_sites", matcher: matchPattern("https://*/v1/ys_video_sites?*").assertValid()
}
],
"categoryContent": [{
matcher: matchPattern("https://*/*/meta/*.json").assertValid(),
onResponseHook: function (response) {
const extend = GMSpiderArgs.fArgs[3];
let tag = extend?.tag ?? "全部"
let executed = false;
unsafeWindow.useNuxtApp().hook('link:prefetch', () => {
if (!executed) {
Array.from(document.querySelectorAll(".left-wrap .tab-box:nth-child(2) .swiper-slide span"))
.find(el => el.textContent === tag).dispatchEvent(new Event("click"));
}
executed = true;
});
}
}, {
dataKey: "ys_video_sites",
matcher: matchPattern("https://*/v1/ys_video_sites?*").assertValid(),
onRequestHook: function (response) {
const page = GMSpiderArgs.fArgs[1];
const filter = GMSpiderArgs.fArgs[2];
const extend = GMSpiderArgs.fArgs[3];
const url = new URL(response.url);
const params = new URLSearchParams(url.search);
params.set("pn", page)
if (filter) {
params.set("a", extend?.a ?? "");
params.set("y", extend?.y ?? "");
params.set("o", extend?.o ?? 0);
}
url.search = params.toString();
response.url = url.toString();
}
}],
"detailContent": [{
dataKey: "meta",
matcher: matchPattern("https://*/*/meta/*.json").assertValid(),
}],
"searchContent": [{
dataKey: "meta",
matcher: matchPattern("https://*/*/meta/*.json").assertValid(),
}],
};
const GmSpider = (function () {
const categoryFilterCachePrefix = "category_";
const filterTag = {
key: "tag", name: "分类", value: []
};
const filterArea = {
key: "o", name: "地区", value: []
};
const filterYear = {
key: "y", name: "年份", value: []
};
const filterSort = {
key: "o",
name: "排序",
value: [{n: "综合", v: "0"}, {n: "最新", v: "2"}, {n: "最热", v: "1"}, {n: "评分", v: "5"},]
};
return {
homeContent: function (filter) {
//清理cookie
document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); });
let result = {
class: [{type_id: "85", type_name: "短剧"}, {type_id: "81", type_name: "电影"}, {
type_id: "82",
type_name: "电视剧"
}, {type_id: "83", type_name: "综艺"}, {type_id: "84", type_name: "动漫"},], filters: {}, list: []
};
document.querySelectorAll(".left-wrap .tab-box:nth-child(3) .swiper-slide span").forEach((filter) => {
filterArea.value.push({
n: filter.textContent, v: filter.textContent,
})
});
document.querySelectorAll(".left-wrap .tab-box:nth-child(4) .swiper-slide span").forEach((filter) => {
filterYear.value.push({
n: filter.textContent, v: filter.textContent,
})
});
result.class.forEach((category) => {
const categoryFilter = [];
const cacheFilter = localStorage.getItem(categoryFilterCachePrefix + category.type_id);
if (typeof cacheFilter !== "undefined" && cacheFilter !== null) {
categoryFilter.push(JSON.parse(cacheFilter));
}
categoryFilter.push(filterArea, filterYear, filterSort);
result.filters[category.type_id] = categoryFilter;
})
hookResult.ys_video_sites.data.data.forEach((media) => {
result.list.push({
vod_id: media.video_site_id,
vod_name: media.video_name,
vod_pic: media.video_vertical_url,
vod_remarks: "评分:" + media.score,
vod_year: media.years
})
});
return result;
}, categoryContent: function (tid, pg, filter, extend) {
let result = {
list: [], pagecount: Math.ceil(hookResult.ys_video_sites.data.total / 21)
};
document.querySelectorAll(".left-wrap .tab-box:nth-child(2) .swiper-slide span").forEach((filter) => {
filterTag.value.push({
n: filter.textContent, v: filter.textContent,
})
});
localStorage.setItem(categoryFilterCachePrefix + tid, JSON.stringify(filterTag));
hookResult.ys_video_sites.data.data.forEach((media) => {
result.list.push({
vod_id: media.video_site_id,
vod_name: media.video_name,
vod_pic: media.video_vertical_url,
vod_remarks: "评分:" + media.score,
vod_year: media.years
})
})
return result;
}, detailContent: function (ids) {
let playUrl = [];
let vod = {};
const nuxtData = JSON.parse(JSON.stringify(unsafeWindow.__NUXT__.data));
for (const [key, value] of Object.entries(nuxtData)) {
if (typeof (value.data?.ys_video_site) != "undefined") {
value.data.data.forEach((item) => {
playUrl.push({
name: item.series_num,
type: "finalUrl",
ext: {
header: {
"User-Agent": window.navigator.userAgent,
"Referer": window.location.href
},
url: item.video_url
}
})
})
const ysVideoSite = value.data.ys_video_site;
vod = {
vod_id: ysVideoSite.video_site_id,
vod_name: ysVideoSite.video_name,
vod_content: ysVideoSite.video_desc,
vod_year: ysVideoSite.years,
vod_area: ysVideoSite.area,
vod_actor: ysVideoSite.main_actor,
type_name: ysVideoSite.tag,
vod_play_data: [{
from: "Hi视频",
media: playUrl
}]
};
}
}
return vod;
}, searchContent: function (key, quick, pg) {
const result = {
list: [],
page: pg,
pagecount: 1
};
const nuxtData = JSON.parse(JSON.stringify(unsafeWindow.__NUXT__.data));
for (const [key, value] of Object.entries(nuxtData)) {
if (typeof (value.data?.first_video_series) != "undefined") {
if (value.data.first_video_series != null) {
const firstVideo = value.data.first_video_series
result.list.push({
vod_id: firstVideo.video_site_id,
vod_name: firstVideo.video_name,
vod_pic: firstVideo.video_vertical_url,
vod_remarks: firstVideo.tag,
vod_year: firstVideo.years
})
}
value.data.video_sites.forEach((video) => {
result.list.push({
vod_id: video.video_site_id,
vod_name: video.video_name,
vod_pic: video.video_vertical_url,
vod_remarks: video.tag,
vod_year: video.years
})
})
}
}
return result;
}
};
})();
let spiderExecuted = false;
let dataReadyCount = 0;
let hookResult = {};
ajaxHooker.hook(request => {
hookConfigs[GMSpiderArgs.fName].forEach((hookConfig) => {
if (typeof hookConfig.onRequestHook === "function" && hookConfig.matcher.match(request.url.startsWith("http") ? request.url : unsafeWindow.window.location.origin + request.url)) {
hookConfig.onRequestHook(request);
}
});
if (!spiderExecuted) {
let dataTodoCount = 0;
hookConfigs[GMSpiderArgs.fName].forEach((hookConfig) => {
if (typeof hookConfig.dataKey !== "undefined") {
if (hookConfig?.require !== false) {
dataTodoCount++;
}
}
if (hookConfig.matcher.match(request.url.startsWith("http") ? request.url : unsafeWindow.window.location.origin + request.url)) {
request.response = res => {
if (typeof hookConfig.onResponseHook === "function") {
hookConfig.onResponseHook(res);
}
if (typeof hookConfig.dataKey !== "undefined") {
if (hookConfig?.require !== false) {
dataReadyCount++;
}
let data = JSON.parse(res.text);
if (typeof data === 'object' && data) {
hookResult[hookConfig.dataKey] = data;
} else {
hookResult[hookConfig.dataKey] = res.text;
}
if (dataTodoCount === dataReadyCount) {
spiderExecuted = true;
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined' && spiderExecuted) {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
}
}
};
}
});
}
});
})();
+41
View File
@@ -0,0 +1,41 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: true,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 6]
}
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+44
View File
@@ -0,0 +1,44 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 5]
}
},
playerContent: {
OkPlayer: true
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+120
View File
@@ -0,0 +1,120 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "detailContent";
GMSpiderArgs.fArgs = [1];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
pageCountStyle: ".page-item-next",
homeContent: {
category: {
select: ".menu-item",
slice: [1, 6]
}
},
detailContent: {
customFunction: function (ids) {
let items = {};
$(".detail-box-main .detail-info-row").each(function () {
items[$(this).find(".detail-info-row-side").text().trim().replace("", "")] = $(this).find(".detail-info-row-main").text().trim();
});
let vodPlayData = [];
$(".episode-box-header .source-item").each(function (i) {
if ($(this).find(".source-item-label").text().trim() === "4K(高峰不卡)") {
return true;
}
let media = [];
$(`.episode-list:eq(${i}) .episode-item`).each(function () {
media.push({
name: $(this).text().trim(),
type: "webview",
ext: {
replace: {
playUrl: $(this).attr("href"),
}
}
});
})
vodPlayData.push({
from: $(this).find(".source-item-label").text().trim(),
media: media
})
})
return vod = {
vod_id: ids[0],
vod_name: $(".module-info-heading h1").text().trim(),
vod_pic: MacCmsGMSpiderTool.formatImgUrl($(".detail-box .detail-pic img").data("original") || $(".detail-box .detail-pic img").attr("src"), false, unsafeWindow?.RDUL[0]),
vod_director: items?.["导演"] || "",
vod_actor: items?.["演员"] || "",
vod_year: items?.["首映"] || "",
type_name: $(".detail-tags-item").map(function () {
return $(this).text().trim();
}).get().join(" "),
vod_content: $(".detail-box-main .detail-desc").text().trim(),
vod_play_data: vodPlayData
};
}
},
getVodList: function () {
let vodList = [];
$("a.v-item").each(function () {
let vodPic;
vodList.push({
vod_id: $(this).attr("href"),
vod_name: $(this).find(".v-item-title").text().trim(),
vod_pic: MacCmsGMSpiderTool.formatImgUrl($(this).find(".v-item-cover img").data("original") || $(this).find(".v-item-cover img").attr("src"), false, unsafeWindow?.RDUL[0]),
vod_remarks: $(this).find(".v-item-top-left").text().trim(),
vod_year: $(this).find(".v-item-bottom").text().trim()
})
});
return vodList;
},
getCategoryFilter: function () {
const filters = [];
$(".filter-row").each(function () {
const filter = {
key: "",
name: $(this).find(".filter-row-side").text().trim(),
value: []
}
$(this).find("a.filter-item").each(function () {
const params = $(this).attr("href").split(/[/.]/).at(2).split("-").slice(1);
filter.key = "index" + params.findIndex((element) => element.length > 0)
filter.value.push({
n: $(this).text().trim(),
v: params.find((element) => element.length > 0) || ""
})
})
filters.push(filter);
})
return filters;
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+1
View File
@@ -0,0 +1 @@
var il='jsjiami.com.v6',il_=['il'],lIIIl1ll=[il,'\x6f\x6b\x68\x74\x74\x70\x2f\x33\x2e\x31\x35','\x69\x6e\x64\x65\x78\x4f\x66','\x24\x24\x24','\x73\x70\x6c\x69\x74','\x74\x72\x69\x6d','\x26\x26\x26','\x3a\x2f\x2f','\x6c\x6f\x67','\x70\x69\x63\x55\x72\x6c\x3a\x20','\x72\x65\x70\x6c\x61\x63\x65','\x70\x75\x73\x68','\x2f\x66\x69\x6c\x65\x2f\x6c\x69\x76\x65\x73\x6f\x75\x72\x63\x65\x6c\x69\x73\x74','\x2f\x6c\x69\x76\x65\x73\x6f\x75\x72\x63\x65\x6c\x69\x73\x74','\x47\x45\x54','\x70\x61\x72\x73\x65','\x63\x6f\x6e\x74\x65\x6e\x74','\x73\x75\x62\x73\x74\x72\x69\x6e\x67','\x6c\x61\x73\x74\x49\x6e\x64\x65\x78\x4f\x66','\x6e\x61\x6d\x65','\x75\x72\x6c','\x3d\x3d\x3d\x3d\x20\x3e\x3e\x3e\x20','\x73\x74\x72\x69\x6e\x67\x69\x66\x79','\x65\x78\x65\x63','\x74\x65\x73\x74','\x6d\x61\x74\x63\x68','\x63\x68\x61\x6e\x6e\x65\x6c','\x2c\x23\x67\x65\x6e\x72\x65\x23\x0a','\x75\x72\x6c\x73','\x64\x61\x74\x61','\x64\x61\x74\x61\x6c\x69\x73\x74','\x70\x72\x6f\x76','\x6c\x69\x73\x74','\x2d\x2d\x2d','\x6c\x69\x6e\x65','\x77\x65\x62\x50\x69\x63\x55\x72\x6c\x3a\x20','\x23\x45\x58\x54\x4d\x33\x55','\x22\x63\x68\x61\x6e\x6e\x65\x6c\x22','\x22\x75\x72\x6c\x73\x22','\x22\x64\x61\x74\x61\x6c\x69\x73\x74\x22','\x6c\x65\x6e\x67\x74\x68','\x23\x67\x65\x6e\x72\x65\x23','\x7b\x6e\x61\x6d\x65\x7d','\x7b\x63\x61\x74\x65\x7d','\u76f4\u64ad\u5217\u8868','\x6e\x75\x6c\x6c','\x74\x79\x70\x65\x5f\x69\x64','\x76\x6f\x64\x5f\x70\x6c\x61\x79\x5f\x75\x72\x6c','\x68\x61\x73\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79','\x6a\x6f\x69\x6e','\x76\x6f\x64\x5f\x70\x6c\x61\x79\x5f\x66\x72\x6f\x6d','\x6a\x43\x50\x73\x4e\x6a\x77\x69\x4a\x61\x51\x6d\x69\x2e\x63\x6f\x4e\x4f\x6d\x47\x72\x2e\x76\x56\x36\x41\x46\x67\x79\x74\x74\x3d\x3d'];function Ii1l1III(_0x3b13df,_0x346a54){_0x3b13df=~~'0x'['concat'](_0x3b13df['slice'](0x0));var _0x4db44b=lIIIl1ll[_0x3b13df];return _0x4db44b;};(function(_0x209161,_0x5eaa4a){var _0x42ecdf=0x0;for(_0x5eaa4a=_0x209161['shift'](_0x42ecdf>>0x2);_0x5eaa4a&&_0x5eaa4a!==(_0x209161['pop'](_0x42ecdf>>0x3)+'')['replace'](/[CPNwJQNOGrVAFgytt=]/g,'');_0x42ecdf++){_0x42ecdf=_0x42ecdf^0x127efd;}}(lIIIl1ll,Ii1l1III));let headers={'User-Agent':Ii1l1III('0')};let classes=[];let cates={};let picUrl='';let webPaths={};function init(IiIIi1i){let i1Ii11I1='';if(IiIIi1i[Ii1l1III('1')](Ii1l1III('2'))>0x0){i1Ii11I1=IiIIi1i[Ii1l1III('3')](Ii1l1III('2'))[0x0][Ii1l1III('4')]();IiIIi1i=IiIIi1i[Ii1l1III('3')](Ii1l1III('2'))[0x1][Ii1l1III('4')]();}if(IiIIi1i[Ii1l1III('1')](Ii1l1III('5'))>0x0){picUrl=IiIIi1i[Ii1l1III('3')](Ii1l1III('5'))[0x1][Ii1l1III('4')]();if(picUrl[Ii1l1III('1')](Ii1l1III('6'))<0x0){picUrl=i1Ii11I1+picUrl;}IiIIi1i=IiIIi1i[Ii1l1III('3')](Ii1l1III('5'))[0x0][Ii1l1III('4')]();}console[Ii1l1III('7')](Ii1l1III('8')+picUrl);let IIlIlI1I=IiIIi1i[Ii1l1III('3')]('\x23');for(const IlII1I1 of IIlIlI1I){if(IlII1I1[Ii1l1III('1')]('\x24')>0x0){let illIl111=IlII1I1;let Ill1iIi=IlII1I1[Ii1l1III('3')]('\x24')[0x0];if(illIl111[Ii1l1III('1')](Ii1l1III('6'))<0x0){illIl111=illIl111[Ii1l1III('9')]('\x24','\x24'+i1Ii11I1);}classes[Ii1l1III('a')]({'type_id':illIl111,'type_name':Ill1iIi[Ii1l1III('9')]('\x21\x21','')});}else{let II1lIlli=IlII1I1;if(II1lIlli[Ii1l1III('1')](Ii1l1III('6'))<0x0){II1lIlli=i1Ii11I1+II1lIlli;}II1lIlli=II1lIlli[Ii1l1III('9')](Ii1l1III('b'),Ii1l1III('c'));let Illi11ll=req(II1lIlli,{'\x6d\x65\x74\x68\x6f\x64':Ii1l1III('d'),'\x68\x65\x61\x64\x65\x72\x73':headers});try{let l1lIiill=JSON[Ii1l1III('e')](Illi11ll[Ii1l1III('f')]);let lillI11l=II1lIlli[Ii1l1III('10')](0x0,II1lIlli[Ii1l1III('11')]('\x2f')+0x1);for(const i1iilII1 of l1lIiill){let Iillil=i1iilII1[Ii1l1III('12')];let lI1iIl=i1iilII1[Ii1l1III('13')];let illIl111=Iillil+'\x24'+(lI1iIl[Ii1l1III('1')](Ii1l1III('6'))<0x0?lillI11l:'')+lI1iIl;classes[Ii1l1III('a')]({'type_id':illIl111,'type_name':Iillil[Ii1l1III('9')]('\x21\x21','')});webPaths[illIl111]=lillI11l;}}catch(Ii1Ii11){console[Ii1l1III('7')](Ii1l1III('14')+Ii1Ii11);}}}}function home(I1iiIiIl){return JSON[Ii1l1III('15')]({'class':classes,'filters':null});}function parseM3u(iIi1Ii1I,I1IlIIIi){let iI1iiIii={};let iiI11111=/(#EXTINF:.+?),([^,]+?)\s*\n(.+?)\s*\n/g;let ii1iilil=null;while((ii1iilil=iiI11111[Ii1l1III('16')](iIi1Ii1I))!=null){let lllli1iI=ii1iilil[0x1];let il1Ili1I=ii1iilil[0x2];let liIlll1l=ii1iilil[0x3];if(il1Ili1I==null||liIlll1l==null||il1Ili1I==''||liIlll1l==''){continue;}il1Ili1I=il1Ili1I[Ii1l1III('4')]();liIlll1l=liIlll1l[Ii1l1III('4')]();let IiI1lI1l=I1IlIIIi;let ilIl1i1i=/group-title="(.*?)"/;if(ilIl1i1i[Ii1l1III('17')](lllli1iI)){IiI1lI1l=lllli1iI[Ii1l1III('18')](ilIl1i1i)[0x1];}if(!iI1iiIii[IiI1lI1l]){iI1iiIii[IiI1lI1l]=[];}iI1iiIii[IiI1lI1l][Ii1l1III('a')](il1Ili1I+'\x2c'+liIlll1l);}let ll11III1='';for(const li1Ili in iI1iiIii){ll11III1+=li1Ili+'\x0a';let IlIil1ll=iI1iiIii[li1Ili];for(const li1iI11 of IlIil1ll){ll11III1+=li1iI11+'\x0a';}}return ll11III1;}function parseFm(IliiIl1I){let lliiI1i1='';let Iii1ll=JSON[Ii1l1III('e')](IliiIl1I);for(const i1lIlli1 of Iii1ll){let I111Il1l=i1lIlli1[Ii1l1III('12')];let ilI11li=i1lIlli1[Ii1l1III('19')];lliiI1i1+=I111Il1l+Ii1l1III('1a');for(const iiilI1iI of ilI11li){let I11111l1=iiilI1iI[Ii1l1III('12')];let IlI1l1I1=iiilI1iI[Ii1l1III('1b')];for(const l1II1lll of IlI1l1I1){lliiI1i1+=I11111l1+'\x2c'+l1II1lll+'\x0a';}}}return lliiI1i1;}function parseLu(iIliI1lI){let IIlilI1i='';let I11ilI1i=JSON[Ii1l1III('e')](iIliI1lI)[Ii1l1III('1c')];for(const i1Ii1l1 of I11ilI1i[Ii1l1III('1d')]){let I11111l=i1Ii1l1[Ii1l1III('1e')];let IiIiii1l=i1Ii1l1[Ii1l1III('1f')];IIlilI1i+=I11111l+Ii1l1III('1a');for(const l1111lI of IiIiii1l){let lIlI1iI=l1111lI[Ii1l1III('12')];let ll11i1II=l1111lI[Ii1l1III('1b')];for(const Iliilii of ll11i1II){IIlilI1i+=lIlI1iI+Ii1l1III('20')+Iliilii[Ii1l1III('21')]+'\x2c'+Iliilii[Ii1l1III('13')]+'\x0a';}}}return IIlilI1i;}function getCateData(IliI1i){let iI1I1I1I=picUrl;if(IliI1i[Ii1l1III('1')](Ii1l1III('5'))>0x0){iI1I1I1I=IliI1i[Ii1l1III('3')](Ii1l1III('5'))[0x1][Ii1l1III('4')]();if(iI1I1I1I[Ii1l1III('1')](Ii1l1III('6'))<0x0&&webPaths[IliI1i]){iI1I1I1I=webPaths[IliI1i]+iI1I1I1I;}IliI1i=IliI1i[Ii1l1III('3')](Ii1l1III('5'))[0x0][Ii1l1III('4')]();}console[Ii1l1III('7')](Ii1l1III('22')+iI1I1I1I);let ll1iIiiI=IliI1i[Ii1l1III('3')]('\x24')[0x1];let i1I1l1i=IliI1i[Ii1l1III('3')]('\x24')[0x0];if(!cates[IliI1i]){cates[IliI1i]=[];let iIl11Iii=headers;if(ll1iIiiI[Ii1l1III('1')]('\x7c')>0x0){let ii111I1I=decodeURIComponent(ll1iIiiI[Ii1l1III('3')]('\x7c')[0x1]);ll1iIiiI=ll1iIiiI[Ii1l1III('3')]('\x7c')[0x0];for(const II1Ii1l of ii111I1I[Ii1l1III('3')]('\x26')){if(II1Ii1l[Ii1l1III('1')]('\x3d')>0x0){let lI1lliii=II1Ii1l[Ii1l1III('3')]('\x3d')[0x0];let I11Iii1i=II1Ii1l[Ii1l1III('3')]('\x3d')[0x1];iIl11Iii[lI1lliii]=I11Iii1i;}}}let I111lilI=req(ll1iIiiI,{'\x6d\x65\x74\x68\x6f\x64':Ii1l1III('d'),'\x68\x65\x61\x64\x65\x72\x73':iIl11Iii});I111lilI=I111lilI[Ii1l1III('f')][Ii1l1III('4')]();if(I111lilI[Ii1l1III('1')](Ii1l1III('23'))>=0x0){I111lilI=parseM3u(I111lilI,i1I1l1i);}else if(I111lilI[Ii1l1III('1')](Ii1l1III('24'))>0x0&&I111lilI[Ii1l1III('1')](Ii1l1III('25'))>0x0){I111lilI=parseFm(I111lilI);}else if(I111lilI[Ii1l1III('1')](Ii1l1III('26'))>0x0&&I111lilI[Ii1l1III('1')](Ii1l1III('25'))>0x0){I111lilI=parseLu(I111lilI);}let li1IiiII=(i1I1l1i+'\x0a'+I111lilI[Ii1l1III('9')]('\x0d',''))[Ii1l1III('3')]('\x0a');let lli11iI=i1I1l1i;let IiiIIiIi=null;let iiiI1l='';for(let i1ii1IIl=0x0;i1ii1IIl<li1IiiII[Ii1l1III('27')];i1ii1IIl++){let lIliIii=li1IiiII[i1ii1IIl][Ii1l1III('9')](/\s+/g,'');if(lIliIii!=''&&lIliIii[Ii1l1III('1')](Ii1l1III('6'))<0x0&&(lIliIii[Ii1l1III('1')]('\x2c')<0x0||lIliIii[Ii1l1III('1')](Ii1l1III('28'))>0x0)){if(iiiI1l!=''){let ilIIIl=iI1I1I1I[Ii1l1III('9')](Ii1l1III('29'),encodeURIComponent(lli11iI))[Ii1l1III('9')](Ii1l1III('2a'),encodeURIComponent(i1I1l1i));let ilI1ilI=ilIIIl[Ii1l1III('1')]('\x3c');let iili1I1i=ilIIIl[Ii1l1III('11')]('\x3e');if(ilI1ilI>-0x1&&iili1I1i>ilI1ilI){let I11Ilili=ilIIIl[Ii1l1III('10')](ilI1ilI,iili1I1i+0x1);let I1liliII=new RegExp(I11Ilili[Ii1l1III('9')](/<|>/g,''));let lii11liI=lli11iI[Ii1l1III('9')](I1liliII,function(Ili1lIi1,iiliII1l){return iiliII1l;});ilIIIl=ilIIIl[Ii1l1III('9')](I11Ilili,lii11liI);console[Ii1l1III('7')](lli11iI+'\x2c\x20'+ilIIIl);}let IiiIIiIi={'vod_id':IliI1i+Ii1l1III('2')+cates[IliI1i][Ii1l1III('27')],'vod_name':lli11iI,'vod_pic':ilIIIl,'vod_remarks':'','type_name':Ii1l1III('2b'),'vod_year':'','vod_area':'','vod_actor':'','vod_director':'','vod_content':'','vod_play_from':i1I1l1i,'vod_play_url':iiiI1l};cates[IliI1i][Ii1l1III('a')](IiiIIiIi);}lli11iI=lIliIii[Ii1l1III('3')]('\x2c')[0x0][Ii1l1III('4')]();iiiI1l='';}else if(lIliIii[Ii1l1III('1')]('\x2c')>0x0&&/http|rtmp|rtsp|rsp/[Ii1l1III('17')](lIliIii)){let l1iiI1ii=lIliIii[Ii1l1III('3')]('\x2c');if(iiiI1l!=''){iiiI1l+='\x23';}iiiI1l+=l1iiI1ii[0x0][Ii1l1III('4')]()+'\x24'+l1iiI1ii[0x1][Ii1l1III('4')]();}}if(iiiI1l!=''){let II1Iliil=iI1I1I1I[Ii1l1III('9')](Ii1l1III('29'),encodeURIComponent(lli11iI))[Ii1l1III('9')](Ii1l1III('2a'),encodeURIComponent(i1I1l1i));let ilI1ilI=II1Iliil[Ii1l1III('1')]('\x3c');let iili1I1i=II1Iliil[Ii1l1III('11')]('\x3e');if(ilI1ilI>-0x1&&iili1I1i>ilI1ilI){let I11Ilili=II1Iliil[Ii1l1III('10')](ilI1ilI,iili1I1i+0x1);let I1liliII=new RegExp(I11Ilili[Ii1l1III('9')](/<|>/g,''));let lii11liI=I1liliII[Ii1l1III('17')](lli11iI)?lli11iI[Ii1l1III('18')](I1liliII)[0x1]:Ii1l1III('2c');II1Iliil=II1Iliil[Ii1l1III('9')](I11Ilili,lii11liI);}let IiiIIiIi={'vod_id':IliI1i+Ii1l1III('2')+cates[IliI1i][Ii1l1III('27')],'vod_name':lli11iI,'vod_pic':II1Iliil,'vod_remarks':'','type_name':Ii1l1III('2b'),'vod_year':'','vod_area':'','vod_actor':'','vod_director':'','vod_content':'','vod_play_from':i1I1l1i,'vod_play_url':iiiI1l};cates[IliI1i][Ii1l1III('a')](IiiIIiIi);}}return cates[IliI1i];}function homeVod(liIIlIl1){let iIl1IIii=getCateData(classes[0x0][Ii1l1III('2d')]);let I1l1iil=JSON[Ii1l1III('15')]({'list':iIl1IIii});return I1l1iil;}function category(I1l1i1Ii,l1IiiIli,IIi1Illi,lilIliIl){let IIi1i1ll=[];if(l1IiiIli==0x1){IIi1i1ll=getCateData(I1l1i1Ii);}let iIiiIi1i=JSON[Ii1l1III('15')]({'list':IIi1i1ll});return iIiiIi1i;}function detail(lIl11iii){let I1IIIil=lIl11iii[Ii1l1III('3')](Ii1l1III('2'));let liiiil1i=I1IIIil[0x0];let l1l111II=liiiil1i[Ii1l1III('3')]('\x24')[0x0];let Il1li11i=parseInt(I1IIIil[0x1]);let Iill11Ii=getCateData(liiiil1i)[Il1li11i];console[Ii1l1III('7')](JSON[Ii1l1III('15')](Iill11Ii));if(l1l111II[Ii1l1III('1')]('\x21\x21')>=0x0){l1l111II=l1l111II[Ii1l1III('9')]('\x21\x21','');const ii1l1iil=Iill11Ii[Ii1l1III('2e')][Ii1l1III('3')]('\x23');console[Ii1l1III('7')](JSON[Ii1l1III('15')](ii1l1iil));let i1Ili1I={};let IIIllli1={};for(const i1IiIlIl of ii1l1iil){let Ill1iii1=i1IiIlIl[Ii1l1III('3')]('\x24')[0x0];let IIiIII11=l1l111II;if(Ill1iii1[Ii1l1III('1')](Ii1l1III('20'))>0x0){IIiIII11=Ill1iii1[Ii1l1III('3')](Ii1l1III('20'))[0x1];Ill1iii1=Ill1iii1[Ii1l1III('3')](Ii1l1III('20'))[0x0];}if(!i1Ili1I[Ii1l1III('2f')](Ill1iii1)){i1Ili1I[Ill1iii1]=0x1;}else{i1Ili1I[Ill1iii1]++;}IIiIII11=l1l111II+(i1Ili1I[Ill1iii1]>0x1?'\x20'+i1Ili1I[Ill1iii1]:'');if(!IIIllli1[Ii1l1III('2f')](IIiIII11)){IIIllli1[IIiIII11]=[];}IIIllli1[IIiIII11][Ii1l1III('a')](Ill1iii1+'\x24'+i1IiIlIl[Ii1l1III('3')]('\x24')[0x1]);}let III1i1ii=[];let iii1lIIi=[];for(let iliI1I1i in IIIllli1){III1i1ii[Ii1l1III('a')](iliI1I1i);iii1lIIi[Ii1l1III('a')](IIIllli1[iliI1I1i][Ii1l1III('30')]('\x23'));}Iill11Ii[Ii1l1III('31')]=III1i1ii[Ii1l1III('30')](Ii1l1III('2'));Iill11Ii[Ii1l1III('2e')]=iii1lIIi[Ii1l1III('30')](Ii1l1III('2'));}return JSON[Ii1l1III('15')]({'list':[Iill11Ii]});}function play(l1llIIii,illiiIII,lIIIiIiI){return JSON[Ii1l1III('15')]({'parse':0x0,'url':illiiIII});}function search(I1lll,lI1iiIII){return null;}__JS_SPIDER__={'\x69\x6e\x69\x74':init,'\x68\x6f\x6d\x65':home,'\x68\x6f\x6d\x65\x56\x6f\x64':homeVod,'\x63\x61\x74\x65\x67\x6f\x72\x79':category,'\x64\x65\x74\x61\x69\x6c':detail,'\x70\x6c\x61\x79':play,'\x73\x65\x61\x72\x63\x68':search};;il='jsjiami.com.v6';
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+eZvuW/meaXoOaenFvlrphdJywKICAgIGhvc3Q6ICdodHRwczovL3BpYW5rdS5hcGkuJTZkJTY3JTc0JTc2LmNvbScsCiAgICBob21lVXJsOiAnJywKICAgIC8vIHNlYXJjaFVybDogJ2h0dHBzOi8vbW9iaWxlc28uYnouJTZkJTY3JTc0JTc2LmNvbS9wYy9zZWFyY2gvdjE/cT0qKiZwbj1meXBhZ2UmcGM9MTAnLAogICAgLy8g5paw54mI5o6l5Y+j5pCc57Si5Y+Y5oiQdjLlubbkuJTliqDkuobpqozor4HvvIzom4vnlrwKICAgIC8vIHNlYXJjaFVybDogJ2h0dHBzOi8vbW9iaWxlc28uYnoubWd0di5jb20vcGMvc2VhcmNoL3YyP2FsbG93ZWRSQz0xJnNyYz1tZ3R2JmRpZD1jZjAzYjk1OS02OTQ1LTRjYjYtYmNiMy04ODc2MjQ1OTM1NGQmdGltZXN0YW1wPTIwMjQtMDYtMjFUMTUlM0E1MiUzQTU1WiZzaWduVmVyc2lvbj0xJnNpZ25Ob25jZT04ZGFlNjdhMWZhZmM0YmRhOTg0ZWM4ZGViNDc2NjZhZCZxPSoqJnBuPWZ5cGFnZSZwYz0xMCZjb3JyPTEmX3N1cHBvcnQ9MTAwMDAwMDAmc2lnbmF0dXJlPTRlMjdmZGRjZDJhMWE2NmQ2YzE3NjRlZDZiNzRiYWI3JywKICAgIC8vIOeUqOaJi+acuueahOWQp++8jOaQnuS4jeWumui/meS4qgogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9tb2JpbGVzby5iei4lNmQlNjclNzQlNzYuY29tL21zaXRlL3NlYXJjaC92Mj9xPSoqJnBuPWZ5cGFnZSZwYz0xMCcsCiAgICBkZXRhaWxVcmw6ICdodHRwczovL3Bjd2ViLmFwaS5tZ3R2LmNvbS9lcGlzb2RlL2xpc3Q/cGFnZT0xJnNpemU9NTAmdmlkZW9faWQ9ZnlpZCcsCiAgICBzZWFyY2hhYmxlOiAyLAogICAgcXVpY2tTZWFyY2g6IDAsCiAgICBmaWx0ZXJhYmxlOiAxLAogICAgbXVsdGk6IDEsCiAgICAvLyDliIbnsbvpk77mjqVmeXBhZ2Xlj4LmlbDmlK/mjIEx5LiqKCnooajovr7lvI8KICAgIC8vIGh0dHBzOi8vd3d3Lm1ndHYuY29tL2xpYi8zP2xhc3RwPWxpc3RfaW5kZXgma2luZD1hMSZ5ZWFyPWFsbCZjaGFyZ2VJbmZvPWExJnNvcnQ9YzIKICAgIHVybDogJy9yaWRlci9saXN0L3Bjd2ViL3YzP3BsYXRmb3JtPXBjd2ViJmNoYW5uZWxJZD1meWNsYXNzJnBuPWZ5cGFnZSZwYz04MCZodWRvbmc9MSZfc3VwcG9ydD0xMDAwMDAwMCZraW5kPWExJmFyZWE9YTEnLAogICAgZmlsdGVyX3VybDogJ3llYXI9e3tmbC55ZWFyIG9yICJhbGwifX0mc29ydD17e2ZsLnNvcnQgb3IgImFsbCJ9fSZjaGFyZ2VJbmZvPXt7ZmwuY2hhcmdlSW5mbyBvciAiYWxsIn19JywKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScKICAgIH0sCiAgICB0aW1lb3V0OiA1MDAwLAogICAgY2xhc3NfbmFtZTogJ+eUteinhuWJpybnlLXlvbEm57u86Im6JuWKqOa8qybnuqrlvZXniYcm5pWZ6IKyJuWwkeWEvycsCiAgICBjbGFzc191cmw6ICcyJjMmMSY1MCY1MSYxMTUmMTAnLAogICAgZmlsdGVyOiB7CiAgICAgICAgIjEiOiBbewogICAgICAgICAgICAia2V5IjogImNoYXJnZUluZm8iLAogICAgICAgICAgICAibmFtZSI6ICLku5jotLnnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YWN6LS5IiwKICAgICAgICAgICAgICAgICJ2IjogImIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJ2aXAiLAogICAgICAgICAgICAgICAgInYiOiAiYjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIlZJUOeUqOWIuCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5LuY6LS554K55pKtIiwKICAgICAgICAgICAgICAgICJ2IjogImI0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICJjMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogImMyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnn6XkuY7pq5jliIYiLAogICAgICAgICAgICAgICAgInYiOiAiYzQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA0IgogICAgICAgICAgICB9XQogICAgICAgIH1dLAogICAgICAgICIyIjogW3sKICAgICAgICAgICAgImtleSI6ICJjaGFyZ2VJbmZvIiwKICAgICAgICAgICAgIm5hbWUiOiAi5LuY6LS557G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWFjei0uSIsCiAgICAgICAgICAgICAgICAidiI6ICJiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAidmlwIiwKICAgICAgICAgICAgICAgICJ2IjogImIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJWSVDnlKjliLgiLAogICAgICAgICAgICAgICAgInYiOiAiYjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS7mOi0ueeCueaSrSIsCiAgICAgICAgICAgICAgICAidiI6ICJiNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiYzEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICJjMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi55+l5LmO6auY5YiGIiwKICAgICAgICAgICAgICAgICJ2IjogImM0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDExIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDciLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNCIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAiMyI6IFt7CiAgICAgICAgICAgICJrZXkiOiAiY2hhcmdlSW5mbyIsCiAgICAgICAgICAgICJuYW1lIjogIuS7mOi0ueexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiYWxsIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhY3otLkiLAogICAgICAgICAgICAgICAgInYiOiAiYjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogInZpcCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiVklQ55So5Yi4IiwKICAgICAgICAgICAgICAgICJ2IjogImIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLku5jotLnngrnmkq0iLAogICAgICAgICAgICAgICAgInYiOiAiYjQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInNvcnQiLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5pawIiwKICAgICAgICAgICAgICAgICJ2IjogImMxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDng60iLAogICAgICAgICAgICAgICAgInYiOiAiYzIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuefpeS5jumrmOWIhiIsCiAgICAgICAgICAgICAgICAidiI6ICJjNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAieWVhciIsCiAgICAgICAgICAgICJuYW1lIjogIuW5tOS7oyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiYWxsIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDExIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgIjUwIjogW3sKICAgICAgICAgICAgImtleSI6ICJjaGFyZ2VJbmZvIiwKICAgICAgICAgICAgIm5hbWUiOiAi5LuY6LS557G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWFjei0uSIsCiAgICAgICAgICAgICAgICAidiI6ICJiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAidmlwIiwKICAgICAgICAgICAgICAgICJ2IjogImIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJWSVDnlKjliLgiLAogICAgICAgICAgICAgICAgInYiOiAiYjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS7mOi0ueeCueaSrSIsCiAgICAgICAgICAgICAgICAidiI6ICJiNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiYzEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICJjMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi55+l5LmO6auY5YiGIiwKICAgICAgICAgICAgICAgICJ2IjogImM0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDExIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDciLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNCIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAiNTEiOiBbewogICAgICAgICAgICAia2V5IjogImNoYXJnZUluZm8iLAogICAgICAgICAgICAibmFtZSI6ICLku5jotLnnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YWN6LS5IiwKICAgICAgICAgICAgICAgICJ2IjogImIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJ2aXAiLAogICAgICAgICAgICAgICAgInYiOiAiYjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIlZJUOeUqOWIuCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5LuY6LS554K55pKtIiwKICAgICAgICAgICAgICAgICJ2IjogImI0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICJjMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogImMyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnn6XkuY7pq5jliIYiLAogICAgICAgICAgICAgICAgInYiOiAiYzQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA0IgogICAgICAgICAgICB9XQogICAgICAgIH1dLAogICAgICAgICIxMTUiOiBbewogICAgICAgICAgICAia2V5IjogImNoYXJnZUluZm8iLAogICAgICAgICAgICAibmFtZSI6ICLku5jotLnnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YWN6LS5IiwKICAgICAgICAgICAgICAgICJ2IjogImIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJ2aXAiLAogICAgICAgICAgICAgICAgInYiOiAiYjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIlZJUOeUqOWIuCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5LuY6LS554K55pKtIiwKICAgICAgICAgICAgICAgICJ2IjogImI0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICJjMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogImMyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnn6XkuY7pq5jliIYiLAogICAgICAgICAgICAgICAgInYiOiAiYzQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA0IgogICAgICAgICAgICB9XQogICAgICAgIH1dCiAgICB9LAogICAgbGltaXQ6IDIwLAogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIGxhenk6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgbGV0IGFwaSA9ICIiICsgaW5wdXQuc3BsaXQoIj8iKVswXTsKICAgICAgICAgICAgY29uc29sZS5sb2coYXBpKTsKICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gZmV0Y2goYXBpLCB7CiAgICAgICAgICAgICAgICBtZXRob2Q6ICdnZXQnLAogICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ29raHR0cC8zLjE0LjknLAogICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbGV0IGJhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKICAgICAgICAgICAgaWYgKGJhdGEudXJsLmluY2x1ZGVzKCJtZ3R2IikpIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gewogICAgICAgICAgICAgICAgICAgIHBhcnNlOiAwLAogICAgICAgICAgICAgICAgICAgIHVybDogYmF0YS51cmwsCiAgICAgICAgICAgICAgICAgICAgang6IDAsCiAgICAgICAgICAgICAgICAgICAgZGFubWFrdTogIiIgKyBpbnB1dC5zcGxpdCgiPyIpWzBdCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW5wdXQgPSB7CiAgICAgICAgICAgICAgICAgICAgcGFyc2U6IDAsCiAgICAgICAgICAgICAgICAgICAgdXJsOiBpbnB1dC5zcGxpdCgiPyIpWzBdLAogICAgICAgICAgICAgICAgICAgIGp4OiAxLAogICAgICAgICAgICAgICAgICAgIGRhbm1ha3U6ICIiICsgaW5wdXQuc3BsaXQoIj8iKVswXQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBpbnB1dCA9IHsKICAgICAgICAgICAgICAgIHBhcnNlOiAwLAogICAgICAgICAgICAgICAgdXJsOiBpbnB1dC5zcGxpdCgiPyIpWzBdLAogICAgICAgICAgICAgICAgang6IDEsCiAgICAgICAgICAgICAgICBkYW5tYWt1OiAiIiArIGlucHV0LnNwbGl0KCI/IilbMF0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9KSwKICAgIC8vIOaJi+WKqOiwg+eUqOino+aekOivt+axgmpzb27nmoR1cmws5q2kbGF6eeS4jeaWueS+vwogICAgLy8gbGF6eTonanM6cHJpbnQoaW5wdXQpO2ZldGNoX3BhcmFtcy5oZWFkZXJzWyJ1c2VyLWFnZW50Il09TU9CSUxFX1VBO2xldCBodG1sPXJlcXVlc3QoaW5wdXQpO2xldCBydXJsPWh0bWwubWF0Y2goL3dpbmRvd1xcLm9wZW5cXChcJyguKj8pXCcsLylbMV07cnVybD11cmxEZWFsKHJ1cmwpO2lucHV0PXtwYXJzZToxLHVybDpydXJsfTsnLAogICAgLy8g5o6o6I2QOicubGlzdF9pdGVtO2ltZyYmYWx0O2ltZyYmc3JjO2EmJlRleHQ7YSYmZGF0YS1mbG9hdCcsCiAgICDkuIDnuqc6ICdqc29uOmRhdGEuaGl0RG9jczt0aXRsZTtpbWc7dXBkYXRlSW5mb3x8cmlnaHRDb3JuZXIudGV4dDtwbGF5UGFydElkJywKICAgIC8vIOS4gOe6pzonanNvbjpkYXRhLmhpdERvY3M7dGl0bGU7aW1nO3VwZGF0ZUluZm87cGxheVBhcnRJZCcsCiAgICDkuoznuqc6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgZmV0Y2hfcGFyYW1zLmhlYWRlcnMuUmVmZXJlciA9ICJodHRwczovL3d3dy5tZ3R2LmNvbSI7CiAgICAgICAgZmV0Y2hfcGFyYW1zLmhlYWRlcnNbIlVzZXItQWdlbnQiXSA9IE1PQklMRV9VQTsKICAgICAgICBwZGZoID0ganNwLnBkZmg7CiAgICAgICAgcGRmYSA9IGpzcC5wZGZhOwogICAgICAgIHBkID0ganNwLnBkOwogICAgICAgIFZPRCA9IHt9OwogICAgICAgIGxldCBkID0gW107CiAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KGlucHV0KTsKICAgICAgICBsZXQganNvbiA9IEpTT04ucGFyc2UoaHRtbCk7CiAgICAgICAgbGV0IGhvc3QgPSAiaHR0cHM6Ly93d3cubWd0di5jb20iOwogICAgICAgIGxldCBvdXJsID0ganNvbi5kYXRhLmxpc3QubGVuZ3RoID4gMCA/IGpzb24uZGF0YS5saXN0WzBdLnVybCA6IGpzb24uZGF0YS5zZXJpZXNbMF0udXJsOwogICAgICAgIGlmICghL15odHRwLy50ZXN0KG91cmwpKSB7CiAgICAgICAgICAgIG91cmwgPSBob3N0ICsgb3VybAogICAgICAgIH0KICAgICAgICBmZXRjaF9wYXJhbXMuaGVhZGVyc1siVXNlci1BZ2VudCJdID0gTU9CSUxFX1VBOwogICAgICAgIGh0bWwgPSByZXF1ZXN0KG91cmwpOwogICAgICAgIGlmIChodG1sLmluY2x1ZGVzKCJ3aW5kb3cubG9jYXRpb24gPSIpKSB7CiAgICAgICAgICAgIHByaW50KCLlvIDlp4vojrflj5ZvdXJsIik7CiAgICAgICAgICAgIG91cmwgPSBwZGZoKGh0bWwsICJtZXRhW2h0dHAtZXF1aXY9cmVmcmVzaF0mJmNvbnRlbnQiKS5zcGxpdCgidXJsPSIpWzFdOwogICAgICAgICAgICBwcmludCgi6I635Y+W5Yiwb3VybDoiICsgb3VybCk7CiAgICAgICAgICAgIGh0bWwgPSByZXF1ZXN0KG91cmwpCiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGxldCBkZXRhaWxzID0gcGRmaChodG1sLCAiLm0tZGV0YWlscyYmSHRtbCIpLnJlcGxhY2UoL2gxPi8sICJoNj4iKS5yZXBsYWNlKC9kaXYvZywgImJyIik7CiAgICAgICAgICAgIHByaW50KGRldGFpbHMpOwogICAgICAgICAgICBsZXQgYWN0b3IgPSAiIiwKICAgICAgICAgICAgICAgIGRpcmVjdG9yID0gIiIsCiAgICAgICAgICAgICAgICB0aW1lID0gIiI7CiAgICAgICAgICAgIGlmICgv5pKt5Ye65pe26Ze0Ly50ZXN0KGRldGFpbHMpKSB7CiAgICAgICAgICAgICAgICBhY3RvciA9IHBkZmgoaHRtbCwgInA6ZXEoNSkmJlRleHQiKS5zdWJzdHIoMCwgMjUpOwogICAgICAgICAgICAgICAgZGlyZWN0b3IgPSBwZGZoKGh0bWwsICJwOmVxKDQpJiZUZXh0Iik7CiAgICAgICAgICAgICAgICB0aW1lID0gcGRmaChodG1sLCAicDplcSgzKSYmVGV4dCIpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBhY3RvciA9IHBkZmgoaHRtbCwgInA6ZXEoNCkmJlRleHQiKS5zdWJzdHIoMCwgMjUpOwogICAgICAgICAgICAgICAgZGlyZWN0b3IgPSBwZGZoKGh0bWwsICJwOmVxKDMpJiZUZXh0Iik7CiAgICAgICAgICAgICAgICB0aW1lID0gIuW3suWujOe7kyIKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgX2ltZyA9IHBkKGh0bWwsICIudmlkZW8taW1nJiZpbWcmJnNyYyIpOwogICAgICAgICAgICBsZXQgSkogPSBwZGZoKGh0bWwsICIuZGVzYyYmVGV4dCIpLnNwbGl0KCLnroDku4vvvJoiKVsxXTsKICAgICAgICAgICAgbGV0IF9kZXNjID0gdGltZTsKICAgICAgICAgICAgVk9ELnZvZF9uYW1lID0gcGRmaChodG1sLCAiLnZ0LXR4dCYmVGV4dCIpOwogICAgICAgICAgICBWT0QudHlwZV9uYW1lID0gcGRmaChodG1sLCAicDplcSgwKSYmVGV4dCIpLnN1YnN0cigwLCA2KTsKICAgICAgICAgICAgVk9ELnZvZF9hcmVhID0gcGRmaChodG1sLCAicDplcSgxKSYmVGV4dCIpOwogICAgICAgICAgICBWT0Qudm9kX2FjdG9yID0gYWN0b3I7CiAgICAgICAgICAgIFZPRC52b2RfZGlyZWN0b3IgPSBkaXJlY3RvcjsKICAgICAgICAgICAgVk9ELnZvZF9yZW1hcmtzID0gX2Rlc2M7CiAgICAgICAgICAgIFZPRC52b2RfcGljID0gX2ltZzsKICAgICAgICAgICAgVk9ELnZvZF9jb250ZW50ID0gSko7CiAgICAgICAgICAgIGlmICghVk9ELnZvZF9uYW1lKSB7CiAgICAgICAgICAgICAgICBWT0Qudm9kX25hbWUgPSBWT0QudHlwZV9uYW1lOwogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBsb2coIuiOt+WPluW9seeJh+S/oeaBr+WPkeeUn+mUmeivrzoiICsgZS5tZXNzYWdlKQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0UmpwZyhpbWdVcmwsIHhzKSB7CiAgICAgICAgICAgIHhzID0geHMgfHwgMzsKICAgICAgICAgICAgbGV0IHBpY1NpemUgPSAvanBnXy8udGVzdChpbWdVcmwpID8gaW1nVXJsLnNwbGl0KCJqcGdfIilbMV0uc3BsaXQoIi4iKVswXSA6IGZhbHNlOwogICAgICAgICAgICBsZXQgcmpwZyA9IGZhbHNlOwogICAgICAgICAgICBpZiAocGljU2l6ZSkgewogICAgICAgICAgICAgICAgbGV0IGEgPSBwYXJzZUludChwaWNTaXplLnNwbGl0KCJ4IilbMF0pICogeHM7CiAgICAgICAgICAgICAgICBsZXQgYiA9IHBhcnNlSW50KHBpY1NpemUuc3BsaXQoIngiKVsxXSkgKiB4czsKICAgICAgICAgICAgICAgIHJqcGcgPSBhICsgIngiICsgYiArICIuanBnIgogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBpbWcgPSAvanBnXy8udGVzdChpbWdVcmwpICYmIHJqcGcgPyBpbWdVcmwucmVwbGFjZShpbWdVcmwuc3BsaXQoImpwZ18iKVsxXSwgcmpwZykgOiBpbWdVcmw7CiAgICAgICAgICAgIHJldHVybiBpbWcKICAgICAgICB9CgogICAgICAgIGlmIChqc29uLmRhdGEudG90YWwgPT09IDEgJiYganNvbi5kYXRhLmxpc3QubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgIGxldCBkYXRhID0ganNvbi5kYXRhLmxpc3RbMF07CiAgICAgICAgICAgIGxldCB1cmwgPSAiaHR0cHM6Ly93d3cubWd0di5jb20iICsgZGF0YS51cmw7CiAgICAgICAgICAgIGQucHVzaCh7CiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50NCwKICAgICAgICAgICAgICAgIGRlc2M6IGRhdGEudDIsCiAgICAgICAgICAgICAgICBwaWNfdXJsOiBnZXRSanBnKGRhdGEuaW1nKSwKICAgICAgICAgICAgICAgIHVybDogdXJsCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIGlmIChqc29uLmRhdGEubGlzdC5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGpzb24uZGF0YS50b3RhbF9wYWdlOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChpID4gMSkgewogICAgICAgICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGZldGNoKGlucHV0LnJlcGxhY2UoInBhZ2U9MSIsICJwYWdlPSIgKyBpKSwge30pKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAganNvbi5kYXRhLmxpc3QuZm9yRWFjaChmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9ICJodHRwczovL3d3dy5tZ3R2LmNvbSIgKyBkYXRhLnVybDsKICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5pc0ludGFjdCA9PSAiMSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBkYXRhLnQ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogZGF0YS50MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IGdldFJqcGcoZGF0YS5pbWcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmwKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnQoaW5wdXQgKyAi5pqC5peg54mH5rqQIikKICAgICAgICB9CiAgICAgICAgVk9ELnZvZF9wbGF5X2Zyb20gPSAibWd0diI7CiAgICAgICAgVk9ELnZvZF9wbGF5X3VybCA9IGQubWFwKGZ1bmN0aW9uKGl0KSB7CiAgICAgICAgICAgIHJldHVybiBpdC50aXRsZSArICIkIiArIGl0LnVybAogICAgICAgIH0pLmpvaW4oIiMiKTsKICAgICAgICBzZXRSZXN1bHQoZCk7CiAgICB9KSwKCiAgICDmkJzntKI6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgZmV0Y2hfcGFyYW1zLmhlYWRlcnMuUmVmZXJlciA9ICJodHRwczovL3d3dy5tZ3R2LmNvbSI7CiAgICAgICAgZmV0Y2hfcGFyYW1zLmhlYWRlcnNbIlVzZXItQWdlbnQiXSA9IE1PQklMRV9VQTsKICAgICAgICBsZXQgZCA9IFtdOwogICAgICAgIGxldCBodG1sID0gcmVxdWVzdChpbnB1dCk7CiAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgIGpzb24uZGF0YS5jb250ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgaWYgKGRhdGEudHlwZSAmJiBkYXRhLnR5cGUgPT0gJ21lZGlhJykgewogICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBkYXRhLmRhdGFbMF07CiAgICAgICAgICAgICAgICBsZXQgZGVzYyA9IGl0ZW0uZGVzYy5qb2luKCcsJyk7CiAgICAgICAgICAgICAgICBsZXQgZnljbGFzcyA9ICcnOwogICAgICAgICAgICAgICAgaWYgKGl0ZW0uc291cmNlID09PSAiaW1nbyIpIHsKICAgICAgICAgICAgICAgICAgICBsZXQgaW1nID0gaXRlbS5pbWcgPyBpdGVtLmltZyA6ICcnOwogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZ5Y2xhc3MgPSBpdGVtLnJwdC5tYXRjaCgvaWR4PSguKj8pJi8pWzFdICsgJyQnOwogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9nKGUubWVzc2FnZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGZ5Y2xhc3MgPSAnJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbG9nKGZ5Y2xhc3MpOwogICAgICAgICAgICAgICAgICAgIGQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLnJlcGxhY2UoLzxCPnw8XC9CPi9nLCAnJyksCiAgICAgICAgICAgICAgICAgICAgICAgIGltZzogaW1nLAogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzYywKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmeWNsYXNzICsgaXRlbS51cmwubWF0Y2goLy4qXC8oLio/KVwuaHRtbC8pWzFdCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHNldFJlc3VsdChkKTsKICAgIH0pLAp9
+255
View File
@@ -0,0 +1,255 @@
// ==UserScript==
// @name mqtv
// @namespace gmspider
// @version 2024.11.12
// @description 麻雀视频 GMSpider
// @author Luomo
// @match https://www.mqtv.cc/*
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/Spiders-Lib@main/lib/browser-extension-url-match-1.2.0.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/ajaxhook.umd.min.js
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "searchContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
let hookConfigs = {
"homeContent": [{
dataKey: "VodList",
matcher: matchPattern("https://*/libs/VodList.api.php?*").assertValid()
}],
"categoryContent": [{
dataKey: "VodList",
matcher: matchPattern("https://*/libs/VodList.api.php?*").assertValid(),
onRequestHook: function (config, handler) {
let url = new URL(config.url, window.location.origin);
url.searchParams.set('page', GMSpiderArgs.fArgs[1]);
config.url = url.pathname + url.search;
}
}],
"detailContent": [{
dataKey: "VodInfo",
matcher: matchPattern("https://*/libs/VodInfo.api.php?*").assertValid()
}],
"playerContent": [{
dataKey: "VodInfo",
matcher: matchPattern("https://*/libs/VodInfo.api.php?*").assertValid(),
onResponseHook: function (response, handler) {
console.log("playerContent", response);
let anchor = window.location.hash.split("#").at(1);
let vodInfo = JSON.parse(response.response)?.data;
vodInfo.playinfo.forEach((playinfo) => {
playinfo.player.forEach((player, index) => {
if (player.url === anchor) {
localStorage.setItem("history", JSON.stringify({
val: [{
"id": vodInfo.id,
"type": vodInfo.type,
"title": vodInfo.title,
"img": vodInfo.img,
"url": player.url,
"episode": player.no,
"ensite": playinfo.ensite,
"cnsite": playinfo.cnsite,
"num": index
}],
exp: new Date().getTime() + 60 * 1000,
}));
}
})
});
console.log("history", localStorage.getItem("history"));
}
}],
"searchContent": [{
dataKey: "VodList",
matcher: matchPattern("https://*/libs/VodList.api.php?*").assertValid()
}],
};
const GmSpider = (function () {
const categoryFilterCachePrefix = "category.";
function formatVodList(vodList) {
let vods = [];
vodList.forEach(function (vod) {
vods.push({
vod_id: vod.url,
vod_name: vod.title,
vod_pic: vod.img,
vod_remarks: vod.remark
})
})
return vods;
}
return {
homeContent: function (filter) {
let result = {
class: [
{type_id: "movie", type_name: "电影"},
{type_id: "tv", type_name: "电视剧"},
{type_id: "va", type_name: "综艺"},
{type_id: "ct", type_name: "动漫"}
],
filters: {},
list: []
};
result.list.push(...formatVodList(hookResult.VodList?.data?.ct?.[0]?.show), ...formatVodList(hookResult.VodList?.data?.movie?.[0]?.show), ...formatVodList(hookResult.VodList?.data?.tv?.[0]?.show));
return result;
},
categoryContent: function (tid, pg, filter, extend) {
let result = {
list: [],
pagecount: pg
};
result.list = formatVodList(hookResult.VodList?.data)
if (result.list.length >= 25) {
result.pagecount = pg + 1;
}
return result;
},
detailContent: function (ids) {
const vodInfo = hookResult.VodInfo.data;
let vodPlayData = [];
hookResult.VodInfo.data.playinfo.forEach((item) => {
let media = [];
item.player.forEach((player) => {
media.push({
name: player.no,
type: "webview",
ext: {
replace: {
url: ids[0],
anchor: player.url
}
}
});
})
vodPlayData.push({
from: item.cnsite,
media: media
})
});
return {
vod_id: vodInfo.id,
vod_name: vodInfo.title,
vod_pic: vodInfo.img,
vod_actor: vodInfo.actor,
vod_director: vodInfo.director,
vod_area: vodInfo.area,
vod_year: vodInfo.year,
vod_remarks: vodInfo.remark,
vod_play_data: vodPlayData
};
},
playerContent: function (flag, id, vipFlags) {
return {
type: "match"
};
},
searchContent: function (key, quick, pg) {
let result = {
list: [],
pagecount: 1
};
let _gotData = function (src) {
console.log("_gotSrc hook failed");
};
const targetNode = $("#leo-load-list-1")[0];
const config = {childList: true, subtree: true};
const observer = new MutationObserver((mutationsList) => {
mutationsList.forEach((mutation) => {
_gotData();
});
});
observer.observe(targetNode, {childList: true, subtree: true});
return new Promise(function (resolve) {
_gotData = resolve;
}).then(function () {
let $ = unsafeWindow.$;
$(".leo-list-item-s").each(function () {
result.list.push({
vod_id: $(this).find(".leo-list-item-title a").attr("href"),
vod_name:$(this).find(".leo-list-item-title a").attr("title"),
vod_pic: $(this).find(".leo-list-item-pic img").data("original")
});
})
return result;
});
}
};
})();
let spiderExecuted = false;
let dataReadyCount = 0;
let hookResult = {};
const {unProxy, originXhr} = proxy({
onRequest: (config, handler) => {
let requestUrl = config.url;
if (!requestUrl.startsWith("http")) {
requestUrl = window.location.origin + requestUrl;
}
hookConfigs[GMSpiderArgs.fName].forEach((hookConfig) => {
if (typeof hookConfig.onRequestHook === "function" && hookConfig.matcher.match(requestUrl)) {
hookConfig.onRequestHook(config, handler);
}
});
handler.next(config);
},
onResponse: (response, handler) => {
if (!spiderExecuted) {
let dataTodoCount = 0;
let requestUrl = response.config.url;
if (!requestUrl.startsWith("http")) {
requestUrl = window.location.origin + requestUrl;
}
hookConfigs[GMSpiderArgs.fName].forEach((hookConfig) => {
if (typeof hookConfig.dataKey !== "undefined") {
if (hookConfig?.require !== false) {
dataTodoCount++;
}
if (hookConfig.matcher.match(requestUrl)) {
if (hookConfig?.require !== false) {
dataReadyCount++;
}
try {
let data = JSON.parse(response.response);
if (typeof data === 'object' && data) {
hookResult[hookConfig.dataKey] = data;
} else {
hookResult[hookConfig.dataKey] = response.response;
}
} catch (e) {
}
}
}
if (typeof hookConfig.onResponseHook === "function" && hookConfig.matcher.match(requestUrl)) {
hookConfig.onResponseHook(response, handler);
}
});
if (dataTodoCount === dataReadyCount) {
spiderExecuted = true;
async function asyncRun() {
const result = await GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined' && spiderExecuted) {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
}
asyncRun();
}
}
handler.next(response);
}
}, unsafeWindow)
})();
+254
View File
@@ -0,0 +1,254 @@
// ==UserScript==
// @name NETFLAV
// @namespace gmspider
// @version 2025.10.25
// @description NETFLAV GMSpider
// @author Luomo
// @match https://netflav.com/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
if (typeof unsafeWindow.gmSpiderRunning === "undefined") {
unsafeWindow.gmSpiderRunning = true;
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [];
}
Object.freeze(GMSpiderArgs);
let _gotHookFunction = function () {
console.log("_gotHookFunction hook failed");
};
let itemCount = 0;
let gotItems = [];
Object.defineProperty(Object.prototype, 'componentDidMount', {
configurable: true,
get: function () {
let item = this?.props?.item;
if (typeof item?.videoId !== "undefined") {
gotItems.push(item);
if (gotItems.length === itemCount) {
_gotHookFunction(gotItems);
}
}
return true;
},
set: function (value) {
return true;
},
});
const GmSpider = (function () {
function getVideos(key, result) {
const formatData = JSON.parse($("#__NEXT_DATA__").html());
let vods = [];
formatData.props.initialState[key].docs?.forEach(function (media) {
vods.push({
vod_id: media.videoId,
vod_name: media.title,
vod_pic: media.preview.length > 0 ? media.preview : media.preview_hp,
vod_remarks: "👁️" + media.views,
})
});
if (typeof result == "object") {
result.list = vods;
result.pagecount = formatData.props.initialState[key].pages;
}
return vods;
}
return {
homeContent: function (filter) {
let result = {
class: [
{type_id: "trending?", type_name: "最受欢迎"},
{type_id: "browse?", type_name: "年度精选"},
{type_id: "chinese-sub?", type_name: "中文字幕"},
{type_id: "all?genre=國產AV", type_name: "国产AV"},
{type_id: "censored?", type_name: "有码影片"},
{type_id: "uncensored?", type_name: "无码影片"},
{type_id: "genre?", type_name: "类别"}],
filters: {
"trending?": [{
key: "range", name: "时间", value: [{
n: "全部", v: ""
}, {
n: "本月", v: "&range=month&value=1"
}, {
n: "上个月", v: "&range=month&value=2"
}, {
n: "2个月前", v: "&range=month&value=3"
}, {
n: "3个月前", v: "&range=month&value=4"
}, {
n: "4个月前", v: "&range=month&value=5"
}, {
n: "5个月前", v: "&range=month&value=6"
}]
}]
}, list: []
};
result.list = getVideos("trending");
return result;
}, categoryContent: function (tid, pg, filter, extend) {
console.log(tid, pg, filter, extend);
let result = {
list: [], pagecount: 1
};
if (tid === "genre?") {
$(".genre_item_container .genre_item").each(function () {
result.list.push({
vod_id: $(this).attr("href").substring(1),
vod_name: $(this).find("div").text(),
vod_tag: "folder",
style: {
"type": "rect", "ratio": 1
}
})
})
} else if (tid === "browse?") {
result.list.push(
{
vod_id: "2024?", vod_name: "2024年度精选", vod_remarks: "年度精选", vod_tag: "folder"
}, {
vod_id: "2023?", vod_name: "2023年度精选", vod_remarks: "年度精选", vod_tag: "folder"
}, {
vod_id: "2022?", vod_name: "2022年度精选", vod_remarks: "年度精选", vod_tag: "folder"
}, {
vod_id: "2021?", vod_name: "2021年度精选", vod_remarks: "年度精选", vod_tag: "folder"
}, {
vod_id: "2020?", vod_name: "2020年度精选", vod_remarks: "年度精选", vod_tag: "folder"
}, {
vod_id: "2019?", vod_name: "2019年度精选", vod_remarks: "年度精选", vod_tag: "folder"
});
const formatData = JSON.parse($("#__NEXT_DATA__").html());
formatData.props.initialState.randomShareList.docs.forEach(function (share) {
result.list.push({
vod_id: `share?c=${share.shareCode}`,
vod_name: share.shareCode,
vod_remarks: "片单",
vod_pic: share.srcs[0],
vod_tag: "folder"
})
});
} else {
const formatData = JSON.parse($("#__NEXT_DATA__").html());
const key = tid.split("?").at(0).split("-").at(0);
if ($.isNumeric(key)) {
$(".playlist_grid_full a").each(function () {
result.list.push({
vod_id: $(this).attr("href").substring(1),
vod_name: $(this).find(".playlist_head div").eq(1).text().trim(),
vod_remarks: "片单",
vod_pic: $(this).find("img").eq(1).attr("src"),
vod_tag: "folder"
})
});
console.log(gotItems.length, $(".video_grid_container .grid_0_cell").length);
if (gotItems.length === $(".video_grid_container .grid_0_cell").length) {
gotItems.forEach(function (media) {
result.list.push({
vod_id: media.videoId,
vod_name: media.title,
vod_pic: media.preview.length > 0 ? media.preview : media.preview_hp,
vod_remarks: media.duration,
})
})
} else {
return new Promise(function (resolve) {
_gotHookFunction = resolve;
itemCount = $(".video_grid_container .grid_0_cell").length;
}).then((items) => {
items.forEach(function (media) {
result.list.push({
vod_id: media.videoId,
vod_name: media.title,
vod_pic: media.preview.length > 0 ? media.preview : media.preview_hp,
vod_remarks: media.duration,
})
})
return result
});
}
} else {
getVideos(key, result);
}
}
return result;
},
detailContent: function (ids) {
const formatData = JSON.parse($("#__NEXT_DATA__").html());
const video = formatData.props.initialState.video.data;
let vodActor = [], tags = [];
video?.actors.forEach(function (actor) {
if (actor.startsWith("zh:")) {
const actress = actor.substring(3);
vodActor.push(`[a=cr:{"id":"all?actress=${actress}","name":"${actress}"}/]${actress}[/a]`);
}
})
video?.tags.forEach(function (tag) {
if (tag.startsWith("zh:")) {
const genre = tag.substring(3);
tags.push(`[a=cr:{"id":"all?genre=${genre}","name":"${genre}"}/]${genre}[/a]`);
}
})
let vodPlayData = [];
video?.srcs.forEach(function (src, index) {
vodPlayData.push({
from: `播放源${index + 1}`,
media: [{
name: video?.category ?? video.code,
type: "webview",
ext: {
replace: {
vod_id: video.videoId,
src: index + 1
}
}
}]
})
})
return {
vod_id: video.videoId,
vod_name: video.code,
vod_pic: video.preview_hp,
vod_year: (video.videoDate && typeof video.videoDate.substring === 'function') ? video.videoDate.substring(0, 10) : '',
vod_remarks: tags.join(" "),
vod_actor: vodActor.join(" "),
vod_content: video.description,
vod_play_data: vodPlayData
};
},
playerContent: function (flag, id, vipFlags) {
let link = window.location.hash.split("#").at(1);
document.querySelector(`.videoiframe_source_container .videoiframe_source_tag:nth-child(${link})`).dispatchEvent(new Event("click"));
return {
type: "match"
};
},
searchContent: function (key, quick, pg) {
const result = {
list: [], pagecount: 1
};
getVideos("search", result);
return result;
}
};
})();
$(document).ready(async function () {
let result = await GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
} else {
console.log("gmSpider run again");
}
+41
View File
@@ -0,0 +1,41 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 7]
}
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+41
View File
@@ -0,0 +1,41 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 6]
}
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+94
View File
@@ -0,0 +1,94 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "detailContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 4]
}
},
detailContent: {
customFunction: function (ids) {
let vodPlayData = [];
$(".player-list").each(function (i) {
let media = [];
$(this).find(".module-play-list .module-play-list-link").each(function () {
media.push({
name: $(this).text().trim(),
type: "webview",
ext: {
replace: {
playUrl: $(this).attr("href"),
}
}
});
})
vodPlayData.push({
from: $(this).find(".module-tab-item").children().remove().end().text().trim(),
media: media
})
})
return vod = {
vod_id: ids[0],
vod_name: $(".module-player-side .module-info-heading h1").text().trim(),
type_name: $(".module-player-side .module-info-tag-link a").map(function () {
return $(this).attr("title");
}).get().join(" "),
vod_play_data: vodPlayData
};
}
},
getCategoryFilter: function () {
const filters = [];
$(".module-class-item").each(function (i) {
const filter = {
key: "",
name: $(this).find(".module-item-title").text().trim(),
value: []
}
$(this).find(".module-item-box a").each(function () {
const params = $(this).attr("href").split(/[/.]/);
if (params.length > 4) {
filter.key = "index" + i;
filter.value.push({
n: $(this).text().trim(),
v: `/${params[3]}/${params[4]}`
})
}
})
filters.push(filter);
})
return filters;
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+244
View File
@@ -0,0 +1,244 @@
// ==UserScript==
// @name Supjav
// @namespace gmspider
// @version 2025.11.12
// @description Supjav GMSpider
// @author Luomo
// @match https://supjav.com/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @grant GM_cookie
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = ["tag"];
}
Object.freeze(GMSpiderArgs);
const GmSpider = (function () {
function listVideos() {
let itemList = [];
$(".post").each(function () {
const url = new URL($(this).find(".img").attr("href"));
itemList.push({
vod_id: url.pathname.split('/').at(2),
vod_name: $(this).find(".img").attr("title"),
vod_pic: formatImgUrl($(this).find("img").data("original")),
vod_remarks: $(this).find(".date").text(),
vod_year: $(this).find(".meta").children().remove().end().text()
})
});
return itemList;
}
let cf_clearance = null;
function formatImgUrl(url) {
if (cf_clearance === null) {
GM_cookie.list({name: "cf_clearance"}, function (cookies, error) {
if (!error && cookies.length > 0) {
cf_clearance = cookies[0].value;
localStorage.setItem("cf_clearance", cf_clearance);
} else {
let cache_cf_clearance = localStorage.getItem("cf_clearance");
if (typeof cache_cf_clearance !== "undefined" && cache_cf_clearance !== null && cache_cf_clearance.length > 0) {
cf_clearance = cache_cf_clearance;
}
}
});
}
if (cf_clearance !== null) {
url = url + "@User-Agent=" + window.navigator.userAgent + "@Cookie=cf_clearance=" + cf_clearance;
}
return url;
}
return {
homeContent: function (filter) {
const defaultFilter = [{
key: "sort",
name: "排序",
value: [
{
n: "观看数",
v: "views"
},
{
n: "更新时间",
v: ""
}
]
}];
let result = {
class: [
{type_id: "popular", type_name: "热门"},
{type_id: "category/censored-jav", type_name: "有码"},
{type_id: "category/uncensored-jav", type_name: "无码"},
{type_id: "category/amateur", type_name: "素人"},
{type_id: "category/chinese-subtitles", type_name: "中文字幕"},
{type_id: "category/reducing-mosaic", type_name: "无码破解"},
{type_id: "category/english-subtitles", type_name: "英文字幕"},
{type_id: "tag", type_name: "类别"},
],
filters: {
popular: [{
key: "sort",
name: "时间",
value: [
{
n: "本月热门",
v: "month"
},
{
n: "本周热门",
v: "week"
},
{
n: "今日热门",
v: ""
}
]
}]
},
list: []
};
result.class.forEach((item) => {
if (typeof result.filters[item.type_id] === "undefined") {
result.filters[item.type_id] = defaultFilter;
}
})
result.list = listVideos()
return result;
},
categoryContent: function (tid, pg, filter, extend) {
let result = {
list: [],
pagecount: 1
};
if (tid === "tag") {
$(".categorys .child").each(function () {
const url = new URL($(this).find("a").attr("href")).pathname.split('/');
const text = $(this).text().trim().split("(")
result.list.push({
vod_id: url[2] + "/" + url[3],
vod_name: text[0],
vod_remarks: parseInt(text[1]) + " 部影片",
vod_tag: "folder",
style: {
"type": "rect",
"ratio": 1
}
})
});
result.pagecount = $(".pagination li").not(".next-page").last().text().trim();
} else {
if ($(".pagination li").length > 0) {
result.pagecount = $(".pagination li").not(".next-page").last().text().trim();
}
result.list = listVideos();
}
return result;
},
detailContent: function (ids) {
$("#vserver").click();
let vodActor = [], tags = [];
$(".post-meta .cats a").each(function () {
const id = new URL($(this).attr("href")).pathname.replace("/zh/", "");
const name = $(this).text().trim();
vodActor.unshift(`[a=cr:{"id":"${id}","name":"${name}"}/]${name}[/a]`);
});
$(".post-meta .tags a").each(function () {
const id = new URL($(this).attr("href")).pathname.replace("/zh/", "");
const name = $(this).text().trim();
tags.push(`[a=cr:{"id":"${id}","name":"${name}"}/]#${name}[/a]`);
});
let vodContent = $(".post-meta .img").attr("alt").trim();
let vodName = vodContent.replace("[无码破解]", '');
let match = vodName.match(/^[\w|-]+/g);
if (match) {
if (match[0].includes("-")) {
vodName = match[0];
} else {
match = vodContent.match(/^[\w]+\s[\w]+/g);
if (match) {
vodName = match[0].replace(" ", "-");
}
}
}
let vodPlayData = [];
let btnServers;
if ($(".video-wrap .cd-server").length > 0) {
btnServers = $(".video-wrap .cd-server:first .btn-server");
} else {
btnServers = $(".video-wrap .btn-server");
}
btnServers.each(function (i) {
vodPlayData.push({
from: $(this).text().trim(),
media: [{
name: vodName,
type: "webview",
ext: {
replace: {
pathname: ids[0],
link: i
}
}
}]
});
})
const result = {
list: [{
vod_id: ids[0],
vod_name: vodName,
vod_pic: formatImgUrl($(".post-meta .img").attr("src")),
vod_actor: vodActor.join(" "),
vod_remarks: tags.join(" "),
vod_content: vodContent,
vod_play_data: vodPlayData
}]
};
return result
},
playerContent: function (flag, id, vipFlags) {
const link = window.location.hash.split("#").at(1);
document.querySelectorAll(`.video-wrap .btn-server`)[link].dispatchEvent(new Event("click"));
return {
type: "match"
};
},
searchContent: function (key, quick, pg) {
const result = {
list: [],
pagecount: 1
};
result.list = listVideos();
if ($(".pagination li").length > 0) {
result.pagecount = $(".pagination li").not(".next-page").last().text().trim();
}
return result;
}
};
})();
$(document).ready(function () {
if ($(".loading-verifying").length > 0) {
GmSpiderInject.ShowWebview();
}
});
$(unsafeWindow).on("load", function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.HideWebview();
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+162
View File
@@ -0,0 +1,162 @@
// ==UserScript==
// @name XOJAV
// @namespace gmspider
// @version 2024.12.02
// @description XOJAV GMSpider
// @author Luomo
// @match https://xojav.tv/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "searchContent";
GMSpiderArgs.fArgs = [["ssni-748"]];
}
Object.freeze(GMSpiderArgs);
const GmSpider = (function () {
function listVideos(select) {
let vods = [];
$(select).each(function () {
const remarks = [
"👁️" + $(this).find(".card-video__stats .num:first").text().trim(),
"❤️" + $(this).find(".card-video__fav-button .num").text().trim()
];
const url = new URL($(this).find(".card-video__title a").attr("href"));
vods.push({
vod_id: url.pathname.split('/').at(2).toUpperCase(),
vod_name: $(this).find(".card-video__img img").attr("alt"),
vod_pic: $(this).find(".card-video__img img").data("src"),
vod_remarks: remarks.join(" "),
vod_year: $(this).find(".card-video__duration").text().trim()
})
})
return vods;
}
return {
homeContent: function (filter) {
let result = {
class: [
{type_id: "latest-updates?sort_by=release_at", type_name: "最近更新"},
{type_id: "categories/taiwan-av?sort_by=release_at", type_name: "台湾AV"},
{type_id: "stars?sort_by=stars", type_name: "近期最佳"},
{type_id: "hot?sort_by=views", type_name: "热门"},
{type_id: "categories?", type_name: "所有分类"},
],
filters: {
"categories/taiwan-av?sort_by=release_at": [{
key: "sort_by",
name: "排序",
value: [
{n: "近期最佳", v: "&sort_by=stars"},
{n: "观看数", v: "&sort_by=views"},
{n: "最近更新", v: "&sort_by=release_at"}
]
}],
"categories?": [{
key: "sort_by",
name: "排序",
value: [
{n: "近期最佳", v: "&sort_by=stars"},
{n: "观看数", v: "&sort_by=views"},
{n: "最近更新", v: "&sort_by=release_at"},
]
}]
},
list: []
};
let itemList = listVideos(".card-video");
result.list = itemList.filter((item, index) => {
return itemList.findIndex(i => i.vod_id === item.vod_id) === index
});
return result;
},
categoryContent: function (tid, pg, filter, extend) {
let result = {
list: [],
pagecount: 1
};
if (tid === "categories?") {
$(".padding-bottom-xl").each(function () {
let remarks = $(this).find(".title--listing").text().trim();
$(this).find(".card-cat-v2").each(function () {
const url = new URL($(this).find(".card-cat-v2__link").attr("href")).pathname.split('/');
result.list.push({
vod_id: url[1] + "/" + url[2] + "?sort_by=release_at",
vod_name: $(this).find(".card-cat-v2__title h4").text(),
vod_pic: $(this).find("img").attr("src"),
vod_remarks: remarks,
vod_tag: "folder",
style: {
"type": "rect",
"ratio": 0.7
}
})
});
})
result.pagecount = 1;
} else {
result.list = listVideos(".card-video");
result.pagecount = $('.pagination__list li[class] .pagination__item:last').text().trim();
}
return result;
},
detailContent: function (ids) {
let categories = [], tags = [];
$(".content-details__meta a").each(function () {
const url = new URL($(this).attr("href")).pathname.split('/');
const id = url[1] + "/" + url[2] + "?sort_by=release_at";
const name = $(this).text().trim();
if (name.length > 0) {
if (url[1] === "categories") {
categories.push(`[a=cr:{"id":"${id}","name":"${name}"}/]${name}[/a]`);
} else {
tags.push(`[a=cr:{"id":"${id}","name":"${name}"}/]${name}[/a]`);
}
}
})
const vod = {
vod_id: ids[0],
vod_name: ids[0].toUpperCase(),
vod_year: $(".content-details__meta time").text(),
vod_remarks: categories.join(" "),
vod_actor: tags.join(" "),
vod_content: $(".content-details__title").text(),
vod_play_from: "XOJAV",
vod_play_url: "720P$" + unsafeWindow.stream,
};
return {list: [vod]};
},
searchContent: function (key, quick, pg) {
const result = {
list: [],
pagecount: 1
};
result.list = listVideos(".card-video");
result.pagecount = Math.ceil($('.title--sub-title').text().replace(/[^0-9]/ig, "") / 24)
return result;
}
};
})();
$(document).ready(function () {
let result = "";
if ($("#cf-wrapper").length > 0) {
console.log("源站不可用:" + $('title').text());
GM_toastLong("源站不可用:" + $('title').text());
} else {
result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
}
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+41
View File
@@ -0,0 +1,41 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "homeContent";
GMSpiderArgs.fArgs = [true];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
homeContent: {
category: {
select: ".navbar-item",
slice: [1, 8]
}
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+256
View File
@@ -0,0 +1,256 @@
import "assets://js/lib/cat.js";
import "assets://js/lib/crypto-js.js";
//https://link3.cc/yyvod
async function init(cfg) {
cfg.skey = '悠悠视频-动态分类';
cfg.stype = '3';
}
let url = 'http://156.225.30.65:8090';
const UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36';
//解密
function AES1(data) {
const key = CryptoJS.enc.Utf8.parse('RuN9LRvwTRgpQnpK');
const iv = CryptoJS.enc.Utf8.parse('RuN9LRvwTRgpQnpK');
const decrypted = CryptoJS.AES.decrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
//加密
function AES2(data) {
const key = CryptoJS.enc.Utf8.parse('RuN9LRvwTRgpQnpK');
const iv = CryptoJS.enc.Utf8.parse('RuN9LRvwTRgpQnpK');
const encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
async function request (reqUrl, mth) {
const res = await req (reqUrl, {
method: mth || 'get',
headers: {
'User-Agent': UA,
referer: url,
},
postType: mth === 'post' ? 'form' : '',
});
return res.content;
}
//动态分类
async function home (filter) {
let html = await request(`${url}/api.php/getappapi.index/initV119`);
let res = JSON.parse(AES1(JSON.parse(html).data));
//一级
let classes = res.type_list.map(tp => ({
type_id: tp.type_id,
type_name: tp.type_name
})).filter(item => item.type_name !== "全部");
//二级
let filterObj = res.type_list.reduce((acc, tp) => {
if (tp.filter_type_list) {
acc[tp.type_id] = tp.filter_type_list.map(filter => ({
key: filter.name,
name: filter.list[0],
value: filter.list.map(item => ({
n: item,
v: item
}))
}));
}
return acc;
}, {});
let html2 = await request(`${url}/api.php/getappapi.index/rankListV134?type_id=0&page=1`);
let res2 = JSON.parse(AES1(JSON.parse(html2).data));
//推荐
let videos = res2.rank_list.map(item => ({
vod_id: item.vod_id,
vod_name: item.vod_name,
vod_pic: item.vod_pic,
vod_remarks: item.vod_remarks,
vod_year: item.vod_year
}));
return JSON.stringify({
class: classes,
filters: filterObj,
list: videos
});
}
//主页推荐
async function homeVod() {
}
//分类
async function category (tid, pg, filter, extend) {
let html = await request(`${url}/api.php/getappapi.index/typeFilterVodList?area=${extend.area ? extend.area : ''}&year=${extend.year ? extend.year : ''}&type_id=${tid}&page=${pg}&sort=${extend.sort ? extend.sort : ''}&lang=${extend.lang ? extend.lang : ''}&class=${extend.class ? extend.class : ''}`);
let res = JSON.parse(AES1(JSON.parse(html).data)).recommend_list;
let videos = res.map(item => ({
vod_id: item.vod_id,
vod_name: item.vod_name,
vod_pic: item.vod_pic,
vod_remarks: item.vod_remarks,
vod_year: ""
}));
return JSON.stringify ({
page: pg,
pagecount: 99999,
limit: 30,
total: 99999,
list: videos
});
}
//详情
async function detail (id) {
let html = await request (`${url}/api.php/getappapi.index/vodDetail?vod_id=${id}`);
let res = JSON.parse(AES1(JSON.parse(html).data));
let play_from = res.vod_play_list.map(item => item.player_info.show).join('$$$');
let play_url = res.vod_play_list.map(play => {
let p = play.player_info.parse; // 获取 parse
return play.urls.map(item => {
let name = item.name;
let url = item.url;
let urls = p
? (p.includes('?url=') || p.includes('?key=')) // 如果 p 包含 '?url=' 或 '?key='
? `${p}${url}` // 直接拼接 p 和 url
: `${p}|${url}` // 否则使用 '|' 拼接 p 和 url
: url; // 如果 p 不存在,则 urls 为 url
return `${name}$${urls}`;
}).join('#');
}).join('$$$');
var vod = [{
"type_name": res.vod.vod_class,
"vod_year": res.vod.vod_year,
"vod_area": res.vod.vod_area,
"vod_remarks": res.vod.vod_remarks,
"vod_content": res.vod.vod_content,
"vod_play_from": play_from,
"vod_play_url": play_url
}];
return JSON.stringify ({
list: vod
});
}
//播放
async function play (flag, id, flags) {
//
if (id.indexOf("|") > -1){
let html = await request (`${url}/api.php/getappapi.index/vodParse?parse_api=${id.split("|")[0]}&url=${encodeURIComponent(AES2(id.split("|")[1]))}`);
let res = JSON.parse(AES1(JSON.parse(html).data)).json;
let playUrl = JSON.parse(res).url;
return JSON.stringify ({
parse: 0,
url: playUrl
});
}
//
if (id.includes(".m3u8")){
let ids = id.includes('?url=') ? id.split("?url=")[1] : id;
return JSON.stringify ({
parse: 0,
url: ids
});
}
//
if (id.includes('?url=') || id.includes('?key=')) {
let html = await request (`${id}`);
let url = JSON.parse(html).url;
return JSON.stringify ({
parse: 0,
url: url
});
}
//
if (id.includes("nkvod.me")){
return JSON.stringify ({
parse: 1,
url: id
});
}
//金牌
if (id.includes("/vod/play/")){
let ids = id.split("/");
let t = Date.now();
let sign = CryptoJS.SHA1(CryptoJS.MD5(`id=${ids[5]}&nid=${ids[7]}&key=cb808529bae6b6be45ecfab29a4889bc&t=${t}`).toString()).toString();
let html = await req(`https://www.cfkj86.com/api/mw-movie/anonymous/v1/video/episode/url?id=${ids[5]}&nid=${ids[7]}`, {
method: 'GET',
headers: {
'User-Agent': UA,
'Referer': url,
"t": t,
"sign": sign
},
postType: '' // 非 POST 请求时设为空
});
let res = JSON.parse(html.content).data.playUrl
return JSON.stringify ({
parse: 0,
url: res
});
}
}
//搜索
async function search (wd, quick) {
const html = await request (`${url}/api.php/getappapi.index/searchList?keywords=${wd}&type_id=0&page=1`);
let res = JSON.parse(AES1(JSON.parse(html).data)).search_list;
let videos = res.map(item => ({
vod_id: item.vod_id,
vod_name: item.vod_name,
vod_pic: item.vod_pic,
vod_remarks: item.vod_remarks,
vod_year: item.vod_year
}));
const limit = 20;
return JSON.stringify ({
limit: limit,
list: videos
});
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
detail: detail,
play: play,
search: search
};
}
+324
View File
@@ -0,0 +1,324 @@
// ==UserScript==
// @name yfsp
// @namespace gmspider
// @version 2024.11.12
// @description 爱壹帆 GMSpider
// @author Luomo
// @match https://m.yfsp.tv/*
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/Spiders-Lib@main/lib/browser-extension-url-match-1.2.0.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/ajaxhook.umd.min.js
// @grant GM_setValue
// @grant GM_getValue
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
// GMSpiderArgs.fName = "homeContent";
// GMSpiderArgs.fArgs = [true];
// GMSpiderArgs.fName = "categoryContent";
// GMSpiderArgs.fArgs = ["movie", 2, true, {}];
// GMSpiderArgs.fName = "detailContent";
// GMSpiderArgs.fArgs = [["XOkJ0XqSwI2"]];
GMSpiderArgs.fName = "searchContent";
GMSpiderArgs.fArgs = ["小巷人家", false, 1];
}
Object.freeze(GMSpiderArgs);
(function () {
switch (GMSpiderArgs.fName) {
case "searchContent":
localStorage.setItem("historyList", JSON.stringify([GMSpiderArgs.fArgs [0]]));
break;
}
})();
let hookConfigs = {
"homeContent": [{
dataKey: "navigationbar",
matcher: matchPattern("https://*.yfsp.tv/api/list/navigationbar?*").assertValid()
}, {
dataKey: "index",
matcher: matchPattern("https://*.yfsp.tv/api/list/index?*").assertValid()
}],
"categoryContent": [{
dataKey: "filtertagsdata",
matcher: matchPattern("https://*.yfsp.tv/api/list/getfiltertagsdata?*").assertValid()
}, {
dataKey: "conditionfilterdata",
matcher: matchPattern("https://*.yfsp.tv/api/list/getconditionfilterdata?*").assertValid(),
onRequestHook: function (config, handler) {
let url = new URL(config.url);
url.searchParams.set('page', GMSpiderArgs.fArgs[1]);
config.url = url.toString();
}
}],
"detailContent": [{
dataKey: "videodetails",
matcher: matchPattern("https://*.yfsp.tv/api/video/videodetails?*").assertValid()
}, {
dataKey: "playdata",
matcher: matchPattern("https://*.yfsp.tv/api/video/getplaydata?*").assertValid()
}, {
dataKey: "videochoosegather",
require: false,
matcher: matchPattern("https://*.yfsp.tv/api/video/videochoosegather?*").assertValid()
}],
"playerContent": [{
dataKey: "playdata",
matcher: matchPattern("https://*.yfsp.tv/api/video/getplaydata?*").assertValid()
}],
"searchContent": [{
dataKey: "titlegetdata",
matcher: matchPattern("https://*.yfsp.tv/api/list/gettitlegetdata?*").assertValid()
}, {
matcher: matchPattern("https://*.yfsp.tv/api/home/gethotsearch?*").assertValid(),
onResponseHook: function (response, handler) {
document.querySelector(".search-log span").dispatchEvent(new Event("click"));
}
}],
};
const GmSpider = (function () {
const categoryFilterCachePrefix = "category.";
return {
homeContent: function (filter) {
let result = {
class: [],
filters: {},
list: []
};
let categoryIds = [];
hookResult.navigationbar.data.list.forEach((item) => {
if (item.type === 1) {
result.class.push({
type_id: item.routeName,
type_name: item.name
});
categoryIds.push(item.categoryId);
// const cacheFilter = GM_getValue(item.routeName);
// console.log("cacheFilter", item.routeName, cacheFilter);
const cacheFilter = localStorage.getItem(categoryFilterCachePrefix + item.routeName);
console.log("localStorage", item.routeName, localStorage.getItem(item.routeName));
if (typeof cacheFilter !== "undefined" && cacheFilter !== null) {
result.filters[item.routeName] = JSON.parse(cacheFilter);
}
}
})
hookResult.index.data.list.forEach((item) => {
if (categoryIds.includes(item.type)) {
item.list.forEach((media) => {
if (!media.isRecommend) {
result.list.push({
vod_id: media.mediaKey,
vod_name: media.title,
vod_pic: media.coverImgUrl,
vod_remarks: media.updateStatus,
vod_year: media.mediaType
})
}
})
}
})
return result;
},
categoryContent: function (tid, pg, filter, extend) {
let result = {
list: [],
pagecount: 1000
};
let cacheFilters = [];
hookResult.filtertagsdata.data.list.forEach(classify => {
let cacheFilter = {
key: "index-" + classify.list[0].index,
name: classify.name,
value: []
}
classify.list.forEach((item) => {
cacheFilter.value.push({
n: item.classifyName,
v: (item.index > 0 ? "," : "") + item.classifyId
});
})
cacheFilters.push(cacheFilter);
})
// GM_setValue(tid, JSON.stringify(cacheFilters));
localStorage.setItem(categoryFilterCachePrefix + tid, JSON.stringify(cacheFilters));
console.log("cacheFilter", tid, cacheFilters);
hookResult.conditionfilterdata.data.list.forEach((media) => {
result.list.push({
vod_id: media.mediaKey,
vod_name: media.title,
vod_pic: media.coverImgUrl,
vod_remarks: media.updateStatus,
vod_year: media.regional
})
})
return result;
},
detailContent: function (ids) {
const videodetails = hookResult.videodetails.data.detailInfo;
let mediaUrl = "";
let episodeKey = "";
hookResult.playdata.data.list.forEach((item) => {
if (mediaUrl === "" && item.mediaUrl !== "") {
mediaUrl = item.mediaUrl;
episodeKey = item.episodeKey;
}
})
let media = [];
if (videodetails.videoType !== 0) {
if (typeof hookResult.videochoosegather !== "undefined") {
hookResult.videochoosegather.data.list.forEach((item) => {
if (videodetails.episodeTitle === item.episodeTitle) {
media.push({
name: item.episodeTitle,
type: "finalUrl",
ext: {
"header": {
"User-Agent": window.navigator.userAgent,
"Referer": window.location.href
},
"url": mediaUrl
}
});
} else {
media.push({
name: item.episodeTitle,
type: "webview",
ext: {
replace: {
mediaKey: item.mediaKey,
episodeKey: item.episodeKey
}
}
})
}
})
} else {
spiderExecuted = false;
return;
}
} else {
media.push({
name: videodetails.episodeTitle,
type: "finalUrl",
ext: {
"header": {
"User-Agent": window.navigator.userAgent,
"Referer": window.location.href
},
"url": mediaUrl
}
})
}
return {
vod_id: videodetails.mediaKey,
vod_name: videodetails.title,
vod_pic: videodetails.coverImgUrl,
vod_actor: videodetails.actor,
vod_director: videodetails.director,
vod_tag: videodetails.cidMapper,
vod_area: videodetails.regional,
vod_content: videodetails.introduce,
vod_play_data: [{
from: "爱壹帆",
media: media
}]
};
},
playerContent: function (flag, id, vipFlags) {
let mediaUrl = "";
hookResult.playdata.data.list.forEach((item) => {
if (mediaUrl === "" && item.mediaUrl !== "") {
mediaUrl = item.mediaUrl;
}
})
return {
type: "finalUrl",
ext: {
"header": {
"User-Agent": window.navigator.userAgent,
"Referer": window.location.href
},
"url": mediaUrl
}
};
},
searchContent: function (key, quick, pg) {
console.log(hookResult);
let result = {
list: [],
pagecount: 1
};
if (pg == 1) {
hookResult.titlegetdata.data.list.forEach((media) => {
result.list.push({
vod_id: media.mediaKey,
vod_name: media.title,
vod_pic: media.coverImgUrl,
vod_remarks: media.updateStatus,
vod_year: media.regional
})
})
}
return result;
}
};
})();
let spiderExecuted = false;
let dataReadyCount = 0;
let hookResult = {};
const {unProxy, originXhr} = proxy({
onRequest: (config, handler) => {
hookConfigs[GMSpiderArgs.fName].forEach((hookConfig) => {
if (typeof hookConfig.onRequestHook === "function" && hookConfig.matcher.match(config.url)) {
hookConfig.onRequestHook(config, handler);
}
});
handler.next(config);
},
onResponse: (response, handler) => {
if (!spiderExecuted) {
let dataTodoCount = 0;
hookConfigs[GMSpiderArgs.fName].forEach((hookConfig) => {
if (typeof hookConfig.dataKey !== "undefined") {
if (hookConfig?.require !== false) {
dataTodoCount++;
}
if (hookConfig.matcher.match(response.config.url)) {
if (hookConfig?.require !== false) {
dataReadyCount++;
}
try {
let data = JSON.parse(response.response);
if (typeof data === 'object' && data) {
hookResult[hookConfig.dataKey] = data;
} else {
hookResult[hookConfig.dataKey] = response.response;
}
} catch (e) {
}
}
}
if (typeof hookConfig.onResponseHook === "function" && hookConfig.matcher.match(response.config.url)) {
hookConfig.onResponseHook(response, handler);
}
});
if (dataTodoCount === dataReadyCount) {
spiderExecuted = true;
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(result);
if (typeof GmSpiderInject !== 'undefined' && spiderExecuted) {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
}
}
handler.next(response);
}
}, unsafeWindow)
})();
+113
View File
@@ -0,0 +1,113 @@
// ==UserScript==
// @name maccms-mxonepro
// @namespace gmspider
// @version 2025.1.11
// @description maccms GMSpider
// @author Luomo
// @match *://*/*
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js
// @require https://cdn.jsdelivr.net/gh/CatVodSpider-GM/SFW-Spiders@main/Spiders-Lib/maccms-1.0.2.js
// @grant unsafeWindow
// ==/UserScript==
console.log(JSON.stringify(GM_info));
(function () {
const GMSpiderArgs = {};
if (typeof GmSpiderInject !== 'undefined') {
let args = JSON.parse(GmSpiderInject.GetSpiderArgs());
GMSpiderArgs.fName = args.shift();
GMSpiderArgs.fArgs = args;
} else {
GMSpiderArgs.fName = "detailContent";
GMSpiderArgs.fArgs = [1, 109];
}
Object.freeze(GMSpiderArgs);
const GmSpider = MacCmsGMSpider({
configPicUserAgent: false,
pageCountStyle: ".stui-page__item li.hidden-xs:last:not(.active)",
homeContent: {
category: {
select: ".stui-header__menu li",
slice: [1, 7]
}
},
detailContent: {
customFunction: function (ids) {
let items = {};
$(".stui-content__detail .data").each(function () {
const item = $(this).text().trim().split("");
items[item[0]] = item[1];
});
let vodPlayData = [];
$(".stui-content__playlist:first").each(function (i) {
let media = [];
$(".stui-content__playlist:first a").each(function () {
media.push({
name: $(this).text().trim(),
type: "webview",
ext: {
replace: {
playUrl: $(this).attr("href"),
}
}
});
})
vodPlayData.push({
from: "在线之家",
media: media
})
})
return vod = {
vod_id: ids[0],
vod_name: $(".stui-content__detail .title").text().trim(),
vod_pic: $(".stui-content__thumb img").data("original"),
vod_remarks: items?.["更新"] || "",
vod_director: items?.["导演"] || "",
vod_actor: items?.["主演"] || "",
vod_content: $(".stui-content__thumb .detail-content").text().trim(),
vod_play_data: vodPlayData
};
}
},
getVodList: function () {
let vodList = [];
$("a.stui-vodlist__thumb").each(function () {
vodList.push({
vod_id: $(this).attr("href"),
vod_name: $(this).attr("title"),
vod_pic: $(this).data("original"),
vod_remarks: $(this).find(".pic-text").text().trim()
})
});
return vodList;
},
getCategoryFilter: function () {
const filters = [];
$("#screenbox .clearfix:gt(0)").each(function () {
const filter = {
key: "",
name: $(this).find("li:first").text().trim(),
value: []
}
$(this).find("a").each(function () {
const params = $(this).attr("href").split(/[/.]/).at(2).split("-").slice(1);
filter.key = "index" + params.findIndex((element) => element.length > 0)
filter.value.push({
n: $(this).text().trim(),
v: params.find((element) => element.length > 0) || ""
})
})
filters.push(filter);
})
return filters;
}
});
$(document).ready(function () {
const result = GmSpider[GMSpiderArgs.fName](...GMSpiderArgs.fArgs);
console.log(JSON.stringify(result));
if (typeof GmSpiderInject !== 'undefined') {
GmSpiderInject.SetSpiderResult(JSON.stringify(result));
}
});
})();
+496
View File
@@ -0,0 +1,496 @@
/*
@header({
searchable: 1,
filterable: 1,
quickSearch: 1,
title: 'yikm[游戏]',
lang: 'cat'
})
*/
let siteKey = "", siteType = "", sourceKey = "", ext = "", host = "";
const myGame = [
{
name: '原神启动!',
url: 'https://ys.mihoyo.com/cloud/m/',
pic: 'https://pan.uvqzu.cn/f/4Z1ue/IMG_20260305_170950.jpg'
},
{
name: '星穹铁道',
url: 'https://sr.mihoyo.com/cloud/m/#/',
pic: 'https://pan.uvqzu.cn/f/Q6ktP/IMG_20260305_171855.jpg'
},
{
name: '好游快爆',
url: 'https://m.3839.com/wap.html',
pic: 'https://pan.uvqzu.cn/f/01jtP/m.baidu.com_1162231158.png'
},
{
name: 'TapTap',
url: 'https://www.taptap.cn/',
pic: 'https://pan.uvqzu.cn/f/xpqhX/m.baidu.com_01172723iyvp.png'
},
{
name: '网易云游戏',
url: 'https://cg.163.com/#/game/recommend?tab_id=66051b810d5fa1f0204c294f',
pic: 'https://pan.uvqzu.cn/f/nAyHZ/IMG_20260305_175247.jpg'
},
{
name: '抖音',
url: 'https://www.douyin.com/?is_from_mobile_home=1',
pic: 'https://pan.uvqzu.cn/f/3lJuW/m.baidu.com_e2ecc9605e2f97e1135d87cab2ddcf08.jpeg'
},
{
name: '拼多多',
url: 'https://mobile.yangkeduo.com/',
pic: 'https://pan.uvqzu.cn/f/4ZrSe/IMG_20260305_183229.png'
},
{
name: '淘宝',
url: 'https://main.m.taobao.com/',
pic: 'https://pan.uvqzu.cn/f/Nw5HW/IMG_20260305_182200.jpg'
},
{
name: '京东',
url: 'https://m.jd.com/',
pic: 'https://pan.uvqzu.cn/f/janHj/IMG_20260305_181852.png'
},
{
name: '野草助手',
url: 'https://www.yecao.net/',
pic: 'https://pan.uvqzu.cn/f/JKPcD/m.baidu.com_20231207112652564.png'
},
{
name: '永劫无间',
url: 'https://cloudgame.ds.163.com/yjwj',
pic: 'https://pan.szfx.top/view.php/2c4445e75e023e2dd5b0439253957c77.jpg'
},
{
name: '梦幻西游',
url: 'https://xyh5.163.com/game/?channel=netease',
pic: 'https://pan.szfx.top/view.php/52902e10204e7b07dbc69f6e3fdec9ab.jpg'
},
{
name: '赛尔号',
url: 'https://s.61.com/',
pic: 'https://pan.szfx.top/view.php/f56ac1ae1dd1a49041199a6719fd9234.png'
},
{
name: '刘明野的工具箱',
url: 'https://tools.liumingye.cn/',
pic: 'https://pan.szfx.top/view.php/1dcefe9108bee4a51f0d8e59cffe7a04.png'
},
{
name: '4399小游戏',
url: 'https://h.4399.com/',
pic: 'https://pan.szfx.top/view.php/b5f614076f8a9df19e3cdd1d01bdf09a.png'
},
{
name: '一千个小游戏',
url: 'https://fuun.fun/',
pic: 'https://pan.szfx.top/view.php/8191c07bb1631cde242a61aa97d7fbe5.jpg'
},
{
name: '小霸王游戏机',
url: 'https://www.yikm.net',
pic: 'https://pan.szfx.top/view.php/4d88e211d22818b011d68073353f0d3d.jpg'
},
{
name: '红色警戒2',
url: 'https://ra2web.com/',
pic: 'https://pan.szfx.top/view.php/80ff902afb37581accc402666382a9fb.jpg'
},
{
name: 'X的世界',
url: 'https://bloxd.io',
pic: 'https://pan.szfx.top/view.php/0f6ff96aa13b4bb6c3adba724df6e34d.png'
},
{
name: '贪吃蛇',
url: 'http://slither.io/',
pic: 'https://pan.szfx.top/view.php/8818a2e27a1c6fa9a6d702e579ad9d1b.jpg'
},
{
name: '斗地主(人机)',
url: 'https://www.haiwaiqipai.com/games/doudizhus/index.html',
pic: 'https://www.haiwaiqipai.com/img/DouDiZhu.jpg'
},
{
name: '五子棋',
url: 'https://wuziqi.hongton.com',
pic: 'https://wuziqi.hongton.com/img/stype/init-bg.png'
},
{
name: '俄罗斯方块',
url: 'https://v2fy.com/game/tetris/',
pic: 'https://i-1-uc129.zswxy.cn/2023/0223/5d809bdb026646478a97a938f7b3300c.png'
},
{
name: '魂斗罗(美版)',
url: 'https://www.yikm.net/play?id=4137',
pic: 'https://img.1990i.com/fcpic/sj/436a.png',
header: {
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
}
},
];
async function request(url, obj) {
if (!obj) {
obj = {
headers: headers,
timeout: 5000
}
}
try {
const response = await req(url, obj);
let html = response.content;
return html;
} catch (e) {
console.log(`请求失败: ${url}`, e.message);
return '';
}
}
// 2. 全局默认请求头(匹配request函数,复用至vod_id的header
const headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 Edg/144.0.0.0'
};
// 公共函数:返回统一的 header 配置
function hdr() {
return {
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
};
}
async function init(cfg) {
siteKey = cfg.skey;
siteType = cfg.stype;
sourceKey = cfg.sourceKey;
ext = cfg.ext;
host = "https://www.yikm.net";
}
async function home(filter) {
const classes = [
{
type_id: '定制',
type_name: '定制',
type_flag: '2-00-S'
}, {
type_id: '/nes?tag=0&e=0&page=',
type_name: 'FC',
type_flag: '[CFS]2-00-S'
}, {
type_id: '/nes?tag=&e=5&page=',
type_name: 'SFC',
type_flag: '[CFS]2-00-S',
}, {
type_id: '/nes?tag=9&e=&page=',
type_name: '街机',
type_flag: '[CFS]2-00-S',
}, {
type_id: '/nes?tag=&e=2&page=',
type_name: 'GBA',
type_flag: '[CFS]2-00-S',
}, {
type_id: '/nes?tag=&e=7&page=',
type_name: 'NDS',
type_flag: '[CFS]2-00-S',
}, {
type_id: '/nes?tag=&e=3&page=',
type_name: 'MD',
type_flag: '[CFS]2-00-S',
}, {
type_id: '/nes?tag=&e=6&page=',
type_name: 'DOS',
type_flag: '[CFS]2-00-S',
}
];
const filters = {
"/nes?tag=0&e=0&page=": [
{
key: 'class',
name: '分类',
value: [{"n": "FC高清", "v": "/nes?tag=&e=4&page="}, {
"n": "动作冒险",
"v": "/nes?tag=2&e=0&page="
}, {"n": "小游戏", "v": "/nes?tag=8&e=0&page="}, {
"n": "飞行射击",
"v": "/nes?tag=3&e=0&page="
}, {"n": "格斗", "v": "/nes?tag=4&e=0&page="}, {"n": "棋牌", "v": "/nes?tag=5&e=0&page="}, {
"n": "射击",
"v": "/nes?tag=6&e=0&page="
}, {"n": "运动比赛", "v": "/nes?tag=7&e=0&page="}, {"n": "角色扮演", "v": "/nes?tag=10&e=0&page="},]
}
], "/nes?tag=&e=5&page=": [
{
key: 'class',
name: '分类',
value: [{"n": "汉化", "v": "/nes?tag=汉化&e=5&page="}, {
"n": "平台",
"v": "/nes?tag=平台&e=5&page="
}, {"n": "策略", "v": "/nes?tag=策略&e=5&page="}, {
"n": "混合",
"v": "/nes?tag=混合&e=5&page="
}, {"n": "动作", "v": "/nes?tag=动作&e=5&page="}, {
"n": "角色扮演",
"v": "/nes?tag=角色扮演&e=5&page="
}, {"n": "射击", "v": "/nes?tag=射击&e=5&page="}, {
"n": "运动",
"v": "/nes?tag=运动&e=5&page="
}, {"n": "格斗", "v": "/nes?tag=格斗&e=5&page="}, {
"n": "休闲",
"v": "/nes?tag=休闲&e=5&page="
}, {"n": "冒险", "v": "/nes?tag=冒险&e=5&page="}, {
"n": "教育",
"v": "/nes?tag=教育&e=5&page="
}, {"n": "赛车", "v": "/nes?tag=赛车&e=5&page="}, {
"n": "模拟",
"v": "/nes?tag=模拟&e=5&page="
}, {"n": "其他", "v": "/nes?tag=其他&e=5&page="},]
}
], "/nes?tag=9&e=&page=": [
{
key: 'class',
name: '分类',
value: [{"n": "动作冒险", "v": "/nes?tag=动作&e=1&page="}, {
"n": "射击",
"v": "/nes?tag=射击&e=1&page="
}, {"n": "赛车", "v": "/nes?tag=赛车&e=1&page="}, {
"n": "格斗",
"v": "/nes?tag=格斗&e=1&page="
}, {"n": "体育", "v": "/nes?tag=体育&e=1&page="}, {
"n": "益智游戏",
"v": "/nes?tag=益智&e=1&page="
}, {"n": "其他", "v": "/nes?tag=其他&e=1&page="},]
}
], "/nes?tag=&e=2&page=": [
{
key: 'class',
name: '分类',
value: [{"n": "动作", "v": "/nes?tag=动作&e=2&page="}, {
"n": "冒险",
"v": "/nes?tag=冒险&e=2&page="
}, {"n": "角色扮演", "v": "/nes?tag=角色扮演&e=2&page="}, {
"n": "运动",
"v": "/nes?tag=运动&e=2&page="
}, {"n": "策略", "v": "/nes?tag=策略&e=2&page="}, {
"n": "格斗",
"v": "/nes?tag=格斗&e=2&page="
}, {"n": "射击", "v": "/nes?tag=射击&e=2&page="}, {
"n": "赛车",
"v": "/nes?tag=赛车&e=2&page="
}, {"n": "体育", "v": "/nes?tag=体育&e=2&page="}, {
"n": "益智游戏",
"v": "/nes?tag=益智&e=2&page="
}, {"n": "模拟", "v": "/nes?tag=模拟&e=2&page="}]
}
], "/nes?tag=&e=7&page=": [
{
key: 'class',
name: '分类',
value: [{"n": "角色扮演", "v": "/nes?tag=角色扮演&e=7&page="}, {
"n": "动作角色扮演",
"v": "/nes?tag=动作角色扮演&e=7&page="
}, {"n": "模拟角色扮演", "v": "/nes?tag=模拟角色扮演&e=7&page="}, {
"n": "动作游戏",
"v": "/nes?tag=动作游戏&e=7&page="
}, {"n": "冒险游戏", "v": "/nes?tag=冒险游戏&e=7&page="}, {
"n": "冒险解谜",
"v": "/nes?tag=冒险解谜&e=7&page="
}, {"n": "策略战棋", "v": "/nes?tag=策略战棋&e=7&page="}, {
"n": "模拟经营",
"v": "/nes?tag=模拟经营&e=7&page="
}, {"n": "体育竞技", "v": "/nes?tag=体育竞技&e=7&page="}, {
"n": "赛车竞速",
"v": "/nes?tag=赛车竞速&e=7&page="
}, {"n": "格斗游戏", "v": "/nes?tag=格斗游戏&e=7&page="}, {
"n": "大乱斗游戏",
"v": "/nes?tag=大乱斗游戏&e=7&page="
}, {"n": "射击游戏", "v": "/nes?tag=射击游戏&e=7&page="}, {
"n": "第一人称射击",
"v": "/nes?tag=第一人称射击&e=7&page="
}, {"n": "益智游戏", "v": "/nes?tag=益智游戏&e=7&page="}, {
"n": "养成游戏",
"v": "/nes?tag=养成游戏&e=7&page="
}, {"n": "音乐游戏", "v": "/nes?tag=音乐游戏&e=7&page="}, {
"n": "恋爱游戏",
"v": "/nes?tag=恋爱游戏&e=7&page="
}, {"n": "卡片游戏", "v": "/nes?tag=卡片游戏&e=7&page="}, {
"n": "桌面游戏",
"v": "/nes?tag=桌面游戏&e=7&page="}
]
}
], "/nes?tag=&e=3&page=": [
{
key: 'class',
name: '分类',
value: [{"n": "角色扮演", "v": "/nes?tag=角色扮演&e=3&page="}, {
"n": "动作冒险",
"v": "/nes?tag=动作冒险&e=3&page="
}, {"n": "策略", "v": "/nes?tag=策略&e=3&page="}, {
"n": "棋牌",
"v": "/nes?tag=棋牌&e=3&page="
}, {"n": "射击", "v": "/nes?tag=射击&e=3&page="}, {
"n": "模拟经营",
"v": "/nes?tag=模拟经营&e=3&page="
}, {"n": "战棋", "v": "/nes?tag=战棋&e=3&page="}, {
"n": "格斗",
"v": "/nes?tag=格斗&e=3&page="
}, {"n": "动作", "v": "/nes?tag=动作&e=3&page="}, {
"n": "解谜",
"v": "/nes?tag=解谜&e=3&page="
}, {"n": "模拟", "v": "/nes?tag=模拟&e=3&page="}, {
"n": "休闲益智",
"v": "/nes?tag=休闲益智&e=3&page="
}, {"n": "体育", "v": "/nes?tag=体育&e=3&page="}, {"n": "音乐", "v": "/nes?tag=音乐&e=3&page="}]
}
]
};
return JSON.stringify({
'class': classes,
'filters': filters
});
}
async function homeVod(params) {
return null;
}
async function category(tid, pg, filter, extend) {
extend = extend || {};
if (tid == '定制') {
// 修复:返回空数组而不是null,避免App崩溃
if (pg != 1) return JSON.stringify({'list': []});
const videos = [];
for (let it of myGame) {
videos.push({
vod_id: JSON.stringify({
actionId: 'browser',
type: 'browser',
title: '小游戏',
url: it.url,
header: it.header
}),
vod_name: it.name,
vod_pic: it.pic,
vod_tag: 'action'
});
}
return JSON.stringify({
'list': videos
});
}
if (extend.custom) {
return search(extend.custom, true, pg);
}
const classz = extend.class;
const targetUrl = classz ? host + classz + pg : host + tid + pg;
const html = await request(targetUrl);
if (!html) return [];
// 提取所有视频卡片
const videoCards = pdfa(html, '.row .col-md-3.col-xs-6 .card-blog');
const videos = [];
for (const card of videoCards) {
// 提取图片链接
const vod_pic = pdfh(card, '.card-image img&&src');
// 提取游戏名称
const vod_name = pdfh(card, 'h4 a&&Text');
// 提取游戏链接
const gamePath = pdfh(card, 'h4 a&&href');
const gameUrl = gamePath.startsWith('http') ? gamePath : host + gamePath;
// 提取标签(如果有多个标签,这里取第一个)
//const vod_tag = pdfh(card, '.table .label:first-child&&Text') || 'action';
videos.push({
vod_id: JSON.stringify({
actionId: 'browser',
type: 'browser',
title: '小游戏',
url: gameUrl,
textZoom: 100,
header: {
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
}
}),
vod_name: vod_name,
vod_pic: vod_pic,
vod_tag: 'action' // 统一转为小写
});
}
// 添加固定项(如crazygames和poki
videos.push(
{
vod_id: JSON.stringify({
actionId: 'browser',
type: 'browser',
title: '小游戏',
url: 'https://www.crazygames.com'
}),
vod_name: 'crazygames',
vod_pic: '',
vod_tag: 'action'
},
{
vod_id: JSON.stringify({
actionId: 'browser',
type: 'browser',
title: '小游戏',
url: 'https://poki.com/zh'
}),
vod_name: 'poki',
vod_pic: '',
vod_tag: 'action'
}
);
return JSON.stringify({
'list': videos
});
}
async function search(wd, quick, pg) {
const p = pg || 1;
const url = host + '/search?name=' + encodeURIComponent(wd);
const html = await request(url);
if (!html) return [];
const videoCard = pdfa(html, '.row .col-md-3.col-xs-6');
console.log('【调试】网络数据:', videoCard);
// 提取所有视频卡片
const videoCards = pdfa(html, '.row .col-md-3.col-xs-6 .card.card-blog');
const videos = [];
for (const card of videoCards) {
// 提取图片链接
const vod_pic = pdfh(card, '.card-image img&&src');
// 提取游戏名称
const vod_name = pdfh(card, 'h4 a&&Text');
// 提取游戏链接
const gamePath = pdfh(card, 'h4 a&&href');
const gameUrl = gamePath.startsWith('http') ? gamePath : host + gamePath;
// 提取标签(如果有多个标签,这里取第一个)
//const vod_tag = pdfh(card, '.table .label:first-child&&Text') || 'action';
videos.push({
vod_id: JSON.stringify({
actionId: 'browser',
type: 'browser',
title: '小游戏',
url: gameUrl,
textZoom: 100,
header: {
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36'
}
}),
vod_name: vod_name,
vod_pic: vod_pic,
vod_tag: 'action'
});
}
return JSON.stringify({
'list': videos,
page: p
});
}
export function __jsEvalReturn() {
return {
init: init,
home: home,
homeVod: homeVod,
category: category,
search: search
};
}
+1
View File
@@ -0,0 +1 @@
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
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+iFvuS6kempvumbvlvlrphdJywKICAgIGhvc3Q6ICdodHRwczovL3YuJTcxJTcxLmNvbScsCiAgICAvLyBob21lVXJsOiAnL3gvYnUvcGFnZXNoZWV0L2xpc3Q/X2FsbD0xJmFwcGVuZD0xJmNoYW5uZWw9Y2hvaWNlJmxpc3RwYWdlPTEmb2Zmc2V0PTAmcGFnZXNpemU9MjEmaWFyZWE9LTEmc29ydD0xOCcsCiAgICBob21lVXJsOiAnL3gvYnUvcGFnZXNoZWV0L2xpc3Q/X2FsbD0xJmFwcGVuZD0xJmNoYW5uZWw9Y2FydG9vbiZsaXN0cGFnZT0xJm9mZnNldD0wJnBhZ2VzaXplPTIxJmlhcmVhPS0xJnNvcnQ9MTgnLAogICAgZGV0YWlsVXJsOiAnaHR0cHM6Ly9ub2RlLnZpZGVvLiU3MSU3MS5jb20veC9hcGkvZmxvYXRfdmluZm8yP2NpZD1meWlkJywKICAgIHNlYXJjaFVybDogJy94L3NlYXJjaC8/cT0qKiZzdGFnPWZ5cGFnZScsCiAgICBzZWFyY2hVcmw6ICdodHRwczovL3BiYWNjZXNzLnZpZGVvLiU3MSU3MS5jb20vdHJwYy52aWRlb3NlYXJjaC5zbWFydGJveFNlcnZlci5IdHRwUm91bnRSZWNhbGwvU21hcnRib3g/cXVlcnk9KiomYXBwSUQ9MzE3MiZhcHBLZXk9bEdoRklQZUQzSHNPOXhFcCZwYWdlTnVtPShmeXBhZ2UtMSkmcGFnZVNpemU9MTAnLAogICAgc2VhcmNoYWJsZTogMiwKICAgIGZpbHRlcmFibGU6IDEsCiAgICBtdWx0aTogMSwKICAgIC8vIHVybDonL2NoYW5uZWwvZnljbGFzcz9saXN0cGFnZT1meXBhZ2UmY2hhbm5lbD1meWNsYXNzJnNvcnQ9MTgmX2FsbD0xJywKICAgIHVybDogJy94L2J1L3BhZ2VzaGVldC9saXN0P19hbGw9MSZhcHBlbmQ9MSZjaGFubmVsPWZ5Y2xhc3MmbGlzdHBhZ2U9MSZvZmZzZXQ9KChmeXBhZ2UtMSkqMjEpJnBhZ2VzaXplPTIxJmlhcmVhPS0xJywKICAgIC8vIGZpbHRlcl91cmw6ICdzb3J0PXt7Zmwuc29ydCBvciAxOH19JnllYXI9e3tmbC55ZWFyfX0mcGF5PXt7ZmwucGF5fX0nLAogICAgLy8gZmlsdGVyX3VybDogJ3NvcnQ9e3tmbC5zb3J0IG9yIDc1fX0meWVhcj17e2ZsLnllYXJ9fSZwYXk9e3tmbC5wYXl9fScsCiAgICBmaWx0ZXJfdXJsOiAnc29ydD17e2ZsLnNvcnQgb3IgNzV9fSZpeWVhcj17e2ZsLml5ZWFyfX0meWVhcj17e2ZsLnllYXJ9fSZpdHlwZT17e2ZsLnR5cGV9fSZpZmVhdHVyZT17e2ZsLmZlYXR1cmV9fSZpYXJlYT17e2ZsLmFyZWF9fSZpdHJhaWxlcj17e2ZsLml0cmFpbGVyfX0mZ2VuZGVyPXt7Zmwuc2V4fX0nLAogICAgLy8gZmlsdGVyOiAnSDRzSUFBQUFBQUFBQSsyVXpVckRRQkNBMzJYT0VaTFVKckd2SWowc2FhREJOaXN4QmtJSkNHM0ZpNG9lcElnM0VRb2llcWlIK3ZNMjNacStoUnVhWkxaNGNlOXoyL2xtZDJkMitOZ1IrSDBlK2dGMERrZHdGR1RRZ1JNZUoyQkF4SWFTd3ZycVZueGN5emhsZzlQdHRxakVEMmMvNDVjU3k4RHlJRGNhdnI1N3EvbEJ3OFhUZC9FNnFiblQ4TTN6VEZ5YzcyUnRDL0p1bWQrMmM4d3k3S1o0bnhTTDVaOXV4SFMrR2Mrcjgzc1dWcDFlVnR0bDREbHVrMWg5M1l1YldaVndkdXBsQVl1eG9GZ3VWcCtQL3k1b20vWisvWXh5cWZBVzhwYktiZVMyeWkza08vZWJ5RTJGeTFuWFhCbTdERHprbnNwZDVLN0tIZVNPeXR2STIrWEF1Z1lrS1dsRDJtaHJNK1JwU0I4T21hTnZUc3JpTUVneWNvZmMwWGJIWjNIQ2VVVHVrRHY2N3ZURFFZL01JWE8wemVseG41TTRKSTZtT1Brdmdzd1NFcGdQQUFBPScsCiAgICBmaWx0ZXI6IHsKICAgICAgICAiY2hvaWNlIjogW3sKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICI3NSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5pawIiwKICAgICAgICAgICAgICAgICJ2IjogIjgzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlpb3or4QiLAogICAgICAgICAgICAgICAgInYiOiAiODEiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogIml5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICItMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgInR2IjogW3sKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICI3NSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5pawIiwKICAgICAgICAgICAgICAgICJ2IjogIjc5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlpb3or4QiLAogICAgICAgICAgICAgICAgInYiOiAiMTYiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogImZlYXR1cmUiLAogICAgICAgICAgICAibmFtZSI6ICLnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIi0xIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLniLHmg4UiLAogICAgICAgICAgICAgICAgInYiOiAiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Y+k6KOFIiwKICAgICAgICAgICAgICAgICJ2IjogIjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaCrOeWkSIsCiAgICAgICAgICAgICAgICAidiI6ICIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpg73luIIiLAogICAgICAgICAgICAgICAgInYiOiAiNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5a625bqtIiwKICAgICAgICAgICAgICAgICJ2IjogIjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWWnOWJpyIsCiAgICAgICAgICAgICAgICAidiI6ICI2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLkvKDlpYciLAogICAgICAgICAgICAgICAgInYiOiAiNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5q2m5L6gIiwKICAgICAgICAgICAgICAgICJ2IjogIjgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGm+aXhSIsCiAgICAgICAgICAgICAgICAidiI6ICI5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnYPosIsiLAogICAgICAgICAgICAgICAgInYiOiAiMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumdqeWRvSIsCiAgICAgICAgICAgICAgICAidiI6ICIxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi546w5a6eIiwKICAgICAgICAgICAgICAgICJ2IjogIjEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLpnZLmmKUiLAogICAgICAgICAgICAgICAgInYiOiAiMTQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueMjuWlhyIsCiAgICAgICAgICAgICAgICAidiI6ICIxNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56eR5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIjE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnq57mioAiLAogICAgICAgICAgICAgICAgInYiOiAiMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueOhOW5uyIsCiAgICAgICAgICAgICAgICAidiI6ICIxOCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiaXllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIi0xIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAibW92aWUiOiBbewogICAgICAgICAgICAia2V5IjogInNvcnQiLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogIjc1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiODMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWlveivhCIsCiAgICAgICAgICAgICAgICAidiI6ICI4MSIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAidHlwZSIsCiAgICAgICAgICAgICJuYW1lIjogIuexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiLTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIueKr+e9qiIsCiAgICAgICAgICAgICAgICAidiI6ICI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlirHlv5ciLAogICAgICAgICAgICAgICAgInYiOiAiMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Zac5YmnIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAwNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi54Ot6KGAIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDA2MSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oKs55aRIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAwOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi54ix5oOFIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAwNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56eR5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oGQ5oCWIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Yqo55S7IiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oiY5LqJIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAwNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5a625bqtIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Ymn5oOFIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aWH5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5q2m5L6gIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Y6G5Y+yIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6ICB54mHIiwKICAgICAgICAgICAgICAgICJ2IjogIjEwMDAxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6KW/6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuiusOW9leeJhyIsCiAgICAgICAgICAgICAgICAidiI6ICIxMDAwMjAiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIi0xIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAidmFyaWV0eSI6IFt7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDng60iLAogICAgICAgICAgICAgICAgInYiOiAiNzUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMyIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiaXllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIi0xIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAiY2FydG9vbiI6IFt7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDng60iLAogICAgICAgICAgICAgICAgInYiOiAiNzUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICI4MyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5aW96K+EIiwKICAgICAgICAgICAgICAgICJ2IjogIjgxIgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJhcmVhIiwKICAgICAgICAgICAgIm5hbWUiOiAi5Zyw5Yy6IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICItMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YaF5ZywIiwKICAgICAgICAgICAgICAgICJ2IjogIjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaXpeacrCIsCiAgICAgICAgICAgICAgICAidiI6ICIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmrKfnvo4iLAogICAgICAgICAgICAgICAgInYiOiAiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YW25LuWIiwKICAgICAgICAgICAgICAgICJ2IjogIjQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInR5cGUiLAogICAgICAgICAgICAibmFtZSI6ICLnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogIi0xIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnjoTlubsiLAogICAgICAgICAgICAgICAgInYiOiAiOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi56eR5bm7IiwKICAgICAgICAgICAgICAgICJ2IjogIjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuatpuS+oCIsCiAgICAgICAgICAgICAgICAidiI6ICIxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YaS6ZmpIiwKICAgICAgICAgICAgICAgICJ2IjogIjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaImOaWlyIsCiAgICAgICAgICAgICAgICAidiI6ICI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmkJ7nrJEiLAogICAgICAgICAgICAgICAgInYiOiAiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5oGL54ixIiwKICAgICAgICAgICAgICAgICJ2IjogIjciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIumtlOW5uyIsCiAgICAgICAgICAgICAgICAidiI6ICI2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnq57mioAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaCrOeWkSIsCiAgICAgICAgICAgICAgICAidiI6ICIxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pel5bi4IiwKICAgICAgICAgICAgICAgICJ2IjogIjE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmoKHlm60iLAogICAgICAgICAgICAgICAgInYiOiAiMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuecn+S6uiIsCiAgICAgICAgICAgICAgICAidiI6ICIxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5o6o55CGIiwKICAgICAgICAgICAgICAgICJ2IjogIjE0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLljoblj7IiLAogICAgICAgICAgICAgICAgInYiOiAiMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIue7j+WFuCIsCiAgICAgICAgICAgICAgICAidiI6ICIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhbbku5YiLAogICAgICAgICAgICAgICAgInYiOiAiMTIiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogIml5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICItMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgImNoaWxkIjogW3sKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICI3NSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5pawIiwKICAgICAgICAgICAgICAgICJ2IjogIjc2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlpb3or4QiLAogICAgICAgICAgICAgICAgInYiOiAiMjAiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInNleCIsCiAgICAgICAgICAgICJuYW1lIjogIuaAp+WIqyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiLTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWls+WtqSIsCiAgICAgICAgICAgICAgICAidiI6ICIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnlLflrakiLAogICAgICAgICAgICAgICAgInYiOiAiMiIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAiYXJlYSIsCiAgICAgICAgICAgICJuYW1lIjogIuWcsOWMuiIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiLTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGheWcsCIsCiAgICAgICAgICAgICAgICAidiI6ICIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLml6XmnKwiLAogICAgICAgICAgICAgICAgInYiOiAiMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YW25LuWIiwKICAgICAgICAgICAgICAgICJ2IjogIjEiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogIml5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm06b6E5q61IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICItMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMC0z5bKBIiwKICAgICAgICAgICAgICAgICJ2IjogIjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjQtNuWygSIsCiAgICAgICAgICAgICAgICAidiI6ICIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICI3LTnlsoEiLAogICAgICAgICAgICAgICAgInYiOiAiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMTDlsoHku6XkuIoiLAogICAgICAgICAgICAgICAgInYiOiAiNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YWo5bm06b6E5q61IiwKICAgICAgICAgICAgICAgICJ2IjogIjciCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgImRvY28iOiBbewogICAgICAgICAgICAia2V5IjogInNvcnQiLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogIjc1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiNzQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogIml0cmFpbGVyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5Ye65ZOB5pa5IiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICItMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiQkJDIiwKICAgICAgICAgICAgICAgICJ2IjogIjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWbveWutuWcsOeQhiIsCiAgICAgICAgICAgICAgICAidiI6ICI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJIQk8iLAogICAgICAgICAgICAgICAgInYiOiAiMzE3NSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiTkhLIiwKICAgICAgICAgICAgICAgICJ2IjogIjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWOhuWPsumikemBkyIsCiAgICAgICAgICAgICAgICAidiI6ICI3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJJVFYiLAogICAgICAgICAgICAgICAgInYiOiAiMzUzMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5o6i57Si6aKR6YGTIiwKICAgICAgICAgICAgICAgICJ2IjogIjMxNzQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIlpERiIsCiAgICAgICAgICAgICAgICAidiI6ICIzMTc2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLohb7orq/oh6rliLYiLAogICAgICAgICAgICAgICAgInYiOiAiMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWQiOS9nOacuuaehCIsCiAgICAgICAgICAgICAgICAidiI6ICI2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhbbku5YiLAogICAgICAgICAgICAgICAgInYiOiAiNSIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAidHlwZSIsCiAgICAgICAgICAgICJuYW1lIjogIuexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiLTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuiHqueEtiIsCiAgICAgICAgICAgICAgICAidiI6ICI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnvo7po58iLAogICAgICAgICAgICAgICAgInYiOiAiMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuekvuS8miIsCiAgICAgICAgICAgICAgICAidiI6ICIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLkurrmlociLAogICAgICAgICAgICAgICAgInYiOiAiNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5Y6G5Y+yIiwKICAgICAgICAgICAgICAgICJ2IjogIjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWGm+S6iyIsCiAgICAgICAgICAgICAgICAidiI6ICIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnp5HmioAiLAogICAgICAgICAgICAgICAgInYiOiAiOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi6LSi57uPIiwKICAgICAgICAgICAgICAgICJ2IjogIjE0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmjqLpmakiLAogICAgICAgICAgICAgICAgInYiOiAiMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIue9quahiCIsCiAgICAgICAgICAgICAgICAidiI6ICI3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnq57mioAiLAogICAgICAgICAgICAgICAgInYiOiAiMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuaXhea4uCIsCiAgICAgICAgICAgICAgICAidiI6ICIxMSIKICAgICAgICAgICAgfV0KICAgICAgICB9XQogICAgfSwKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScKICAgIH0sCiAgICB0aW1lb3V0OiA1MDAwLAogICAgLy8gY2xhc3NfcGFyc2U6Jy5zaXRlX2NoYW5uZWwgYTthJiZUZXh0O2EmJmhyZWY7Y2hhbm5lbC8oLiopJywKICAgIGNhdGVfZXhjbHVkZTogJ+S8muWRmHzmuLjmiI985YWo6YOoJywKICAgIC8vIGNsYXNzX25hbWU6ICfnsr7pgIkm55S16KeG5YmnJueUteW9sSbnu7zoibom5Yqo5ryrJuWwkeWEvybnuqrlvZXniYcnLAogICAgLy8gY2xhc3NfdXJsOiAnY2hvaWNlJnR2Jm1vdmllJnZhcmlldHkmY2FydG9vbiZjaGlsZCZkb2NvJywKICAgIGNsYXNzX25hbWU6ICflhazkvJflj7c65LiH5b2x5a626KeGfDRr55S15b2xJjRr55S16KeG5YmnJjRr57u86Im6JjRr5Yqo5ryrJjRr5bCR5YS/JjRr57qq5b2V54mHJywKICAgIGNsYXNzX3VybDogJ21vdmllJnR2JnZhcmlldHkmY2FydG9vbiZjaGlsZCZkb2NvJywKICAgIGxpbWl0OiAyMCwKICAgIC8vIHBsYXlfcGFyc2U6dHJ1ZSwKICAgIC8vIOaJi+WKqOiwg+eUqOino+aekOivt+axgmpzb27nmoR1cmws5q2kbGF6eeS4jeaWueS+vwogICAgcGxheV9wYXJzZTogdHJ1ZSwKICAgIGxhenk6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgbGV0IGFwaSA9ICIiICsgaW5wdXQuc3BsaXQoIj8iKVswXTsKICAgICAgICAgICAgY29uc29sZS5sb2coYXBpKTsKICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gZmV0Y2goYXBpLCB7CiAgICAgICAgICAgICAgICBtZXRob2Q6ICdnZXQnLAogICAgICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ29raHR0cC8zLjE0LjknLAogICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbGV0IGJhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlKTsKICAgICAgICAgICAgaWYgKGJhdGEudXJsLmluY2x1ZGVzKCJxcSIpKSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IHsKICAgICAgICAgICAgICAgICAgICBwYXJzZTogMCwKICAgICAgICAgICAgICAgICAgICB1cmw6IGJhdGEudXJsLAogICAgICAgICAgICAgICAgICAgIGp4OiAwLAogICAgICAgICAgICAgICAgICAgIGRhbm1ha3U6ICJodHRwOi8vMTAzLjQ1LjE2Mi4yMDc6MjUyNTIvaGJkbS5waHA/a2V5PTc4OTQ1NjEyMzImaWQ9IiArIGlucHV0LnNwbGl0KCI/IilbMF0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IHsKICAgICAgICAgICAgICAgICAgICBwYXJzZTogMCwKICAgICAgICAgICAgICAgICAgICB1cmw6IGlucHV0LnNwbGl0KCI/IilbMF0sCiAgICAgICAgICAgICAgICAgICAgang6IDEsCiAgICAgICAgICAgICAgICAgICAgZGFubWFrdTogImh0dHA6Ly8xMDMuNDUuMTYyLjIwNzoyNTI1Mi9oYmRtLnBocD9rZXk9Nzg5NDU2MTIzMiZpZD0iICsgaW5wdXQuc3BsaXQoIj8iKVswXQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBpbnB1dCA9IHsKICAgICAgICAgICAgICAgIHBhcnNlOiAwLAogICAgICAgICAgICAgICAgdXJsOiBpbnB1dC5zcGxpdCgiPyIpWzBdLAogICAgICAgICAgICAgICAgang6IDEsCiAgICAgICAgICAgICAgICBkYW5tYWt1OiAiaHR0cDovLzEwMy40NS4xNjIuMjA3OjI1MjUyL2hiZG0ucGhwP2tleT03ODk0NTYxMjMyJmlkPSIgKyBpbnB1dC5zcGxpdCgiPyIpWzBdCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfSksCiAgICDmjqjojZA6ICcubGlzdF9pdGVtO2ltZyYmYWx0O2ltZyYmc3JjO2EmJlRleHQ7YSYmZGF0YS1mbG9hdCcsCiAgICDkuIDnuqc6ICcubGlzdF9pdGVtO2ltZyYmYWx0O2ltZyYmc3JjO2EmJlRleHQ7YSYmZGF0YS1mbG9hdCcsCiAgICDkuoznuqc6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgVk9EID0ge307CiAgICAgICAgbGV0IGQgPSBbXTsKICAgICAgICBsZXQgdmlkZW9fbGlzdCA9IFtdOwogICAgICAgIGxldCB2aWRlb19saXN0cyA9IFtdOwogICAgICAgIGxldCBsaXN0ID0gW107CiAgICAgICAgbGV0IFFaT3V0cHV0SnNvbjsKICAgICAgICBsZXQgaHRtbCA9IGZldGNoKGlucHV0LCBmZXRjaF9wYXJhbXMpOwogICAgICAgIGxldCBzb3VyY2VJZCA9IC9nZXRfcGxheXNvdXJjZS8udGVzdChpbnB1dCkgPyBpbnB1dC5tYXRjaCgvaWQ9KFxkKj8pJi8pWzFdIDogaW5wdXQuc3BsaXQoImNpZD0iKVsxXTsKICAgICAgICBsZXQgY2lkID0gc291cmNlSWQ7CiAgICAgICAgbGV0IGRldGFpbFVybCA9ICJodHRwczovL3YuJTcxJTcxLmNvbS9kZXRhaWwvbS8iICsgY2lkICsgIi5odG1sIjsKICAgICAgICBsb2coIuivpuaDhemhtToiICsgZGV0YWlsVXJsKTsKICAgICAgICBwZGZoID0ganNwLnBkZmg7CiAgICAgICAgcGQgPSBqc3AucGQ7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgICAgICBWT0QgPSB7CiAgICAgICAgICAgICAgICB2b2RfdXJsOiBpbnB1dCwKICAgICAgICAgICAgICAgIHZvZF9uYW1lOiBqc29uLmMudGl0bGUsCiAgICAgICAgICAgICAgICB0eXBlX25hbWU6IGpzb24udHlwLmpvaW4oIiwiKSwKICAgICAgICAgICAgICAgIHZvZF9hY3RvcjoganNvbi5uYW0uam9pbigiLCIpLAogICAgICAgICAgICAgICAgdm9kX3llYXI6IGpzb24uYy55ZWFyLAogICAgICAgICAgICAgICAgdm9kX2NvbnRlbnQ6IGpzb24uYy5kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgIHZvZF9yZW1hcmtzOiBqc29uLnJlYywKICAgICAgICAgICAgICAgIHZvZF9waWM6IHVybGpvaW4yKGlucHV0LCBqc29uLmMucGljKQogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBsb2coIuino+aekOeJh+WQjea1t+aKpeetieWfuuehgOS/oeaBr+WPkeeUn+mUmeivrzoiICsgZS5tZXNzYWdlKQogICAgICAgIH0KICAgICAgICBpZiAoL2dldF9wbGF5c291cmNlLy50ZXN0KGlucHV0KSkgewogICAgICAgICAgICBldmFsKGh0bWwpOwogICAgICAgICAgICBsZXQgaW5kZXhMaXN0ID0gUVpPdXRwdXRKc29uLlBsYXlsaXN0SXRlbS5pbmRleExpc3Q7CiAgICAgICAgICAgIGluZGV4TGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0KSB7CiAgICAgICAgICAgICAgICBsZXQgZGF0YVVybCA9ICJodHRwczovL3MudmlkZW8ucXEuY29tL2dldF9wbGF5c291cmNlP2lkPSIgKyBzb3VyY2VJZCArICImcGxhdD0yJnR5cGU9NCZkYXRhX3R5cGU9MyZyYW5nZT0iICsgaXQgKyAiJnZpZGVvX3R5cGU9MTAmcGxuYW1lPXFxJm90eXBlPWpzb24iOwogICAgICAgICAgICAgICAgZXZhbChmZXRjaChkYXRhVXJsLCBmZXRjaF9wYXJhbXMpKTsKICAgICAgICAgICAgICAgIGxldCB2ZGF0YSA9IFFaT3V0cHV0SnNvbi5QbGF5bGlzdEl0ZW0udmlkZW9QbGF5TGlzdDsKICAgICAgICAgICAgICAgIHZkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgICAgICAgICAgIGQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBpdGVtLnBpYywKICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogaXRlbS5lcGlzb2RlX251bWJlciArICJcdFx0XHTmkq3mlL7ph4/vvJoiICsgaXRlbS50aGlyZExpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogaXRlbS5wbGF5VXJsCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgdmlkZW9fbGlzdHMgPSB2aWRlb19saXN0cy5jb25jYXQodmRhdGEpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgICAgICB2aWRlb19saXN0cyA9IGpzb24uYy52aWRlb19pZHM7CiAgICAgICAgICAgIGxldCB1cmwgPSAiaHR0cHM6Ly92LnFxLmNvbS94L2NvdmVyLyIgKyBzb3VyY2VJZCArICIuaHRtbCI7CiAgICAgICAgICAgIGlmICh2aWRlb19saXN0cy5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgICAgIGxldCB2aWQgPSB2aWRlb19saXN0c1swXTsKICAgICAgICAgICAgICAgIHVybCA9ICJodHRwczovL3YucXEuY29tL3gvY292ZXIvIiArIGNpZCArICIvIiArIHZpZCArICIuaHRtbCI7CiAgICAgICAgICAgICAgICBkLnB1c2goewogICAgICAgICAgICAgICAgICAgIHRpdGxlOiAi5YWs5LyX5Y+3OuS4h+W9seWutuinhnwtNGvoh7vlvakiLAogICAgICAgICAgICAgICAgICAgIHVybDogdXJsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9IGVsc2UgaWYgKHZpZGVvX2xpc3RzLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmlkZW9fbGlzdHMubGVuZ3RoOyBpICs9IDMwKSB7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9fbGlzdC5wdXNoKHZpZGVvX2xpc3RzLnNsaWNlKGksIGkgKyAzMCkpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB2aWRlb19saXN0LmZvckVhY2goZnVuY3Rpb24oaXQsIGlkZXgpIHsKICAgICAgICAgICAgICAgICAgICBsZXQgb191cmwgPSAiaHR0cHM6Ly91bmlvbi52aWRlby5xcS5jb20vZmNnaS1iaW4vZGF0YT9vdHlwZT1qc29uJnRpZD0xODA0JmFwcGlkPTIwMDAxMjM4JmFwcGtleT02YzAzYmJlOTY1ODQ0OGE0JnVuaW9uX3BsYXRmb3JtPTEmaWRsaXN0PSIgKyBpdC5qb2luKCIsIik7CiAgICAgICAgICAgICAgICAgICAgbGV0IG9faHRtbCA9IGZldGNoKG9fdXJsLCBmZXRjaF9wYXJhbXMpOwogICAgICAgICAgICAgICAgICAgIGV2YWwob19odG1sKTsKICAgICAgICAgICAgICAgICAgICBRWk91dHB1dEpzb24ucmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uKGl0MSkgewogICAgICAgICAgICAgICAgICAgICAgICBpdDEgPSBpdDEuZmllbGRzOwogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gImh0dHBzOi8vdi5xcS5jb20veC9jb3Zlci8iICsgY2lkICsgIi8iICsgaXQxLnZpZCArICIuaHRtbCI7CiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXQxLnRpdGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogaXQxLnBpYzE2MHg5MC5yZXBsYWNlKCIvMTYwIiwgIiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogaXQxLnZpZGVvX2NoZWNrdXBfdGltZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXQxLmNhdGVnb3J5X21hcCAmJiBpdDEuY2F0ZWdvcnlfbWFwLmxlbmd0aCA+IDEgPyBpdDEuY2F0ZWdvcnlfbWFwWzFdIDogIiIKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgeWcgPSBkLmZpbHRlcihmdW5jdGlvbihpdCkgewogICAgICAgICAgICByZXR1cm4gaXQudHlwZSAmJiBpdC50eXBlICE9PSAi5q2j54mHIgogICAgICAgIH0pOwogICAgICAgIGxldCB6cCA9IGQuZmlsdGVyKGZ1bmN0aW9uKGl0KSB7CiAgICAgICAgICAgIHJldHVybiAhKGl0LnR5cGUgJiYgaXQudHlwZSAhPT0gIuato+eJhyIpCiAgICAgICAgfSk7CiAgICAgICAgVk9ELnZvZF9wbGF5X2Zyb20gPSB5Zy5sZW5ndGggPCAxID8gIuWFrOS8l+WPtzrkuIflvbHlrrbop4Z8NGvoh7vlvanljp/nlLsiIDogIjRr6Ie75b2p5Y6f55S7MiQkJOiFvuiur+mihOWRiuWPiuiKsee1riI7CiAgICAgICAgVk9ELnZvZF9wbGF5X3VybCA9IHlnLmxlbmd0aCA8IDEgPyBkLm1hcChmdW5jdGlvbihpdCkgewogICAgICAgICAgICByZXR1cm4gaXQudGl0bGUgKyAiJCIgKyBpdC51cmwKICAgICAgICB9KS5qb2luKCIjIikgOiBbenAsIHlnXS5tYXAoZnVuY3Rpb24oaXQpIHsKICAgICAgICAgICAgcmV0dXJuIGl0Lm1hcChmdW5jdGlvbihpdHMpIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdHMudGl0bGUgKyAiJCIgKyBpdHMudXJsCiAgICAgICAgICAgIH0pLmpvaW4oIiMiKQogICAgICAgIH0pLmpvaW4oIiQkJCIpOwogICAgfSksCiAgICDmkJzntKI6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgbGV0IGQgPSBbXTsKICAgICAgICBwZGZhID0ganNwLnBkZmE7CiAgICAgICAgcGRmaCA9IGpzcC5wZGZoOwogICAgICAgIHBkID0ganNwLnBkOwogICAgICAgIGxldCBodG1sID0gcmVxdWVzdChpbnB1dCk7CiAgICAgICAgbGV0IGJhc2VMaXN0ID0gcGRmYShodG1sLCAiYm9keSYmLnJlc3VsdF9pdGVtX3YiKTsKICAgICAgICBsb2coYmFzZUxpc3QubGVuZ3RoKTsKICAgICAgICBiYXNlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uKGl0KSB7CiAgICAgICAgICAgIGxldCBsb25nVGV4dCA9IHBkZmgoaXQsICIucmVzdWx0X3RpdGxlJiZhJiZUZXh0Iik7CiAgICAgICAgICAgIGxldCBzaG9ydFRleHQgPSBwZGZoKGl0LCAiLnR5cGUmJlRleHQiKTsKICAgICAgICAgICAgbGV0IGZyb21UYWcgPSBwZGZoKGl0LCAiLnJlc3VsdF9zb3VyY2UmJlRleHQiKTsKICAgICAgICAgICAgbGV0IHNjb3JlID0gcGRmaChpdCwgIi5maWd1cmVfaW5mbyYmVGV4dCIpOwogICAgICAgICAgICBsZXQgY29udGVudCA9IHBkZmgoaXQsICIuZGVzY190ZXh0JiZUZXh0Iik7CiAgICAgICAgICAgIC8vIGxldCB1cmwgPSBwZGZoKGl0LCAiLnJlc3VsdF90aXRsZSYmYSYmaHJlZiIpOwogICAgICAgICAgICBsZXQgdXJsID0gcGRmaChpdCwgImRpdiYmci1kYXRhIik7CiAgICAgICAgICAgIC8vIGxvZyhsb25nVGV4dCk7CiAgICAgICAgICAgIC8vIGxvZyhzaG9ydFRleHQpOwogICAgICAgICAgICAvLyBsb2coJ3VybDonK3VybCk7CiAgICAgICAgICAgIGxldCBpbWcgPSBwZChpdCwgIi5maWd1cmVfcGljJiZzcmMiKTsKICAgICAgICAgICAgdXJsID0gImh0dHBzOi8vbm9kZS52aWRlby5xcS5jb20veC9hcGkvZmxvYXRfdmluZm8yP2NpZD0iICsgdXJsLm1hdGNoKC8uKlwvKC4qPylcLmh0bWwvKVsxXTsKICAgICAgICAgICAgbG9nKHNob3J0VGV4dCArICJ8IiArIHVybCk7CiAgICAgICAgICAgIGlmIChmcm9tVGFnLm1hdGNoKC/ohb7orq8vKSkgewogICAgICAgICAgICAgICAgZC5wdXNoKHsKICAgICAgICAgICAgICAgICAgICB0aXRsZTogbG9uZ1RleHQuc3BsaXQoc2hvcnRUZXh0KVswXSwKICAgICAgICAgICAgICAgICAgICBpbWc6IGltZywKICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCwKICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBjb250ZW50LAogICAgICAgICAgICAgICAgICAgIGRlc2M6IHNob3J0VGV4dCArICIgIiArIHNjb3JlCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgc2V0UmVzdWx0KGQpOwogICAgfSksCiAgICDmkJzntKI6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgbGV0IGQgPSBbXTsKICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoaW5wdXQpOwogICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICBpZiAoanNvbi5kYXRhLnNtYXJ0Ym94SXRlbUxpc3QubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsZXQgY2lkID0ganNvbi5kYXRhLnNtYXJ0Ym94SXRlbUxpc3RbMF0uYmFzaWNEb2MuaWQ7CiAgICAgICAgICAgIGxldCB1cmwgPSAnaHR0cHM6Ly9ub2RlLnZpZGVvLnFxLmNvbS94L2FwaS9mbG9hdF92aW5mbzI/Y2lkPScgKyBjaWQ7CiAgICAgICAgICAgIGxldCBodG1sMSA9IHJlcXVlc3QodXJsKTsKICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGh0bWwxKTsKCiAgICAgICAgICAgIGQucHVzaCh7CiAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS5jLnRpdGxlLAogICAgICAgICAgICAgICAgaW1nOiBkYXRhLmMucGljLAogICAgICAgICAgICAgICAgdXJsOiB1cmwsCiAgICAgICAgICAgICAgICBjb250ZW50OiBkYXRhLmMuZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICBkZXNjOiBkYXRhLnJlYwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgc2V0UmVzdWx0KGQpOwogICAgfSkKfQ==
+1
View File
@@ -0,0 +1 @@
dmFyIHJ1bGUgPSB7CiAgICB0aXRsZTogJ+eZvuW/meaXoOaenFvlrphdJywKICAgIGhvc3Q6ICdodHRwczovL3BpYW5rdS5hcGkuJTZkJTY3JTc0JTc2LmNvbScsCiAgICBob21lVXJsOiAnJywKICAgIC8vIHNlYXJjaFVybDogJ2h0dHBzOi8vbW9iaWxlc28uYnouJTZkJTY3JTc0JTc2LmNvbS9wYy9zZWFyY2gvdjE/cT0qKiZwbj1meXBhZ2UmcGM9MTAnLAogICAgLy8g5paw54mI5o6l5Y+j5pCc57Si5Y+Y5oiQdjLlubbkuJTliqDkuobpqozor4HvvIzom4vnlrwKICAgIC8vIHNlYXJjaFVybDogJ2h0dHBzOi8vbW9iaWxlc28uYnoubWd0di5jb20vcGMvc2VhcmNoL3YyP2FsbG93ZWRSQz0xJnNyYz1tZ3R2JmRpZD1jZjAzYjk1OS02OTQ1LTRjYjYtYmNiMy04ODc2MjQ1OTM1NGQmdGltZXN0YW1wPTIwMjQtMDYtMjFUMTUlM0E1MiUzQTU1WiZzaWduVmVyc2lvbj0xJnNpZ25Ob25jZT04ZGFlNjdhMWZhZmM0YmRhOTg0ZWM4ZGViNDc2NjZhZCZxPSoqJnBuPWZ5cGFnZSZwYz0xMCZjb3JyPTEmX3N1cHBvcnQ9MTAwMDAwMDAmc2lnbmF0dXJlPTRlMjdmZGRjZDJhMWE2NmQ2YzE3NjRlZDZiNzRiYWI3JywKICAgIC8vIOeUqOaJi+acuueahOWQp++8jOaQnuS4jeWumui/meS4qgogICAgc2VhcmNoVXJsOiAnaHR0cHM6Ly9tb2JpbGVzby5iei4lNmQlNjclNzQlNzYuY29tL21zaXRlL3NlYXJjaC92Mj9xPSoqJnBuPWZ5cGFnZSZwYz0xMCcsCiAgICBkZXRhaWxVcmw6ICdodHRwczovL3Bjd2ViLmFwaS5tZ3R2LmNvbS9lcGlzb2RlL2xpc3Q/cGFnZT0xJnNpemU9NTAmdmlkZW9faWQ9ZnlpZCcsCiAgICBzZWFyY2hhYmxlOiAyLAogICAgcXVpY2tTZWFyY2g6IDAsCiAgICBmaWx0ZXJhYmxlOiAxLAogICAgbXVsdGk6IDEsCiAgICAvLyDliIbnsbvpk77mjqVmeXBhZ2Xlj4LmlbDmlK/mjIEx5LiqKCnooajovr7lvI8KICAgIC8vIGh0dHBzOi8vd3d3Lm1ndHYuY29tL2xpYi8zP2xhc3RwPWxpc3RfaW5kZXgma2luZD1hMSZ5ZWFyPWFsbCZjaGFyZ2VJbmZvPWExJnNvcnQ9YzIKICAgIHVybDogJy9yaWRlci9saXN0L3Bjd2ViL3YzP3BsYXRmb3JtPXBjd2ViJmNoYW5uZWxJZD1meWNsYXNzJnBuPWZ5cGFnZSZwYz04MCZodWRvbmc9MSZfc3VwcG9ydD0xMDAwMDAwMCZraW5kPWExJmFyZWE9YTEnLAogICAgZmlsdGVyX3VybDogJ3llYXI9e3tmbC55ZWFyIG9yICJhbGwifX0mc29ydD17e2ZsLnNvcnQgb3IgImFsbCJ9fSZjaGFyZ2VJbmZvPXt7ZmwuY2hhcmdlSW5mbyBvciAiYWxsIn19JywKICAgIGhlYWRlcnM6IHsKICAgICAgICAnVXNlci1BZ2VudCc6ICdQQ19VQScKICAgIH0sCiAgICB0aW1lb3V0OiA1MDAwLAogICAgY2xhc3NfbmFtZTogJzRr55S15b2xJjRr5Zu95Lqn5YmnJjRr57u86Im6JjRr5Yqo5ryrJjRr57qq5b2V54mHJjRr5pWZ6IKyJjRr5bCR5YS/JuWFrOS8l+WPtzrkuIflvbHlrrbop4YnLAogICAgY2xhc3NfdXJsOiAnMyYyJjEmNTAmNTEmMTE1JjEwJjEwJywKICAgIGZpbHRlcjogewogICAgICAgICIxIjogW3sKICAgICAgICAgICAgImtleSI6ICJjaGFyZ2VJbmZvIiwKICAgICAgICAgICAgIm5hbWUiOiAi5LuY6LS557G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWFjei0uSIsCiAgICAgICAgICAgICAgICAidiI6ICJiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAidmlwIiwKICAgICAgICAgICAgICAgICJ2IjogImIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJWSVDnlKjliLgiLAogICAgICAgICAgICAgICAgInYiOiAiYjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS7mOi0ueeCueaSrSIsCiAgICAgICAgICAgICAgICAidiI6ICJiNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiYzEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICJjMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi55+l5LmO6auY5YiGIiwKICAgICAgICAgICAgICAgICJ2IjogImM0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDExIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDciLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNCIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAiMiI6IFt7CiAgICAgICAgICAgICJrZXkiOiAiY2hhcmdlSW5mbyIsCiAgICAgICAgICAgICJuYW1lIjogIuS7mOi0ueexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiYWxsIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhY3otLkiLAogICAgICAgICAgICAgICAgInYiOiAiYjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogInZpcCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiVklQ55So5Yi4IiwKICAgICAgICAgICAgICAgICJ2IjogImIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLku5jotLnngrnmkq0iLAogICAgICAgICAgICAgICAgInYiOiAiYjQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInNvcnQiLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5pawIiwKICAgICAgICAgICAgICAgICJ2IjogImMxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDng60iLAogICAgICAgICAgICAgICAgInYiOiAiYzIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuefpeS5jumrmOWIhiIsCiAgICAgICAgICAgICAgICAidiI6ICJjNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAieWVhciIsCiAgICAgICAgICAgICJuYW1lIjogIuW5tOS7oyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiYWxsIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDExIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgIjMiOiBbewogICAgICAgICAgICAia2V5IjogImNoYXJnZUluZm8iLAogICAgICAgICAgICAibmFtZSI6ICLku5jotLnnsbvlnosiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5YWN6LS5IiwKICAgICAgICAgICAgICAgICJ2IjogImIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJ2aXAiLAogICAgICAgICAgICAgICAgInYiOiAiYjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIlZJUOeUqOWIuCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5LuY6LS554K55pKtIiwKICAgICAgICAgICAgICAgICJ2IjogImI0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJzb3J0IiwKICAgICAgICAgICAgIm5hbWUiOiAi5o6S5bqPIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuacgOaWsCIsCiAgICAgICAgICAgICAgICAidiI6ICJjMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi5pyA54OtIiwKICAgICAgICAgICAgICAgICJ2IjogImMyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLnn6XkuY7pq5jliIYiLAogICAgICAgICAgICAgICAgInYiOiAiYzQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInllYXIiLAogICAgICAgICAgICAibmFtZSI6ICLlubTku6MiLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5YWo6YOoIiwKICAgICAgICAgICAgICAgICJ2IjogImFsbCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIxIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTciLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA0IgogICAgICAgICAgICB9XQogICAgICAgIH1dLAogICAgICAgICI1MCI6IFt7CiAgICAgICAgICAgICJrZXkiOiAiY2hhcmdlSW5mbyIsCiAgICAgICAgICAgICJuYW1lIjogIuS7mOi0ueexu+WeiyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiYWxsIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLlhY3otLkiLAogICAgICAgICAgICAgICAgInYiOiAiYjEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogInZpcCIsCiAgICAgICAgICAgICAgICAidiI6ICJiMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiVklQ55So5Yi4IiwKICAgICAgICAgICAgICAgICJ2IjogImIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLku5jotLnngrnmkq0iLAogICAgICAgICAgICAgICAgInYiOiAiYjQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfSwgewogICAgICAgICAgICAia2V5IjogInNvcnQiLAogICAgICAgICAgICAibmFtZSI6ICLmjpLluo8iLAogICAgICAgICAgICAidmFsdWUiOiBbewogICAgICAgICAgICAgICAgIm4iOiAi5pyA5pawIiwKICAgICAgICAgICAgICAgICJ2IjogImMxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDng60iLAogICAgICAgICAgICAgICAgInYiOiAiYzIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuefpeS5jumrmOWIhiIsCiAgICAgICAgICAgICAgICAidiI6ICJjNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAieWVhciIsCiAgICAgICAgICAgICJuYW1lIjogIuW5tOS7oyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLlhajpg6giLAogICAgICAgICAgICAgICAgInYiOiAiYWxsIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDI1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIzIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIyIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjIiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjEiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIwIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE5IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTkiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTgiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNyIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE3IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE2IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTYiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDExIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDEwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDQiCiAgICAgICAgICAgIH1dCiAgICAgICAgfV0sCiAgICAgICAgIjUxIjogW3sKICAgICAgICAgICAgImtleSI6ICJjaGFyZ2VJbmZvIiwKICAgICAgICAgICAgIm5hbWUiOiAi5LuY6LS557G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWFjei0uSIsCiAgICAgICAgICAgICAgICAidiI6ICJiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAidmlwIiwKICAgICAgICAgICAgICAgICJ2IjogImIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJWSVDnlKjliLgiLAogICAgICAgICAgICAgICAgInYiOiAiYjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS7mOi0ueeCueaSrSIsCiAgICAgICAgICAgICAgICAidiI6ICJiNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiYzEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICJjMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi55+l5LmO6auY5YiGIiwKICAgICAgICAgICAgICAgICJ2IjogImM0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDExIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDciLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNCIKICAgICAgICAgICAgfV0KICAgICAgICB9XSwKICAgICAgICAiMTE1IjogW3sKICAgICAgICAgICAgImtleSI6ICJjaGFyZ2VJbmZvIiwKICAgICAgICAgICAgIm5hbWUiOiAi5LuY6LS557G75Z6LIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuWFjei0uSIsCiAgICAgICAgICAgICAgICAidiI6ICJiMSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAidmlwIiwKICAgICAgICAgICAgICAgICJ2IjogImIyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICJWSVDnlKjliLgiLAogICAgICAgICAgICAgICAgInYiOiAiYjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuS7mOi0ueeCueaSrSIsCiAgICAgICAgICAgICAgICAidiI6ICJiNCIKICAgICAgICAgICAgfV0KICAgICAgICB9LCB7CiAgICAgICAgICAgICJrZXkiOiAic29ydCIsCiAgICAgICAgICAgICJuYW1lIjogIuaOkuW6jyIsCiAgICAgICAgICAgICJ2YWx1ZSI6IFt7CiAgICAgICAgICAgICAgICAibiI6ICLmnIDmlrAiLAogICAgICAgICAgICAgICAgInYiOiAiYzEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIuacgOeDrSIsCiAgICAgICAgICAgICAgICAidiI6ICJjMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAi55+l5LmO6auY5YiGIiwKICAgICAgICAgICAgICAgICJ2IjogImM0IgogICAgICAgICAgICB9XQogICAgICAgIH0sIHsKICAgICAgICAgICAgImtleSI6ICJ5ZWFyIiwKICAgICAgICAgICAgIm5hbWUiOiAi5bm05LujIiwKICAgICAgICAgICAgInZhbHVlIjogW3sKICAgICAgICAgICAgICAgICJuIjogIuWFqOmDqCIsCiAgICAgICAgICAgICAgICAidiI6ICJhbGwiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjUiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyNSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyNCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDI0IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIzIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjMiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMjIiLAogICAgICAgICAgICAgICAgInYiOiAiMjAyMiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAyMSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDIxIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDIwIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMjAiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTkiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxOSIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxOCIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE4IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE3IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTciCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTYiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxNiIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxNSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDE1IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDE0IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTQiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTMiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAxMiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDEyIgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDExIiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMTEiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMTAiLAogICAgICAgICAgICAgICAgInYiOiAiMjAxMCIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwOSIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA5IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA4IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDgiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDciLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNyIKICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgIm4iOiAiMjAwNiIsCiAgICAgICAgICAgICAgICAidiI6ICIyMDA2IgogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAibiI6ICIyMDA1IiwKICAgICAgICAgICAgICAgICJ2IjogIjIwMDUiCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICJuIjogIjIwMDQiLAogICAgICAgICAgICAgICAgInYiOiAiMjAwNCIKICAgICAgICAgICAgfV0KICAgICAgICB9XQogICAgfSwKICAgIGxpbWl0OiAyMCwKICAgIHBsYXlfcGFyc2U6IHRydWUsCiAgICBsYXp5OiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGxldCBhcGkgPSAiIiArIGlucHV0LnNwbGl0KCI/IilbMF07CiAgICAgICAgICAgIGNvbnNvbGUubG9nKGFwaSk7CiAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGZldGNoKGFwaSwgewogICAgICAgICAgICAgICAgbWV0aG9kOiAnZ2V0JywKICAgICAgICAgICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdva2h0dHAvMy4xNC45JywKICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGxldCBiYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZSk7CiAgICAgICAgICAgIGlmIChiYXRhLnVybC5pbmNsdWRlcygibWd0diIpKSB7CiAgICAgICAgICAgICAgICBpbnB1dCA9IHsKICAgICAgICAgICAgICAgICAgICBwYXJzZTogMCwKICAgICAgICAgICAgICAgICAgICB1cmw6IGJhdGEudXJsLAogICAgICAgICAgICAgICAgICAgIGp4OiAwLAogICAgICAgICAgICAgICAgICAgIGRhbm1ha3U6ICJodHRwOi8vMTAzLjM2LjIyMC4xNjY6OTgvdHZib3gvemgucGhwP3VybD0iICsgaW5wdXQuc3BsaXQoIj8iKVswXQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlucHV0ID0gewogICAgICAgICAgICAgICAgICAgIHBhcnNlOiAwLAogICAgICAgICAgICAgICAgICAgIHVybDogaW5wdXQuc3BsaXQoIj8iKVswXSwKICAgICAgICAgICAgICAgICAgICBqeDogMSwKICAgICAgICAgICAgICAgICAgICBkYW5tYWt1OiAiaHR0cDovLzEwMy4zNi4yMjAuMTY2Ojk4L3R2Ym94L3poLnBocD91cmw9IiArIGlucHV0LnNwbGl0KCI/IilbMF0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgaW5wdXQgPSB7CiAgICAgICAgICAgICAgICBwYXJzZTogMCwKICAgICAgICAgICAgICAgIHVybDogaW5wdXQuc3BsaXQoIj8iKVswXSwKICAgICAgICAgICAgICAgIGp4OiAxLAogICAgICAgICAgICAgICAgZGFubWFrdTogImh0dHA6Ly8xMDMuMzYuMjIwLjE2Njo5OC90dmJveC96aC5waHA/dXJsPSIgKyBpbnB1dC5zcGxpdCgiPyIpWzBdCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfSksCiAgICAvLyDmiYvliqjosIPnlKjop6PmnpDor7fmsYJqc29u55qEdXJsLOatpGxhennkuI3mlrnkvr8KICAgIC8vIGxhenk6J2pzOnByaW50KGlucHV0KTtmZXRjaF9wYXJhbXMuaGVhZGVyc1sidXNlci1hZ2VudCJdPU1PQklMRV9VQTtsZXQgaHRtbD1yZXF1ZXN0KGlucHV0KTtsZXQgcnVybD1odG1sLm1hdGNoKC93aW5kb3dcXC5vcGVuXFwoXCcoLio/KVwnLC8pWzFdO3J1cmw9dXJsRGVhbChydXJsKTtpbnB1dD17cGFyc2U6MSx1cmw6cnVybH07JywKICAgIC8vIOaOqOiNkDonLmxpc3RfaXRlbTtpbWcmJmFsdDtpbWcmJnNyYzthJiZUZXh0O2EmJmRhdGEtZmxvYXQnLAogICAg5LiA57qnOiAnanNvbjpkYXRhLmhpdERvY3M7dGl0bGU7aW1nO3VwZGF0ZUluZm98fHJpZ2h0Q29ybmVyLnRleHQ7cGxheVBhcnRJZCcsCiAgICAvLyDkuIDnuqc6J2pzb246ZGF0YS5oaXREb2NzO3RpdGxlO2ltZzt1cGRhdGVJbmZvO3BsYXlQYXJ0SWQnLAogICAg5LqM57qnOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGZldGNoX3BhcmFtcy5oZWFkZXJzLlJlZmVyZXIgPSAiaHR0cHM6Ly93d3cubWd0di5jb20iOwogICAgICAgIGZldGNoX3BhcmFtcy5oZWFkZXJzWyJVc2VyLUFnZW50Il0gPSBNT0JJTEVfVUE7CiAgICAgICAgcGRmaCA9IGpzcC5wZGZoOwogICAgICAgIHBkZmEgPSBqc3AucGRmYTsKICAgICAgICBwZCA9IGpzcC5wZDsKICAgICAgICBWT0QgPSB7fTsKICAgICAgICBsZXQgZCA9IFtdOwogICAgICAgIGxldCBodG1sID0gcmVxdWVzdChpbnB1dCk7CiAgICAgICAgbGV0IGpzb24gPSBKU09OLnBhcnNlKGh0bWwpOwogICAgICAgIGxldCBob3N0ID0gImh0dHBzOi8vd3d3Lm1ndHYuY29tIjsKICAgICAgICBsZXQgb3VybCA9IGpzb24uZGF0YS5saXN0Lmxlbmd0aCA+IDAgPyBqc29uLmRhdGEubGlzdFswXS51cmwgOiBqc29uLmRhdGEuc2VyaWVzWzBdLnVybDsKICAgICAgICBpZiAoIS9eaHR0cC8udGVzdChvdXJsKSkgewogICAgICAgICAgICBvdXJsID0gaG9zdCArIG91cmwKICAgICAgICB9CiAgICAgICAgZmV0Y2hfcGFyYW1zLmhlYWRlcnNbIlVzZXItQWdlbnQiXSA9IE1PQklMRV9VQTsKICAgICAgICBodG1sID0gcmVxdWVzdChvdXJsKTsKICAgICAgICBpZiAoaHRtbC5pbmNsdWRlcygid2luZG93LmxvY2F0aW9uID0iKSkgewogICAgICAgICAgICBwcmludCgi5byA5aeL6I635Y+Wb3VybCIpOwogICAgICAgICAgICBvdXJsID0gcGRmaChodG1sLCAibWV0YVtodHRwLWVxdWl2PXJlZnJlc2hdJiZjb250ZW50Iikuc3BsaXQoInVybD0iKVsxXTsKICAgICAgICAgICAgcHJpbnQoIuiOt+WPluWIsG91cmw6IiArIG91cmwpOwogICAgICAgICAgICBodG1sID0gcmVxdWVzdChvdXJsKQogICAgICAgIH0KICAgICAgICB0cnkgewogICAgICAgICAgICBsZXQgZGV0YWlscyA9IHBkZmgoaHRtbCwgIi5tLWRldGFpbHMmJkh0bWwiKS5yZXBsYWNlKC9oMT4vLCAiaDY+IikucmVwbGFjZSgvZGl2L2csICJiciIpOwogICAgICAgICAgICBwcmludChkZXRhaWxzKTsKICAgICAgICAgICAgbGV0IGFjdG9yID0gIiIsCiAgICAgICAgICAgICAgICBkaXJlY3RvciA9ICIiLAogICAgICAgICAgICAgICAgdGltZSA9ICIiOwogICAgICAgICAgICBpZiAoL+aSreWHuuaXtumXtC8udGVzdChkZXRhaWxzKSkgewogICAgICAgICAgICAgICAgYWN0b3IgPSBwZGZoKGh0bWwsICJwOmVxKDUpJiZUZXh0Iikuc3Vic3RyKDAsIDI1KTsKICAgICAgICAgICAgICAgIGRpcmVjdG9yID0gcGRmaChodG1sLCAicDplcSg0KSYmVGV4dCIpOwogICAgICAgICAgICAgICAgdGltZSA9IHBkZmgoaHRtbCwgInA6ZXEoMykmJlRleHQiKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgYWN0b3IgPSBwZGZoKGh0bWwsICJwOmVxKDQpJiZUZXh0Iikuc3Vic3RyKDAsIDI1KTsKICAgICAgICAgICAgICAgIGRpcmVjdG9yID0gcGRmaChodG1sLCAicDplcSgzKSYmVGV4dCIpOwogICAgICAgICAgICAgICAgdGltZSA9ICLlt7Llroznu5MiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IF9pbWcgPSBwZChodG1sLCAiLnZpZGVvLWltZyYmaW1nJiZzcmMiKTsKICAgICAgICAgICAgbGV0IEpKID0gcGRmaChodG1sLCAiLmRlc2MmJlRleHQiKS5zcGxpdCgi566A5LuL77yaIilbMV07CiAgICAgICAgICAgIGxldCBfZGVzYyA9IHRpbWU7CiAgICAgICAgICAgIFZPRC52b2RfbmFtZSA9IHBkZmgoaHRtbCwgIi52dC10eHQmJlRleHQiKTsKICAgICAgICAgICAgVk9ELnR5cGVfbmFtZSA9IHBkZmgoaHRtbCwgInA6ZXEoMCkmJlRleHQiKS5zdWJzdHIoMCwgNik7CiAgICAgICAgICAgIFZPRC52b2RfYXJlYSA9IHBkZmgoaHRtbCwgInA6ZXEoMSkmJlRleHQiKTsKICAgICAgICAgICAgVk9ELnZvZF9hY3RvciA9IGFjdG9yOwogICAgICAgICAgICBWT0Qudm9kX2RpcmVjdG9yID0gZGlyZWN0b3I7CiAgICAgICAgICAgIFZPRC52b2RfcmVtYXJrcyA9IF9kZXNjOwogICAgICAgICAgICBWT0Qudm9kX3BpYyA9IF9pbWc7CiAgICAgICAgICAgIFZPRC52b2RfY29udGVudCA9IEpKOwogICAgICAgICAgICBpZiAoIVZPRC52b2RfbmFtZSkgewogICAgICAgICAgICAgICAgVk9ELnZvZF9uYW1lID0gVk9ELnR5cGVfbmFtZTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgbG9nKCLojrflj5blvbHniYfkv6Hmga/lj5HnlJ/plJnor686IiArIGUubWVzc2FnZSkKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGdldFJqcGcoaW1nVXJsLCB4cykgewogICAgICAgICAgICB4cyA9IHhzIHx8IDM7CiAgICAgICAgICAgIGxldCBwaWNTaXplID0gL2pwZ18vLnRlc3QoaW1nVXJsKSA/IGltZ1VybC5zcGxpdCgianBnXyIpWzFdLnNwbGl0KCIuIilbMF0gOiBmYWxzZTsKICAgICAgICAgICAgbGV0IHJqcGcgPSBmYWxzZTsKICAgICAgICAgICAgaWYgKHBpY1NpemUpIHsKICAgICAgICAgICAgICAgIGxldCBhID0gcGFyc2VJbnQocGljU2l6ZS5zcGxpdCgieCIpWzBdKSAqIHhzOwogICAgICAgICAgICAgICAgbGV0IGIgPSBwYXJzZUludChwaWNTaXplLnNwbGl0KCJ4IilbMV0pICogeHM7CiAgICAgICAgICAgICAgICByanBnID0gYSArICJ4IiArIGIgKyAiLmpwZyIKICAgICAgICAgICAgfQogICAgICAgICAgICBsZXQgaW1nID0gL2pwZ18vLnRlc3QoaW1nVXJsKSAmJiByanBnID8gaW1nVXJsLnJlcGxhY2UoaW1nVXJsLnNwbGl0KCJqcGdfIilbMV0sIHJqcGcpIDogaW1nVXJsOwogICAgICAgICAgICByZXR1cm4gaW1nCiAgICAgICAgfQoKICAgICAgICBpZiAoanNvbi5kYXRhLnRvdGFsID09PSAxICYmIGpzb24uZGF0YS5saXN0Lmxlbmd0aCA9PT0gMSkgewogICAgICAgICAgICBsZXQgZGF0YSA9IGpzb24uZGF0YS5saXN0WzBdOwogICAgICAgICAgICBsZXQgdXJsID0gImh0dHBzOi8vd3d3Lm1ndHYuY29tIiArIGRhdGEudXJsOwogICAgICAgICAgICBkLnB1c2goewogICAgICAgICAgICAgICAgdGl0bGU6IGRhdGEudDQsCiAgICAgICAgICAgICAgICBkZXNjOiBkYXRhLnQyLAogICAgICAgICAgICAgICAgcGljX3VybDogZ2V0UmpwZyhkYXRhLmltZyksCiAgICAgICAgICAgICAgICB1cmw6IHVybAogICAgICAgICAgICB9KQogICAgICAgIH0gZWxzZSBpZiAoanNvbi5kYXRhLmxpc3QubGVuZ3RoID4gMSkgewogICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBqc29uLmRhdGEudG90YWxfcGFnZTsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoaSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShmZXRjaChpbnB1dC5yZXBsYWNlKCJwYWdlPTEiLCAicGFnZT0iICsgaSksIHt9KSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGpzb24uZGF0YS5saXN0LmZvckVhY2goZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSAiaHR0cHM6Ly93d3cubWd0di5jb20iICsgZGF0YS51cmw7CiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuaXNJbnRhY3QgPT0gIjEiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGF0YS50NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IGRhdGEudDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBnZXRSanBnKGRhdGEuaW1nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHByaW50KGlucHV0ICsgIuaaguaXoOeJh+a6kCIpCiAgICAgICAgfQogICAgICAgIFZPRC52b2RfcGxheV9mcm9tID0gIuWFrOS8l+WPtzrkuIflvbHlrrbop4Z8NGvoh7vlvanljp/nlLsiOwogICAgICAgIFZPRC52b2RfcGxheV91cmwgPSBkLm1hcChmdW5jdGlvbihpdCkgewogICAgICAgICAgICByZXR1cm4gaXQudGl0bGUgKyAiJCIgKyBpdC51cmwKICAgICAgICB9KS5qb2luKCIjIik7CiAgICAgICAgc2V0UmVzdWx0KGQpOwogICAgfSksCgogICAg5pCc57SiOiAkanMudG9TdHJpbmcoKCkgPT4gewogICAgICAgIGZldGNoX3BhcmFtcy5oZWFkZXJzLlJlZmVyZXIgPSAiaHR0cHM6Ly93d3cubWd0di5jb20iOwogICAgICAgIGZldGNoX3BhcmFtcy5oZWFkZXJzWyJVc2VyLUFnZW50Il0gPSBNT0JJTEVfVUE7CiAgICAgICAgbGV0IGQgPSBbXTsKICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoaW5wdXQpOwogICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICBqc29uLmRhdGEuY29udGVudHMuZm9yRWFjaChmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgJiYgZGF0YS50eXBlID09ICdtZWRpYScpIHsKICAgICAgICAgICAgICAgIGxldCBpdGVtID0gZGF0YS5kYXRhWzBdOwogICAgICAgICAgICAgICAgbGV0IGRlc2MgPSBpdGVtLmRlc2Muam9pbignLCcpOwogICAgICAgICAgICAgICAgbGV0IGZ5Y2xhc3MgPSAnJzsKICAgICAgICAgICAgICAgIGlmIChpdGVtLnNvdXJjZSA9PT0gImltZ28iKSB7CiAgICAgICAgICAgICAgICAgICAgbGV0IGltZyA9IGl0ZW0uaW1nID8gaXRlbS5pbWcgOiAnJzsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICBmeWNsYXNzID0gaXRlbS5ycHQubWF0Y2goL2lkeD0oLio/KSYvKVsxXSArICckJzsKICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhlLm1lc3NhZ2UpOwogICAgICAgICAgICAgICAgICAgICAgICBmeWNsYXNzID0gJyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGxvZyhmeWNsYXNzKTsKICAgICAgICAgICAgICAgICAgICBkLnB1c2goewogICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZS5yZXBsYWNlKC88Qj58PFwvQj4vZywgJycpLAogICAgICAgICAgICAgICAgICAgICAgICBpbWc6IGltZywKICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJycsCiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IGRlc2MsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZnljbGFzcyArIGl0ZW0udXJsLm1hdGNoKC8uKlwvKC4qPylcLmh0bWwvKVsxXQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBzZXRSZXN1bHQoZCk7CiAgICB9KSwKfQ==
+192
View File
@@ -0,0 +1,192 @@
var rule = {
title: '腾云驾雾[官]',
host: 'https://v.%71%71.com',
// homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
searchUrl: '/x/search/?q=**&stag=fypage',
searchable: 2,
filterable: 1,
multi: 1,
// url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
// filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
// filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
filter_url: 'sort={{fl.sort or 75}}&iyear={{fl.iyear}}&year={{fl.year}}&itype={{fl.type}}&ifeature={{fl.feature}}&iarea={{fl.area}}&itrailer={{fl.itrailer}}&gender={{fl.sex}}',
// filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
filter: 'H4sIAAAAAAAAA+1Y3U8aWRT/X+ZZEwYEtI9207Rp0r40+9CNDxM7G8laaZCamsYEinyoDYp1sa1I/aJSK4ita3Eo9J+Ze2fmv9g7yOWc22u3xJX0RZ7gd+ee7/M7h3mujE+EQ+O6cuOP58pf+qxyQ5kOR6LKgDKlPWaoQrOrxFhmv2e0yafnj025cCFmJSouzH4E/crcQBen+VoHH/Z1cVJq2kfzHFeVuTH35FxhaFbXIqCRnJ2YjV1JI0mWnUS5I2FQ7Ur2erxDHbT9FeE+wH0Y9wLuxbgKuCDfA7gH4epIF2dfET4M+DDGg4AHMR4APIBxP+B+N2JjA0p0pi+ZCo5cnCnXHpSpP3Ut+jSig07ruEGKSz3nysoc00SSywaVy3v2LochI/TFoZXPdWBIoJNokvqLDgz5JtVTYnA/wU2SL5CF/Q4M0TW/bpFSmnsPKivvzdYWL1MQktqg69xACBXdTNi1Je4OlIaz+YHkmhxH7mdrpFrkOPJoc5W+LnEcXLJeZsFIFXyy9nPkrIFSxPGPRboY43gQ6Z1Hzw9fN98lm+9xeCb0S5kyOvvkfzTf4pHVPJD7ZvGYfFuXmk/oG9XDPqguExV7O4bOAurFTdu+B9kR2989+1FNsyMVEUF8hcby+MyDzC9ba8I9FOLMa9NYwPogwwJdtO9BVTDHRTtRpbKG/M5OkCmwR/sMcVw2RZY/YZlwZsfi1kIa34NysEvfIJsIrtZI82/xltsfqFiuG7vnxp7RIiE9OtuX1naDdM23l0rLuBaJhsNTv5JxtYiuoWwVauSl0XO2SCrJbkjrDl0v0cKhvO4c7lutrNTpJHlqNjj5DV3hOMBLAeJozMNQYCK1IetSq86bD5LRjHlpng8VlIGVonWYkwMSX2KjQVrGnMoamPKDLQfVqDh5gjjcpF6Xtyi6tU02uhMAyS+8Mw0DbUv8+WzZWknJW5rI7CiSjWWSrP93Pt0hd00OlyOHidDko/78GUJbAqaG7+brtP4M6Yvtk8zH3pmh9JlUeNugnlz7ArC3T0Tkw51xERGJFfqTAnVa87T6T8+WeAZ95FNccnxoMAAwWBIcHAEY7FY9DDUbJbO+KK+zybJg1TmjtCvmUXg83J+CEWk5FI1ooUkdxyltkFdxmj/rOU6jozelIJGNpru1FmpAQ+D37dH7PE4qsvPe7btyftuE5ezknPgriXTvPPidy/H7ELlmd6yTHeEO0wPqH/52C2DoHzvZsqtHdvqAZE5lBiYrGbNZoAWDFnmPBS6uQv/VzT1mjDV/KsWPjV5n9113mwZ8r2V+fSuVIJsQNJ+WjRZmAX5/YBpLUiLYrIVJBvxon+yw2SEPGpYDmLX4dUDzgG5npEyKbwPQnrGepDAP2/09NvcvaIIuCAgUAAA=',
headers: {
'User-Agent': 'okhttp/4.12.0'
},
timeout: 5000,
// class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
cate_exclude: '会员|游戏|全部',
// class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
// class_url: 'choice&tv&movie&variety&cartoon&child&doco',
class_name: '️电影🔹4K&️电视剧🔹4K&️综艺🔹4K&️动漫🔹4K&️少儿🔹4K&️纪录片🔹4K',
class_url: 'movie&tv&variety&cartoon&child&doco',
limit: 20,
play_parse:true,
// play_parse:true,
lazy: $js.toString(() => {
let d = [];
// 发起请求并解析返回的 JSON 数据
let response = JSON.parse(request("" + input));
// 获取所有字段名
let keys = Object.keys(response);
// 查找以 'url' 开头的字段名
let urlKey = keys.find(key => key.startsWith('url'));
// 提取对应的值
let url = urlKey ? response[urlKey] : null;
if (url) {
// 处理 url,或将其用于 input
input = {
url: url,
parse: 0,
header: rule.headers
};
} else {
// 处理没有找到 url 字段的情况
console.error("没有找到以 'url' 开头的字段");
}
setResult(d);
}),
推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
二级: $js.toString(() => {
VOD = {};
let d = [];
let video_list = [];
let video_lists = [];
let list = [];
let QZOutputJson;
let html = fetch(input, fetch_params);
let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
let cid = sourceId;
let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
log("详情页:" + detailUrl);
pdfh = jsp.pdfh;
pd = jsp.pd;
try {
let json = JSON.parse(html);
VOD = {
vod_url: input,
vod_name: json.c.title,
type_name: json.typ.join(","),
vod_actor: json.nam.join(","),
vod_year: json.c.year,
vod_content: json.c.description,
vod_remarks: json.rec,
vod_pic: urljoin2(input, json.c.pic)
}
} catch (e) {
log("解析片名海报等基础信息发生错误:" + e.message)
}
if (/get_playsource/.test(input)) {
eval(html);
let indexList = QZOutputJson.PlaylistItem.indexList;
indexList.forEach(function (it) {
let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
eval(fetch(dataUrl, fetch_params));
let vdata = QZOutputJson.PlaylistItem.videoPlayList;
vdata.forEach(function (item) {
d.push({
title: item.title,
pic_url: item.pic,
desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine,
url: item.playUrl
})
});
video_lists = video_lists.concat(vdata)
})
} else {
let json = JSON.parse(html);
video_lists = json.c.video_ids;
let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
if (video_lists.length === 1) {
let vid = video_lists[0];
url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
d.push({
title: "在线播放",
url: url
})
} else if (video_lists.length > 1) {
for (let i = 0; i < video_lists.length; i += 30) {
video_list.push(video_lists.slice(i, i + 30))
}
video_list.forEach(function (it, idex) {
let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
let o_html = fetch(o_url, fetch_params);
eval(o_html);
QZOutputJson.results.forEach(function (it1) {
it1 = it1.fields;
let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
d.push({
title: it1.title,
pic_url: it1.pic160x90.replace("/160", ""),
desc: it1.video_checkup_time,
url: url,
type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
})
})
})
}
}
let yg = d.filter(function (it) {
return it.type && it.type !== "正片"
});
let zp = d.filter(function (it) {
return !(it.type && it.type !== "正片")
});
VOD.vod_play_from = yg.length < 1 ? "VIP" : "VIP$$$ 预告及花絮";
VOD.vod_play_url = yg.length < 1 ? d.map(function (it) {
return it.title + "$" + it.url
}).join("#") : [zp, yg].map(function (it) {
return it.map(function (its) {
return its.title + "$" + its.url
}).join("#")
}).join("$$$");
}),
搜索: $js.toString(() => {
let d = [];
pdfa = jsp.pdfa;
pdfh = jsp.pdfh;
pd = jsp.pd;
let html = request(input);
let baseList = pdfa(html, "body&&.result_item_v");
log(baseList.length);
baseList.forEach(function (it) {
let longText = pdfh(it, ".result_title&&a&&Text");
let shortText = pdfh(it, ".type&&Text");
let fromTag = pdfh(it, ".result_source&&Text");
let score = pdfh(it, ".figure_info&&Text");
let content = pdfh(it, ".desc_text&&Text");
// let url = pdfh(it, ".result_title&&a&&href");
let url = pdfh(it, "div&&r-data");
// log(longText);
// log(shortText);
// log('url:'+url);
let img = pd(it, ".figure_pic&&src");
url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
log(shortText + "|" + url);
if (fromTag.match(/腾讯/)) {
d.push({
title: longText.split(shortText)[0],
img: img,
url: url,
content: content,
desc: shortText + " " + score
})
}
});
setResult(d);
}),
}