diff --git a/tvboxqq/OK/api.json b/tvboxqq/OK/api.json
new file mode 100644
index 0000000..7740dea
--- /dev/null
+++ b/tvboxqq/OK/api.json
@@ -0,0 +1,1466 @@
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
+
+{
+ "spider": "./spider.jar",
+ "wallpaper": "http://127.0.0.1:9978/proxy?do=wall",
+ "logo": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaImage/ACB34B_773_photo_2022-09-14_00-00-57_20251204145106336newMediaImage.jpg",
+ "sites": [
+ {
+ "key": "豆瓣",
+ "name": "🤓公众号┃OK杰克",
+ "type": 3,
+ "api": "csp_DoubanGuard",
+ "searchable": 0,
+ "changeable": 1
+ },
+ {
+ "key": "配置中心",
+ "name": "👨🍳配置┃中心",
+ "type": 3,
+ "api": "csp_ConfigGuard",
+ "searchable": 0,
+ "changeable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "rect",
+ "ratio": 1.43
+ }
+ },
+ {
+ "key": "本地播放",
+ "name": "🐼本地┃播放",
+ "type": 3,
+ "api": "csp_LocalGuard",
+ "searchable": 0,
+ "changeable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 5
+ },
+ {
+ "key": "二小",
+ "name": "🦢二小┃4K",
+ "type": 3,
+ "api": "csp_ErXiaoGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "双星",
+ "name": "🤩双星┃4K",
+ "type": 3,
+ "api": "csp_Star2Guard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 25
+ },
+ {
+ "key": "玩偶",
+ "name": "👽玩偶┃4K",
+ "type": 3,
+ "api": "csp_WoggGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 1,
+ "timeout": 30
+ },
+ {
+ "key": "立播版",
+ "name": "🌟立播┃4K",
+ "type": 3,
+ "api": "csp_LibvioGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 1,
+ "timeout": 30
+ },
+ {
+ "key": "蜡笔",
+ "name": "👠蜡笔┃4K",
+ "type": 3,
+ "api": "csp_LabiGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "木偶",
+ "name": "🪵木偶┃4K",
+ "type": 3,
+ "api": "csp_MuouGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "多多",
+ "name": "🪅多多┃4K",
+ "type": 3,
+ "api": "csp_DuoDuoGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "小飒",
+ "name": "💒小飒┃4K",
+ "type": 3,
+ "api": "csp_XsayangGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "至臻",
+ "name": "💌至臻┃4K",
+ "type": 3,
+ "api": "csp_ZhiZhenGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "虎斑",
+ "name": "🐯虎斑┃4K",
+ "type": 3,
+ "api": "csp_HuBanGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "SeedHub",
+ "name": "🍀种子┃4K",
+ "type": 3,
+ "api": "csp_SeedHubGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "光影",
+ "name": "🎥光影┃4K",
+ "type": 3,
+ "api": "csp_GuanyingGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 30
+ },
+ {
+ "key": "云集",
+ "name": "🍊云集┃4K",
+ "type": 3,
+ "api": "csp_YunJiGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "极狐",
+ "name": "🦊极狐┃4K",
+ "type": 3,
+ "api": "csp_Fox4kGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "盘他",
+ "name": "🎸盘他┃4K",
+ "type": 3,
+ "api": "csp_PantaGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "海绵",
+ "name": "🧽海绵┃4K",
+ "type": 3,
+ "api": "csp_HaiMianGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "雷鲸",
+ "name": "🐳雷鲸┃4K",
+ "type": 3,
+ "api": "csp_LeiJingGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "123分享",
+ "name": "🌂123┃4K",
+ "type": 3,
+ "api": "csp_Time123Guard",
+ "searchable": 1,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 25
+ },
+ {
+ "key": "瓜子",
+ "name": "🍉瓜子┃App",
+ "type": 3,
+ "api": "csp_GuaziGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "文才",
+ "name": "🌺文才┃在线",
+ "type": 3,
+ "api": "csp_JpysGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "糯米",
+ "name": "🍓糯米┃秒播",
+ "type": 3,
+ "api": "csp_NmysGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "热播",
+ "name": "📺热播┃App",
+ "type": 3,
+ "api": "csp_TianTianGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "ext": {
+ "site": 0
+ },
+ "timeout": 10
+ },
+ {
+ "key": "小苹果",
+ "name": "🍎苹果┃直连",
+ "type": 3,
+ "api": "csp_XpgGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "云云",
+ "name": "☁️云云┃App",
+ "type": 3,
+ "api": "csp_YunYunGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "雄鹰",
+ "name": "🦅雄鹰┃App",
+ "type": 3,
+ "api": "csp_XiongYingGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "鲸鱼",
+ "name": "🐳鲸鱼┃App",
+ "type": 3,
+ "api": "csp_JingYuGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "小猪",
+ "name": "🐖小猪┃App",
+ "type": 3,
+ "api": "csp_XiaoZhuGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "一起",
+ "name": "📺一起┃秒播",
+ "type": 3,
+ "api": "csp_YqsGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "仓鼠",
+ "name": "🐹仓鼠┃App",
+ "type": 3,
+ "api": "csp_CangShuGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "吉米",
+ "name": "🍙吉米┃App",
+ "type": 3,
+ "api": "csp_AppFoxGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "ext": {
+ "siteUrl": "http://45.207.215.137:8006"
+ },
+ "timeout": 10
+ },
+ {
+ "key": "恋鱼",
+ "name": "🐟恋鱼┃App",
+ "type": 3,
+ "api": "csp_AppFoxGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "ext": {
+ "siteFrom": "https://173220859-1333208043.cos.ap-shanghai.myqcloud.com/1.json"
+ },
+ "timeout": 10
+ },
+ {
+ "key": "麒麟",
+ "name": "🐓麒麟┃App",
+ "type": 3,
+ "api": "csp_AppFoxGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "ext": {
+ "siteUrl": "https://www.70yyw.cc"
+ },
+ "timeout": 10
+ },
+ {
+ "key": "木瓜",
+ "name": "🥑木瓜┃App",
+ "type": 3,
+ "api": "csp_AppFoxGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "ext": {
+ "siteUrl": "http://www.yezitv.top"
+ },
+ "timeout": 10
+ },
+ {
+ "key": "厂长",
+ "name": "📔厂长┃直连",
+ "type": 3,
+ "api": "csp_CzzyGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "csp_Btt",
+ "name": "🌞比特┃在线",
+ "type": 3,
+ "api": "csp_BttGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "荐片",
+ "name": "⚔️荐片┃手机",
+ "type": 3,
+ "api": "csp_JianpianGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "韩圈",
+ "name": "🦄韩圈┃App",
+ "type": 3,
+ "api": "csp_HanXiaoQuanGuard",
+ "playerType": 2,
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "我的夸克",
+ "name": "🗽我的┃夸克",
+ "type": 3,
+ "api": "csp_MyQuarkGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "我的UC",
+ "name": "😼我的┃UC",
+ "type": 3,
+ "api": "csp_MyUcGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "我的百度",
+ "name": "☘️我的┃百度",
+ "type": 3,
+ "api": "csp_MyBaiduGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "我的123",
+ "name": "🌂我的┃123",
+ "type": 3,
+ "api": "csp_My123Guard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "我的天逸",
+ "name": "🧽我的┃天逸",
+ "type": 3,
+ "api": "csp_My189Guard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "我的115",
+ "name": "🌷我的┃115",
+ "type": 3,
+ "api": "csp_My115Guard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "我的阿里",
+ "name": "🐱我的┃阿里",
+ "type": 3,
+ "api": "csp_MyAliGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 0,
+ "indexs": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 30
+ },
+ {
+ "key": "️爱看Bot",
+ "name": "⛅️爱看┃直连",
+ "type": 3,
+ "api": "csp_IkanbotGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "电影天堂",
+ "name": "🎞️天堂┃采集",
+ "type": 1,
+ "api": "http://caiji.dyttzyapi.com/api.php/provide/vod/from/dyttm3u8/at/m3u8/",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "锦鲤短剧",
+ "name": "🐟锦鲤┃短剧",
+ "type": 3,
+ "api": "csp_JinliGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "盒马短剧",
+ "name": "🦓盒马┃短剧",
+ "type": 3,
+ "api": "csp_HeMaGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "星芽短剧",
+ "name": "💖星芽┃短剧",
+ "type": 3,
+ "api": "csp_AppXYGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "yhdm",
+ "name": "🌸樱花┃动漫",
+ "type": 3,
+ "api": "csp_YHDMGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 15
+ },
+ {
+ "key": "动漫巴士",
+ "name": "🚌巴士┃动漫",
+ "type": 3,
+ "api": "csp_Dm84Guard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "新6V",
+ "name": "🧲新6V┃磁力",
+ "type": 3,
+ "api": "csp_Xb6vGuard",
+ "searchable": 1,
+ "quickSearch": 1,
+ "changeable": 0,
+ "timeout": 20
+ },
+ {
+ "key": "聚合直播",
+ "name": "📽️聚合┃直播",
+ "type": 3,
+ "api": "csp_LivingGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "timeout": 10
+ },
+ {
+ "key": "快手直播",
+ "name": "😎快手┃直播",
+ "type": 3,
+ "api": "csp_KsLiveGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "timeout": 10
+ },
+ {
+ "key": "虎牙直播",
+ "name": "🐯虎牙┃直播",
+ "type": 3,
+ "api": "csp_HuyaGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "timeout": 10
+ },
+ {
+ "key": "瓜子看球",
+ "name": "⚽瓜子┃看球",
+ "type": 3,
+ "api": "csp_GzSportGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 10
+ },
+ {
+ "key": "88看球",
+ "name": "⚽88┃看球",
+ "type": 3,
+ "api": "csp_KanqiuGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "style": {
+ "type": "list"
+ },
+ "timeout": 10
+ },
+ {
+ "key": "世界听书",
+ "name": "🎸世界┃听书",
+ "type": 3,
+ "api": "csp_BookTingGuard",
+ "searchable": 1,
+ "quickSearch": 0,
+ "changeable": 0,
+ "timeout": 10
+ },
+ {
+ "key": "六月听书",
+ "name": "🎤六月┃听书",
+ "type": 3,
+ "api": "csp_WeiTingGuard",
+ "searchable": 1,
+ "quickSearch": 0,
+ "changeable": 0,
+ "timeout": 10
+ },
+ {
+ "key": "bilimd",
+ "name": "🅱哔哩┃影视",
+ "type": 3,
+ "api": "csp_BilimdGuard",
+ "searchable": 1,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "timeout": 10
+ },
+ {
+ "key": "bili",
+ "name": "🅱哔哩┃合集",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "searchable": 1,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/57EAD2E_773_bili_20251204145747516newMediaFile.bmp"
+ },
+ "timeout": 20
+ },
+ {
+ "key": "biliych",
+ "name": "🅱哔哩┃歌曲",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/28CD73E_773_biliych_20251204150624308newMediaFile.bmp"
+ },
+ "timeout": 20
+ },
+ {
+ "key": "bilixs",
+ "name": "🅱哔哩┃相声",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/C7FB4B_773_bilixs_20251204150416832newMediaFile.bmp"
+ },
+ "timeout": 20
+ },
+ {
+ "key": "bilixp",
+ "name": "🅱哔哩┃小品",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "filterable": 1,
+ "style": {
+ "type": "rect",
+ "ratio": 1.433
+ },
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/41F4D38_773_bilixp_20251204150443351newMediaFile.bmp"
+ },
+ "timeout": 20
+ },
+ {
+ "key": "少儿教育",
+ "name": "📚少儿┃教育",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "style": {
+ "type": "rect",
+ "ratio": 1.597
+ },
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/32EF375_773_bilisejy_20251204150311837newMediaFile.bmp"
+ }
+ },
+ {
+ "key": "小学课堂",
+ "name": "📚小学┃课堂",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "style": {
+ "type": "rect",
+ "ratio": 1.597
+ },
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/3753221_773_bilixxkt_20251204150347660newMediaFile.bmp"
+ }
+ },
+ {
+ "key": "初中课堂",
+ "name": "📚初中┃课堂",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "style": {
+ "type": "rect",
+ "ratio": 1.597
+ },
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/3ED04A6_773_biliczkt_20251204150157889newMediaFile.bmp"
+ }
+ },
+ {
+ "key": "高中教育",
+ "name": "📚高中┃课堂",
+ "type": 3,
+ "api": "csp_BiliGuard",
+ "style": {
+ "type": "rect",
+ "ratio": 1.597
+ },
+ "searchable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "ext": {
+ "json": "https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/531DD35_773_biligzkt_20251204150243460newMediaFile.bmp"
+ }
+ },
+ {
+ "key": "csp_AListGuard",
+ "name": "🦋AList",
+ "type": 3,
+ "api": "csp_AListGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "style": {
+ "type": "list"
+ },
+ "ext": "file://TV/alist.json",
+ "timeout": 15
+ },
+ {
+ "key": "csp_QuPanSouGuard",
+ "name": "🤓趣盘┃搜索",
+ "type": 3,
+ "api": "csp_QuPanSouGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "太极",
+ "name": "☯️太极┃搜索",
+ "type": 3,
+ "api": "csp_TaiChiGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "ext": {
+ "taichi": 1
+ },
+ "timeout": 25
+ },
+ {
+ "key": "糖果搜",
+ "name": "🍬糖果┃搜索",
+ "type": 3,
+ "api": "csp_TaiChiGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "ext": {
+ "taichi": 2
+ },
+ "timeout": 25
+ },
+ {
+ "key": "音海",
+ "name": "🎸音海┃搜索",
+ "type": 3,
+ "api": "csp_YinHaiGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "爱盘",
+ "name": "❤️爱盘┃搜索",
+ "type": 3,
+ "api": "csp_AiPanGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "云搜",
+ "name": "☁️云搜┃搜索",
+ "type": 3,
+ "api": "csp_YunPanPanGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "度搜",
+ "name": "🦈度搜┃搜索",
+ "type": 3,
+ "api": "csp_BdxdGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "找盘",
+ "name": "🎾找盘┃搜索",
+ "type": 3,
+ "api": "csp_V2PanGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "djps",
+ "name": "🔍短剧┃搜索",
+ "type": 3,
+ "api": "csp_DjpsGuard",
+ "searchable": 1,
+ "filterable": 1,
+ "changeable": 0,
+ "timeout": 25
+ },
+ {
+ "key": "push_agent",
+ "name": "🛴手机┃推送",
+ "type": 3,
+ "api": "csp_PushGuard",
+ "searchable": 0,
+ "filterable": 0,
+ "changeable": 0,
+ "timeout": 25
+ }
+ ],
+ "parses": [
+ {
+ "name": "聚合1",
+ "type": 3,
+ "url": "Demo"
+ },
+ {
+ "name": "聚合0",
+ "type": 3,
+ "url": "Web"
+ },
+ {
+ "name": "ikun",
+ "type": 0,
+ "url": "https://jx.hls.one/?url="
+ },
+ {
+ "name": "77",
+ "type": 0,
+ "url": "https://jx.77flv.cc/?url="
+ },
+ {
+ "name": "A6",
+ "type": 0,
+ "url": "https://pl.a6club.com/player/analysis.php?v="
+ },
+ {
+ "name": "8090",
+ "type": 0,
+ "url": "https://www.8090g.cn/?url="
+ },
+ {
+ "name": "M3u8TV",
+ "type": 0,
+ "url": "https://jx.m3u8.tv/jiexi/?url="
+ },
+ {
+ "name": "CK",
+ "type": 0,
+ "url": "https://www.ckplayer.vip/jiexi/?url="
+ },
+ {
+ "name": "冰豆",
+ "type": 0,
+ "url": "https://bd.jx.cn/?url="
+ },
+ {
+ "name": "XY",
+ "type": 0,
+ "url": "https://jx.xymp4.cc/?url="
+ },
+ {
+ "name": "推荐",
+ "type": 1,
+ "url": "https://zy.qiaoji8.com/gouzi.php?url=94b07e0b2c0e8244&url="
+ },
+ {
+ "name": "臻享",
+ "type": 1,
+ "url": "https://150.138.78.37:4399/api?key=94b07e0b2c0e8244&url="
+ },
+ {
+ "name": "优选",
+ "type": 1,
+ "url": "http://1.94.221.189:88/algorithm.php?url="
+ }
+ ],
+ "doh": [
+ {
+ "name": "Google",
+ "url": "https://dns.google/dns-query",
+ "ips": [
+ "8.8.4.4",
+ "8.8.8.8"
+ ]
+ },
+ {
+ "name": "Cloudflare",
+ "url": "https://cloudflare-dns.com/dns-query",
+ "ips": [
+ "1.1.1.1",
+ "1.0.0.1",
+ "2606:4700:4700::1111",
+ "2606:4700:4700::1001"
+ ]
+ },
+ {
+ "name": "AdGuard",
+ "url": "https://dns.adguard.com/dns-query",
+ "ips": [
+ "94.140.14.140",
+ "94.140.14.141"
+ ]
+ },
+ {
+ "name": "DNSWatch",
+ "url": "https://resolver2.dns.watch/dns-query",
+ "ips": [
+ "84.200.69.80",
+ "84.200.70.40"
+ ]
+ },
+ {
+ "name": "Quad9",
+ "url": "https://dns.quad9.net/dns-quer",
+ "ips": [
+ "9.9.9.9",
+ "149.112.112.112"
+ ]
+ }
+ ],
+ "ads": [
+ "mozai.4gtv.tv"
+ ],
+ "lives": [
+ {
+ "name": "MIGU",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https%3A%2F%2Fbc.188766.xyz%2F%3Fip%3D%26mishitong%3Dtrue%26mima%3Dbingcha1130%26json%3Dtrue",
+ "ua": "bingcha/1.1 (mianfeifenxiang)"
+ },
+ {
+ "name": "AI直播",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/interface.txt"
+ },
+ {
+ "name": "电视Live",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&u=Gather",
+ "ua": "okhttp/3.15"
+ },
+ {
+ "name": "江苏移动",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-fileupload/newMediaFile/529EAA1_773_jsyd_20251205182514164newMediaFile.bmp"
+ },
+ {
+ "name": "一起看",
+ "type": 3,
+ "api": "csp_HuyaGuard",
+ "url": "yqk"
+ },
+ {
+ "name": "肥羊虎牙一起看",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https://sub.ottiptv.cc/huyayqk.m3u",
+ "ua": "okHttp/Mod-1.4.0.0"
+ },
+ {
+ "name": "肥羊B站直播",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https://sub.ottiptv.cc/bililive.m3u",
+ "ua": "okHttp/Mod-1.4.0.0"
+ },
+ {
+ "name": "肥羊斗鱼一起看",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https://sub.ottiptv.cc/douyuyqk.m3u",
+ "ua": "okHttp/Mod-1.4.0.0"
+ },
+ {
+ "name": "肥羊YY轮播",
+ "type": 0,
+ "url": "http://127.0.0.1:9978/proxy?do=live&url=https://sub.ottiptv.cc/yylunbo.m3u",
+ "ua": "okHttp/Mod-1.4.0.0"
+ }
+ ],
+ "ijk": [
+ {
+ "group": "软解码",
+ "options": [
+ {
+ "category": 4,
+ "name": "opensles",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "overlay-format",
+ "value": "842225234"
+ },
+ {
+ "category": 4,
+ "name": "framedrop",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "soundtouch",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "start-on-prepared",
+ "value": "1"
+ },
+ {
+ "category": 1,
+ "name": "http-detect-range-support",
+ "value": "0"
+ },
+ {
+ "category": 1,
+ "name": "fflags",
+ "value": "fastseek"
+ },
+ {
+ "category": 2,
+ "name": "skip_loop_filter",
+ "value": "48"
+ },
+ {
+ "category": 4,
+ "name": "reconnect",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "enable-accurate-seek",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec-auto-rotate",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec-handle-resolution-change",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec-hevc",
+ "value": "0"
+ },
+ {
+ "category": 1,
+ "name": "dns_cache_timeout",
+ "value": "600000000"
+ }
+ ]
+ },
+ {
+ "group": "硬解码",
+ "options": [
+ {
+ "category": 4,
+ "name": "opensles",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "overlay-format",
+ "value": "842225234"
+ },
+ {
+ "category": 4,
+ "name": "framedrop",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "soundtouch",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "start-on-prepared",
+ "value": "1"
+ },
+ {
+ "category": 1,
+ "name": "http-detect-range-support",
+ "value": "0"
+ },
+ {
+ "category": 1,
+ "name": "fflags",
+ "value": "fastseek"
+ },
+ {
+ "category": 2,
+ "name": "skip_loop_filter",
+ "value": "48"
+ },
+ {
+ "category": 4,
+ "name": "reconnect",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "enable-accurate-seek",
+ "value": "0"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec-auto-rotate",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec-handle-resolution-change",
+ "value": "1"
+ },
+ {
+ "category": 4,
+ "name": "mediacodec-hevc",
+ "value": "1"
+ },
+ {
+ "category": 1,
+ "name": "dns_cache_timeout",
+ "value": "600000000"
+ }
+ ]
+ }
+ ],
+ "proxy": [
+ "raw.githubusercontent.com",
+ "googlevideo.com",
+ "cdn.v82u1l.com",
+ "cdn.iz8qkg.com",
+ "cdn.kin6c1.com",
+ "c.biggggg.com",
+ "c.olddddd.com",
+ "haiwaikan.com",
+ "www.histar.tv",
+ "youtube.com",
+ "uhibo.com",
+ ".*boku.*",
+ ".*nivod.*",
+ ".*ulivetv.*",
+ "188766.xyz",
+ "4gtv.tv",
+ "iill.top"
+ ],
+ "rules": [
+ {
+ "name": "cl",
+ "hosts": [
+ "magnet"
+ ],
+ "regex": [
+ "最 新",
+ "直 播",
+ "更 新"
+ ]
+ },
+ {
+ "name": "火山嗅探",
+ "hosts": [
+ "huoshan.com"
+ ],
+ "regex": [
+ "item_id="
+ ]
+ },
+ {
+ "name": "抖音嗅探",
+ "hosts": [
+ "douyin.com"
+ ],
+ "regex": [
+ "is_play_url="
+ ]
+ },
+ {
+ "name": "农民嗅探",
+ "hosts": [
+ "toutiaovod.com"
+ ],
+ "regex": [
+ "video/tos/cn"
+ ]
+ },
+ {
+ "name": "七新嗅探",
+ "hosts": [
+ "api.52wyb.com"
+ ],
+ "regex": [
+ "m3u8?pt=m3u8"
+ ]
+ },
+ {
+ "name": "夜市",
+ "hosts": [
+ "yeslivetv.com"
+ ],
+ "script": [
+ "document.getElementsByClassName('vjs-big-play-button')[0].click()"
+ ]
+ },
+ {
+ "name": "毛驴",
+ "hosts": [
+ "www.maolvys.com"
+ ],
+ "script": [
+ "document.getElementsByClassName('swal-button swal-button--confirm')[0].click()"
+ ]
+ },
+ {
+ "name": "czzy",
+ "hosts": [
+ "10086.cn"
+ ],
+ "regex": [
+ "/storageWeb/servlet/downloadServlet"
+ ]
+ },
+ {
+ "name": "bdys",
+ "hosts": [
+ "bytetos.com",
+ "byteimg.com",
+ "bytednsdoc.com",
+ "pstatp.com"
+ ],
+ "regex": [
+ "/tos-cn"
+ ],
+ "exclude": [
+ ".m3u8"
+ ]
+ },
+ {
+ "name": "bdys10",
+ "hosts": [
+ "bdys10.com"
+ ],
+ "regex": [
+ "/obj/"
+ ],
+ "exclude": [
+ ".m3u8"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/tvboxqq/OK/spider.jar b/tvboxqq/OK/spider.jar
new file mode 100644
index 0000000..971bebb
Binary files /dev/null and b/tvboxqq/OK/spider.jar differ
diff --git a/tvboxqq/南风/api.json b/tvboxqq/南风/api.json
index 1e57dad..f963cce 100644
--- a/tvboxqq/南风/api.json
+++ b/tvboxqq/南风/api.json
@@ -1,4 +1,4 @@
-//
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
{
"spider": "./spider.jar",
@@ -6,7 +6,7 @@
"sites": [
{
"key": "Tg|豆瓣",
- "name": "🔍Tg豆瓣┃本接口免费-🈲贩卖",
+ "name": "🔍Tg豆瓣┃刷新一下源才能出来",
"type": 3,
"api": "csp_TgYunDouBanPan",
"searchable": 1,
@@ -14,16 +14,16 @@
"ext": {
"siteUrl": "http://127.0.0.1:9999",
"count": 4,
- "channelUsername": "bdwpzhpd,bdwpzhpd,alyp_TV,ucquark,wp123zy,oneonefivewpfx,tyypzhpd,cloudtianyi,ydypzyfx,yunpan139,guaguale115,Mbox115,shares_115,zaihuayun,PanjClub,NewQuark,yunpanpan,kuake_movie,Quark_Movies,alyp_4K_Movies,alyp_TV,yunpanshare,shareAliyun,alyp_1,BaiduCloudDisk",
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/douban.json"
+ "channelUsername": "+P4IU1QbK4ChlNTYx,+h10ulzfxiQZiYTdi,+cpJ_dIx_hlYxMWQx,+Jc37JCr1diEzNDMx,bdwpzhpd,bdwpzhpd,alyp_TV,ucquark,wp123zy,oneonefivewpfx,tyypzhpd,cloudtianyi,ydypzyfx,yunpan139,guaguale115,Mbox115,shares_115,zaihuayun,PanjClub,NewQuark,yunpanpan,kuake_movie,Quark_Movies,alyp_4K_Movies,alyp_TV,yunpanshare,shareAliyun,alyp_1,BaiduCloudDisk",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/douban.json"
}
},
{
"key": "弹幕",
- "name": "🅿弹幕|搜索",
+ "name": "🅿嗷嗚弹幕┃刷新一下自动启动",
"type": 3,
- "api": "csp_Huban",
+ "api": "csp_GoConfigAmnsr",
"jar": "./jars/弹幕.jar"
},
{
@@ -34,7 +34,7 @@
"searchable": 0,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
{
@@ -46,15 +46,6 @@
"quickSearch": 1,
"filterable": 1
},
- {
- "key": "csp_LiteApple",
- "name": "🍎苹果",
- "type": 3,
- "api": "csp_LiteApple",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
{
"key": "巧技二",
"name": "💢聚搜┃仅搜索",
@@ -63,7 +54,17 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg402i79425739i7jghj118797l4hj840gi18633331l4708g2h7145403549g44l8ii56i187681hkjj3hhgh1ih3l32j250lk1k786lj20j468hk3hli4l46gig4i3g7g2722328j0136h01i7g5183k22k7gg3i72hk81gl8k9839kl7i0707"
+ "ext": "7lj763gg402i7942412h849jg1558j9jl8g19213il86316k465719lik158491h179312h4934183ig2l05g9"
+ },
+ {
+ "key": "巧技五",
+ "name": "💢SOUSOU┃仅搜索",
+ "type": 3,
+ "api": "csp_qiao2",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "7lj763gg402i7942412h849jg1558j9jl8g19213il86316k465719lik158491h179312hk935886ig2l05g9"
},
{
"key": "天天",
@@ -73,28 +74,8 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg09397919456493i0h44j8681highi4"
- },
- {
- "key": "热播",
- "name": "♨热播",
- "type": 3,
- "api": "csp_TTian",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
"ext": "7lj763gg0939791h1l3888jig44gi291li"
},
- {
- "key": "追剧",
- "name": "✈追剧",
- "type": 3,
- "api": "csp_TTian",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "ext": "7lj763gg0939791h1l2681i6g94li291li"
- },
{
"key": "金牌",
"name": "🥇金牌",
@@ -103,47 +84,95 @@
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg402i7942463j9j9jh84l8798l8gli652828g332i"
+ "ext": "7lj763gg402i7942463j9j9jh8579590k3hjii5gi4i73l2k5l"
},
{
- "key": "yizys",
- "name": "🚗驿站",
+ "key": "狂风",
+ "name": "🌪狂风",
"type": 3,
- "api": "csp_Muou",
+ "api": "csp_Qiji",
+ "playerType": 2,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg0939790i5g649ki3hj5k98jil1g6jqiaoji6jg2458hhjjh9i4i62271j0hj124lj80ll9i8"
+ "ext": "7lj763gg402i7942522l99jhh90ljii5g1l09i13i39g2l6i514l56l1li1k5107159113h6945h8g91351kgkijl5l315g8l3656756kjk699gj689125k773g94i16ghg596l5l022202ki910690ii5kh4i6724k0g83g70k09hgkj3jj7hl431480l3i3197"
+ },
+ {
+ "key": "蝴蝶",
+ "name": "🦋蝴蝶",
+ "type": 3,
+ "api": "csp_Qiji",
+ "playerType": 2,
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "7lj763gg402i79425h2384j4g949j899hll9990i9kjl6l740h1342hjlg1848401g8610h9995i998j351gl38kklkj1hkhll757010k7hji6h377ih37k060g35161jhl3i5h0l2702g7299452l4297k5697g5390lk6935k2i9g48l8j2kh27l1g014k7j9677gg"
+ },
+ {
+ "key": "橘子",
+ "name": "🍊橘子",
+ "type": 3,
+ "api": "csp_Qiji",
+ "playerType": 2,
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "7lj763gg402i79425h3l90jgh14i9ijik6h8i75lj8i73l2l4k6g48lhgl2k4j3j2kik7l83gj54h687390196j0lkgg21l1i3552i7ij087ijj9258721g03lll"
+ },
+ {
+ "key": "驿站",
+ "name": "🚗驿站",
+ "type": 3,
+ "api": "csp_Qiji",
+ "playerType": 2,
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "7lj763gg402i794240208hi3g05l8181higgi609i7i73l224k141jg1lh405k0g49i60kh6ih53i6ji6g01k885g4lk4lk2l432240jk5k1igg97kj421g03lll"
},
{
"key": "趣看",
- "name": "🎐趣看",
+ "name": "🥽趣看",
"type": 3,
"api": "csp_Qiji",
+ "playerType": 2,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg402i7942552h8ljjlj0jjki7g4lg99099jjh6l6l514k08hjl807161j139753h090539gig3604gi80lgl30jk3hk637h53gh9ljkij2lig30k277g50354k2k3jkl1g17i2820ii582l0483g61k6i79k7kk7274h1i5g6jjj833h2390k42396hik71kigl18k613"
+ "ext": "7lj763gg0939795l007hi482k508i2i0g0k69h089lj36579051707k0li150k1g0gil50gk9342i193620lg49lk5l91gh2k4712j53ljh9jhgk31ji2lkg73lk1j12"
},
{
- "key": "huomaoys",
- "name": "😺火猫",
+ "key": "星河",
+ "name": "💫星河",
"type": 3,
- "api": "csp_Muou",
+ "api": "csp_Qiji",
+ "playerType": 2,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg0939790i413gi484k8058896highi4414h68l7g6hk8qiaojig9k2k289l9ik807i213k5j602"
+ "ext": "7lj763gg0939795i007ki485k612jli3hil9990l96j86i79025j08k7l8055g1h1i834kg3i900i0j06k4hg190k2lj0gk6k567614jl0k399gl72j06hkl3ilj1l"
},
{
- "key": "公共",
- "name": "🌈公共",
+ "key": "优质",
+ "name": "🌈优质",
"type": 3,
- "api": "csp_Muou",
+ "api": "csp_Qiji",
+ "playerType": 2,
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "7lj763gg402i7942463ji4qiaojijjh456889il6k6i35kj995h4j18li7kl2870klhg8hi647j5707k4ki7ig6953kj"
+ "ext": "7lj763gg402i7942433293i0g9458881hig7j94k818g326i51491kljlk134k401g9g54gk8j5i9097751kh28kh9kj11kjl92k6046l0gkj8l630892glj67g61h48g3kjiigkg0263k6h955430429ill43307gk8k0602hh09lh0j6jh7h"
+ },
+ {
+ "key": "永夜",
+ "name": "🌙永夜",
+ "type": 3,
+ "api": "csp_Xdai",
+ "playerType": 2,
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "7lj763gg0939790i413gjh9kk011jijiggll990k9li73l224k770ik0j10l502j2j9l798lhj778hh33g018h94k5j400kij3567j7gji97kkk4118421g03lll"
},
{
"key": "主角",
@@ -166,14 +195,26 @@
"ext": "7lj763gg402i79425h2384j4g949j899hll9990i9kjl6l740h1342hjlg1848401g8610h9995i998j351gl38kklkj1hkhll757010k7hji6h377ih37k060g35161jhl3i5h0l2702g7299452l4297k5697g5390lk6935k2i9g48l8j2kh27l1g014k7j9475g8"
},
{
- "key": "csp_Wwys",
- "name": "👩🌾农民",
+ "name": "🍎小苹果",
+ "key": "小苹果",
"type": 3,
- "api": "csp_Wwys",
+ "api": "csp_XpgAmns",
"searchable": 1,
- "quickSearch": 1,
"filterable": 1,
- "ext": "https://www.wwgz.cn"
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/弹幕.jar"
+ },
+ {
+ "name": "🏭厂长",
+ "key": "厂长",
+ "type": 3,
+ "api": "csp_CzzyAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/弹幕.jar"
},
{
"key": "csp_SaoHuo",
@@ -207,53 +248,14 @@
"filterable": 1
},
{
- "key": "csp_Czsapp",
- "name": "🏭厂长",
+ "key": "csp_Lkdy",
+ "name": "🏔️来看",
"type": 3,
- "api": "csp_Czsapp",
- "playerType": 2,
+ "api": "csp_Lkdy",
"searchable": 1,
"quickSearch": 1,
"filterable": 1,
- "ext": "https://www.czzymovie.com/"
- },
- {
- "key": "csp_Tvyb",
- "name": "☁️TVB云播",
- "type": 3,
- "api": "csp_Tvyb",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
- {
- "key": "csp_KmeiJu",
- "name": "🍐鸭梨",
- "type": 3,
- "api": "csp_KmeiJu",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
- {
- "key": "csp_baibai",
- "name": "💯白白",
- "type": 3,
- "searchable": 1,
- "quickSearch": 1,
- "api": "csp_SuBaiBai",
- "ext": "https://www.subaibai.com"
- },
- {
- "key": "可可",
- "name": "☕️可可",
- "type": 3,
- "api": "csp_XYQHiker",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "ext": "./json/可可影视.json"
+ "ext": "https://lkvod.com"
},
{
"key": "剧圈圈",
@@ -267,14 +269,14 @@
"click": "document.getElementById('playleft').children[0].contentWindow.document.getElementById('start').click()"
},
{
- "key": "影视大全",
- "name": "🎞影视大全",
+ "key": "农民",
+ "name": "👩🌾农民",
"type": 3,
- "api": "csp_XBPQ",
- "ext": {
- "分类url": "https://www.iysdq.cc/vodshow/{cateId}-{area}-------{catePg}---.html",
- "分类": "电影$1#电视剧$2#综艺$3#动漫$4#短剧$5"
- }
+ "api": "csp_XYQHiker",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "./json/农民影视.json"
},
{
"key": "永乐",
@@ -318,24 +320,6 @@
"filterable": 1,
"ext": "7lj763gg402i7942463j9j9jgg449698khhh845ki38473"
},
- {
- "key": "csp_Jiaozi",
- "name": "🥣饺子",
- "type": 3,
- "api": "csp_Jiaozi",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
- {
- "key": "csp_Ddys",
- "name": "📺低端",
- "type": 3,
- "api": "csp_Ddys",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
{
"key": "csp_Ikanbot",
"name": "👾Ikanbot",
@@ -345,16 +329,6 @@
"quickSearch": 1,
"filterable": 1
},
- {
- "key": "csp_Lkdy",
- "name": "🏔️来看",
- "type": 3,
- "api": "csp_Lkdy",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "ext": "https://lkvod.com"
- },
{
"key": "csp_Jianpian",
"name": "🧲荐片",
@@ -365,6 +339,15 @@
"filterable": 1,
"ext": "./json/jianpian.json"
},
+ {
+ "key": "csp_Dygang",
+ "name": "🧲电影港",
+ "type": 3,
+ "api": "csp_Dygang",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
{
"key": "csp_xlys",
"name": "🧲修罗",
@@ -402,15 +385,6 @@
"quickSearch": 1,
"filterable": 1
},
- {
- "key": "csp_MeijuTT",
- "name": "🧲美剧天堂",
- "type": 3,
- "api": "csp_MeijuTT",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
{
"key": "csp_MeijuMi",
"name": "🧲美剧迷",
@@ -450,15 +424,6 @@
"filterable": 1,
"ext": "https://dm84.net"
},
- {
- "key": "csp_Ysj",
- "name": "📮异世界",
- "type": 3,
- "api": "csp_Ysj",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1
- },
{
"key": "樱花",
"name": "💮樱花",
@@ -469,6 +434,140 @@
"filterable": 1,
"ext": "./json/樱花动漫.json"
},
+ {
+ "key": "聚合短剧",
+ "name": "🈴聚合短剧",
+ "type": 3,
+ "api": "csp_JuheShortDrama",
+ "searchable": 1,
+ "filterable": 0,
+ "switchable": 0,
+ "ext": {
+ "host": {
+ "甜圈": "https://mov.cenguigui.cn",
+ "锦鲤": "https://api.jinlidj.com",
+ "番茄": "https://reading.snssdk.com",
+ "番茄2": "https://fqgo.52dns.cc",
+ "星芽": "https://app.whjzjx.cn",
+ "星芽登录": "https://u.shytkjgs.com",
+ "西饭": "https://xifan-api-cn.youlishipin.com",
+ "围观": "https://api.drama.9ddm.com",
+ "碎片": "https://free-api.bighotwind.cc",
+ "碎片图片": "https://speed.hiknz.com"
+ },
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
+ }
+ },
+ {
+ "name": "🍉找短剧",
+ "key": "找短剧",
+ "type": 3,
+ "api": "csp_HgggAmns",
+ "indexs": 1,
+ "searchable": 0,
+ "filterable": 0,
+ "quickSearch": 0,
+ "changeable": 0,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "🎦豪堪短剧",
+ "key": "豪堪短剧",
+ "type": 3,
+ "api": "csp_HHkkAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "📺盒马短剧",
+ "key": "盒马短剧",
+ "type": 3,
+ "api": "csp_HemaAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "🎞️拜拜短剧",
+ "key": "拜拜短剧",
+ "type": 3,
+ "api": "csp_BddjAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "🐠锦鲤短剧",
+ "key": "锦鲤短剧",
+ "type": 3,
+ "api": "csp_JLdjAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "🍩甜圈短剧",
+ "key": "甜圈短剧",
+ "type": 3,
+ "api": "csp_TQdjAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "🐱喵喵短剧",
+ "key": "喵喵短剧",
+ "type": 3,
+ "api": "csp_QmdjAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "⭐星星短剧",
+ "key": "星星短剧",
+ "type": 3,
+ "api": "csp_XydjAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "name": "🎂岁岁短剧",
+ "key": "岁岁短剧",
+ "type": 3,
+ "api": "csp_SpdjAmns",
+ "searchable": 1,
+ "filterable": 1,
+ "quickSearch": 1,
+ "changeable": 1,
+ "jar": "./jars/找短剧.jar"
+ },
+ {
+ "key": "豆瓣",
+ "name": "🚀豆瓣预告",
+ "type": 3,
+ "api": "csp_YGP",
+ "playerType": 2,
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
{
"key": "豆瓣",
"name": "🚀豆瓣预告",
@@ -527,9 +626,9 @@
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"siteUrl": "https://wogg.xxooo.cf",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
}
},
{
@@ -542,7 +641,29 @@
"switchable": 0,
"ext": {
"siteUrl": "https://www.qwnull.com",
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
+ }
+ },
+ {
+ "key": "pansou|fish",
+ "name": "🅿pansou|fish",
+ "type": 3,
+ "api": "csp_PanSouFish",
+ "searchable": 1,
+ "changeable": 0,
+ "ext": {
+ "siteUrl": "https://pansou-latest-hv4k.onrender.com",
+ "filter": {
+ "include": [
+ "HDR",
+ "高码"
+ ],
+ "exclude": [
+ "预告",
+ "花絮"
+ ]
+ },
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
{
@@ -553,9 +674,9 @@
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"siteUrl": "https://erxiaofn.click/",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
}
},
{
@@ -566,9 +687,22 @@
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"siteUrl": "https://www.mihdr.top",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
+ }
+ },
+ {
+ "key": "虎斑",
+ "name": "🐯虎斑",
+ "type": 3,
+ "api": "csp_kongbai",
+ "searchable": 1,
+ "changeable": 0,
+ "ext": {
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
+ "siteUrl": "http://103.45.162.207:20720",
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
}
},
{
@@ -579,22 +713,35 @@
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"siteUrl": "https://feimao666.fun",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
}
},
{
- "key": "欧哥",
- "name": "🅾欧哥",
+ "key": "木偶",
+ "name": "🧸木偶",
"type": 3,
"api": "csp_kongbai",
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
+ "siteUrl": "http://123.666291.xyz",
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
+ }
+ },
+ {
+ "key": "讴歌",
+ "name": "🅾讴歌",
+ "type": 3,
+ "api": "csp_kongbai",
+ "searchable": 1,
+ "changeable": 0,
+ "ext": {
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"siteUrl": "https://woog.nxog.eu.org",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
}
},
{
@@ -605,9 +752,9 @@
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"siteUrl": "https://tv.yydsys.top",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
}
},
{
@@ -620,31 +767,7 @@
"switchable": 0,
"ext": {
"siteUrl": "https://1.star2.cn",
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
- }
- },
- {
- "key": "csp_PanSearch",
- "name": "📀盘搜索",
- "type": 3,
- "api": "csp_PanSearch",
- "searchable": 1,
- "changeable": 0,
- "ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
- }
- },
- {
- "key": "木偶",
- "name": "🧸木偶",
- "type": 3,
- "api": "csp_kongbai",
- "searchable": 1,
- "changeable": 0,
- "ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
- "siteUrl": "http://123.666291.xyz/",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
{
@@ -655,9 +778,20 @@
"searchable": 1,
"changeable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
- "siteUrl": "http://1.95.79.193",
- "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/wogg.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
+ "siteUrl": "https://sduc.cloud/",
+ "filter": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/wogg.json"
+ }
+ },
+ {
+ "key": "csp_PanSearch",
+ "name": "📀盘搜索",
+ "type": 3,
+ "api": "csp_PanSearch",
+ "searchable": 1,
+ "changeable": 0,
+ "ext": {
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
{
@@ -670,18 +804,9 @@
"switchable": 0,
"ext": {
"siteUrl": "https://www.91panta.cn/",
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
- {
- "key": "AList",
- "name": "🅰AList",
- "type": 3,
- "api": "csp_AList",
- "searchable": 1,
- "changeable": 0,
- "ext": "./json/alist.json"
- },
{
"key": "网盘集合",
"name": "🅿网盘集合|4K",
@@ -691,13 +816,13 @@
"filterable": 0,
"switchable": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
- "share": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/网盘集合.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
+ "share": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/网盘集合.json"
}
},
{
"key": "Youtube",
- "name": "⚡Youtube(墙外)",
+ "name": "⚡Youtube",
"type": 3,
"api": "csp_Youtube",
"searchable": 1,
@@ -707,14 +832,52 @@
"ratio": 1.433
},
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json",
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/youtube.json",
- "cookie": "http://127.0.0.1:9978/file/TVBox/youtubecookie.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/youtube.json"
}
},
+ {
+ "key": "Emby",
+ "name": "Emby",
+ "type": 3,
+ "api": "csp_Emby",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": {
+ "server": "http://127.0.0.1:9966/api/proxy/https://lite.cn2gias.uk:443",
+ "username": "23",
+ "password": "23",
+ "ua": "Yamby/1.0.2(Android)",
+ "client": "Yamby",
+ "clientVersion": "0.2.3",
+ "deviceName": "oppo find x9 pro",
+ "commonConfig": "http://127.0.0.1:9978/file/TVBox/peizhi.json"
+ },
+ "changeable": 1
+ },
+ {
+ "key": "肥牛",
+ "name": "Emby肥牛",
+ "type": 3,
+ "api": "csp_Emby",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": {
+ "server": "http://127.0.0.1:9966/api/proxy/https://emby.feiniu.lol:443",
+ "username": "23",
+ "password": "123",
+ "ua": "",
+ "client": "Yamby",
+ "deviceName": "Yamby",
+ "commonConfig": "http://127.0.0.1:9978/file/TVBox/peizhi.json"
+ },
+ "changeable": 1
+ },
{
"key": "TgYunPan|本地",
- "name": "🅿TgYunPan|本地(墙外)",
+ "name": "🅿TgYunPan|本地",
"type": 3,
"api": "csp_TgYunPanLocal",
"searchable": 1,
@@ -722,8 +885,8 @@
"switchable": 0,
"ext": {
"count": 4,
- "channelUsername": "bdwpzhpd,bdwpzhpd,alyp_TV,ucquark,wp123zy,oneonefivewpfx,tyypzhpd,cloudtianyi,ydypzyfx,yunpan139,guaguale115,Mbox115,shares_115,zaihuayun,PanjClub,NewQuark,yunpanpan,kuake_movie,Quark_Movies,alyp_4K_Movies,alyp_TV,yunpanshare,shareAliyun,alyp_1,BaiduCloudDisk",
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
+ "channelUsername": "+P4IU1QbK4ChlNTYx,+h10ulzfxiQZiYTdi,+cpJ_dIx_hlYxMWQx,+Jc37JCr1diEzNDMx,bdwpzhpd,bdwpzhpd,alyp_TV,ucquark,wp123zy,oneonefivewpfx,tyypzhpd,cloudtianyi,ydypzyfx,yunpan139,guaguale115,Mbox115,shares_115,zaihuayun,PanjClub,NewQuark,yunpanpan,kuake_movie,Quark_Movies,alyp_4K_Movies,alyp_TV,yunpanshare,shareAliyun,alyp_1,BaiduCloudDisk",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
{
@@ -734,7 +897,7 @@
"searchable": 0,
"quickSearch": 0,
"ext": {
- "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/peizhi.json"
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
}
},
{
@@ -744,7 +907,10 @@
"api": "csp_Living",
"searchable": 1,
"changeable": 0,
- "ext": "https://lemonlive25.pages.dev"
+ "ext": {
+ "siteUrl": "https://bt.muxia.fun/api",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json"
+ }
},
{
"key": "虎牙",
@@ -756,7 +922,7 @@
"type": "rect",
"ratio": 1.755
},
- "timeout": 15,
+ "timeout": 10,
"playerType": "2",
"searchable": 0,
"quickSearch": 0,
@@ -801,7 +967,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/Bili.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/Bili.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
},
@@ -818,7 +985,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/Blixs.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/Blixs.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
},
@@ -835,7 +1003,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/Blixq.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/Blixq.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
},
@@ -852,7 +1021,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/少儿教育.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/少儿教育.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
},
@@ -869,7 +1039,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/小学课堂.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/小学课堂.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
},
@@ -886,7 +1057,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/初中课堂.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/初中课堂.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
},
@@ -903,7 +1075,8 @@
"ratio": 1.433
},
"ext": {
- "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/高中课堂.json",
+ "json": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/高中课堂.json",
+ "commonConfig": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/peizhi.json",
"cookie": ""
}
}
@@ -1103,7 +1276,7 @@
"ua": "okhttp/3.15"
}
],
- "logo": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/refs/heads/main/json/NanFeng.gif",
+ "logo": "https://ghfast.top/raw.githubusercontent.com/yoursmile66/TVBox/main/json/NanFeng.gif",
"rules": [
{
"name": "量非",
diff --git a/tvboxqq/南风/api/a848d2173d12b963b98a2ffa9796abe7.js b/tvboxqq/南风/api/a848d2173d12b963b98a2ffa9796abe7.js
index 82b037b..455c0ac 100644
--- a/tvboxqq/南风/api/a848d2173d12b963b98a2ffa9796abe7.js
+++ b/tvboxqq/南风/api/a848d2173d12b963b98a2ffa9796abe7.js
@@ -1,304 +1,7 @@
-if (typeof Object.assign != 'function') {
- Object.assign = function () {
- var target = arguments[0];
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
-};
-}
-function getMubans() {
- var mubanDict = { // 模板字典
- mxpro: {
- title: '',
- host: '',
- // homeUrl:'/',
- url: '/vodshow/fyclass--------fypage---.html',
- searchUrl: '/vodsearch/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {//网站的请求头,完整支持所有的,常带ua和cookies
- 'User-Agent': 'MOBILE_UA',
- // "Cookie": "searchneed=ok"
- },
- class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
- 二级: {
- "title": "h1&&Text;.module-info-tag&&Text",
- "img": ".lazyload&&data-original",
- "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
- "content": ".module-info-introduction&&Text",
- "tabs": ".module-tab-item",
- "lists": ".module-play-list:eq(#id) a"
- },
- 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
- },
- mxone5: {
- title: '',
- host: '',
- url: '/show/fyclass--------fypage---.html',
- searchUrl: '/search/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
- 二级: {
- "title": "h1&&Text;.tag-link&&Text",
- "img": ".module-item-pic&&img&&data-src",
- "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
- "content": ".vod_content&&Text",
- "tabs": ".module-tab-item",
- "lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
- },
- 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
- },
- 首图: {
- title: '',
- host: '',
- url: '/vodshow/fyclass--------fypage---/',
- searchUrl: '/vodsearch/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {//网站的请求头,完整支持所有的,常带ua和cookies
- 'User-Agent': 'MOBILE_UA',
- // "Cookie": "searchneed=ok"
- },
- class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
- 二级: {
- "title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
- "img": ".myui-content__thumb .lazyload&&data-original",
- "desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
- "content": ".content&&Text",
- "tabs": ".nav-tabs:eq(0) li",
- "lists": ".myui-content__list:eq(#id) li"
- },
- 搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- },
- 首图2: {
- title: '',
- host: '',
- url: '/list/fyclass-fypage.html',
- searchUrl: '/vodsearch/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {
- 'User-Agent': 'UC_UA',
- // "Cookie": ""
- },
- // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
- class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
- 二级: {
- "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
- "img": ".stui-content__thumb .lazyload&&data-original",
- "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
- "content": ".detail&&Text",
- "tabs": ".stui-vodlist__head h3",
- "lists": ".stui-content__playlist:eq(#id) li"
- },
- 搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- 搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- 搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- },
- 默认: {
- title: '',
- host: '',
- url: '/vodshow/fyclass--------fypage---.html',
- searchUrl: '/vodsearch/-------------.html?wd=**',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {
- 'User-Agent': 'MOBILE_UA',
- },
- play_parse: true,
- lazy: '',
- limit: 6,
- double: true, // 推荐内容是否双层定位
- },
- vfed: {
- title: '',
- host: '',
- url: '/index.php/vod/show/id/fyclass/page/fypage.html',
- searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {
- 'User-Agent': 'UC_UA',
- },
- // class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
- class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
- 二级: {
- "title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
- "img": ".fed-list-info&&a&&data-original",
- "desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
- "content": ".fed-part-esan&&Text",
- "tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
- "lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
- },
- 搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
- },
- 海螺3: {
- title: '',
- host: '',
- searchUrl: '/v_search/**----------fypage---.html',
- url: '/vod_____show/fyclass--------fypage---.html',
- headers: {
- 'User-Agent': 'MOBILE_UA'
- },
- timeout: 5000,
- class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
- cate_exclude: '明星|专题|最新|排行',
- limit: 40,
- play_parse: true,
- lazy: '',
- 推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
- double: true,
- 一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
- 二级: {
- "title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
- "img": ".hl-lazy&&data-original",
- "desc": ".hl-infos-content&&.hl-text-conch&&Text",
- "content": ".hl-content-text&&Text",
- "tabs": ".hl-tabs&&a",
- "lists": ".hl-plays-list:eq(#id)&&li"
- },
- 搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- },
- 海螺2: {
- title: '',
- host: '',
- searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
- url: '/index.php/vod/show/id/fyclass/page/fypage/',
- headers: {
- 'User-Agent': 'MOBILE_UA'
- },
- timeout: 5000,
- class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
- limit: 40,
- play_parse: true,
- lazy: '',
- 推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
- double: true,
- 一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
- 二级: {
- "title": "h2&&Text;.deployment&&Text",
- "img": ".lazy&&data-original",
- "desc": ".deployment&&Text",
- "content": ".ec-show&&Text",
- "tabs": "#tag&&a",
- "lists": ".play_list_box:eq(#id)&&li"
- },
- 搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- },
- 短视: {
- title: '',
- host: '',
- // homeUrl:'/',
- url: '/channel/fyclass-fypage.html',
- searchUrl: '/search.html?wd=**',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {//网站的请求头,完整支持所有的,常带ua和cookies
- 'User-Agent': 'MOBILE_UA',
- // "Cookie": "searchneed=ok"
- },
- class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
- cate_exclude: '解析|动态',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
- 二级: {
- "title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
- "img": ".img&&img&&data-src",
- "desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
- "content": ".zkjj_a&&Text",
- "tabs": ".py-tabs&&option",
- "lists": ".player:eq(#id) li"
- },
- 搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
- },
- 短视2:{
- title: '',
- host: '',
- class_name:'电影&电视剧&综艺&动漫',
- class_url:'1&2&3&4',
- searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
- searchable: 2,
- quickSearch: 0,
- headers:{'User-Agent':'MOBILE_UA'},
- url: '/index.php/api/vod#type=fyclass&page=fypage',
- filterable:0,//是否启用分类筛选,
- filter_url:'',
- filter: {},
- filter_def:{},
- detailUrl:'/index.php/vod/detail/id/fyid.html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
- 一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
- 二级:{
- "title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
- "img":".detail-pic&&data-original",
- "desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
- "content":"#height_limit&&Text",
- "tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
- "tab_text":".swiper-slide&&Text",
- "lists":".anthology-list-box:eq(#id) li"
- },
- 搜索:'json:list;name;pic;;id',
- }
- };
- return JSON.parse(JSON.stringify(mubanDict));
-}
-var mubanDict = getMubans();
-var muban = getMubans();
-export default {muban,getMubans};
\ No newline at end of file
+
+
403 Forbidden
+
+403 Forbidden
+
nginx
+
+
diff --git a/tvboxqq/南风/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js b/tvboxqq/南风/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js
index 796d53a..455c0ac 100644
--- a/tvboxqq/南风/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js
+++ b/tvboxqq/南风/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js
@@ -1,68 +1,7 @@
-/***
- * gbk编码解码函数
- * strTool = gbkTool() strTool.encode(key)
- * @returns {{encode: (function(*): *), decode: (function(*): *)}}
- */
-export function gbkTool(){
- var data=function(zipData){
- var re=zipData
- .replace(/#(\d+)\$/g,function(a,b){
- return Array(+b+3).join('#');
- })
- .replace(/#/g,'####')
- .replace(/(\w\w):([\w#]+)(?:,|$)/g,function(a,hd,dt){
- return dt.replace(/../g,function(a){
- if(a!='##'){
- return hd+a;
- }else{
- return a;
- }
- });
- });
- return re;
- }('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f9091929394959697989a9b9c9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b8b9babbbcbdbebfc0c1c2c3c4c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d7d8d9dadcdfe0e3e4eaeced#f0f5f6f8f9fafbfcff,5e:000407090a0b0d0e1213171e1f20212223242528292a2b2c2f303233343536393a3e3f404143464748494a4b4d4e4f50515253565758595a5c5d5f60636465666768696a6b6c6d6e6f70717577797e8182838588898c8d8e92989b9da1a2a3a4a8a9aaabacaeafb0b1b2b4babbbcbdbfc0c1c2c3c4c5c6c7c8cbcccdcecfd0d4d5d7d8d9dadcdddedfe0e1e2e3e4e5e6e7e9ebecedeeeff0f1f2f3f5f8f9fbfcfd,5f:050607090c0d0e10121416191a1c1d1e21222324#282b2c2e30323334353637383b3d3e3f4142434445464748494a4b4c4d4e4f5154595a5b5c5e5f60636567686b6e6f72747576787a7d7e7f83868d8e8f919394969a9b9d9e9fa0a2a3a4a5a6a7a9abacafb0b1b2b3b4b6b8b9babbbebfc0c1c2c7c8cacbced3d4d5dadbdcdedfe2e3e5e6e8e9eceff0f2f3f4f6f7f9fafc,60:0708090b0c10111317181a1e1f2223242c2d2e3031323334363738393a3d3e404445464748494a4c4e4f5153545657585b5c5e5f606165666e71727475777e80#8182858687888a8b8e8f909193959798999c9ea1a2a4a5a7a9aaaeb0b3b5b6b7b9babdbebfc0c1c2c3c4c7c8c9cccdcecfd0d2d3d4d6d7d9dbdee1e2e3e4e5eaf1f2f5f7f8fbfcfdfeff,61:02030405070a0b0c1011121314161718191b1c1d1e21222528292a2c2d2e2f303132333435363738393a3b3c3d3e4041424344454647494b4d4f50525354565758595a5b5c5e5f606163646566696a6b6c6d6e6f717273747678797a7b7c7d7e7f808182838485868788898a8c8d8f9091929395#969798999a9b9c9e9fa0a1a2a3a4a5a6aaabadaeafb0b1b2b3b4b5b6b8b9babbbcbdbfc0c1c3c4c5c6c7c9cccdcecfd0d3d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e7e8e9eaebecedeeeff0f1f2f3f4f6f7f8f9fafbfcfdfe,62:00010203040507091314191c1d1e2023262728292b2d2f303132353638393a3b3c424445464a4f50555657595a5c5d5e5f6061626465687172747577787a7b7d818283858687888b8c8d8e8f9094999c9d9ea3a6a7a9aaadaeafb0b2b3b4b6b7b8babec0c1#c3cbcfd1d5dddee0e1e4eaebf0f2f5f8f9fafb,63:00030405060a0b0c0d0f10121314151718191c2627292c2d2e30313334353637383b3c3e3f40414447484a51525354565758595a5b5c5d60646566686a6b6c6f707273747578797c7d7e7f81838485868b8d9193949597999a9b9c9d9e9fa1a4a6abafb1b2b5b6b9bbbdbfc0c1c2c3c5c7c8cacbccd1d3d4d5d7d8d9dadbdcdddfe2e4e5e6e7e8ebeceeeff0f1f3f5f7f9fafbfcfe,64:0304060708090a0d0e111215161718191a1d1f222324#252728292b2e2f3031323335363738393b3c3e404243494b4c4d4e4f505153555657595a5b5c5d5f60616263646566686a6b6c6e6f70717273747576777b7c7d7e7f8081838688898a8b8c8d8e8f90939497989a9b9c9d9fa0a1a2a3a5a6a7a8aaabafb1b2b3b4b6b9bbbdbebfc1c3c4c6c7c8c9cacbcccfd1d3d4d5d6d9dadbdcdddfe0e1e3e5e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,65:01020304050607080a0b0c0d0e0f10111314151617191a1b1c1d1e1f2021#222324262728292a2c2d30313233373a3c3d404142434446474a4b4d4e5052535457585a5c5f606164656768696a6d6e6f7173757678797a7b7c7d7e7f8081828384858688898a8d8e8f92949596989a9d9ea0a2a3a6a8aaacaeb1b2b3b4b5b6b7b8babbbebfc0c2c7c8c9cacdd0d1d3d4d5d8d9dadbdcdddedfe1e3e4eaebf2f3f4f5f8f9fbfcfdfeff,66:0104050708090b0d1011121617181a1b1c1e2122232426292a2b2c2e3032333738393a3b3d3f40424445464748494a4d4e505158#595b5c5d5e6062636567696a6b6c6d7172737578797b7c7d7f808183858688898a8b8d8e8f909293949598999a9b9c9e9fa0a1a2a3a4a5a6a9aaabacadafb0b1b2b3b5b6b7b8babbbcbdbfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8dadedfe0e1e2e3e4e5e7e8eaebecedeeeff1f5f6f8fafbfd,67:010203040506070c0e0f1112131618191a1c1e20212223242527292e303233363738393b3c3e3f414445474a4b4d5254555758595a5b5d62636466676b6c6e717476#78797a7b7d8082838586888a8c8d8e8f9192939496999b9fa0a1a4a6a9acaeb1b2b4b9babbbcbdbebfc0c2c5c6c7c8c9cacbcccdced5d6d7dbdfe1e3e4e6e7e8eaebedeef2f5f6f7f8f9fafbfcfe,68:01020304060d1012141518191a1b1c1e1f20222324252627282b2c2d2e2f30313435363a3b3f474b4d4f52565758595a5b5c5d5e5f6a6c6d6e6f707172737578797a7b7c7d7e7f8082848788898a8b8c8d8e90919294959698999a9b9c9d9e9fa0a1a3a4a5a9aaabacaeb1b2b4b6b7b8#b9babbbcbdbebfc1c3c4c5c6c7c8cacccecfd0d1d3d4d6d7d9dbdcdddedfe1e2e4e5e6e7e8e9eaebecedeff2f3f4f6f7f8fbfdfeff,69:00020304060708090a0c0f11131415161718191a1b1c1d1e21222325262728292a2b2c2e2f313233353637383a3b3c3e4041434445464748494a4b4c4d4e4f50515253555658595b5c5f616264656768696a6c6d6f7072737475767a7b7d7e7f8183858a8b8c8e8f909192939697999a9d9e9fa0a1a2a3a4a5a6a9aaacaeafb0b2b3b5b6b8b9babcbd#bebfc0c2c3c4c5c6c7c8c9cbcdcfd1d2d3d5d6d7d8d9dadcdddee1e2e3e4e5e6e7e8e9eaebeceeeff0f1f3f4f5f6f7f8f9fafbfcfe,6a:000102030405060708090b0c0d0e0f10111213141516191a1b1c1d1e20222324252627292b2c2d2e30323334363738393a3b3c3f40414243454648494a4b4c4d4e4f515253545556575a5c5d5e5f60626364666768696a6b6c6d6e6f70727374757677787a7b7d7e7f81828385868788898a8b8c8d8f929394959698999a9b9c9d9e9fa1a2a3a4a5a6#a7a8aaadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,6b:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f252628292a2b2c2d2e2f303133343536383b3c3d3f4041424445484a4b4d4e4f5051525354555657585a5b5c5d5e5f606168696b6c6d6e6f7071727374757677787a7d7e7f808588#8c8e8f909194959798999c9d9e9fa0a2a3a4a5a6a7a8a9abacadaeafb0b1b2b6b8b9babbbcbdbec0c3c4c6c7c8c9caccced0d1d8dadcdddedfe0e2e3e4e5e6e7e8e9ecedeef0f1f2f4f6f7f8fafbfcfeff,6c:000102030408090a0b0c0e12171c1d1e2023252b2c2d31333637393a3b3c3e3f434445484b4c4d4e4f5152535658595a62636566676b6c6d6e6f71737577787a7b7c7f8084878a8b8d8e9192959697989a9c9d9ea0a2a8acafb0b4b5b6b7bac0c1c2c3c6c7c8cbcdcecfd1d2d8#d9dadcdddfe4e6e7e9ecedf2f4f9ff,6d:000203050608090a0d0f101113141516181c1d1f20212223242628292c2d2f30343637383a3f404244494c50555657585b5d5f6162646567686b6c6d707172737576797a7b7d7e7f8081838486878a8b8d8f9092969798999a9ca2a5acadb0b1b3b4b6b7b9babbbcbdbec1c2c3c8c9cacdcecfd0d2d3d4d5d7dadbdcdfe2e3e5e7e8e9eaedeff0f2f4f5f6f8fafdfeff,6e:0001020304060708090b0f12131518191b1c1e1f222627282a2c2e30313335#3637393b3c3d3e3f40414245464748494a4b4c4f5051525557595a5c5d5e606162636465666768696a6c6d6f707172737475767778797a7b7c7d8081828487888a8b8c8d8e91929394959697999a9b9d9ea0a1a3a4a6a8a9abacadaeb0b3b5b8b9bcbebfc0c3c4c5c6c8c9cacccdced0d2d6d8d9dbdcdde3e7eaebecedeeeff0f1f2f3f5f6f7f8fafbfcfdfeff,6f:000103040507080a0b0c0d0e101112161718191a1b1c1d1e1f212223252627282c2e303234353738393a3b3c3d3f404142#43444548494a4c4e4f5051525354555657595a5b5d5f60616364656768696a6b6c6f707173757677797b7d7e7f808182838586878a8b8f909192939495969798999a9b9d9e9fa0a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b7b8babbbcbdbebfc1c3c4c5c6c7c8cacbcccdcecfd0d3d4d5d6d7d8d9dadbdcdddfe2e3e4e5e6e7e8e9eaebecedf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,70:000102030405060708090a0b0c0d0e0f1012131415161718191c1d1e1f2021222425262728292a#2b2c2d2e2f30313233343637383a3b3c3d3e3f404142434445464748494a4b4d4e505152535455565758595a5b5c5d5f606162636465666768696a6e7172737477797a7b7d818283848687888b8c8d8f90919397989a9b9e9fa0a1a2a3a4a5a6a7a8a9aab0b2b4b5b6babebfc4c5c6c7c9cbcccdcecfd0d1d2d3d4d5d6d7dadcdddee0e1e2e3e5eaeef0f1f2f3f4f5f6f8fafbfcfeff,71:0001020304050607080b0c0d0e0f111214171b1c1d1e1f2021222324252728292a2b2c2d2e323334#353738393a3b3c3d3e3f4041424344464748494b4d4f505152535455565758595a5b5d5f6061626365696a6b6c6d6f707174757677797b7c7e7f8081828385868788898b8c8d8e909192939596979a9b9c9d9ea1a2a3a4a5a6a7a9aaabadaeafb0b1b2b4b6b7b8babbbcbdbebfc0c1c2c4c5c6c7c8c9cacbcccdcfd0d1d2d3d6d7d8d9dadbdcdddedfe1e2e3e4e6e8e9eaebecedeff0f1f2f3f4f5f6f7f8fafbfcfdfeff,72:0001020304050708090a0b0c0d0e0f101112131415161718191a#1b1c1e1f2021222324252627292b2d2e2f3233343a3c3e40414243444546494a4b4e4f505153545557585a5c5e60636465686a6b6c6d707173747677787b7c7d828385868788898c8e9091939495969798999a9b9c9d9ea0a1a2a3a4a5a6a7a8a9aaabaeb1b2b3b5babbbcbdbebfc0c5c6c7c9cacbcccfd1d3d4d5d6d8dadb#95$,30:000102,00b702:c9c7,00a830:0305,2014ff5e20:162618191c1d,30:141508090a0b0c0d0e0f16171011,00:b1d7f7,22:362728110f2a2908371aa52520,231222:992b2e614c483d1d606e6f64651e3534,26:4240,00b020:3233,2103ff0400a4ff:e0e1,203000a7211626:0605,25:cbcfcec7c6a1a0b3b2,203b21:92909193,30:13#95$,21:70717273747576777879#4$,24:88898a8b8c8d8e8f909192939495969798999a9b7475767778797a7b7c7d7e7f808182838485868760616263646566676869##,32:20212223242526272829##,21:606162636465666768696a6b#97$,ff:010203e505060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5de3#95$,30:4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293#106$a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6#103$,03:9192939495969798999a9b9c9d9e9fa0a1a3a4a5a6a7a8a9#6$b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c3c4c5c6c7c8c9#5$,fe:3536393a3f403d3e41424344##3b3c373831#3334#104$,04:10111213141501161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f#13$30313233343551363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f#11$,02:cacbd9,20:13152535,21:050996979899,22:151f23526667bf,25:505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727381828384858687#88898a8b8c8d8e8f939495bcbde2e3e4e5,2609229530:121d1e#9$,010100e101ce00e0011300e9011b00e8012b00ed01d000ec014d00f301d200f2016b00fa01d400f901:d6d8dadc,00:fcea,0251e7c701:4448,e7c802:61#2$,31:05060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526272829#19$,30:212223242526272829,32a333:8e8f9c9d9ea1c4ced1d2d5,fe30ff:e2e4#,212132:31#,20:10#1$,30:fc9b9cfdfe069d9e,fe:494a4b4c4d4e4f50515254555657595a5b5c5d5e5f6061#626364656668696a6b,e7:e7e8e9eaebecedeeeff0f1f2f3,30:07#11$,25:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b#13$,72:dcdddfe2e3e4e5e6e7eaebf5f6f9fdfeff,73:00020405060708090b0c0d0f1011121418191a1f2023242627282d2f30323335363a3b3c3d404142434445464748#494a4b4c4e4f515354555658595a5b5c5d5e5f6162636465666768696a6b6e7071#92$72737475767778797a7b7c7d7f808182838586888a8c8d8f90929394959798999a9c9d9ea0a1a3a4a5a6a7a8aaacadb1b4b5b6b8b9bcbdbebfc1c3c4c5c6c7#cbccced2d3d4d5d6d7d8dadbdcdddfe1e2e3e4e6e8eaebeceeeff0f1f3f4f5f6f7#92$f8f9fafbfcfdfeff,74:0001020407080b0c0d0e1112131415161718191c1d1e1f2021232427292b2d2f31323738393a3b3d3e3f4042434445464748494a4b4c4d#4e4f505152535456585d606162636465666768696a6b6c6e6f717273747578797a#92$7b7c7d7f8284858688898a8c8d8f9192939495969798999a9b9d9fa0a1a2a3a4a5a6aaabacadaeafb0b1b2b3b4b5b6b7b8b9bbbcbdbebfc0c1c2c3c4c5c6c7#c8c9cacbcccdcecfd0d1d3d4d5d6d7d8d9dadbdddfe1e5e7e8e9eaebecedf0f1f2#92$f3f5f8f9fafbfcfdfe,75:0001020305060708090a0b0c0e1012141516171b1d1e202122232426272a2e3436393c3d3f414243444647494a4d5051525355565758#5d5e5f60616263646768696b6c6d6e6f7071737576777a7b7c7d7e808182848587#92$88898a8c8d8e909395989b9c9ea2a6a7a8a9aaadb6b7babbbfc0c1c6cbcccecfd0d1d3d7d9dadcdddfe0e1e5e9ecedeeeff2f3f5f6f7f8fafbfdfe,76:02040607#08090b0d0e0f11121314161a1c1d1e212327282c2e2f31323637393a3b3d414244#92$45464748494a4b4e4f50515253555758595a5b5d5f6061626465666768696a6c6d6e7071727374757677797a7c7f80818385898a8c8d8f9092949597989a9b#9c9d9e9fa0a1a2a3a5a6a7a8a9aaabacadafb0b3b5b6b7b8b9babbbcbdbec0c1c3,554a963f57c3632854ce550954c076:914c,853c77ee827e788d72319698978d6c285b894ffa630966975cb880fa684880ae660276ce51f9655671ac7ff1888450b2596561ca6fb382ad634c625253ed54277b06516b75a45df462d48dcb9776628a8019575d97387f627238767d67cf767e64464f708d2562dc7a17659173ed642c6273822c9881677f724862:6ecc,4f3474e3534a529e7eca90a65e2e6886699c81807ed168d278c5868c9551508d8c2482de80de53058912526576:c4c7c9cbccd3d5d9dadcdddee0e1e2e3e4e6e7e8e9eaebecedf0f3f5f6f7fafbfdff,77:00020305060a0c0e0f1011121314151617181b1c1d1e21232425272a2b#2c2e3031323334393b3d3e3f4244454648494a4b4c4d4e4f52535455565758595c,858496f94fdd582199715b9d62:b1a5,66b48c799c8d7206676f789160b253:5117,8f8880cc8d1d94a1500d72c8590760eb711988ab595482ef672c7b285d297ef7752d6cf58e668ff8903c9f3b6bd491197b145f7c78a784d6853d6b:d5d9d6,5e:0187,75f995ed655d5f:0ac5,8f9f58c181c2907f965b97ad8fb97f168d2c62414fbf53:d85e,8f:a8a9ab,904d68075f6a819888689cd6618b522b762a5f6c658c6fd26ee85bbe644851:75b0,67c44e1979c9997c70b377:5d5e5f606467696a6d6e6f7071727374757677787a7b7c818283868788898a8b8f90939495969798999a9b9c9d9ea1a3a4a6a8abadaeafb1b2b4b6b7b8b9ba#bcbec0c1c2c3c4c5c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d8d9dadddedfe0e1e4,75c55e7673bb83e064ad62e894b56ce2535a52c3640f94c27b944f2f5e1b823681:168a,6e246cca9a736355535c54fa886557e04e0d5e036b657c3f90e8601664e6731c88c16750624d8d22776c8e2991c75f6983dc8521991053c286956b8b60:ede8,707f82:cd31,4ed36ca785cf64cd7cd969fd66f9834953957b564fa7518c6d4b5c428e6d63d253c983:2c36,67e578b4643d5bdf5c945dee8be762c667f48c7a640063ba8749998b8c177f2094f24ea7961098a4660c731677:e6e8eaeff0f1f2f4f5f7f9fafbfc,78:0304050607080a0b0e0f101315191b1e20212224282a2b2e2f31323335363d3f414243444648494a4b4d4f51535458595a#5b5c5e5f606162636465666768696f7071727374757678797a7b7d7e7f80818283,573a5c1d5e38957f507f80a05382655e7545553150218d856284949e671d56326f6e5de2543570928f66626f64a463a35f7b6f8890f481e38fb05c1866685ff16c8996488d81886c649179f057ce6a59621054484e587a0b60e96f848bda627f901e9a8b79e4540375f4630153196c608fdf5f1b9a70803b9f7f4f885c3a8d647fc565a570bd51:45b2,866b5d075ba062bd916c75748e0c7a2061017b794ec77ef877854e1181ed521d51fa6a7153a88e87950496cf6ec19664695a78:848586888a8b8f9092949596999d9ea0a2a4a6a8a9aaabacadaeafb5b6b7b8babbbcbdbfc0c2c3c4c6c7c8cccdcecfd1d2d3d6d7d8dadbdcdddedfe0e1e2e3#e4e5e6e7e9eaebedeeeff0f1f3f5f6f8f9fbfcfdfeff,79:00020304060708090a0b0c,784050a877d7641089e6590463e35ddd7a7f693d4f20823955984e3275ae7a975e:628a,95ef521b5439708a6376952457826625693f918755076df37eaf882262337ef075b5832878c196cc8f9e614874f78bcd6b64523a8d506b21806a847156f153064e:ce1b,51d17c97918b7c074fc38e7f7be17a9c64675d1450ac810676017cb96dec7fe067515b:58f8,78cb64:ae13,63:aa2b,9519642d8fbe7b5476296253592754466b7950a362345e266b864ee38d37888b5f85902e79:0d0e0f1011121415161718191a1b1c1d1f2021222325262728292a2b2c2d2e2f3031323335363738393d3f42434445474a4b4c4d4e4f505152545558596163#6466696a6b6c6e70717273747576797b7c7d7e7f8283868788898b8c8d8e909192,6020803d62c54e39535590f863b880c665e66c2e4f4660ee6de18bde5f3986cb5f536321515a83616863520063638e4850125c9b79775bfc52307a3b60bc905376d75f:b797,76848e6c706f767b7b4977aa51f3909358244f4e6ef48fea654c7b1b72c46da47fdf5ae162b55e95573084827b2c5e1d5f1f90127f1498a063826ec7789870b95178975b57ab75354f4375385e9760e659606dc06bbf788953fc96d551cb52016389540a94938c038dcc7239789f87768fed8c0d53e079:939495969798999b9c9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b6b7b8bcbfc2c4c5c7c8cacccecfd0d3d4d6d7d9dadbdcdddee0e1e2e5e8ea#eceef1f2f3f4f5f6f7f9fafcfeff,7a:0104050708090a0c0f10111213151618191b1c,4e0176ef53ee948998769f0e952d5b9a8ba24e:221c,51ac846361c252a8680b4f97606b51bb6d1e515c6296659796618c46901775d890fd77636bd272:8aec,8bfb583577798d4c675c9540809a5ea66e2159927aef77ed953b6bb565ad7f0e58065151961f5bf958a954288e726566987f56e4949d76fe9041638754c659:1a3a,579b8eb267358dfa8235524160f0581586fe5ce89e454fc4989d8bb95a2560765384627c904f9102997f6069800c513f80335c1499756d314e8c7a:1d1f21222425262728292a2b2c2d2e2f303132343536383a3e4041424344454748494a4b4c4d4e4f50525354555658595a5b5c5d5e5f606162636465666768#696a6b6c6d6e6f717273757b7c7d7e828587898a8b8c8e8f909394999a9b9ea1a2,8d3053d17f5a7b4f4f104e4f96006cd573d085e95e06756a7ffb6a0a77fe94927e4151e170e653cd8fd483038d2972af996d6cdb574a82b365b980aa623f963259a84eff8bbf7eba653e83f2975e556198de80a5532a8bfd542080ba5e9f6cb88d3982ac915a54296c1b52067eb7575f711a6c7e7c89594b4efd5fff61247caa4e305c0167ab87025cf0950b98ce75af70fd902251af7f1d8bbd594951e44f5b5426592b657780a45b7562:76c2,8f905e456c1f7b264f:0fd8,670d7a:a3a4a7a9aaabaeafb0b1b2b4b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d4d5d7d8dadbdcdde1e2e4e7e8e9eaebeceef0f1f2f3#f4f5f6f7f8fbfcfe,7b:0001020507090c0d0e1012131617181a1c1d1f21222327292d,6d:6eaa,798f88b15f17752b629a8f854fef91dc65a781:2f51,5e9c81508d74526f89868d4b590d50854ed8961c723681798d1f5bcc8ba3964459877f1a549056:760e,8be565396982949976d66e895e72751867:46d1,7aff809d8d76611f79c665628d635188521a94a27f38809b7eb25c976e2f67607bd9768b9ad8818f7f947cd5641e95507a3f54:4ae5,6b4c640162089e3d80f3759952729769845b683c86e496:0194,94ec4e2a54047ed968398ddf801566f45e9a7fb97b:2f303234353637393b3d3f404142434446484a4d4e535557595c5e5f61636465666768696a6b6c6d6f70737476787a7c7d7f81828384868788898a8b8c8e8f#9192939698999a9b9e9fa0a3a4a5aeafb0b2b3b5b6b7b9babbbcbdbebfc0c2c3c4,57c2803f68975de5653b529f606d9f9a4f9b8eac516c5bab5f135de96c5e62f18d21517194a952fe6c9f82df72d757a267848d2d591f8f9c83c754957b8d4f306cbd5b6459d19f1353e486ca9aa88c3780a16545987e56fa96c7522e74dc52505be1630289024e5662d0602a68fa51735b9851a089c27ba199867f5060ef704c8d2f51495e7f901b747089c4572d78455f529f9f95fa8f689b3c8be17678684267dc8d:ea35,523d8f8a6eda68cd950590ed56fd679c88f98fc754c87b:c5c8c9cacbcdcecfd0d2d4d5d6d7d8dbdcdedfe0e2e3e4e7e8e9ebecedeff0f2f3f4f5f6f8f9fafbfdff,7c:0001020304050608090a0d0e101112131415171819#1a1b1c1d1e20212223242528292b2c2d2e2f3031323334353637393a3b3c3d3e42,9ab85b696d776c264ea55bb39a87916361a890af97e9542b6db55bd251fd558a7f:55f0,64bc634d65f161be608d710a6c:5749,592f676d822a58d5568e8c6a6beb90dd597d801753f76d695475559d83:77cf,683879be548c4f55540876d28c8996026cb36db88d6b89109e648d3a563f9ed175d55f8872e0606854fc4ea86a2a886160528f7054c470d886799e3f6d2a5b8f5f187ea255894faf7334543c539a501954:0e7c,4e4e5ffd745a58f6846b80e1877472d07cca6e567c:434445464748494a4b4c4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717275767778797a7e7f8081828384858687#888a8b8c8d8e8f90939496999a9ba0a1a3a6a7a8a9abacadafb0b4b5b6b7b8babb,5f27864e552c62a44e926caa623782b154d7534e733e6ed1753b521253168bdd69d05f8a60006dee574f6b2273af68538fd87f13636260a3552475ea8c6271156da35ba65e7b8352614c9ec478fa87577c27768751f060f6714c66435e4c604d8c0e707063258f895fbd606286d456de6bc160946167534960e066668d3f79fd4f1a70e96c478b:b3f2,7ed88364660f5a5a9b426d:51f7,8c416d3b4f19706b83b7621660d1970d8d27797851fb57:3efa,673a75787a3d79ef7b957c:bfc0c2c3c4c6c9cbcecfd0d1d2d3d4d8dadbdddee1e2e3e4e5e6e7e9eaebecedeef0f1f2f3f4f5f6f7f9fafcfdfeff,7d:000102030405060708090b0c0d0e0f10#1112131415161718191a1b1c1d1e1f212324252628292a2c2d2e30313233343536,808c99658ff96fc08ba59e2159ec7ee97f095409678168d88f917c4d96c653ca602575be6c7253735ac97ea7632451e0810a5df184df628051805b634f0e796d524260b86d4e5b:c4c2,8b:a1b0,65e25fcc964559937e:e7aa,560967b759394f735bb652a0835a988a8d3e753294be50477a3c4ef767b69a7e5ac16b7c76d1575a5c167b3a95f4714e517c80a9827059787f04832768c067ec78:b177,62e363617b804fed526a51cf835069db92748d:f531,89c1952e7bad4ef67d:3738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6f70717273747576#78797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798,506582305251996f6e:1085,6da75efa50f559dc5c066d466c5f7586848b686859568bb253209171964d854969127901712680f64ea490ca6d479a845a0756bc640594f077eb4fa5811a72e189d2997a7f347ede527f655991758f:7f83,53eb7a9663:eda5,768679f888579636622a52ab8282685467706377776b7aed6d017ed389e359d0621285c982a5754c501f4ecb75a58beb5c4a5dfe7b4b65a491d14eca6d25895f7d2795264ec58c288fdb9773664b79818fd170ec6d787d:999a9b9c9d9e9fa0a1a2a3a4a5a7a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9#dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa,5c3d52b283465162830e775b66769cb84eac60ca7c:beb3,7ecf4e958b66666f988897595883656c955c5f8475c997567a:dfde,51c070af7a9863ea7a767ea0739697ed4e4570784e5d915253a965:51e7,81fc8205548e5c31759a97a062d872d975bd5c459a7983ca5c40548077e94e3e6cae805a62d2636e5de851778ddd8e1e952f4ff153e560e770ac526763509e435a1f5026773753777ee26485652b628963985014723589c951b38bc07edd574783cc94a7519b541b5cfb7d:fbfcfdfeff,7e:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536373839#3a3c3d3e3f40424344454648494a4b4c4d4e4f505152535455565758595a5b5c5d,4fca7ae36d5a90e19a8f55805496536154af5f0063e9697751ef6168520a582a52d8574e780d770b5eb761777ce062:5b97,4ea27095800362f770e49760577782db67ef68f578d5989779d158f354b353ef6e34514b523b5ba28bfe80af554357a660735751542d7a7a60505b5463a762a053e362635bc767af54ed7a9f82e691775e9388e4593857ae630e8de880ef57577b774fa95feb5bbd6b3e53217b5072c2684677:ff36,65f751b54e8f76d45cbf7aa58475594e9b4150807e:5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f909192939495969798999a9c9d9e#aeb4bbbcd6e4ecf9,7f:0a101e37393b3c3d3e3f404143464748494a4b4c4d4e4f5253,998861276e8357646606634656f062:ec69,5ed39614578362c955878721814a8fa3556683b167658d5684dd5a6a680f62e67bee961151706f9c8c3063fd89c861d27f0670c26ee57405699472fc5eca90ce67176d6a635e52b3726280014f6c59e5916a70d96d9d52d24e5096f7956d857e78ca7d2f5121579264c2808b7c7b6cea68f1695e51b7539868a872819ece7bf172f879bb6f137406674e91cc9ca4793c83:8954,540f68174e3d538952b1783e5386522950884f:8bd0,7f:56595b5c5d5e6063646566676b6c6d6f7073757677787a7b7c7d7f8082838485868788898b8d8f9091929395969798999b9ca0a2a3a5a6a8a9aaabacadaeb1#b3b4b5b6b7babbbec0c2c3c4c6c7c8c9cbcdcfd0d1d2d3d6d7d9dadbdcdddee2e3,75e27acb7c926ca596b6529b748354e94fe9805483b28fde95705ec9601c6d9f5e18655b813894fe604b70bc7ec37cae51c968817cb1826f4e248f8691cf667e4eae8c0564a9804a50da759771ce5be58fbd6f664e86648295635ed66599521788c270c852a3730e7433679778f797164e3490bb9cde6dcb51db8d41541d62ce73b283f196f69f8494c34f367f9a51cc707596755cad988653e64ee46e9c740969b4786b998f7559521876246d4167f3516d9f99804b54997b3c7abf7f:e4e7e8eaebecedeff2f4f5f6f7f8f9fafdfeff,80:020708090a0e0f11131a1b1d1e1f2123242b2c2d2e2f303234393a3c3e404144454748494e4f505153555657#595b5c5d5e5f6061626364656667686b6c6d6e6f7072737475767778797a7b7c7d,9686578462e29647697c5a0464027bd36f0f964b82a6536298855e90708963b35364864f9c819e93788c97328d:ef42,9e7f6f5e79845f559646622e9a74541594dd4fa365c55c:6561,7f1586516c2f5f8b73876ee47eff5ce6631b5b6a6ee653754e7163a0756562a18f6e4f264ed16ca67eb68bba841d87ba7f57903b95237ba99aa188f8843d6d1b9a867edc59889ebb739b780186829a:6c82,561b541757cb4e709ea653568fc881097792999286ee6ee1851366fc61626f2b80:7e818285888a8d8e8f909192949597999ea3a6a7a8acb0b3b5b6b8b9bbc5c7c8c9cacbcfd0d1d2d3d4d5d8dfe0e2e3e6eef5f7f9fbfeff,81:000103040507080b#0c1517191b1c1d1f202122232425262728292a2b2d2e3033343537393a3b3c3d3f,8c298292832b76f26c135fd983bd732b8305951a6bdb77db94c6536f830251925e3d8c8c8d384e4873ab679a68859176970971646ca177095a9295416bcf7f8e66275bd059b95a9a95:e8f7,4eec84:0c99,6aac76df9530731b68a65b5f772f919a97617cdc8ff78c1c5f257c7379d889c56ccc871c5bc65e4268c977207ef551:954d,52c95a297f05976282d763cf778485d079d26e3a5e9959998511706d6c1162bf76bf654f60af95fd660e879f9e2394ed54:0d7d,8c2c647881:40414243444547494d4e4f525657585b5c5d5e5f6162636466686a6b6c6f727375767778818384858687898b8c8d8e90929394959697999a9e9fa0a1a2a4a5#a7a9abacadaeafb0b1b2b4b5b6b7b8b9bcbdbebfc4c5c7c8c9cbcdcecfd0d1d2d3,647986116a21819c78e864699b5462b9672b83ab58a89ed86cab6f205bde964c8c0b725f67d062c772614ea959c66bcd589366ae5e5552df6155672876ee776672677a4662ff54:ea50,94a090a35a1c7eb36c164e435976801059485357753796be56ca63208111607c95f96dd65462998151855ae980fd59ae9713502a6ce55c3c62df4f60533f817b90066eba852b62c85e7478be64b5637b5ff55a18917f9e1f5c3f634f80425b7d556e95:4a4d,6d8560a867e072de51dd5b8181:d4d5d6d7d8d9dadbdcdddedfe0e1e2e4e5e6e8e9ebeeeff0f1f2f5f6f7f8f9fafdff,82:030708090a0b0e0f111315161718191a1d2024252627292e323a3c3d3f#404142434546484a4c4d4e5051525354555657595b5c5d5e606162636465666769,62e76cde725b626d94ae7ebd81136d53519c5f04597452aa6012597366968650759f632a61e67cef8bfa54e66b279e256bb485d5545550766ca4556a8db4722c5e156015743662cd6392724c5f986e436d3e65006f5876d878d076fc7554522453db4e535e9e65c180:2ad6,629b5486522870ae888d8dd16ce1547880da57f988f48d54966a914d4f696c9b55b776c6783062a870f96f8e5f6d84ec68da787c7bf781a8670b9e4f636778b0576f7812973962:79ab,528874356bd782:6a6b6c6d71757677787b7c808183858687898c90939495969a9b9ea0a2a3a7b2b5b6babbbcbfc0c2c3c5c6c9d0d6d9dadde2e7e8e9eaecedeef0f2f3f5f6f8#fafcfdfeff,83:000a0b0d1012131618191d1e1f20212223242526292a2e3032373b3d,5564813e75b276ae533975de50fb5c418b6c7bc7504f72479a9798d86f0274e27968648777a562fc98918d2b54c180584e52576a82f9840d5e7351ed74f68bc45c4f57616cfc98875a4678349b448feb7c955256625194fa4ec68386846183e984b257d467345703666e6d668c3166dd7011671f6b3a6816621a59bb4e0351c46f0667d26c8f517668cb59476b6775665d0e81109f5065d779:4841,9a918d775c824e5e4f01542f5951780c56686c148fc45f036c:7de3,8bab639083:3e3f41424445484a4b4c4d4e5355565758595d6270717273747576797a7e7f808182838487888a8b8c8d8f909194959697999a9d9fa1a2a3a4a5a6a7acadae#afb5bbbebfc2c3c4c6c8c9cbcdced0d1d2d3d5d7d9dadbdee2e3e4e6e7e8ebeced,60706d3d7275626694:8ec5,53438fc17b7e4edf8c264e7e9ed494:b1b3,524d6f5c90636d458c3458115d4c6b:2049,67aa545b81547f8c589985375f3a62a26a47953965726084686577a74e544fa85de7979864ac7fd85ced4fcf7a8d520783044e14602f7a8394a64fb54eb279e6743452e482b964d279bd5bdd6c8197528f7b6c22503e537f6e0564ce66746c3060c598778bf75e86743c7a7779cb4e1890b174036c4256da914b6cc58d8b533a86c666f28eaf5c489a716e2083:eeeff3f4f5f6f7fafbfcfeff,84:0002050708090a10121314151617191a1b1e1f20212223292a2b2c2d2e2f30323334353637393a3b3e3f404142434445474849#4a4b4c4d4e4f505253545556585d5e5f606264656667686a6e6f70727477797b7c,53d65a369f8b8da353bb570898a76743919b6cc9516875ca62f372ac52:389d,7f3a7094763853749e4a69b7786e96c088d97fa471:36c3,518967d374e458e4651856b78ba9997662707ed560f970ed58ec4e:c1ba,5fcd97e74efb8ba45203598a7eab62544ecd65e5620e833884c98363878d71946eb65bb97ed2519763c967d480898339881551125b7a59828fb14e736c5d516589258f6f962e854a745e95:10f0,6da682e55f3164926d128428816e9cc3585e8d5b4e0953c184:7d7e7f8081838485868a8d8f90919293949596989a9b9d9e9fa0a2a3a4a5a6a7a8a9aaabacadaeb0b1b3b5b6b7bbbcbec0c2c3c5c6c7c8cbcccecfd2d4d5d7#d8d9dadbdcdee1e2e4e7e8e9eaebedeeeff1f2f3f4f5f6f7f8f9fafbfdfe,85:000102,4f1e6563685155d34e2764149a9a626b5ac2745f82726da968ee50e7838e7802674052396c997eb150bb5565715e7b5b665273ca82eb67495c715220717d886b95ea965564c58d6181b355846c5562477f2e58924f2455468d4f664c4e0a5c1a88f368a2634e7a0d70e7828d52fa97f65c1154e890b57ecd59628d4a86c782:0c0d,8d6664445c0461516d89793e8bbe78377533547b4f388eab6df15a207ec5795e6c885ba15a76751a80be614e6e1758f075:1f25,727253477ef385:030405060708090a0b0d0e0f101214151618191b1c1d1e2022232425262728292a2d2e2f303132333435363e3f404142444546474b4c4d4e4f505152535455#57585a5b5c5d5f60616263656667696a6b6c6d6e6f707173757677787c7d7f8081,770176db526980dc57235e08593172ee65bd6e7f8bd75c388671534177f362fe65f64ec098df86805b9e8bc653f277e24f7f5c4e9a7659cb5f0f793a58eb4e1667ff4e8b62ed8a93901d52bf662f55dc566c90024ed54f8d91ca99706c0f5e0260435ba489c68bd56536624b99965b:88ff,6388552e53d77626517d852c67a268b36b8a62928f9353d482126dd1758f4e668d4e5b70719f85af66:91d9,7f7287009ecd9f205c5e672f8ff06811675f620d7ad658855eb665706f3185:82838688898a8b8c8d8e909192939495969798999a9d9e9fa0a1a2a3a5a6a7a9abacadb1b2b3b4b5b6b8babbbcbdbebfc0c2c3c4c5c6c7c8cacbcccdced1d2#d4d6d7d8d9dadbdddedfe0e1e2e3e5e6e7e8eaebecedeeeff0f1f2f3f4f5f6f7f8,60555237800d6454887075295e05681362f4971c53cc723d8c016c3477617a0e542e77ac987a821c8bf47855671470c165af64955636601d79c153f84e1d6b7b80865bfa55e356db4f:3a3c,99725df3677e80386002988290015b8b8b:bcf5,641c825864de55fd82cf91654fd77d20901f7c9f50f358516eaf5bbf8bc980839178849c7b97867d96:8b8f,7ee59ad3788e5c817a57904296a7795f5b59635f7b0b84d168ad55067f2974107d2295016240584c4ed65b835979585485:f9fafcfdfe,86:0001020304060708090a0b0c0d0e0f10121314151718191a1b1c1d1e1f20212223242526282a2b2c2d2e2f3031323334353637393a3b3d3e3f40#4142434445464748494a4b4c525355565758595b5c5d5f6061636465666768696a,736d631e8e:4b0f,80ce82d462ac53f06cf0915e592a60016c70574d644a8d2a762b6ee9575b6a8075f06f6d8c:2d08,57666bef889278b363a253f970ad6c645858642a580268e0819b55107cd650188eba6dcc8d9f70eb638f6d9b6ed47ee68404684390036dd896768ba85957727985e4817e75bc8a8a68af52548e22951163d098988e44557c4f5366ff568f60d56d9552435c4959296dfb586b75:301c,606c82148146631167618fe2773a8d:f334,94c15e165385542c70c386:6d6f7072737475767778838485868788898e8f90919294969798999a9b9e9fa0a1a2a5a6abadaeb2b3b7b8b9bbbcbdbebfc1c2c3c5c8cccdd2d3d5d6d7dadc#dde0e1e2e3e5e6e7e8eaebeceff5f6f7fafbfcfdff,87:010405060b0c0e0f10111416,6c405ef7505c4ead5ead633a8247901a6850916e77b3540c94dc5f647ae5687663457b527edf75db507762955934900f51f879c37a8156fe5f9290146d825c60571f541051546e4d56e263a89893817f8715892a9000541e5c6f81c062:d658,81319e3596409a:6e7c,692d59a562d3553e631654c786d96d3c5a0374e6889c6b6a59168c4c5f2f6e7e73a9987d4e3870f75b8c7897633d665a769660cb5b9b5a494e0781556c6a738b4ea167897f515f8065fa671b5fd859845a0187:191b1d1f20242627282a2b2c2d2f303233353638393a3c3d404142434445464a4b4d4f505152545556585a5b5c5d5e5f6162666768696a6b6c6d6f71727375#7778797a7f8081848687898a8c8e8f90919294959698999a9b9c9d9ea0a1a2a3a4,5dcd5fae537197e68fdd684556f4552f60df4e3a6f4d7ef482c7840e59d44f:1f2a,5c3e7eac672a851a5473754f80c355829b4f4f4d6e2d8c135c096170536b761f6e29868a658795fb7eb9543b7a337d0a95ee55e17fc174ee631d87176da17a9d621165a1536763e16c835deb545c94a84e4c6c618bec5c4b65e0829c68a754:3e34,6b:cb66,4e9463425348821e4f:0dae,575e620a96fe6664726952:ffa1,609f8bef661471996790897f785277fd6670563b54389521727a87:a5a6a7a9aaaeb0b1b2b4b6b7b8b9bbbcbebfc1c2c3c4c5c7c8c9cccdcecfd0d4d5d6d7d8d9dadcdddedfe1e2e3e4e6e7e8e9ebecedeff0f1f2f3f4f5f6f7f8#fafbfcfdff,88:0001020405060708090b0c0d0e0f101112141718191a1c1d1e1f2023,7a00606f5e0c6089819d591560dc718470ef6eaa6c5072806a8488ad5e2d4e605ab3559c94e36d177cfb9699620f7ec6778e867e5323971e8f9666875ce14fa072ed4e0b53a6590f54136380952851484ed99c9c7ea454b88d248854823795f26d8e5f265acc663e966973:b02e,53bf817a99857fa15baa96:7750,7ebf76f853a2957699997bb189446e584e617fd479658be660f354cd4eab98795df76a6150cf54118c618427785d9704524a54ee56a395006d885bb56dc6665388:2425262728292a2b2c2d2e2f30313334353637383a3b3d3e3f414243464748494a4b4e4f505152535556585a5b5c5d5e5f6066676a6d6f717374757678797a#7b7c80838687898a8c8e8f90919394959798999a9b9d9e9fa0a1a3a5a6a7a8a9aa,5c0f5b5d6821809655787b11654869544e9b6b47874e978b534f631f643a90aa659c80c18c10519968b0537887f961c86c:c4fb,8c225c5185aa82af950c6b238f9b65b05f:fbc3,4fe18845661f8165732960fa51745211578b5f6290a2884c91925e78674f602759d351:44f6,80f853086c7996c4718a4f:11ee,7f9e673d55c5950879c088967ee3589f620c9700865a5618987b5f908bb884c4915753d965ed5e8f755c60647d6e5a7f7e:eaed,8f6955a75ba360ac65cb738488:acaeafb0b2b3b4b5b6b8b9babbbdbebfc0c3c4c7c8cacbcccdcfd0d1d3d6d7dadbdcdddee0e1e6e7e9eaebecedeeeff2f5f6f7fafbfdff,89:0001030405060708#090b0c0d0e0f1114151617181c1d1e1f20222324262728292c2d2e2f3132333537,9009766377297eda9774859b5b667a7496ea884052cb718f5faa65ec8be25bfb9a6f5de16b896c5b8b:adaf,900a8fc5538b62bc9e:262d,54404e2b82bd7259869c5d1688596daf96c554d14e9a8bb6710954bd960970df6df976d04e25781487125ca95ef68a00989c960e708e6cbf594463a9773c884d6f148273583071d5538c781a96c155015f6671305bb48c1a9a8c6b83592e9e2f79e76768626c4f6f75a17f8a6d0b96336c274ef075d2517b68376f3e908081705996747689:38393a3b3c3d3e3f40424345464748494a4b4c4d4e4f505152535455565758595a5b5c5d6061626364656768696a6b6c6d6e6f707172737475767778797a7c#7d7e808284858788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1,64475c2790657a918c2359da54ac8200836f898180006930564e8036723791ce51b64e5f987563964e1a53f666f3814b591c6db24e0058f9533b63d694f14f:9d0a,886398905937905779fb4eea80f075916c825b9c59e85f5d69058681501a5df24e5977e34ee5827a6291661390915c794ebf5f7981c69038808475ab4ea688d4610f6bc55fc64e4976ca6ea28b:e3ae,8c0a8bd15f027f:fccc,7ece83:356b,56e06bb797f3963459fb541f94f66deb5bc5996e5c395f15969089:a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c3cdd3d4d5d7d8d9dbdddfe0e1e2e4e7e8e9eaecedeef0f1f2f4f5f6f7f8f9fa#fbfcfdfeff,8a:01020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d,537082f16a315a749e705e947f2883b984:2425,836787478fce8d6276c85f719896786c662054df62e54f6381c375c85eb896cd8e0a86f9548f6cf36d8c6c38607f52c775285e7d4f1860a05fe75c24753190ae94c072b96cb96e389149670953:cbf3,4f5191c98bf153c85e7c8fc26de44e8e76c26986865e611a82064f:59de,903e9c7c61096e:1d14,96854e885a3196e84e0e5c7f79b95b878bed7fbd738957df828b90c15401904755bb5cea5fa161086b3272f180b28a:891e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f4041424344454647494a4b4c4d4e4f505152535455565758595a5b5c5d5e#5f606162636465666768696a6b6c6d6e6f7071727374757677787a7b7c7d7e7f80,6d745bd388d598848c6b9a6d9e336e0a51:a443,57a38881539f63f48f9556ed54585706733f6e907f188fdc82d1613f6028966266f07ea68d:8ac3,94a55cb37ca4670860a6960580184e9190e75300966851418fd08574915d665597f55b55531d78386742683d54c9707e5bb08f7d518d572854b1651266828d:5e43,810f846c906d7cdf51ff85fb67a365e96fa186a48e81566a90207682707671e58d2362e952196cfd8d3c600e589e618e66fe8d60624e55b36e23672d8f678a:81828384858687888b8c8d8e8f9091929495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3,94e195f87728680569a8548b4e4d70b88bc86458658b5b857a84503a5be877bb6be18a797c986cbe76cf65a98f975d2d5c5586386808536062187ad96e5b7efd6a1f7ae05f706f335f20638c6da867564e085e108d264ed780c07634969c62db662d627e6cbc8d7571677f695146808753ec906e629854f286f08f998005951785178fd96d5973cd659f771f7504782781fb8d1e94884fa6679575b98bca9707632f9547963584b8632377415f8172f04e896014657462ef6b63653f8a:e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8b:0001020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#24252728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,5e2775c790d18bc1829d679d652f5431871877e580a281026c414e4b7ec7804c76f4690d6b966267503c4f84574063076b628dbe53ea65e87eb85fd763:1ab7,81:f3f4,7f6e5e1c5cd95236667a79e97a1a8d28709975d46ede6cbb7a924e2d76c55fe0949f88777ec879cd80bf91cd4ef24f17821f54685dde6d328bcc7ca58f7480985e1a549276b15b99663c9aa473e0682a86db6731732a8b:f8db,90107af970db716e62c477a956314e3b845767f152a986c08d2e94f87b518b:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656768696a6b6d6e6f707172737475767778797a7b7c7d7e7f80818283848586#8788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9facb1bbc7d0ea,8c:091e,4f4f6ce8795d9a7b6293722a62fd4e1378168f6c64b08d5a7bc668695e8488c55986649e58ee72b6690e95258ffd8d5857607f008c0651c6634962d95353684c74228301914c55447740707c6d4a517954a88d4459ff6ecb6dc45b5c7d2b4ed47c7d6ed35b5081ea6e0d5b579b0368d58e2a5b977efc603b7eb590b98d70594f63cd79df8db3535265cf79568bc5963b7ec494bb7e825634918967007f6a5c0a907566285de64f5067de505a4f5c57505e:a7#3$,8c:38393a3b3c3d3e3f4042434445484a4b4d4e4f5051525354565758595b5c5d5e5f60636465666768696c6d6e6f707172747576777b7c7d7e7f808183848687#888b8d8e8f90919293959697999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacad,4e:8d0c,51404e105eff53454e:15981e,9b325b6c56694e2879ba4e3f53154e47592d723b536e6c1056df80e499976bd3777e9f174e:369f,9f104e:5c6993,82885b5b556c560f4ec453:8d9da3a5ae,97658d5d53:1af5262e3e,8d5c53:6663,52:02080e2d333f404c5e615c,84af52:7d82819093,51827f544e:bbc3c9c2e8e1ebde,4f1b4ef34f:2264,4ef54f:2527092b5e67,65384f:5a5d,8c:aeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebec#edeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8d:000102030405060708090a0b0c0d,4f:5f57323d76749189838f7e7baa7cac94e6e8eac5dae3dcd1dff8,50:294c,4ff350:2c0f2e2d,4ffe50:1c0c25287e4355484e6c7ba5a7a9bad6,510650:edece6ee,51:070b,4edd6c3d4f:5865ce,9fa06c467c74516e5dfd9ec999985181591452f9530d8a07531051eb591951554ea051564eb388:6ea4,4eb5811488d279805b3488037fb851:abb1bdbc,8d:0e0f101112131415161718191a1b1c205152575f6568696a6c6e6f717278797a7b7c7d7e7f808283868788898c8d8e8f90929395969798999a9b9c9d9ea0a1#a2a4a5a6a7a8a9aaabacadaeafb0b2b6b7b9bbbdc0c1c2c5c7c8c9cacdd0d2d3d4,51:c796a2a5,8b:a0a6a7aab4b5b7c2c3cbcfced2d3d4d6d8d9dcdfe0e4e8e9eef0f3f6f9fcff,8c:000204070c0f1112141516191b181d1f202125272a2b2e2f32333536,53:697a,96:1d2221312a3d3c4249545f676c7274888d97b0,90:979b9d99aca1b4b3b6ba,8d:d5d8d9dce0e1e2e5e6e7e9edeef0f1f2f4f6fcfeff,8e:00010203040607080b0d0e1011121315161718191a1b1c202124252627282b2d303233343637383b3c3e#3f4345464c4d4e4f505354555657585a5b5c5d5e5f60616263646567686a6b6e71,90:b8b0cfc5bed0c4c7d3e6e2dcd7dbebeffe,91:04221e23312f394346,520d594252:a2acadbe,54ff52:d0d6f0,53df71ee77cd5ef451:f5fc,9b2f53b65f01755a5def57:4ca9a1,58:7ebcc5d1,57:292c2a33392e2f5c3b4269856b867c7b686d7673ada48cb2cfa7b493a0d5d8dad9d2b8f4eff8e4dd,8e:73757778797a7b7d7e808283848688898a8b8c8d8e91929395969798999a9b9d9fa0a1a2a3a4a5a6a7a8a9aaadaeb0b1b3b4b5b6b7b8b9bbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4,58:0b0d,57:fded,58:001e194420656c81899a80,99a89f1961ff82:797d7f8f8aa8848e919799abb8beb0c8cae398b7aecbccc1a9b4a1aa9fc4cea4e1,830982:f7e4,83:0f07,82:dcf4d2d8,830c82:fbd3,83:111a061415,82:e0d5,83:1c515b5c08923c34319b5e2f4f47435f4017602d3a336665,8e:e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8f:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#2425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344,83:681b696c6a6d6eb078b3b4a0aa939c857cb6a97db87b989ea8babcc1,840183:e5d8,580784:180b,83:ddfdd6,84:1c381106,83:d4df,84:0f03,83:f8f9eac5c0,842683:f0e1,84:5c515a597387887a89783c4669768c8e316dc1cdd0e6bdd3cabfbae0a1b9b497e5e3,850c750d853884f085:391f3a,8f:45464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656a808c929da0a1a2a4a5a6a7aaacadaeafb2b3b4b5b7b8babbbcbfc0c3c6#c9cacbcccdcfd2d6d7dae0e1e3e7eceff1f2f4f5f6fafbfcfeff,90:07080c0e131518,85:563b,84:fffc,85:594868645e7a,77a285:43727ba4a8878f79ae9c85b9b7b0d3c1dcff,86:270529163c,5efe5f0859:3c41,803759:555a58,530f5c:22252c34,62:4c6a9fbbcadad7ee,632262f663:394b43adf6717a8eb46dac8a69aebcf2f8e0ffc4dece,645263:c6be,64:45410b1b200c26215e846d96,90:191c2324252728292a2b2c303132333437393a3d3f4043454648494a4b4c4e545556595a5c5d5e5f6061646667696a6b6c6f70717273767778797a7b7c7e81#84858687898a8c8d8e8f90929496989a9c9e9fa0a4a5a7a8a9abadb2b7bcbdbfc0,64:7ab7b899bac0d0d7e4e2,65:09252e,5f:0bd2,75195f1153:5ff1fde9e8fb,54:1216064b5253545643215759233282947771649a9b8476669dd0adc2b4d2a7a6d3d472a3d5bbbfccd9dadca9aaa4ddcfde,551b54e7552054fd551454f355:22230f11272a678fb5496d41553f503c,90:c2c3c6c8c9cbcccdd2d4d5d6d8d9dadedfe0e3e4e5e9eaeceef0f1f2f3f5f6f7f9fafbfcff,91:00010305060708090a0b0c0d0e0f1011121314151617181a1b1c#1d1f20212425262728292a2b2c2d2e30323334353637383a3b3c3d3e3f40414244,55:375675767733305c8bd283b1b988819f7ed6917bdfbdbe9499eaf7c9,561f55:d1ebecd4e6ddc4efe5f2f3cccde8f5e4,8f9456:1e080c012423,55fe56:00272d5839572c4d62595c4c548664716b7b7c8593afd4d7dde1f5ebf9ff,57:040a091c,5e:0f191411313b3c,91:454748515354555658595b5c5f606667686b6d737a7b7c808182838486888a8e8f939495969798999c9d9e9fa0a1a4a5a6a7a8a9abacb0b1b2b3b6b7b8b9bb#bcbdbebfc0c1c2c3c4c5c6c8cbd0d2d3d4d5d6d7d8d9dadbdddedfe0e1e2e3e4e5,5e:3744545b5e61,5c:8c7a8d9096889899919a9cb5a2bdacabb1a3c1b7c4d2e4cbe5,5d:020327262e241e061b583e343d6c5b6f5d6b4b4a697482999d,8c735d:b7c5,5f:73778287898c95999ca8adb5bc,88625f6172:adb0b4b7b8c3c1cecdd2e8efe9f2f4f7,730172f3730372fa91:e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,92:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324#25262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,72fb73:1713210a1e1d152239252c3831504d57606c6f7e,821b592598e759:2402,99:636768696a6b6c74777d8084878a8d9091939495,5e:80918b96a5a0b9b5beb3,8d535e:d2d1dbe8ea,81ba5f:c4c9d6cf,60035fee60045f:e1e4fe,60:0506,5f:eaedf8,60:1935261b0f0d292b0a3f2178797b7a42,92:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727375767778797a7b7c7d7e7f808182838485#868788898a8b8c8d8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7,60:6a7d969aad9d83928c9becbbb1ddd8c6dab4,61:20261523,60f461:000e2b4a75ac94a7b7d4f5,5fdd96b395:e9ebf1f3f5f6fcfe,96:030406080a0b0c0d0f12151617191a,4e2c723f62156c:35545c4aa38590948c6869747686a9d0d4adf7f8f1d7b2e0d6faebeeb1d3effe,92:a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8#e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,93:00010203040506070809,6d:39270c43480704190e2b4d2e351a4f525433916f9ea05e93945c607c63,6e1a6d:c7c5de,6e0e6d:bfe0,6e116d:e6ddd9,6e166dab6e0c6dae6e:2b6e4e6bb25f865354322544dfb198e0,6f2d6e:e2a5a7bdbbb7d7b4cf8fc29f,6f:6246472415,6ef96f:2f364b742a0929898d8c78727c7ad1,93:0a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f40414243444546474849#4a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696b,6f:c9a7b9b6c2e1eedee0ef,70:1a231b39354f5e,5b:80849593a5b8,752f9a9e64345b:e4ee,89305bf08e478b078f:b6d3d5e5eee4e9e6f3e8,90:05040b26110d162135362d2f445152506858625b,66b990:747d8288838b,5f:50575658,5c3b54ab5c:5059,5b715c:6366,7fbc5f:2a292d,82745f3c9b3b5c6e59:81838da9aaa3,93:6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaab#acadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cbcccd,59:97caab9ea4d2b2afd7be,5a:0506,59dd5a0859:e3d8f9,5a:0c09323411231340674a553c6275,80ec5a:aa9b777abeebb2d2d4b8e0e3f1d6e6d8dc,5b:091716323740,5c:151c,5b:5a6573515362,9a:7577787a7f7d808185888a90929396989b9c9d9fa0a2a3a5a7,7e:9fa1a3a5a8a9,93:cecfd0d1d2d3d4d5d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,94:000102030405060708090a0b0c0d#0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e,7e:adb0bec0c1c2c9cbccd0d4d7dbe0e1e8ebeeeff1f2,7f0d7e:f6fafbfe,7f:01020307080b0c0f111217191c1b1f212223242526272a2b2c2d2f3031323335,5e7a757f5ddb753e909573:8e91aea29fcfc2d1b7b3c0c9c8e5d9,987c740a73:e9e7debaf2,74:0f2a5b262528302e2c,94:2f303132333435363738393a3b3c3d3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6c6d6e6f#707172737475767778797a7b7c7d7e7f8081828384919698c7cfd3d4dae6fb,95:1c20,74:1b1a415c575559776d7e9c8e8081878b9ea8a990a7d2ba,97:eaebec,67:4c535e4869a5876a7398a775a89ead8b777cf0,680967d8680a67:e9b0,680c67:d9b5dab3dd,680067:c3b8e2,680e67:c1fd,68:323360614e624464831d55664167403e4a4929b58f7477936bc2,696e68fc69:1f20,68f995:27333d43484b555a606e74757778797a7b7c7d7e808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aa#abacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacb,692468f069:0b0157,68e369:10713960425d846b80987834cc8788ce896663799ba7bbabadd4b1c1cadf95e08dff,6a2f69ed6a:171865,69f26a:443ea0505b358e793d28587c9190a997ab,73:3752,6b:8182878492938d9a9ba1aa,8f:6b6d71727375767877797a7c7e818284878b,95:cccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7ecff,96:0713181b1e20232425262728292b2c2d2f303738393a3e41434a4e4f5152535657#58595a5c5d5e606365666b6d6e6f70717378797a7b7c7d7e7f808182838487898a,8f:8d8e8f989a,8ece62:0b171b1f222125242c,81e774:eff4ff,75:0f1113,65:34eeeff0,66:0a19,677266:031500,708566:f71d34313635,800666:5f54414f56615777848ca79dbedbdce6e9,8d:3233363b3d4045464849474d5559,89:c7cacbcccecfd0d1,72:6e9f5d666f7e7f848b8d8f92,63:0832b0,96:8c8e91929395969a9b9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb1b2b4b5b7b8babbbfc2c3c8cacbd0d1d3d4d6d7d8d9dadbdcdddedfe1e2e3e4e5e6e7eb#ecedeef0f1f2f4f5f8fafbfcfdff,97:0203050a0b0c10111214151718191a1b1d1f20,64:3fd8,80046b:eaf3fdf5f9,6c:0507060d1518191a2129242a32,65:35556b,72:4d525630,8662521680:9f9c93bc,670a80:bdb1abadb4b7e7e8e9eadbc2c4d9cdd7,671080:ddebf1f4ed,81:0d0e,80:f2fc,671581128c5a81:361e2c1832484c5374595a7160697c7d6d67,584d5ab581:888291,6ed581:a3aacc,672681:cabb,97:2122232425262728292b2c2e2f3133343536373a3b3c3d3f404142434445464748494a4b4c4d4e4f5051545557585a5c5d5f63646667686a6b6c6d6e6f7071#72757778797a7b7d7e7f8081828384868788898a8c8e8f9093959697999a9b9c9d,81:c1a6,6b:243739434659,98:d1d2d3d5d9da,6bb35f406bc289f365909f5165:93bcc6c4c3ccced2d6,70:809c969dbbc0b7abb1e8ca,71:1013162f31735c6845724a787a98b3b5a8a0e0d4e7f9,72:1d28,706c71:1866b9,62:3e3d434849,79:3b4046495b5c535a6257606f677a858a9aa7b3,5f:d1d0,97:9e9fa1a2a4a5a6a7a8a9aaacaeb0b1b3b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3#e4e5e8eeeff0f1f2f4f7f8f9fafbfcfdfeff,98:000102030405060708090a0b0c0d0e,60:3c5d5a67415963ab,61:060d5da99dcbd1,620680:807f,6c:93f6,6dfc77:f6f8,78:0009171811,65ab78:2d1c1d393a3b1f3c252c23294e6d56572650474c6a9b939a879ca1a3b2b9a5d4d9c9ecf2,790578f479:13241e34,9f9b9e:f9fbfc,76f177:040d,76f977:07081a22192d263538505147435a68,98:0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d#4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e,77:62657f8d7d808c919fa0b0b5bd,75:3a404e4b485b727983,7f:58615f,8a487f:68747179817e,76:cde5,883294:8586878b8a8c8d8f909497959a9b9ca3a4abaaadacafb0b2b4b6b7b8b9babcbdbfc4c8c9cacbcccdced0d1d2d5d6d7d9d8dbdedfe0e2e4e5e7e8ea,98:6f70717273748b8e929599a3a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcfd0d4d6d7dbdcdde0e1e2e3e4#e5e6e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,99:0001020304050607,94:e9ebeeeff3f4f5f7f9fcfdff,95:03020607090a0d0e0f1213141516181b1d1e1f222a2b292c3132343637383c3e3f4235444546494c4e4f525354565758595b5e5f5d61626465666768696a6b6c6f7172733a,77:e7ec,96c979:d5ede3eb,7a065d477a:03021e14,99:08090a0b0c0e0f1112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2f303132333435363738393a3b3c3d3e3f40414243444546474849#4a4b4c4d4e4f50515253565758595a5b5c5d5e5f60616264667378797b7e828389,7a:393751,9ecf99a57a7076:888e9399a4,74:dee0,752c9e:202228292a2b2c3231363837393a3e414244464748494b4c4e5155575a5b5c5e63666768696a6b6c716d73,75:929496a09daca3b3b4b8c4b1b0c3c2d6cde3e8e6e4ebe7,760375:f1fcff,76:1000050c170a25181519,99:8c8e9a9b9c9d9e9fa0a1a2a3a4a6a7a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8#d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9,76:1b3c2220402d303f35433e334d5e545c566b6f,7fca7a:e6787980868895a6a0aca8adb3,88:6469727d7f82a2c6b7bcc9e2cee3e5f1,891a88:fce8fef0,89:2119131b0a342b3641667b,758b80e576:b2b4,77dc80:1214161c20222526272928310b3543464d526971,898398:788083,99:fafbfcfdfeff,9a:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738#393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253545556575859,98:898c8d8f949a9b9e9fa1a2a5a6,86:4d546c6e7f7a7c7ba88d8bac9da7a3aa93a9b6c4b5ceb0bab1afc9cfb4e9f1f2edf3d0,871386:def4dfd8d1,87:0307,86f887:080a0d09233b1e252e1a3e48343129373f82227d7e7b60704c6e8b53637c64596593afa8d2,9a:5a5b5c5d5e5f606162636465666768696a6b7283898d8e949599a6a9aaabacadaeafb2b3b4b5b9bbbdbebfc3c4c6c7c8c9cacdcecfd0d2d4d5d6d7d9dadbdc#dddee0e2e3e4e5e7e8e9eaeceef0f1f2f3f4f5f6f7f8fafcfdfeff,9b:000102040506,87:c68885ad9783abe5acb5b3cbd3bdd1c0cadbeae0ee,88:1613,87fe88:0a1b21393c,7f:36424445,82107a:fafd,7b:080304150a2b0f47382a192e31202524333e1e585a45754c5d606e7b62727190a6a7b8ac9da885aa9ca2abb4d1c1ccdddae5e6ea,7c0c7b:fefc,7c:0f160b,9b:07090a0b0c0d0e1011121415161718191a1b1c1d1e2021222425262728292a2b2c2d2e3031333435363738393a3d3e3f40464a4b4c4e50525355565758595a#5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b,7c:1f2a26384140,81fe82:010204,81ec884482:2122232d2f282b383b33343e44494b4f5a5f68,88:7e8588d8df,895e7f:9d9fa7afb0b2,7c7c65497c:919d9c9ea2b2bcbdc1c7cccdc8c5d7e8,826e66a87f:bfced5e5e1e6e9eef3,7cf87d:77a6ae,7e:479b,9e:b8b4,8d:73849491b1676d,8c:4749,91:4a504e4f64,9b:7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9ba#bbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadb,91:626170696f7d7e7274798c85908d91a2a3aaadaeafb5b4ba,8c559e7e8d:b8eb,8e:055969,8d:b5bfbcbac4d6d7dadececfdbc6ecf7f8e3f9fbe4,8e098dfd8e:141d1f2c2e232f3a4039353d3149414251524a70767c6f74858f94909c9e,8c:78828a859894,659b89:d6dedadc,9b:dcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9c:000102030405060708090a0b0c0d0e0f101112131415161718191a#1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b,89:e5ebef,8a3e8b26975396:e9f3ef,97:0601080f0e2a2d303e,9f:808385868788898a8c,9efe9f:0b0d,96:b9bcbdced2,77bf96e092:8eaec8,93:3e6aca8f,94:3e6b,9c:7f8285868788,7a239c:8b8e90919294959a9b9e9fa0a1a2a3a5a6a7a8a9abadaeb0b1b2b3b4b5b6b7babbbcbdc4c5c6c7cacb3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a#7b7d7e808384898a8c8f93969798999daaacafb9bebfc0c1c2c8c9d1d2dadbe0e1cccdcecfd0d3d4d5d7d8d9dcdddfe2,97:7c85919294afaba3b2b4,9a:b1b0b7,9e589a:b6babcc1c0c5c2cbccd1,9b:45434749484d51,98e899:0d2e5554,9a:dfe1e6efebfbedf9,9b:080f131f23,9e:bdbe,7e3b9e:8287888b92,93d69e:9d9fdbdcdde0dfe2e9e7e5eaef,9f:222c2f39373d3e44,9c:e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9d:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021#22232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142#92$434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081#82838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2#92$a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1#e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9e:000102#92$030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e24272e30343b3c404d5052535456595d5f606162656e6f727475767778797a7b7c7d80#8183848586898a8c8d8e8f90919495969798999a9b9c9ea0a1a2a3a4a5a7a8a9aa#92$abacadaeafb0b1b2b3b5b6b7b9babcbfc0c1c2c3c5c6c7c8cacbccd0d2d3d5d6d7d9dadee1e3e4e6e8ebecedeef0f1f2f3f4f5f6f7f8fafdff,9f:000102030405#060708090a0c0f1112141516181a1b1c1d1e1f21232425262728292a2b2d2e3031#92$3233343536383a3c3f4041424345464748494a4b4c4d4e4f52535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778#797a7b7c7d7e81828d8e8f9091929394959697989c9d9ea1a2a3a4a5,f9:2c7995e7f1#92$,fa:0c0d0e0f111314181f20212324272829,e8:15161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243#4445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364'),
- U2Ghash={},
- G2Uhash={};
- !function(data){
- var k=0;
- data=data.match(/..../g);
- for(var i=0x81;i<=0xfe;i++){
- for(var j=0x40;j<=0xFE;j++){
- U2Ghash[data[k++]]=('%'+i.toString(16)+'%'+j.toString(16))
- .toUpperCase();
- }
- }
- for(var key in U2Ghash){
- G2Uhash[U2Ghash[key]]=key;
- }
- }(data);
- function isAscii(unicode) {
- return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000));
- }
- return{
- encode:function(str){
- return str.replace(/./g,function(a){
- var code=a.charCodeAt(0);
- if(isAscii(code)){
- return encodeURIComponent(a);
- }else{
- var key=code.toString(16);
- if(key.length!=4)key=('000'+key).match(/....$/)[0];
- return U2Ghash[key]||a;
- }
- });
- },
- decode:function(str){
- return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){
- if(a in G2Uhash){
- return String.fromCharCode('0x'+G2Uhash[a]);
- }else{
- return a;
- }
- }).replace(/%[\w]{2}/g,function(a){
- return decodeURIComponent(a);
-
- });
- }
- };
-}
\ No newline at end of file
+
+403 Forbidden
+
+403 Forbidden
+
nginx
+
+
diff --git a/tvboxqq/南风/jars/弹幕.jar b/tvboxqq/南风/jars/弹幕.jar
index b20758b..d846d91 100644
Binary files a/tvboxqq/南风/jars/弹幕.jar and b/tvboxqq/南风/jars/弹幕.jar differ
diff --git a/tvboxqq/南风/jars/找短剧.jar b/tvboxqq/南风/jars/找短剧.jar
new file mode 100644
index 0000000..b29c961
Binary files /dev/null and b/tvboxqq/南风/jars/找短剧.jar differ
diff --git a/tvboxqq/南风/json/alist.json b/tvboxqq/南风/json/alist.json
deleted file mode 100644
index b21893a..0000000
--- a/tvboxqq/南风/json/alist.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "vodPic": "https://tse3-mm.cn.bing.net/th/id/OIP-C.MeDRTpt92G3S-_kU9BZJEQHaHa?rs=1&pid=ImgDetMain",
- "drives": [
- {
- "name": "本地alist",
- "server": "http://127.0.0.1:5244/",
- "hidden": false,
- "login": {
- "username": "admin",
- "password": "admin"
- }
- },
- {
- "name": "小雅",
- "server": "http://alist.xiaoya.pro",
- "search": false
- },
- {
- "name": "弱水分享站",
- "server": "http://shicheng.wang:555/我的影视"
- },
-
- {
- "name": "一只鱼",
- "server": "https://vtok.pp.ua/"
- },
- {
- "name": "七米蓝",
- "server": "https://al.chirmyram.com"
- },
- {
- "name": "神族九帝",
- "server": "https://alist.shenzjd.com"
- },
- {
- "name": "梓澪",
- "server": "https://zi0.cc"
- },
-
- {
- "name": "范本",
- "server": "https://one.fongmi.com",
- "hidden": true,
- "login": {
- "username": "fongmi",
- "password": "fongmi"
- },
- "params": [
- {
- "path": "/安斋拉拉",
- "pass": "18181818"
- }
- ]
- }
- ]
-}
diff --git a/tvboxqq/南风/json/农民影视.json b/tvboxqq/南风/json/农民影视.json
new file mode 100644
index 0000000..b7e6b8d
--- /dev/null
+++ b/tvboxqq/南风/json/农民影视.json
@@ -0,0 +1,72 @@
+{
+ "规则名": "农民影视",
+ "规则作者": "香雅情",
+ "请求头参数": "User-Agent$手机#accept$text/html#Referer$https://vip.wwgz.cn:5200",
+ "网页编码格式": "UTF-8",
+ "图片是否需要代理": "0",
+ "是否开启获取首页数据": "1",
+ "首页推荐链接": "https://vip.wwgz.cn:5200",
+ "首页列表数组规则": "body&&.globalPicList",
+ "首页片单列表数组规则": "li:has(img)",
+ "首页片单是否Jsoup写法": "1",
+ "首页片单标题": ".sTit&&Text",
+ "首页片单链接": "a&&href",
+ "首页片单图片": "img&&data-echo||data-src||src",
+ "首页片单副标题": ".sBottom&&Text",
+ "首页片单链接加前缀": "https://vip.wwgz.cn:5200",
+ "首页片单链接加后缀": "",
+ "分类起始页码": "1",
+ "分类链接": "https://vip.wwgz.cn:5200/vod-list-id-{cateId}-pg-{catePg}-order--by-{by}-class--year-{year}-letter--area-{area}-lang-.html",
+ "分类名称": "电影&电视剧&综艺&动漫&短剧",
+ "分类名称替换词": "1&2&3&4&26",
+ "筛选数据": "ext",
+ "筛选子分类名称": "动作片&喜剧片&爱情片&科幻片&恐怖片&剧情片&战争片&惊悚片&奇幻片||国产剧&港台泰&日韩剧&欧美剧||空||动漫剧&动漫片",
+ "筛选子分类替换词": "5&6&7&8&9&10&11&16&17||12&13&14&15||空||18&19",
+ "筛选地区名称": "大陆&香港&台湾&美国&韩国&日本&泰国&新加坡&马来西亚&印度&英国&法国&加拿大&西班牙&俄罗斯&其它",
+ "筛选地区替换词": "*",
+ "分类截取模式": "1",
+ "分类列表数组规则": ".globalPicList&&li",
+ "分类片单是否Jsoup写法": "1",
+ "分类片单标题": ".sTit&&Text",
+ "分类片单链接": "a&&href",
+ "分类片单图片": "img&&data-echo||data-src||src",
+ "分类片单副标题": ".sBottom&&Text",
+ "分类片单链接加前缀": "https://vip.wwgz.cn:5200",
+ "分类片单链接加后缀": "",
+ "搜索请求头参数": "User-Agent$手机#Referer$https://vip.wwgz.cn:5200",
+ "search_url": "https://vip.wwgz.cn:5200/index.php?m=vod-search;post",
+ "sea_PtBody": "wd={wd}",
+ "search_mode": "1",
+ "sea_arr_rule": "#data_list&&li",
+ "sea_is_jsoup": "1",
+ "sea_pic": ".lazyload&&data-src",
+ "sea_title": ".sTit&&Text",
+ "sea_url": "a&&href",
+ "搜索片单副标题": ".sDes,-1&&Text",
+ "搜索片单链接加前缀": "https://vip.wwgz.cn:5200",
+ "搜索片单链接加后缀": "",
+ "链接是否直接播放": "0",
+ "直接播放链接加前缀": "https://live.52sf.ga/huya/",
+ "直接播放链接加后缀": "#isVideo=true#",
+ "直接播放直链视频请求头": "authority$ku.peizq.online#Referer$https://play.peizq.online",
+ "详情是否Jsoup写法": "1",
+ "类型详情": ".type-title&&Text",
+ "年代详情": "body&&span:contains(年代:)&&Text!年代:",
+ "地区详情": "",
+ "演员详情": "body&&.sDes:contains(主演:)&&Text!主演:",
+ "简介详情": ".detail-con&&p&&Text!简介:",
+ "线路列表数组规则": "#leftTabBox&&ul&&li",
+ "线路标题": "Text[替换:线路=>农民专线]",
+ "播放列表数组规则": "#leftTabBox&&.numList",
+ "选集列表数组规则": "li",
+ "选集标题链接是否Jsoup写法": "1",
+ "选集标题": "a&&Text",
+ "选集链接": "a&&href",
+ "是否反转选集序列": "1",
+ "选集链接加前缀": "https://vip.wwgz.cn:5200",
+ "选集链接加后缀": "",
+ "分析MacPlayer": "0",
+ "是否开启手动嗅探": "1",
+ "手动嗅探视频链接关键词": ".mp4#.m3u8#item/video#video_mp4#video/tos",
+ "手动嗅探视频链接过滤词": ".html#=http"
+}
diff --git a/tvboxqq/南风/json/可可影视.json b/tvboxqq/南风/json/可可影视.json
deleted file mode 100644
index 4c83f9f..0000000
--- a/tvboxqq/南风/json/可可影视.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "规则名": "可可影视",
- //"DEBUG":"1",
- "规则作者": "香雅情",
- "请求头参数": "MOBILE_UA",
- "网页编码格式": "UTF-8",
- "图片是否需要代理": "否",
- "是否开启获取首页数据": "是",
- "首页推荐链接": "https://www.keke1.app",
- "首页列表数组规则": "body&&.module-v-box",
- "首页片单列表数组规则": ".module-item",
- "首页片单是否Jsoup写法": "1",
- "分类起始页码": "1",
- "分类链接": "https://www.keke1.app/show/{cateId}-----{by}-{catePg}.html",
- "分类名称": "电影&电视剧&综艺&动漫&短剧",
- "分类名称替换词": "1&2&4&3&6",
- //"筛选数据": {},
- "筛选数据": "ext",
- //{cateId}
- "筛选子分类名称": "",
- "筛选子分类替换词": "",
- //{class}
- "筛选类型名称": "",
- "筛选类型替换词": "*",
- //{area}
- "筛选地区名称": "",
- "筛选地区替换词": "*",
- //{year}
- "筛选年份名称": "",
- "筛选年份替换词": "*",
- //{lang}
- "筛选语言名称": "",
- "筛选语言替换词": "*",
- //{by}
- "筛选排序名称": "综合&最新&最热&评分",
- "筛选排序替换词": "1&2&3&4",
- "分类截取模式": "1",
- "分类列表数组规则": ".module-v-box&&.module-item",
- "分类片单是否Jsoup写法": "是",
- "分类片单标题": ".v-item-title,1&&Text",
- "分类片单链接": "a&&href",
- "分类片单图片": "'https://vres.cfaqcgj.com'+.lazyload,-1&&data-original",
- "分类片单副标题": ".v-item-bottom&&Text",
- "分类片单链接加前缀": "https://www.keke1.app",
- "分类片单链接加后缀": "",
- "搜索请求头参数": "User-Agent$MOBILE_UA",
- "搜索链接": "https://www.keke1.app/search?k={wd}&page=1&os=pc",
- "POST请求数据": "",
- "搜索截取模式": "1",
- "搜索列表数组规则": ".search-result-list&&.search-result-item",
- "搜索片单是否Jsoup写法": "是",
- "搜索片单图片": "'https://vres.cfaqcgj.com'+.lazyload&&data-original",
- "搜索片单标题": ".title&&Text",
- "搜索片单链接": "a&&href",
- "搜索片单副标题": "",
- "搜索片单链接加前缀": "https://www.keke1.app",
- "搜索片单链接加后缀": "",
- "链接是否直接播放": "否",
- "直接播放链接加前缀": "",
- "直接播放链接加后缀": "",
- "直接播放直链视频请求头": "",
- "详情是否Jsoup写法": "是",
- "类型详情": "",
- "年代详情": "",
- "地区详情": "",
- "演员详情": "body&&.detail-info-row:contains(演员:)&&Text!演员:",
- "简介详情": ".detail-desc&&Text",
- "线路列表数组规则": ".source-box&&.swiper-slide",
- "线路标题": "span&&Text[不包含:高峰不卡]",
- "播放列表数组规则": ".episode-box-main&&.episode-list",
- "选集列表数组规则": "a",
- "选集标题链接是否Jsoup写法": "是",
- "选集标题": "a&&Text",
- "选集链接": "a&&href",
- "是否反转选集序列": "否",
- "选集链接加前缀": "https://www.keke1.app",
- "选集链接加后缀": "",
- "分析MacPlayer": "",
- "是否开启手动嗅探": "否",
- "手动嗅探视频链接关键词": ".mp4#.m3u8#.flv#video/tos",
- "手动嗅探视频链接过滤词": ".html#=http"
-}
diff --git a/tvboxqq/南风/lib/goProxy_arm64 b/tvboxqq/南风/lib/goProxy_arm64
index cd8cb8c..7844451 100644
Binary files a/tvboxqq/南风/lib/goProxy_arm64 and b/tvboxqq/南风/lib/goProxy_arm64 differ
diff --git a/tvboxqq/南风/lib/goProxy_arm64.md5 b/tvboxqq/南风/lib/goProxy_arm64.md5
index 495f2b0..1604e37 100644
--- a/tvboxqq/南风/lib/goProxy_arm64.md5
+++ b/tvboxqq/南风/lib/goProxy_arm64.md5
@@ -1 +1 @@
-1c916eff0d2974c00fa84cedc7bbb96d
+02c4deda10209e12fb40438606decf7f
diff --git a/tvboxqq/南风/lib/goProxy_armV7 b/tvboxqq/南风/lib/goProxy_armV7
index 7534dee..48b2481 100644
Binary files a/tvboxqq/南风/lib/goProxy_armV7 and b/tvboxqq/南风/lib/goProxy_armV7 differ
diff --git a/tvboxqq/南风/lib/goProxy_armV7.md5 b/tvboxqq/南风/lib/goProxy_armV7.md5
index 1ccd66e..9dbe847 100644
--- a/tvboxqq/南风/lib/goProxy_armV7.md5
+++ b/tvboxqq/南风/lib/goProxy_armV7.md5
@@ -1 +1 @@
-c4be9b45a799beea1eb893a34e398e88
+c140caee14fe4f40e3c8348ee8e7359a
diff --git a/tvboxqq/南风/lib/goProxy_linux b/tvboxqq/南风/lib/goProxy_linux
index 5994474..042358f 100644
Binary files a/tvboxqq/南风/lib/goProxy_linux and b/tvboxqq/南风/lib/goProxy_linux differ
diff --git a/tvboxqq/南风/lib/goProxy_linux.md5 b/tvboxqq/南风/lib/goProxy_linux.md5
index aa362c6..843eea0 100644
--- a/tvboxqq/南风/lib/goProxy_linux.md5
+++ b/tvboxqq/南风/lib/goProxy_linux.md5
@@ -1 +1 @@
-5b026cba64692923fea7a9608ee5326b
+76f959396006d65d60499b964de2d2df
diff --git a/tvboxqq/南风/lib/tgsou-go-linux-amd64 b/tvboxqq/南风/lib/tgsou-go-linux-amd64
index f510f76..f205838 100644
Binary files a/tvboxqq/南风/lib/tgsou-go-linux-amd64 and b/tvboxqq/南风/lib/tgsou-go-linux-amd64 differ
diff --git a/tvboxqq/南风/lib/tgsou-go-linux-amd64.md5 b/tvboxqq/南风/lib/tgsou-go-linux-amd64.md5
index f2ec951..90dcc48 100644
--- a/tvboxqq/南风/lib/tgsou-go-linux-amd64.md5
+++ b/tvboxqq/南风/lib/tgsou-go-linux-amd64.md5
@@ -1 +1 @@
-fb74fa8c5262d7f3560f3c797fba3566
+d86cbc9516b3eb4ce56109c34ddf9cef
\ No newline at end of file
diff --git a/tvboxqq/南风/lib/tgsou-go-linux-arm b/tvboxqq/南风/lib/tgsou-go-linux-arm
index 673b0f7..b9f7f6f 100644
Binary files a/tvboxqq/南风/lib/tgsou-go-linux-arm and b/tvboxqq/南风/lib/tgsou-go-linux-arm differ
diff --git a/tvboxqq/南风/lib/tgsou-go-linux-arm.md5 b/tvboxqq/南风/lib/tgsou-go-linux-arm.md5
index 575c0e7..6618afd 100644
--- a/tvboxqq/南风/lib/tgsou-go-linux-arm.md5
+++ b/tvboxqq/南风/lib/tgsou-go-linux-arm.md5
@@ -1 +1 @@
-dc63f162bbc6741b74c0a87a3c8399d4
+e506240b141dfcfa89db3a8c8e0f377f
\ No newline at end of file
diff --git a/tvboxqq/南风/lib/tgsou-go-linux-arm64 b/tvboxqq/南风/lib/tgsou-go-linux-arm64
index 8430943..704015a 100644
Binary files a/tvboxqq/南风/lib/tgsou-go-linux-arm64 and b/tvboxqq/南风/lib/tgsou-go-linux-arm64 differ
diff --git a/tvboxqq/南风/lib/tgsou-go-linux-arm64.md5 b/tvboxqq/南风/lib/tgsou-go-linux-arm64.md5
index 779aa9b..f8285dd 100644
--- a/tvboxqq/南风/lib/tgsou-go-linux-arm64.md5
+++ b/tvboxqq/南风/lib/tgsou-go-linux-arm64.md5
@@ -1 +1 @@
-8759a2607362d8bbdae97d099d9e6c64
+0bda8135458cc963b341149b3fe05cc8
\ No newline at end of file
diff --git a/tvboxqq/南风/lives/Yoursmile.txt b/tvboxqq/南风/lives/Yoursmile.txt
index 80e7056..98879bf 100644
--- a/tvboxqq/南风/lives/Yoursmile.txt
+++ b/tvboxqq/南风/lives/Yoursmile.txt
@@ -1,257 +1,294 @@
央视,#genre#
CCTV1,http://58.57.40.22:9901/tsfile/live/0001_1.m3u8
+CCTV1,http://play.kankanlive.com/live/1698234869325962.m3u8
+CCTV1,http://120.211.62.180:8000/hls/1/index.m3u8
CCTV1,http://play.kankanlive.com/live/1661761962676984.m3u8
CCTV1,http://112.123.206.32:808/hls/1/index.m3u8
-CCTV1,http://120.76.248.139/live/bfgd/4200000488.m3u8
CCTV2,http://58.57.40.22:9901/tsfile/live/1001_1.m3u8
-CCTV2,http://36.105.100.208:35455/gaoma/cctv2.m3u8
-CCTV2,http://60.29.124.66:6080/hls/13/index.m3u8
-CCTV2,http://120.76.248.139/live/bfgd/4200000061.m3u8
-CCTV3,http://36.105.100.208:35455/gaoma/cctv3.m3u8
-CCTV3,http://58.17.48.228:808/hls/3/index.m3u8
+CCTV2,https://play.kankanlive.com/live/1698234898628961.m3u8
+CCTV2,http://120.211.62.180:8000/hls/2/index.m3u8
+CCTV2,http://112.123.206.32:808/hls/2/index.m3u8
+CCTV2,http://183.11.239.36:808/hls/20/index.m3u8
+CCTV3,http://58.57.40.22:9901/tsfile/live/1002_1.m3u8
CCTV3,http://gmxw.7766.org:808/hls/91/index.m3u8
-CCTV3,http://60.29.124.66:6080/hls/14/index.m3u8
-CCTV4,http://116.9.204.242:9901/tsfile/live/0004_1.m3u8
-CCTV4,http://120.238.94.10:9901/tsfile/live/1021_1.m3u8
-CCTV5,http://58.17.48.228:808/hls/5/index.m3u8
+CCTV3,http://183.11.239.36:808/hls/91/index.m3u8
+CCTV3,http://112.46.85.60:8009/hls/3/index.m3u8
+CCTV3,https://piccpndali.v.myalicdn.com/audio/cctv3_2.m3u8
+CCTV4,http://58.57.40.22:9901/tsfile/live/1003_1.m3u8
+CCTV4,https://play.kankanlive.com/live/1698234936258960.m3u8
+CCTV4,http://120.211.62.180:8000/hls/4/index.m3u8
+CCTV4,http://183.11.239.36:808/hls/22/index.m3u8
+CCTV4,http://183.11.239.36:808/hls/77/index.m3u8
+CCTV5,http://58.57.40.22:9901/tsfile/live/1004_1.m3u8
CCTV5,http://gmxw.7766.org:808/hls/93/index.m3u8
-CCTV5,http://60.29.124.66:6080/hls/16/index.m3u8
-CCTV5,http://182.150.23.74:808/hls/5/index.m3u8
-CCTV5,http://120.238.94.10:9901/tsfile/live/1022_1.m3u8
+CCTV5,http://183.11.239.36:808/hls/93/index.m3u8
+CCTV5,http://112.46.85.60:8009/hls/503/index.m3u8
+CCTV5,https://piccpndali.v.myalicdn.com/audio/cctv5_2.m3u8
CCTV5+,http://58.57.40.22:9901/tsfile/live/1005_1.m3u8
-CCTV5+,http://36.105.100.208:35455/gaoma/cctv5p.m3u8
-CCTV5+,http://123.129.70.178:9901/tsfile/live/0016_1.m3u8
-CCTV5+,https://piccpndali.v.myalicdn.com/audio/cctv5plus_2.m3u8
+CCTV5+,http://120.211.62.180:8000/hls/18/index.m3u8
+CCTV5+,http://222.169.85.8:9901/tsfile/live/0116_1.m3u8
+CCTV5+,http://cssbyd.imwork.net:8082/hls/6/index.m3u8
CCTV6,http://58.57.40.22:9901/tsfile/live/1006_1.m3u8
-CCTV6,http://36.105.100.208:35455/gaoma/cctv6.m3u8
-CCTV6,http://58.17.48.228:808/hls/6/index.m3u8
-CCTV6,http://60.29.124.66:6080/hls/17/index.m3u8
CCTV6,http://183.11.239.36:808/hls/94/index.m3u8
+CCTV6,https://piccpndali.v.myalicdn.com/audio/cctv6_2.m3u8
+CCTV6,http://182.150.23.74:808/hls/6/index.m3u8
+CCTV6,http://61.156.228.12:8154/tsfile/live/0006_1.m3u8
CCTV7,http://58.57.40.22:9901/tsfile/live/1007_1.m3u8
+CCTV7,http://120.211.62.180:8000/hls/7/index.m3u8
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
-CCTV7,http://58.221.214.82:9901/tsfile/live/0007_1.m3u8
-CCTV8,http://218.3.138.25:1111/tsfile/live/1007_1.m3u8
-CCTV8,http://120.238.94.10:9901/tsfile/live/1026_1.m3u8
-CCTV9,http://36.105.100.208:35455/gaoma/cctv9.m3u8
-CCTV9,http://112.46.85.60:8009/hls/509/index.m3u8
-CCTV9,http://58.19.43.46:9901/tsfile/live/1028_1.m3u8
+CCTV7,http://183.11.239.36:808/hls/25/index.m3u8
+CCTV8,http://58.57.40.22:9901/tsfile/live/1008_1.m3u8
+CCTV8,http://gmxw.7766.org:808/hls/96/index.m3u8
+CCTV8,http://183.11.239.36:808/hls/96/index.m3u8
+CCTV8,http://112.46.85.60:8009/hls/8/index.m3u8
CCTV9,http://58.57.40.22:9901/tsfile/live/1009_1.m3u8
-CCTV9,http://120.238.94.10:9901/tsfile/live/1027_1.m3u8
+CCTV9,https://play.kankanlive.com/live/1698423397390920.m3u8
+CCTV9,http://120.211.62.180:8000/hls/9/index.m3u8
+CCTV9,http://183.11.239.36:808/hls/27/index.m3u8
+CCTV9,http://112.46.85.60:8009/hls/509/index.m3u8
CCTV10,http://58.57.40.22:9901/tsfile/live/1010_1.m3u8
-CCTV10,http://36.105.100.208:35455/gaoma/cctv10.m3u8
-CCTV10,http://120.76.248.139/live/bfgd/4200000129.m3u8
-CCTV10,http://182.150.23.74:808/hls/10/index.m3u8
+CCTV10,https://play.kankanlive.com/live/1698423445959919.m3u8
+CCTV10,http://120.211.62.180:8000/hls/10/index.m3u8
+CCTV10,http://183.11.239.36:808/hls/28/index.m3u8
+CCTV10,https://piccpndali.v.myalicdn.com/audio/cctv10_2.m3u8
CCTV11,http://58.57.40.22:9901/tsfile/live/1011_1.m3u8
-CCTV11,http://36.105.100.208:35455/gaoma/cctv11.m3u8
-CCTV11,http://120.76.248.139/live/bfgd/4200000130.m3u8
+CCTV11,https://play.kankanlive.com/live/1698423476198918.m3u8
+CCTV11,http://120.211.62.180:8000/hls/11/index.m3u8
+CCTV11,http://183.11.239.36:808/hls/29/index.m3u8
CCTV11,https://piccpndali.v.myalicdn.com/audio/cctv11_2.m3u8
-CCTV12,http://36.105.100.208:35455/gaoma/cctv12.m3u8
-CCTV12,http://116.128.242.83:9901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
-CCTV12,http://123.129.70.178:9901/tsfile/live/0012_1.m3u8?key=txiptv&playlive=1&authid=0
+CCTV12,http://58.57.40.22:9901/tsfile/live/1012_1.m3u8
+CCTV12,https://play.kankanlive.com/live/1698423511884917.m3u8
+CCTV12,http://120.211.62.180:8000/hls/12/index.m3u8
+CCTV12,http://183.11.239.36:808/hls/30/index.m3u8
+CCTV12,http://112.46.85.60:8009/hls/507/index.m3u8
CCTV13,http://58.57.40.22:9901/tsfile/live/1013_1.m3u8
+CCTV13,https://play.kankanlive.com/live/1698423543275916.m3u8
+CCTV13,http://120.211.62.180:8000/hls/13/index.m3u8
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
-CCTV13,http://jwplay.hebyun.com.cn/live/cctv13/1500k/tzwj_video.m3u8
-CCTV13,https://ldncctvwbcdcnc.v.wscdns.com/ldncctvwbcd/cdrmldcctv13_1/index.m3u8
CCTV14,http://58.57.40.22:9901/tsfile/live/1014_1.m3u8
+CCTV14,https://play.kankanlive.com/live/1698423575756915.m3u8
+CCTV14,http://120.211.62.180:8000/hls/14/index.m3u8
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
-CCTV14,http://36.105.100.208:35455/gaoma/cctv14.m3u8
-CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
-CCTV14,http://116.9.204.242:9901/tsfile/live/0014_1.m3u8
-CCTV15,http://183.11.239.36:808/hls/102/index.m3u8
-CCTV15,http://58.19.43.46:9901/tsfile/live/1034_1.m3u8
-CCTV15,http://58.221.214.82:9901/tsfile/live/0015_1.m3u8
-CCTV16,http://58.17.48.228:808/hls/25/index.m3u8
+CCTV14,https://piccpndali.v.myalicdn.com/audio/cctv14_2.m3u8
+CCTV15,http://58.57.40.22:9901/tsfile/live/1015_1.m3u8
+CCTV15,https://play.kankanlive.com/live/1698423607826914.m3u8
+CCTV15,http://120.211.62.180:8000/hls/15/index.m3u8
+CCTV15,http://gmxw.7766.org:808/hls/102/index.m3u8
+CCTV15,http://222.134.245.16:9901/tsfile/live/0015_1.m3u8
CCTV16,http://gmxw.7766.org:808/hls/169/index.m3u8
CCTV16,http://183.11.239.36:808/hls/169/index.m3u8
-CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8
-CCTV17,https://piccpndali.v.myalicdn.com/audio/cctv17_2.m3u8
-CCTV17,http://113.57.111.4:1111/tsfile/live/1014_1.m3u8
-CCTV17,http://58.19.43.46:9901/tsfile/live/1047_1.m3u8
+CCTV16,https://piccpndali.v.myalicdn.com/audio/cctv16_2.m3u8
CCTV17,http://58.57.40.22:9901/tsfile/live/0019_1.m3u8
-CCTV1,http://116.128.242.83:9901/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路354』
-CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8?key=txiptv&playlive=1&authid=0
-CCTV5,http://116.9.204.242:9901/tsfile/live/0005_1.m3u8
-CCTV6,http://zzssw01.55555.io:9901/tsfile/live/0006_1.m3u8
+CCTV17,https://play.kankanlive.com/live/1698423272597921.m3u8
+CCTV17,http://120.211.62.180:8000/hls/17/index.m3u8
+CCTV17,http://hmfs.f3322.net:3388/hls/37/index.m3u8
+CCTV17,http://120.238.94.10:9901/tsfile/live/1048_1.m3u8
+CCTV世界地理,http://hmfs.f3322.net:3388/hls/28/index.m3u8
+CCTV第一剧场,http://hmfs.f3322.net:3388/hls/21/index.m3u8
+CCTV风云足球,http://hmfs.f3322.net:3388/hls/9/index.m3u8
+CGTN,http://english-livetx.cgtn.com/hls/yypdyyctzb_hd.m3u8
+CGTN,https://play.kankanlive.com/live/1698423645566913.m3u8
+CGTN俄语,http://russian-livews.cgtn.com/hls/LSvexABhNipibK5KRuUkvHZ7220802LSTeze9o8tdFXMHsb1VosgoT220802cd.m3u8
+CGTN法语,http://espanol-liveali.cgtn.com/hls/LSveOGBaBw41Ea7ukkVAUdKQ220802LSTexu6xAuFH8VZNBLE1ZNEa220802cd.m3u8
+CGTN纪录,https://english-livetx.cgtn.com/hls/yypdjlctzb_hd.m3u8
+熊猫直播,https://gcwbndali.v.myalicdn.com/gcwbnd/ipanda1000_2/index.m3u8
+直播中国,https://gcalic.v.myalicdn.com/gc/wgw05_1/index.m3u8?contentid=2820180516001
CCTV7,http://8.138.7.223/tv/cctv7.m3u8
-CCTV7,https://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
-CCTV7,http://live.junhao.mil.cn/rmt9502/3e6e7c5477314ec38f5e58e2a5c70024.m3u8?txSecret=57978fafb9c19880afa5c8687e8241d8&txTime=7A42BAFF
-CCTV11,http://39.137.75.230/000000001000/1000000005000265011/index.m3u8?channel-id=ystenlive&Contentid=1000000005000265011&livemode=1&stbId=no
CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
CCTV13,http://ali-m-l.cztv.com/channels/lantian/channel21/1080p.m3u8
-CCTV13,http://183.215.134.239:19901/tsfile/live/0013_1.m3u8?key=txiptv&playlive=1&authid=0
CCTV14,https://event.pull.hebtv.com/jishi/cp2.m3u8
-CCTV14,http://58.17.48.228:808/hls/14/index.m3u8
CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路30』
-CCTV15,http://123.130.84.106:8154/tsfile/live/0015_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路32』
-CCTV16,http://58.221.214.82:9901/tsfile/live/0002_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路88』
-CCTV17,http://58.221.214.82:9901/tsfile/live/0003_2.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路130』
CCTV11,http://61.136.172.236:9901/tsfile/live/0011_1.m3u8
CCTV13,http://61.136.172.236:9901/tsfile/live/0013_1.m3u8
CCTV15,http://61.136.172.236:9901/tsfile/live/0015_1.m3u8
-CCTV15,http://61.156.228.12:8154/tsfile/live/0015_1.m3u8
-CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
+CCTV,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream_bduid_6488563992_8982723413/merged_1707497046297_88536_25144_41936.m3u8
+CCTV1,http://113.57.93.165:9900/tsfile/live/0001_1.m3u8?key=txiptv&playlive=1&authid=0
+CCTV1,http://113.57.93.165:9900/tsfile/live/0001_1.m3u8
+CCTV2,http://120.238.94.10:9901/tsfile/live/1019_1.m3u8
+CCTV3,http://113.57.93.165:9900/tsfile/live/0003_1.m3u8
+CCTV4,http://113.57.93.165:9900/tsfile/live/0004_1.m3u8?key=txiptv&playlive=1&authid=0
+CCTV4,http://113.57.93.165:9900/tsfile/live/0004_1.m3u8
+CCTV5,http://113.57.93.165:9900/tsfile/live/0005_1.m3u8
+CCTV5+,http://120.238.94.10:9901/tsfile/live/1023_1.m3u8
+CCTV7,http://120.238.94.10:9901/tsfile/live/1025_1.m3u8
+CCTV8,http://120.238.94.10:9901/tsfile/live/1026_1.m3u8
+CCTV9,http://120.238.94.10:9901/tsfile/live/1027_1.m3u8
+CCTV10,http://120.238.94.10:9901/tsfile/live/1028_1.m3u8
+CCTV11,http://120.238.94.10:9901/tsfile/live/1029_1.m3u8
+CCTV13,https://event.pull.hebtv.com/jishi/cp1.m3u8
+CCTV15,http://113.57.93.165:9900/tsfile/live/0015_1.m3u8
+CCTV16,https://piccpndali.v.myalicdn.com/audio/cctv16_2.m3u8
+CCTV16,http://183.11.239.36:808/hls/169/index.m3u8
+CCTV17,http://120.238.94.10:9901/tsfile/live/1048_1.m3u8
卫视,#genre#
-安徽卫视,http://39.164.160.249:9901/tsfile/live/0130_1.m3u8
+安徽卫视,http://58.57.40.22:9901/tsfile/live/1033_1.m3u8
+安徽卫视,http://120.211.62.180:8000/hls/33/index.m3u8
安徽卫视,http://183.11.239.36:808/hls/40/index.m3u8
-安徽卫视,http://123.130.84.106:8154/tsfile/live/0130_1.m3u8
-安徽卫视,http://111.14.181.15:9901/tsfile/live/0130_1.m3u8
-安徽卫视,http://gmxw.7766.org:808/hls/40/index.m3u8
-北京卫视,http://39.164.160.249:9901/tsfile/live/0122_1.m3u8
+安徽卫视,http://182.150.23.74:808/hls/25/index.m3u8
+安徽卫视,http://61.136.172.236:9901/tsfile/live/0130_1.m3u8
+北京卫视,http://58.57.40.22:9901/tsfile/live/1032_1.m3u8
北京卫视,http://satellitepull.cnr.cn/live/wxbtv/playlist.m3u8
+北京卫视,http://120.211.62.180:8000/hls/35/index.m3u8
北京卫视,http://183.11.239.36:808/hls/41/index.m3u8
-北京卫视,http://120.76.248.139/live/bfgd/4200000083.m3u8
-兵团卫视,http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
兵团卫视,http://183.11.239.36:808/hls/7/index.m3u8
-兵团卫视,http://120.76.248.139/live/bfgd/4200000124.m3u8
-东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
+兵团卫视,http://218.13.170.98:9901/tsfile/live/0115_1.m3u8
+东方卫视,http://58.57.40.22:9901/tsfile/live/1030_1.m3u8
+东方卫视,http://bp-resource-dfl.bestv.cn/155/3/video.m3u8
+东方卫视,http://hmfs.f3322.net:3388/hls/24/index.m3u8
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
东方卫视,http://183.11.239.36:808/hls/114/index.m3u8
-东方卫视,http://120.76.248.139/live/bfgd/4200000093.m3u8
-东方卫视,http://58.19.43.46:9901/tsfile/live/1035_1.m3u8
东南卫视,http://58.57.40.22:9901/tsfile/live/1037_1.m3u8
+东南卫视,http://hmfs.f3322.net:3388/hls/26/index.m3u8
东南卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
-东南卫视,http://58.19.43.46:9901/tsfile/live/1046_1.m3u8
-东南卫视,http://123.129.70.178:9901/tsfile/live/0137_1.m3u8
-东南卫视,http://58.221.214.82:9901/tsfile/live/0137_1.m3u8
+东南卫视,http://36.32.174.67:60080/newlive/live/hls/33/live.m3u8
+东南卫视,http://61.136.172.236:9901/tsfile/live/0137_1.m3u8
+甘肃卫视,http://58.57.40.22:9901/tsfile/live/1056_1.m3u8
+甘肃卫视,http://120.238.94.10:9901/tsfile/live/1079_1.m3u8
+甘肃卫视,http://111.61.236.247:9081/hls/54/index.m3u8
+甘肃卫视,http://cssbyd.imwork.net:8082/hls/48/index.m3u8
+甘肃卫视,http://183.11.239.36:808/hls/119/index.m3u8
广东卫视,http://58.57.40.22:9901/tsfile/live/1039_1.m3u8
广东卫视,http://120.238.94.10:9901/tsfile/live/1008_1.m3u8
广东卫视,http://183.11.239.36:808/hls/80/index.m3u8
-广西卫视,https://hlscdn.liangtv.cn/live/de0f97348eb84f62aa6b7d8cf0430770/dd505d87880c478f901f38560ca4d4e6.m3u8
-广西卫视,https://hlscdn.liangtv.cn/live/0c4ef3a44b934cacb8b47121dfada66c/d7e04258157b480dae53883cc6f8123b.m3u8
-广西卫视,http://182.150.23.74:808/hls/31/index.m3u8
-广西卫视,http://113.25.252.226:9901/tsfile/live/0113_1.m3u8
-贵州卫视,http://58.19.43.46:9901/tsfile/live/1011_1.m3u8
+广东卫视,http://61.156.228.12:8154/tsfile/live/0125_1.m3u8
+广东卫视,http://222.169.85.8:9901/tsfile/live/0125_1.m3u8
+广西卫视,http://58.57.40.22:9901/tsfile/live/1049_1.m3u8
+广西卫视,http://hmfs.f3322.net:3388/hls/27/index.m3u8
+广西卫视,http://36.32.174.67:60080/newlive/live/hls/38/live.m3u8
+贵州卫视,http://58.57.40.22:9901/tsfile/live/1042_1.m3u8
+贵州卫视,http://cssbyd.imwork.net:8082/hls/39/index.m3u8
+贵州卫视,http://183.11.239.36:808/hls/49/index.m3u8
+贵州卫视,http://182.150.23.74:808/hls/26/index.m3u8
+贵州卫视,http://111.61.236.247:9081/hls/37/index.m3u8
海南卫视,http://58.57.40.22:9901/tsfile/live/1000_1.m3u8
海南卫视,http://36.32.174.67:60080/newlive/live/hls/46/live.m3u8
-海南卫视,http://218.89.240.144:59901/tsfile/live/1000_1.m3u8
-海南卫视,http://113.57.111.4:1111/tsfile/live/1031_1.m3u8
+海南卫视,http://183.11.239.36:808/hls/124/index.m3u8
+海南卫视,http://cssbyd.imwork.net:8082/hls/31/index.m3u8
+海峡卫视,http://8.138.7.223/tv/hxws.m3u8
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/chunklist0.m3u8
海峡卫视,http://38.64.72.148:80/hls/modn/list/4009/playlist.m3u8
-河北卫视,https://jwplay.hebyun.com.cn/live/hbwstv/1500k/tzwj_video.m3u8
+河北卫视,http://58.57.40.22:9901/tsfile/live/1044_1.m3u8
+河北卫视,http://120.211.62.180:8000/hls/19/index.m3u8
河北卫视,http://36.32.174.67:60080/newlive/live/hls/36/live.m3u8
河北卫视,http://111.61.236.247:9081/hls/17/index.m3u8
-河北卫视,http://120.76.248.139/live/bfgd/4200000108.m3u8
-河北卫视,http://61.156.228.12:8154/tsfile/live/0117_1.m3u8
河南卫视,http://58.57.40.22:9901/tsfile/live/1048_1.m3u8
-河南卫视,http://satellitepull.cnr.cn/live/wxhnws/playlist.m3u8
+河南卫视,http://120.211.62.180:8000/hls/40/index.m3u8
河南卫视,http://tvpull.dxhmt.cn:9081/tv/11425-1.m3u8
-河南卫视,http://120.76.248.139/live/bfgd/4200000339.m3u8
-湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
+河南卫视,http://120.238.94.10:9901/tsfile/live/1068_1.m3u8
+河南卫视,http://cssbyd.imwork.net:8082/hls/37/index.m3u8
湖北卫视,http://58.57.40.22:9901/tsfile/live/1038_1.m3u8
+湖北卫视,http://120.238.94.10:9901/tsfile/live/1055_1.m3u8
+湖北卫视,http://183.11.239.36:808/hls/46/index.m3u8
+湖北卫视,http://182.150.23.74:808/hls/28/index.m3u8
湖北卫视,http://61.156.228.12:8154/tsfile/live/0132_1.m3u8
-湖南卫视,http://39.164.160.249:9901/tsfile/live/0128_1.m3u8
湖南卫视,http://58.57.40.22:9901/tsfile/live/1028_1.m3u8
-湖南卫视,http://58.17.48.228:808/hls/31/index.m3u8
-湖南卫视,http://120.76.248.139/live/bfgd/4200000086.m3u8
+湖南卫视,http://satellitepull.cnr.cn/live/wx32hunws/playlist.m3u8
+湖南卫视,http://120.211.62.180:8000/hls/30/index.m3u8
+湖南卫视,http://antvlive.ab5c6921.cdnviet.com/antv/playlist.m3u8
+湖南卫视,http://183.11.239.36:808/hls/36/index.m3u8
吉林卫视,http://58.57.40.22:9901/tsfile/live/1050_1.m3u8
-吉林卫视,http://satellitepull.cnr.cn/live/wxjlws/playlist.m3u8
+吉林卫视,http://111.61.236.247:9081/hls/45/index.m3u8
吉林卫视,http://cssbyd.imwork.net:8082/hls/41/index.m3u8
吉林卫视,http://183.11.239.36:808/hls/10/index.m3u8
吉林卫视,http://182.150.23.74:808/hls/35/index.m3u8
江苏卫视,http://58.57.40.22:9901/tsfile/live/1031_1.m3u8
+江苏卫视,http://120.211.62.180:8000/hls/32/index.m3u8
江苏卫视,http://183.11.239.36:808/hls/38/index.m3u8
-江苏卫视,http://120.76.248.139/live/bfgd/4200000085.m3u8
江苏卫视,http://112.46.85.60:8009/hls/33/index.m3u8
江苏卫视,http://182.150.23.74:808/hls/18/index.m3u8
-江西卫视,http://39.164.160.249:9901/tsfile/live/0138_1.m3u8
-江西卫视,http://58.17.48.228:808/hls/17/index.m3u8
+江西卫视,http://58.57.40.22:9901/tsfile/live/1043_1.m3u8
+江西卫视,http://36.32.174.67:60080/newlive/live/hls/22/live.m3u8
+江西卫视,http://183.11.239.36:808/hls/44/index.m3u8
江西卫视,http://36.32.174.67:60080/newlive/live/hls/31/live.m3u8
-江西卫视,http://58.221.214.82:9901/tsfile/live/0138_1.m3u8
-康巴卫视,http://111.202.12.159:8080/kYGHWzA/1000/live.m3u8
-康巴卫视,http://111.202.12.159:8080/3zvkK28/1000/live.m3u8
-辽宁卫视,http://39.164.160.249:9901/tsfile/live/0121_1.m3u8
+江西卫视,http://182.150.23.74:808/hls/30/index.m3u8
+辽宁卫视,http://58.57.40.22:9901/tsfile/live/1035_1.m3u8
+辽宁卫视,http://120.211.62.180:8000/hls/37/index.m3u8
辽宁卫视,http://183.11.239.36:808/hls/47/index.m3u8
-辽宁卫视,http://113.57.111.4:1111/tsfile/live/1026_1.m3u8
辽宁卫视,http://61.156.228.12:8154/tsfile/live/0121_1.m3u8
辽宁卫视,http://61.136.172.236:9901/tsfile/live/0121_1.m3u8
宁夏卫视,http://58.57.40.22:9901/tsfile/live/1054_1.m3u8
宁夏卫视,http://120.238.94.10:9901/tsfile/live/1076_1.m3u8
宁夏卫视,http://36.32.174.67:60080/newlive/live/hls/49/live.m3u8
-宁夏卫视,http://58.19.43.46:9901/tsfile/live/1003_1.m3u8
宁夏卫视,http://111.61.236.247:9081/hls/51/index.m3u8
-农林卫视,http://112.46.105.20:8009/hls/27/index.m3u8
-农林卫视,http://120.76.248.139/live/bfgd/4200000122.m3u8
-农林卫视,http://112.46.85.60:8009/hls/27/index.m3u8
+宁夏卫视,http://cssbyd.imwork.net:8082/hls/45/index.m3u8
青海卫视,http://58.57.40.22:9901/tsfile/live/1057_1.m3u8
青海卫视,http://120.238.94.10:9901/tsfile/live/1073_1.m3u8
-青海卫视,http://58.19.43.46:9901/tsfile/live/1014_1.m3u8
-青海卫视,http://120.76.248.139/live/bfgd/4200000111.m3u8
-青海卫视,http://123.130.84.106:8154/tsfile/live/0140_1.m3u8
-山东卫视,http://39.164.160.249:9901/tsfile/live/0131_1.m3u8
-山东卫视,http://l.cztvcloud.com/channels/lantian/SXshengzhou1/720p.m3u8
+青海卫视,http://111.61.236.247:9081/hls/49/index.m3u8
+厦门卫视,http://183.11.239.36:808/hls/17/index.m3u8
+山东卫视,http://120.211.62.180:8000/hls/38/index.m3u8
山东卫视,http://183.11.239.36:808/hls/43/index.m3u8
-山东卫视,http://120.76.248.139/live/bfgd/4200000099.m3u8
+山东卫视,http://182.150.23.74:808/hls/23/index.m3u8
山东卫视,http://61.136.172.236:9901/tsfile/live/0131_1.m3u8
山西卫视,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
+山西卫视,http://60.16.0.216:5757/hls/39/index.m3u8
+上海卫视,http://genglei.8866.org:9901/tsfile/live/1011_1.m3u8?key=txiptv&playlive=1&authid=0
深圳卫视,http://58.57.40.22:9901/tsfile/live/1036_1.m3u8
+深圳卫视,http://hmfs.f3322.net:3388/hls/25/index.m3u8
深圳卫视,http://38.64.72.148:80/hls/modn/list/4007/playlist.m3u8
深圳卫视,http://183.11.239.36:808/hls/45/index.m3u8
-深圳卫视,http://182.150.23.74:808/hls/20/index.m3u8
+深圳卫视,http://222.169.85.8:9901/tsfile/live/0126_1.m3u8
四川卫视,http://58.57.40.22:9901/tsfile/live/1046_1.m3u8
+四川卫视,http://120.238.94.10:9901/tsfile/live/1058_1.m3u8
四川卫视,http://183.11.239.36:808/hls/50/index.m3u8
-四川卫视,http://113.25.252.226:9901/tsfile/live/0123_1.m3u8
-四川卫视,http://39.150.96.141:65535/tsfile/live/0123_1.m3u8?key=txiptv&playlive=1&authid=0
+四川卫视,http://222.169.85.8:9901/tsfile/live/0123_1.m3u8
天津卫视,http://58.57.40.22:9901/tsfile/live/1034_1.m3u8
-天津卫视,http://112.46.85.60:8009/hls/44/index.m3u8
-天津卫视,http://113.57.111.4:1111/tsfile/live/1024_1.m3u8
+天津卫视,http://120.211.62.180:8000/hls/36/index.m3u8
+天津卫视,http://183.11.239.36:808/hls/42/index.m3u8
+天津卫视,http://182.150.23.74:808/hls/27/index.m3u8
+西藏卫视,http://120.238.94.10:9901/tsfile/live/1077_1.m3u8
西藏卫视,http://36.32.174.67:60080/newlive/live/hls/48/live.m3u8
-西藏卫视,http://111.61.236.247:9081/hls/52/index.m3u8
+西藏卫视,http://cssbyd.imwork.net:8082/hls/46/index.m3u8
西藏卫视,http://183.11.239.36:808/hls/64/index.m3u8
-西藏卫视,http://120.76.248.139/live/bfgd/4200000121.m3u8
-新疆卫视,http://39.164.160.249:9901/tsfile/live/0110_1.m3u8
+西藏卫视,http://221.2.148.205:8154/tsfile/live/0111_1.m3u8?key=txiptv&playlive=1&authid=0
新疆卫视,http://58.57.40.22:9901/tsfile/live/1055_1.m3u8
新疆卫视,http://36.32.174.67:60080/newlive/live/hls/47/live.m3u8
-新疆卫视,http://111.61.236.247:9081/hls/53/index.m3u8
-新疆卫视,http://113.25.252.226:9901/tsfile/live/0110_1.m3u8
-延边卫视,http://120.76.248.139/live/bfgd/4200000117.m3u8
+新疆卫视,http://183.11.239.36:808/hls/65/index.m3u8
+新疆卫视,http://222.169.85.8:9901/tsfile/live/0110_1.m3u8
+新疆卫视,http://61.156.228.12:8154/tsfile/live/0110_1.m3u8
延边卫视,http://gmxw.7766.org:808/hls/15/index.m3u8
云南卫视,http://58.57.40.22:9901/tsfile/live/1047_1.m3u8
+云南卫视,http://120.211.62.180:8000/hls/39/index.m3u8
+云南卫视,http://120.238.94.10:9901/tsfile/live/1069_1.m3u8
云南卫视,http://36.32.174.67:60080/newlive/live/hls/45/live.m3u8
-云南卫视,http://cssbyd.imwork.net:8082/hls/36/index.m3u8
+云南卫视,http://111.61.236.247:9081/hls/32/index.m3u8
浙江卫视,http://58.57.40.22:9901/tsfile/live/1029_1.m3u8
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
浙江卫视,http://l.cztvcloud.com/channels/lantian/SXpinghu3/720p.m3u8
浙江卫视,http://ali-vl.cztv.com/channels/lantian/channel001/360p.m3u8
浙江卫视,http://ali-m-l.cztv.com:80/channels/lantian/channel001/1080p.m3u8
重庆卫视,http://36.32.174.67:60080/newlive/live/hls/34/live.m3u8
-重庆卫视,http://111.14.181.15:9901/tsfile/live/0142_1.m3u8
+重庆卫视,http://183.11.239.36:808/hls/53/index.m3u8
+重庆卫视,http://222.169.85.8:9901/tsfile/live/0142_1.m3u8
重庆卫视,http://61.136.172.236:9901/tsfile/live/0142_1.m3u8
-东方卫视,http://39.164.160.249:9901/tsfile/live/0107_1.m3u8
+东方卫视,http://58.57.40.22:9901/tsfile/live/1030_1.m3u8
+东方卫视,http://bp-resource-dfl.bestv.cn/155/3/video.m3u8
+东方卫视,http://hmfs.f3322.net:3388/hls/24/index.m3u8
东方卫视,http://36.32.174.67:60080/newlive/live/hls/24/live.m3u8
东方卫视,http://183.11.239.36:808/hls/114/index.m3u8
-东方卫视,http://120.76.248.139/live/bfgd/4200000093.m3u8
-东方卫视,http://58.19.43.46:9901/tsfile/live/1035_1.m3u8
-黑龙江卫视,http://39.164.160.249:9901/tsfile/live/0143_1.m3u8
+上海卫视,http://genglei.8866.org:9901/tsfile/live/1011_1.m3u8?key=txiptv&playlive=1&authid=0
黑龙江卫视,http://58.57.40.22:9901/tsfile/live/1040_1.m3u8
黑龙江卫视,http://l.cztvcloud.com/channels/lantian/SXyuyao3/720p.m3u8
-黑龙江卫视,http://58.19.43.46:9901/tsfile/live/1008_1.m3u8
+黑龙江卫视,http://183.11.239.36:808/hls/48/index.m3u8
+黑龙江卫视,http://61.156.228.12:8154/tsfile/live/0143_1.m3u8
+黑龙江卫视,http://61.136.172.236:9901/tsfile/live/0143_1.m3u8
内蒙古卫视,http://111.61.236.247:9081/hls/48/index.m3u8
+内蒙古卫视,http://222.134.245.16:9901/tsfile/live/0109_1.m3u8
内蒙古卫视,http://183.11.239.36:808/hls/60/index.m3u8
-内蒙古卫视,http://120.76.248.139/live/bfgd/4200000110.m3u8
+内蒙古卫视,http://cssbyd.imwork.net:8082/hls/44/index.m3u8
+内蒙古蒙语卫视,http://play1-qk.nmtv.cn/live/1686560387346365.m3u8
山东教育,https://test1.live.sdetv.com.cn/live/dianshizhibo/playlist.m3u8
+苏州4K,https://tylive.kan0512.com/norecord/csztv4k_4k.m3u8
香港卫视,http://cctvtxyh5c.liveplay.myqcloud.com/cstv/xianggangweishi_2/index.m3u8
安多卫视,https://liveout.xntv.tv/a65jur/96iln2.m3u8
-北京卫视,http://183.215.134.239:19901/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0
-兵团卫视,http://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
-兵团卫视,https://liveout.btzx.com.cn/62ds9e/yil08g.m3u8
大湾区卫视,http://222.128.55.152:9080/live/dwq.m3u8
-东南卫视,http://120.76.248.139/live/bfgd/4200000483.m3u8
甘肃卫视,http://live.zohi.tv/video/s10001-fztv-3/index.m3u8
-广东卫视,http://183.215.134.239:19901/tsfile/live/0125_1.m3u8?key=txiptv&playlive=1&authid=0
-广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0
-广西卫视,http://116.9.204.242:9901/tsfile/live/0113_1.m3u8
-江西卫视,http://120.76.248.139/live/bfgd/4200000098.m3u8
-江西卫视,http://183.215.134.239:19901/tsfile/live/0138_1.m3u8?key=txiptv&playlive=1&authid=0
内蒙古蒙语卫视,https://livestream-bt.nmtv.cn/nmtv/2315general.m3u8?txSecret=4971666599ef9411629213c9a300bf66&txTime=771EF880
内蒙古卫视,https://ali-m-l.cztv.com/channels/lantian/channel007/1080p.m3u8
内蒙古卫视,https://livestream-bt.nmtv.cn/nmtv/3208526general.m3u8?txSecret=eb5a3102dd5406c7ffeddf560b024952&txTime=76B2F9A0
-山东卫视,http://120.76.248.139/live/bfgd/4200000099.m3u8
山西卫视,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8
-深圳卫视,http://120.76.248.139/live/bfgd/4200000100.m3u8
-深圳卫视,http://183.215.134.239:19901/tsfile/live/0126_1.m3u8?key=txiptv&playlive=1&authid=0
深圳卫视,http://yncbn.ks-cdn.gitv.tv/gitv_live/G_SHENZHEN-HQ/G_SHENZHEN-HQ.m3u8
延边卫视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
延边卫视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8$LR•IPV4『线路20』
@@ -260,16 +297,9 @@ CCTV2024,https://p2.bdstatic.com/rtmp.liveshow.lss-user.baidubce.com/live/stream
浙江卫视,https://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel001/1080p.m3u8
浙江卫视,http://ali-m-l.cztv.com/channels/lantian/channel01/1080p.m3u8
-浙江卫视,https://stream1.freetv.fun/2e3a01b886780ceca10b44bb6cdb57413757275a6fdcb083800db996bc2f81e3.m3u8
湖南卫视,http://61.136.172.236:9901/tsfile/live/0128_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路77』
-北京卫视,http://61.156.228.12:8154/tsfile/live/0122_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路83』
安徽卫视,http://61.136.172.236:9901/tsfile/live/0130_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路75』
广西卫视,http://61.136.172.236:9901/tsfile/live/0113_1.m3u8?key=txiptv&playlive=1&authid=0$LR•IPV4『线路54』
-深圳卫视,http://api3.52tb.xyz/info?id=28&token=20230227aesvnb
-东南卫视,http://api3.52tb.xyz/info?id=29&token=20230227aesvnb
-河南卫视,http://api3.52tb.xyz/info?id=31&token=20230227aesvnb
-海南卫视,http://api3.52tb.xyz/info?id=38&token=20230227aesvnb
-吉林卫视,http://api3.52tb.xyz/info?id=40&token=20230227aesvnb
IPV6,#genre#
@@ -358,6 +388,21 @@ CGTN阿语,https://0472.org/hls/cgtna.m3u8
少儿频道,#genre#
+卡酷少儿,http://58.57.40.22:9901/tsfile/live/1060_1.m3u8
+卡酷少儿,http://218.13.170.98:9901/tsfile/live/1021_1.m3u8
+金鹰卡通,http://58.57.40.22:9901/tsfile/live/1059_1.m3u8
+金鹰卡通,http://113.57.93.165:9900/tsfile/live/1000_1.m3u8?key=txiptv&playlive=1&authid=0
+广东少儿,http://gmxw.7766.org:808/hls/175/index.m3u8
+浙江少儿,https://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
+浙江少儿,http://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8
+浙江少儿,http://ali-vl.cztv.com/channels/lantian/channel008/360p.m3u8
+浙江少儿,https://ali-m-l.cztv.com/channels/lantian/channel008/1080p.m3u8?
+哈哈炫动,http://120.238.94.10:9901/tsfile/live/1037_1.m3u8
+中华小当家,https://live.metshop.top/huya/11342413
+猫和老鼠,https://live.iill.top/huya/11352879
+福州少儿,http://live.zohi.tv/video/s10001-fztv-4/index.m3u8
+韩国EBS少儿,http://ebsonairios.ebs.co.kr/ebsutablet500k/tablet500k/playlist.m3u8
+黑龙江少儿,https://ls.qingting.fm/live/4972/64k.m3u8
熊大熊二,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/1733da751de64e6e910abda889d87a26/1200.m3u8
福州少儿,http://live.zohi.tv/video/s10001-fztv-4/index.m3u8
GOOD卡通,https://dqhxk7sbp7xog.cloudfront.net/osmflivech45.m3u8
@@ -365,7 +410,6 @@ GOOD卡通,https://dqhxk7sbp7xog.cloudfront.net/osmflivech45.m3u8
雲朵妈妈,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/d8ad434c6b08421a927557a4d98da65c/1200.m3u8
反转星球,https://newcntv.qcloudcdn.com/asp/hls/1200/0303000a/3/default/3ccdecc7d6e341c1920ad4eac5d82f38/1200.m3u8
狮子王國,https://newcntv.qcloudcdn.com/asp/hls/850/0303000a/3/default/c2e7e767f3144bed959ef20b8b961fe5/850.m3u8
-key=0b292c335e5837e947f9409c59228f3e6
影视,#genre#
@@ -376,12 +420,90 @@ key=0b292c335e5837e947f9409c59228f3e6
乌克兰影,http://serv25.vintera.tv:8081/test/aris/playlist.m3u8
绍兴影视,http://live.shaoxing.com.cn/video/s10001-sxtv3/index.m3u8
烟台影视,http://live.yantaitv.cn/live/e9f1d9045d474c31884d13fa4ffbbd16/a4a9b3704d854756907845107cc56129.m3u8
-菏泽影视,http://live.hznet.tv:1935/live/live3/500K/tzwj_video.m3u8
北京影视,https://wstvcpudali.v.myalicdn.com/wstvcpud/udrmbtv4_1/index.m3u8?adapt=0&BR=audio
新昌休闲影视,http://l.cztvcloud.com/channels/lantian/SXxinchang2/720p.m3u8
-石河子影视文体,http://124.88.144.73:1935/live/jjsh/HasBahCa.m3u8
烟台影视,http://live.yantaitv.cn/live/e9f1d9045d474c31884d13fa4ffbbd16/a4a9b3704d854756907845107cc56129-1.m3u8
美丽中国说,http://newcntv.qcloudcdn.com/asp/hls/4000/0303000a/3/default/8cdd688b04e4495ba1635e218419d6f9/4000.m3u8
+CHC动作电影,http://113.195.172.192:808/hls/114/index.m3u8
+CHC家庭影院,http://113.195.172.192:808/hls/113/index.m3u8
+CHC家庭影院,http://61.162.52.6:8088/newlive/live/hls/60/live.m3u8
+科幻电影,https://yylunbo.ottiptv.cc/yy/1354930209
+科幻电影,https://yylunbo.ottiptv.cc/yy/1355065896
+凤凰电影,http://iot-mqqt.111yao.cn:8080/live/diyp_fhdy.m3u8
+无线星河,https://cdn6.101.qzz.io/163189/tvbxh
+靖天戏剧,http://breezy-audrie-zspace-7524863c.koyeb.app/vipsir?token=leifeng&id=4gtv-4gtv058
+靖天映画,http://breezy-audrie-zspace-7524863c.koyeb.app/vipsir?token=leifeng&id=4gtv-4gtv055
+AMC电影,http://61.221.215.25:8800/hls/43/index.m3u8
+1930年代经典电影,https://yylunbo.ottiptv.cc/yy/1356363815
+CHC电影,http://183.237.95.108:9901/tsfile/live/1008_1.m3u8?key=txiptv&playlive=0&authid=0
+CHC电影,http://120.198.101.106:9901/tsfile/live/1053_1.m3u8?key=txiptv
+东阳影视生活,http://l.cztvcloud.com/channels/lantian/SXdongyang1/720p.m3u8
+人在囧途,https://vip.ffzy-play.com/20221018/1953_2d6ba500/index.m3u8
+人在囧途之泰囧,https://vip.ffzy-play.com/20221018/1951_47e1adc8/index.m3u8
+人在囧途之港囧,https://vip.ffzy-play7.com/20230112/11082_fde1a94d/index.m3u8
+倩女幽魂人间道,http://jsmov2.a.yximgs.com/bs3/video-hls/5250634317044855747_hlsb.m3u8
+倩女幽魂妖魔道,http://jsmov2.a.yximgs.com/bs3/video-hls/5232901391302199073_hlsb.m3u8
+倩女幽魂道道道,http://jsmov2.a.yximgs.com/bs3/video-hls/5216294367991385255_hlsb.m3u8
+史诗级科幻电影阿凡达,https://yylunbo.ottiptv.cc/yy/1382735577
+周星驰搞笑电影,https://yylunbo.ottiptv.cc/yy/38670875
+哈尔滨影视,https://stream.hrbtv.net/yspd/playlist.m3u8
+哈尔滨影视,https://stream.hrbtv.net/yspd/sd/live.m3u8
+哈尔滨影视,http://stream.hrbtv.net/yspd/sd/live.m3u8
+哈尔滨影视,http://111.43.126.240:9003/hls/5/index.m3u8
+哈尔滨影视,http://stream.hrbtv.net/yspd/sd/live.m3u8?zheild#http://stream.hrbtv.net/yspd/sd/live.m3u8
+喜剧神妖魔鬼怪电影,https://yylunbo.ottiptv.cc/yy/1355171231
+国产动作电影,https://yylunbo.ottiptv.cc/yy/1382736858
+国产大片电影,https://yylunbo.ottiptv.cc/yy/1354926655
+国产电影就是闹着玩的,https://yylunbo.ottiptv.cc/yy/1354931503
+国内玄幻电影林正英,https://yylunbo.ottiptv.cc/yy/1354932444
+国内经典动作电影,https://yylunbo.ottiptv.cc/yy/1382851522
+夏洛特烦恼国内电影喜剧,https://yylunbo.ottiptv.cc/yy/1354936201
+大江大河2高分影视推荐,https://yylunbo.ottiptv.cc/yy/1382736797
+大江大河高分影视推荐,https://yylunbo.ottiptv.cc/yy/1382736806
+大进军全集红色系列电影,https://yylunbo.ottiptv.cc/yy/1382745083
+奇幻冒险电影凯斯宾王子的魔法征途,https://yylunbo.ottiptv.cc/yy/1354926671
+寒战,https://vip.ffzy-play6.com/20221019/157_bf0740ee/index.m3u8
+岳云鹏宋小宝也来演电影了,https://yylunbo.ottiptv.cc/yy/1354926612
+影视小艺,https://yylunbo.ottiptv.cc/yy/1382737886
+悬疑武侠电影九门,https://yylunbo.ottiptv.cc/yy/1382828768
+我不是药神,https://vip.ffzy-play1.com/20221018/478_c3afed66/index.m3u8
+拆弹专家1,https://vip.ffzy-online.com/20221015/719_80ff87c2/index.m3u8
+拆弹专家2,https://vip.ffzy-online.com/20221015/722_e32c42bc/index.m3u8
+播放影视为主,https://yylunbo.ottiptv.cc/yy/1353454489
+末日系列外国电影合集,https://yylunbo.ottiptv.cc/yy/1354889019
+林正英经典玄幻电影,https://yylunbo.ottiptv.cc/yy/1462895099
+林正英经典电影,https://yylunbo.ottiptv.cc/yy/34229877
+梅艳芳主演喜剧电影,https://yylunbo.ottiptv.cc/yy/1382735627
+欧美配音电影,https://yylunbo.ottiptv.cc/yy/1354693629
+浙江教科影视,https://ali-m-l.cztv.com/channels/lantian/channel004/1080p.m3u8
+浙江教科影视,http://ali-m-l.cztv.com/channels/lantian/channel04/1080p.m3u8
+热血动作电影,https://yylunbo.ottiptv.cc/yy/1382736804
+热血抗日电影,https://yylunbo.ottiptv.cc/yy/1382749907
+爆笑电影王牌大贱谍23,https://yylunbo.ottiptv.cc/yy/1382735556
+珍珠港电影,https://yylunbo.ottiptv.cc/yy/1354936234
+电影,https://yylunbo.ottiptv.cc/yy/37454459
+电影八点档,http://live.metshop.top/huya/880261?cdn=alicdn
+电影功夫片,http://live.metshop.top/huya/11352941?cdn=alicdn
+电影动作电影,http://live.metshop.top/huya/11602077?cdn=alicdn
+电影嫣然影厅,http://live.metshop.top/huya/11601977?cdn=alicdn
+电影战争片,http://live.metshop.top/huya/21059574?cdn=alicdn
+电影梁家辉,http://live.metshop.top/huya/11342429?cdn=alicdn
+电影百团大战,https://yylunbo.ottiptv.cc/yy/1382736871
+电影蜘蛛侠,http://live.metshop.top/huya/21059599?cdn=alicdn
+电影谍战,http://live.metshop.top/huya/21059585?cdn=alicdn
+电影高分动作,http://live.metshop.top/huya/11352884?cdn=alicdn
+电影黑豹,https://yylunbo.ottiptv.cc/yy/1382736816
+精彩动作电影,https://yylunbo.ottiptv.cc/yy/1382736823
+精彩动作电影享不停,https://yylunbo.ottiptv.cc/yy/1382736809
+经典港片电影,https://yylunbo.ottiptv.cc/yy/1461889059
+经典电影重温,https://yylunbo.ottiptv.cc/yy/1382793140
+老卓电影,https://yylunbo.ottiptv.cc/yy/1354770516
+让子弹飞,https://vip.ffzy-play7.com/20230116/11563_b9f44814/index.m3u8
+超精彩系列动作电影,https://yylunbo.ottiptv.cc/yy/1382745096
+远去的飞鹰影视剧,https://yylunbo.ottiptv.cc/yy/1354930912
+野山鹰影视剧,https://yylunbo.ottiptv.cc/yy/1354932395
+韩国电影2,https://stream.ads.ottera.tv/playlist.m3u8?network_id=743
+龙门飞甲,http://jsmov2.a.yximgs.com/bs3/video-hls/5203346449046555193_hlsb.m3u8
大杂烩,#genre#
@@ -393,7 +515,6 @@ key=0b292c335e5837e947f9409c59228f3e6
文山州新闻综合,http://tvdrs.wsrtv.com.cn:8100/channellive/ch1.flv?zyund
文山州新闻综合,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel7/playlist.m3u8?zyund
文山州公共,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel8/playlist.m3u8?zyund
-怒江新闻综合,http://livebroadcast.ccwb.cn/live/w1620805130988936.m3u8?zyund
砚山电视台,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel16/playlist.m3u8?zyund
麻栗坡电视台,http://m3u8.channel.wsrtv.com.cn/cms/videos/nmip-media/channellive/channel18/playlist.m3u8?zyund
哈尔滨新闻综合,http://stream.hrbtv.net/xwzh/sd/live.m3u8?zheild
@@ -459,16 +580,6 @@ key=0b292c335e5837e947f9409c59228f3e6
烟台影,http://live.yantaitv.cn/live/e9f1d9045d474c31884d13fa4ffbbd16/a4a9b3704d854756907845107cc56129-1.m3u8
菏泽新闻综合,http://live.hznet.tv:1935/live/live1/500K/tzwj_video.m3u8?shandd
菏泽经济生活,http://live.hznet.tv:1935/live/live2/500K/tzwj_video.m3u8?shandd
-菏泽影,http://live.hznet.tv:1935/live/live3/500K/tzwj_video.m3u8?shandd
-东营综合,http://stream.hhek.cn/xwzh/sd/live.m3u8?shandd
-东营公共,http://stream.hhek.cn/ggpd/sd/live.m3u8?shandd
-东营科教,http://stream.hhek.cn/dyjy/sd/live.m3u8?shandd
-
-
-四川综合,#genre#
-叙州新闻综合,http://pili-live-hls.ybcxjd.com/jdh-live/2108111201035597.m3u8?zsicd
-利州综合,http://tvfile.lzgbdst.com/nmip-media/channellive/channel106876/playlist.m3u8?zsicd
-泸县新闻综合,http://lxfile.lxxcb.cn/nmip-media/channellive/channel103799/playlist.m3u8?zsicd
纪录片频道,#genre#
@@ -1247,7 +1358,6 @@ DJ新歌上线,https://vd3.bdstatic.com/mda-nckdkm6sj1p9q7c9/sc/cae_h264_delogo/
DJ酱爆鱿鱼舞曲版》,https://vd4.bdstatic.com/mda-ncidj3kqg98a7ent/360p/h264_delogo/1647683015061569002/mda-ncidj3kqg98a7ent.mp4
DJ给我一把爱情火,https://vd2.bdstatic.com/mda-ncg42rnzxats8h83/cae_h264_delogo/1647486932330653636/mda-ncg42rnzxats8h83.mp4
新歌上线,https://vd4.bdstatic.com/mda-nc005jwr87jrdssh/sc/cae_h264_delogo/1646179767551234681/mda-nc005jwr87jrdssh.mp4
-dj,https://txmov2.a.kwimgs.com/upic/2022/03/21/19/BMjAyMjAzMjExOTA2MjRfMjYyNzI4Mjc4MV83MDE2MTEwMjY1Ml8yXzM=_b_B977559109a6b2bec30b01e11d458d398.mp4
刀郎的西海情歌,https://vd2.bdstatic.com/mda-nctex3rji1v42a0w/sc/cae_h264_delogo/1648464135631429287/mda-nctex3rji1v42a0w.mp4
伤感DJ串烧为爱流泪,https://vd3.bdstatic.com/mda-nci8jqpzeyqkhdxe/720p/h264_delogo/1647670097763149460/mda-nci8jqpzeyqkhdxe.mp4
林翠萍的《我太傻》,https://vd2.bdstatic.com/mda-mb5qq1ic4yvekk6r/v2-hknm/sc/mda-mb5qq1ic4yvekk6r.mp4
diff --git a/tvboxqq/南风/spider.jar b/tvboxqq/南风/spider.jar
index ad87654..d8cc054 100644
Binary files a/tvboxqq/南风/spider.jar and b/tvboxqq/南风/spider.jar differ
diff --git a/tvboxqq/小米/api.json b/tvboxqq/小米/api.json
index b203bfc..83b893d 100644
--- a/tvboxqq/小米/api.json
+++ b/tvboxqq/小米/api.json
@@ -1,12 +1,12 @@
-//
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
{
"spider": "./spider.jar",
- "wallpaper": "https://xn--4kq62z5rby2qupqba63sb41h.999888987.xyz/",
+ "wallpaper": "https://www.wexwp.cc/bizhi.php",
"sites": [
{
"key": "豆豆",
- "name": "🌈热播┃推荐(长按图片也可以聚合搜索)",
+ "name": "🌈热播┃项目链接>:https://link3.cc/lovemm",
"type": 3,
"quickSearch": 0,
"filterable": 0,
@@ -16,14 +16,14 @@
},
{
"key": "config",
- "name": "⚙网盘┃配置 项目链接:https://link3.cc/lovemm",
+ "name": "🧰网盘┃cookie配置💯",
"type": 3,
"api": "csp_Config",
"searchable": 0
},
{
"key": "csp_Netfixtv",
- "name": "💌至臻┃4K网盘",
+ "name": "💌至臻┃网盘4K💥",
"type": 3,
"changeable": "0",
"quickSearch": 0,
@@ -50,21 +50,20 @@
},
{
"key": "csp_Netfixtv2",
- "name": "🎥二小┃4K网盘",
+ "name": "📟二小┃网盘4K💥",
"type": 3,
"changeable": "0",
- "quickSearch": 0,
+ "quickSearch": 1,
"api": "csp_Duopan",
"filterable": 1,
"ext": {
"site_urls": [
"https://www.wexwp.cc",
"https://wexwp.cc",
+ "https://zhizhen1.top",
"https://www.2xiaopan.fun/",
"https://2xiaopan.fun/",
- "https://www.2xiaoyun.fun/",
- "https://www.2xiaoyun.fun/",
- "https://www.xhww.net/"
+ "https://www.2xiaoyun.fun/"
],
"url_key": "UC",
"token": "",
@@ -78,29 +77,32 @@
},
{
"key": "csp_Wogg",
- "name": "🧸玩偶┃4K网盘",
+ "name": "🧸玩偶┃网盘4K💥",
"type": 3,
"api": "csp_Wogg",
"changeable": "0",
"quickSearch": 0,
"filterable": 1,
- "ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg8rYFx7ctv7/EwYIQ8UriiQKDIJuqIvlQQje6dXLxWHRiSlxkxqMyYKI0d1JGw46AuOAoB1VAvOCaqYqiTezjHHt8wMymbT/vDdiFXkMbc44kNGdjpzSyL2/kBZIAQaYMPgSkEYlv4faMeCi3MaCLYaT3C7qaUzLc56RYGLF2rmtIoYgMFOG9eSpyjO66jU/3v2f1yXnqTEEKd1/+/m8DBi8KudUm92Pa/NN8zRcY5nClAo1Eqn9bGzuO/+M4V5KG/RhdFdHyzxIpxfgoBRhn4j7GEzWBxrg4JiW2kP8Vo0iQm0S8aJUTOf1ROVp2sKW36D2Q/IgMvEqazefGXZSyNSTsjbNbVc2cHMxKrbUQIPqhD5y93kdVqr5glHjuqjrDC8Pa54/l2nFeWMZIRN7ZxMpY9O1WSazlqA1GI2A6UtmKIx6r2dX7seMOOENI+Tjl2ojAYQscbGgYpzVNL9VNf/w7xQaHqjtWLUcAOmJYweA0mZb6cGoAd8Gjcwz7iper0s53AViof2QbBffDKJxF820BsiCZAMp+Nq1Y7wrFqnnEN7HiE+YHPDxNfvBXnEgubPXu6DeZGa6edzqVbRwO52"
+ "ext": "Yu2Y3Q8tqDTqZ+GCqfQZz8i/vsP/tl9O+/0ZjpgnBg+2RfEareoNuL/Pl5M72Qa7kLxIiSX9vw43FPihBY2n/maEHOEs7WGA2T/7NojmydALUIhhnc3jYOnh2KHHfokMo6IosAN/HGNN8Je7i0Q/rL7kSVIrNzcaH9uonFPYh5dshTaO26cuMfuRGObY7TG2etjrtIY7Cvmh9OYKVAdLzNlqAxC2m0hu+hlP/VBNWk8dJaPTEC2E8iY8E4aYgfNJPFWSDBaJoYgJ38mLekQccXn+3g/5EBt29+pMhYgbRUwxV7QArevAzfkWtcJIPf9oeOHI3qZ7a1T9Gj+k62YBcbD9e/u29Uic0IsCzJOE8xgr1gaWLs5qLUT82Rdf7Pu9gH0FPb0uQorMiBBDsaQJwll8wBCbEc1F8b9Ut/e9kyoJKNdcKaMXVfQod/XMFx6ST63piNdL/gPGecSjsKht1M3K9pa54mjEkWEx0jnxFVBx+GJt2INnNMSG1iWy574dzS9zWcED5SXgjUbXncKe4ghIUzgy1nBDoyCaTW/RlRzdYwJFCytDEeLOBI751TEKL6XcwySfB8kPdQyl1+ytAA=="
},
{
"key": "csp_Duopan",
- "name": "🖍蜡笔┃4K网盘",
+ "name": "🖍蜡笔┃网盘4K💥",
"type": 3,
"quickSearch": 0,
+ "changeable": "0",
"api": "csp_Duopan",
"filterable": 1,
"ext": {
"site_urls": [
+ "http://xiaocge.fun",
+ "http://feimo.fun",
"https://feimao666.fun",
"http://feimao888.fun",
- "http://feimaoai.site",
"http://www.labi88.sbs",
"http://fmao.site",
- "https://fmao.shop"
+ "http://fmao.shop",
+ "http://xiaocgege.shop"
],
"threadinfo": {
"chunksize": 512,
@@ -110,64 +112,21 @@
}
},
{
- "key": "csp_Bili",
- "name": "🏵️哔哩┃哔哩",
+ "key": "天天",
+ "name": "💯秒播┃影视💯",
"type": 3,
- "api": "csp_Bili",
- "quickSearch": 0,
+ "quickSearch": 1,
"searchable": 1,
- "ext": {
- "json": "https://ai-search-static.dangbei.net/db-ai-search/2025/04/14/1911670191528480768/1744612665263_bili.json",
- "cookie": ""
- },
- "style": {
- "type": "rect",
- "ratio": 1.333
- }
+ "api": "csp_AppRJ",
+ "ext": "vxw35/hHSj07Q+maxQzOVMq1rjRCOTXpUCx8iKu5jIg="
},
{
- "key": "荐片",
- "name": "➖荐片┃磁力",
- "quickSearch": 0,
- "searchable": 1,
+ "key": "csp_Music",
+ "name": "🎵MUSIC┃听歌",
"type": 3,
- "api": "csp_Jianpian",
- "style": {
- "type": "rect",
- "ratio": 1.333
- },
- "ext": "https://ka1dfj.slsw6.com"
- },
- {
- "key": "AppQi1",
- "name": "🎴爱盈┃小米",
- "type": 3,
- "api": "csp_AppQi",
- "changeable": "0",
+ "api": "csp_Music",
"quickSearch": 0,
- "filterable": 1,
- "ext": "BciM/oLDYQqSU++RAsI5xz2Dmz98Blyw0pp0T+0QPiq/bSU1IhcLmPsn25NijfG6B3fLoAmVGEL0/tWb+o0nZYn1u5i3pWNxWaYYmNV1x0c="
- },
- {
- "key": "鲸鱼",
- "name": "🐋鲸鱼┃小米",
- "quickSearch": 0,
- "searchable": 1,
- "type": 3,
- "api": "csp_AppQi",
- "ext": "rP+4azM8YFgp3eAhyeALtUUEFpbkqmzGj2V5VZryxRbpkSjlsHbarRCZPOInvId4s3WK9rZ2YJsDy8NvMqQKQXowVmh33j+qD55VxmvMzzffqLi7UXvCKdy6PzbDhzFq"
- },
- {
- "key": "娱乐",
- "name": "🎮游戏┃娱乐",
- "quickSearch": 0,
- "searchable": 1,
- "type": 3,
- "api": "./api/zb.py",
- "style": {
- "type": "rect",
- "ratio": 1.333
- },
+ "searchable": 0,
"ext": ""
},
{
@@ -182,65 +141,81 @@
"changeable": 0
},
{
- "key": "天天",
- "name": "💯天天┃影视",
+ "key": "csp_Bili",
+ "name": "🏵️哔哩┃哔哩",
"type": 3,
+ "api": "csp_Bili",
"quickSearch": 0,
"searchable": 1,
- "api": "csp_AppRJ",
- "ext": "vxw35/hHSj07Q+maxQzOVMq1rjRCOTXpUCx8iKu5jIg="
+ "ext": {
+ "json": "https://cik07-cos.7moor-fs2.com/im/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1ef9257f7cd6eac9/bilibil.json",
+ "cookie": ""
+ },
+ "style": {
+ "type": "rect",
+ "ratio": 1.333
+ }
},
{
- "key": "csp_nongmin",
- "name": "💯农民┃极速",
+ "key": "老丫",
+ "name": "🍞老雅┃1080P",
"type": 3,
- "api": "csp_Wwys",
"searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "changeable": 1,
+ "api": "./api/fox.js",
+ "ext": {
+ "host": "https://cms99api.ystva.com"
+ }
+ },
+ {
+ "key": "聚搜2",
+ "name": "🚗JUSOU┃1080P",
+ "type": 3,
+ "api": "./api/AppToV5.py",
+ "ext": "http://118.89.203.120:8365/"
+ },
+ {
+ "key": "巧技2",
+ "name": "💢聚搜┃1080P✨",
+ "type": 3,
+ "searchable": 1,
+ "quickSearch": 1,
+ "api": "csp_qiao2",
+ "playerType": 2,
+ "jar": "./jars/巧技2.jar",
+ "ext": "7lj763gg402i7942412h849jg1558j9jl8g19213il86316k465719lik158491h179312h4934183ig2l05g9"
+ },
+ {
+ "key": "爆炸",
+ "name": "🎴爆炸┃1080P",
+ "type": 3,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
"filterable": 1,
- "ext": "https://www.wwgz.cn"
+ "ext": "pghUv+IPbIqGFEhny2nIStK3kvYuQF1lj98M0YXLH7Vmu8vVscTp5N3ez4yblkrSfdCHlm4BW9GfqxpmOugdHzmaIMUcG6iFE2QkGiogg/EkrBoFyqPlXfgqCnwvnkLTwIm6HlAJq81hOBdm8KYMAenzS1FXuj3q8/Rbai4OcSMAWvA2Wl8uB576gCLKVN0lFUFcvAYefFSkfhF9f0iyDuG/LBv87IIBNwyVB/MgWEuUwwoBhSfvjS09Mc9Ic7G4yBz6TguFIQ5Xqa2xQBGjFYb4nDoygkIbt3a7bQGmktJxEHdOhhm8nYvhDe9+/8HB7EJgHSlT5hnLoCgqcFHLqn+oof8StNPQo8Pjjik3L4VEfTfCYWaN7ZFWASzTkPIr"
},
{
- "key": "csp_FreeOk",
- "name": "👌️Frek┃影视",
+ "key": "橘子",
+ "name": "🎴JUZI┃1080P",
"type": 3,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "api": "csp_FreeOk"
+ "filterable": 1,
+ "ext": "FNc7O3Sq/hxz7uCzbccPTwmKS9QhqbhDC5J/tBK99TWfK0aEwzyajhrUANmtu0o/w36kBG8LM77XaSazDF+/gYPfNaL4qTRYwqUKxL4cr84pssT9H168H7YT0HD1jUpcBYXSFfirex66s9O56hHTJCavdCBPyAY+K1jwYeoEEhGWSCLhW+JJBxU7rItkKh2VHMg4vh/A7M+5ydA1fIuNP8T5JR3+475o6yUWkUH7nv/8uqjmZKhq70mQZTaMPiVaBqG+SL9NKYo5Yk4vpsUBErE2uzducc78nK0PT5ShRhLv6POBMNNZZN+/O0MFX+83BqCWsbHMNipM5zOIja/xr2x14WPH7BDlUqkw9w105US6oRwZ8jtdS0cvn5u4BT9W14rSUBAMy36xrjYR3f1OUkmlIvz6sC8OAagD/CRSwFYrh9zbMvw5V2ntYK+wDdiIq6HTkXG/86MN6lYEHkEAC4sYoxBpS5KaPlDFoOo5ED4="
},
{
- "key": "追忆",
- "name": "🐖追忆┃APP",
+ "key": "爱营",
+ "name": "🎴AIYIN┃1080P",
"type": 3,
- "api": "csp_AppSy",
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "ext": "Qrf5S6Si5oF7dQyuv+Srh3uh0lT3z1Y7u59ip9hRVeWtPAwa8PAzOjbdregJfgecQjmbgYlvm+1rK87EwCqgaovlgh315Qrh90D+nl+f08o="
- },
- {
- "key": "热热",
- "name": "🔥热热┃影视",
- "type": 3,
- "searchable": 1,
- "quickSearch": 0,
- "api": "csp_AppRJ",
- "ext": "jsSMEuhTZIAHjnUoLBzKdlRu5exzno6M4efF8LzwjWM="
- },
- {
- "key": "云速",
- "name": "☁️云速┃影视",
- "type": 3,
- "searchable": 1,
- "quickSearch": 0,
- "api": "csp_AppQi",
- "ext": "9ee0oa0Y30GapSvZ2C2RVE2HwH08KKvP0VhAZCVWpnluXpZNLRZrNCMeKyCWw1JOj3jlA6tSdRPHvvTyBCuIMzwlKeODvXst4zEi0DFYqmEXOu+cG8rF7/kIckBMVYvn"
- },
- {
- "key": "麻花",
- "name": "🌸麻花┃影视",
- "type": 3,
- "quickSearch": 0,
- "searchable": 1,
- "api": "csp_AppQi",
- "ext": "lo54N2bJ4DtrhxC9P676hHekMnvMvX1mNNhVKf3kE5Wgy3H/b30VkkDKAYauTqZsDdvpB5GqFDm8YyeyiKclJTSLQ/tOARL2p/dbX8OIae9/PHnAUKONnpKuoD52E5AT"
+ "filterable": 1,
+ "ext": "N/01JeZBCBEQ0wOXNuAI/kwsk5p8MqEDFtLQfMnVixAS3aeDEPdCV317OImxNn6T3Hb5VmwFLOhgFAQJ+is4HZ3ndDCtqOfPVULszPg13PiW+RHbzH5TtSdAiFfw0D1dLa7TDpTcFxuXv5MJI8925dg51pBjkSqNZt8Jz0nbRDK8eQSoCbsw2I93ke+olS9cVWkurB8mwxms5nD8AqSV4eHdYOwwU2q4ln6jV8KEyhnOHxJEjNLT8hk0SFdgLqRwqbqyl6kSqmTlPX681FYZnBN19r49ojprcBeFmLUB3Rn0LrpWzz0zIeycV8N00oXiCh5kd2caQMyUPPWdyfQbKwV6V+6dQAKtSNoTpxRNGqTimifZEJFGizQMko6AQpQpW0FHr7B3gLmmiknNMWJe/gcG7lhWSAiIGzxVnzBhCmSlOKB3sq/tAQSBrPNWKpSNFx5prQHKpStELIHAnqdNUS31u0xrGq9ejUdadgR9pxO6QcCHk0Ln0tnUA69uiJ9q1udCFx8+5i+c320rpMKGnA=="
},
{
"key": "QD4K",
@@ -251,68 +226,94 @@
"api": "./api/AppV2.py",
"playerType": 2,
"ext": {
- "api": "http://dmmax.juxiafan.com/icciu_api.php/v1.vod",
+ "api": "http://dmmax.kuailezhuiju2.com/icciu_api.php/v1.vod",
"datasignkey": "6QQNUsP3PkD2ajJCPCY8",
"apisignkey": "lvdoutv-1.0.0"
}
},
{
- "key": "大豆",
- "name": "✅大豆┃影视",
+ "key": "顾我",
+ "name": "🎴顾我┃1080P",
"type": 3,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "searchable": 1,
- "api": "csp_AppGet",
- "ext": "7PKaTzLgpGLqYV7cUF+dCEw/YtRQnWFqGURdQoZnM3s5khy5fqX3yGD7gACetGMWTQJv81SoDNcZI5UkNNLGqA=="
+ "filterable": 1,
+ "ext": "FNc7O3Sq/hxz7uCzbccPTwmKS9QhqbhDC5J/tBK99TXBAOG5IeeHo7xSXryC0vBoO5B1l2XmjJKdkeCZu5v1UxCZcIXe/1cmcBYcHAk746JE1FosonleIPqUFKByjhLwUU1doZS06jAVhSjz7X90y5GWmFqHmqD7ArxYzUSMQxyKerhNQ2ZWaJ2ka4jFMRPVVDQrBge5CgBGsw/HTb/+Q12qdcSTymLUN/cfwoUZ4uqBcSPbxSIrB4znIU2PcCtnX14vLtsWp1u/cbGV+kP8486YY8kGEs2qq+T34UaXBZf9Kk1t0Qt6yrj57yptwkeJXa2gK176ebs/D71tmX2ErBjije7pqwpRtEmeAmBWxohh9kLrGdh97ODRSzyNYE93Ai7nbGoskd/2r1Uu5NLCEqCIBBhH1qI6Jl/jWIVcngIDBm5KoTPs1ZxNWEqnOyP8nf8FuHZkRp/o26HL5LXb17UOkCmecqDKg3vjcnBKPNg="
},
{
- "key": "巧技",
- "name": "🚗聚搜┃影视",
+ "key": "仓鼠",
+ "name": "🐀仓鼠┃1080P",
"type": 3,
- "searchable": 1,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "api": "csp_qiao2",
- "playerType": 2,
- "jar": "./jars/巧技.jar",
- "ext": "7lj763gg402i79425739i7jghj118797l4hj840gi18633331l4708g2h7145403549g44l8ii56i187681hkjj3hhgh1ih3l32j250lk1k786lj20j468hk3hli4l46gig4i3g7g2722328j0136h01i7g5183k22k7gg3i72hk81gl8k9839kl7i0707"
+ "filterable": 1,
+ "ext": "pghUv+IPbIqGFEhny2nISnBe3jtwrkrKmA9gFPEXpcZgiPeFt+IbNv07s1Audo9ooQlGiutxlinjRU5ay7QOX/gM8IRK1hicXoB4fj3+61s7v2vM5Thnd8MsElWnB8G9H04+FEXWP5PFsxcydV2n0MSdL9s1HLrt47UbYe79c2AWxDNSuDxJpbtrnWuR/DMq7+qlSYLPH1ZZRnJS5B2M4u20YwZRcc2V2RV85ughDqkb+Sk20Hmad84HioaOnBQFdDj8bNxsxYWjnnlLUNZori8QwADfAoBFKaDRuqxkUss="
},
{
- "key": "金牌APP",
- "name": "💣爆炸┃影视",
- "quickSearch": 0,
+ "key": "云速",
+ "name": "🍼云云┃1080P",
"type": 3,
- "api": "csp_AppMuou",
- "ext": "ewogICJTaXRlVXJsIjogImh0dHBzOi8vbXVvdS53bGJicS54eXoiLAogICJFeHQiOiAiaXA5K1dadnQ5ODNzUzAwOGtyTktobno4Q2Fzb2d3QjlLYkp2U0FmNGJRZEg5aUlGVHE4Y0tGM3Y4RFBicnphUiIsCiAgIkluZm8iOiAiaHR0cHM6Ly9tdW91aHQuZ2d0dmIuY2MiCn0="
+ "api": "csp_AppGetV2",
+ "changeable": "1",
+ "quickSearch": 0,
+ "filterable": 1,
+ "ext": "pghUv+IPbIqGFEhny2nISqwnd+ZrLZS4oOovoDKrPwa8JWS5zzoWGioKpDjUFvBJr0S7A/z5np7s3vbM2DsPSgChWUFqeOtR292/yzIXpDLpHsf0V7gMJfDcOklI8ANoEHc2x/WQFzmMxg5pE9DZJFJ3pkI96Ralddap07nF39fdXftP1fxv3/2U6Oh45EXNV1haetnG3NaxebkU1OHfa4oONC1wOLIoPyDcJb4LBFptemHoubsOIiqaZoVgGdEHgQuaNYNPJ2geGyrshsfO0fnffr9Anv66uTz2sjVkh0BqZgIg4mFG1D5WMjbX/zDZKYHr+O0u+WVjF26vTPcrzSMot9nwsgXRPOw+jlu62oOSyhOlzf24jTF3KweU+oRR"
},
{
- "key": "牛牛",
- "name": "🍁牛牛┃影视",
+ "key": "魔方",
+ "name": "🥪魔方┃1080P",
"type": 3,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "searchable": 1,
- "api": "./api/mioaying.py"
+ "filterable": 1,
+ "ext": "0YM2rlqPCLd5eMAslwMf/kCE22ncNd3xnmwrQY9SCQHXWdeo2H/sfIiHuBMc3PzPEVY5G9M3x+gMD2forwOxfrm19dVzxOnNMp1ifx9OE2sq8B3N9rwsK51+tiWkbkBXe97ltXwk1WutyDZRGlllk+7h+Urgo217z5GqoWbso/7QmUZUdpH3zfXXuW0Guyanl7S1RWawJMkP7sCO23zv+Jp7lRMH5q/nWZFDYK7QKExZrzazEptEa/hczMEdnGJmibozbgaxeaWXIs8suJ0Y/4Oq41APBwdk28BygjvI88Wn+4GIquYsyopBZ+5lYZtn9Hi/35yqZM1xmBOqNi2QaK0o0tJGj7AWJL1nwE1Nd4rUtgvCL7CNGSnLmy35EeGfrx32x2qnpWDfLws/jyKbqkDphx1Fa9xxSqLVrulZVUJuWZS1hCeZ2yG9X0W2UWzivH+AzDUXDSWUwslvB4F4ZLR32ehoI+O39Y3/pZvCOlXjMVjvgT6von35RIiOjQbY"
},
{
- "key": "csp_AppXY",
- "name": "🐸短剧┃影视",
+ "key": "星星",
+ "name": "🍥星星┃1080P",
"type": 3,
- "searchable": 1,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "api": "csp_AppXY",
- "ext": "https://xvapp.xingya.com.cn"
+ "filterable": 1,
+ "ext": "FNc7O3Sq/hxz7uCzbccPTwmKS9QhqbhDC5J/tBK99TVOHLlZGML6w5s00rYaRDRk44y4l2VZIg51xAZOs4LCX4bidVaNqnZSwvq1di3RUOk5+pqqDBbEhzsV2VsblBDDcFPmwFvwSc80outLvvsjfZ5L3Qj6KfDm63MsiSTI125bBAKRXPoqvfSLDcN0ojyD4p1gyFPEftaY/gE8Q/Z4zEzdsDaxnUJCA9wQrDOGOqmaHz400914DN7gJesIf/i+Hh8bjrqfej84yQ7cJDC6zX5MqaZFwtRGJ6PlEElJAw1i69/quACnLkHOQSHsLrs9Fuc/qM2iJqCXFsrojXIwhbDLpCasWXOJH3RLFMSd/T7nsIoeSsBt01k6xT2KC0Y5AjWMDyE1zCDwZoRoTm4MGBei0IyaWoWq6Kz+IGCqqsiC0ylLcX1nF3VM7mrhmWdZqPl6uFqpdMoGzfg+s8pRc5qH2ykzHmqLHx9pSoLiAdM="
},
{
- "key": "csp_baibai",
- "name": "💯白白┃影视",
+ "key": "JINPAI",
+ "name": "🍥JINPIA┃1080P",
"type": 3,
- "searchable": 1,
+ "api": "csp_AppGetV2",
+ "changeable": "1",
"quickSearch": 0,
- "api": "csp_SuBaiBai",
- "ext": "https://www.subaibai.com"
+ "filterable": 1,
+ "ext": "N/01JeZBCBEQ0wOXNuAI/kwsk5p8MqEDFtLQfMnVixDB3xui1lDymx4fnoCgxm59NbdMM2FDEd1LoNOCZvedKAplW6Go0JtGfzXnn65Pg1kPIthOoYoQWgY/lKhQKzzcLQKb1ezm1qhhKR/lEhfm+EbojsfeaAOeOaSCVPPzSkVw2DmHMhYv+yWi9ExOHyfuXX1csfF6G/UWPw12lFNeElpZMAUAQG2LEcbRadEvVmNm3YDM07Dn4F8Fcvsnb08MRb3GO2sEZSdjqf85kk1tVNb5zdfho1F01S/Cvzp4Lz+TE9ttJdTPredSWbGdEqE6nSkfEYZvFEnCD8bleLRdOPik/WqX5gPv+gSRakGrrGx7FwM3Ase0Bd8sy6ZfJqfs8IllB1ckfC0POuFEmprDW4ERNmIFJHsZcS128w9xhNUrtuPnocdErRw7+shj+W3Hc4pGqZpprTTxaXp9zA+HcGj/qeNIOXt32yoDOnpy9SOHNSvD4Joue4EcTCkqnJoC"
+ },
+ {
+ "key": "荐片",
+ "name": "🧲JIANPIAN┃磁力",
+ "quickSearch": 0,
+ "changeable": "0",
+ "searchable": 1,
+ "type": 3,
+ "api": "csp_Jianpian",
+ "style": {
+ "type": "rect",
+ "ratio": 1.333
+ },
+ "ext": "https://ev2089.zxbwv.com"
+ },
+ {
+ "key": "csp_SaoHuo",
+ "name": "🔥HUOHUO┃影视",
+ "type": 3,
+ "api": "csp_SaoHuo"
},
{
"key": "csp_LiteApple",
- "name": "🍎苹果┃影视",
+ "name": "🍎APPLE┃影视💯",
"type": 3,
"searchable": 1,
"quickSearch": 0,
@@ -320,7 +321,7 @@
},
{
"key": "csp_Gz360",
- "name": "🍉瓜子┃影视",
+ "name": "🍉GUAZI┃影视",
"type": 3,
"searchable": 1,
"quickSearch": 0,
@@ -328,35 +329,43 @@
},
{
"key": "csp_Jpys",
- "name": "🥇金牌┃影视",
+ "name": "🥇JINPAI┃影视",
"type": 3,
"searchable": 1,
"quickSearch": 0,
"api": "csp_Jpys"
},
{
- "key": "厂长",
- "name": "🏭厂长┃影视",
+ "key": "csp_WWYS",
+ "name": "👨农民┃影视",
"type": 3,
+ "searchable": 1,
"quickSearch": 0,
- "api": "csp_Czsapp",
- "ext": "https://www.czzymovie.com"
+ "api": "csp_Wwys"
},
{
"key": "csp_MiSou",
- "name": "🔍米搜┃盘搜",
+ "name": "🔍MISOU┃盘搜",
"type": 3,
"searchable": 1,
"quickSearch": 0,
"api": "csp_MiSou"
},
{
- "key": "csp_BookTing",
- "name": "📕有声┃听书",
- "api": "csp_BookTing",
+ "key": "剧和短剧",
+ "name": "🪗聚合┃短剧",
"type": 3,
- "quickSearch": 0,
- "ext": "https://m.i275.com"
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "changeable": 1,
+ "api": "./api/%E8%81%9A%E5%90%88%E7%9F%AD%E5%89%A7.js"
+ },
+ {
+ "key": "csp_TingBook",
+ "name": "📕有声┃听书",
+ "type": 3,
+ "api": "csp_TingBook"
},
{
"key": "Aid",
@@ -413,185 +422,18 @@
}
}
},
- {
- "name": "8090g",
- "type": 0,
- "url": ""
- },
- {
- "name": "虾米",
- "type": 0,
- "url": ""
- },
{
"name": "夜幕",
"type": 0,
"url": ""
}
],
- "logo": "https://fs-im-kefu.7moor-fs1.com/ly/4d2c3f00-7d4c-11e5-af15-41bf63ae4ea0/1752137757797/ab67656300005f1f66fff1b2f972193c3d6433eb.jpg",
+ "logo": "https://wkphoto.bj.bcebos.com/bba1cd11728b47106798119ad3cec3fdfc032335.jpg",
"lives": [
{
"name": "平台直播",
"type": 0,
- "url": "./lives/平台直播.txt",
"ua": "okhttp/3.15"
}
- ],
- "rules": [
- {
- "name": "♻️量非",
- "hosts": [
- "lz",
- "vip.lz",
- "v.cdnlz",
- "hd.lz",
- "ffzy",
- "vip.ffzy",
- "hd.ffzy"
- ],
- "regex": [
- "#EXT-X-DISCONTINUITY\r*\n*#EXTINF:6.666667,[\\s\\S]*?#EXT-X-DISCONTINUITY",
- "#EXT-X-DISCONTINUITY\r*\n*#EXTINF:6.600000,[\\s\\S]*?#EXT-X-DISCONTINUITY"
- ]
- },
- {
- "name": "♻️索尼",
- "hosts": [
- "suonizy",
- "qrssv.com"
- ],
- "regex": [
- "15.1666",
- "15.2666"
- ]
- },
- {
- "name": "♻️乐视",
- "hosts": [
- "leshiyun"
- ],
- "regex": [
- "15.92"
- ]
- },
- {
- "name": "♻️优质",
- "hosts": [
- "yzzy",
- "playback"
- ],
- "regex": [
- "16.63",
- "18.66",
- "17.66",
- "19.13"
- ]
- },
- {
- "name": "♻️快看",
- "hosts": [
- "kuaikan",
- "vip.kuaikan"
- ],
- "regex": [
- "15.32",
- "15.231",
- "18.066"
- ]
- },
- {
- "name": "♻️360",
- "hosts": [
- "lyhuicheng"
- ],
- "regex": [
- "#EXTINF.*?\\s+.*?hrz8QcR9.*?\\.ts\\s+",
- "#EXT-X-KEY:METHOD=NONE[\\s\\S]*?#EXT-X-DISCONTINUITY"
- ]
- },
- {
- "name": "♻️开源棋牌",
- "hosts": [
- "askzycdn",
- "jkunbf",
- "bfikuncdn",
- "bfaskcdn"
- ],
- "regex": [
- "#EXT-X-KEY:METHOD=NONE\r*\n*#EXTINF:5,[\\s\\S]*?#EXT-X-DISCONTINUITY",
- "#EXT-X-KEY:METHOD=AES-128,URI=\"[^\"]+\"\r*\n*#EXTINF:3.333,[\\s\\S]*?#EXT-X-DISCONTINUITY"
- ]
- },
- {
- "name": "♻️暴风",
- "hosts": [
- "bfengbf.com",
- "bfzy",
- "c1"
- ],
- "regex": [
- "#EXTINF.*?\\s+.*?adjump.*?\\.ts\\s+",
- "#EXT-X-DISCONTINUITY\r*\n*#EXTINF:3,[\\s\\S]*?#EXT-X-DISCONTINUITY"
- ]
- },
- {
- "name": "♻️农民",
- "hosts": [
- "toutiaovod.com"
- ],
- "regex": [
- "video/tos/cn"
- ]
- },
- {
- "name": "♻️火山",
- "hosts": [
- "huoshan.com"
- ],
- "regex": [
- "item_id="
- ]
- },
- {
- "name": "♻️抖音",
- "hosts": [
- "douyin.com"
- ],
- "regex": [
- "is_play_url="
- ]
- },
- {
- "name": "♻️磁力",
- "hosts": [
- "magnet"
- ],
- "regex": [
- "最 新",
- "直 播",
- "更 新"
- ]
- },
- {
- "name": "♻️饭团点击",
- "hosts": [
- "dadagui",
- "freeok",
- "dadagui"
- ],
- "script": [
- "document.querySelector(\"#playleft iframe\").contentWindow.document.querySelector(\"#start\").click();"
- ]
- },
- {
- "name": "♻️毛驴点击",
- "hosts": [
- "www.maolvys.com"
- ],
- "script": [
- "document.getElementsByClassName('swal-button swal-button--confirm')[0].click()"
- ]
- }
]
}
\ No newline at end of file
diff --git a/tvboxqq/小米/api/%E8%81%9A%E5%90%88%E7%9F%AD%E5%89%A7.js b/tvboxqq/小米/api/%E8%81%9A%E5%90%88%E7%9F%AD%E5%89%A7.js
new file mode 100644
index 0000000..c287c2f
--- /dev/null
+++ b/tvboxqq/小米/api/%E8%81%9A%E5%90%88%E7%9F%AD%E5%89%A7.js
@@ -0,0 +1,427 @@
+const aggConfig = {
+ headers: {
+ default: { 'User-Agent': 'okhttp/3.12.11', 'content-type': 'application/json; charset=utf-8' },
+ niuniu: { 'Cache-Control': 'no-cache', 'Content-Type': 'application/json;charset=UTF-8', 'User-Agent': 'okhttp/4.12.0' }
+ },
+ platform: {
+ 百度: { host: 'https://api.jkyai.top', url1: '/API/bddjss.php?name=fyclass&page=fypage', url2: '/API/bddjss.php?id=fyid', search: '/API/bddjss.php?name=**&page=fypage' },
+ 甜圈: { host: 'https://mov.cenguigui.cn', url1: '/duanju/api.php?classname', url2: '/duanju/api.php?book_id', search: '/duanju/api.php?name' },
+ 锦鲤: { host: 'https://api.jinlidj.com', search: '/api/search', url2: '/api/detail' },
+ 番茄: { host: 'https://reading.snssdk.com', url1: '/reading/bookapi/bookmall/cell/change/v', url2: 'https://fqgo.52dns.cc/catalog', search: 'https://fqgo.52dns.cc/search' },
+ 星芽: { host: 'https://app.whjzjx.cn', url1: '/cloud/v2/theater/home_page?theater_class_id', url2: '/v2/theater_parent/detail', search: '/v3/search', loginUrl: 'https://u.shytkjgs.com/user/v1/account/login' },
+ 西饭: { host: 'https://xifan-api-cn.youlishipin.com', url1: '/xifan/drama/portalPage', url2: '/xifan/drama/getDuanjuInfo', search: '/xifan/search/getSearchList' },
+ 围观: { host: 'https://api.drama.9ddm.com', url1: '/drama/home/shortVideoTags', url2: '/drama/home/shortVideoDetail', search: '/drama/home/search' },
+ 碎片: { host: 'https://free-api.bighotwind.cc', url1: '/papaya/papaya-api/theater/tags', url2: '/papaya/papaya-api/videos/info', search: '/papaya/papaya-api/videos/page' }
+ },
+ platformList: [
+ { name: '甜圈短剧', id: '甜圈' }, { name: '锦鲤短剧', id: '锦鲤' }, { name: '番茄短剧', id: '番茄' },
+ { name: '星芽短剧', id: '星芽' }, { name: '西饭短剧', id: '西饭' }, { name: '百度短剧', id: '百度' },
+ { name: '围观短剧', id: '围观' }, { name: '碎片剧场', id: '碎片' }
+ ],
+ search: { limit: 30, timeout: 6000 }
+};
+
+const ruleFilterDef = {
+ 百度: { area: '逆袭' }, 甜圈: { area: '推荐榜' }, 锦鲤: { area: '' }, 番茄: { area: 'videoseries_hot' },
+ 星芽: { area: '1' }, 西饭: { area: '' }, 围观: { area: '' }, 碎片: { area: '' }
+};
+
+let xingyaToken = '';
+let suipianToken = '';
+
+function getRandomItem(arr) { return arr[Math.floor(Math.random() * arr.length)]; }
+
+function guid() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
+ const r = Math.random() * 16 | 0;
+ return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
+ });
+}
+
+function base64Decode(str) {
+ const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
+ let output = '';
+ str = str.replace(/=+$/, '');
+ for (let i = 0; i < str.length; i += 4) {
+ const [e1, e2, e3, e4] = [str[i], str[i + 1], str[i + 2], str[i + 3]].map(c => chars.indexOf(c));
+ const chr1 = (e1 << 2) | (e2 >> 4);
+ const chr2 = ((e2 & 15) << 4) | (e3 >> 2);
+ const chr3 = ((e3 & 3) << 6) | e4;
+ output += String.fromCharCode(chr1);
+ if (e3 !== -1) output += String.fromCharCode(chr2);
+ if (e4 !== -1) output += String.fromCharCode(chr3);
+ }
+ return output;
+}
+
+function safeParse(res) {
+ if (!res) return null;
+ if (typeof res === 'string') return JSON.parse(res);
+ if (typeof res === 'object') {
+ const content = res.content || res.body || (typeof res.data === 'string' ? res.data : null);
+ return content ? JSON.parse(content) : res;
+ }
+ return null;
+}
+
+function getHeaders(platId) {
+ if (platId === '星芽' && xingyaToken) return { ...aggConfig.headers.default, authorization: xingyaToken };
+ if (platId === '碎片' && suipianToken) return { ...aggConfig.headers.default, Authorization: suipianToken };
+ return aggConfig.headers.default;
+}
+
+async function init() {
+ try {
+ const res = await req(aggConfig.platform.星芽.loginUrl, {
+ method: 'POST',
+ headers: { 'User-Agent': 'okhttp/4.10.0', platform: '1', 'Content-Type': 'application/json' },
+ body: JSON.stringify({ device: '24250683a3bdb3f118dff25ba4b1cba1a' })
+ });
+ const data = safeParse(res);
+ xingyaToken = data?.data?.token || data?.token || '';
+ } catch (e) { /* ignore */ }
+ return true;
+}
+
+async function ensureSuipianToken() {
+ if (suipianToken) return;
+ try {
+ const openId = guid();
+ const res = await req('https://free-api.bighotwind.cc/papaya/papaya-api/oauth2/uuid', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({ openId })
+ });
+ const data = safeParse(res);
+ suipianToken = data?.data?.token || '';
+ } catch (e) { suipianToken = ''; }
+}
+
+async function home() {
+ return JSON.stringify({ class: aggConfig.platformList.map(p => ({ type_name: p.name, type_id: p.id })) });
+}
+async function homeVod() { return await recommend(); }
+
+async function recommend() {
+ const randomPlat = getRandomItem(aggConfig.platformList);
+ const platId = randomPlat.id;
+ const area = ruleFilterDef[platId]?.area || '';
+ const videos = await fetchList(platId, area, 1, 10);
+ return JSON.stringify({ list: videos.slice(0, 10) });
+}
+
+// Category & Search common fetch
+async function fetchList(platId, area, page, pageSize = 24) {
+ const plat = aggConfig.platform[platId];
+ if (!plat) return [];
+
+ if (platId === '星芽' && !xingyaToken) await init();
+ if (platId === '碎片') await ensureSuipianToken();
+
+ try {
+ let data = [];
+ const headers = getHeaders(platId);
+ const host = plat.host;
+
+ switch (platId) {
+ case '百度': {
+ const res = await req(`${host}${plat.url1.replace('fyclass', area).replace('fypage', page)}`, { headers });
+ const d = safeParse(res)?.data || [];
+ data = d.map(i => ({ vod_id: `百度@${i.id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `更新至${i.totalChapterNum}集` }));
+ break;
+ }
+ case '甜圈': {
+ const res = await req(`${host}${plat.url1}=${area}&offset=${page}`, { headers });
+ const d = safeParse(res)?.data || [];
+ data = d.map(i => ({ vod_id: `甜圈@${i.book_id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: i.copyright || '' }));
+ break;
+ }
+ case '锦鲤': {
+ const res = await req(`${host}${plat.search}`, { method: 'POST', body: JSON.stringify({ page, limit: pageSize, type_id: area, keyword: '' }) });
+ const d = safeParse(res)?.data?.list || [];
+ data = d.map(i => ({ vod_id: `锦鲤@${i.vod_id}`, vod_name: i.vod_name, vod_pic: i.vod_pic, vod_remarks: `${i.vod_total}集` }));
+ break;
+ }
+ case '番茄': {
+ const sessionId = new Date().toISOString().slice(0, 16).replace(/-|T:/g, '');
+ const url = `${host}${plat.url1}?change_type=0&selected_items=${area}&tab_type=8&cell_id=6952850996422770718&version_tag=video_feed_refactor&device_id=1423244030195267&aid=1967&app_name=novelapp&ssmix=a&session_id=${sessionId}${page > 1 ? `&offset=${(page - 1) * 12}` : ''}`;
+ const res = await req(url, { headers });
+ const d = safeParse(res);
+ const items = d?.data?.cell_view?.cell_data || (Array.isArray(d?.data) ? d.data : []);
+ data = items.map(i => {
+ const v = i.video_data?.[0] || i;
+ return { vod_id: `番茄@${v.series_id || v.book_id || ''}`, vod_name: v.title, vod_pic: v.cover || v.horiz_cover, vod_remarks: v.sub_title || '' };
+ });
+ break;
+ }
+ case '星芽': {
+ const res = await req(`${host}${plat.url1}=${area}&type=1&class2_ids=0&page_num=${page}&page_size=${pageSize}`, { headers });
+ const d = safeParse(res)?.data?.list || [];
+ data = d.map(i => ({ vod_id: `星芽@${host}${plat.url2}?theater_parent_id=${i.theater.id}`, vod_name: i.theater.title, vod_pic: i.theater.cover_url, vod_remarks: `${i.theater.total}集` }));
+ break;
+ }
+ case '西饭': {
+ const [typeId] = area.split('@');
+ const url = `${host}${plat.url1}?reqType=aggregationPage&offset=${(page - 1) * 30}&categoryId=${typeId}`;
+ const res = await req(url, { headers });
+ const elements = safeParse(res)?.result?.elements || [];
+ elements.forEach(s => (s.contents || []).forEach(v => {
+ const d = v.duanjuVo;
+ data.push({ vod_id: `西饭@${d.duanjuId}#${d.source}`, vod_name: d.title, vod_pic: d.coverImageUrl, vod_remarks: `${d.total}集` });
+ }));
+ break;
+ }
+ case '围观': {
+ const res = await req(`${host}${plat.search}`, {
+ method: 'POST', headers,
+ body: JSON.stringify({ audience: "全部受众", page, pageSize, searchWord: "", subject: "全部主题" })
+ });
+ const d = safeParse(res)?.data || [];
+ data = d.map(i => ({ vod_id: `围观@${i.oneId}`, vod_name: i.title, vod_pic: i.vertPoster, vod_remarks: `集数:${i.episodeCount} 播放:${i.viewCount}` }));
+ break;
+ }
+ case '碎片': {
+ const res = await req(`${host}${plat.search}?type=5&tagId=&pageNum=${page}&pageSize=${pageSize}`, { headers });
+ const d = safeParse(res)?.list || [];
+ data = d.map(i => {
+ const id = `${i.itemId}@${i.videoCode}`;
+ const pic = `https://speed.hiknz.com/papaya/papaya-file/files/download/${i.imageKey}/${i.imageName}`;
+ return { vod_id: `碎片@${id}`, vod_name: i.title, vod_pic: pic, vod_remarks: `集数:${i.episodesMax} 播放:${i.hitShowNum}` };
+ });
+ break;
+ }
+ }
+ return data;
+ } catch { return []; }
+}
+
+async function category(tid, pg, filter, extend) {
+ const page = parseInt(pg) || 1;
+ const area = filter?.area || ruleFilterDef[tid]?.area || '';
+ const videos = await fetchList(tid, area, page);
+ return JSON.stringify({
+ list: videos,
+ page,
+ pagecount: page + 1,
+ limit: videos.length,
+ total: videos.length * (page + 1)
+ });
+}
+
+async function detail(id) {
+ const [platId, ...rest] = id.split('@');
+ const did = rest.join('@');
+ const plat = aggConfig.platform[platId];
+ if (!plat) return JSON.stringify({ list: [{ vod_id: id, vod_name: '平台不支持', vod_play_url: '' }] });
+
+ if (platId === '星芽' && !xingyaToken) await init();
+ if (platId === '碎片') await ensureSuipianToken();
+
+ try {
+ let vod = { vod_id: id, vod_name: '未知', vod_pic: '', vod_remarks: '', vod_content: '', vod_play_from: '', vod_play_url: '' };
+ const headers = getHeaders(platId);
+
+ switch (platId) {
+ case '百度': {
+ const res = safeParse(await req(`${plat.host}${plat.url2.replace('fyid', did)}`, { headers }));
+ if (res) vod = { ...vod, vod_name: res.title, vod_pic: res.data?.[0]?.cover, vod_remarks: `更新至:${res.total || 0}集`, vod_play_from: '百度短剧', vod_play_url: (res.data || []).map(i => `${i.title}$${i.video_id}`).join('#') };
+ break;
+ }
+ case '甜圈': {
+ const res = safeParse(await req(`${plat.host}${plat.url2}=${did}`, { headers }));
+ if (res) vod = { ...vod, vod_name: res.book_name || res.title, vod_pic: res.book_pic || res.cover, vod_remarks: `更新时间:${res.time}`, vod_content: res.desc, vod_play_from: '甜圈短剧', vod_play_url: (res.data || []).map(i => `${i.title || '第1集'}$${i.video_id || i.id}`).join('#') };
+ break;
+ }
+ case '锦鲤': {
+ const res = safeParse(await req(`${plat.host}${plat.url2}/${did}`, { headers }));
+ if (res?.data) {
+ const list = res.data;
+ const urls = list.player ? Object.keys(list.player).map(k => `${k}$${list.player[k]}`) : [];
+ vod = { ...vod, vod_name: list.vod_name, vod_pic: list.vod_pic, vod_remarks: list.vod_remarks, vod_play_from: '锦鲤短剧', vod_play_url: urls.join('#') };
+ }
+ break;
+ }
+ case '番茄': {
+ const res = safeParse(await req(`${plat.url2}?book_id=${did}`, { headers }));
+ if (res?.data) {
+ const b = res.data.book_info;
+ const u = (res.data.item_data_list || []).map(i => `${i.title}$${i.item_id}`).join('#');
+ vod = { ...vod, vod_name: b.book_name, vod_pic: b.thumb_url, vod_remarks: `更新至${res.data.item_data_list?.length}集`, vod_play_from: '番茄短剧', vod_play_url: u };
+ }
+ break;
+ }
+ case '星芽': {
+ const res = safeParse(await req(did, { headers }));
+ if (res?.data) {
+ const d = res.data;
+ const u = (d.theaters || []).map(i => `${i.num}$${i.son_video_url}`).join('#');
+ vod = { ...vod, vod_name: d.title, vod_pic: d.cover_url, vod_remarks: d.desc_tags + '', vod_play_from: '星芽短剧', vod_play_url: u };
+ }
+ break;
+ }
+ case '西饭': {
+ const [duanjuId, source] = did.split('#');
+ const url = `${plat.host}${plat.url2}?duanjuId=${duanjuId}&source=${source}`;
+ const res = safeParse(await req(url, { headers }));
+ if (res?.result) {
+ const d = res.result;
+ const u = (d.episodeList || []).map(e => `${e.index}$${e.playUrl}`).join('#');
+ vod = { ...vod, vod_name: d.title, vod_pic: d.coverImageUrl, vod_remarks: d.updateStatus === 'over' ? `${d.total}集 已完结` : `更新${d.total}集`, vod_play_from: '西饭短剧', vod_play_url: u };
+ }
+ break;
+ }
+ case '围观': {
+ const res = safeParse(await req(`${plat.host}${plat.url2}?oneId=${did}&page=1&pageSize=1000`, { headers }));
+ if (res?.data?.length) {
+ const d = res.data;
+ vod = { ...vod, vod_name: d[0].title, vod_pic: d[0].vertPoster, vod_remarks: `共${d.length}集`, vod_play_from: '围观短剧', vod_play_url: d.map(e => `${e.title}第${e.playOrder}集$${e.playSetting}`).join('#') };
+ }
+ break;
+ }
+ case '碎片': {
+ const [itemId, videoCode] = did.split('@');
+ const res = safeParse(await req(`${plat.host}${plat.url2}?videoCode=${videoCode}&itemId=${itemId}`, { headers }));
+ if (res) {
+ const d = res.data || res;
+ const pic = `https://speed.hiknz.com/papaya/papaya-file/files/download/${d.imageKey}/${d.imageName}`;
+ const u = (d.episodesList || []).map(e => {
+ const best = e.resolutionList?.sort((a, b) => b.resolution - a.resolution)[0];
+ return best ? `第${e.episodes}集$https://speed.hiknz.com/papaya/papaya-file/files/download/${best.fileKey}/${best.fileName}` : null;
+ }).filter(Boolean).join('#');
+ vod = { ...vod, vod_name: d.title, vod_pic: pic, vod_remarks: `共${d.episodesMax || 0}集`, vod_play_from: '碎片剧场', vod_play_url: u };
+ }
+ break;
+ }
+ }
+ return JSON.stringify({ list: [vod] });
+ } catch {
+ return JSON.stringify({ list: [{ vod_id: id, vod_name: '加载失败', vod_play_url: '' }] });
+ }
+}
+
+async function play(flag, id) {
+ const input = id;
+ const defaultRes = () => JSON.stringify({ parse: 0, url: input });
+
+ if (/百度/.test(flag)) {
+ const res = safeParse(await req(`https://api.jkyai.top/API/bddjss.php?video_id=${input}`));
+ if (res?.data?.qualities) {
+ const order = ["1080p", "sc", "sd"];
+ const qMap = { "1080p": "蓝光", "sc": "超清", "sd": "标清" };
+ const urls = [];
+ order.forEach(k => {
+ const q = res.data.qualities.find(x => x.quality === k);
+ if (q) urls.push(qMap[k], q.download_url);
+ });
+ return JSON.stringify({ parse: 0, url: urls });
+ }
+ }
+
+ if (/甜圈/.test(flag)) {
+ return JSON.stringify({ parse: 0, url: `https://mov.cenguigui.cn/duanju/api.php?video_id=${input}&type=mp4` });
+ }
+
+ if (/锦鲤/.test(flag)) {
+ try {
+ const html = await req(`${input}&auto=1`, { headers: { referer: 'https://www.jinlidj.com/' } });
+ const str = typeof html === 'string' ? html : html.content || html.body || '{}';
+ const match = str.match(/let data\s*=\s*({[^;]*});/);
+ if (match) {
+ const data = JSON.parse(match[1]);
+ if (data.url) return JSON.stringify({ parse: 0, url: data.url });
+ }
+ } catch {}
+ }
+
+ if (/番茄/.test(flag)) {
+ try {
+ const res = safeParse(await req(`https://fqgo.52dns.cc/video?item_ids=${input}`));
+ if (res?.data?.[input]?.video_model) {
+ const model = JSON.parse(res.data[input].video_model);
+ const mainUrl = model?.video_list?.video_1?.main_url;
+ if (mainUrl) return JSON.stringify({ parse: 0, url: base64Decode(mainUrl) });
+ }
+ } catch { /* ignore */ }
+ }
+
+ if (/围观/.test(flag)) {
+ try {
+ const ps = typeof input === 'string' ? JSON.parse(input) : input;
+ const urls = [];
+ if (ps?.super) urls.push("超清", ps.super);
+ if (ps?.high) urls.push("高清", ps.high);
+ if (ps?.normal) urls.push("流畅", ps.normal);
+ return JSON.stringify({ parse: 0, url: urls });
+ } catch { return defaultRes(); }
+ }
+
+ return defaultRes();
+}
+
+async function search(wd, quick, pg) {
+ const page = parseInt(pg) || 1;
+ const timeout = aggConfig.search.timeout;
+ const limit = aggConfig.search.limit;
+
+ const promises = aggConfig.platformList.map(async p => {
+ const plat = aggConfig.platform[p.id];
+ try {
+ if (p.id === '星芽' && !xingyaToken) await init();
+ if (p.id === '碎片') await ensureSuipianToken();
+
+ let res, data;
+ const headers = getHeaders(p.id);
+ const host = plat.host;
+
+ switch (p.id) {
+ case '百度':
+ res = await req(`${host}${plat.search.replace('**', encodeURIComponent(wd)).replace('fypage', page)}`, { headers, timeout });
+ data = (safeParse(res)?.data || []).map(i => ({ vod_id: `百度@${i.id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `百度短剧|更新至${i.totalChapterNum}集` }));
+ break;
+ case '甜圈':
+ res = await req(`${host}${plat.search}=${encodeURIComponent(wd)}&offset=${page}`, { headers, timeout });
+ data = (safeParse(res)?.data || []).map(i => ({ vod_id: `甜圈@${i.book_id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `甜圈短剧|${i.copyright}` }));
+ break;
+ case '锦鲤':
+ res = await req(host + plat.search, { method: 'POST', body: JSON.stringify({ page, limit, keyword: wd }), timeout });
+ data = (safeParse(res)?.data?.list || []).map(i => ({ vod_id: `锦鲤@${i.vod_id}`, vod_name: i.vod_name, vod_pic: i.vod_pic, vod_remarks: `锦鲤短剧|${i.vod_total}集` }));
+ break;
+ case '番茄':
+ res = await req(`${plat.search}?keyword=${encodeURIComponent(wd)}&page=${page}`, { headers, timeout });
+ data = (safeParse(res)?.data || []).map(i => ({ vod_id: `番茄@${i.series_id}`, vod_name: i.title, vod_pic: i.cover, vod_remarks: `番茄短剧|${i.sub_title}` }));
+ break;
+ case '星芽':
+ res = await req(host + plat.search, { method: 'POST', headers, body: JSON.stringify({ text: wd }), timeout });
+ data = (safeParse(res)?.data?.theater?.search_data || []).map(i => ({ vod_id: `星芽@${host}${plat.url2}?theater_parent_id=${i.id}`, vod_name: i.title, vod_pic: i.cover_url, vod_remarks: `星芽短剧|${i.total}集 播放:${i.play_amount_str}` }));
+ break;
+ case '碎片':
+ res = await req(`${host}${plat.search}?type=5&tagId=&pageNum=${page}&pageSize=${limit}&title=${encodeURIComponent(wd)}`, { headers, timeout });
+ data = (safeParse(res)?.list || []).map(i => {
+ const id = `${i.itemId}@${i.videoCode}`;
+ const pic = `https://speed.hiknz.com/papaya/papaya-file/files/download/${i.imageKey}/${i.imageName}`;
+ return { vod_id: `碎片@${id}`, vod_name: i.title, vod_pic: pic, vod_remarks: `碎片剧场|集数:${i.episodesMax} 播放:${i.hitShowNum}` };
+ });
+ break;
+ default:
+ return [];
+ }
+ return data.filter(v => v.vod_name?.toLowerCase().includes(wd.toLowerCase()));
+ } catch { return []; }
+ });
+
+ const results = (await Promise.allSettled(promises))
+ .filter(r => r.status === 'fulfilled')
+ .flatMap(r => r.value || []);
+
+ return JSON.stringify({
+ list: results,
+ page,
+ pagecount: page + 1,
+ limit: results.length,
+ total: results.length * (page + 1)
+ });
+}
+
+export function __jsEvalReturn() {
+ return { init, home, homeVod, category, detail, play, proxy: null, search };
+}
\ No newline at end of file
diff --git a/tvboxqq/小米/api/AppToV5.py b/tvboxqq/小米/api/AppToV5.py
new file mode 100644
index 0000000..1971ad1
--- /dev/null
+++ b/tvboxqq/小米/api/AppToV5.py
@@ -0,0 +1,225 @@
+import sys, uuid, json
+from base.spider import Spider
+sys.path.append('..')
+
+class Spider(Spider):
+ local_uuid = ''
+ config = ''
+ parsing_config = []
+ token = ''
+ headers = {
+ 'User-Agent': "Dart/2.19 (dart:io)",
+ 'Accept-Encoding': "gzip",
+ 'appto-local-uuid': local_uuid,
+ 'token': ''
+ }
+ line_order = []
+ block_keywords = []
+
+ def init(self, extend=""):
+ try:
+ self.token = ''
+ if extend.startswith('{') and extend.endswith('}'):
+ ext_dict = json.loads(extend.strip())
+ self.host = ext_dict.get('host', '').strip()
+ self.token = ext_dict.get('token', '').strip()
+ line_order_input = ext_dict.get('line_order', '')
+
+ line_order_str = ','.join(line_order_input) if isinstance(line_order_input, list) else str(line_order_input).strip()
+
+ if '@' in line_order_str:
+ order_part, block_part = line_order_str.split('@', 1)
+ self.line_order = list({kw.strip().lower() for kw in order_part.split(',') if kw.strip()})
+ self.block_keywords = list({kw.strip().lower() for kw in block_part.split(',') if kw.strip()})
+ else:
+ self.line_order = list({kw.strip().lower() for kw in line_order_str.split(',') if kw.strip()})
+ self.block_keywords = []
+ else:
+ self.host = extend.strip()
+ self.line_order = []
+ self.block_keywords = []
+
+ if not self.host.startswith('http'):
+ return {}
+ self.local_uuid = str(uuid.uuid4())
+ self.headers['appto-local-uuid'] = self.local_uuid
+ self.headers['token'] = self.token
+ response = self.fetch(f'{self.host}/apptov5/v1/config/get?p=android&__platform=android', headers=self.headers).json()
+ config = response['data']
+ self.config = config
+ parsing_conf = config['get_parsing']['lists']
+ parsing_config = {}
+ for i in parsing_conf:
+ if len(i['config']) != 0:
+ label = []
+ for j in i['config']:
+ if j['type'] == 'json':
+ label.append(j['label'])
+ parsing_config.update({i['key']: label})
+ self.parsing_config = parsing_config
+ except Exception as e:
+ print(f'初始化异常:{e}')
+ return {}
+
+ def detailContent(self, ids):
+ response = self.fetch(f"{self.host}/apptov5/v1/vod/getVod?id={ids[0]}", headers=self.headers).json()
+ data3 = response['data']
+ videos = []
+ vod_play_url = ''
+ vod_play_from = ''
+
+ vod_play_list = data3['vod_play_list']
+
+ if self.block_keywords:
+ filtered_list = []
+ for play_item in vod_play_list:
+ show_val = play_item['player_info'].get('show', '').strip().lower()
+ if not any(kw in show_val for kw in self.block_keywords):
+ filtered_list.append(play_item)
+ vod_play_list = filtered_list
+
+ if self.line_order:
+ def get_priority(play_item):
+ show_val = play_item['player_info'].get('show', '').strip().lower()
+ for idx, kw in enumerate(self.line_order):
+ if kw in show_val:
+ return idx
+ return float('inf')
+
+ vod_play_list = sorted(vod_play_list, key=get_priority, reverse=False)
+
+ for i in vod_play_list:
+ play_url = ''
+ line_name = i['player_info'].get('show', '未知线路')
+ from_value = i['player_info'].get('from', '')
+ display_name = f"{line_name}({from_value})" if from_value else line_name
+
+ for j in i['urls']:
+ play_url += f"{j['name']}${i['player_info']['from']}@{j['url']}#"
+ vod_play_from += display_name + '$$$'
+ vod_play_url += play_url.rstrip('#') + '$$$'
+
+ vod_play_url = vod_play_url.rstrip('$$$')
+ vod_play_from = vod_play_from.rstrip('$$$')
+ videos.append({
+ 'vod_id': data3.get('vod_id'),
+ 'vod_name': data3.get('vod_name'),
+ 'vod_content': data3.get('vod_content', ''),
+ 'vod_remarks': data3.get('vod_remarks'),
+ 'vod_director': data3.get('vod_director'),
+ 'vod_actor': data3.get('vod_actor'),
+ 'vod_year': data3.get('vod_year'),
+ 'vod_area': data3.get('vod_area'),
+ 'vod_play_from': vod_play_from,
+ 'vod_play_url': vod_play_url
+ })
+ return {'list': videos}
+
+ def searchContent(self, key, quick, pg='1'):
+ url = f"{self.host}/apptov5/v1/search/lists?wd={key}&page={pg}&type=&__platform=android"
+ response = self.fetch(url, headers=self.headers).json()
+ data = response['data']['data']
+ for i in data:
+ if i.get('vod_pic', '').startswith('mac://'):
+ i['vod_pic'] = i['vod_pic'].replace('mac://', 'http://', 1)
+ return {'list': data, 'page': pg, 'total': response['data']['total']}
+
+ def playerContent(self, flag, id, vipflags):
+ default_ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
+ parsing_config = self.parsing_config
+ parts = id.split('@')
+ if len(parts) != 2:
+ return {'parse': 0, 'url': id, 'header': {'User-Agent': default_ua}}
+ playfrom, rawurl = parts
+ label_list = parsing_config.get(playfrom)
+ if not label_list:
+ return {'parse': 0, 'url': rawurl, 'header': {'User-Agent': default_ua}}
+ result = {'parse': 1, 'url': rawurl, 'header': {'User-Agent': default_ua}}
+ for label in label_list:
+ payload = {
+ 'play_url': rawurl,
+ 'label': label,
+ 'key': playfrom
+ }
+ try:
+ response = self.post(
+ f"{self.host}/apptov5/v1/parsing/proxy?__platform=android",
+ data=payload,
+ headers=self.headers
+ ).json()
+ except Exception as e:
+ print(f"请求异常: {e}")
+ continue
+ if not isinstance(response, dict):
+ continue
+ if response.get('code') == 422:
+ continue
+ data = response.get('data')
+ if not isinstance(data, dict):
+ continue
+ url = data.get('url')
+ if not url:
+ continue
+ ua = data.get('UA') or data.get('UserAgent') or default_ua
+ result = {
+ 'parse': 0,
+ 'url': url,
+ 'header': {'User-Agent': ua}
+ }
+ break
+ return result
+
+ def homeContent(self, filter):
+ config = self.config
+ if not config:
+ return {}
+ home_cate = config['get_home_cate']
+ classes = []
+ for i in home_cate:
+ if isinstance(i.get('extend', []), dict):
+ classes.append({'type_id': i['cate'], 'type_name': i['title']})
+ return {'class': classes}
+
+ def homeVideoContent(self):
+ response = self.fetch(f'{self.host}/apptov5/v1/home/data?id=1&mold=1&__platform=android', headers=self.headers).json()
+ data = response['data']
+ vod_list = []
+ for i in data['sections']:
+ for j in i['items']:
+ vod_pic = j.get('vod_pic', '')
+ if vod_pic.startswith('mac://'):
+ vod_pic = vod_pic.replace('mac://', 'http://', 1)
+ vod_list.append({
+ "vod_id": j.get('vod_id'),
+ "vod_name": j.get('vod_name'),
+ "vod_pic": vod_pic,
+ "vod_remarks": j.get('vod_remarks')
+ })
+ return {'list': vod_list}
+
+ def categoryContent(self, tid, pg, filter, extend):
+ response = self.fetch(
+ f"{self.host}/apptov5/v1/vod/lists?area={extend.get('area','')}&lang={extend.get('lang','')}&year={extend.get('year','')}&order={extend.get('sort','time')}&type_id={tid}&type_name=&page={pg}&pageSize=21&__platform=android",
+ headers=self.headers
+ ).json()
+ data = response['data']
+ data2 = data['data']
+ for i in data['data']:
+ if i.get('vod_pic','').startswith('mac://'):
+ i['vod_pic'] = i['vod_pic'].replace('mac://', 'http://', 1)
+ return {'list': data2, 'page': pg, 'total': data['total']}
+
+ def getName(self):
+ pass
+
+ def isVideoFormat(self, url):
+ pass
+
+ def manualVideoCheck(self):
+ pass
+
+ def destroy(self):
+ pass
+
+ def localProxy(self, param):
+ pass
diff --git a/tvboxqq/小米/api/AppV2.py b/tvboxqq/小米/api/AppV2.py
index f6546f6..4127782 100644
--- a/tvboxqq/小米/api/AppV2.py
+++ b/tvboxqq/小米/api/AppV2.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
-# by @嗷呜
-# 基于原作者 @嗷呜 版本修改,仅可用于个人学习用途
+# 基于原作者 @嗷呜 版本修改
+# 本资源来源于互联网公开渠道,仅可用于个人学习爬虫技术。
+# 严禁将其用于任何商业用途,下载后请于 24 小时内删除,搜索结果均来自源站,本人不承担任何责任。
from base.spider import Spider
from urllib.parse import urlparse, urlencode
@@ -9,7 +10,11 @@ urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
sys.path.append('..')
class Spider(Spider):
- headers,api,apisignkey,datasignkey = {'User-Agent': 'okhttp/4.12.0',},'', '' , ''
+ api,apisignkey,datasignkey,detail_type,search_data = '', '' , '','',''
+
+ headers = {
+ 'User-Agent': 'okhttp/4.12.0',
+ }
def init(self, extend=""):
ext = extend.rstrip()
@@ -18,6 +23,8 @@ class Spider(Spider):
else:
arr = json.loads(ext)
self.api = arr['api'].rstrip('/')
+ if self.api.endswith('v1.vod'):
+ self.detail_type = arr.get('detail_type','')
self.apisignkey = arr.get('apisignkey', '')
if self.apisignkey:
self.datasignkey = arr.get('datasignkey', '6QQNUsP3PkD2ajJCPCY8')
@@ -27,7 +34,8 @@ class Spider(Spider):
path = '/types'
if self.apisignkey and self.datasignkey:
path = self.datasign(path)
- data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).json()
+ data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).text
+ data = json.loads(data[1:] if data.startswith('\ufeff') else data)
data = data['data']
else:
data = self.fetch(f"{self.api}/nav?token=", headers=self.headers, verify=False).json()
@@ -59,7 +67,8 @@ class Spider(Spider):
if self.apisignkey and self.datasignkey:
keytime = self.keytime()
path += self.datasign(f'?apikey={self.apikey()}&keytime={keytime}',keytime)
- data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).json()
+ data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).text
+ data = json.loads(data[1:] if data.startswith('\ufeff') else data)
data = data['data']
else:
data = self.fetch(f"{self.api}/index_video?token=", headers=self.headers, verify=False).json()
@@ -78,7 +87,8 @@ class Spider(Spider):
if self.apisignkey and self.datasignkey:
keytime = self.keytime()
path = self.datasign(f'{path}&apikey={self.apikey()}&keytime={keytime}' ,keytime)
- data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).json()
+ data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).text
+ data = json.loads(data[1:] if data.startswith('\ufeff') else data)
data = data['data']
else:
params = {'tid': tid, 'class': extend.get('class', ''), 'area': extend.get('area', ''), 'lang': extend.get('lang', ''), 'year': extend.get('year', ''), 'limit': '18', 'pg': pg}
@@ -95,7 +105,10 @@ class Spider(Spider):
path = self.datasign(f'{path}&apikey={self.apikey()}&keytime={keytime}',keytime)
else:
path = f"/search?text={key}&pg={pg}"
- data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).json()
+ data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).text
+ data = json.loads(data[1:] if data.startswith('\ufeff') else data)
+ if self.api.endswith('v1.vod') and self.detail_type == 'search':
+ self.search_data = data
data2 = data.get('list',data.get('data',[]))
if 'type' in data2:
for item in data2:
@@ -105,73 +118,88 @@ class Spider(Spider):
return data2
def detailContent(self, ids):
- if self.api.endswith('v1.vod'):
- path = f'/detail?vod_id={ids[0]}&rel_limit=10'
- if self.apisignkey and self.datasignkey:
- keytime = self.keytime()
- path = self.datasign(f'{path}&apikey={self.apikey()}&keytime={keytime}',keytime)
- data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).json()
+ if self.detail_type == 'search':
+ for i in self.search_data['data']['list']:
+ if str(i['vod_id']) == str(ids[0]):
+ data = i
+ break
else:
- data = self.fetch(f"{self.api}/video_detail?id={ids[0]}", headers=self.headers, verify=False).json()
- data = data['data']
+ if self.api.endswith('v1.vod'):
+ path = f'/detail?vod_id={ids[0]}&rel_limit=10'
+ if self.apisignkey and self.datasignkey:
+ keytime = self.keytime()
+ path = self.datasign(f'{path}&apikey={self.apikey()}&keytime={keytime}',keytime)
+ else:
+ path = f'/video_detail?id={ids[0]}'
+ data = self.fetch(f"{self.api}{path}", headers=self.headers, verify=False).text
+ data = json.loads(data[1:] if data.startswith('\ufeff') else data)
+ data = data['data']
if 'vod_info' in data:
data = data['vod_info']
- show = ''
- vod_play_url = ''
+ show = []
+ vod_play_url = []
if 'vod_url_with_player' in data:
for i in data['vod_url_with_player']:
- show += i.get('name', '') + '$$$'
+ if i['code'] == i['name']:
+ show.append(i['name'])
+ else:
+ show.append(f"{i['name']}\u2005({i['code']})")
parse_api = i.get('parse_api','')
if parse_api and parse_api.startswith('http'):
url = i.get('url','')
if url:
url2 = '#'.join([i+ '@' + parse_api for i in url.split('#')])
- vod_play_url += url2 + '$$$'
+ vod_play_url.append(url2)
else:
- vod_play_url += i.get('url','') + '$$$'
+ vod_play_url.append(i.get('url', ''))
data.pop('vod_url_with_player')
if 'vod_play_list' in data:
- for i in data['vod_play_list']:
+ vod_play_list = data['vod_play_list']
+ for i in vod_play_list.values() if isinstance(vod_play_list, dict) else vod_play_list:
parses = ''
player_info = i['player_info']
- show += f"{player_info['show']}({i['from']})$$$"
- parse = player_info.get('parse','')
- parse2 = player_info.get('parse2','')
+ if player_info['show'] == i['from']:
+ show.append(player_info['show'])
+ else:
+ show.append(f"{player_info['show']}\u2005({i['from']})")
+ parse = player_info.get('parse','').strip()
+ parse2 = player_info.get('parse2','').strip()
if 'parse' in player_info and parse.startswith('http'):
parses += parse + ','
if 'parse2' in player_info and parse2.startswith('http') and parse2 != parse:
parses += parse2
parses = parses.rstrip(',')
url = ''
- for j in i['urls']:
+ urls = i['urls']
+ for j in urls.values() if isinstance(urls, dict) else urls:
if parse:
url += f"{j['name']}${j['url']}@{parses}#"
else:
url += f"{j['name']}${j['url']}#"
url = url.rstrip('#')
- vod_play_url += url + '$$$'
+ vod_play_url.append(url)
if 'vod_play_list' in data:
data.pop('vod_play_list')
if 'rel_vods' in data:
data.pop('rel_vods')
if 'type' in data:
data.pop('type')
- data['vod_play_from'] = show.rstrip('$$$')
- data['vod_play_url'] = vod_play_url.rstrip('$$$')
+ if show:
+ data['vod_play_from'] = '$$$'.join(show)
+ if vod_play_url:
+ data['vod_play_url'] = '$$$'.join(vod_play_url)
return {'list': [data]}
def playerContent(self, flag, id, vipFlags):
video_pattern = re.compile(r'https?:\/\/.*\.(?:m3u8|mp4|flv)')
- jx, url, ua = 0, '', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36'
+ jx,url,ua = 0,'','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36'
if '@' in id:
rawurl, jxapi = id.split('@', 1)
- if ',' in jxapi:
- jxapis = jxapi.split(',', 1)
- else:
- jxapis = [jxapi]
+ jxapis = jxapi.split(',', 1) if ',' in jxapi else [jxapi]
for jxapi_ in jxapis:
try:
- res = self.fetch(f"{jxapi_}{rawurl}", headers=self.headers, timeout=10, verify=False).json()
+ res = self.fetch(f"{jxapi_}{rawurl}", headers=self.headers, timeout=10, verify=False).text
+ res = json.loads(res[1:] if res.startswith('\ufeff') else res)
url = res.get('url', '')
if url.startswith('http'):
jxua = res.get('ua')
@@ -189,8 +217,8 @@ class Spider(Spider):
url = id
jx = 0 if video_pattern.match(id) else 1
if url.startswith('NBY'):
- jx, url = 0, ''
- return {'jx': jx, 'parse': 0, 'url': url, 'header': {'User-Agent': ua}}
+ jx, url = 0,''
+ return {'jx': jx,'parse': 0,'url': url,'header': {'User-Agent': ua}}
def keytime(self):
return str(int(datetime.datetime.now().timestamp()))
@@ -205,12 +233,10 @@ class Spider(Spider):
year = str(date.year)
hour = str(date.hour)
minute = str(date.minute)
-
if len(hour) < 2:
hour = "0" + hour
if len(minute) < 2:
minute = "0" + minute
-
str_value = self.apisignkey
sign_str = f"{year}:{hour}:{year}:{minute}:{str_value}"
md5_hash = self.md5(sign_str)
diff --git a/tvboxqq/小米/api/fox.js b/tvboxqq/小米/api/fox.js
new file mode 100644
index 0000000..5b62127
--- /dev/null
+++ b/tvboxqq/小米/api/fox.js
@@ -0,0 +1,663 @@
+/*小心儿悠悠
+配置说明:
+{
+ "host": "https://xxx", // 必填,站点地址
+ "ver": 1, // 可选,API版本:1或2,默认1
+ "cms": "", // 可选,CMS地址
+ "from": "", // 可选,搜索来源
+ "category": 1, // 可选,分类模式:0-无分类 1-普通 2-搜索
+ "timeout": 5, // 可选,超时时间(秒),默认5
+ "custom_first": 0, // 可选,自定义解析优先:0-否 1-是
+ "source_order": ["线路A", "线路B"], // 可选,线路排序
+
+ // UA配置//可选,特殊站点需要自定义
+ "ua": {
+ "host": "UA字符串", // 主机检测UA
+ "config": "UA字符串", // 配置获取UA
+ "home": "UA字符串", // 首页UA
+ "category": "UA字符串", // 分类页UA
+ "search": "UA字符串", // 搜索页UA
+ "parse": "UA字符串", // 解析UA
+ "player": "UA字符串" // 播放UA
+ },
+
+ // 解析配置
+ "parse": {
+ "线路名": "解析地址或parse:前缀"
+ }
+}
+
+使用示例:
+{
+ "host": "https://xxx",
+ "ver": 1,
+ "source_order": ["超清", "高清", "标清"],
+ "ua": {
+ "home": "Mozilla/5.0...",
+ "player": "Mozilla/5.0..."
+ },
+ "parse": {
+ "超清": "https://jx.xxx/?url=",
+ "高清": "parse:https://parse.xxx.com/"
+ }
+}
+*/
+
+import { Crypto, _ } from 'assets://js/lib/cat.js';
+
+const MOBILE_UA = "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36";
+const TV_UA = "Dalvik/2.1.0 (Linux; U; Android 9; Pixel Build/PI)";
+var def_header = {'User-Agent': TV_UA};
+var cachedPlayUrls = {};
+var HOST;
+
+var foxConfig = {
+ host: '',
+ headers: {'User-Agent': TV_UA},
+ timeout: 5000,
+ ver: 1,
+ uas: {},
+ parses: {},
+ custom_parses: {},
+ froms: '',
+ detail: [],
+ custom_first: 0,
+ category: 1,
+ cms: '',
+ sourceOrder: []
+};
+
+var recommendCache = {
+ data: [],
+ timestamp: 0,
+ cacheTime: 30 * 60 * 1000
+};
+
+function decodeBase64(str) {
+ try {
+ return Crypto.enc.Utf8.stringify(Crypto.enc.Base64.parse(str));
+ } catch (e) {
+ return str;
+ }
+}
+
+function request(reqUrl, header, data, method) {
+ try {
+ let optObj = {
+ headers: header || foxConfig.headers,
+ method: method || 'get',
+ timeout: foxConfig.timeout,
+ };
+ if (method === 'post') {
+ optObj.data = data || {};
+ optObj.postType = 'form';
+ }
+ let res = req(reqUrl, optObj);
+ return res.content;
+ } catch (e) {
+ throw new Error('请求失败: ' + reqUrl);
+ }
+}
+
+function getdata(url, data, method) {
+ try {
+ url = /^http/.test(url) ? url : `${HOST}${url}`;
+ let res = request(url, foxConfig.headers, data, method);
+ return JSON.parse(res);
+ } catch (e) {
+ return {};
+ }
+}
+
+function sortSources(play_from, play_urls) {
+ if (!foxConfig.sourceOrder || foxConfig.sourceOrder.length === 0) {
+ return { play_from, play_urls };
+ }
+
+ let sourceMap = new Map();
+ for (let i = 0; i < play_from.length; i++) {
+ if (i < play_urls.length) {
+ sourceMap.set(play_from[i], {
+ originalName: play_from[i],
+ url: play_urls[i],
+ index: i
+ });
+ }
+ }
+
+ let sorted_play_from = [];
+ let sorted_play_urls = [];
+
+ for (let sourceName of foxConfig.sourceOrder) {
+ for (let [key, source] of sourceMap) {
+ if (key.includes(sourceName)) {
+ sorted_play_from.push(source.originalName);
+ sorted_play_urls.push(source.url);
+ sourceMap.delete(key);
+ break;
+ }
+ }
+ }
+
+ for (let [key, source] of sourceMap) {
+ sorted_play_from.push(source.originalName);
+ sorted_play_urls.push(source.url);
+ }
+
+ return {
+ play_from: sorted_play_from,
+ play_urls: sorted_play_urls
+ };
+}
+
+async function getRecommendVideos() {
+ try {
+ const now = Date.now();
+ if (recommendCache.data.length > 0 && now - recommendCache.timestamp < recommendCache.cacheTime) {
+ return recommendCache.data;
+ }
+
+ let headers = Object.assign({}, foxConfig.headers);
+ let recommend_ua = foxConfig.uas.home || foxConfig.uas.homeVideo;
+ if (recommend_ua) headers['User-Agent'] = recommend_ua;
+
+ let videos = [];
+ let res = request(HOST + '/api.php/Appfox/vodList?sort=热门&page=1&limit=12', headers);
+ let response = JSON.parse(res);
+
+ if (response.data && response.data.list) {
+ videos = response.data.list.slice(0, 12);
+ } else if (response.data && response.data.recommend_list) {
+ videos = response.data.recommend_list.slice(0, 12);
+ } else if (Array.isArray(response.data)) {
+ videos = response.data.slice(0, 12);
+ }
+
+ if (videos.length > 0) {
+ recommendCache.data = videos;
+ recommendCache.timestamp = now;
+ }
+
+ return videos;
+ } catch (e) {
+ return [];
+ }
+}
+
+async function init(cfg) {
+ try {
+ if (!cfg.ext) throw new Error('配置参数为空');
+
+ let extValue = cfg.ext;
+
+ if (typeof extValue === 'string') {
+ try {
+ extValue = decodeBase64(extValue);
+ } catch (e) {}
+
+ try {
+ extValue = JSON.parse(extValue);
+ } catch (e) {
+ if (extValue.startsWith('http')) {
+ extValue = {host: extValue};
+ } else {
+ throw new Error('配置格式错误');
+ }
+ }
+ }
+
+ let host = extValue.host || '';
+ if (!host) throw new Error('主机地址为空');
+
+ if (!host.match(/^https?:\/\/[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(:\d+)?(\/)?$/)) {
+ let headers = Object.assign({}, foxConfig.headers);
+ let custom_ua = foxConfig.uas.host;
+ if (custom_ua) headers['User-Agent'] = custom_ua;
+
+ let res = request(host, headers);
+ let result = JSON.parse(res);
+ host = result.apiDomain;
+ }
+
+ foxConfig.host = host.replace(/\/+$/, '');
+ HOST = foxConfig.host;
+
+ foxConfig.ver = extValue.ver === 2 ? 2 : 1;
+ foxConfig.cms = extValue.cms || '';
+ foxConfig.froms = extValue.from || '';
+ foxConfig.custom_parses = extValue.parse || {};
+ foxConfig.custom_first = extValue.custom_first || 0;
+ foxConfig.category = extValue.category || 1;
+ foxConfig.timeout = (extValue.timeout || 5) * 1000;
+ foxConfig.sourceOrder = extValue.source_order || [];
+
+ let ua = extValue.ua;
+ if (ua) {
+ if (typeof ua === 'string') {
+ foxConfig.headers['User-Agent'] = ua;
+ } else if (typeof ua === 'object') {
+ foxConfig.uas = {
+ host: ua.host,
+ config: ua.config,
+ home: ua.home,
+ category: ua.category,
+ search: ua.search,
+ parse: ua.parse,
+ player: ua.player || 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
+ };
+ }
+ }
+
+ if (foxConfig.cms) {
+ let cms = foxConfig.cms.replace(/\/+$/, '');
+ if (cms.match(/^https?:\/\/.*\/vod/)) {
+ cms += cms.includes('?') ? '&' : '?';
+ foxConfig.cms = cms;
+ }
+ }
+
+ } catch (e) {
+ throw new Error('初始化失败: ' + e.message);
+ }
+}
+
+async function home(filter) {
+ try {
+ if (!HOST || foxConfig.category === 0) return '{"class":[]}';
+
+ let headers = Object.assign({}, foxConfig.headers);
+ let custom_ua = foxConfig.uas.home;
+ if (custom_ua) headers['User-Agent'] = custom_ua;
+
+ if (foxConfig.cms && foxConfig.category !== 2) {
+ let class_url = foxConfig.cms.replace(/&ac=videolist|ac=videolist&|ac=videolist|ac=detail/g, '');
+ if (!class_url.includes('ac=')) class_url += 'ac=list';
+
+ let classRes = request(class_url, headers);
+ let classes = JSON.parse(classRes).class;
+
+ let recommendVideos = await getRecommendVideos();
+ let dataRes = request(foxConfig.cms.replace(/&$/, ''), headers);
+ let data = JSON.parse(dataRes);
+ data.class = classes;
+
+ if (recommendVideos.length > 0) {
+ data.recommend = recommendVideos;
+ }
+
+ return JSON.stringify(data);
+ } else {
+ let res = request(HOST + '/api.php/Appfox/init', headers);
+ let response = JSON.parse(res);
+ let classes = [];
+ for (let i of response.data.type_list) {
+ classes.push({type_id: i.type_id, type_name: i.type_name});
+ }
+
+ let recommendVideos = await getRecommendVideos();
+ let result = {class: classes};
+
+ if (recommendVideos.length > 0) {
+ result.recommend = recommendVideos;
+ }
+
+ return JSON.stringify(result);
+ }
+ } catch (e) {
+ return '{"class":[]}';
+ }
+}
+
+async function homeVod() {
+ try {
+ if (!HOST || foxConfig.category === 0) return '{"list":[]}';
+
+ if (foxConfig.cms && foxConfig.category !== 2) {
+ let headers = Object.assign({}, foxConfig.headers);
+ let custom_ua = foxConfig.uas.homeVideo || foxConfig.uas.home;
+ if (custom_ua) headers['User-Agent'] = custom_ua;
+
+ let res = request(foxConfig.cms.replace(/&$/, ''), headers);
+ let data = JSON.parse(res);
+
+ if (!data.list || data.list.length === 0) {
+ let recommendVideos = await getRecommendVideos();
+ if (recommendVideos.length > 0) {
+ data.list = recommendVideos;
+ }
+ }
+
+ if (foxConfig.category === 2 && data.list) {
+ for (let i of data.list) {
+ i.vod_id = 'msearch:' + i.vod_id;
+ }
+ }
+ return JSON.stringify(data);
+ }
+
+ let headers = Object.assign({}, foxConfig.headers);
+ let custom_ua = foxConfig.uas.homeVideo || foxConfig.uas.home;
+ if (custom_ua) headers['User-Agent'] = custom_ua;
+
+ let path = foxConfig.ver === 2 ? 'nav' : 'index';
+ let res = request(HOST + '/api.php/Appfox/' + path, headers);
+ let response = JSON.parse(res);
+ let videos = [];
+
+ if (foxConfig.ver === 2) {
+ let navigationId = '';
+ for (let i of response.data) {
+ if (i.navigationId) {
+ navigationId = i.navigationId;
+ break;
+ }
+ }
+ if (navigationId) {
+ let navRes = request(HOST + '/api.php/Appfox/nav_video?id=' + navigationId, headers);
+ let navData = JSON.parse(navRes);
+ for (let item of navData.data) {
+ if (item.videos) {
+ videos = videos.concat(item.videos);
+ }
+ }
+ }
+ } else {
+ for (let item of response.data) {
+ if (item.banner) videos = videos.concat(item.banner);
+ if (item.categories) {
+ for (let cat of item.categories) {
+ if (cat.videos) videos = videos.concat(cat.videos);
+ }
+ }
+ }
+ }
+
+ if (videos.length === 0) {
+ videos = await getRecommendVideos();
+ }
+
+ if (foxConfig.category === 2) {
+ for (let i of videos) {
+ i.vod_id = 'msearch:' + i.vod_id;
+ }
+ }
+ return JSON.stringify({list: videos.slice(0, 20)});
+ } catch (e) {
+ try {
+ let recommendVideos = await getRecommendVideos();
+ return JSON.stringify({list: recommendVideos});
+ } catch (e2) {
+ return '{"list":[]}';
+ }
+ }
+}
+
+async function category(tid, pg, filter, extend) {
+ try {
+ if (!HOST) return '{"list":[]}';
+
+ pg = parseInt(pg) || 1;
+ let headers = Object.assign({}, foxConfig.headers);
+ let category_ua = foxConfig.uas.category;
+ if (category_ua) headers['User-Agent'] = category_ua;
+
+ if (foxConfig.cms && foxConfig.category !== 2) {
+ let res = request(foxConfig.cms + 'pg=' + pg + '&t=' + tid, headers);
+ let data = JSON.parse(res);
+ if (foxConfig.category === 2 && data.list) {
+ for (let i of data.list) {
+ i.vod_id = 'msearch:' + i.vod_id;
+ }
+ }
+ return JSON.stringify(data);
+ } else {
+ let res = request(HOST + '/api.php/Appfox/vodList?type_id=' + tid + '&page=' + pg, headers);
+ let response = JSON.parse(res);
+ let videos = response.data?.list || response.data?.recommend_list || [];
+ let data = {list: videos};
+ if (foxConfig.category === 2) {
+ for (let i of data.list) {
+ i.vod_id = 'msearch:' + i.vod_id;
+ }
+ }
+ return JSON.stringify(data);
+ }
+ } catch (e) {
+ return '{"list":[]}';
+ }
+}
+
+async function search(wd, quick, pg) {
+ try {
+ if (!HOST) return '{"list":[]}';
+
+ pg = parseInt(pg) || 1;
+ let headers = Object.assign({}, foxConfig.headers);
+ let search_ua = foxConfig.uas.search;
+ if (search_ua) headers['User-Agent'] = search_ua;
+
+ if (foxConfig.cms) {
+ let cms = foxConfig.cms.split('?')[0] + '?';
+ let res = request(cms + 'ac=detail&wd=' + encodeURIComponent(wd), headers);
+ let response = JSON.parse(res);
+ foxConfig.detail = response.list || [];
+ return JSON.stringify(response);
+ } else {
+ let path = HOST + '/api.php/Appfox/vod?ac=detail&wd=' + encodeURIComponent(wd);
+ if (foxConfig.froms) path += '&from=' + foxConfig.froms;
+ let res = request(path, headers);
+ let response = JSON.parse(res);
+ foxConfig.detail = response.list || [];
+ return JSON.stringify(response);
+ }
+ } catch (e) {
+ return '{"list":[]}';
+ }
+}
+
+async function detail(id) {
+ try {
+ let headers = Object.assign({}, foxConfig.headers);
+ let detail_ua = foxConfig.uas.detail || foxConfig.uas.search;
+ if (detail_ua) headers['User-Agent'] = detail_ua;
+
+ let video = null;
+ for (let i of foxConfig.detail) {
+ if (String(i.vod_id) === String(id)) {
+ video = Object.assign({}, i);
+ break;
+ }
+ }
+
+ if (!video) {
+ if (foxConfig.cms) {
+ let cms = foxConfig.cms.split('?')[0] + '?';
+ let res = request(cms + 'ac=detail&ids=' + id, headers);
+ let response = JSON.parse(res);
+ video = response.list?.[0] || null;
+ } else {
+ let res = request(HOST + '/api.php/Appfox/vod?ac=detail&ids=' + id, headers);
+ let response = JSON.parse(res);
+ video = response.list?.[0] || null;
+ }
+ }
+
+ if (!video) return '{"list":[]}';
+
+ let play_from = video.vod_play_from ? video.vod_play_from.split('$$$') : [];
+ let play_urls = video.vod_play_url ? video.vod_play_url.split('$$$') : [];
+
+ let sortedSources = sortSources(play_from, play_urls);
+ play_from = sortedSources.play_from;
+ play_urls = sortedSources.play_urls;
+
+ try {
+ let config_headers = Object.assign({}, foxConfig.headers);
+ let custom_ua = foxConfig.uas.config;
+ if (custom_ua) config_headers['User-Agent'] = custom_ua;
+
+ let res = request(HOST + '/api.php/Appfox/config', config_headers);
+ let config_response = JSON.parse(res);
+ let player_list = config_response.data?.playerList || [];
+ let jiexi_data_list = config_response.data?.jiexiDataList || [];
+
+ let player_map = {};
+ for (let player of player_list) {
+ player_map[player.playerCode] = player;
+ }
+
+ let processed_play_urls = [];
+ for (let idx = 0; idx < play_from.length; idx++) {
+ let play_code = play_from[idx];
+ if (player_map[play_code]) {
+ let player_info = player_map[play_code];
+ if (player_info.playerCode !== player_info.playerName) {
+ play_from[idx] = player_info.playerName + '\u2005(' + play_code + ')';
+ }
+ }
+ if (idx < play_urls.length) {
+ let urls = play_urls[idx].split('#');
+ let processed_urls = [];
+ for (let url of urls) {
+ let parts = url.split('$');
+ if (parts.length >= 2) {
+ parts[1] = play_code + '@' + parts[1];
+ processed_urls.push(parts.join('$'));
+ } else {
+ processed_urls.push(url);
+ }
+ }
+ processed_play_urls.push(processed_urls.join('#'));
+ }
+ }
+
+ video.vod_play_from = play_from.join('$$$');
+ video.vod_play_url = processed_play_urls.join('$$$');
+
+ foxConfig.parses = {};
+ for (let p of jiexi_data_list) {
+ if (p.url && p.url.startsWith('http')) {
+ foxConfig.parses[p.playerCode] = p.url;
+ }
+ }
+ } catch (e) {
+ }
+
+ return JSON.stringify({list: [video]});
+ } catch (e) {
+ return '{"list":[]}';
+ }
+}
+
+async function play(flag, id, flags) {
+ try {
+ let parts = id.split('@', 2);
+ if (parts.length < 2) {
+ throw new Error('ID格式错误');
+ }
+ let play_from = parts[0];
+ let raw_url = parts[1];
+
+ let jx = 0, parse = 0, parsed = 0;
+ let headers = Object.assign({}, foxConfig.headers);
+ let parse_ua = foxConfig.uas.parse;
+ if (parse_ua) headers['User-Agent'] = parse_ua;
+
+ let player_ua = foxConfig.uas.player || MOBILE_UA;
+ let url = raw_url;
+
+ let parses_main = [];
+ if (foxConfig.custom_first === 1) {
+ parses_main.push(foxConfig.custom_parses);
+ parses_main.push(foxConfig.parses);
+ } else {
+ parses_main.push(foxConfig.parses);
+ parses_main.push(foxConfig.custom_parses);
+ }
+
+ outer: for (let parses2 of parses_main) {
+ if (!parsed && !url.match(/https?:\/\/.*\.(m3u8|mp4|flv|mkv)/)) {
+ for (let key in parses2) {
+ if (!play_from.includes(key)) continue;
+
+ let parsers = parses2[key];
+ if (Array.isArray(parsers)) {
+ for (let parser of parsers) {
+ if (parser && parser.startsWith('parse:')) {
+ url = parser.split('parse:')[1] + raw_url;
+ jx = 0;
+ parse = 1;
+ break outer;
+ }
+ if (parser && parser.startsWith('http')) {
+ try {
+ let res = request(parser + raw_url, headers);
+ let response = JSON.parse(res);
+ if (response.url && response.url.startsWith('http')) {
+ url = response.url;
+ parsed = 1;
+ break outer;
+ }
+ } catch (e) {
+ continue;
+ }
+ }
+ }
+ } else {
+ if (parsers && parsers.startsWith('parse:')) {
+ url = parsers.split('parse:')[1] + raw_url;
+ jx = 0;
+ parse = 1;
+ break outer;
+ }
+ if (parsers && parsers.startsWith('http')) {
+ try {
+ let res = request(parsers + raw_url, headers);
+ let response = JSON.parse(res);
+ if (response.url && response.url.startsWith('http')) {
+ url = response.url;
+ parsed = 1;
+ break outer;
+ }
+ } catch (e) {
+ continue;
+ }
+ }
+ }
+ if (parsed || parse) break;
+ }
+ }
+ if (parsed || parse) break;
+ }
+
+ if (!(url.match(/https?:\/\/.*\.(m3u8|mp4|flv|mkv)/) || parsed === 1)) {
+ jx = 1;
+ }
+
+ return JSON.stringify({
+ jx: jx,
+ parse: parse,
+ url: url,
+ header: {'User-Agent': player_ua}
+ });
+ } catch (e) {
+ return JSON.stringify({
+ jx: 0,
+ parse: 0,
+ url: id,
+ header: {}
+ });
+ }
+}
+
+export function __jsEvalReturn() {
+ return {
+ init: init,
+ home: home,
+ homeVod: homeVod,
+ category: category,
+ search: search,
+ detail: detail,
+ play: play
+ };
+}
\ No newline at end of file
diff --git a/tvboxqq/小米/api/mioaying.py b/tvboxqq/小米/api/mioaying.py
deleted file mode 100644
index 9f6a633..0000000
--- a/tvboxqq/小米/api/mioaying.py
+++ /dev/null
@@ -1,224 +0,0 @@
-# -*- coding: utf-8 -*-
-# by @嗷呜
-import json
-import random
-import sys
-from base64 import b64encode, b64decode
-from concurrent.futures import ThreadPoolExecutor
-sys.path.append('..')
-from base.spider import Spider
-
-class Spider(Spider):
-
- def init(self, extend=""):
- did=self.getdid()
- self.headers.update({'deviceId': did})
- token=self.gettk()
- self.headers.update({'token': token})
- pass
-
- def getName(self):
- pass
-
- def isVideoFormat(self, url):
- pass
-
- def manualVideoCheck(self):
- pass
-
- def destroy(self):
- pass
-
- host='http://ldys.sq1005.top'
-
- headers = {
- 'User-Agent': 'okhttp/4.12.0',
- 'client': 'app',
- 'deviceType': 'Android'
- }
-
- def homeContent(self, filter):
- data=self.post(f"{self.host}/api/v1/app/screen/screenType", headers=self.headers).json()
- result = {}
- cate = {
- "类型": "classify",
- "地区": "region",
- "年份": "year"
- }
- sort={
- 'key':'sreecnTypeEnum',
- 'name': '排序',
- 'value':[{'n':'人气','v':'POPULARITY'},{'n':'评分','v':'COLLECT'},{'n':'热搜','v':'HOT'}]
- }
- classes = []
- filters = {}
- for k in data['data']:
- classes.append({
- 'type_name': k['name'],
- 'type_id': k['id']
- })
- filters[k['id']] = [
- {
- 'name': v['name'],
- 'key': cate[v['name']],
- 'value': [
- {'n': i['name'], 'v': i['name']}
- for i in v['children']
- ]
- }
- for v in k['children']
- ]
- filters[k['id']].append(sort)
- result['class'] = classes
- result['filters'] = filters
- return result
-
- def homeVideoContent(self):
- jdata={"condition":64,"pageNum":1,"pageSize":40}
- data=self.post(f"{self.host}/api/v1/app/recommend/recommendSubList", headers=self.headers, json=jdata).json()
- return {'list':self.getlist(data['data']['records'])}
-
- def categoryContent(self, tid, pg, filter, extend):
- jdata = {
- 'condition': {
- 'sreecnTypeEnum': 'NEWEST',
- 'typeId': tid,
- },
- 'pageNum': int(pg),
- 'pageSize': 40,
- }
- jdata['condition'].update(extend)
- data = self.post(f"{self.host}/api/v1/app/screen/screenMovie", headers=self.headers, json=jdata).json()
- result = {}
- result['list'] = self.getlist(data['data']['records'])
- result['page'] = pg
- result['pagecount'] = 9999
- result['limit'] = 90
- result['total'] = 999999
- return result
-
- def detailContent(self, ids):
- ids = ids[0].split('@@')
- jdata = {"id": int(ids[0]), "typeId": ids[-1]}
- v = self.post(f"{self.host}/api/v1/app/play/movieDesc", headers=self.headers, json=jdata).json()
- v = v['data']
- vod = {
- 'type_name': v.get('classify'),
- 'vod_year': v.get('year'),
- 'vod_area': v.get('area'),
- 'vod_actor': v.get('star'),
- 'vod_director': v.get('director'),
- 'vod_content': v.get('introduce'),
- 'vod_play_from': '',
- 'vod_play_url': ''
- }
- c = self.post(f"{self.host}/api/v1/app/play/movieDetails", headers=self.headers, json=jdata).json()
- l = c['data']['moviePlayerList']
- n = {str(i['id']): i['moviePlayerName'] for i in l}
- m = jdata.copy()
- m.update({'playerId': str(l[0]['id'])})
- pd = self.getv(m, c['data']['episodeList'])
- if len(l)-1:
- with ThreadPoolExecutor(max_workers=len(l)-1) as executor:
- future_to_player = {executor.submit(self.getd, jdata, player): player for player in l[1:]}
- for future in future_to_player:
- try:
- o,p = future.result()
- pd.update(self.getv(o,p))
- except Exception as e:
- print(f"请求失败: {e}")
- w, e = [],[]
- for i, x in pd.items():
- if x:
- w.append(n[i])
- e.append(x)
- vod['vod_play_from'] = '$$$'.join(w)
- vod['vod_play_url'] = '$$$'.join(e)
- return {'list': [vod]}
-
- def searchContent(self, key, quick, pg="1"):
- jdata={
- "condition": {
- "value": key
- },
- "pageNum": int(pg),
- "pageSize": 40
- }
- data=self.post(f"{self.host}/api/v1/app/search/searchMovie", headers=self.headers, json=jdata).json()
- return {'list':self.getlist(data['data']['records']),'page':pg}
-
- def playerContent(self, flag, id, vipFlags):
- jdata=json.loads(self.d64(id))
- data = self.post(f"{self.host}/api/v1/app/play/movieDetails", headers=self.headers, json=jdata).json()
- try:
- params={'playerUrl':data['data']['url'],'playerId':jdata['playerId']}
- pd=self.fetch(f"{self.host}/api/v1/app/play/analysisMovieUrl", headers=self.headers, params=params).json()
- url,p=pd['data'],0
- except Exception as e:
- print(f"请求失败: {e}")
- url,p=data['data']['url'],0
- return {'parse': p, 'url': url, 'header': {'User-Agent': 'okhttp/4.12.0'}}
-
- def localProxy(self, param):
- pass
-
- def liveContent(self, url):
- pass
-
- def gettk(self):
- data=self.fetch(f"{self.host}/api/v1/app/user/visitorInfo", headers=self.headers).json()
- return data['data']['token']
-
- def getdid(self):
- did=self.getCache('ldid')
- if not did:
- hex_chars = '0123456789abcdef'
- did =''.join(random.choice(hex_chars) for _ in range(16))
- self.setCache('ldid',did)
- return did
-
- def getd(self,jdata,player):
- x = jdata.copy()
- x.update({'playerId': str(player['id'])})
- response = self.post(f"{self.host}/api/v1/app/play/movieDetails", headers=self.headers, json=x).json()
- return x, response['data']['episodeList']
-
- def getv(self,d,c):
- f={d['playerId']:''}
- g=[]
- for i in c:
- j=d.copy()
- j.update({'episodeId':str(i['id'])})
- g.append(f"{i['episode']}${self.e64(json.dumps(j))}")
- f[d['playerId']]='#'.join(g)
- return f
-
- def getlist(self,data):
- videos = []
- for i in data:
- videos.append({
- 'vod_id': f"{i['id']}@@{i['typeId']}",
- 'vod_name': i.get('name'),
- 'vod_pic': i.get('cover'),
- 'vod_year': i.get('year'),
- 'vod_remarks': i.get('totalEpisode')
- })
- return videos
-
- def e64(self, text):
- try:
- text_bytes = text.encode('utf-8')
- encoded_bytes = b64encode(text_bytes)
- return encoded_bytes.decode('utf-8')
- except Exception as e:
- print(f"Base64编码错误: {str(e)}")
- return ""
-
- def d64(self,encoded_text):
- try:
- encoded_bytes = encoded_text.encode('utf-8')
- decoded_bytes = b64decode(encoded_bytes)
- return decoded_bytes.decode('utf-8')
- except Exception as e:
- print(f"Base64解码错误: {str(e)}")
- return ""
\ No newline at end of file
diff --git a/tvboxqq/小米/api/zb.py b/tvboxqq/小米/api/zb.py
deleted file mode 100644
index f6dfaa9..0000000
--- a/tvboxqq/小米/api/zb.py
+++ /dev/null
@@ -1,767 +0,0 @@
-# -*- coding: utf-8 -*-
-# by @嗷呜
-import json
-import re
-import sys
-import time
-from base64 import b64decode, b64encode
-from urllib.parse import parse_qs
-import requests
-from pyquery import PyQuery as pq
-sys.path.append('..')
-from base.spider import Spider
-from concurrent.futures import ThreadPoolExecutor
-
-
-class Spider(Spider):
-
- def init(self, extend=""):
- tid = 'douyin'
- headers = self.gethr(0, tid)
- response = requests.head(self.hosts[tid], headers=headers)
- ttwid = response.cookies.get('ttwid')
- headers.update({
- 'authority': self.hosts[tid].split('//')[-1],
- 'cookie': f'ttwid={ttwid}' if ttwid else ''
- })
- self.dyheaders = headers
- pass
-
- def getName(self):
- pass
-
- def isVideoFormat(self, url):
- pass
-
- def manualVideoCheck(self):
- pass
-
- def destroy(self):
- pass
-
- headers = [
- {
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
- },
- {
- "User-Agent": "Dart/3.4 (dart:io)"
- }
- ]
-
- excepturl = 'https://www.baidu.com'
-
- hosts = {
- "huya": ["https://www.huya.com","https://mp.huya.com"],
- "douyin": "https://live.douyin.com",
- "douyu": "https://www.douyu.com",
- "wangyi": "https://cc.163.com",
- "bili": ["https://api.live.bilibili.com", "https://api.bilibili.com"]
- }
-
- referers = {
- "huya": "https://live.cdn.huya.com",
- "douyin": "https://live.douyin.com",
- "douyu": "https://m.douyu.com",
- "bili": "https://live.bilibili.com"
- }
-
- playheaders = {
- "wangyi": {
- "User-Agent": "ExoPlayer",
- "Connection": "Keep-Alive",
- "Icy-MetaData": "1"
- },
- "bili": {
- 'Accept': '*/*',
- 'Icy-MetaData': '1',
- 'referer': referers['bili'],
- 'user-agent': headers[0]['User-Agent']
- },
- 'douyin': {
- 'User-Agent': 'libmpv',
- 'Icy-MetaData': '1'
- },
- 'huya': {
- 'User-Agent': 'ExoPlayer',
- 'Connection': 'Keep-Alive',
- 'Icy-MetaData': '1'
- },
- 'douyu': {
- 'User-Agent': 'libmpv',
- 'Icy-MetaData': '1'
- }
- }
-
- def process_bili(self):
- try:
- self.blfdata = self.fetch(
- f'{self.hosts["bili"][0]}/room/v1/Area/getList?need_entrance=1&parent_id=0',
- headers=self.gethr(0, 'bili')
- ).json()
- return ('bili', [{'key': 'cate', 'name': '分类',
- 'value': [{'n': i['name'], 'v': str(i['id'])}
- for i in self.blfdata['data']]}])
- except Exception as e:
- print(f"bili处理错误: {e}")
- return 'bili', None
-
- def process_douyin(self):
- try:
- data = self.getpq(self.hosts['douyin'], headers=self.dyheaders)('script')
- for i in data.items():
- if 'categoryData' in i.text():
- content = i.text()
- start = content.find('{')
- end = content.rfind('}') + 1
- if start != -1 and end != -1:
- json_str = content[start:end]
- json_str = json_str.replace('\\"', '"')
- try:
- self.dyifdata = json.loads(json_str)
- return ('douyin', [{'key': 'cate', 'name': '分类',
- 'value': [{'n': i['partition']['title'],
- 'v': f"{i['partition']['id_str']}@@{i['partition']['title']}"}
- for i in self.dyifdata['categoryData']]}])
- except json.JSONDecodeError as e:
- print(f"douyin解析错误: {e}")
- return 'douyin', None
- except Exception as e:
- print(f"douyin请求或处理错误: {e}")
- return 'douyin', None
-
- def process_douyu(self):
- try:
- self.dyufdata = self.fetch(
- f'{self.referers["douyu"]}/api/cate/list',
- headers=self.headers[1]
- ).json()
- return ('douyu', [{'key': 'cate', 'name': '分类',
- 'value': [{'n': i['cate1Name'], 'v': str(i['cate1Id'])}
- for i in self.dyufdata['data']['cate1Info']]}])
- except Exception as e:
- print(f"douyu错误: {e}")
- return 'douyu', None
-
- def homeContent(self, filter):
- result = {}
- cateManual = {
- "虎牙": "huya",
- "哔哩": "bili",
- "抖音": "douyin",
- "斗鱼": "douyu",
- "网易": "wangyi"
- }
- classes = []
- filters = {
- 'huya': [{'key': 'cate', 'name': '分类',
- 'value': [{'n': '网游', 'v': '1'}, {'n': '单机', 'v': '2'},
- {'n': '娱乐', 'v': '8'}, {'n': '手游', 'v': '3'}]}]
- }
-
- with ThreadPoolExecutor(max_workers=3) as executor:
- futures = {
- executor.submit(self.process_bili): 'bili',
- executor.submit(self.process_douyin): 'douyin',
- executor.submit(self.process_douyu): 'douyu'
- }
-
- for future in futures:
- platform, filter_data = future.result()
- if filter_data:
- filters[platform] = filter_data
-
- for k in cateManual:
- classes.append({
- 'type_name': k,
- 'type_id': cateManual[k]
- })
-
- result['class'] = classes
- result['filters'] = filters
- return result
-
- def homeVideoContent(self):
- pass
-
- def categoryContent(self, tid, pg, filter, extend):
- vdata = []
- result = {}
- pagecount = 9999
- result['page'] = pg
- result['limit'] = 90
- result['total'] = 999999
- if tid == 'wangyi':
- vdata, pagecount = self.wyccContent(tid, pg, filter, extend, vdata)
- elif 'bili' in tid:
- vdata, pagecount = self.biliContent(tid, pg, filter, extend, vdata)
- elif 'huya' in tid:
- vdata, pagecount = self.huyaContent(tid, pg, filter, extend, vdata)
- elif 'douyin' in tid:
- vdata, pagecount = self.douyinContent(tid, pg, filter, extend, vdata)
- elif 'douyu' in tid:
- vdata, pagecount = self.douyuContent(tid, pg, filter, extend, vdata)
- result['list'] = vdata
- result['pagecount'] = pagecount
- return result
-
- def wyccContent(self, tid, pg, filter, extend, vdata):
- params = {
- 'format': 'json',
- 'start': (int(pg) - 1) * 20,
- 'size': '20',
- }
- response = self.fetch(f'{self.hosts[tid]}/api/category/live/', params=params, headers=self.headers[0]).json()
- for i in response['lives']:
- if i.get('cuteid'):
- bvdata = self.buildvod(
- vod_id=f"{tid}@@{i['cuteid']}",
- vod_name=i.get('title'),
- vod_pic=i.get('cover'),
- vod_remarks=i.get('nickname'),
- style={"type": "rect", "ratio": 1.33}
- )
- vdata.append(bvdata)
- return vdata, 9999
-
- def biliContent(self, tid, pg, filter, extend, vdata):
- if extend.get('cate') and pg == '1' and 'click' not in tid:
- for i in self.blfdata['data']:
- if str(i['id']) == extend['cate']:
- for j in i['list']:
- v = self.buildvod(
- vod_id=f"click_{tid}@@{i['id']}@@{j['id']}",
- vod_name=j.get('name'),
- vod_pic=j.get('pic'),
- vod_tag=1,
- style={"type": "oval", "ratio": 1}
- )
- vdata.append(v)
- return vdata, 1
- else:
- path = f'/xlive/web-interface/v1/second/getListByArea?platform=web&sort=online&page_size=30&page={pg}'
- if 'click' in tid:
- ids = tid.split('_')[1].split('@@')
- tid = ids[0]
- path = f'/xlive/web-interface/v1/second/getList?platform=web&parent_area_id={ids[1]}&area_id={ids[-1]}&sort_type=&page={pg}'
- data = self.fetch(f'{self.hosts[tid][0]}{path}', headers=self.gethr(0, tid)).json()
- for i in data['data']['list']:
- if i.get('roomid'):
- data = self.buildvod(
- f"{tid}@@{i['roomid']}",
- i.get('title'),
- i.get('cover'),
- i.get('watched_show', {}).get('text_large'),
- 0,
- i.get('uname'),
- style={"type": "rect", "ratio": 1.33}
- )
- vdata.append(data)
- return vdata, 9999
-
- def huyaContent(self, tid, pg, filter, extend, vdata):
- if extend.get('cate') and pg == '1' and 'click' not in tid:
- id = extend.get('cate')
- data = self.fetch(f'{self.referers[tid]}/liveconfig/game/bussLive?bussType={id}',
- headers=self.headers[1]).json()
- for i in data['data']:
- v = self.buildvod(
- vod_id=f"click_{tid}@@{int(i['gid'])}",
- vod_name=i.get('gameFullName'),
- vod_pic=f'https://huyaimg.msstatic.com/cdnimage/game/{int(i["gid"])}-MS.jpg',
- vod_tag=1,
- style={"type": "oval", "ratio": 1}
- )
- vdata.append(v)
- return vdata, 1
- else:
- gid = ''
- if 'click' in tid:
- ids = tid.split('_')[1].split('@@')
- tid = ids[0]
- gid = f'&gameId={ids[1]}'
- data = self.fetch(f'{self.hosts[tid][0]}/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0{gid}&page={pg}',
- headers=self.headers[1]).json()
- for i in data['data']['datas']:
- if i.get('profileRoom'):
- v = self.buildvod(
- f"{tid}@@{i['profileRoom']}",
- i.get('introduction'),
- i.get('screenshot'),
- str(int(i.get('totalCount', '1')) / 10000) + '万',
- 0,
- i.get('nick'),
- style={"type": "rect", "ratio": 1.33}
-
- )
- vdata.append(v)
- return vdata, 9999
-
- def douyinContent(self, tid, pg, filter, extend, vdata):
- if extend.get('cate') and pg == '1' and 'click' not in tid:
- ids = extend.get('cate').split('@@')
- for i in self.dyifdata['categoryData']:
- c = i['partition']
- if c['id_str'] == ids[0] and c['title'] == ids[1]:
- vlist = i['sub_partition'].copy()
- vlist.insert(0, {'partition': c})
- for j in vlist:
- j = j['partition']
- v = self.buildvod(
- vod_id=f"click_{tid}@@{j['id_str']}@@{j['type']}",
- vod_name=j.get('title'),
- vod_pic='https://p3-pc-weboff.byteimg.com/tos-cn-i-9r5gewecjs/pwa_v3/512x512-1.png',
- vod_tag=1,
- style={"type": "oval", "ratio": 1}
- )
- vdata.append(v)
- return vdata, 1
- else:
- path = f'/webcast/web/partition/detail/room/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&count=15&offset={(int(pg) - 1) * 15}&partition=720&partition_type=1'
- if 'click' in tid:
- ids = tid.split('_')[1].split('@@')
- tid = ids[0]
- path = f'/webcast/web/partition/detail/room/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&count=15&offset={(int(pg) - 1) * 15}&partition={ids[1]}&partition_type={ids[-1]}&req_from=2'
- data = self.fetch(f'{self.hosts[tid]}{path}', headers=self.dyheaders).json()
- for i in data['data']['data']:
- v = self.buildvod(
- vod_id=f"{tid}@@{i['web_rid']}",
- vod_name=i['room'].get('title'),
- vod_pic=i['room']['cover'].get('url_list')[0],
- vod_year=i.get('user_count_str'),
- vod_remarks=i['room']['owner'].get('nickname'),
- style={"type": "rect", "ratio": 1.33}
- )
- vdata.append(v)
- return vdata, 9999
-
- def douyuContent(self, tid, pg, filter, extend, vdata):
- if extend.get('cate') and pg == '1' and 'click' not in tid:
- for i in self.dyufdata['data']['cate2Info']:
- if str(i['cate1Id']) == extend['cate']:
- v = self.buildvod(
- vod_id=f"click_{tid}@@{i['cate2Id']}",
- vod_name=i.get('cate2Name'),
- vod_pic=i.get('icon'),
- vod_remarks=i.get('count'),
- vod_tag=1,
- style={"type": "oval", "ratio": 1}
- )
- vdata.append(v)
- return vdata, 1
- else:
- path = f'/japi/weblist/apinc/allpage/6/{pg}'
- if 'click' in tid:
- ids = tid.split('_')[1].split('@@')
- tid = ids[0]
- path = f'/gapi/rkc/directory/mixList/2_{ids[1]}/{pg}'
- url = f'{self.hosts[tid]}{path}'
- data = self.fetch(url, headers=self.headers[1]).json()
- for i in data['data']['rl']:
- v = self.buildvod(
- vod_id=f"{tid}@@{i['rid']}",
- vod_name=i.get('rn'),
- vod_pic=i.get('rs16'),
- vod_year=str(int(i.get('ol', 1)) / 10000) + '万',
- vod_remarks=i.get('nn'),
- style={"type": "rect", "ratio": 1.33}
- )
- vdata.append(v)
- return vdata, 9999
-
- def detailContent(self, ids):
- ids = ids[0].split('@@')
- if ids[0] == 'wangyi':
- vod = self.wyccDetail(ids)
- elif ids[0] == 'bili':
- vod = self.biliDetail(ids)
- elif ids[0] == 'huya':
- vod = self.huyaDetail(ids)
- elif ids[0] == 'douyin':
- vod = self.douyinDetail(ids)
- elif ids[0] == 'douyu':
- vod = self.douyuDetail(ids)
- return {'list': [vod]}
-
- def wyccDetail(self, ids):
- try:
- vdata = self.getpq(f'{self.hosts[ids[0]]}/{ids[1]}', self.headers[0])('script').eq(-1).text()
-
- def get_quality_name(vbr):
- if vbr <= 600:
- return "标清"
- elif vbr <= 1000:
- return "高清"
- elif vbr <= 2000:
- return "超清"
- else:
- return "蓝光"
-
- data = json.loads(vdata)['props']['pageProps']['roomInfoInitData']
- name = data['live'].get('title', ids[0])
- vod = self.buildvod(vod_name=data.get('keywords_suffix'), vod_remarks=data['live'].get('title'),
- vod_content=data.get('description_suffix'))
- resolution_data = data['live']['quickplay']['resolution']
- all_streams = {}
- sorted_qualities = sorted(resolution_data.items(),
- key=lambda x: x[1]['vbr'],
- reverse=True)
- for quality, data in sorted_qualities:
- vbr = data['vbr']
- quality_name = get_quality_name(vbr)
- for cdn_name, url in data['cdn'].items():
- if cdn_name not in all_streams and type(url) == str and url.startswith('http'):
- all_streams[cdn_name] = []
- if isinstance(url, str) and url.startswith('http'):
- all_streams[cdn_name].extend([quality_name, url])
- plists = []
- names = []
- for i, (cdn_name, stream_list) in enumerate(all_streams.items(), 1):
- names.append(f'线路{i}')
- pstr = f"{name}${ids[0]}@@{self.e64(json.dumps(stream_list))}"
- plists.append(pstr)
- vod['vod_play_from'] = "$$$".join(names)
- vod['vod_play_url'] = "$$$".join(plists)
- return vod
- except Exception as e:
- return self.handle_exception(e)
-
- def biliDetail(self, ids):
- try:
- vdata = self.fetch(
- f'{self.hosts[ids[0]][0]}/xlive/web-room/v1/index/getInfoByRoom?room_id={ids[1]}&wts={int(time.time())}',
- headers=self.gethr(0, ids[0])).json()
- v = vdata['data']['room_info']
- vod = self.buildvod(
- vod_name=v.get('title'),
- type_name=v.get('parent_area_name') + '/' + v.get('area_name'),
- vod_remarks=v.get('tags'),
- vod_play_from=v.get('title'),
- )
- data = self.fetch(
- f'{self.hosts[ids[0]][0]}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={ids[1]}&protocol=0%2C1&format=0%2C1%2C2&codec=0%2C1&platform=web',
- headers=self.gethr(0, ids[0])).json()
- vdnams = data['data']['playurl_info']['playurl']['g_qn_desc']
- all_accept_qns = []
- streams = data['data']['playurl_info']['playurl']['stream']
- for stream in streams:
- for format_item in stream['format']:
- for codec in format_item['codec']:
- if 'accept_qn' in codec:
- all_accept_qns.append(codec['accept_qn'])
- max_accept_qn = max(all_accept_qns, key=len) if all_accept_qns else []
- quality_map = {
- item['qn']: item['desc']
- for item in vdnams
- }
- quality_names = [f"{quality_map.get(qn)}${ids[0]}@@{ids[1]}@@{qn}" for qn in max_accept_qn]
- vod['vod_play_url'] = "#".join(quality_names)
- return vod
- except Exception as e:
- return self.handle_exception(e)
-
- def huyaDetail(self, ids):
- try:
- vdata = self.fetch(f'{self.hosts[ids[0]][1]}/cache.php?m=Live&do=profileRoom&roomid={ids[1]}',
- headers=self.headers[0]).json()
- v = vdata['data']['liveData']
- vod = self.buildvod(
- vod_name=v.get('introduction'),
- type_name=v.get('gameFullName'),
- vod_director=v.get('nick'),
- vod_remarks=v.get('contentIntro'),
- )
- data = dict(reversed(list(vdata['data']['stream'].items())))
- names = []
- plist = []
-
- for stream_type, stream_data in data.items():
- if isinstance(stream_data, dict) and 'multiLine' in stream_data and 'rateArray' in stream_data:
- names.append(f"线路{len(names) + 1}")
- qualities = sorted(
- stream_data['rateArray'],
- key=lambda x: (x['iBitRate'], x['sDisplayName']),
- reverse=True
- )
- cdn_urls = []
- for cdn in stream_data['multiLine']:
- quality_urls = []
- for quality in qualities:
- quality_name = quality['sDisplayName']
- bit_rate = quality['iBitRate']
- base_url = cdn['url']
- if bit_rate > 0:
- if '.m3u8' in base_url:
- new_url = base_url.replace(
- 'ratio=2000',
- f'ratio={bit_rate}'
- )
- else:
- new_url = base_url.replace(
- 'imgplus.flv',
- f'imgplus_{bit_rate}.flv'
- )
- else:
- new_url = base_url
- quality_urls.extend([quality_name, new_url])
- encoded_urls = self.e64(json.dumps(quality_urls))
- cdn_urls.append(f"{cdn['cdnType']}${ids[0]}@@{encoded_urls}")
-
- if cdn_urls:
- plist.append('#'.join(cdn_urls))
- vod['vod_play_from'] = "$$$".join(names)
- vod['vod_play_url'] = "$$$".join(plist)
- return vod
- except Exception as e:
- return self.handle_exception(e)
-
- def douyinDetail(self, ids):
- url = f'{self.hosts[ids[0]]}/webcast/room/web/enter/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&enter_from=web_live&web_rid={ids[1]}&room_id_str=&enter_source=&Room-Enter-User-Login-Ab=0&is_need_double_stream=false&cookie_enabled=true&screen_width=1980&screen_height=1080&browser_language=zh-CN&browser_platform=Win32&browser_name=Edge&browser_version=125.0.0.0'
- data = self.fetch(url, headers=self.dyheaders).json()
- try:
- vdata = data['data']['data'][0]
- vod = self.buildvod(
- vod_name=vdata['title'],
- vod_remarks=vdata['user_count_str'],
- )
- resolution_data = vdata['stream_url']['live_core_sdk_data']['pull_data']['options']['qualities']
- stream_json = vdata['stream_url']['live_core_sdk_data']['pull_data']['stream_data']
- stream_json = json.loads(stream_json)
- available_types = []
- if any(sdk_key in stream_json['data'] and 'main' in stream_json['data'][sdk_key] for sdk_key in
- stream_json['data']):
- available_types.append('main')
- if any(sdk_key in stream_json['data'] and 'backup' in stream_json['data'][sdk_key] for sdk_key in
- stream_json['data']):
- available_types.append('backup')
- plist = []
- for line_type in available_types:
- format_arrays = {'flv': [], 'hls': [], 'lls': []}
- qualities = sorted(resolution_data, key=lambda x: x['level'], reverse=True)
- for quality in qualities:
- sdk_key = quality['sdk_key']
- if sdk_key in stream_json['data'] and line_type in stream_json['data'][sdk_key]:
- stream_info = stream_json['data'][sdk_key][line_type]
- if stream_info.get('flv'):
- format_arrays['flv'].extend([quality['name'], stream_info['flv']])
- if stream_info.get('hls'):
- format_arrays['hls'].extend([quality['name'], stream_info['hls']])
- if stream_info.get('lls'):
- format_arrays['lls'].extend([quality['name'], stream_info['lls']])
- format_urls = []
- for format_name, url_array in format_arrays.items():
- if url_array:
- encoded_urls = self.e64(json.dumps(url_array))
- format_urls.append(f"{format_name}${ids[0]}@@{encoded_urls}")
-
- if format_urls:
- plist.append('#'.join(format_urls))
-
- names = ['线路1', '线路2'][:len(plist)]
- vod['vod_play_from'] = "$$$".join(names)
- vod['vod_play_url'] = "$$$".join(plist)
- return vod
-
- except Exception as e:
- return self.handle_exception(e)
-
- def douyuDetail(self, ids):
- headers = self.gethr(0, zr=f'{self.hosts[ids[0]]}/{ids[1]}')
- try:
- data = self.fetch(f'{self.hosts[ids[0]]}/betard/{ids[1]}', headers=headers).json()
- vname = data['room']['room_name']
- vod = self.buildvod(
- vod_name=vname,
- vod_remarks=data['room'].get('second_lvl_name'),
- vod_director=data['room'].get('nickname'),
- )
- vdata = self.fetch(f'{self.hosts[ids[0]]}/swf_api/homeH5Enc?rids={ids[1]}', headers=headers).json()
- json_body = vdata['data']
- json_body = {"html": self.douyu_text(json_body[f'room{ids[1]}']), "rid": ids[1]}
- sign = self.post('http://alive.nsapps.cn/api/AllLive/DouyuSign', json=json_body, headers=self.headers[1]).json()['data']
- body = f'{sign}&cdn=&rate=-1&ver=Douyu_223061205&iar=1&ive=1&hevc=0&fa=0'
- body=self.params_to_json(body)
- nubdata = self.post(f'{self.hosts[ids[0]]}/lapi/live/getH5Play/{ids[1]}', data=body, headers=headers).json()
- plist = []
- names = []
- for i,x in enumerate(nubdata['data']['cdnsWithName']):
- names.append(f'线路{i+1}')
- d = {'sign': sign, 'cdn': x['cdn'], 'id': ids[1]}
- plist.append(
- f'{vname}${ids[0]}@@{self.e64(json.dumps(d))}@@{self.e64(json.dumps(nubdata["data"]["multirates"]))}')
- vod['vod_play_from'] = "$$$".join(names)
- vod['vod_play_url'] = "$$$".join(plist)
- return vod
- except Exception as e:
- return self.handle_exception(e)
-
- def douyu_text(self, text):
- function_positions = [m.start() for m in re.finditer('function', text)]
- total_functions = len(function_positions)
- if total_functions % 2 == 0:
- target_index = total_functions // 2 + 1
- else:
- target_index = (total_functions - 1) // 2 + 1
- if total_functions >= target_index:
- cut_position = function_positions[target_index - 1]
- ctext = text[4:cut_position]
- return re.sub(r'eval\(strc\)\([\w\d,]+\)', 'strc', ctext)
- return text
-
- def searchContent(self, key, quick, pg="1"):
- pass
-
- def playerContent(self, flag, id, vipFlags):
- try:
- ids = id.split('@@')
- p = 1
- if ids[0] in ['wangyi', 'douyin','huya']:
- p, url = 0, json.loads(self.d64(ids[1]))
- elif ids[0] == 'bili':
- p, url = self.biliplay(ids)
- elif ids[0] == 'huya':
- p, url = 0, json.loads(self.d64(ids[1]))
- elif ids[0] == 'douyu':
- p, url = self.douyuplay(ids)
- return {'parse': p, 'url': url, 'header': self.playheaders[ids[0]]}
- except Exception as e:
- return {'parse': 1, 'url': self.excepturl, 'header': self.headers[0]}
-
- def biliplay(self, ids):
- try:
- data = self.fetch(
- f'{self.hosts[ids[0]][0]}/xlive/web-room/v2/index/getRoomPlayInfo?room_id={ids[1]}&protocol=0,1&format=0,2&codec=0&platform=web&qn={ids[2]}',
- headers=self.gethr(0, ids[0])).json()
- urls = []
- line_index = 1
- for stream in data['data']['playurl_info']['playurl']['stream']:
- for format_item in stream['format']:
- for codec in format_item['codec']:
- for url_info in codec['url_info']:
- full_url = f"{url_info['host']}/{codec['base_url'].lstrip('/')}{url_info['extra']}"
- urls.extend([f"线路{line_index}", full_url])
- line_index += 1
- return 0, urls
- except Exception as e:
- return 1, self.excepturl
-
- def douyuplay(self, ids):
- try:
- sdata = json.loads(self.d64(ids[1]))
- headers = self.gethr(0, zr=f'{self.hosts[ids[0]]}/{sdata["id"]}')
- ldata = json.loads(self.d64(ids[2]))
- result_obj = {}
- with ThreadPoolExecutor(max_workers=len(ldata)) as executor:
- futures = [
- executor.submit(
- self.douyufp,
- sdata,
- quality,
- headers,
- self.hosts[ids[0]],
- result_obj
- ) for quality in ldata
- ]
- for future in futures:
- future.result()
-
- result = []
- for bit in sorted(result_obj.keys(), reverse=True):
- result.extend(result_obj[bit])
-
- if result:
- return 0, result
- return 1, self.excepturl
-
- except Exception as e:
- return 1, self.excepturl
-
- def douyufp(self, sdata, quality, headers, host, result_obj):
- try:
- body = f'{sdata["sign"]}&cdn={sdata["cdn"]}&rate={quality["rate"]}'
- body=self.params_to_json(body)
- data = self.post(f'{host}/lapi/live/getH5Play/{sdata["id"]}',
- data=body, headers=headers).json()
- if data.get('data'):
- play_url = data['data']['rtmp_url'] + '/' + data['data']['rtmp_live']
- bit = quality.get('bit', 0)
- if bit not in result_obj:
- result_obj[bit] = []
- result_obj[bit].extend([quality['name'], play_url])
- except Exception as e:
- print(f"Error fetching {quality['name']}: {str(e)}")
-
- def localProxy(self, param):
- pass
-
- def e64(self, text):
- try:
- text_bytes = text.encode('utf-8')
- encoded_bytes = b64encode(text_bytes)
- return encoded_bytes.decode('utf-8')
- except Exception as e:
- print(f"Base64编码错误: {str(e)}")
- return ""
-
- def d64(self, encoded_text):
- try:
- encoded_bytes = encoded_text.encode('utf-8')
- decoded_bytes = b64decode(encoded_bytes)
- return decoded_bytes.decode('utf-8')
- except Exception as e:
- print(f"Base64解码错误: {str(e)}")
- return ""
-
- def josn_to_params(self, params, skip_empty=False):
- query = []
- for k, v in params.items():
- if skip_empty and not v:
- continue
- query.append(f"{k}={v}")
- return "&".join(query)
-
- def params_to_json(self, query_string):
- parsed_data = parse_qs(query_string)
- result = {key: value[0] for key, value in parsed_data.items()}
- return result
-
- def buildvod(self, vod_id='', vod_name='', vod_pic='', vod_year='', vod_tag='', vod_remarks='', style='',
- type_name='', vod_area='', vod_actor='', vod_director='',
- vod_content='', vod_play_from='', vod_play_url=''):
- vod = {
- 'vod_id': vod_id,
- 'vod_name': vod_name,
- 'vod_pic': vod_pic,
- 'vod_year': vod_year,
- 'vod_tag': 'folder' if vod_tag else '',
- 'vod_remarks': vod_remarks,
- 'style': style,
- 'type_name': type_name,
- 'vod_area': vod_area,
- 'vod_actor': vod_actor,
- 'vod_director': vod_director,
- 'vod_content': vod_content,
- 'vod_play_from': vod_play_from,
- 'vod_play_url': vod_play_url
- }
- vod = {key: value for key, value in vod.items() if value}
- return vod
-
- def getpq(self, url, headers=None, cookies=None):
- data = self.fetch(url, headers=headers, cookies=cookies).text
- try:
- return pq(data)
- except Exception as e:
- print(f"解析页面错误: {str(e)}")
- return pq(data.encode('utf-8'))
-
- def gethr(self, index, rf='', zr=''):
- headers = self.headers[index]
- if zr:
- headers['referer'] = zr
- else:
- headers['referer'] = f"{self.referers[rf]}/"
- return headers
-
- def handle_exception(self, e):
- print(f"报错: {str(e)}")
- return {'vod_play_from': '哎呀翻车啦', 'vod_play_url': f'翻车啦${self.excepturl}'}
diff --git a/tvboxqq/小米/jars/巧技2.jar b/tvboxqq/小米/jars/巧技2.jar
new file mode 100644
index 0000000..6c7c871
Binary files /dev/null and b/tvboxqq/小米/jars/巧技2.jar differ
diff --git a/tvboxqq/小米/spider.jar b/tvboxqq/小米/spider.jar
index 98652b1..8b41402 100644
Binary files a/tvboxqq/小米/spider.jar and b/tvboxqq/小米/spider.jar differ
diff --git a/tvboxqq/小虎斑/api.json b/tvboxqq/小虎斑/api.json
index 063e371..b351f4f 100644
--- a/tvboxqq/小虎斑/api.json
+++ b/tvboxqq/小虎斑/api.json
@@ -1,4 +1,4 @@
-//
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
{
"spider": "./spider.jar",
@@ -36,16 +36,35 @@
"key": "设置",
"name": "网弹|设置",
"type": 3,
- "api": "csp_HBconfig"
+ "api": "csp_Config"
+ },
+ {
+ "key": "我的网盘",
+ "name": "我的|网盘",
+ "type": 3,
+ "api": "csp_MyCloud",
+ "style": {
+ "type": "list"
+ }
},
{
"key": "全网",
"name": "全网|短剧",
+ "type": 4,
+ "api": "https://so.yinpai.xyz/duanju.php?type=dquark"
+ },
+ {
+ "key": "duanju",
+ "name": "破碎|短剧",
"type": 3,
- "api": "csp_HBqkDj3",
- "ext": {
- "site": "http://xsayang.fun:14710"
- }
+ "api": "csp_HBsuipian",
+ "ext": "https://speed.howdbm.com/papaya/papaya-file/files/download/"
+ },
+ {
+ "key": "B站直播",
+ "name": "B站|直播",
+ "type": 3,
+ "api": "csp_BilibiliLive"
},
{
"key": "聚合",
@@ -87,6 +106,16 @@
"site": "http://xsayang.fun:12512/"
}
},
+ {
+ "key": "玩偶哥哥",
+ "name": "玩偶|4k网盘",
+ "type": 3,
+ "playerType": 2,
+ "api": "csp_Wogg",
+ "ext": {
+ "site": "https://wogg.xxooo.cf/"
+ }
+ },
{
"key": "P123",
"name": "木偶|4k网盘",
@@ -170,39 +199,76 @@
}
},
{
- "key": "窈窕",
- "name": "窈窕|4K弹幕",
- "type": 3,
- "api": "csp_HBT4",
- "ext": "http://154.219.113.13:12121/test.php?site=labi###labi"
+ "key": "123",
+ "name": "123|推送",
+ "type": 4,
+ "api": "https://so.yinpai.xyz/api.php?type=123"
},
{
- "key": "淑女",
- "name": "淑女|4K弹幕",
- "type": 3,
- "api": "csp_HBT4",
- "ext": "http://154.219.113.13:12121/test.php?site=mihdr###mihdr"
+ "key": "夸克推送",
+ "name": "夸克|推送",
+ "type": 4,
+ "api": "https://so.yinpai.xyz/api.php?type=quark"
},
{
- "key": "君子",
- "name": "君子|4K弹幕",
- "type": 3,
- "api": "csp_HBT4",
- "ext": "http://154.219.113.13:12121/test.php?site=erxiao###erxiao"
+ "key": "优惜",
+ "name": "优惜|推送",
+ "type": 4,
+ "api": "https://so.yinpai.xyz/api.php?type=uc"
},
{
- "key": "好逑",
- "name": "好逑|4K弹幕",
- "type": 3,
- "api": "csp_HBT4",
- "ext": "http://154.219.113.13:12121/test.php?site=ouge###ouge"
+ "key": "百度",
+ "name": "百度|推送",
+ "type": 4,
+ "api": "https://so.yinpai.xyz/api.php?type=baidu"
},
{
- "key": "琴瑟",
- "name": "琴瑟|4K弹幕",
+ "key": "天翼",
+ "name": "天翼|推送",
+ "type": 4,
+ "api": "https://so.yinpai.xyz/api.php?type=tianyi"
+ },
+ {
+ "key": "景天",
+ "name": "景天|4K弹幕",
"type": 3,
- "api": "csp_HBT4",
- "ext": "http://154.219.113.13:12121/test.php?site=qingying###qingying"
+ "api": "csp_HBcms10Dou",
+ "ext": "https://zy.jinchancaiji.com/api.php/provide/vod/from/qq/"
+ },
+ {
+ "key": "茂茂",
+ "name": "茂茂|4K弹幕",
+ "type": 3,
+ "api": "csp_HBcms10Dou",
+ "ext": "https://zy.jinchancaiji.com/api.php/provide/vod/from/mgtv/"
+ },
+ {
+ "key": "立春",
+ "name": "立春|4K弹幕",
+ "type": 3,
+ "api": "csp_HBNT4",
+ "ext": "DyoqWQIrBwMuGytIIxtMWy8FMQwtNStECyoUXy0YVUg="
+ },
+ {
+ "key": "夏至",
+ "name": "夏至|4K弹幕",
+ "type": 3,
+ "api": "csp_HBNT4",
+ "ext": "DyoqWQInJUMuGFdFDzUQAgIGXUUAUi9H"
+ },
+ {
+ "key": "秋分",
+ "name": "秋分|4K弹幕",
+ "type": 3,
+ "api": "csp_HBNT4",
+ "ext": "DyoqWQInJUMuGFcBCgtNXAQ4Og8HOSNECiVBHi0YVUg="
+ },
+ {
+ "key": "冬至",
+ "name": "冬至|4K弹幕",
+ "type": 3,
+ "api": "csp_HBNT4",
+ "ext": "DyoqWQIrBwMuUgZBNzVBHQA7MUcsCFtcCjVMVA=="
},
{
"key": "小猫",
@@ -276,15 +342,15 @@
"key": "天天",
"name": "天天|弹幕",
"type": 3,
- "api": "csp_HBtiantian",
- "ext": "http://tt.ysdqjs.cn/"
+ "api": "csp_HBtiantianv3",
+ "ext": "http://v.rbotv.cn"
},
{
"key": "jianpian",
"name": "荐片|弹幕",
"type": 3,
"api": "csp_Jianpian",
- "ext": "http://4icnx7.qyjzlh.com"
+ "ext": "http://pizazzGY.zxbwv.com"
},
{
"key": "风神",
@@ -391,7 +457,7 @@
"name": "文才|弹幕",
"type": 3,
"api": "csp_Wcai",
- "ext": "https://www.gs4x7nq4.com"
+ "ext": "https://www.jxshdzs.com/"
},
{
"key": "星河",
@@ -438,27 +504,6 @@
"type": 3,
"api": "csp_Kanqiu"
},
- {
- "key": "搜素1",
- "name": "影搜|忧思",
- "type": 3,
- "api": "csp_HByingSo",
- "ext": "1"
- },
- {
- "key": "搜素2",
- "name": "影搜|夸壳",
- "type": 3,
- "api": "csp_HByingSo",
- "ext": "2"
- },
- {
- "key": "搜素4",
- "name": "影搜|度娘",
- "type": 3,
- "api": "csp_HByingSo",
- "ext": "4"
- },
{
"key": "360",
"name": "360|弹幕",
@@ -622,6 +667,11 @@
"type": 1,
"url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getuserjx&url="
},
+ {
+ "name": "晴天4K Q1026038872",
+ "type": 1,
+ "url": "http://127.0.0.1:9997/proxy?do=seachdanmu&go=hubanjiexi&url="
+ },
{
"name": "虎斑XM",
"type": 1,
@@ -633,6 +683,11 @@
}
}
},
+ {
+ "name": "虎斑szy",
+ "type": 1,
+ "url": "http://127.0.0.1:9978/proxy?do=seachdanmu&go=getszyjx&url="
+ },
{
"name": "虎斑mt4K",
"type": 1,
diff --git a/tvboxqq/小虎斑/spider.jar b/tvboxqq/小虎斑/spider.jar
index e96905b..1750905 100644
Binary files a/tvboxqq/小虎斑/spider.jar and b/tvboxqq/小虎斑/spider.jar differ
diff --git a/tvboxqq/小虎斑/txt/api.txt b/tvboxqq/小虎斑/txt/api.txt
index 532191d..8aa4a9d 100644
--- a/tvboxqq/小虎斑/txt/api.txt
+++ b/tvboxqq/小虎斑/txt/api.txt
@@ -1 +1 @@
-VxbsqiZ42C0OKBc6CG3cFCXm9MwcFcrR/3BQ+ppcFB1rTImObDRz3+ZyAZITstS+
\ No newline at end of file
+aQpuKZO+OwlAdPzo/A5wQ6juvRdKc70cmxz69JLXKe10vV/AZRaj3pkeP6u1WcUD
\ No newline at end of file
diff --git a/tvboxqq/少儿频道/api.json b/tvboxqq/少儿频道/api.json
index cd680e6..f846b69 100644
--- a/tvboxqq/少儿频道/api.json
+++ b/tvboxqq/少儿频道/api.json
@@ -1,4 +1,4 @@
-//
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
{
"spider": "./spider.jar",
diff --git a/tvboxqq/戏曲音乐/api.json b/tvboxqq/戏曲音乐/api.json
index 8191c60..648689c 100644
--- a/tvboxqq/戏曲音乐/api.json
+++ b/tvboxqq/戏曲音乐/api.json
@@ -1,4 +1,4 @@
-//
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
{
"spider": "./spider.jar",
@@ -7,7 +7,7 @@
"sites": [
{
"key": "本地包更新",
- "name": "💞本地包|0829",
+ "name": "💞本地包|0110",
"type": 3,
"api": "csp_Market",
"jar": "./jars/gx.jar",
@@ -94,16 +94,6 @@
"filterable": 1,
"ext": "./json/Bili.json"
},
- {
- "key": "哔哩直播",
- "name": "🅱️哔哩直播",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "searchable": 0,
- "quickSearch": 0,
- "filterable": 1,
- "ext": "./js/blzb.js"
- },
{
"key": "csp_Bili短剧",
"name": "🅱️哔哩短剧",
@@ -123,37 +113,6 @@
"quickSearch": 1,
"filterable": 1,
"ext": "./json/影视解说.json"
- },
- {
- "key": "js_310直播",
- "name": "🥎球赛直播",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "searchable": 1,
- "playerType": 1,
- "quickSearch": 1,
- "filterable": 0,
- "ext": "./js/310.js"
- },
- {
- "key": "虎牙直播",
- "name": "🐯虎牙直播",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "searchable": 0,
- "quickSearch": 0,
- "filterable": 1,
- "ext": "./js/huyazhibo.js"
- },
- {
- "key": "斗鱼直播",
- "name": "🐟斗鱼直播",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "searchable": 0,
- "quickSearch": 0,
- "filterable": 1,
- "ext": "./js/douyu.js"
}
],
"parses": [
diff --git a/tvboxqq/戏曲音乐/js/310.js b/tvboxqq/戏曲音乐/js/310.js
deleted file mode 100644
index 0f73404..0000000
--- a/tvboxqq/戏曲音乐/js/310.js
+++ /dev/null
@@ -1,22 +0,0 @@
-var rule = {
- title:'310直播',
- host:'http://www.310.tv',
- url:'/?s=0&t=1&a=fyclass&g=fypage',
- searchUrl:'',
- searchable:0,
- quickSearch:0,
- class_name:'热门&足球&篮球',
- class_url:'0&1&2',
- headers:{
- 'User-Agent':'MOBILE_UA'
- },
- timeout:5000,
- play_parse:false,
- lazy:'',
- limit:6,
- double:false,
- 推荐:'*',
- 一级:'.list_content a;.jiabifeng&&p:lt(5)&&Text;.feleimg img&&src;a&&t-nzf-o;a&&href',
- 二级:'*',
- 搜索:'',
-}
\ No newline at end of file
diff --git a/tvboxqq/戏曲音乐/js/blzb.js b/tvboxqq/戏曲音乐/js/blzb.js
deleted file mode 100644
index a801d7b..0000000
--- a/tvboxqq/戏曲音乐/js/blzb.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/* 直播弹幕 -> vod_area:'bililivedanmu'
-目前只有皮皮虾大佬的DMBox, 支持弹幕
-DMBox下载:https://t.me/pipixiawerun
-设置 > 窗口预览 > 开启
-*/
-
-/* Cookie设置
-Cookie获取方法 https://github.com/UndCover/PyramidStore/blob/main/list.md#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9
-
-Cookie设置方法1: DR-PY 后台管理界面
-CMS后台管理 > 设置中心 > 环境变量 > {"bili_cookie":"XXXXXXX","vmid":"XXXXXX"} > 保存
-
-Cookie设置方法2: 手动替换Cookie
-底下代码 headers的
-"Cookie":"$bili_cookie"
-手动替换为
-"Cookie":"将获取的Cookie黏贴在这"
-*/
-
-var rule = {
- title:'哔哩直播',
- host:'https://api.live.bilibili.com',
- homeUrl:'/xlive/web-interface/v1/second/getUserRecommend?page=1&page_size=30&platform=web',//用于"分类获取"和"推荐获取"
- url:'/xlive/web-interface/v1/second/getList?platform=web&parent_area_id=fyclass&area_id=fyfilter&sort_type=online&page=fypage',
- class_name:'娱乐&网游&手游&单机游戏&电台&虚拟主播&生活&知识&赛事&购物',
- class_url:'10&2&3&6&1&5&9&11&13&300',
- filterable: 1,
- filter_url: '{{fl.area}}',
- filter_def:{
- 10:{area:'33'},
- 2:{area:'86'},
- 3:{area:'35'},
- 6:{area:'236'},
- 1:{area:'21'},
- 5:{area:'190'},
- 9:{area:'371'},
- 11:{area:'376'},
- 13:{area:'561'},
- 300:{area:'30000'}
- },
- filter: {
- "2":[{"key":"area","name":"分区","value":[{"n":"英雄联盟","v":"86"},{"n":"DOTA2","v":"92"},{"n":"CS:GO","v":"89"},{"n":"APEX英雄","v":"240"},{"n":"永劫无间","v":"666"},{"n":"穿越火线","v":"88"},{"n":"守望先锋","v":"87"},{"n":"吃鸡行动","v":"80"},{"n":"逃离塔科夫","v":"252"},{"n":"传奇","v":"695"},{"n":"DNF","v":"78"},{"n":"生死狙击2","v":"575"},{"n":"洛奇英雄传","v":"599"},{"n":"最终幻想14","v":"102"},{"n":"星际战甲","v":"249"},{"n":"梦三国","v":"710"},{"n":"英魂之刃","v":"690"},{"n":"剑网3","v":"82"},{"n":"铁甲雄兵","v":"691"},{"n":"封印者","v":"300"},{"n":"新天龙八部","v":"653"},{"n":"赛尔号","v":"667"},{"n":"造梦西游","v":"668"},{"n":"洛克王国","v":"669"},{"n":"问道","v":"670"},{"n":"诛仙世界","v":"654"},{"n":"大话西游","v":"652"},{"n":"奇迹MU","v":"683"},{"n":"永恒之塔","v":"684"},{"n":"QQ三国","v":"685"},{"n":"人间地狱","v":"677"},{"n":"VALORANT","v":"329"},{"n":"彩虹岛","v":"686"},{"n":"洛奇","v":"663"},{"n":"跑跑卡丁车","v":"664"},{"n":"星际公民","v":"658"},{"n":"Squad战术小队","v":"659"},{"n":"反恐精英Online","v":"629"},{"n":"风暴奇侠","v":"648"},{"n":"装甲战争","v":"642"},{"n":"失落的方舟","v":"590"},{"n":"阿尔比恩","v":"639"},{"n":"猎杀对决","v":"600"},{"n":"CFHD ","v":"472"},{"n":"骑士精神2","v":"650"},{"n":"超击突破","v":"680"},{"n":"武装突袭","v":"634"},{"n":"300英雄","v":"84"},{"n":"炉石传说","v":"91"},{"n":"剑网3缘起","v":"499"},{"n":"街头篮球","v":"649"},{"n":"综合射击","v":"601"},{"n":"剑灵","v":"505"},{"n":"艾尔之光","v":"651"},{"n":"黑色沙漠","v":"632"},{"n":"天涯明月刀","v":"596"},{"n":"超激斗梦境","v":"519"},{"n":"冒险岛","v":"574"},{"n":"逆战","v":"487"},{"n":"魔兽争霸3","v":"181"},{"n":"QQ飞车","v":"610"},{"n":"魔兽世界","v":"83"},{"n":"FIFA ONLINE 4","v":"388"},{"n":"NBA2KOL2","v":"581"},{"n":"使命召唤:战区","v":"318"},{"n":"VRChat","v":"656"},{"n":"坦克世界","v":"115"},{"n":"战舰世界","v":"248"},{"n":"战争雷霆","v":"316"},{"n":"战意","v":"383"},{"n":"风暴英雄","v":"114"},{"n":"星际争霸2","v":"93"},{"n":"刀塔自走棋","v":"239"},{"n":"堡垒之夜","v":"164"},{"n":"枪神纪","v":"251"},{"n":"三国杀","v":"81"},{"n":"龙之谷","v":"112"},{"n":"古剑奇谭OL","v":"173"},{"n":"幻想全明星","v":"176"},{"n":"怀旧网游","v":"288"},{"n":"新游前瞻","v":"298"},{"n":"星战前夜:晨曦","v":"331"},{"n":"梦幻西游端游","v":"350"},{"n":"流放之路","v":"551"},{"n":"FPS沙盒","v":"633"},{"n":"永恒轮回","v":"459"},{"n":"激战2","v":"607"},{"n":"其他网游","v":"107"}] }],
- "3":[{"key":"area","name":"分区","value":[{"n":"王者荣耀","v":"35"},{"n":"和平精英","v":"256"},{"n":"LOL手游","v":"395"},{"n":"原神","v":"321"},{"n":"第五人格","v":"163"},{"n":"明日方舟","v":"255"},{"n":"哈利波特:魔法觉醒 ","v":"474"},{"n":"幻塔","v":"550"},{"n":"金铲铲之战","v":"514"},{"n":"APEX手游","v":"506"},{"n":"深空之眼","v":"598"},{"n":"无期迷途","v":"675"},{"n":"光遇","v":"687"},{"n":"跃迁旅人","v":"717"},{"n":"香肠派对","v":"689"},{"n":"猫之城","v":"645"},{"n":"玛娜希斯回响","v":"644"},{"n":"使命召唤手游","v":"386"},{"n":"黑色沙漠手游","v":"615"},{"n":"崩坏3","v":"40"},{"n":"游戏王:决斗链接","v":"407"},{"n":"游戏王","v":"303"},{"n":"蛋仔派对","v":"571"},{"n":"阴阳师","v":"36"},{"n":"空之要塞:启航","v":"718"},{"n":"火影忍者手游","v":"292"},{"n":"Fate/GO","v":"37"},{"n":"综合棋牌","v":"354"},{"n":"QQ飞车手游","v":"154"},{"n":"决战!平安京","v":"140"},{"n":"狼人杀","v":"41"},{"n":"三国杀移动版","v":"352"},{"n":"碧蓝航线","v":"113"},{"n":"影之诗","v":"156"},{"n":"明日之后","v":"189"},{"n":"部落冲突:皇室战争","v":"50"},{"n":"奥比岛手游","v":"661"},{"n":"盾之勇者成名录:浪潮","v":"704"},{"n":"雀姬","v":"214"},{"n":"公主连结Re:Dive","v":"330"},{"n":"DNF手游","v":"343"},{"n":"FIFA足球世界","v":"641"},{"n":"BanG Dream","v":"258"},{"n":"荒野乱斗","v":"469"},{"n":"CF手游","v":"333"},{"n":"战双帕弥什","v":"293"},{"n":"天涯明月刀手游","v":"389"},{"n":"解密游戏","v":"42"},{"n":"恋爱养成游戏","v":"576"},{"n":"暗黑破坏神:不朽","v":"492"},{"n":"暗区突围","v":"502"},{"n":"跑跑卡丁车手游","v":"265"},{"n":"非人学园","v":"212"},{"n":"百闻牌","v":"286"},{"n":"猫和老鼠手游","v":"269"},{"n":"坎公骑冠剑","v":"442"},{"n":"忍者必须死3","v":"203"},{"n":"梦幻西游手游","v":"342"},{"n":"航海王热血航线","v":"504"},{"n":"少女前线","v":"39"},{"n":"300大作战","v":"688"},{"n":"少女前线:云图计划","v":"525"},{"n":"漫威超级战争","v":"478"},{"n":"摩尔庄园手游","v":"464"},{"n":"宝可梦大集结","v":"493"},{"n":"小动物之星","v":"473"},{"n":"天地劫:幽城再临","v":"448"},{"n":"漫威对决","v":"511"},{"n":" 东方归言录","v":"538"},{"n":"梦幻模拟战","v":"178"},{"n":"时空猎人3","v":"643"},{"n":"重返帝国","v":"613"},{"n":"休闲小游戏","v":"679"},{"n":"其他手游","v":"98"},{"n":"新游评测","v":"274"}] }],
- "6":[{"key":"area","name":"分区","value":[{"n":"主机游戏","v":"236"},{"n":"我的世界","v":"216"},{"n":"独立游戏","v":"283"},{"n":"怀旧游戏","v":"237"},{"n":"弹幕互动玩法","v":"460"},{"n":"恐怖游戏","v":"276"},{"n":"禁闭求生","v":"707"},{"n":"斯普拉遁3","v":"694"},{"n":"卧龙:苍天陨落","v":"700"},{"n":"使命召唤19","v":"282"},{"n":"异度神剑","v":"665"},{"n":"艾尔登法环","v":"555"},{"n":"聚会游戏","v":"636"},{"n":"哥谭骑士","v":"716"},{"n":"命运2","v":"277"},{"n":"沙石镇时光","v":"630"},{"n":"Dread Hunger","v":"591"},{"n":"红色警戒2","v":"693"},{"n":"失落迷城:群星的诅咒","v":"714"},{"n":"策略游戏","v":"570"},{"n":"战地风云","v":"597"},{"n":"幽灵线:东京","v":"612"},{"n":"糖豆人","v":"357"},{"n":"消逝的光芒2","v":"586"},{"n":"只狼","v":"245"},{"n":"怪物猎人","v":"578"},{"n":"饥荒","v":"218"},{"n":"精灵宝可梦","v":"228"},{"n":"FIFA23","v":"708"},{"n":"暖雪","v":"582"},{"n":"全面战争:战锤3","v":"594"},{"n":"彩虹六号:异种","v":"580"},{"n":"战神","v":"579"},{"n":"FORZA 极限竞速","v":"302"},{"n":"NBA2K","v":"362"},{"n":"帝国时代4","v":"548"},{"n":"光环:无限","v":"559"},{"n":"孤岛惊魂6","v":"537"},{"n":"植物大战僵尸","v":"309"},{"n":"仙剑奇侠传七","v":"540"},{"n":"灵魂筹码","v":"223"},{"n":"格斗游戏","v":"433"},{"n":"荒野大镖客2","v":"226"},{"n":"重生细胞","v":"426"},{"n":"刺客信条","v":"227"},{"n":"恐鬼症","v":"387"},{"n":"以撒","v":"219"},{"n":"双人成行","v":"446"},{"n":"方舟","v":"295"},{"n":"仁王2","v":"313"},{"n":"鬼泣5","v":"244"},{"n":"枪火重生","v":"364"},{"n":"盗贼之海","v":"341"},{"n":"胡闹厨房","v":"507"},{"n":"体育游戏","v":"500"},{"n":"恐惧之间","v":"439"},{"n":"塞尔达","v":"308"},{"n":"马力欧制造2","v":"261"},{"n":"全境封锁2","v":"243"},{"n":"骑马与砍杀","v":"326"},{"n":"人类一败涂地","v":"270"},{"n":"鬼谷八荒","v":"424"},{"n":"无主之地3","v":"273"},{"n":"辐射76","v":"220"},{"n":"全面战争","v":"257"},{"n":"亿万僵尸","v":"463"},{"n":"暗黑破坏神2","v":"535"},{"n":"文字游戏","v":"583"},{"n":"恋爱模拟游戏","v":"592"},{"n":"泰拉瑞亚","v":"593"},{"n":"雨中冒险2","v":"441"},{"n":"游戏速通","v":"678"},{"n":"摔角城大乱斗","v":"681"},{"n":"勇敢的哈克","v":"692"},{"n":" 审判系列","v":"698"},{"n":"其他单机","v":"235"}] }],
- "1":[{"key":"area","name":"分区","value":[{"n":"视频唱见","v":"21"},{"n":"萌宅领域","v":"530"},{"n":"视频聊天","v":"145"},{"n":"舞见","v":"207"},{"n":"情感","v":"706"},{"n":"户外","v":"123"},{"n":"日常","v":"399"}] }],
- "5":[{"key":"area","name":"分区","value":[{"n":"唱见电台","v":"190"},{"n":"聊天电台","v":"192"},{"n":"配音","v":"193"}] }],
- "9":[{"key":"area","name":"分区","value":[{"n":"虚拟主播","v":"371"},{"n":"3D虚拟主播","v":"697"}] }],
- "10":[{"key":"area","name":"分区","value":[{"n":"生活分享","v":"646"},{"n":"运动","v":"628"},{"n":"搞笑","v":"624"},{"n":"手工绘画","v":"627"},{"n":"萌宠","v":"369"},{"n":"美食","v":"367"},{"n":"时尚","v":"378"},{"n":"影音馆","v":"33"}] }],
- "11":[{"key":"area","name":"分区","value":[{"n":"社科法律心理","v":"376"},{"n":"人文历史","v":"702"},{"n":"校园学习","v":"372"},{"n":"职场·技能","v":"377"},{"n":" 科技","v":"375"},{"n":"科学科普","v":"701"},{"n":"时政","v":"715"}] }],
- "13":[{"key":"area","name":"分区","value":[{"n":"游戏赛事","v":"561"},{"n":"体育赛事","v":"562"},{"n":"赛事综合","v":"563"}] }],
- "300":[{"key":"area","name":"分区","value":[{"n":"购物","v":"300000"}] }]
- },
- detailUrl:'https://live.bilibili.com/fyid',//二级详情拼接链接(json格式用)
- // detailUrl:'https://api.live.bilibili.com/xlive/web-room/v1/playUrl/playUrl?cid=fyid&platform=h5&otype=json&quality=0',//二级详情拼接链接(json格式用)
- // searchUrl:'/x/web-interface/search/type?__refresh__=true&page=fypage&page_size=42&order=online&platform=pc&highlight=1&single_column=0&keyword=**&search_type=live&dynamic_offset=0&preload=true',
- searchUrl:'https://api.bilibili.com/x/web-interface/search/type?search_type=live&keyword=**&page=1',
- searchable:2,
- quickSearch:0,
- headers:{
- "User-Agent":"PC_UA",
- "Referer": "https://www.bilibili.com",
- "Cookie":"$bili_cookie"
- },
- timeout:5000,
- limit:8,
- play_parse:true,
- // play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36"})}}],
- // play_json:[{re:'*', json:{jx:0, parse:1,header:JSON.stringify({"user-agent":"uc_ua"})}}],
- // play_json:0,
- lazy:"js:let ids=input.split('_');let result={};let iurl='https://api.live.bilibili.com/room/v1/Room/playUrl?cid='+ids[1]+'&'+ids[0];let html=request(iurl);let jRoot=JSON.parse(html);let jo=jRoot['data'];let ja=jo['durl'];let purl='';if(ja.length>0){purl=ja[0]['url']}result['parse']=0;result['playUrl']='';result['url']=unescape(purl);result['header']={Referer:'https://live.bilibili.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'};if(/h5/.test(ids[0])){result['contentType']='';input=result}else{result['contentType']='video/x-flv';input=result}",
- double:false,
- 推荐:'*',
- 一级:'json:data.list;title;system_cover;uname;roomid',
- // 二级:'*',
- 二级:"js:let aid=input.match(/\\/(\\d+)/)[1];log(aid);let html=request('https://api.live.bilibili.com/room/v1/Room/get_info?room_id='+aid);let jo=JSON.parse(html).data;let title=jo['title'];let pic=jo['keyframe'];let desc=jo['description'];let dire=jo['uid'];let typeName=jo['area_name'];let remark='在线人数:'+jo['online'];let vod={vod_id:aid,vod_name:title,vod_pic:pic,type_name:typeName,vod_area:'bililivedanmu',vod_remarks:remark,vod_actor:'直播间id-'+aid,vod_director:dire,vod_content:desc};vod['vod_play_from']='B站';vod['vod_play_url']='flv线路原画$platform=web&quality=4_'+aid+'#flv线路高清$platform=web&quality=3_'+aid+'#h5线路原画$platform=h5&quality=4_'+aid+'#h5线路高清$platform=h5&quality=3_'+aid;VOD=vod;",
- // 搜索:'json:data.result.live_room;title;cover;uname;roomid',
- 搜索:'js:let html=request(input);let msg=JSON.parse(html).message;if(msg!=="0"){VODS=[{vod_name:KEY+"➢"+msg,vod_id:"no_data",vod_remarks:"别点,缺少bili_cookie",vod_pic:"https://ghproxy.com/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}]}else{let videos=[];let vodList=JSON.parse(html).data.result.live_room;vodList.forEach(function(vod){let aid=vod["roomid"];let title="直播间:"+vod["title"].replace(\'\',"").replace("","");let img="https:"+vod["user_cover"];let remark=vod["watched_show"]["text_small"]+" "+vod["uname"];videos.push({vod_id:aid,vod_name:title,vod_pic:img,vod_remarks:remark})});VODS=videos}',
-}
\ No newline at end of file
diff --git a/tvboxqq/戏曲音乐/js/douyu.js b/tvboxqq/戏曲音乐/js/douyu.js
deleted file mode 100644
index 737dab7..0000000
--- a/tvboxqq/戏曲音乐/js/douyu.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var rule = {
- title:'斗鱼直播',
- host:'https://m.douyu.com',
- homeUrl:'/api/home/mix',//网站的首页链接,用于分类获取和推荐获取
- // url:'/api/room/list?page=fypage&type=fyclass',
- url:'/api/room/list?page=fypage&type=fyfilter',
- filterable:1,//是否启用分类筛选,
- filter_url:'{{fl.cateId}}',
- filter:{
- "PCgame":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"PCgame"},{"n":"英雄联盟","v":"LOL"},{"n":"热门游戏","v":"rmyx"},{"n":"穿越火线","v":"CF"},{"n":"超击突破","v":"SuperPeople"},{"n":"CFHD","v":"CFHD"},{"n":"使命召唤","v":"COD"},{"n":"DNF","v":"DNF"},{"n":"DOTA2","v":"DOTA2"},{"n":"炉石传说","v":"How"},{"n":"CS:GO","v":"CSGO"},{"n":"无畏契约","v":"VALORANT"},{"n":"lol云顶之弈","v":"ydzhy"},{"n":"魔兽争霸","v":"mszb"},{"n":"魔兽怀旧服","v":"wowclassic"},{"n":"自走棋","v":"dota2rpg"},{"n":"传奇","v":"cq"},{"n":"跑跑卡丁车","v":"Popkart"},{"n":"网易游戏","v":"wyyx"},{"n":"星际争霸","v":"SC"},{"n":"格斗游戏","v":"FTG"},{"n":"守望先锋","v":"Overwatch"},{"n":"DOTA","v":"DOTA"},{"n":"魔兽世界","v":"WOW"},{"n":"剑网3","v":"JX3"},{"n":"魔域","v":"EudemonsOnline"},{"n":"我的世界","v":"MC"},{"n":"超激斗梦境","v":"cjdmj"},{"n":"冒险岛","v":"mxd"},{"n":"三国杀","v":"sanguosha"},{"n":"梦幻西游","v":"MHXYOL"},{"n":"天涯明月刀","v":"tianya"},{"n":"街头篮球","v":"jtlq"},{"n":"NBA2KOL2","v":"NBA2KOL2"},{"n":"QQ飞车端游","v":"qqfcdy"},{"n":"战地之王","v":"AVA"},{"n":"军事游戏","v":"jsyx"},{"n":"棋牌娱乐","v":"qipai"},{"n":"FIFAONLINE4","v":"FOL4"},{"n":"热门网游","v":"rmwy"},{"n":"诛仙世界","v":"zxsj"},{"n":"千古风流","v":"qgflpc"},{"n":"APEX","v":"APEX"},{"n":"流放之路POE","v":"PathofExile"},{"n":"剑网3缘起","v":"JW3YQ"},{"n":"逆水寒","v":"nsh"},{"n":"风暴英雄","v":"HOTS"},{"n":"逆战","v":"NZ"},{"n":"坦克世界","v":"TKSJ"},{"n":"战舰世界","v":"wfws"},{"n":"巫师之昆特牌","v":"wszktp"},{"n":"反恐精英Online","v":"CS"},{"n":"暗黑破坏神","v":"DIABLO"},{"n":"梦三国2","v":"msg2"},{"n":"传奇世界","v":"cqsj"},{"n":"方舟:生存进化","v":"fzscjh"},{"n":"神武4电脑版","v":"swdnb"},{"n":"群雄逐鹿","v":"qxzl"},{"n":"堡垒之夜","v":"blzy"},{"n":"无限法则","v":"roe"},{"n":"问道电脑版","v":"wddnb"},{"n":"西山居游戏","v":"Seasun"},{"n":"最终幻想14","v":"FF14"},{"n":"战意","v":"WYZY"},{"n":"剑灵","v":"BladeSoul"},{"n":"星际战甲","v":"Warframe"},{"n":"龙之谷","v":"DragonNest"},{"n":"铁甲雄兵","v":"tjxb"},{"n":"古剑奇谭网络版","v":"gjqtwlb"},{"n":"轩辕传奇","v":"XYCQ"},{"n":"神途","v":"shentu"},{"n":"激战2","v":"GuildWars2"},{"n":"高达文化区","v":"gdyxq"},{"n":"忍者村大战2","v":"rzcdz2"},{"n":"RPG网游专区","v":"rpgwyzq"},{"n":"诛仙3","v":"zhuxian3"},{"n":"笑傲江湖OL","v":"xajhol"},{"n":"冒险岛2","v":"MXD2"},{"n":"无尽战区","v":"WJZQ"},{"n":"永恒之塔","v":"AION"},{"n":"竞速游戏","v":"jingsu"},{"n":"九阴真经","v":"JYZJ"},{"n":"FPS综合网游","v":"FPSOL"},{"n":"劲舞团","v":"jwt"},{"n":"天下","v":"tianxai"},{"n":"火箭联盟","v":"hjlm"},{"n":"泡泡堂","v":"ppt"},{"n":"音乐游戏","v":"MG"},{"n":"新倩女幽魂","v":"ONLINE"},{"n":"创世战车","v":"cszc"},{"n":"天谕","v":"tianyu"},{"n":"征途2","v":"zhengtu2"},{"n":"QQ炫舞","v":"qqxw"},{"n":"泰亚史诗","v":"tyss"},{"n":"大唐无双","v":"dtws"},{"n":"怪物猎人ol","v":"MHol"},{"n":"星战前夜:晨曦","v":"EVE"},{"n":"热血传奇怀旧版","v":"rxcqhjsgb"},{"n":"仙侠世界2","v":"xxsj2"},{"n":"枪火重生","v":"qhcs"},{"n":"彩虹岛","v":"CHD"},{"n":"御龙在天","v":"YLZT"},{"n":"英魂之刃","v":"YHZR"},{"n":"自由篮球","v":"ZYLQ"},{"n":"洛奇英雄传","v":"LQYXZ"},{"n":"封印者","v":"FYZ"},{"n":"合金弹头","v":"HJDT"},{"n":"新英雄年代","v":"XYXSD"},{"n":"星尘传说","v":"XCCS"},{"n":"盛趣游戏","v":"SQYX"},{"n":"新热血英豪","v":"XRXYH"},{"n":"沙盒游戏","v":"SHYX"},{"n":"我的世界:地下城","v":"MD"},{"n":"恐鬼症","v":"KGZ"},{"n":"领地人生","v":"LDRS"},{"n":"梦塔防","v":"TDOTK"},{"n":"重生边缘","v":"CSBYOL"},{"n":"大话西游2","v":"dhxy2"},{"n":"猎人","v":"lr"},{"n":"天子剑","v":"tianzijian"},{"n":"热血江湖online","v":"rxjhol"},{"n":"千年3","v":"qn3"},{"n":"天空之城","v":"tkzc"},{"n":"诺亚传说","v":"nycs"},{"n":"鹿鼎记","v":"ldj"},{"n":"新桃花源记","v":"xthyj"},{"n":"武魂2电脑版","v":"wh2pc"},{"n":"奇迹世界sun","v":"qjsjsun"},{"n":"地城之光","v":"dczg"},{"n":"剑侠世界2电脑版","v":"jxsj2pc"},{"n":"斩魂","v":"zhpc"},{"n":"大唐2","v":"dt2pc"},{"n":"幻想神域电脑版","v":"hxsypc"},{"n":"蜀山:初章","v":"ssczpc"},{"n":"狼人对决网游","v":"lrdjpc"},{"n":"武林群侠传","v":"wlqxzpc"},{"n":"卡拉彼丘","v":"klbq"},{"n":"破天一剑","v":"ptyj"},{"n":"剑雨江湖","v":"jyjh"},{"n":"四国军棋","v":"sgjq"},{"n":"命运方舟","v":"LostArk"},{"n":"新大话西游3","v":"xy3"},{"n":"暴雪游戏综合","v":"g_bliz"},{"n":"Battlebit","v":"BBR"},{"n":"长尾4部虚拟分区","v":"cw4bxnfq"},{"n":"幕后高手","v":"VEILEDEXPERTS"},{"n":"燕云十六声","v":"WHEREWINDSMEET"},{"n":"THEFINALS","v":"THEFINALS"},{"n":"NBA2KOnline","v":"NBA2KOL"},{"n":"塔瑞斯世界","v":"Tarisland"},{"n":"跑跑卡丁车:漂移","v":"KartRiderDrift"},{"n":"传奇永恒","v":"EternalLegend"},{"n":"权力的游戏凛冬将至页游","v":"GOTPC"},{"n":"全境封锁2","v":"TheDivision2"},{"n":"落日余晖","v":"Farlight84"}]}],
- "djry":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"djry"},{"n":"主机游戏","v":"TVgame"},{"n":"刺客信条:英灵殿","v":"AC"},{"n":"马里奥制造","v":"Mario"},{"n":"逃离塔科夫","v":"EFT"},{"n":"命运2","v":"MY2"},{"n":"EvilDead","v":"EvilDead"},{"n":"恐怖游戏","v":"Horror"},{"n":"荒野大镖客","v":"hydbk"},{"n":"九劫曲","v":"jjq"},{"n":"灵魂筹码","v":"lhcm"},{"n":"骑马与砍杀","v":"MountAndBlade"},{"n":"只狼","v":"ZL"},{"n":"饥荒","v":"DontStarve"},{"n":"全境封锁","v":"qjfs"},{"n":"怀旧游戏","v":"classic"},{"n":"NBA2K","v":"NBA2K"},{"n":"八方旅人","v":"OT"},{"n":"血污:夜之仪式","v":"Blood"},{"n":"人类一败涂地","v":"Human"},{"n":"挺进地牢","v":"Enter"},{"n":"环世界","v":"RimWorld"},{"n":"古墓丽影","v":"gmly"},{"n":"鬼泣","v":"DMC"},{"n":"往日不再","v":"WRBZ"},{"n":"仙剑奇侠传","v":"PAL"},{"n":"神秘海域","v":"Uncharted"},{"n":"塞尔达系列","v":"TLoZ"},{"n":"僵尸世界大战","v":"WWZ"},{"n":"足球游戏","v":"zq"},{"n":"橙光","v":"cg"},{"n":"了不起的修仙模拟器","v":"ACS"},{"n":"女神异闻录","v":"P5"},{"n":"斯普拉遁","v":"Splatoon"},{"n":"超级马里奥","v":"SMO"},{"n":"三国志系列","v":"Sangokushi"},{"n":"星际公民","v":"StarCitizen"},{"n":"最终幻想","v":"FF"},{"n":"中土世界:战争之影","v":"MiddleEarth"},{"n":"流放者柯南","v":"Conan"},{"n":"深海迷航","v":"Subnautica"},{"n":"三国群英传","v":"SANGO"},{"n":"腐烂国度","v":"SoD2"},{"n":"无主之地","v":"Bor"},{"n":"圣女战旗","v":"Banner"},{"n":"哆啦A梦:牧场物语","v":"Doraemon"},{"n":"太吾绘卷","v":"twhj"},{"n":"SCUM","v":"Scum"},{"n":"以撒的结合","v":"Isaac"},{"n":"文明","v":"CVI"},{"n":"仁王","v":"NIOH"},{"n":"缺氧","v":"ONI"},{"n":"JUMP大乱斗","v":"JUMPDLD"},{"n":"皇牌空战","v":"hpkz"},{"n":"体育游戏","v":"tyyx"},{"n":"海岛大亨","v":"hddh"},{"n":"植物大战僵尸:花园战争系列","v":"PvsZ"},{"n":"蜘蛛侠","v":"Spide"},{"n":"战国无双","v":"ZGWS"},{"n":"勇者斗恶龙:建造者2","v":"DQB2"},{"n":"遗迹:灰烬重生","v":"Rem"},{"n":"血源","v":"BB"},{"n":"旺达与巨像","v":"SotC"},{"n":"死亡搁浅","v":"DS"},{"n":"模拟人生","v":"Sims"},{"n":"空洞骑士","v":"HKS"},{"n":"极品飞车","v":"jpfc"},{"n":"地铁:离去","v":"ME"},{"n":"孢子","v":"Spore"},{"n":"暗黑地牢","v":"DD"},{"n":"生死狙击2","v":"ssjjtwo"},{"n":"三国战纪","v":"sgzj"},{"n":"怀旧FC","v":"edwcy"},{"n":"经典单机","v":"jddj"},{"n":"英雄无敌","v":"HoMM"},{"n":"街机游戏","v":"jjyx"},{"n":"合金装备","v":"MetalGear"},{"n":"红色警戒","v":"hsjj"},{"n":"星球大战系列","v":"StarWars"},{"n":"镜之边缘","v":"MsE"},{"n":"大将军:罗马","v":"Rome"},{"n":"火焰纹章系列","v":"FireEmblem"},{"n":"星露谷物语","v":"Stardew"},{"n":"火炬之光","v":"Torchlight"},{"n":"赛博朋克2077","v":"Cyberpunk"},{"n":"中国式家长","v":"CP"},{"n":"精灵宝可梦系列","v":"Pokemon"},{"n":"地牢围攻","v":"DS3"},{"n":"奇异人生","v":"LiS"},{"n":"少数幸运儿","v":"WHF"},{"n":"无人深空","v":"NMS"},{"n":"GT赛车7","v":"GT"},{"n":"超级机器人大战","v":"SRW"},{"n":"信长之野望","v":"KOEINOBU"},{"n":"这是我的战争","v":"TWoM"},{"n":"杀戮尖塔","v":"sljt"},{"n":"帝国时代","v":"AoEIV"},{"n":"死亡空间","v":"swkj"},{"n":"杀手","v":"Hitman"},{"n":"MUGEN","v":"mugen"},{"n":"足球经理","v":"Football"},{"n":"亿万僵尸","v":"Billions"},{"n":"一起玩农场","v":"Farm"},{"n":"武装突袭","v":"ArmA"},{"n":"荣耀战魂","v":"Honor"},{"n":"欧洲卡车模拟器","v":"Truck"},{"n":"漫漫长夜","v":"mmcy"},{"n":"永恒轮回","v":"Survival"},{"n":"孤岛惊魂","v":"FarCry"},{"n":"福尔摩斯","v":"Holmes"},{"n":"都市:天际线","v":"Skylines"},{"n":"盗贼之海","v":"hdzh"},{"n":"raft","v":"raft"},{"n":"Dayz","v":"DayZ"},{"n":"60秒","v":"60S"},{"n":"俄罗斯钓鱼","v":"RF"},{"n":"猎人:荒野的召唤","v":"theHunter"},{"n":"失落城堡","v":"LC"},{"n":"恐怖黎明","v":"GD"},{"n":"看门狗","v":"kmg"},{"n":"真三国无双","v":"DW"},{"n":"泰拉瑞亚","v":"Terraria"},{"n":"底特律:变人","v":"Detroit"},{"n":"恶魔城","v":"Castlevania"},{"n":"毁灭战士","v":"Doom"},{"n":"坎巴拉太空计划","v":"Kerbal"},{"n":"模拟山羊","v":"GoatSim"},{"n":"欧陆风云","v":"EU"},{"n":"乞丐模拟器","v":"HoboToughLife"},{"n":"小偷模拟器","v":"ThiefSimulator"},{"n":"逆转裁判","v":"AceA"},{"n":"深岩银河","v":"DRGD"},{"n":"植物大战僵尸","v":"PvZ"},{"n":"最后的绿洲","v":"LO"},{"n":"大富翁","v":"RichMan"},{"n":"英雄连","v":"yxl"},{"n":"永劫无间","v":"NB"},{"n":"破败王者","v":"RK"},{"n":"新世界","v":"NW"},{"n":"部落与弯刀","v":"BLYWD"},{"n":"森林","v":"Forest"},{"n":"kenshi","v":"kenshi"},{"n":"一起开火车!","v":"Unrailed"},{"n":"主机其他游戏","v":"OG"},{"n":"战场兄弟","v":"ZCXD"},{"n":"军团战争","v":"jtzz"},{"n":"人间地狱","v":"RJDY"},{"n":"战术小队","v":"Squad"},{"n":"弹丸论破","v":"dwlp"},{"n":"基佬大乱斗","v":"jldld"},{"n":"僵尸毁灭工程","v":"jshmgc"},{"n":"泰坦之旅","v":"TTZL"},{"n":"妖精的尾巴","v":"FT"},{"n":"超级兔子人","v":"Bunny"},{"n":"健身环大冒险","v":"RFA"},{"n":"冬日计划","v":"drjh"},{"n":"泰坦陨落","v":"Titanfall"},{"n":"四海兄弟","v":"shxd"},{"n":"创世理想乡","v":"Craftopia"},{"n":"地平线","v":"Horizon"},{"n":"幽灵线:东京","v":"GTO"},{"n":"生化危机4重制版","v":"ResidentEvil"},{"n":"怪物火车","v":"GWHC"},{"n":"瑞奇与叮当","v":"RCL"},{"n":"Grounded","v":"Grounded"},{"n":"小小梦魇","v":"XXMM"},{"n":"糖豆人","v":"FallGuys"},{"n":"盗贼遗产","v":"TVV"},{"n":"英灵神殿","v":"Valheim"},{"n":"部落:原始建造者","v":"Tribe"},{"n":"动物派对","v":"Animals"},{"n":"暗影火炬城","v":"FIST"},{"n":"阿尔比恩","v":"Albion"},{"n":"鬼谷八荒","v":"GGBH"},{"n":"极限竞速:地平线4","v":"FH4"},{"n":"恐惧之间","v":"Fearsurrounds"},{"n":"孤岛惊魂6","v":"FarCry6"},{"n":"怪物猎人","v":"MonsterHunterRise"},{"n":"仁王2","v":"Nioh2"},{"n":"三国志14","v":"THREEKINGDOMSXIV"},{"n":"神界:原罪2","v":"DivinityOS2"},{"n":"狙击手:幽灵战士契约2","v":"SniperContracts2"},{"n":"全面战争","v":"TotalWarWARHAMMER"},{"n":"战争机器:战术小队","v":"GearsTactics"},{"n":"侠之道","v":"PathOfWuxia"},{"n":"海绵宝宝:比奇堡的冒险","v":"BattleforBikini"},{"n":"奇妙探险队2","v":"CuriousExpedition2"},{"n":"刺客信条:奥德赛","v":"Odyssey"},{"n":"丧尸围城4","v":"DeadRising4"},{"n":"神秘海域2:纵横四海","v":"AmongThieves"},{"n":"神秘海域3:德雷克的诡计","v":"DrakesDeception"},{"n":"星球大战:前线","v":"Battlefront"},{"n":"灵魂旅人","v":"SpiritFarerlhlr"},{"n":"面容","v":"Visage"},{"n":"俄罗斯方块效应:连接","v":"TetrisEffect"},{"n":"SD高达G世纪:起源","v":"SDGundamG"},{"n":"Fate/EXTELLA","v":"FateEXTELLA"},{"n":"妖精剑士F","v":"FairyFencerF"},{"n":"荒神","v":"Aragami"},{"n":"晚班","v":"LateShift"},{"n":"光环战争","v":"HaloWars"},{"n":"子弹风暴","v":"Bulletstorm"},{"n":"暗黑迷途","v":"2Dark"},{"n":"巡警","v":"BeatCop"},{"n":"狙击精英4","v":"SniperElite4"},{"n":"三国志13:威力加强版","v":"Sangokushi13"},{"n":"热血物语:地下世界","v":"RiverCityRansom"},{"n":"史诗战争模拟器","v":"BattleSimulator"},{"n":"银河护卫队","v":"Guardians"},{"n":"讨鬼传2","v":"Toukiden2"},{"n":"闪乱神乐:少女们的选择","v":"SenranKagura"},{"n":"幽灵行动:荒野","v":"GhostReconWildland"},{"n":"白色情人节","v":"WhiteDay"},{"n":"美国职业摔角联盟2K17","v":"WWE2K"},{"n":"苏菲的炼金工房","v":"AtelierSophie"},{"n":"喷射侠","v":"Splasher"},{"n":"双截龙4","v":"DoubleDragon4"},{"n":"地下蚁国","v":"Undergrowth"},{"n":"九张羊皮纸","v":"NineParchments"},{"n":"咒语力量3","v":"Spellforce3"},{"n":"小兵大战","v":"Warpips"},{"n":"维京人人中之狼","v":"VikingsWofM"},{"n":"你好邻居","v":"Helloneighbor"},{"n":"寻找天堂","v":"findparadise"},{"n":"画中世界","v":"Gorogoa"},{"n":"桥梁工程师传送门","v":"bridgecons"},{"n":"现代战争","v":"ModernCombat"},{"n":"SCP:秘密实验室","v":"scpsl"},{"n":"绯红结系","v":"SCARLETNEXUS"},{"n":"罪恶装备:STRIVE","v":"GuiltyGear"},{"n":"涅克罗蒙达:赏金猎人","v":"NHiredGun"},{"n":"骑士精神2","v":"Chivalry2"},{"n":"最后的咒语","v":"TheLastSpell"},{"n":"真女神转生3","v":"ShinMegami3"},{"n":"工业崛起","v":"RiseIndustry"},{"n":"征服的荣耀:围城","v":"SIEGE"},{"n":"前往中世纪","v":"GoMedieval"},{"n":"伊始之地","v":"TerraNil"},{"n":"二之国2:亡灵之国","v":"NinoKuniII"},{"n":"二之国:白色圣灰的女王","v":"NinoKuni"},{"n":"进击的巨人2","v":"AttackonTitan2"},{"n":"航海日记2","v":"hhrj2"},{"n":"隐龙传:影踪","v":"HiddenDragon"},{"n":"魔域之书","v":"Bookofdevil"},{"n":"诸神灰烬:救赎","v":"AshofGods"},{"n":"自由人:游击战争","v":"Freeman"},{"n":"战国无双5","v":"SWarriors5"},{"n":"宇宙主义","v":"TheUniversim"},{"n":"死亡教堂","v":"DeathCathedral"},{"n":"灵魂能力6","v":"SoulCalibur6"},{"n":"不要喂食猴子","v":"NotFeedMonkeys"},{"n":"古剑奇谭3","v":"GuJianqitan3"},{"n":"日落过载","v":"SunsetOverdrive"},{"n":"幻影深渊","v":"PhantomAbyss"},{"n":"迷城重生","v":"RebornCity"},{"n":"剑士","v":"KenshiJS"},{"n":"GRIS","v":"GRIS"},{"n":"古剑奇谭:永夜","v":"gujianyongye"},{"n":"核爆RPG","v":"ATOMRPG"},{"n":"嗜血印","v":"BloodySpell"},{"n":"伊苏9","v":"Ys9"},{"n":"兽人必须死3","v":"OrcsDie3"},{"n":"狙击精英VR","v":"SniperEliteVR"},{"n":"遗忘之城","v":"ForgotCity"},{"n":"异种","v":"Quarantine"},{"n":"二人世界","v":"WorldforTwo"},{"n":"石炉","v":"Stonehearth"},{"n":"上帝之城:监狱帝国","v":"CityofGod"},{"n":"狂热运输2","v":"TransportFever2"},{"n":"机甲战士5","v":"MechWarrior5"},{"n":"DJMAX致敬","v":"DJMAXRESPECT"},{"n":"分手装修","v":"ToolUP"},{"n":"PICOPARK","v":"PICOPARK"},{"n":"光明记忆:无限","v":"Brightmemory"},{"n":"死亡之门","v":"DeathsDoor"},{"n":"侠盗公司","v":"RogueCompany"},{"n":"英雄传说:创之轨迹","v":"HajimariNOKiseki"},{"n":"战地系列","v":"Battlefiel"},{"n":"塞尔达传说:天空之剑HD","v":"SkywardSword"},{"n":"脑航员2","v":"Psychonauts2"},{"n":"12分钟","v":"TwelveMinutes"},{"n":"九十六号公路","v":"Road96"},{"n":"FORECLOSED","v":"FORECLOSED"},{"n":"黑书","v":"theblackbook"},{"n":"喋血复仇","v":"Back4Blood"},{"n":"死寂","v":"DeathlyStillness"},{"n":"审判之逝","v":"Lostjudgment"},{"n":"帝国神话","v":"mythofempires"},{"n":"艾尔登法环","v":"ELDENRING"},{"n":"互动派对","v":"INTERACTIVEPARTY"},{"n":"极限国度","v":"RidersRepublic"},{"n":"极限竞速:地平线5","v":"ForzaHorizon5"},{"n":"使命召唤系列","v":"CALLOFDUTYCOD"},{"n":"网吧模拟器","v":"InternetCS"},{"n":"文字游戏","v":"WordGame"},{"n":"消逝的光芒2","v":"DyingLight2"},{"n":"战神:诸神黄昏","v":"GodofWarRagnarok"},{"n":"师父","v":"SIFU"},{"n":"恶月十三","v":"Undecember"},{"n":"海上狼人杀","v":"DreadHunger"},{"n":"最终幻想:起源","v":"STRANGEROFPARADISE"},{"n":"地心护核者","v":"CoreKeeper"},{"n":"霍格沃茨之遗","v":"HogwartsLegacy"},{"n":"午夜猎魂","v":"MidnightGhostHunt"},{"n":"生死轮回","v":"Loopmancer"},{"n":"隐秘的角落","v":"YinMiDeJiaoLuo"},{"n":"江湖客栈","v":"TheJianghu"},{"n":"Overprime","v":"Overprime"},{"n":"森林之子","v":"SonsOfTheForest"},{"n":"弈仙牌","v":"yixianpai"},{"n":"夜族崛起","v":"VRising"},{"n":"漫威SNAP","v":"MarvelSnap"},{"n":"伏魔录","v":"SoulDossier"},{"n":"魔力宝贝","v":"CrossGate"},{"n":"弹幕互动玩法","v":"DMHDXY"},{"n":"木卫四协议","v":"CallistoProtocol"},{"n":"罗马复兴","v":"RomanRenaissance"},{"n":"风暴之门","v":"StormGate"},{"n":"游戏王:大师决斗","v":"MasterDuel"},{"n":"暗邪西部","v":"EvilWest"},{"n":"战锤40K:暗潮","v":"40KDarktide"},{"n":"索尼克未知边境","v":"SonicFrontiers"},{"n":"漂泊牧歌","v":"WanderingVillage"},{"n":"塞尔达传说:王国之泪","v":"TEARSKINGDOM"},{"n":"破碎线","v":"Shatterline"},{"n":"卧龙:苍天陨落","v":"Wolong"},{"n":"卡库远古封印","v":"KAKU"},{"n":"原子之心","v":"AtomicHeart"},{"n":"霓虹入侵者","v":"FromSpace"},{"n":"Warhaven","v":"Warhaven"},{"n":"宝可梦:朱/紫","v":"ScarletandViolet"},{"n":"第一后裔","v":"TheFirstDescendant"},{"n":"铳墓G.O.R.E.","v":"GUNGRAVEGORE"},{"n":"漫威暗夜之子","v":"MarvelMidnightSuns"},{"n":"奇怪的RPG","v":"WeirdRPG"},{"n":"东方:平野孤鸿","v":"MomentinEast"},{"n":"冰封之焰","v":"FrozenFlame"},{"n":"神之天平","v":"ASTLIBRARevision"},{"n":"伊克西翁","v":"IXION"},{"n":"主机一起看","v":"zjyqk"},{"n":"社交互动游戏","v":"SJHDYX"},{"n":"至暗时刻","v":"DarkandDarker"},{"n":"江湖十一","v":"Jianghu11"},{"n":"XDefiant","v":"XDefiant"},{"n":"狂野之心","v":"WildHearts"},{"n":"最终幻想16","v":"FinalFantasyXVI"},{"n":"街头霸王","v":"StreetFighter"},{"n":"零~月蚀的假面~","v":"FATALFRAME"},{"n":"魔戒:咕噜","v":"Gollum"},{"n":"幻兽帕鲁","v":"Palworld"},{"n":"沙盒与副本:英勇之地","v":"HerosLand"},{"n":"永恒天空","v":"ForeverSkies"},{"n":"逆光迷途","v":"LostinDarklight"},{"n":"迷瘴纪事","v":"MiasmaChronicles"},{"n":"蓝色协议","v":"lansexieyi"},{"n":"上古卷轴OL","v":"TheElderScrolls"},{"n":"OnlyUp","v":"onlyup"},{"n":"波斯王子:失落王冠","v":"TheLostCrown"}]}],
- "syxx":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"syxx"},{"n":"王者荣耀","v":"wzry"},{"n":"LOL手游","v":"LOLM"},{"n":"崩坏:星穹铁道","v":"bhxqtd"},{"n":"和平精英","v":"hpjy"},{"n":"暗区突围","v":"aqtw"},{"n":"幻塔","v":"ht"},{"n":"火影忍者","v":"hyrz"},{"n":"逆水寒手游","v":"NSHM"},{"n":"COD手游","v":"smzhsy"},{"n":"哈利波特:魔法觉醒","v":"HarryPotter"},{"n":"lol电竞经理","v":"EGAME"},{"n":"DNF手游","v":"mdnf"},{"n":"金铲铲之战","v":"JGAME"},{"n":"天刀手游","v":"tdsy"},{"n":"原神","v":"yuanshen"},{"n":"航海王热血航线","v":"HHWRXHX"},{"n":"万国觉醒","v":"wgjx"},{"n":"鸿图之下","v":"htzx"},{"n":"欢乐麻将","v":"HLMJ"},{"n":"王者模拟战","v":"wzrpg"},{"n":"中国象棋","v":"ZGXQ"},{"n":"天谕手游","v":"tysy"},{"n":"巅峰坦克","v":"DFTK"},{"n":"新游中心","v":"xyzx"},{"n":"热门手游","v":"phone"},{"n":"梦幻手游","v":"mhxy"},{"n":"QQ飞车","v":"qqfcsy"},{"n":"第五人格","v":"dwrg"},{"n":"欢乐斗地主","v":"hlddz"},{"n":"荒野乱斗","v":"hyld"},{"n":"阴阳师","v":"yys"},{"n":"狼人杀","v":"LRS"},{"n":"JJ斗地主","v":"jj"},{"n":"梦幻新诛仙","v":"mhxzx"},{"n":"街霸对决","v":"jbdj"},{"n":"一人之下","v":"yrzx"},{"n":"多多自走棋","v":"zzq"},{"n":"崩坏3","v":"bhxl"},{"n":"风云岛行动","v":"fydxd"},{"n":"云游戏","v":"cloudgame"},{"n":"跑跑手游","v":"PPKDCSY"},{"n":"率土之滨","v":"stzb"},{"n":"灌篮高手","v":"glgs"},{"n":"皇室战争","v":"hszz"},{"n":"忍者必须死3","v":"rzbxs3"},{"n":"神武4手游","v":"sw3"},{"n":"梦幻模拟战","v":"mhmnz"},{"n":"实况足球","v":"skzq"},{"n":"剑与远征","v":"jyyz"},{"n":"航海王:燃烧意志","v":"hhwrsyz"},{"n":"球球大作战","v":"qqdzz"},{"n":"英雄杀","v":"yxs"},{"n":"魔域口袋版","v":"mykdb"},{"n":"口袋新旅程","v":"KDXLC"},{"n":"剑网3:指尖江湖","v":"jw3zjjh"},{"n":"部落冲突","v":"blct"},{"n":"剑与家园","v":"jyjy"},{"n":"新笑傲江湖","v":"xxajh"},{"n":"猫和老鼠","v":"mhls"},{"n":"猎人手游","v":"lrlr"},{"n":"明日之后","v":"mrzh"},{"n":"影之诗","v":"yzs"},{"n":"决战平安京","v":"jzpaj"},{"n":"决斗之城","v":"JDZC"},{"n":"魂斗罗归来","v":"DLHGL"},{"n":"圣斗士星矢","v":"sdsxs"},{"n":"魔力宝贝手游","v":"mlbbsy"},{"n":"热血街篮","v":"rxjl"},{"n":"手游推广","v":"rmsy"},{"n":"魔灵召唤","v":"mlzh"},{"n":"香肠派对","v":"xcpd"},{"n":"迷你世界","v":"MNSJ"},{"n":"荒野行动","v":"hyxd"},{"n":"战双帕弥什","v":"zspms"},{"n":"大话西游2口袋版","v":"dhxy2kdb"},{"n":"FIFA足球世界","v":"fifazqsj"},{"n":"街篮","v":"jl"},{"n":"一起来捉妖","v":"yiqilaizhuoyao"},{"n":"明日方舟","v":"mrfz"},{"n":"自由幻想手游","v":"zyhx"},{"n":"一梦江湖","v":"ymjh"},{"n":"完美世界手游","v":"wmsjsy"},{"n":"拳皇98OL","v":"kof98"},{"n":"赛尔号","v":"srh"},{"n":"猎魂觉醒","v":"lhjx"},{"n":"仙境传说","v":"xjcs"},{"n":"流星群侠传","v":"liuxinghudiejian"},{"n":"特色手游","v":"tssy"},{"n":"逃跑吧少年","v":"tpbsn"},{"n":"弹弹堂","v":"TTT"},{"n":"石器时代","v":"sqsd"},{"n":"RPG手游","v":"rpgsy"},{"n":"英魂之刃口袋版","v":"yh"},{"n":"拉结尔","v":"lje"},{"n":"倩女幽魂手游","v":"qnyhsy"},{"n":"决斗之城2","v":"jdzc2"},{"n":"传奇手游","v":"cqsy"},{"n":"雀魂","v":"Majsoul"},{"n":"二次元手游","v":"ecysy"},{"n":"天龙八部online","v":"tianlongbabuonline"},{"n":"征途2手游","v":"zt2sy"},{"n":"万王之王3D","v":"wwzw3D"},{"n":"武林外传","v":"wlwz"},{"n":"我叫MT4","v":"MT4"},{"n":"元气骑士","v":"yuanqiqishi"},{"n":"红警OL手游","v":"hjolsy"},{"n":"植物大战僵尸手游","v":"ZWDZJS"},{"n":"龙之谷手游","v":"lzgsy"},{"n":"创造与魔法","v":"ccymf"},{"n":"境界-死神激斗","v":"jjssjd"},{"n":"奇迹觉醒","v":"qjjx"},{"n":"光遇","v":"skygy"},{"n":"游戏王:决斗链接","v":"yxwjdlj"},{"n":"巅峰战舰","v":"dfzj"},{"n":"绝世战魂","v":"jszh"},{"n":"雷霆游戏","v":"ltyx"},{"n":"寻仙","v":"xunxian"},{"n":"天天象棋","v":"ttxq"},{"n":"王国纪元","v":"wgjy"},{"n":"梦幻诛仙","v":"mhzx"},{"n":"雪鹰领主","v":"xylz"},{"n":"贪婪洞窟2","v":"tldk2"},{"n":"龙族幻想","v":"lzhx"},{"n":"妖精的尾巴:魔导少年","v":"YJDWB"},{"n":"剑网3指尖对弈","v":"jwszjdy"},{"n":"三国杀移动版","v":"SGSSY"},{"n":"罗布乐思","v":"Roblox"},{"n":"足球手游","v":"zqsy"},{"n":"蜀门","v":"sm"},{"n":"全民枪战2","v":"qmqz2"},{"n":"秦时明月世界","v":"qsmysj"},{"n":"独立手游","v":"dlsy"},{"n":"神都夜行录","v":"sdyxl"},{"n":"风之大陆","v":"fzdl"},{"n":"金属对决","v":"jsdj"},{"n":"轩辕剑龙舞云山","v":"xyjlwys"},{"n":"微乐棋牌","v":"WLQP"},{"n":"街篮2","v":"jl2"},{"n":"赛尔号手游","v":"srhsy"},{"n":"极光计划","v":"jgjh"},{"n":"不良人3","v":"blr3"},{"n":"镇魔曲手游","v":"zmq"},{"n":"武侠乂手游","v":"wxysy"},{"n":"永恒纪元","v":"yhjy"},{"n":"乱世王者","v":"lswz"},{"n":"仙剑4","v":"xjqxz4"},{"n":"长安幻世绘","v":"cahsh"},{"n":"篮球手游","v":"lqsy"},{"n":"鬼泣-巅峰之战","v":"gqdfzz"},{"n":"射击类手游","v":"qtsy"},{"n":"权力与纷争","v":"qlyfz"},{"n":"命运歌姬","v":"mygj"},{"n":"项羽传","v":"xyz"},{"n":"暗黑不朽","v":"diabloimmortal"},{"n":"妖神记","v":"ysj"},{"n":"新神魔大陆","v":"xsmdl"},{"n":"公主连结Re:Dive","v":"gzlj"},{"n":"三国志战略版","v":"sgzzlb"},{"n":"口袋觉醒","v":"kdjx"},{"n":"天地劫:幽城再临","v":"tdj"},{"n":"凹凸世界","v":"atsj"},{"n":"云上城之歌","v":"ysczg"},{"n":"荣誉指挥官","v":"ryzhg"},{"n":"天龙八部手游","v":"tlbbsy"},{"n":"五子棋","v":"wzq"},{"n":"围棋","v":"wq"},{"n":"梦想新大陆","v":"mxxdl"},{"n":"三国志幻想大陆:国创加强版","v":"sgzhxdl"},{"n":"造梦无双","v":"zmws"},{"n":"全球行动","v":"qqxd"},{"n":"放学别跑","v":"FXBP"},{"n":"诛仙手游","v":"zxsy"},{"n":"妄想山海","v":"wxsh"},{"n":"黎明觉醒:生机","v":"lmjx"},{"n":"龙之谷2手游","v":"lzg2sy"},{"n":"庆余年","v":"QYN"},{"n":"我的侠客","v":"wdxk"},{"n":"真三国无双霸","v":"zsgwsb"},{"n":"大话西游手游","v":"dhxysy"},{"n":"影之刃3","v":"YZR3"},{"n":"开心消消乐","v":"kxxxl"},{"n":"战争怒吼","v":"zznh"},{"n":"忘川风华录","v":"wcfhl"},{"n":"新剑侠情缘手游","v":"xjxqysy"},{"n":"超凡先锋","v":"cfxf"},{"n":"重生细胞","v":"csxb"},{"n":"一念逍遥","v":"ynxy"},{"n":"坦克世界闪击战","v":"SJZ"},{"n":"汉家江湖","v":"HJJH"},{"n":"海岛奇兵","v":"hdqb"},{"n":"阴阳师:妖怪小班","v":"bgyry"},{"n":"仙剑奇侠传九野","v":"xjqxzjy"},{"n":"魔域手游","v":"mysy"},{"n":"大唐无双手游","v":"dtwssy"},{"n":"泰拉瑞亚手游","v":"tlrysy"},{"n":"地铁跑酷","v":"dtpk"},{"n":"战舰世界闪击战","v":"zjsjsjz"},{"n":"狂暴之翼","v":"kbzy"},{"n":"西游女儿国","v":"xyneg"},{"n":"少年三国志","v":"snsgz"},{"n":"钢琴师","v":"gqs"},{"n":"节奏大爆炸","v":"jzdbz"},{"n":"喵斯快跑","v":"mskp"},{"n":"双子","v":"sz"},{"n":"小美斗地主","v":"xmddz"},{"n":"全民奇迹2","v":"qmqj2"},{"n":"地下城堡2:黑暗觉醒","v":"dxcb2"},{"n":"梦想世界3手游","v":"mxsj3"},{"n":"有杀气童话2","v":"YSQTH2"},{"n":"镇魂街:武神躯","v":"zhjwsq"},{"n":"斗罗大陆:斗神再临","v":"dldldszl"},{"n":"斗罗大陆:武魂觉醒","v":"dldlwhjx"},{"n":"斗罗大陆2绝世唐门","v":"dldl2jstm"},{"n":"战神觉醒","v":"zsjx"},{"n":"荣耀大天使","v":"rydts"},{"n":"蓝月传奇","v":"lycq"},{"n":"凡人修仙传挂机版H5","v":"frxxzgjbh5"},{"n":"谁是首富H5","v":"sssfh5"},{"n":"攻城掠地","v":"gcld"},{"n":"盗墓笔记","v":"dmbj"},{"n":"剑与轮回","v":"jylh"},{"n":"混沌起源","v":"hdqy"},{"n":"大天使之剑","v":"dtszj"},{"n":"战斗少女跑酷","v":"zdsnpk"},{"n":"绝世仙王","v":"jsxw"},{"n":"一刀传世","v":"ydcs"},{"n":"斗罗大陆","v":"dldl"},{"n":"破雪刃","v":"pxr"},{"n":"JJ象棋","v":"jjxq"},{"n":"天姬变","v":"tjb"},{"n":"剑玲珑","v":"jll"},{"n":"火线精英","v":"hxjy"},{"n":"造梦西游OL","v":"zmxyol"},{"n":"热血神剑","v":"rxsj"},{"n":"奥奇传说手游","v":"aqcssy"},{"n":"战斗吧龙魂","v":"zdblh"},{"n":"猫猫咖啡屋","v":"mmkfw"},{"n":"猫之宿约者","v":"mzsyz"},{"n":"最终幻想:勇气启示录幻影战争","v":"hyzz"},{"n":"葫芦娃兄弟","v":"hlwxd"},{"n":"造梦西游4","v":"zmxy4"},{"n":"漫威超级战争","v":"MarvelSuperWar"},{"n":"比特小队","v":"btxd"},{"n":"战舰联盟","v":"zjlm"},{"n":"另一个伊甸:超越时空的猫","v":"lygyd"},{"n":"少女前线","v":"snqx"},{"n":"胡莱三国3","v":"hlsg3"},{"n":"灵魂宝戒","v":"lhbj"},{"n":"奥拉星","v":"alx"},{"n":"诸神皇冠","v":"zswg"},{"n":"不休的乌拉拉","v":"bqdwll"},{"n":"先游云游戏","v":"Gamer"},{"n":"万象物语手游","v":"wxwy1"},{"n":"绿茵信仰","v":"lyxy"},{"n":"烟雨江湖","v":"yyjhsy"},{"n":"文明与征服","v":"wmyzf"},{"n":"神角技巧","v":"SJJQ"},{"n":"碧蓝航线手游","v":"blhxsy"},{"n":"300大作战","v":"300dzz"},{"n":"2047","v":"2047"},{"n":"机动战队大作战","v":"jdzddzz"},{"n":"第七史诗","v":"dqss"},{"n":"活下去","v":"hxq"},{"n":"宝可梦大集结","v":"PokemonUNITE"},{"n":"无极仙途","v":"wjxt"},{"n":"元素方尖","v":"ysfj"},{"n":"汉末霸业","v":"hmby"},{"n":"EVE星战前夜:无烬星河","v":"evexzqywjxh"},{"n":"弹力果冻","v":"tlgd"},{"n":"七雄纷争","v":"qxfz"},{"n":"放置江湖","v":"fzjh"},{"n":"火力苏打(T3)","v":"T3"},{"n":"植物大战僵尸2","v":"zwdzjs2"},{"n":"魔神英雄传","v":"msyxz"},{"n":"球球英雄","v":"qqyx"},{"n":"悠长假期","v":"ycjq"},{"n":"无悔华夏","v":"whrhx"},{"n":"猫之城","v":"mzc"},{"n":"墨斗","v":"modou"},{"n":"圣斗士星矢:正义传说","v":"sdsxszyz"},{"n":"未定事件簿","v":"wdsjp"},{"n":"白夜极光","v":"byjg"},{"n":"ProjectGAIA","v":"projectgaia"},{"n":"斗罗大陆:魂师对决","v":"dldlhsdj"},{"n":"古墓丽影传说:迷踪","v":"gmlycsmz"},{"n":"漫威对决","v":"mwdj"},{"n":"道友请留步","v":"dyqlb"},{"n":"我是航海家","v":"wshhj"},{"n":"军团战棋英雄时代","v":"jtzqyxsd"},{"n":"闪烁之光","v":"syzg"},{"n":"牧羊人之心","v":"myrzx"},{"n":"老农种树","v":"lnzs"},{"n":"苍蓝境界","v":"cljj"},{"n":"偶像梦幻祭2","v":"oxmhj2"},{"n":"卡卡保皇","v":"kkbh"},{"n":"灵猫传","v":"lmz"},{"n":"还有这种操作2","v":"hyzzcz"},{"n":"剑侠世界3","v":"jxsj3"},{"n":"召唤与合成2","v":"zhyhc2"},{"n":"上古王冠","v":"sgwg"},{"n":"萌宠大战僵尸","v":"mcdzjs"},{"n":"像素时代","v":"xssd"},{"n":"仙侠第一放置","v":"xxdyfz"},{"n":"无尽的拉格朗日","v":"wjdlglr"},{"n":"弓箭手大作战","v":"gjsdzz"},{"n":"挨饿荒野","v":"aehy"},{"n":"诺亚之心","v":"nyzx"},{"n":"闪耀暖暖","v":"synn"},{"n":"青鸾繁华录","v":"qlfhl"},{"n":"物种起源","v":"wzqy"},{"n":"模拟城市:我是市长","v":"mncswssc"},{"n":"重返帝国","v":"cfdg"},{"n":"太古仙尊","v":"tgxz"},{"n":"长安幻想","v":"cahx"},{"n":"火炬之光:无限","v":"hjzgwx"},{"n":"富豪闯三国","v":"fhcsg"},{"n":"魔戒战争","v":"mjzz"},{"n":"拂晓","v":"fx"},{"n":"古剑奇谭木语人","v":"gjqtmyr"},{"n":"火影忍者:忍者新世代","v":"hyrzrzxsd"},{"n":"末日远征","v":"mryz"},{"n":"滚动的天空","v":"gddtk"},{"n":"新斗罗大陆","v":"xdldl"},{"n":"登山赛车","v":"dssc"},{"n":"荒野乱斗(腾讯版)","v":"hyldtxb"},{"n":"小冰冰传奇","v":"xbbcq"},{"n":"三国战纪2手游","v":"sgzj2"},{"n":"冒险公社手游","v":"mxgs"},{"n":"古荒遗迹","v":"ghyj"},{"n":"纪念碑谷2","v":"jnbg2"},{"n":"大航海探险物语","v":"dhhtxwy"},{"n":"航海日记","v":"hhrj"},{"n":"一拳超人:最强之男","v":"yqcrzqzn"},{"n":"王国保卫战4","v":"wgbwz4"},{"n":"半世界之旅","v":"bsjzl"},{"n":"奥特曼宇宙英雄","v":"atmyzyx"},{"n":"新三国杀","v":"xsgs"},{"n":"奶块","v":"nk"},{"n":"策魂三国","v":"chsg"},{"n":"奥特曼系列OL","v":"atmxlol"},{"n":"洪荒文明","v":"hhwm"},{"n":"决战羽毛球","v":"jzymq"},{"n":"街头足球","v":"jtzq"},{"n":"同人圣三国蜀汉传","v":"trssgshc"},{"n":"零之战线","v":"lzzx"},{"n":"火影忍者:巅峰对决","v":"hyrzdfdj"},{"n":"元气骑士新作","v":"yqqsxz"},{"n":"塔防之光","v":"tfzg"},{"n":"小小五千年","v":"xxwqn"},{"n":"牌师","v":"ps"},{"n":"代号MA","v":"dhma"},{"n":"时空猎人","v":"sklr"},{"n":"星际逆战","v":"xjnz"},{"n":"钓鱼大对决","v":"dyddj"},{"n":"羽毛球高高手","v":"ymqggs"},{"n":"LoveLive!学园偶像祭","v":"lovelivexyoxj"},{"n":"黑色沙漠手游","v":"hesmsy"},{"n":"魔力宝贝:旅人","v":"mlbblr"},{"n":"玄中记","v":"xzj"},{"n":"大家饿餐厅","v":"dject"},{"n":"画境长恨歌","v":"hjchg"},{"n":"盾之勇者成名录:浪潮","v":"dzyzcmllc"},{"n":"幻兽爱合成","v":"hsahc"},{"n":"魔力宝贝归来","v":"mlbbgl"},{"n":"荣耀新三国","v":"ryxsg"},{"n":"巅峰极速","v":"dfjs"},{"n":"蛋仔派对","v":"dzpd"},{"n":"新盗墓笔记","v":"xdmbj"},{"n":"萤火突击国际服","v":"yhtj"},{"n":"卧龙吟2","v":"wly2"},{"n":"地下城堡3:魂之诗","v":"dxcb3hzs"},{"n":"武林闲侠","v":"wlxx"},{"n":"淘米游戏","v":"tmyx"},{"n":"无期迷途","v":"wqmt"},{"n":"重返未来:1999","v":"cfwl1999"},{"n":"逆光潜入","v":"ngqr"},{"n":"深空之眼","v":"skzy"},{"n":"CF手游","v":"CFSY"},{"n":"新天龙八部手游","v":"xtlbbsy"},{"n":"无神之界","v":"wszj"},{"n":"时空猎人3","v":"sklr3"},{"n":"原始征途","v":"yszt"},{"n":"全民大灌篮","v":"qmdgl"},{"n":"枪火重生手游","v":"GunfireReborn"},{"n":"火影三国志","v":"g_hysg"},{"n":"网易其它组","v":"g_wyqt"},{"n":"三国战纪手游","v":"sgzjsy"},{"n":"重返CODM","v":"RECODM"},{"n":"综合手游","v":"zhsy"},{"n":"IP游戏","v":"ipyx"},{"n":"鸣潮","v":"cm"},{"n":"棋牌游戏","v":"QPYX"},{"n":"奥比岛:梦想国度","v":"abdmxgd"},{"n":"九灵神域","v":"jlsy"},{"n":"TapTap新游","v":"taptapxy"},{"n":"我叫MT:归来","v":"wjmtgl"},{"n":"代号破晓","v":"dhpx"},{"n":"赛尔计划","v":"srjh"},{"n":"SLG综合","v":"SLG"},{"n":"代号:伙伴","v":"DHGB"},{"n":"天使之战","v":"tszz"},{"n":"全明星街球派对","v":"hoopheroes"},{"n":"合金弹头:觉醒","v":"MetalSlug"},{"n":"白荆回廊","v":"BJHL"},{"n":"战地无疆","v":"zdwj"},{"n":"三国志战棋版","v":"g_sgzzqb"},{"n":"一拳超人:世界","v":"yqcrsj"},{"n":"鹅鸭杀手游","v":"GooseDuck"},{"n":"忍者龟:归来","v":"rzggl"},{"n":"太空行动","v":"SuperSus"},{"n":"天龙八部2:飞龙战天","v":"tlbb2flzt"},{"n":"墨武侠","v":"mwx"},{"n":"大话西游:归来","v":"dhxygl"},{"n":"战火勋章","v":"zhxz"},{"n":"决胜巅峰","v":"jueshengdianfeng"},{"n":"这个地下城有点怪","v":"strangedungeon"},{"n":"冒险岛:枫之传说","v":"MapleStory"},{"n":"仙剑世界","v":"xjsj"},{"n":"战之刃:幸存者","v":"a3stillalive"}]}],
- "yl":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"yl"},{"n":"二次元","v":"ecy"},{"n":"一起看","v":"yqk"},{"n":"音乐","v":"music"},{"n":"户外","v":"HW"},{"n":"美食","v":"ms"},{"n":"原创IP","v":"ip"},{"n":"心动派对","v":"xdpd"},{"n":"音遇恋人","v":"yinyu"},{"n":"星秀","v":"xingxiu"},{"n":"趣生活","v":"QSH"},{"n":"心动FM","v":"dtxs"},{"n":"娱乐推荐","v":"yltj"}]}],
- "kjwh":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"kjwh"},{"n":"文化","v":"wh"},{"n":"企鹅直播","v":"qezb"},{"n":"数码科技","v":"smkj"},{"n":"社会人文","v":"shrw"},{"n":"汽车","v":"car"},{"n":"科普","v":"kepu"},{"n":"纪录片","v":"jlp"},{"n":"斗鱼购物","v":"DYGW"},{"n":"成年教育","v":"jiaoyu"}]}],
- "yp":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"yp"},{"n":"派对","v":"paidui"},{"n":"心动FM.","v":"DIANT"},{"n":"一起玩","v":"yiqiwan"}]}],
- "voice":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"voice"},{"n":"语音交友","v":"yyjy"},{"n":"音乐之声","v":"yyzs"},{"n":"连麦互动","v":"lianmaihudong"},{"n":"娱乐开黑","v":"ylkh"}]}],
- "znl":[{"key":"cateId","name":"类型","value":[{"n":"全部","v":"znl"},{"n":"星星点灯","v":"xxdd"},{"n":"正能量","v":"znl"}]}]
- },
- filter_def:{
- PCgame:{cateId:'LOL'},
- djry:{cateId:'AC'},
- syxx:{cateId:'wzry'},
- yl:{cateId:'yqk'},
- yz:{cateId:'yz'},
- kjwh:{cateId:'smkj'},
- yp:{cateId:'yiqiwan'},
- voice:{cateId:'yyzs'},
- znl:{cateId:'znl'},
- scjj:{cateId:'znl'}
- },
- class_name:'娱乐天地&网游竞技&单机热游&手游休闲&颜值&科技文化&语音互动&语音直播&正能量&赛车竞技',// /api/cate/list
- class_url:'yl&PCgame&djry&syxx&yz&kjwh&yp&voice&znl&scjj',
- // detailUrl:'/fyid',//二级详情拼接链接(json格式用)
- detailUrl: 'http://live.yj1211.work/api/live/getRoomInfo?uid=&platform=douyu&roomId=fyid',// JustLive
- searchUrl:'/api/search/liveRoom?#did=10000000000000000000000000001501&limit=20&offset=0&sk=**;post',
- searchable:2,
- quickSearch:0,
- headers:{
- 'User-Agent':'MOBILE_UA'
- },
- timeout:5000,
- limit:8,
- play_parse:true,
- // lazy:"js:function getSign(script,rid,did,tt){let result=script.match(/(function ub98484234.*)\\s(var.*)/)[0];log('result------>'+result);let func_ub9=result.replace(/eval.*;}/,'strc;}',result);log('func_ub9------>'+func_ub9);eval(func_ub9);let res=ub98484234();let v=res.match(/v=(\\d+)/)[0].replace('v=','');let rb=md5(rid+did+tt+v);let func_sign=res.replace(/return rt;}\\);?/,'return rt;}');func_sign=func_sign.replace('(function (','function sign(');func_sign=func_sign.replace('CryptoJS.MD5(cb).toString()','\\\"'+rb+'\\\"');eval(func_sign);let params=sign(rid,did,tt)+'&ver=219032101&rid={}&rate=-1&rid='+rid;return params}let html=fetch(input);let rid=html.match(/rid\\\":(.*?),\\\"vipId/)[1];let tt=Date.parse(new Date()).toString().substr(0,10);let did='10000000000000000000000000001501';let param_body=getSign(html,rid,did,tt);let stream_json=fetch('https://m.douyu.com/api/room/ratestream',{headers:{'content-type':'application/x-www-form-urlencoded'},body:param_body,method:'POST',});let stream=JSON.parse(stream_json).data;input=stream.url;",
- lazy:'',
- 推荐:'json:data;list;*;*;*;*',
- double:true,
- 一级:'json:data.list;roomName;roomSrc;nickname;rid',
- // 二级:'*',
- 二级:'js:var d=[];var jo=JSON.parse(request(input)).data;VOD={vod_id:jo.roomId,vod_name:jo.roomName,vod_pic:jo.roomPic,type_name:jo.platForm.replace("douyu","斗鱼")+"."+jo.categoryName,vod_content:"🏷分区:"+jo.platForm.replace("douyu","斗鱼")+"·"+jo.categoryName+" 🏷UP主:"+jo.ownerName+" 🏷人气:"+jo.online+(jo.isLive===1?" 🏷状态:正在直播":"状态:未开播"),};var playurl=JSON.parse(request("http://live.yj1211.work/api/live/getRealUrl?platform="+jo.platForm+"&roomId="+jo.roomId)).data;var name={OD:"JustLive",FD:"流畅",LD:"标清",SD:"高清",HD:"JustLive(预览)","2K":"2K","4K":"4K",FHD:"全高清",XLD:"极速",SQ:"普通音质",HQ:"高音质",};Object.keys(playurl).forEach(function(key){if(!/ayyuid|to/.test(key)){d.push({title:name[key],url:playurl[key]})}});d.push({title:"斗鱼解析1",url:"http://epg.112114.xyz/douyu/"+jo.roomId},{title:"斗鱼解析2",url:"https://www.aois.eu.org/live/douyu/"+jo.roomId},{title:"斗鱼解析3",url:"https://www.goodiptv.club/douyu/"+jo.roomId});VOD.vod_play_from="播放源";VOD.vod_play_url=d.map(function(it){return it.title+"$"+it.url}).join("#");setResult(d);',
- 搜索:'json:data.list;*;*;*;roomId',
-}
\ No newline at end of file
diff --git a/tvboxqq/戏曲音乐/js/huyazhibo.js b/tvboxqq/戏曲音乐/js/huyazhibo.js
deleted file mode 100644
index 51c56b4..0000000
--- a/tvboxqq/戏曲音乐/js/huyazhibo.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// 道长 drpy仓库 https://gitcode.net/qq_32394351/dr_py
-// 道长 drpy安卓本地搭建说明 https://gitcode.net/qq_32394351/dr_py/-/blob/master/%E5%AE%89%E5%8D%93%E6%9C%AC%E5%9C%B0%E6%90%AD%E5%BB%BA%E8%AF%B4%E6%98%8E.md
-// 道长 drpy写源 模板规则说明 https://gitcode.net/qq_32394351/dr_py#%E6%A8%A1%E6%9D%BF%E8%A7%84%E5%88%99%E8%AF%B4%E6%98%8E
-// 道长 drpy写源 套模模版 https://gitcode.net/qq_32394351/dr_py/-/raw/master/js/%E6%A8%A1%E6%9D%BF.js
-// 道长 drpy写源 相关视频教程 https://www.youtube.com/watch?v=AK7cN-fcwm4
-// 道长 drpy写源 写源教学视频 https://t.me/fongmi_offical/54080/63553
-// 海阔下载 https://haikuo.lanzoui.com/u/GoldRiver
-// 影视TV 官方TG Drpy群 https://t.me/fongmi_offical/63689
-// 影视TV 官方TG 下载 https://t.me/fongmi_release
-
-var rule = {
- title:'虎牙直播',
- host:'https://www.huya.com',
- homeUrl:'/cache.php?m=LiveList&do=getLiveListByPage&gameId=2168&tagAll=0&page=1',//用于"分类获取"和"推荐获取"
- url:'/cache.php?m=LiveList&do=getLiveListByPage&gameId=fyfilter&tagAll=0&page=fypage',
- class_name:'娱乐&网游&单机&手游',
- class_url:'8&1&2&3',
- detailUrl:'https://m.huya.com/fyid',//二级详情拼接链接(json格式用)
- filterable: 1,
- filter_url: '{{fl.area}}',
- filter_def:{
- 8:{area:'2135'},
- 1:{area:'1'},
- 2:{area:'7601'},
- 3:{area:'2336'}
- },
- filter:{
- "8":[{"key":"area","name":"分类","value":[{"n":"星秀","v":"1663"},{"n":"户外","v":"2165"},{"n":"一起看","v":"2135"},{"n":"二次元","v":"2633"},{"n":"虚拟偶像","v":"6055"},{"n":"旅游","v":"6791"},{"n":"娱乐天地","v":"100022"},{"n":"交友","v":"4079"},{"n":"放映厅","v":"6245"},{"n":"吃喝玩乐","v":"100044"},{"n":"组队","v":"5367"},{"n":"颜值","v":"2168"},{"n":"原创","v":"6861"},{"n":"体育","v":"2356"},{"n":"虎牙地方","v":"5123"},{"n":"美食","v":"2752"},{"n":"虎牙文化","v":"4089"},{"n":"音乐","v":"3793"},{"n":"趣分享","v":"5883"},{"n":"科技","v":"2408"},{"n":"直播购","v":"7759"},{"n":"派对","v":"7785"}] }],
- "1":[{"key":"area","name":"分类","value":[{"n":"英雄联盟","v":"1"},{"n":"lol云顶之弈","v":"5485"},{"n":"守望先锋归来","v":"2174"},{"n":"超击突破","v":"7467"},{"n":"穿越火线","v":"4"},{"n":"地下城与勇士","v":"2"},{"n":"炉石传说","v":"393"},{"n":"魔兽世界","v":"8"},{"n":"DOTA2","v":"7"},{"n":"CS:GO","v":"862"},{"n":"CFHD","v":"6079"},{"n":"DOTA1","v":"6"},{"n":"QQ飞车","v":"9"},{"n":"问道","v":"107"},{"n":"魔兽争霸3","v":"4615"},{"n":"逆战","v":"135"},{"n":"梦三国","v":"489"},{"n":"坦克世界","v":"802"},{"n":"起凡:群雄逐鹿","v":"1612"},{"n":"神武4电脑版","v":"3227"},{"n":"堡垒之夜","v":"100117"},{"n":"英魂之刃","v":"1830"},{"n":"网游竞技","v":"100023"},{"n":"暴雪专区","v":"100043"},{"n":"射击综合游戏","v":"100141"},{"n":"军事游戏","v":"100133"},{"n":"御龙在天","v":"675"},{"n":"剑灵","v":"897"},{"n":"传奇","v":"983"},{"n":"永恒之塔","v":"446"},{"n":"彩虹岛Online","v":"683"},{"n":"传奇类游戏","v":"2060"},{"n":"逆水寒","v":"2952"},{"n":"炉石战棋","v":"5751"},{"n":"诛仙3","v":"1646"},{"n":"体育游戏","v":"100135"},{"n":"冒险岛","v":"2243"},{"n":"龙之谷","v":"15"},{"n":"生死狙击2","v":"6091"},{"n":"热血江湖","v":"387"},{"n":"星际战甲","v":"627"},{"n":"反恐精英Online","v":"1918"},{"n":"枪神纪","v":"496"},{"n":"QQ三国","v":"1090"},{"n":"战舰世界","v":"1947"},{"n":"刀剑英雄","v":"915"},{"n":"九阴真经","v":"1009"},{"n":"NBA2KOL系列","v":"3959"},{"n":"寻仙","v":"734"},{"n":"星际争霸","v":"5"},{"n":"荒野行动PC版","v":"3185"},{"n":"QQ华夏","v":"1878"},{"n":"征途","v":"2715"},{"n":"铁甲雄兵","v":"2765"},{"n":"跑跑卡丁车","v":"162"},{"n":"武林外传一世琴缘","v":"1661"},{"n":"斗战神","v":"591"},{"n":"剑网3","v":"900"},{"n":"天涯明月刀","v":"1219"},{"n":"暗黑破坏神","v":"1123"},{"n":"反恐行动online","v":"861"},{"n":"QQ自由幻想","v":"1862"},{"n":"FIFA Online系列","v":"100079"},{"n":"丝路传说2","v":"1026"},{"n":"生死狙击","v":"2471"},{"n":"失落的方舟","v":"3058"},{"n":"完美端游系列","v":"3034"},{"n":"征途2","v":"677"},{"n":"天翼决","v":"779"},{"n":"大话西游2","v":"2975"},{"n":"梦想世界3","v":"486"},{"n":"流放之路","v":"427"},{"n":"千年3","v":"878"},{"n":"激战2","v":"406"},{"n":"神泣","v":"2531"},{"n":"新倩女幽魂","v":"1579"},{"n":"大唐无双零","v":"1584"},{"n":"VALORANT","v":"5937"},{"n":"造梦西游OL","v":"6815"},{"n":"战地之王","v":"618"},{"n":"完美世界:诸神之战","v":"7217"},{"n":"诛仙世界","v":"7749"},{"n":"命运2","v":"2942"},{"n":"QQ仙侠传","v":"2291"},{"n":"战争雷霆","v":"624"},{"n":"天下","v":"1597"},{"n":"QQ炫舞","v":"2440"},{"n":"泡泡堂","v":"440"},{"n":"FIFA Online4","v":"3683"},{"n":"真·三国无双OL","v":"324"},{"n":"坦克大战","v":"4359"},{"n":"天谕","v":"1899"},{"n":"街头篮球","v":"206"},{"n":"赛尔号","v":"2755"},{"n":"劲舞团","v":"2420"},{"n":"战意","v":"2599"},{"n":"天命西游","v":"1086"},{"n":"新飞飞(FlyFF)","v":"1582"},{"n":"洛奇英雄传","v":"432"},{"n":"装甲战争","v":"2276"},{"n":"QQ幻想","v":"2419"},{"n":"蜀门","v":"4711"},{"n":"全球使命3","v":"2953"},{"n":"使命召唤:战区","v":"5911"},{"n":"疾风之刃","v":"334"},{"n":"星辰变","v":"553"},{"n":"极光世界 弑神传","v":"514"},{"n":"希望OL","v":"1161"},{"n":"诺亚传说","v":"190"},{"n":"剑侠世界","v":"903"},{"n":"起凡游戏三国争霸","v":"11"},{"n":"天堂","v":"1966"},{"n":"虎豹骑","v":"2670"},{"n":"超激斗梦境","v":"5691"},{"n":"火线精英","v":"2550"},{"n":"新剑侠情缘","v":"586"},{"n":"QQ幻想世界","v":"2897"},{"n":"轩辕传奇","v":"159"},{"n":"上古世纪","v":"1046"},{"n":"枪火重生","v":"6077"},{"n":"成吉思汗3","v":"641"},{"n":"FF14","v":"1111"},{"n":"蜀山:初章","v":"7761"},{"n":"笑傲江湖","v":"288"},{"n":"炫舞时代","v":"3353"},{"n":"千古风流","v":"7155"},{"n":"刀剑2","v":"1867"},{"n":"天书奇谈","v":"2225"},{"n":"鹿鼎记","v":"45"},{"n":"古剑奇谭OL","v":"1892"},{"n":"风暴英雄","v":"1450"},{"n":"使命召唤:黑色行动4","v":"4429"},{"n":"全球使命","v":"939"},{"n":"远征Online梦想版","v":"142"},{"n":"无限法则","v":"3189"},{"n":"灵域","v":"1655"},{"n":"破月勇者","v":"7799"},{"n":"兵王","v":"933"},{"n":"闪烁之光","v":"7455"},{"n":"舞侠OL","v":"242"},{"n":"龙珠战士z","v":"3523"},{"n":"QQ音速","v":"1085"},{"n":"项羽OL","v":"1893"},{"n":"梦幻龙族II","v":"1524"},{"n":"新挑战","v":"583"},{"n":"The cycle","v":"6127"},{"n":"300英雄","v":"1132"},{"n":"新惊天动地","v":"1828"},{"n":"封印者","v":"2294"},{"n":"奇迹世界2","v":"766"},{"n":"EVE Online","v":"1292"},{"n":"骑士3.0","v":"1297"},{"n":"黄易群侠传2","v":"42"},{"n":"DJMAX三部曲","v":"1122"},{"n":"黑色沙漠","v":"1877"},{"n":"神武2","v":"305"},{"n":"斗破苍穹","v":"590"},{"n":"热血江湖2","v":"386"},{"n":"夺宝传世","v":"772"},{"n":"口袋西游","v":"3383"},{"n":"六界仙尊","v":"1691"},{"n":"仙侠世界2","v":"2723"},{"n":"神佑释放","v":"7219"},{"n":"武魂","v":"1580"},{"n":"飞龙在天传奇","v":"77"},{"n":"蜀山剑侠传","v":"217"},{"n":"名将三国","v":"6741"},{"n":"魔侠传","v":"55"},{"n":"热血轩辕OL","v":"385"},{"n":"反恐精英Online 2","v":"1126"},{"n":"SD敢达Online","v":"1076"},{"n":"征程","v":"678"},{"n":"Overprime","v":"7695"},{"n":"反恐精英","v":"863"},{"n":"蘑菇战争2","v":"3339"},{"n":"神之浩劫","v":"454"},{"n":"玛雅战纪","v":"353"},{"n":"最后一炮","v":"1836"},{"n":"Project Zomboid","v":"1319"},{"n":"战争前线","v":"630"},{"n":"水浒无双","v":"448"},{"n":"荣誉空间","v":"225"},{"n":"圣斗士星矢ol","v":"1652"},{"n":"新水浒Q传","v":"580"},{"n":"神雕侠侣","v":"298"},{"n":"泰亚史诗","v":"2977"},{"n":"冒险小分队","v":"7347"},{"n":"九鼎传说","v":"1008"},{"n":"国战ONLINE","v":"1240"},{"n":"亿万指挥","v":"996"},{"n":"赤壁","v":"179"},{"n":"梦幻诛仙2","v":"488"},{"n":"新大话西游3","v":"2938"},{"n":"忍者村大战2","v":"2369"},{"n":"蜀山神话","v":"216"},{"n":"仙侠世界","v":"995"},{"n":"霸刀群侠传online","v":"91"},{"n":"极品飞车Online","v":"2563"},{"n":"冒险岛2","v":"2350"},{"n":"凡人修仙传Online","v":"920"},{"n":"艾尔之光","v":"240"},{"n":"斗仙","v":"592"},{"n":"F1赛车明星","v":"1112"},{"n":"新热血英豪","v":"578"},{"n":"倚天Ⅱ","v":"959"},{"n":"权御天下","v":"2514"},{"n":"大冲锋","v":"786"},{"n":"大航海时代OL","v":"782"},{"n":"成吉思汗怀旧版","v":"640"},{"n":"大多数","v":"7453"},{"n":"龙与地下城Online","v":"19"},{"n":"刀剑笑Online","v":"916"},{"n":"领地人生","v":"2282"},{"n":"曙光之城","v":"536"},{"n":"奇迹:传奇","v":"3917"},{"n":"聊斋Q传","v":"250"},{"n":"苍穹变","v":"1825"},{"n":"全面战争:竞技场","v":"5901"},{"n":"九界","v":"1010"},{"n":"007:传奇","v":"1135"},{"n":"天涯明月刀(韩服)","v":"3531"},{"n":"武魂2","v":"4975"},{"n":"使命召唤:现代战争","v":"5713"},{"n":"第九大陆","v":"286"}] }],
- "2":[{"key":"area","name":"分类","value":[{"n":"Dread Hunger","v":"7601"},{"n":"天天吃鸡","v":"2793"},{"n":"永劫无间","v":"6219"},{"n":"主机游戏","v":"100032"},{"n":"我的世界","v":"1732"},{"n":"方舟","v":"1997"},{"n":"单机热游","v":"100002"},{"n":"互动点播","v":"5907"},{"n":"Apex英雄","v":"5011"},{"n":"俄罗斯钓鱼4","v":"5495"},{"n":"逃离塔科夫","v":"3493"},{"n":"部落:上升","v":"1318"},{"n":"怀旧游戏","v":"100125"},{"n":"恐鬼症","v":"6205"},{"n":"恐惧之间","v":"6679"},{"n":"饥荒","v":"74"},{"n":"怪物猎人物语","v":"7101"},{"n":"怪物猎人:崛起","v":"6479"},{"n":"欧洲卡车模拟","v":"475"},{"n":"荒野大镖客2","v":"4319"},{"n":"骑马与砍杀系列","v":"4783"},{"n":"纸人","v":"5257"},{"n":"糖豆人:终极淘汰赛","v":"6083"},{"n":"DayZ独立版","v":"1125"},{"n":"SCUM","v":"4245"},{"n":"育碧游戏","v":"100139"},{"n":"怪物猎人世界","v":"3519"},{"n":"艾尔登法环","v":"5801"},{"n":"港诡实录","v":"5853"},{"n":"禁闭求生","v":"6065"},{"n":"十三月","v":"7823"},{"n":"星球大战系列","v":"554"},{"n":"甜蜜之家","v":"6739"},{"n":"战地5","v":"4371"},{"n":"互动剧游","v":"6919"},{"n":"只狼:影逝二度","v":"4505"},{"n":"洛克王国","v":"2864"},{"n":"使命召唤系列","v":"100137"},{"n":"帝国神话","v":"6821"},{"n":"三国志","v":"2270"},{"n":"极限竞速:地平线","v":"2634"},{"n":"都市:天际线","v":"2201"},{"n":"神秘海域4","v":"2486"},{"n":"帝国时代4","v":"4835"},{"n":"全境封锁","v":"2342"},{"n":"鬼谷八荒","v":"6571"},{"n":"流放者柯南","v":"2772"},{"n":"双人成行","v":"6737"},{"n":"战术小队","v":"2360"},{"n":"FIFA 23","v":"7789"},{"n":"刺客信条","v":"1962"},{"n":"Among Us","v":"6163"},{"n":"盗贼之海","v":"3641"},{"n":"仁王2","v":"5795"},{"n":"海底大作战","v":"3101"},{"n":"幽灵线:东京","v":"7669"},{"n":"奥拉星","v":"2846"},{"n":"摔跤城大乱斗","v":"7773"},{"n":"任天堂专区","v":"100087"},{"n":"漫漫长夜","v":"2303"},{"n":"奥奇传说","v":"2848"},{"n":"其他单机","v":"3069"},{"n":"轩辕剑7","v":"6199"},{"n":"罗布乐思","v":"5771"},{"n":"全面战争:三国","v":"3004"},{"n":"仙剑奇侠传七","v":"6509"},{"n":"瘟疫传说:安魂曲","v":"7811"},{"n":"灵魂筹码","v":"4059"},{"n":"全面战争","v":"3521"},{"n":"缺氧","v":"2884"},{"n":"九霄缳神记","v":"5941"},{"n":"死亡之夜","v":"6129"},{"n":"归家异途","v":"2949"},{"n":"真三国无双","v":"1599"},{"n":"人类一败涂地","v":"3289"},{"n":"星露谷物语","v":"2443"},{"n":"神秘海域","v":"2108"},{"n":"英雄连","v":"232"},{"n":"岛","v":"3019"},{"n":"Factorio","v":"2750"},{"n":"散兵坑","v":"3005"},{"n":"石油骚动","v":"2585"},{"n":"Party Animals","v":"6165"},{"n":"环世界","v":"4865"},{"n":"消逝的光芒2","v":"7581"},{"n":"女神异闻录","v":"3981"},{"n":"猎人:荒野的召唤","v":"2906"},{"n":"魔法门之英雄无敌系列","v":"2096"},{"n":"对马岛之魂","v":"6039"},{"n":"无尽传奇","v":"4969"},{"n":"帝国时代系列","v":"708"},{"n":"火影忍者:究极风暴系列","v":"2424"},{"n":"暖雪","v":"7539"},{"n":"武装突袭","v":"465"},{"n":"宝可梦:剑盾","v":"5715"},{"n":"雷曼:传奇","v":"96"},{"n":"无主之地3","v":"4713"},{"n":"鬼泣","v":"3673"},{"n":"霓虹深渊","v":"5743"},{"n":"精灵宝可梦","v":"4061"},{"n":"乞丐模拟器","v":"3491"},{"n":"杀戮尖塔","v":"3601"},{"n":"最终幻想系列","v":"2454"},{"n":"艾兰岛","v":"3855"},{"n":"渡神记","v":"6231"},{"n":"看门狗:军团","v":"6155"},{"n":"辐射3","v":"153"},{"n":"戴森球计划","v":"6523"},{"n":"黑暗领域2","v":"29"},{"n":"音乐游戏","v":"2761"},{"n":"马里奥专区","v":"2120"},{"n":"哈迪斯","v":"6153"},{"n":"流星蝴蝶剑","v":"426"},{"n":"泰坦陨落","v":"1446"},{"n":"模拟农场","v":"2344"},{"n":"人间地狱","v":"5429"},{"n":"星际公民","v":"2371"},{"n":"奥日与黑暗森林","v":"1946"},{"n":"仙剑奇侠传四","v":"1659"},{"n":"微软模拟飞行2020","v":"6099"},{"n":"电竞传奇","v":"4489"},{"n":"四海兄弟","v":"5995"},{"n":"英灵神殿","v":"6609"},{"n":"旋转轮胎","v":"2984"},{"n":"太荒初境","v":"7685"},{"n":"永恒轮回","v":"6089"},{"n":"哥谭骑士","v":"7815"},{"n":"极品飞车系列","v":"1307"},{"n":"深海迷航","v":"3589"},{"n":"幽灵行动:荒野","v":"2794"},{"n":"足球小将","v":"6103"},{"n":"蔑视","v":"7819"},{"n":"仙剑奇侠传二","v":"1860"},{"n":"塞尔达传说:荒野之息","v":"2924"},{"n":"攻城掠地","v":"1737"},{"n":"X-plane","v":"2144"},{"n":"麋鹿猎人","v":"44"},{"n":"乐高大电影:游戏版","v":"1439"},{"n":"了不起的修仙模拟器","v":"4867"},{"n":"恶魔之魂","v":"6151"},{"n":"足球之王","v":"164"},{"n":"吸血鬼幸存者","v":"7621"},{"n":"Stray","v":"7745"},{"n":"黎明传说","v":"39"},{"n":"骷髅女孩","v":"67"},{"n":"齐格弗瑞克","v":"21"},{"n":"深海搁浅","v":"3607"},{"n":"深岩银河:下潜","v":"3647"},{"n":"中世纪2:全面战争","v":"2901"},{"n":"美丽水世界","v":"2365"},{"n":"马里奥赛车8","v":"5947"},{"n":"赛车计划2","v":"3381"},{"n":"斩妖行","v":"6105"},{"n":"重返废土","v":"121"},{"n":"复仇者联盟","v":"6121"},{"n":"巴士模拟2","v":"1376"},{"n":"鬼武者3","v":"61"},{"n":"幻想黎明:王国战争","v":"699"},{"n":"失落城堡","v":"2667"},{"n":"雷狼","v":"94"},{"n":"暗黑血统2","v":"539"},{"n":"圣歌","v":"4657"},{"n":"战斗方块剧场","v":"1856"},{"n":"夜族崛起","v":"7717"},{"n":"维京传奇","v":"265"},{"n":"龙与地下城:秘影历代记HD","v":"17"},{"n":"太空工程师","v":"2219"},{"n":"神界2","v":"303"},{"n":"伤害世界","v":"2337"},{"n":"这是我的战争","v":"1885"},{"n":"精灵与萤火意志","v":"5895"},{"n":"骑士物语","v":"70"},{"n":"模拟人生4","v":"6607"},{"n":"进化之地","v":"145"},{"n":"太吾绘卷","v":"4357"},{"n":"恐怖黎明","v":"3435"},{"n":"维京兄弟","v":"264"},{"n":"潜行者 : 切尔诺贝利的阴影","v":"408"},{"n":"龙与地下城:匕首谷","v":"18"},{"n":"开源模拟火车","v":"3403"},{"n":"瑞奇与叮当","v":"2455"},{"n":"精灵宝可梦Let's Go","v":"4375"},{"n":"街机游戏","v":"5999"},{"n":"生化奇兵2","v":"343"},{"n":"古剑奇谭3","v":"4569"},{"n":"模拟火车世界:csx重载货运","v":"2994"},{"n":"最终幻想7:重制版","v":"5809"},{"n":"鬼火: 救赎","v":"57"},{"n":"小缇娜的奇幻之地","v":"7647"},{"n":"野兽传奇","v":"120"},{"n":"PS4","v":"1810"},{"n":"剑士","v":"1467"},{"n":"幽灵行动:断点","v":"5649"},{"n":"霸王2","v":"90"},{"n":"最终幻想:起源","v":"7653"},{"n":"飚车世界","v":"80"},{"n":"紫塞秋风","v":"6045"},{"n":"僵尸(Zombi)","v":"2385"},{"n":"孤岛惊魂5","v":"3777"},{"n":"飙酷车神","v":"3975"},{"n":"狂热运输","v":"2935"},{"n":"模拟建筑","v":"2766"},{"n":"女鬼桥:开魂路","v":"7793"},{"n":"死亡搁浅","v":"5695"},{"n":"文明6","v":"2650"},{"n":"塞尔达传说 黄昏公主","v":"2427"},{"n":"文明5","v":"593"},{"n":"辐射76","v":"4365"},{"n":"草根传奇","v":"230"},{"n":"战地风云2042","v":"7311"},{"n":"刺客信条:编年史三部曲","v":"4703"},{"n":"重力反转","v":"122"},{"n":"美国末日","v":"1233"},{"n":"彩虹六号:异种","v":"7549"},{"n":"瘟疫传说:无罪","v":"5345"},{"n":"Cube","v":"51"},{"n":"胡闹厨房","v":"4217"}] }],
- "3":[{"key":"area","name":"分类","value":[{"n":"王者荣耀","v":"2336"},{"n":"和平精英","v":"3203"},{"n":"暗区突围","v":"7209"},{"n":"逆水寒手游","v":"7725"},{"n":"环形战争","v":"7555"},{"n":"英雄联盟手游","v":"6203"},{"n":"金铲铲之战","v":"7185"},{"n":"小小蚁国","v":"7803"},{"n":"英雄联盟电竞经理","v":"7177"},{"n":"综合手游","v":"100029"},{"n":"新游广场","v":"100052"},{"n":"CF手游","v":"2413"},{"n":"QQ飞车手游","v":"2928"},{"n":"火影忍者手游","v":"2429"},{"n":"欢乐麻将","v":"1751"},{"n":"中国象棋","v":"1671"},{"n":"三国杀","v":"1669"},{"n":"天天狼人","v":"2774"},{"n":"欢乐斗地主","v":"1749"},{"n":"问道手游","v":"2477"},{"n":"部落冲突","v":"1797"},{"n":"皇室战争","v":"2439"},{"n":"忍者必须死3","v":"4041"},{"n":"手游休闲","v":"100004"},{"n":"原神","v":"5489"},{"n":"动作游戏","v":"100197"},{"n":"MMORPG","v":"100273"},{"n":"棋牌桌游","v":"100036"},{"n":"天龙八部手游","v":"2852"},{"n":"王者模拟战","v":"5699"},{"n":"战争冲突","v":"7449"},{"n":"虎牙领主争霸","v":"7529"},{"n":"一起玩","v":"6613"},{"n":"明日之后","v":"3483"},{"n":"二次元手游","v":"100091"},{"n":"COD手游","v":"4769"},{"n":"狼人杀手游","v":"100049"},{"n":"神武4手游","v":"3135"},{"n":"暗黑破坏神:不朽","v":"6385"},{"n":"跑跑卡丁车手游","v":"2620"},{"n":"球球大作战","v":"2411"},{"n":"第五人格","v":"3115"},{"n":"天涯明月刀手游","v":"5115"},{"n":"幻塔","v":"6437"},{"n":"英雄杀","v":"2688"},{"n":"DNF手游","v":"4921"},{"n":"狼人杀","v":"2785"},{"n":"阴阳师","v":"2598"},{"n":"奶块","v":"2775"},{"n":"御龙在天手游","v":"2568"},{"n":"三国志战略版","v":"5619"},{"n":"传奇手游","v":"3130"},{"n":"迷你世界","v":"2683"},{"n":"斗罗大陆:魂师对决","v":"6745"},{"n":"巅峰战舰","v":"2502"},{"n":"SKY光遇","v":"3719"},{"n":"火炬之光:无限","v":"6399"},{"n":"多乐棋牌","v":"6209"},{"n":"最强NBA","v":"2988"},{"n":"荒野乱斗","v":"4613"},{"n":"崩坏3","v":"2639"},{"n":"天天吃鸡手机版","v":"4341"},{"n":"时空猎人3","v":"6411"},{"n":"天天象棋","v":"4997"},{"n":"妄想山海","v":"6007"},{"n":"英魂之刃口袋版","v":"2760"},{"n":"JJ棋牌","v":"3841"},{"n":"蛋仔派对","v":"6909"},{"n":"极无双2","v":"7825"},{"n":"天谕手游","v":"5925"},{"n":"完美世界手游","v":"4237"},{"n":"云上城之歌","v":"5977"},{"n":"创造与魔法","v":"2931"},{"n":"逃跑吧!少年","v":"4137"},{"n":"精灵盛典:黎明","v":"6123"},{"n":"斗破苍穹手游","v":"4337"},{"n":"诛仙手游","v":"2647"},{"n":"航海王:燃烧意志","v":"3943"},{"n":"武侠乂手游","v":"4929"},{"n":"哈利波特:魔法觉醒","v":"5835"},{"n":"奇迹MU:觉醒","v":"3116"},{"n":"新笑傲江湖","v":"5669"},{"n":"多多自走棋","v":"5133"},{"n":"香肠派对","v":"3639"},{"n":"三国战纪2","v":"6049"},{"n":"王牌竞速","v":"6463"},{"n":"率土之滨","v":"2691"},{"n":"三国战纪","v":"6047"},{"n":"倩女幽魂手游","v":"2503"},{"n":"永恒纪元:戒","v":"2646"},{"n":"新剑侠情缘手游","v":"6259"},{"n":"北凉悍刀行","v":"7781"},{"n":"狼人杀官方","v":"3679"},{"n":"FIFA足球世界","v":"3873"},{"n":"征途2手游","v":"2811"},{"n":"航海王热血航线","v":"6181"},{"n":"弹弹堂手游","v":"2857"},{"n":"万国觉醒","v":"6159"},{"n":"深空之眼","v":"6877"},{"n":"全民枪战2","v":"3027"},{"n":"无尽的拉格朗日","v":"6809"},{"n":"天天酷跑","v":"1715"},{"n":"方舟手游","v":"4035"},{"n":"魔力宝贝","v":"2891"},{"n":"无神之界","v":"6767"},{"n":"决战平安京","v":"3064"},{"n":"火影忍者OL","v":"3901"},{"n":"剑侠世界3","v":"7183"},{"n":"寻仙手游","v":"2979"},{"n":"拳皇命运","v":"3379"},{"n":"指尖四川麻将","v":"7215"},{"n":"一拳超人正义执行","v":"6951"},{"n":"梦幻新诛仙","v":"5975"},{"n":"不良人3","v":"5891"},{"n":"王牌战争:文明重启","v":"5479"},{"n":"Badlanders","v":"6507"},{"n":"九灵神域","v":"7719"},{"n":"植物大战僵尸","v":"485"},{"n":"龙之谷2手游","v":"2736"},{"n":"绝世仙王","v":"6619"},{"n":"海岛奇兵","v":"2624"},{"n":"明日方舟","v":"4925"},{"n":"红警OL","v":"4413"},{"n":"风云","v":"3061"},{"n":"庆余年手游","v":"6939"},{"n":"真三国无双霸","v":"6071"},{"n":"单机手游","v":"2777"},{"n":"轩辕传奇手游","v":"2927"},{"n":"军棋","v":"2561"},{"n":"征途手游","v":"2556"},{"n":"元气骑士","v":"4287"},{"n":"剑灵:革命","v":"4545"},{"n":"一念逍遥","v":"6419"},{"n":"热血江湖手游","v":"2817"},{"n":"混沌起源","v":"5985"},{"n":"猎魂觉醒","v":"3071"},{"n":"我叫MT4","v":"4087"},{"n":"黑色沙漠手游","v":"7287"},{"n":"虎牙球球","v":"7451"},{"n":"青云诀2","v":"6009"},{"n":"Lost Light(萤火突击国际服)","v":"6859"},{"n":"一梦江湖","v":"3082"},{"n":"黑暗与光明手游","v":"6635"},{"n":"游戏王:决斗链接","v":"4451"},{"n":"鸿图之下","v":"6027"},{"n":"重返帝国","v":"6955"},{"n":"新斗罗大陆","v":"6657"},{"n":"欢乐升级","v":"3925"},{"n":"口袋觉醒","v":"5953"},{"n":"少年三国志2","v":"6125"},{"n":"狩猎时刻","v":"6543"},{"n":"坦克世界闪击战","v":"4977"},{"n":"QQ炫舞手游","v":"2991"},{"n":"流星群侠传","v":"3927"},{"n":"黎明觉醒","v":"6131"},{"n":"雀魂麻将","v":"7107"},{"n":"灌篮高手正版授权手游","v":"5399"},{"n":"拳皇98终极之战OL","v":"2687"},{"n":"梦幻诛仙手游","v":"2672"},{"n":"漫威超级战争","v":"6881"},{"n":"斗罗大陆","v":"6119"},{"n":"荒野行动","v":"3084"},{"n":"实况足球","v":"3741"},{"n":"仙境传说RO","v":"2675"},{"n":"龙与家园","v":"6863"},{"n":"机动都市阿尔法","v":"5411"},{"n":"武林外传手游","v":"3331"},{"n":"一拳超人:最强之男","v":"4629"},{"n":"太古神王2","v":"6649"},{"n":"天堂 W","v":"7291"},{"n":"时空召唤","v":"2551"},{"n":"斗罗大陆-斗神再临","v":"6631"},{"n":"重生细胞","v":"6561"},{"n":"腾讯桌球","v":"2444"},{"n":"影之刃3","v":"6251"},{"n":"永劫无间手游","v":"7579"},{"n":"龙武手游","v":"5219"},{"n":"APEX手游","v":"7037"},{"n":"大话西游手游","v":"2626"},{"n":"绝区零","v":"7711"},{"n":"魔力宝贝手机版","v":"3062"},{"n":"奥拉星手游","v":"5677"},{"n":"狂野飙车9:竞速传奇","v":"5451"},{"n":"蚁族崛起","v":"7019"},{"n":"风云岛行动","v":"4695"},{"n":"魔渊之刃","v":"5837"},{"n":"无期迷途","v":"7127"},{"n":"荣耀新三国","v":"6943"},{"n":"少年三国志","v":"2627"},{"n":"镇魂街:天生为王","v":"6557"},{"n":"蛇蛇争霸","v":"2680"},{"n":"龙珠觉醒","v":"3087"},{"n":"自由之战2","v":"2830"},{"n":"梦三国手游","v":"2615"},{"n":"虎牙吃鸡","v":"7465"},{"n":"玄中记","v":"6949"},{"n":"幻世九歌","v":"7199"},{"n":"仙魔决","v":"1674"},{"n":"新盗墓笔记","v":"7093"},{"n":"未来之役","v":"6831"},{"n":"月圆之夜","v":"4339"},{"n":"决斗之城","v":"2868"},{"n":"时空猎人","v":"1742"},{"n":"奇葩战斗家","v":"4313"},{"n":"球球英雄","v":"7027"},{"n":"逆战手游","v":"7575"},{"n":"绿茵信仰","v":"7017"},{"n":"泰拉瑞亚手游","v":"7059"},{"n":"摩尔庄园","v":"5981"},{"n":"剑网1:归来","v":"7361"},{"n":"QQ华夏手游","v":"3743"},{"n":"热血街篮","v":"5859"},{"n":"剑与家园","v":"2838"},{"n":"镇魔曲手游","v":"2763"},{"n":"三国群英传手游","v":"2656"},{"n":"绿色征途","v":"4227"},{"n":"剑侠情缘手游","v":"2621"},{"n":"龙之国物语","v":"7675"},{"n":"魔力宝贝:旅人","v":"7573"},{"n":"刀塔传奇","v":"1694"},{"n":"秦时明月2","v":"1784"},{"n":"魂斗罗:归来","v":"2824"},{"n":"EVE星战前夜:无烬星河","v":"5813"},{"n":"圣斗士星矢(腾讯)","v":"2521"},{"n":"我的勇者","v":"5637"},{"n":"异侠传:道消魔长","v":"7619"},{"n":"饭狼","v":"2957"},{"n":"文明与征服","v":"7071"},{"n":"战魂铭人","v":"6505"},{"n":"重写三国志","v":"7795"},{"n":"一剑斩仙","v":"6843"},{"n":"魔力宝贝觉醒","v":"7427"},{"n":"仙战","v":"1673"},{"n":"盾之勇者成名录手游","v":"7087"},{"n":"仙剑Q传","v":"1672"},{"n":"斗破仙途","v":"1739"},{"n":"龙族幻想","v":"4649"},{"n":"乱世王者","v":"2930"},{"n":"我在江湖之神魔道","v":"7699"},{"n":"新游推荐","v":"3160"},{"n":"剑侠世界2手游","v":"3150"},{"n":"黎明之光手游","v":"2649"},{"n":"异能都市","v":"7511"},{"n":"米加小镇","v":"7269"},{"n":"一起来捉妖","v":"4183"},{"n":"神雕侠侣手游","v":"1781"},{"n":"乱世逐鹿","v":"7015"},{"n":"土豆英雄","v":"6515"},{"n":"另一个伊甸: 超越时空的猫","v":"6667"},{"n":"剑网3:指尖江湖","v":"3885"},{"n":"造梦无双","v":"6423"},{"n":"梦幻模拟战","v":"3481"},{"n":"崩坏:星穹铁道","v":"7349"},{"n":"逍遥情缘","v":"6247"},{"n":"非人学园","v":"4045"},{"n":"战塔英雄","v":"3657"},{"n":"探灵","v":"5253"},{"n":"自由幻想手游","v":"4015"},{"n":"猫和老鼠","v":"2758"},{"n":"冰原守卫者","v":"7195"},{"n":"宝可梦大探险","v":"4065"},{"n":"全球行动","v":"5005"},{"n":"枪火重生手游","v":"7631"},{"n":"鬼泣-巅峰之战","v":"5779"},{"n":"航海王:启航","v":"2648"},{"n":"传奇天下","v":"6927"},{"n":"剑灵2","v":"7223"},{"n":"众神之战","v":"1675"},{"n":"警匪杀","v":"7191"},{"n":"我叫剑神OL","v":"1731"},{"n":"口袋妖怪","v":"2541"},{"n":"全民斩仙","v":"1685"},{"n":"战春秋","v":"3937"},{"n":"去吧皮卡丘","v":"1697"},{"n":"剑荡八荒","v":"3109"},{"n":"天堂2:血盟","v":"2609"},{"n":"浮生为卿歌","v":"5935"},{"n":"风暴魔域","v":"4759"},{"n":"三国志:幻想大陆","v":"6029"},{"n":"古剑奇谭2手游","v":"3105"},{"n":"仙剑奇侠传OL手游","v":"2815"},{"n":"梦幻家园","v":"6323"},{"n":"暗黑血统2手游","v":"3107"},{"n":"诺亚之心","v":"6405"},{"n":"赤壁之战OL","v":"1968"},{"n":"星际战甲手游","v":"7205"},{"n":"我欲封天","v":"2449"},{"n":"提灯与地下城","v":"6547"},{"n":"饥荒:新家","v":"6491"},{"n":"荣耀大天使","v":"6477"},{"n":"山海经之魔蛙传说","v":"6059"},{"n":"极无双","v":"2702"},{"n":"太空杀","v":"6213"},{"n":"元素方尖","v":"7657"},{"n":"傲世云霄","v":"4103"},{"n":"一号军团","v":"4401"},{"n":"剑与远征手游","v":"5755"},{"n":"蜀山奇缘","v":"1794"},{"n":"齿轮杰克","v":"20"},{"n":"斗斗堂","v":"7133"},{"n":"神将三国","v":"6621"},{"n":"斗罗大陆2:绝世唐门","v":"6581"},{"n":"奇迹:最强者","v":"3215"},{"n":"热血英雄","v":"1764"},{"n":"坎公骑冠剑","v":"6641"},{"n":"愤怒的小鸟:星战版","v":"642"},{"n":"钓鱼冒险岛","v":"5263"},{"n":"战斗吧剑灵","v":"2450"},{"n":"新天龙八部手游","v":"6945"},{"n":"末日远征","v":"4335"},{"n":"奥比岛:梦想国度","v":"6871"},{"n":"宝石研物语:伊恩之石","v":"7253"},{"n":"猫之城","v":"6497"},{"n":"古荒遗迹","v":"6435"},{"n":"阴阳师:百闻牌","v":"5019"},{"n":"烈火一刀","v":"2389"},{"n":"原始征途","v":"7713"},{"n":"动物派对手游","v":"7047"},{"n":"皇帝成长计划2","v":"6755"},{"n":"奔跑吧兄弟5跑男小镇","v":"2809"},{"n":"麻将来了","v":"3515"},{"n":"全民水浒","v":"1687"}] }]
- },
- searchUrl:'https://search.cdn.huya.com/?m=Search&do=getSearchContent&q=**&uid=0&v=4&typ=-5&livestate=0&rows=40&start=0',
- searchable:2,
- quickSearch:0,
- headers:{
- 'User-Agent':'MOBILE_UA'
- },
- timeout:5000,
- limit:8,
- play_parse:true,
- // lazy:"js:let rid=input.match(/\\/(\\d+)/)[1];log(rid);let purl=JSON.parse(request('https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid='+rid)).data.stream.baseSteamInfoList[0].sStreamName;log(purl);let rurl='http://txtest-xp2p.p2p.huya.com/src/'+purl+'.xs?ratio=4000';input={jx:0,url:rurl,parse:0}",
- lazy:"js:let rid=input.match(/\\/(\\d+)/)[1];function getRealUrl(live_url){let[i,b]=live_url.split('?');let r=i.split('/').pop();let s=r.replace(/\.(flv|m3u8)/,'');let c_tmp=b.split('&').filter(n=>n);let n={};let c_tmp2=[];c_tmp.forEach(function(tmp,index){if(index<3){n[tmp.split('=')[0]]=tmp.split('=')[1]}else{c_tmp2.push(tmp)}});let tmp2=c_tmp2.join('&');n[tmp2.split('=')[0]]=tmp2.split('=')[1];let fm=decodeURIComponent(n.fm).split('&')[0];let u=base64Decode(fm);let p=u.split('_')[0];let f=new Date().getTime()+'0000';let ll=n.wsTime;let t='0';let h=[p,t,s,f,ll].join('_');let m=md5(h);return(i+'?wsSecret='+m+'&wsTime='+ll+'&u='+t+'&seqid='+f+'&'+c_tmp2.pop()).replace('hls','flv').replace('m3u8','flv')}let purl=JSON.parse(request('https://mp.huya.com/cache.php?m=Live&do=profileRoom&roomid='+rid)).data.stream.flv.multiLine[0].url;input={jx:0,url:getRealUrl(purl),parse:0,header:JSON.stringify({'user-agent':'Mozilla/5.0'})}",
- 推荐:'*',
- 一级:'json:data.datas;introduction;screenshot;nick;profileRoom',
- 二级:'*',
- 搜索:'json:response.3.docs;game_roomName;game_screenshot;game_nick;room_id',
-}
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api.json b/tvboxqq/摸鱼儿/api.json
index 1a07c64..d1f5700 100644
--- a/tvboxqq/摸鱼儿/api.json
+++ b/tvboxqq/摸鱼儿/api.json
@@ -1,1495 +1,719 @@
-//
+//资源全部免费,仅供测试交流,请勿内置传播与转卖;关注微信公众号:奇奇乐分享,发送“本地包”获取教程与更多资源!
{
"spider": "./spider.jar",
- "wallpaper": "http://我不是.摸鱼儿.com/wallpaper/",
- "logo": "https://s1.imagehub.cc/images/2024/06/11/80538bfb3835ffebf7c5fd0716280801.jpeg",
- "warningText": "摸鱼儿:资源来自网络,无盈利纯技术分享![所有内容仅供学习使用,请勿用于违法及商业用途,请勿付费购买]",
+ "logo": "https://open.wya6.com/d/down/2026/logo.gif",
+ "wallpaper": "http://127.0.0.1:5266/wallpaper",
"sites": [
{
- "key": "豆豆",
- "name": "♨️网盘升级┃全速启动",
+ "key": "Douban",
+ "name": "豆瓣推荐",
"type": 3,
- "api": "csp_DouDouGuard",
+ "api": "csp_Douban",
"searchable": 0,
- "quickSearch": 0,
- "filterable": 0
+ "filterable": 1
},
{
- "key": "update",
- "name": "🎬️摸鱼┃电影┃预告",
+ "key": "Introduce",
+ "name": "设置中心",
"type": 3,
- "api": "csp_YGPGuard",
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
+ "api": "csp_Introduce"
},
{
- "key": "config",
- "name": "🚀辅助┃配置┃中心",
+ "key": "YGP",
+ "name": "预告世界",
"type": 3,
- "api": "csp_Config",
- "jar": "./jars/config.jar",
- "searchable": 0,
- "quickSearch": 0,
- "style": {
- "type": "rect",
- "ratio": 1.61
- }
- },
- {
- "key": "huban",
- "name": "🚀虎斑┃弹幕┃小窗",
- "type": 3,
- "jar": "./jars/huban.jar",
- "api": "csp_Huban"
- },
- {
- "key": "玩偶",
- "name": "♨️玩偶智能┃4K弹幕",
- "type": 3,
- "api": "csp_WoGGGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto",
- "siteUrl": "https://www.wogg.com/",
- "danMu": "弹"
- }
- },
- {
- "key": "hlxb",
- "name": "♨️昨夜星辰┃4K纯净",
- "type": 4,
- "api": "http://我不是.摸鱼儿.com/api/hlxb.php",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0
- },
- {
- "key": "seed",
- "name": "♨️霜雪笼花┃三盘聚合",
- "type": 3,
- "api": "csp_SeedhubGuard",
- "changeable": 0,
- "ext": "5++kwLhNYm9UrO9wh7Dl7eKamTee4s/5",
- "searchable": 1,
- "quickSearch": 1,
- "indexs": 0,
- "style": {
- "type": "list"
- }
- },
- {
- "key": "星河",
- "name": "🌀星河┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppSy",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://192.140.161.171:2563",
- "key1": "aassddwwxxllsx1x",
- "key2": "aassddwwxxllsx1x",
- "key3": "aassddwwxxllsx1x"
- }
- },
- {
- "key": "爱影",
- "name": "🌀爱影┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppSy",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://110.42.7.59:11822",
- "key1": "aassddwwxxllsx1x",
- "key2": "1e765e9b09b4dbba",
- "key3": "1e765e9b09b4dbba"
- }
- },
- {
- "key": "加菲",
- "name": "🌀加菲┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppQi",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "https://aysappto.oss-cn-chengdu.aliyuncs.com/qj1.txt",
- "dataKey": "dksvndkaAjekakcE",
- "dataIv": "dksvndkaAjekakcE",
- "deviceId": "",
- "version": "",
- "ua": ""
- }
- },
- {
- "key": "咖啡",
- "name": "🌀咖啡┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppQi",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "https://daen-1256234123.cos.ap-shanghai.myqcloud.com/MuQi/mqxh.txt",
- "dataKey": "37kj83zs1q16jk6t",
- "dataIv": "37kj83zs1q16jk6t",
- "deviceId": "",
- "version": "101",
- "ua": ""
- }
- },
- {
- "key": "哔滴",
- "name": "🌀比迪┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppQi",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "https://ooxooxooxooxoo-1259561579.cos.ap-chengdu.myqcloud.com/ip.json",
- "dataKey": "5ae8ee4bb95ea0ce",
- "dataIv": "5ae8ee4bb95ea0ce",
- "deviceId": "",
- "version": "120",
- "ua": "okhttp/3.10.0 BDYS/109.0.0.8"
- }
- },
- {
- "key": "云云",
- "name": "🌀云云┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppQi",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "https://staraugust123456.oss-cn-hangzhou.aliyuncs.com/1.txt",
- "dataKey": "staraugust123456",
- "dataIv": "staraugust123456",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "蓝光",
- "name": "🌀诡异┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://122.228.193.2:9654",
- "dataKey": "ca94b06ca3c7d80e",
- "dataIv": "ca94b06ca3c7d80e",
- "deviceId": "",
- "version": "119"
- }
- },
- {
- "key": "雄鹰",
- "name": "🌀雄鹰┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet2",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://122.228.193.2:9988",
- "dataKey": "ca94b06ca359d80e",
- "dataIv": "ca94b06ca359d80e",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "若雪",
- "name": "🌀若雪┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppQi",
- "ext": {
- "url": "https://appcms.rx4k.top",
- "site": "",
- "dataKey": "ZX10ysTYZWtIJCTU",
- "dataIv": "ZX10ysTYZWtIJCTU",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "蓝鹰",
- "name": "🌀蓝鹰┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "jar": "./jars/config.jar",
- "api": "csp_AppQi",
- "ext": {
- "url": "",
- "site": "https://lanyinghz.oss-cn-hangzhou.aliyuncs.com/lanyingxmy.txt",
- "dataKey": "ca94b06ca359d80e",
- "dataIv": "ca94b06ca359d80e",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "仓鼠",
- "name": "🌀仓鼠┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "jar": "./jars/config.jar",
- "api": "csp_AppQi",
- "ext": {
- "url": "",
- "site": "https://ceshi307386.oss-cn-beijing.aliyuncs.com/csurl.txt",
- "dataKey": "Z98KXaLtO2wC1Pte",
- "dataIv": "Z98KXaLtO2wC1Pte",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "鲸鱼",
- "name": "🌀鲸鱼┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "jar": "./jars/config.jar",
- "api": "csp_AppQi",
- "ext": {
- "url": "",
- "site": "https://jingyu4k-1312635929.cos.ap-nanjing.myqcloud.com/1.json",
- "dataKey": "AAdgrdghjfgswerA",
- "dataIv": "AAdgrdghjfgswerA",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "光影",
- "name": "🌀光影┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://www.guangyingmi.com",
- "dataKey": "230fnsodfsdhfon2",
- "dataIv": "230fnsodfsdhfon2",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "狂人",
- "name": "🌀狂人┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://www.zjkrmv.vip",
- "dataKey": "vXeyuJFqTKqWUtWU",
- "dataIv": "vXeyuJFqTKqWUtWU",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "莱米",
- "name": "🌀莱米┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "http://laiget-1313189639.cos.ap-guangzhou.myqcloud.com/laimi.txt",
- "dataKey": "ce032244d093b3e2",
- "dataIv": "ce032244d093b3e2",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "灵虎",
- "name": "🌀灵虎┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "https://bind.315999.xyz/89.txt",
- "dataKey": "#getapp@TMD@2025",
- "dataIv": "#getapp@TMD@2025",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "旗星",
- "name": "🌀旗星┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://ys.qist.top",
- "site": "",
- "dataKey": "2SWSPFxugBLPPOKo",
- "dataIv": "2SWSPFxugBLPPOKo",
- "deviceId": "",
- "version": "120"
- }
- },
- {
- "key": "丫丫",
- "name": "🌀丫丫┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://tv.yy-fun.cc",
- "dataKey": "qkxnwkfjwpcnwycl",
- "dataIv": "qkxnwkfjwpcnwycl",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "云速",
- "name": "🌀云速┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "http://59.153.167.137:7788/1.json",
- "dataKey": "4d83b87c4c5ea111",
- "dataIv": "4d83b87c4c5ea111",
- "deviceId": "",
- "version": "105"
- }
- },
- {
- "key": "瓜萌",
- "name": "🌀瓜萌┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://www.guahd.com/1.txt",
- "dataKey": "f2A7D4B9E8C16531",
- "dataIv": "f2A7D4B9E8C16531",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "晴天",
- "name": "🌀晴天┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://qjappcms.sun4k.top",
- "dataKey": "sBxqXVF5pAHbGzrH",
- "dataIv": "sBxqXVF5pAHbGzrH",
- "deviceId": "",
- "version": "119"
- }
- },
- {
- "key": "白蛇",
- "name": "🌀白蛇┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "",
- "site": "http://tengxunyunaliyun.oss-cn-shanghai.aliyuncs.com/tengxunyun.txt",
- "dataKey": "n3l2tx5jdkp9s2c8",
- "dataIv": "n3l2tx5jdkp9s2c8",
- "deviceId": "",
- "version": "361"
- }
- },
- {
- "key": "若惜",
- "name": "🌀若惜┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://110.40.59.188:9527",
- "dataKey": "ebad3f1a58b13933",
- "dataIv": "ebad3f1a58b13933",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "外剧",
- "name": "🌀外剧┃超清┃弹幕",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://guowaiju.com",
- "dataKey": "7xv16h7qgkrs9b1p",
- "dataIv": "7xv16h7qgkrs9b1p",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "玩偶哥哥",
- "name": "♨️玩偶备用┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShare",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "ext": "./json/wogg.json"
- },
- {
- "key": "MoggV2",
- "name": "🍁优汐木偶┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShare",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 0,
- "filterable": 0,
- "ext": "./json/mogg.json"
- },
- {
- "key": "UcXmV2",
- "name": "🐂小二资源┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShare",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "filterable": 0,
- "changeable": 0,
- "timeout": 60,
- "ext": "./json/ex.json"
- },
- {
- "key": "QuarkLaBiV2",
- "name": "🖍︎蜡笔资源┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShare",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "filterable": 0,
- "changeable": 0,
- "timeout": 60,
- "ext": "./json/lb.json"
- },
- {
- "key": "QuarkzzV2",
- "name": "🏆️夸克至臻┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShare",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "filterable": 0,
- "changeable": 0,
- "timeout": 60,
- "ext": "./json/zz.json"
- },
- {
- "key": "YYDSYS",
- "name": "🍡多多网盘┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShare",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "filterable": 0,
- "changeable": 0,
- "timeout": 60,
- "ext": "./json/yyds.json"
- },
- {
- "key": "QuarkTZ",
- "name": "✊️团长网盘┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebTz",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "filterable": 0,
- "changeable": 0
- },
- {
- "key": "cloudLJ",
- "name": "🐋天翼雷鲸┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShareCloudLJ",
- "jar": "./jars/config.jar",
- "searchable": 0,
- "filterable": 0,
- "changeable": 0,
- "style": {
- "type": "rect",
- "ratio": 1.433
- },
- "ext": "./json/lj.json"
- },
- {
- "key": "海绵",
- "name": "🧽海绵资源┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShareCloudHM",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "changeable": 1,
- "style": {
- "type": "list",
- "ratio": 1.433
- },
- "ext": "./json/hm.json"
- },
- {
- "key": "123",
- "name": "📅数字资源┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebShareCloud123",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "changeable": 1,
- "style": {
- "type": "list",
- "ratio": 1.433
- },
- "ext": "./json/123.json"
- },
- {
- "key": "趣盘",
- "name": "🥳百度趣盘┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebQu",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "style": {
- "type": "list",
- "ratio": 1.433
- },
- "ext": {
- "url": "https://www.qupanshe.com"
- }
- },
- {
- "key": "盘库",
- "name": "🐼盘库资源┃4K弹幕",
- "type": 3,
- "api": "csp_PanWebKuBa",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 1,
- "filterable": 1,
- "changeable": 1,
- "ext": {
- "url": "https://panku8.com,https://yipanso.com"
- }
- },
- {
- "key": "瓜子影视",
- "name": "🍉瓜子┃蓝光┃无广",
- "type": 3,
- "api": "csp_Gz360",
- "jar": "./jars/瓜子影视.jar",
+ "api": "csp_YGP",
"searchable": 1,
"quickSearch": 1,
"filterable": 1
},
{
- "key": "金牌影视",
- "name": "🏅金牌┃蓝光┃无广",
+ "key": "Wogg",
+ "name": "玩偶哥哥",
"type": 3,
- "api": "./api/金牌影视.py",
+ "api": "csp_Wogg",
"searchable": 1,
- "quickSearch": 1,
+ "changeable": 1,
"filterable": 1,
- "playerType": 2,
"ext": {
- "site": "https://www.hkybqufgh.com,https://www.sizhengxt.com,https://0996zp.com,https://9zhoukj.com/,https://www.sizhengxt.com,https://www.tjrongze.com,https://www.jiabaide.cn,https://cqzuoer.com"
+ "site": [
+ "https://www.wogg.one",
+ "https://wogg.333232.xyz",
+ "https://wogg.xxooo.cf",
+ "https://woggpan.888484.xyz"
+ ],
+ "filter": "https://open.wya6.com/d/down/2026/json/wogg.json"
}
},
{
- "key": "夕晨踏雪",
- "name": "♨️夕晨踏雪┃4K弹幕",
- "jar": "./jars/config.jar",
+ "key": "FishMuou",
+ "name": "木偶哥哥",
"type": 3,
- "api": "csp_SP360"
- },
- {
- "key": "移动",
- "name": "🌀移动急速┃4K纯净",
- "type": 3,
- "api": "csp_YD",
+ "api": "csp_FishCloud",
"searchable": 1,
- "quickSearch": 1
- },
- {
- "key": "alllive",
- "name": "📽️星河共影┃2K直播",
- "type": 3,
- "api": "csp_AllliveGuard",
- "playerType": 2,
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
- },
- {
- "key": "抠搜",
- "name": "🍄抠抠搜搜┃网盘搜索",
- "type": 3,
- "api": "csp_KkSsGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
"ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto"
+ "site": [
+ "https://123.666291.xyz",
+ "https://666.666291.xyz",
+ "https://www.muou.site",
+ "https://www.muou.asia"
+ ]
}
},
{
- "key": "UCsousou",
- "name": "🌈优汐搜搜┃网盘搜索",
+ "key": "FishPs",
+ "name": "鱼鱼盘搜",
"type": 3,
- "api": "csp_UuSsGuard",
+ "api": "csp_FishPs",
"searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "厂长",
- "name": "📔厂长┃不卡┃纯净",
- "type": 3,
- "api": "csp_NewCzGuard",
- "timeout": 10,
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "贱贱",
- "name": "🐭荐片┃速览┃纯净",
- "type": 3,
- "api": "csp_JPJGuard",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0
- },
- {
- "key": "白白",
- "name": "🐭白白┃秒播┃纯净",
- "type": 3,
- "api": "csp_SbaibaiGuard",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "原创",
- "name": "☀原创┃不卡┃纯净",
- "type": 3,
- "api": "csp_YCyzGuard",
- "timeout": 15,
- "playerType": 1,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "苹果",
- "name": "🍎苹果┃不卡┃纯净",
- "type": 3,
- "api": "csp_LiteAppleGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "糯米",
- "name": "🍓糯米┃秒播┃纯净",
- "type": 3,
- "api": "csp_NmyswvGuard",
- "timeout": 15,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "文采",
- "name": "💮文采┃秒播┃纯净",
- "type": 3,
- "api": "csp_JpysGuard",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "溢彩",
- "name": "💡溢彩┃秒播┃纯净",
- "type": 3,
- "api": "csp_AppSKGuard",
- "searchable": 1,
- "quickSearch": 0,
- "changeable": 0,
- "ext": "rfOb1uAWbkRHp7hdxprG9un3+TfN183v1zIyaYDoDAIaLw5L8Dp8+v88LrEL3dBzrmWbdMBX0WNm7HtkQuw0AIzUurGBVyPqCKzDmbriATuukhctJlsLo8KxCw=="
- },
- {
- "key": "Lib",
- "name": "🌟立播┃秒播┃纯净",
- "type": 3,
- "api": "csp_LibvioGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1,
- "ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "zxzj",
- "name": "🍊在线┃外剧┃纯净",
- "type": 3,
- "api": "csp_Zxzj",
- "timeout": 15,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1,
- "ext": "https://www.zxzjhd.com/"
- },
- {
- "key": "比特",
- "name": "🍄比特┃秒播┃纯净",
- "type": 3,
- "api": "csp_BttwooGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "低端",
- "name": "⏮️低端┃外剧┃纯净",
- "type": 3,
- "api": "csp_DdrkGuard",
- "playerType": "2",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1
- },
- {
- "key": "萌米",
- "name": "👀萌米┃多线┃纯净",
- "type": 3,
- "api": "csp_AppTTGuard",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1,
- "ext": "uqGL1bNENEIVq+dC1p/Y9uWjuA=="
- },
- {
- "key": "热播",
- "name": "📺热播┃多线┃纯净",
- "type": 3,
- "api": "csp_AppTTGuard",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1,
- "ext": "uqGL1bNENExT7/hGxpSE5qU="
- },
- {
- "key": "即看",
- "name": "🐻即看┃多线┃纯净",
- "type": 3,
- "api": "csp_AppSxGuard",
- "timeout": 10,
- "searchable": 1,
- "quickSearch": 0,
- "changeable": 0,
- "ext": "rfOX1voDIQhH8epBwtCFsub1+2maloq8lmJuL821WUsZJAZft2UtrrwhKK5Zxt1toWyFctBUmThhuDAjVuU="
- },
- {
- "key": "欢视",
- "name": "👓欢视┃多线┃纯净",
- "type": 3,
- "api": "csp_AppTTGuard",
- "playerType": 2,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1,
- "ext": "uqGL1bNENExT9fFAy5mE5qU="
- },
- {
- "key": "Auete",
- "name": "🏝奥特┃无广┃纯净",
- "type": 3,
- "api": "csp_AueteGuard",
- "timeout": 15,
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 1,
- "ext": "https://auete.com/"
- },
- {
- "key": "新6V",
- "name": "🧲新6V┃磁力┃纯净",
- "type": 3,
- "api": "csp_SixVGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": "https://www.xb6v.com/"
- },
- {
- "key": "926看球",
- "name": "⚽926┃看球┃直播",
- "type": 3,
- "api": "csp_kanqiu926Guard",
- "searchable": 0,
- "changeable": 0,
- "style": {
- "type": "list"
- }
- },
- {
- "key": "664K",
- "name": "🌀沐风┃蓝光┃无广",
- "type": 3,
- "api": "csp_XBPQ",
- "ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=664k"
- },
- {
- "key": "4Kdy",
- "name": "🕊️凝安┃蓝光┃无广",
- "type": 3,
- "api": "csp_XBPQ",
- "ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=4kdy"
- },
- {
- "key": "88js",
- "name": "⚽ 88┃看球┃直播",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "ext": "./js/88看球.js",
- "style": {
- "type": "list"
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
- },
- {
- "key": "看球",
- "name": "⚽聚合┃看球┃直播",
- "type": 3,
- "api": "csp_KanqiuGuard",
- "timeout": 15,
- "searchable": 0,
- "changeable": 0,
- "style": {
- "type": "list"
- }
- },
- {
- "key": "MTV",
- "name": "🎧明星┃MV┃蓝光",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "https://im.feelec.com.cn/res/file.html?id=2c9a91099584ed490195f7bf50ac60b9"
- }
- },
- {
- "key": "虎牙直播js",
- "name": "🐯虎牙┃娱乐┃蓝光",
- "type": 3,
- "api": "./api/drpy2.js",
- "ext": "./js/huya2.js",
- "style": {
- "type": "rect",
- "ratio": 1.755
- },
- "timeout": 15,
- "playerType": "2",
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
- },
- {
- "key": "斗鱼js",
- "name": "🐟斗鱼┃娱乐┃蓝光",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "ext": "./js/斗鱼直播.js",
- "style": {
- "type": "rect",
- "ratio": 1.755
- },
- "timeout": 15,
- "playerType": "2",
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
- },
- {
- "key": "有声小说js",
- "name": "📻️戏曲┃娱乐┃蓝光",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "ext": "./js/有声小说吧.js",
- "style": {
- "type": "rect",
- "ratio": 1
- },
- "timeout": 15,
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
- },
- {
- "key": "Aid",
- "name": "🚑️急救┃常识┃教育",
- "type": 3,
- "api": "csp_FirstAidGuard",
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0,
- "style": {
- "type": "rect",
- "ratio": 3.8
- }
- },
- {
- "key": "PanSso",
- "name": "🐌盘他盘他┃三盘搜索",
- "type": 3,
- "api": "csp_PanSsoGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "YpanSo",
- "name": "🐟盘她盘她┃三盘搜索",
- "type": 3,
- "api": "csp_YpanSoGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "xzso",
- "name": "👻盘它盘它┃三盘搜索",
- "type": 3,
- "api": "csp_xzsoGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "TVBox/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "米搜",
- "name": "🦋米盘搜搜┃网盘搜索",
- "type": 3,
- "api": "csp_MIPanSoGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "tvfan/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "夸搜",
- "name": "😻夸可搜搜┃网盘搜索",
- "type": 3,
- "api": "csp_PanSearchGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "pan": "quark",
- "Cloud-drive": "tvfan/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "Aliso",
- "name": "🙀盘盘搜搜┃网盘搜索",
- "type": 3,
- "api": "csp_PanSearchGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "tvfan/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "YiSo",
- "name": "😹易一搜搜┃网盘搜索",
- "type": 3,
- "api": "csp_YiSoGuard",
- "searchable": 1,
- "quickSearch": 1,
- "changeable": 0,
- "ext": {
- "Cloud-drive": "tvfan/Cloud-drive.txt",
- "from": "4k|auto"
- }
- },
- {
- "key": "Bili",
- "name": "🅱哔哔合集┃4K弹幕",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 1,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "https://scrm-community.oss-cn-shenzhen.aliyuncs.com/miniso-vendor/20250818-438811-ee1bf539a68c4aa696de6280903c8a9a.json"
- }
- },
- {
- "key": "Biliych",
- "name": "🅱哔哔演唱会┃4K弹幕",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 1,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "https://scrm-community.oss-cn-shenzhen.aliyuncs.com/miniso-vendor/20250818-343950-58e67f4fabd947228c2fc158489008c9.json"
- }
- },
- {
- "key": "dr_兔小贝",
- "name": "📚少儿┃兔兔┃教育",
- "type": 3,
- "api": "./api/drpy2.min.js",
- "ext": "./js/兔小贝.js",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0
- },
- {
- "key": "少儿教育",
- "name": "📚少儿┃学识┃教育",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "http://我不是.摸鱼儿.com/api/moyu.php?file=少儿教育"
- }
- },
- {
- "key": "小学课堂",
- "name": "📚小学┃课堂┃教育",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "http://我不是.摸鱼儿.com/api/moyu.php?file=小学教育"
- }
- },
- {
- "key": "初中课堂",
- "name": "📚初中┃课堂┃教育",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "http://我不是.摸鱼儿.com/api/moyu.php?file=初中课堂"
- }
- },
- {
- "key": "高中教育",
- "name": "📚高中┃课堂┃教育",
- "type": 3,
- "api": "csp_BiliGuard",
- "style": {
- "type": "rect",
- "ratio": 1.597
- },
- "searchable": 0,
- "quickSearch": 0,
- "changeable": 0,
- "ext": {
- "json": "http://我不是.摸鱼儿.com/api/moyu.php?file=高中课堂"
- }
- },
- {
- "key": "曼波动漫",
- "name": "🍼曼波┃动漫┃蓝光",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://app.omofun1.top",
- "dataKey": "66dc309cbeeca454",
- "dataIv": "66dc309cbeeca454",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "咕咕动漫",
- "name": "🍚咕咕┃动漫┃蓝光",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://www.gugu3.com",
- "dataKey": "nKfZ8KX6JTNWRzTD",
- "dataIv": "nKfZ8KX6JTNWRzTD",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "米饭动漫",
- "name": "🍙米饭┃动漫┃蓝光",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "http://45.43.29.111:9527",
- "dataKey": "GETMIFUNGEIMIFUN",
- "dataIv": "GETMIFUNGEIMIFUN",
- "deviceId": "",
- "version": ""
- }
- },
- {
- "key": "次元动漫",
- "name": "😋次元┃动漫┃蓝光",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://jjjj.nilinili.org",
- "dataKey": "672263e98f232a05",
- "dataIv": "672263e98f232a05",
- "deviceId": "",
- "version": "170"
- }
- },
- {
- "key": "黑猫动漫",
- "name": "🐈⬛黑猫┃动漫┃蓝光",
- "type": 3,
- "quickSearch": 1,
- "api": "csp_AppGet",
- "jar": "./jars/config.jar",
- "ext": {
- "url": "https://dm.xxdm123.top:9991",
- "dataKey": "0fe3b5781782c621",
- "dataIv": "0fe3b5781782c621",
- "deviceId": "",
- "version": "203"
- }
- },
- {
- "key": "樱花",
- "name": "🌸樱花┃动漫┃樱花",
- "type": 3,
- "api": "csp_XBPQ",
- "ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=樱花动漫"
- },
- {
- "key": "巴士动漫",
- "name": "🚎巴士┃动漫┃樱花",
- "type": 3,
- "api": "csp_XYQHiker",
- "ext": "http://我不是.摸鱼儿.com/api/moyu.php?file=巴士"
- },
- {
- "key": "duanju",
- "name": "🌟星芽┃短剧┃热推",
- "type": 3,
- "api": "csp_AppXY",
- "jar": "./jars/config.jar",
- "searchable": 1,
- "quickSearch": 0,
"filterable": 0
},
{
- "key": "河马短剧",
- "name": "🦛河马┃短剧┃热推",
- "type": 3,
- "api": "./api/河马短剧.py",
+ "key": "zuiWanQingFeng",
+ "name": "醉挽清风",
+ "type": 4,
+ "api": "http://我不是.摸鱼儿.com/api/yyutx.php",
"searchable": 1,
- "changeable": 1,
"quickSearch": 1,
- "filterable": 1,
- "playerType": 2
+ "changeable": 0
},
{
- "key": "偷乐短剧",
- "name": "🤣偷乐┃短剧┃热推",
+ "key": "bili",
+ "name": "哔哩哔哩",
"type": 3,
- "api": "./api/偷乐短剧.py",
+ "api": "csp_Bili",
"searchable": 1,
- "changeable": 1,
"quickSearch": 1,
- "filterable": 1,
- "playerType": 2
- },
- {
- "key": "QuarkYunPan",
- "name": "📁文件┃夸克┃资源",
- "type": 3,
- "api": "csp_PanQuark",
- "jar": "./jars/config.jar",
- "searchable": 0,
- "filterable": 0,
- "changeable": 0,
- "style": {
- "type": "list",
- "ratio": 1.433
- },
- "ext": "./json/quarkShare.json"
- },
- {
- "key": "AliYunPanV2",
- "name": "📁文件┃阿里┃资源",
- "type": 3,
- "api": "csp_PanAli",
- "jar": "./jars/config.jar",
- "searchable": 0,
- "filterable": 0,
- "changeable": 0,
- "style": {
- "type": "list",
- "ratio": 1.433
- },
- "ext": "./json/aliShare.json"
- },
- {
- "key": "UcYunPan",
- "name": "📁文件┃优视┃资源",
- "type": 3,
- "api": "csp_PanUc",
- "jar": "./jars/config.jar",
- "searchable": 0,
- "filterable": 0,
- "changeable": 0,
- "style": {
- "type": "list",
- "ratio": 1.433
- },
- "ext": "./json/ucShare.json"
- },
- {
- "key": "baidu",
- "name": "📁文件┃百度┃资源",
- "type": 3,
- "api": "csp_PanBaiDu",
- "jar": "./jars/config.jar",
- "searchable": 0,
- "filterable": 0,
- "changeable": 0,
- "style": {
- "type": "list",
- "ratio": 1.433
+ "ext": {
+ "cookie": ""
}
},
+ {
+ "key": "CZ",
+ "name": "厂长资源",
+ "type": 3,
+ "api": "csp_CZ",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 0,
+ "ext": "https://www.czzymovie.com"
+ },
+ {
+ "key": "Jpys",
+ "name": "金牌视频",
+ "type": 3,
+ "api": "csp_Jpys",
+ "searchable": 1,
+ "ext": "https://y2s52n7.com,https://m.hkybqufgh.com,https://m.sizhengxt.com,https://m.9zhoukj.com,https://m.jiabaide.cn"
+ },
+ {
+ "key": "Rebo",
+ "name": "热播视频",
+ "type": 3,
+ "api": "csp_AppRJ",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 0,
+ "ext": {
+ "url": "http://v.rbotv.cn"
+ }
+ },
+ {
+ "key": "Guazi",
+ "name": "瓜子资源",
+ "type": 3,
+ "api": "csp_Guazi",
+ "searchable": 1
+ },
+ {
+ "key": "bimoxinghe",
+ "name": "笔墨星河",
+ "type": 3,
+ "changeable": 0,
+ "searchable": 1,
+ "quickSearch": 1,
+ "api": "csp_AppYsV2",
+ "ext": "wYceOHC6X3P3alhnB4RtmzgFD1Irln8apuUGgGt0cGNu1m3wi32g5216U4VmaeMAakuchzAtkZK4hN76RGX+SgXswlO9BU7AAQg57WGKJIWptJgUaSjRv+dsCFHAMS7NtEkaU8HcHtu3mNmXmiGVLae6KtmpbuT1razd8CkTO1A="
+ },
+ {
+ "key": "Jianpian",
+ "name": "荐片视频",
+ "type": 3,
+ "api": "csp_Jianpian",
+ "searchable": 1,
+ "filterable": 1
+ },
+ {
+ "key": "Zxzj",
+ "name": "在线之家",
+ "type": 3,
+ "api": "csp_Zxzj",
+ "searchable": 1,
+ "ext": "https://www.zxzjhd.com"
+ },
+ {
+ "key": "Libvio",
+ "name": "立播视频",
+ "type": 3,
+ "api": "csp_Libvio",
+ "searchable": 1,
+ "filterable": 0,
+ "ext": {
+ "site": "https://www.libvio.app"
+ }
+ },
+ {
+ "key": "Jinpaijm",
+ "name": "金牌应用",
+ "type": 3,
+ "api": "csp_AppQi",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "sCnv2gwYzALZxDcfyX62oT9dE7Gb6ket71O6kp6+0mTtnjdLHRR785IFK5WP7ejkAw2qKHtqwA0BzacEhwsWR46EFUSGjC+C/Q3AHUvecIUmppksjxVLEwnfCmbyHEmEBb87ZHq386bVwkvEwzxGdA==",
+ "changeable": 1
+ },
+ {
+ "key": "huahua",
+ "name": "花花视频",
+ "type": 3,
+ "changeable": 0,
+ "api": "csp_AppFox",
+ "ext": "p+FPtr6fYIfomOnA4N4Sl0dFvFqJvfkho3Yem3nNyo6peH9nVFr0wIIfo96V7voEHGrq+0mvfYjwri/nkrWITQ=="
+ },
+ {
+ "key": "jumeng",
+ "name": "剧梦视频",
+ "type": 3,
+ "api": "csp_AppGet",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "N5u2FS3i/elUFAoSVYBznb2XBsH21Pu8ka/X8qXgAK2VPcUud/asZs4ML65ngDd3ob1Y/WEaAS/XqMkeQchxAs1tgVw2qnUZJoLNHj6pVZm+8OiyK5gYaZals2ovboy6",
+ "changeable": 1
+ },
+ {
+ "key": "shuzi",
+ "name": "数字视频",
+ "type": 3,
+ "quickSearch": 1,
+ "api": "csp_AppGet",
+ "ext": "ij8RUkhocZ9ruRgraOrV50cdijznPXJjPSmDdoI59PzF/K2UT7pKnau1ohLhZpTHxdrsBe+l0Qca19BaNsP0tMwh5qgX5Vzp8djZcM8TGlBmgxUOngKyNKQe04jcTDCX"
+ },
+ {
+ "key": "baige",
+ "name": "白鸽视频",
+ "type": 3,
+ "searchable": 1,
+ "changeable": 1,
+ "api": "csp_AppGet",
+ "ext": "N5u2FS3i/elUFAoSVYBzndHyWmPoQhZsTIJ5ve8B5RdbojKSoqbNo9TORMUWkv2seRAMOLNXC0kGo4lOAL64Xk7pAb68ZHIckNJyo2vC4NFuLci8sMhhnj60v/nDbU1U"
+ },
+ {
+ "key": "aiying",
+ "name": "爱盈视频",
+ "type": 3,
+ "api": "csp_AppQi",
+ "changeable": "1",
+ "quickSearch": 0,
+ "filterable": 1,
+ "ext": "sCnv2gwYzALZxDcfyX62oSKxLlLfPpOEf+mKvMQvSpMDoEavlzj4ib+jrumGW1Thrn8REq84SGVeJzq6F/vNAQbZlJ0rkT2djKJq4bTW1XFoW302XV0p+ZSEqBozzdjbdOxaZv+zZWCbSmIlsvXQU5cnwEBCx4/vTVK7uRAHKMytMSWmTqvFCAsCim4kXYme"
+ },
+ {
+ "key": "Guwo",
+ "name": "顾我视频",
+ "type": 3,
+ "api": "csp_AppQi",
+ "changeable": "1",
+ "quickSearch": 0,
+ "filterable": 1,
+ "ext": "sCnv2gwYzALZxDcfyX62odvj29IK9rBjcucXypKIufFdmPNgdqJ1QC3/1tU5BzpE6QRHyZZhpYE2iANvQyJEcJnbxot6ElLhqczbYD9E7Gx0ZX5Ndfe/gYfH96S/3Bh/ZnBuT8RppP0xfvhJLL9XtgVCfYQom4JnY6Ax5y9Q9ihBWCa4RFS/Hzwz8+j3Ro/8nxwNFEf5J1MQD7xUihD4PQ=="
+ },
+ {
+ "key": "Cangshu",
+ "name": "仓鼠视频",
+ "type": 3,
+ "quickSearch": 1,
+ "api": "csp_AppQi",
+ "ext": "sCnv2gwYzALZxDcfyX62oU5WQkrrls9RmlBFANGm63njwlAIzmedjdoNo6sg4fA61BJQWaOKuP4gcUzdcgr/eQ0/xUFHrBuL/BhUmgc59s2AShZHvKfpqHq3l4bsWmELcFmGjlr2D/+7Wv2do0s4c+bSmv6VVthXz7kj9aQ8Abil5n7PmZ/S+AlxLxllUIaU0CWfA/vMYL/AxbwgZlH2Nw=="
+ },
+ {
+ "key": "Jingyu",
+ "name": "鲸鱼视频",
+ "type": 3,
+ "quickSearch": 1,
+ "api": "csp_AppQi",
+ "ext": "sCnv2gwYzALZxDcfyX62oZ+IU0AyvsGMnyyhtaWmhS1Cnf/YszSw+hAfankjknvF2e0ym7cXiVpYRg3GDCbOHZOs6Xq5UnFHXB4iUCElNZeIeC99mNU4iKOz6wnCThCbO4u9hQotX7aO/JSsJT/KC6Dh95YCFad3n8Tf6kSSz2Dl1E3yrn3190D5BBWJtjIo"
+ },
+ {
+ "key": "Xiaozhu",
+ "name": "小猪视频",
+ "type": 3,
+ "quickSearch": 1,
+ "api": "csp_AppQi",
+ "ext": "sCnv2gwYzALZxDcfyX62oSrS2f56gC6PfB9fUMobU8tFCjY2XWcaioCX4TeXapR9mhHvCc2Qbqw2o3+TIKUevhOHBVYn3mS0V96FB6CX80m4eAYj3+E63PGY3DXkUiZrkU17g2F5ATf8TeTPcDUFWGgQ2D/6vke0un+2TcUNlP84p51Lqmovhijo6ADPlzV48F16ydyOI8NH0KWXNLc3ig=="
+ },
+ {
+ "key": "Yunyun",
+ "name": "云云视频",
+ "type": 3,
+ "quickSearch": 1,
+ "api": "csp_AppQi",
+ "ext": "sCnv2gwYzALZxDcfyX62oXau36TAwGPWJQM5HukwC/t03nAE412fGglV43GvCzvMmcXvxGHi3FBbhKuWPsq1PI72H6CXEzX9I+nFeFHjBnMuRuB5BgkWGUzQevgXd5yW4M7bWEBM9JH2gOo1VBrfLt2+nk9sHARrStb7Vdl0bnmbbPs13qDJ+r+99OwKOgkx"
+ },
+ {
+ "key": "Kvm4k",
+ "name": "流光溢彩",
+ "type": 3,
+ "api": "csp_Kvm4k",
+ "searchable": 1,
+ "changeable": 1,
+ "ext": {
+ "site": [
+ "https://www.4kvm.me",
+ "https://www.4kvm.tv",
+ "https://www.4kvm.org"
+ ]
+ }
+ },
+ {
+ "key": "Xpg",
+ "name": "小苹果站",
+ "type": 3,
+ "api": "csp_Xpg",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
+ {
+ "key": "TvDy",
+ "name": "天堂资源",
+ "type": 3,
+ "api": "csp_TvDy",
+ "searchable": 1,
+ "filterable": 1
+ },
+ {
+ "key": "YsSo",
+ "name": "资源搜索",
+ "type": 3,
+ "api": "csp_YsSo",
+ "searchable": 1,
+ "ext": "https://ysso.cc"
+ },
+ {
+ "key": "MqTv",
+ "name": "麻雀视频",
+ "type": 3,
+ "api": "csp_MqTv",
+ "searchable": 1,
+ "ext": "https://www.mqtv.cc"
+ },
+ {
+ "key": "Xb6v",
+ "name": "六V视频",
+ "type": 3,
+ "api": "csp_Xb6v",
+ "searchable": 1,
+ "filterable": 1
+ },
+ {
+ "key": "Ikanbot",
+ "name": "爱看机器",
+ "type": 3,
+ "api": "csp_Ikanbot",
+ "searchable": 1,
+ "filterable": 0,
+ "ext": "{\"box\": \"TVBox\", \"danmu\": false}"
+ },
+ {
+ "key": "ReBoYingShi",
+ "name": "雪映芳辰",
+ "type": 3,
+ "api": "csp_ReBoYingShi",
+ "searchable": 1,
+ "changeable": 1
+ },
+ {
+ "key": "DianYingYunJi",
+ "name": "河清海晏",
+ "type": 3,
+ "api": "csp_DianYingYunJi",
+ "searchable": 1,
+ "changeable": 1
+ },
+ {
+ "key": "XiaoHongYS",
+ "name": "小红视频",
+ "type": 3,
+ "api": "csp_XiaoHongYS",
+ "searchable": 1,
+ "changeable": 1
+ },
+ {
+ "key": "KnVod",
+ "name": "柯南视频",
+ "type": 3,
+ "api": "csp_KnVod",
+ "searchable": 1,
+ "changeable": 1
+ },
+ {
+ "key": "BroVods",
+ "name": "兄弟视频",
+ "type": 3,
+ "api": "csp_BroVods",
+ "searchable": 1
+ },
+ {
+ "key": "SeedHub",
+ "name": "种子仓库",
+ "type": 3,
+ "api": "csp_SeedHub",
+ "searchable": 1
+ },
+ {
+ "key": "FishLabi",
+ "name": "蜡笔资源",
+ "type": 3,
+ "api": "csp_FishCloud",
+ "searchable": 1,
+ "ext": {
+ "site": [
+ "https://www.labi88.sbs",
+ "https://feimao666.fun",
+ "http://feimao888.fun"
+ ]
+ }
+ },
+ {
+ "key": "FishZhizhen",
+ "name": "至臻资源",
+ "type": 3,
+ "api": "csp_FishCloud",
+ "searchable": 1,
+ "ext": {
+ "site": [
+ "https://mihdr.top",
+ "https://www.miqk.cc",
+ "https://xiaomiai.site",
+ "https://xiaomi666.fun",
+ "https://www.mihdr.top",
+ "https://www.zhizhenpan.fun"
+ ]
+ }
+ },
+ {
+ "key": "FishDuoduo",
+ "name": "多多资源",
+ "type": 3,
+ "api": "csp_FishCloud",
+ "searchable": 1,
+ "ext": {
+ "site": [
+ "https://tv.yydsys.top",
+ "https://tv.yydsys.cc",
+ "https://tv.214521.xyz"
+ ]
+ }
+ },
+ {
+ "key": "FishErxiao",
+ "name": "二小资源",
+ "type": 3,
+ "api": "csp_FishCloud",
+ "searchable": 1,
+ "ext": {
+ "site": [
+ "https://xhww.net",
+ "https://erxiaofn.site",
+ "https://erxiaofn.click",
+ "https://www.xhww.net"
+ ]
+ }
+ },
+ {
+ "key": "FishHuban",
+ "name": "虎斑资源",
+ "type": 3,
+ "api": "csp_FishCloud",
+ "searchable": 1,
+ "ext": {
+ "site": [
+ "http://103.45.162.207:20720"
+ ]
+ }
+ },
+ {
+ "key": "HaiMian",
+ "name": "海绵资源",
+ "type": 3,
+ "api": "csp_HaiMian",
+ "searchable": 1,
+ "ext": {
+ "site": [
+ "https://www.haimianxz.com",
+ "https://www.hmxz.org",
+ "http://haimian.eu.org"
+ ],
+ "Classes": [
+ {
+ "type_name": "电影",
+ "type_id": "1"
+ },
+ {
+ "type_name": "剧集",
+ "type_id": "2"
+ },
+ {
+ "type_name": "动漫",
+ "type_id": "3"
+ },
+ {
+ "type_name": "其它",
+ "type_id": "4"
+ },
+ {
+ "type_name": "综艺",
+ "type_id": "5"
+ }
+ ]
+ }
+ },
+ {
+ "key": "PanTa",
+ "name": "盘他资源",
+ "type": 3,
+ "api": "csp_PanTa",
+ "searchable": 1,
+ "changeable": 1
+ },
+ {
+ "key": "LeiJing",
+ "name": "雷鲸资源",
+ "type": 3,
+ "api": "csp_LeiJing",
+ "searchable": 1,
+ "changeable": 1
+ },
+ {
+ "key": "YunPanBa",
+ "name": "云盘资源",
+ "type": 3,
+ "api": "csp_YunPanBa",
+ "searchable": 1,
+ "ext": "https://yunpan6.com/"
+ },
+ {
+ "key": "TgApiSearch",
+ "name": "群组搜索",
+ "type": 3,
+ "api": "csp_TgApiSearch",
+ "searchable": 1,
+ "filterable": 0,
+ "ext": {
+ "api_urls": [
+ "https://psweb.banye.tech:7777/api/search",
+ "https://so.566987.xyz/api/search",
+ "http://152.69.222.142:8088/api/search"
+ ]
+ }
+ },
+ {
+ "key": "TgWebSearch",
+ "name": "群组网搜",
+ "type": 3,
+ "api": "csp_TgWebSearch",
+ "searchable": 1,
+ "filterable": 0,
+ "ext": {
+ "channels": [
+ "tianyirigeng",
+ "tyypzhpd",
+ "XiangxiuNB",
+ "yunpanpan",
+ "kuakeyun",
+ "zaihuayun",
+ "Quark_Movies",
+ "alyp_4K_Movies",
+ "vip115hot",
+ "yunpanshare",
+ "dianyingshare",
+ "cloud189_group",
+ "yunpan139",
+ "cloudtianyi"
+ ],
+ "filters": [
+ "189",
+ "139",
+ "quark"
+ ]
+ }
+ },
+ {
+ "key": "mifun",
+ "name": "米福动漫",
+ "type": 3,
+ "searchable": 1,
+ "changeable": 1,
+ "api": "csp_AppGet",
+ "ext": "GvE9VjZcKAqoJldDfjF/EFjEacvdRgP+DzKluxhIowAt7HBmxO7zYbrt98skapDAKw6Hlx1Iy+mVJuQI6FYGb7NuvCZrhayVbhmr8hS0EeOTcuCxwv7DUtbufpbgslF77hCJqv2EtYD5MpCse/KA1Q=="
+ },
+ {
+ "key": "Dmla",
+ "name": "动漫啦啦",
+ "type": 3,
+ "api": "csp_Dmla",
+ "searchable": 1,
+ "quickSearch": 1,
+ "ext": {
+ "SiteUrl": "https://www.dmla4.com"
+ }
+ },
+ {
+ "key": "XiFan",
+ "name": "稀饭动漫",
+ "type": 3,
+ "api": "csp_XiFan",
+ "searchable": 1,
+ "quickSearch": 1,
+ "ext": {
+ "SiteUrl": "https://dm.xifanacg.com"
+ }
+ },
+ {
+ "key": "Manbo",
+ "name": "曼波动漫",
+ "type": 3,
+ "api": "csp_AppGet",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "N5u2FS3i/elUFAoSVYBznRMvuK1KLSV1DN4HBOs//GWvWksCYwvNDoPf16hWOVsnftf5i6fmT2utdVhcCOZaQrECH9tmtsiG6f+4GP6h27DsVeuwTbSSbDAx+58B3Gtp"
+ },
+ {
+ "key": "Gugu",
+ "name": "咕咕动漫",
+ "type": 3,
+ "api": "csp_AppGet",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1,
+ "ext": "N5u2FS3i/elUFAoSVYBznXUeEAt3X+JD9YKl5MjJCWQR4USFFmoQtTGE0mJDLVeOv00lc599YBqQsYAl+dw0i/1Jq4wgCPncJOqYhT21G0n+faZ/AOCfRq6fnnZcQCfX"
+ },
+ {
+ "key": "FishDuanju",
+ "name": "超级短剧",
+ "type": 3,
+ "api": "csp_FishDuanju",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
+ {
+ "key": "HHkk",
+ "name": "好看短剧",
+ "type": 3,
+ "api": "csp_HHkk",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
+ {
+ "key": "JLdj",
+ "name": "金粒短剧",
+ "type": 3,
+ "api": "csp_JLdj",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
+ {
+ "key": "Hema",
+ "name": "河马视频",
+ "type": 3,
+ "api": "csp_Hema",
+ "searchable": 1,
+ "quickSearch": 1,
+ "filterable": 1
+ },
+ {
+ "key": "Music24bit",
+ "name": "无损音乐",
+ "type": 3,
+ "api": "csp_Music24bit",
+ "searchable": 1,
+ "changeable": 1,
+ "ext": {
+ "categories": [
+ "周杰伦",
+ "林俊杰",
+ "陈奕迅",
+ "邓紫棋",
+ "薛之谦"
+ ]
+ }
+ },
+ {
+ "key": "TuneFree",
+ "name": "自由音乐",
+ "type": 3,
+ "api": "csp_TuneFree",
+ "searchable": 1
+ },
+ {
+ "key": "Kanqiu",
+ "name": "八八看球",
+ "type": 3,
+ "api": "csp_Kanqiu",
+ "searchable": 0,
+ "filterable": 1,
+ "ext": "http://www.88kanqiu.one",
+ "style": {
+ "type": "list"
+ }
+ },
+ {
+ "key": "TingBook",
+ "name": "六月听书",
+ "type": 3,
+ "api": "csp_TingBook",
+ "searchable": 1,
+ "ext": "http://www.5weiting.com",
+ "style": {
+ "type": "list"
+ }
+ },
+ {
+ "key": "Local",
+ "name": "文件浏览",
+ "type": 3,
+ "api": "csp_Local",
+ "searchable": 0,
+ "changeable": 0
+ },
+ {
+ "key": "Market",
+ "name": "网盘市场",
+ "type": 3,
+ "api": "csp_Market",
+ "searchable": 0,
+ "ext": "KeJpmGBHNDNtao15t//le3m1n9Z5ZXrQs8D+mt98HNScmDTy9nipe+1ejIo29HghDD4pfCqWua4Qkg5r0/MnKRwsD05VU7eWVi6rNUa5LHima2FYwW6EGq+rMF4KUUvYw4o87aAGALNwz/9G1sF1KJUOIDTvspHyGeoPJZwdhcFqOYFaAnva+X9/XEo519IWmHO15S20HMt9zg//bmTi9Q=="
+ },
{
"key": "push_agent",
- "name": "🛴手机┃推送┃链接",
+ "name": "推送接收",
"type": 3,
- "api": "csp_PushGuard",
+ "api": "csp_Push",
"searchable": 0,
- "quickSearch": 0,
- "ext": {
- "Cloud-drive": "tvfan/Cloud-drive.txt",
- "from": "4k|auto"
- }
+ "changeable": 0,
+ "timeout": 60
}
],
- "parses": [
- {
- "name": "聚合",
- "type": 3,
- "url": "Demo"
- }
- ],
- "doh": [
- {
- "name": "Google",
- "url": "https://dns.google/dns-query",
- "ips": [
- "8.8.4.4",
- "8.8.8.8"
- ]
- },
- {
- "name": "Cloudflare",
- "url": "https://cloudflare-dns.com/dns-query",
- "ips": [
- "1.1.1.1",
- "1.0.0.1",
- "2606:4700:4700::1111",
- "2606:4700:4700::1001"
- ]
- },
- {
- "name": "AdGuard",
- "url": "https://dns.adguard.com/dns-query",
- "ips": [
- "94.140.14.140",
- "94.140.14.141"
- ]
- },
- {
- "name": "DNSWatch",
- "url": "https://resolver2.dns.watch/dns-query",
- "ips": [
- "84.200.69.80",
- "84.200.70.40"
- ]
- },
- {
- "name": "Quad9",
- "url": "https://dns.quad9.net/dns-quer",
- "ips": [
- "9.9.9.9",
- "149.112.112.112"
- ]
- }
- ],
- "lives": [
- {
- "name": "【备用】全是气氛组",
- "type": 0,
- "ua": "okhttp/3.15"
- }
- ],
- "flags": [
- "youku",
- "优酷",
- "优 酷",
- "优酷视频",
- "qq",
- "腾讯",
- "腾 讯",
- "腾讯视频",
- "iqiyi",
- "qiyi",
- "奇艺",
- "爱奇艺",
- "爱 奇 艺",
- "m1905",
- "xigua",
- "letv",
- "leshi",
- "乐视",
- "乐 视",
- "sohu",
- "搜狐",
- "搜 狐",
- "搜狐视频",
- "tudou",
- "pptv",
- "mgtv",
- "芒果",
- "imgo",
- "芒果TV",
- "芒 果 T V",
- "bilibili",
- "哔 哩",
- "哔 哩 哔 哩"
- ],
+ "lives": [],
+ "parses": [],
+ "flags": [],
"ijk": [
{
"group": "软解码",
@@ -1653,6 +877,61 @@
}
],
"ads": [
- "static-mozai.4gtv.tv"
+ "mimg.0c1q0l.cn",
+ "www.googletagmanager.com",
+ "www.google-analytics.com",
+ "mc.usihnbcq.cn",
+ "mg.g1mm3d.cn",
+ "mscs.svaeuzh.cn",
+ "cnzz.hhttm.top",
+ "tp.vinuxhome.com",
+ "cnzz.mmstat.com",
+ "www.baihuillq.com",
+ "s23.cnzz.com",
+ "z3.cnzz.com",
+ "c.cnzz.com",
+ "stj.v1vo.top",
+ "z12.cnzz.com",
+ "img.mosflower.cn",
+ "tips.gamevvip.com",
+ "ehwe.yhdtns.com",
+ "xdn.cqqc3.com",
+ "www.jixunkyy.cn",
+ "sp.chemacid.cn",
+ "hm.baidu.com",
+ "s9.cnzz.com",
+ "z6.cnzz.com",
+ "um.cavuc.com",
+ "mav.mavuz.com",
+ "wofwk.aoidf3.com",
+ "z5.cnzz.com",
+ "xc.hubeijieshikj.cn",
+ "tj.tianwenhu.com",
+ "xg.gars57.cn",
+ "k.jinxiuzhilv.com",
+ "cdn.bootcss.com",
+ "ppl.xunzhuo123.com",
+ "xomk.jiangjunmh.top",
+ "img.xunzhuo123.com",
+ "z1.cnzz.com",
+ "s13.cnzz.com",
+ "xg.huataisangao.cn",
+ "z7.cnzz.com",
+ "z2.cnzz.com",
+ "s96.cnzz.com",
+ "q11.cnzz.com",
+ "thy.dacedsfa.cn",
+ "xg.whsbpw.cn",
+ "s19.cnzz.com",
+ "z8.cnzz.com",
+ "s4.cnzz.com",
+ "f5w.as12df.top",
+ "ae01.alicdn.com",
+ "www.92424.cn",
+ "k.wudejia.com",
+ "vivovip.mmszxc.top",
+ "qiu.xixiqiu.com",
+ "cdnjs.hnfenxun.com",
+ "cms.qdwght.com"
]
}
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/a848d2173d12b963b98a2ffa9796abe7.js b/tvboxqq/摸鱼儿/api/a848d2173d12b963b98a2ffa9796abe7.js
deleted file mode 100644
index 82b037b..0000000
--- a/tvboxqq/摸鱼儿/api/a848d2173d12b963b98a2ffa9796abe7.js
+++ /dev/null
@@ -1,304 +0,0 @@
-if (typeof Object.assign != 'function') {
- Object.assign = function () {
- var target = arguments[0];
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }
- return target;
-};
-}
-function getMubans() {
- var mubanDict = { // 模板字典
- mxpro: {
- title: '',
- host: '',
- // homeUrl:'/',
- url: '/vodshow/fyclass--------fypage---.html',
- searchUrl: '/vodsearch/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {//网站的请求头,完整支持所有的,常带ua和cookies
- 'User-Agent': 'MOBILE_UA',
- // "Cookie": "searchneed=ok"
- },
- class_parse: '.navbar-items li:gt(2):lt(8);a&&Text;a&&href;/(\\d+).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: '.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: 'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
- 二级: {
- "title": "h1&&Text;.module-info-tag&&Text",
- "img": ".lazyload&&data-original",
- "desc": ".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text",
- "content": ".module-info-introduction&&Text",
- "tabs": ".module-tab-item",
- "lists": ".module-play-list:eq(#id) a"
- },
- 搜索: 'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
- },
- mxone5: {
- title: '',
- host: '',
- url: '/show/fyclass--------fypage---.html',
- searchUrl: '/search/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- class_parse: '.nav-menu-items&&li;a&&Text;a&&href;.*/(.*?).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: '.module-list;.module-items&&.module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.module-items .module-item;a&&title;img&&data-src;.module-item-text&&Text;a&&href',
- 二级: {
- "title": "h1&&Text;.tag-link&&Text",
- "img": ".module-item-pic&&img&&data-src",
- "desc": ".video-info-items:eq(0)&&Text;.video-info-items:eq(1)&&Text;.video-info-items:eq(2)&&Text;.video-info-items:eq(3)&&Text",
- "content": ".vod_content&&Text",
- "tabs": ".module-tab-item",
- "lists": ".module-player-list:eq(#id)&&.scroll-content&&a"
- },
- 搜索: '.module-items .module-search-item;a&&title;img&&data-src;.video-serial&&Text;a&&href',
- },
- 首图: {
- title: '',
- host: '',
- url: '/vodshow/fyclass--------fypage---/',
- searchUrl: '/vodsearch/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {//网站的请求头,完整支持所有的,常带ua和cookies
- 'User-Agent': 'MOBILE_UA',
- // "Cookie": "searchneed=ok"
- },
- class_parse: '.myui-header__menu li.hidden-sm:gt(0):lt(5);a&&Text;a&&href;/(\\d+).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: 'ul.myui-vodlist.clearfix;li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.myui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
- 二级: {
- "title": ".myui-content__detail .title&&Text;.myui-content__detail p:eq(-2)&&Text",
- "img": ".myui-content__thumb .lazyload&&data-original",
- "desc": ".myui-content__detail p:eq(0)&&Text;.myui-content__detail p:eq(1)&&Text;.myui-content__detail p:eq(2)&&Text",
- "content": ".content&&Text",
- "tabs": ".nav-tabs:eq(0) li",
- "lists": ".myui-content__list:eq(#id) li"
- },
- 搜索: '#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- },
- 首图2: {
- title: '',
- host: '',
- url: '/list/fyclass-fypage.html',
- searchUrl: '/vodsearch/**----------fypage---.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {
- 'User-Agent': 'UC_UA',
- // "Cookie": ""
- },
- // class_parse:'.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;/(\\d+).html',
- class_parse: '.stui-header__menu li:gt(0):lt(7);a&&Text;a&&href;.*/(.*?).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: 'ul.stui-vodlist.clearfix;li;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.stui-vodlist li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
- 二级: {
- "title": ".stui-content__detail .title&&Text;.stui-content__detail p:eq(-2)&&Text",
- "img": ".stui-content__thumb .lazyload&&data-original",
- "desc": ".stui-content__detail p:eq(0)&&Text;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text",
- "content": ".detail&&Text",
- "tabs": ".stui-vodlist__head h3",
- "lists": ".stui-content__playlist:eq(#id) li"
- },
- 搜索: 'ul.stui-vodlist__media:eq(0) li,ul.stui-vodlist:eq(0) li,#searchList li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- 搜索1: 'ul.stui-vodlist&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- 搜索2: 'ul.stui-vodlist__media&&li;a&&title;.lazyload&&data-original;.text-muted&&Text;a&&href;.text-muted:eq(-1)&&Text',
- },
- 默认: {
- title: '',
- host: '',
- url: '/vodshow/fyclass--------fypage---.html',
- searchUrl: '/vodsearch/-------------.html?wd=**',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {
- 'User-Agent': 'MOBILE_UA',
- },
- play_parse: true,
- lazy: '',
- limit: 6,
- double: true, // 推荐内容是否双层定位
- },
- vfed: {
- title: '',
- host: '',
- url: '/index.php/vod/show/id/fyclass/page/fypage.html',
- searchUrl: '/index.php/vod/search/page/fypage/wd/**.html',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {
- 'User-Agent': 'UC_UA',
- },
- // class_parse:'.fed-pops-navbar&&ul.fed-part-rows&&a.fed-part-eone:gt(0):lt(5);a&&Text;a&&href;.*/(.*?).html',
- class_parse: '.fed-pops-navbar&&ul.fed-part-rows&&a;a&&Text;a&&href;.*/(.*?).html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: 'ul.fed-list-info.fed-part-rows;li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.fed-list-info&&li;a.fed-list-title&&Text;a&&data-original;.fed-list-remarks&&Text;a&&href',
- 二级: {
- "title": "h1.fed-part-eone&&Text;.fed-deta-content&&.fed-part-rows&&li&&Text",
- "img": ".fed-list-info&&a&&data-original",
- "desc": ".fed-deta-content&&.fed-part-rows&&li:eq(1)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(2)&&Text;.fed-deta-content&&.fed-part-rows&&li:eq(3)&&Text",
- "content": ".fed-part-esan&&Text",
- "tabs": ".fed-drop-boxs&&.fed-part-rows&&li",
- "lists": ".fed-play-item:eq(#id)&&ul:eq(1)&&li"
- },
- 搜索: '.fed-deta-info;h1&&Text;.lazyload&&data-original;.fed-list-remarks&&Text;a&&href;.fed-deta-content&&Text',
- },
- 海螺3: {
- title: '',
- host: '',
- searchUrl: '/v_search/**----------fypage---.html',
- url: '/vod_____show/fyclass--------fypage---.html',
- headers: {
- 'User-Agent': 'MOBILE_UA'
- },
- timeout: 5000,
- class_parse: 'body&&.hl-nav li:gt(0);a&&Text;a&&href;.*/(.*?).html',
- cate_exclude: '明星|专题|最新|排行',
- limit: 40,
- play_parse: true,
- lazy: '',
- 推荐: '.hl-vod-list;li;a&&title;a&&data-original;.remarks&&Text;a&&href',
- double: true,
- 一级: '.hl-vod-list&&.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
- 二级: {
- "title": ".hl-infos-title&&Text;.hl-text-conch&&Text",
- "img": ".hl-lazy&&data-original",
- "desc": ".hl-infos-content&&.hl-text-conch&&Text",
- "content": ".hl-content-text&&Text",
- "tabs": ".hl-tabs&&a",
- "lists": ".hl-plays-list:eq(#id)&&li"
- },
- 搜索: '.hl-list-item;a&&title;a&&data-original;.remarks&&Text;a&&href',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- },
- 海螺2: {
- title: '',
- host: '',
- searchUrl: '/index.php/vod/search/page/fypage/wd/**/',
- url: '/index.php/vod/show/id/fyclass/page/fypage/',
- headers: {
- 'User-Agent': 'MOBILE_UA'
- },
- timeout: 5000,
- class_parse: '#nav-bar li;a&&Text;a&&href;id/(.*?)/',
- limit: 40,
- play_parse: true,
- lazy: '',
- 推荐: '.list-a.size;li;a&&title;.lazy&&data-original;.bt&&Text;a&&href',
- double: true,
- 一级: '.list-a&&li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
- 二级: {
- "title": "h2&&Text;.deployment&&Text",
- "img": ".lazy&&data-original",
- "desc": ".deployment&&Text",
- "content": ".ec-show&&Text",
- "tabs": "#tag&&a",
- "lists": ".play_list_box:eq(#id)&&li"
- },
- 搜索: '.search-list;a&&title;.lazy&&data-original;.deployment&&Text;a&&href',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- },
- 短视: {
- title: '',
- host: '',
- // homeUrl:'/',
- url: '/channel/fyclass-fypage.html',
- searchUrl: '/search.html?wd=**',
- searchable: 2,//是否启用全局搜索,
- quickSearch: 0,//是否启用快速搜索,
- filterable: 0,//是否启用分类筛选,
- headers: {//网站的请求头,完整支持所有的,常带ua和cookies
- 'User-Agent': 'MOBILE_UA',
- // "Cookie": "searchneed=ok"
- },
- class_parse: '.menu_bottom ul li;a&&Text;a&&href;.*/(.*?).html',
- cate_exclude: '解析|动态',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐: '.indexShowBox;ul&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
- double: true, // 推荐内容是否双层定位
- 一级: '.pic-list&&li;a&&title;img&&data-src;.s1&&Text;a&&href',
- 二级: {
- "title": "h1&&Text;.content-rt&&p:eq(0)&&Text",
- "img": ".img&&img&&data-src",
- "desc": ".content-rt&&p:eq(1)&&Text;.content-rt&&p:eq(2)&&Text;.content-rt&&p:eq(3)&&Text;.content-rt&&p:eq(4)&&Text;.content-rt&&p:eq(5)&&Text",
- "content": ".zkjj_a&&Text",
- "tabs": ".py-tabs&&option",
- "lists": ".player:eq(#id) li"
- },
- 搜索: '.sr_lists&&ul&&li;h3&&Text;img&&data-src;.int&&p:eq(0)&&Text;a&&href',
- },
- 短视2:{
- title: '',
- host: '',
- class_name:'电影&电视剧&综艺&动漫',
- class_url:'1&2&3&4',
- searchUrl: '/index.php/ajax/suggest?mid=1&wd=**&limit=50',
- searchable: 2,
- quickSearch: 0,
- headers:{'User-Agent':'MOBILE_UA'},
- url: '/index.php/api/vod#type=fyclass&page=fypage',
- filterable:0,//是否启用分类筛选,
- filter_url:'',
- filter: {},
- filter_def:{},
- detailUrl:'/index.php/vod/detail/id/fyid.html',
- play_parse: true,
- lazy: '',
- limit: 6,
- 推荐:'.list-vod.flex .public-list-box;a&&title;.lazy&&data-original;.public-list-prb&&Text;a&&href',
- 一级:'js:let body=input.split("#")[1];let t=Math.round(new Date/1e3).toString();let key=md5("DS"+t+"DCC147D11943AF75");let url=input.split("#")[0];body=body+"&time="+t+"&key="+key;print(body);fetch_params.body=body;let html=post(url,fetch_params);let data=JSON.parse(html);VODS=data.list.map(function(it){it.vod_pic=urljoin2(input.split("/i")[0],it.vod_pic);return it});',
- 二级:{
- "title":".slide-info-title&&Text;.slide-info:eq(3)--strong&&Text",
- "img":".detail-pic&&data-original",
- "desc":".fraction&&Text;.slide-info-remarks:eq(1)&&Text;.slide-info-remarks:eq(2)&&Text;.slide-info:eq(2)--strong&&Text;.slide-info:eq(1)--strong&&Text",
- "content":"#height_limit&&Text",
- "tabs":".anthology.wow.fadeInUp.animated&&.swiper-wrapper&&a",
- "tab_text":".swiper-slide&&Text",
- "lists":".anthology-list-box:eq(#id) li"
- },
- 搜索:'json:list;name;pic;;id',
- }
- };
- return JSON.parse(JSON.stringify(mubanDict));
-}
-var mubanDict = getMubans();
-var muban = getMubans();
-export default {muban,getMubans};
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js b/tvboxqq/摸鱼儿/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js
deleted file mode 100644
index 796d53a..0000000
--- a/tvboxqq/摸鱼儿/api/dffd4cc3bf2fdbddf56e179fb494a4fa.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/***
- * gbk编码解码函数
- * strTool = gbkTool() strTool.encode(key)
- * @returns {{encode: (function(*): *), decode: (function(*): *)}}
- */
-export function gbkTool(){
- var data=function(zipData){
- var re=zipData
- .replace(/#(\d+)\$/g,function(a,b){
- return Array(+b+3).join('#');
- })
- .replace(/#/g,'####')
- .replace(/(\w\w):([\w#]+)(?:,|$)/g,function(a,hd,dt){
- return dt.replace(/../g,function(a){
- if(a!='##'){
- return hd+a;
- }else{
- return a;
- }
- });
- });
- return re;
- }('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f9091929394959697989a9b9c9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b8b9babbbcbdbebfc0c1c2c3c4c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d7d8d9dadcdfe0e3e4eaeced#f0f5f6f8f9fafbfcff,5e:000407090a0b0d0e1213171e1f20212223242528292a2b2c2f303233343536393a3e3f404143464748494a4b4d4e4f50515253565758595a5c5d5f60636465666768696a6b6c6d6e6f70717577797e8182838588898c8d8e92989b9da1a2a3a4a8a9aaabacaeafb0b1b2b4babbbcbdbfc0c1c2c3c4c5c6c7c8cbcccdcecfd0d4d5d7d8d9dadcdddedfe0e1e2e3e4e5e6e7e9ebecedeeeff0f1f2f3f5f8f9fbfcfd,5f:050607090c0d0e10121416191a1c1d1e21222324#282b2c2e30323334353637383b3d3e3f4142434445464748494a4b4c4d4e4f5154595a5b5c5e5f60636567686b6e6f72747576787a7d7e7f83868d8e8f919394969a9b9d9e9fa0a2a3a4a5a6a7a9abacafb0b1b2b3b4b6b8b9babbbebfc0c1c2c7c8cacbced3d4d5dadbdcdedfe2e3e5e6e8e9eceff0f2f3f4f6f7f9fafc,60:0708090b0c10111317181a1e1f2223242c2d2e3031323334363738393a3d3e404445464748494a4c4e4f5153545657585b5c5e5f606165666e71727475777e80#8182858687888a8b8e8f909193959798999c9ea1a2a4a5a7a9aaaeb0b3b5b6b7b9babdbebfc0c1c2c3c4c7c8c9cccdcecfd0d2d3d4d6d7d9dbdee1e2e3e4e5eaf1f2f5f7f8fbfcfdfeff,61:02030405070a0b0c1011121314161718191b1c1d1e21222528292a2c2d2e2f303132333435363738393a3b3c3d3e4041424344454647494b4d4f50525354565758595a5b5c5e5f606163646566696a6b6c6d6e6f717273747678797a7b7c7d7e7f808182838485868788898a8c8d8f9091929395#969798999a9b9c9e9fa0a1a2a3a4a5a6aaabadaeafb0b1b2b3b4b5b6b8b9babbbcbdbfc0c1c3c4c5c6c7c9cccdcecfd0d3d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e7e8e9eaebecedeeeff0f1f2f3f4f6f7f8f9fafbfcfdfe,62:00010203040507091314191c1d1e2023262728292b2d2f303132353638393a3b3c424445464a4f50555657595a5c5d5e5f6061626465687172747577787a7b7d818283858687888b8c8d8e8f9094999c9d9ea3a6a7a9aaadaeafb0b2b3b4b6b7b8babec0c1#c3cbcfd1d5dddee0e1e4eaebf0f2f5f8f9fafb,63:00030405060a0b0c0d0f10121314151718191c2627292c2d2e30313334353637383b3c3e3f40414447484a51525354565758595a5b5c5d60646566686a6b6c6f707273747578797c7d7e7f81838485868b8d9193949597999a9b9c9d9e9fa1a4a6abafb1b2b5b6b9bbbdbfc0c1c2c3c5c7c8cacbccd1d3d4d5d7d8d9dadbdcdddfe2e4e5e6e7e8ebeceeeff0f1f3f5f7f9fafbfcfe,64:0304060708090a0d0e111215161718191a1d1f222324#252728292b2e2f3031323335363738393b3c3e404243494b4c4d4e4f505153555657595a5b5c5d5f60616263646566686a6b6c6e6f70717273747576777b7c7d7e7f8081838688898a8b8c8d8e8f90939497989a9b9c9d9fa0a1a2a3a5a6a7a8aaabafb1b2b3b4b6b9bbbdbebfc1c3c4c6c7c8c9cacbcccfd1d3d4d5d6d9dadbdcdddfe0e1e3e5e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,65:01020304050607080a0b0c0d0e0f10111314151617191a1b1c1d1e1f2021#222324262728292a2c2d30313233373a3c3d404142434446474a4b4d4e5052535457585a5c5f606164656768696a6d6e6f7173757678797a7b7c7d7e7f8081828384858688898a8d8e8f92949596989a9d9ea0a2a3a6a8aaacaeb1b2b3b4b5b6b7b8babbbebfc0c2c7c8c9cacdd0d1d3d4d5d8d9dadbdcdddedfe1e3e4eaebf2f3f4f5f8f9fbfcfdfeff,66:0104050708090b0d1011121617181a1b1c1e2122232426292a2b2c2e3032333738393a3b3d3f40424445464748494a4d4e505158#595b5c5d5e6062636567696a6b6c6d7172737578797b7c7d7f808183858688898a8b8d8e8f909293949598999a9b9c9e9fa0a1a2a3a4a5a6a9aaabacadafb0b1b2b3b5b6b7b8babbbcbdbfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8dadedfe0e1e2e3e4e5e7e8eaebecedeeeff1f5f6f8fafbfd,67:010203040506070c0e0f1112131618191a1c1e20212223242527292e303233363738393b3c3e3f414445474a4b4d5254555758595a5b5d62636466676b6c6e717476#78797a7b7d8082838586888a8c8d8e8f9192939496999b9fa0a1a4a6a9acaeb1b2b4b9babbbcbdbebfc0c2c5c6c7c8c9cacbcccdced5d6d7dbdfe1e3e4e6e7e8eaebedeef2f5f6f7f8f9fafbfcfe,68:01020304060d1012141518191a1b1c1e1f20222324252627282b2c2d2e2f30313435363a3b3f474b4d4f52565758595a5b5c5d5e5f6a6c6d6e6f707172737578797a7b7c7d7e7f8082848788898a8b8c8d8e90919294959698999a9b9c9d9e9fa0a1a3a4a5a9aaabacaeb1b2b4b6b7b8#b9babbbcbdbebfc1c3c4c5c6c7c8cacccecfd0d1d3d4d6d7d9dbdcdddedfe1e2e4e5e6e7e8e9eaebecedeff2f3f4f6f7f8fbfdfeff,69:00020304060708090a0c0f11131415161718191a1b1c1d1e21222325262728292a2b2c2e2f313233353637383a3b3c3e4041434445464748494a4b4c4d4e4f50515253555658595b5c5f616264656768696a6c6d6f7072737475767a7b7d7e7f8183858a8b8c8e8f909192939697999a9d9e9fa0a1a2a3a4a5a6a9aaacaeafb0b2b3b5b6b8b9babcbd#bebfc0c2c3c4c5c6c7c8c9cbcdcfd1d2d3d5d6d7d8d9dadcdddee1e2e3e4e5e6e7e8e9eaebeceeeff0f1f3f4f5f6f7f8f9fafbfcfe,6a:000102030405060708090b0c0d0e0f10111213141516191a1b1c1d1e20222324252627292b2c2d2e30323334363738393a3b3c3f40414243454648494a4b4c4d4e4f515253545556575a5c5d5e5f60626364666768696a6b6c6d6e6f70727374757677787a7b7d7e7f81828385868788898a8b8c8d8f929394959698999a9b9c9d9e9fa1a2a3a4a5a6#a7a8aaadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,6b:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f252628292a2b2c2d2e2f303133343536383b3c3d3f4041424445484a4b4d4e4f5051525354555657585a5b5c5d5e5f606168696b6c6d6e6f7071727374757677787a7d7e7f808588#8c8e8f909194959798999c9d9e9fa0a2a3a4a5a6a7a8a9abacadaeafb0b1b2b6b8b9babbbcbdbec0c3c4c6c7c8c9caccced0d1d8dadcdddedfe0e2e3e4e5e6e7e8e9ecedeef0f1f2f4f6f7f8fafbfcfeff,6c:000102030408090a0b0c0e12171c1d1e2023252b2c2d31333637393a3b3c3e3f434445484b4c4d4e4f5152535658595a62636566676b6c6d6e6f71737577787a7b7c7f8084878a8b8d8e9192959697989a9c9d9ea0a2a8acafb0b4b5b6b7bac0c1c2c3c6c7c8cbcdcecfd1d2d8#d9dadcdddfe4e6e7e9ecedf2f4f9ff,6d:000203050608090a0d0f101113141516181c1d1f20212223242628292c2d2f30343637383a3f404244494c50555657585b5d5f6162646567686b6c6d707172737576797a7b7d7e7f8081838486878a8b8d8f9092969798999a9ca2a5acadb0b1b3b4b6b7b9babbbcbdbec1c2c3c8c9cacdcecfd0d2d3d4d5d7dadbdcdfe2e3e5e7e8e9eaedeff0f2f4f5f6f8fafdfeff,6e:0001020304060708090b0f12131518191b1c1e1f222627282a2c2e30313335#3637393b3c3d3e3f40414245464748494a4b4c4f5051525557595a5c5d5e606162636465666768696a6c6d6f707172737475767778797a7b7c7d8081828487888a8b8c8d8e91929394959697999a9b9d9ea0a1a3a4a6a8a9abacadaeb0b3b5b8b9bcbebfc0c3c4c5c6c8c9cacccdced0d2d6d8d9dbdcdde3e7eaebecedeeeff0f1f2f3f5f6f7f8fafbfcfdfeff,6f:000103040507080a0b0c0d0e101112161718191a1b1c1d1e1f212223252627282c2e303234353738393a3b3c3d3f404142#43444548494a4c4e4f5051525354555657595a5b5d5f60616364656768696a6b6c6f707173757677797b7d7e7f808182838586878a8b8f909192939495969798999a9b9d9e9fa0a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b7b8babbbcbdbebfc1c3c4c5c6c7c8cacbcccdcecfd0d3d4d5d6d7d8d9dadbdcdddfe2e3e4e5e6e7e8e9eaebecedf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,70:000102030405060708090a0b0c0d0e0f1012131415161718191c1d1e1f2021222425262728292a#2b2c2d2e2f30313233343637383a3b3c3d3e3f404142434445464748494a4b4d4e505152535455565758595a5b5c5d5f606162636465666768696a6e7172737477797a7b7d818283848687888b8c8d8f90919397989a9b9e9fa0a1a2a3a4a5a6a7a8a9aab0b2b4b5b6babebfc4c5c6c7c9cbcccdcecfd0d1d2d3d4d5d6d7dadcdddee0e1e2e3e5eaeef0f1f2f3f4f5f6f8fafbfcfeff,71:0001020304050607080b0c0d0e0f111214171b1c1d1e1f2021222324252728292a2b2c2d2e323334#353738393a3b3c3d3e3f4041424344464748494b4d4f505152535455565758595a5b5d5f6061626365696a6b6c6d6f707174757677797b7c7e7f8081828385868788898b8c8d8e909192939596979a9b9c9d9ea1a2a3a4a5a6a7a9aaabadaeafb0b1b2b4b6b7b8babbbcbdbebfc0c1c2c4c5c6c7c8c9cacbcccdcfd0d1d2d3d6d7d8d9dadbdcdddedfe1e2e3e4e6e8e9eaebecedeff0f1f2f3f4f5f6f7f8fafbfcfdfeff,72:0001020304050708090a0b0c0d0e0f101112131415161718191a#1b1c1e1f2021222324252627292b2d2e2f3233343a3c3e40414243444546494a4b4e4f505153545557585a5c5e60636465686a6b6c6d707173747677787b7c7d828385868788898c8e9091939495969798999a9b9c9d9ea0a1a2a3a4a5a6a7a8a9aaabaeb1b2b3b5babbbcbdbebfc0c5c6c7c9cacbcccfd1d3d4d5d6d8dadb#95$,30:000102,00b702:c9c7,00a830:0305,2014ff5e20:162618191c1d,30:141508090a0b0c0d0e0f16171011,00:b1d7f7,22:362728110f2a2908371aa52520,231222:992b2e614c483d1d606e6f64651e3534,26:4240,00b020:3233,2103ff0400a4ff:e0e1,203000a7211626:0605,25:cbcfcec7c6a1a0b3b2,203b21:92909193,30:13#95$,21:70717273747576777879#4$,24:88898a8b8c8d8e8f909192939495969798999a9b7475767778797a7b7c7d7e7f808182838485868760616263646566676869##,32:20212223242526272829##,21:606162636465666768696a6b#97$,ff:010203e505060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5de3#95$,30:4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293#106$a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6#103$,03:9192939495969798999a9b9c9d9e9fa0a1a3a4a5a6a7a8a9#6$b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c3c4c5c6c7c8c9#5$,fe:3536393a3f403d3e41424344##3b3c373831#3334#104$,04:10111213141501161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f#13$30313233343551363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f#11$,02:cacbd9,20:13152535,21:050996979899,22:151f23526667bf,25:505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727381828384858687#88898a8b8c8d8e8f939495bcbde2e3e4e5,2609229530:121d1e#9$,010100e101ce00e0011300e9011b00e8012b00ed01d000ec014d00f301d200f2016b00fa01d400f901:d6d8dadc,00:fcea,0251e7c701:4448,e7c802:61#2$,31:05060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526272829#19$,30:212223242526272829,32a333:8e8f9c9d9ea1c4ced1d2d5,fe30ff:e2e4#,212132:31#,20:10#1$,30:fc9b9cfdfe069d9e,fe:494a4b4c4d4e4f50515254555657595a5b5c5d5e5f6061#626364656668696a6b,e7:e7e8e9eaebecedeeeff0f1f2f3,30:07#11$,25:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b#13$,72:dcdddfe2e3e4e5e6e7eaebf5f6f9fdfeff,73:00020405060708090b0c0d0f1011121418191a1f2023242627282d2f30323335363a3b3c3d404142434445464748#494a4b4c4e4f515354555658595a5b5c5d5e5f6162636465666768696a6b6e7071#92$72737475767778797a7b7c7d7f808182838586888a8c8d8f90929394959798999a9c9d9ea0a1a3a4a5a6a7a8aaacadb1b4b5b6b8b9bcbdbebfc1c3c4c5c6c7#cbccced2d3d4d5d6d7d8dadbdcdddfe1e2e3e4e6e8eaebeceeeff0f1f3f4f5f6f7#92$f8f9fafbfcfdfeff,74:0001020407080b0c0d0e1112131415161718191c1d1e1f2021232427292b2d2f31323738393a3b3d3e3f4042434445464748494a4b4c4d#4e4f505152535456585d606162636465666768696a6b6c6e6f717273747578797a#92$7b7c7d7f8284858688898a8c8d8f9192939495969798999a9b9d9fa0a1a2a3a4a5a6aaabacadaeafb0b1b2b3b4b5b6b7b8b9bbbcbdbebfc0c1c2c3c4c5c6c7#c8c9cacbcccdcecfd0d1d3d4d5d6d7d8d9dadbdddfe1e5e7e8e9eaebecedf0f1f2#92$f3f5f8f9fafbfcfdfe,75:0001020305060708090a0b0c0e1012141516171b1d1e202122232426272a2e3436393c3d3f414243444647494a4d5051525355565758#5d5e5f60616263646768696b6c6d6e6f7071737576777a7b7c7d7e808182848587#92$88898a8c8d8e909395989b9c9ea2a6a7a8a9aaadb6b7babbbfc0c1c6cbcccecfd0d1d3d7d9dadcdddfe0e1e5e9ecedeeeff2f3f5f6f7f8fafbfdfe,76:02040607#08090b0d0e0f11121314161a1c1d1e212327282c2e2f31323637393a3b3d414244#92$45464748494a4b4e4f50515253555758595a5b5d5f6061626465666768696a6c6d6e7071727374757677797a7c7f80818385898a8c8d8f9092949597989a9b#9c9d9e9fa0a1a2a3a5a6a7a8a9aaabacadafb0b3b5b6b7b8b9babbbcbdbec0c1c3,554a963f57c3632854ce550954c076:914c,853c77ee827e788d72319698978d6c285b894ffa630966975cb880fa684880ae660276ce51f9655671ac7ff1888450b2596561ca6fb382ad634c625253ed54277b06516b75a45df462d48dcb9776628a8019575d97387f627238767d67cf767e64464f708d2562dc7a17659173ed642c6273822c9881677f724862:6ecc,4f3474e3534a529e7eca90a65e2e6886699c81807ed168d278c5868c9551508d8c2482de80de53058912526576:c4c7c9cbccd3d5d9dadcdddee0e1e2e3e4e6e7e8e9eaebecedf0f3f5f6f7fafbfdff,77:00020305060a0c0e0f1011121314151617181b1c1d1e21232425272a2b#2c2e3031323334393b3d3e3f4244454648494a4b4c4d4e4f52535455565758595c,858496f94fdd582199715b9d62:b1a5,66b48c799c8d7206676f789160b253:5117,8f8880cc8d1d94a1500d72c8590760eb711988ab595482ef672c7b285d297ef7752d6cf58e668ff8903c9f3b6bd491197b145f7c78a784d6853d6b:d5d9d6,5e:0187,75f995ed655d5f:0ac5,8f9f58c181c2907f965b97ad8fb97f168d2c62414fbf53:d85e,8f:a8a9ab,904d68075f6a819888689cd6618b522b762a5f6c658c6fd26ee85bbe644851:75b0,67c44e1979c9997c70b377:5d5e5f606467696a6d6e6f7071727374757677787a7b7c818283868788898a8b8f90939495969798999a9b9c9d9ea1a3a4a6a8abadaeafb1b2b4b6b7b8b9ba#bcbec0c1c2c3c4c5c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d8d9dadddedfe0e1e4,75c55e7673bb83e064ad62e894b56ce2535a52c3640f94c27b944f2f5e1b823681:168a,6e246cca9a736355535c54fa886557e04e0d5e036b657c3f90e8601664e6731c88c16750624d8d22776c8e2991c75f6983dc8521991053c286956b8b60:ede8,707f82:cd31,4ed36ca785cf64cd7cd969fd66f9834953957b564fa7518c6d4b5c428e6d63d253c983:2c36,67e578b4643d5bdf5c945dee8be762c667f48c7a640063ba8749998b8c177f2094f24ea7961098a4660c731677:e6e8eaeff0f1f2f4f5f7f9fafbfc,78:0304050607080a0b0e0f101315191b1e20212224282a2b2e2f31323335363d3f414243444648494a4b4d4f51535458595a#5b5c5e5f606162636465666768696f7071727374757678797a7b7d7e7f80818283,573a5c1d5e38957f507f80a05382655e7545553150218d856284949e671d56326f6e5de2543570928f66626f64a463a35f7b6f8890f481e38fb05c1866685ff16c8996488d81886c649179f057ce6a59621054484e587a0b60e96f848bda627f901e9a8b79e4540375f4630153196c608fdf5f1b9a70803b9f7f4f885c3a8d647fc565a570bd51:45b2,866b5d075ba062bd916c75748e0c7a2061017b794ec77ef877854e1181ed521d51fa6a7153a88e87950496cf6ec19664695a78:848586888a8b8f9092949596999d9ea0a2a4a6a8a9aaabacadaeafb5b6b7b8babbbcbdbfc0c2c3c4c6c7c8cccdcecfd1d2d3d6d7d8dadbdcdddedfe0e1e2e3#e4e5e6e7e9eaebedeeeff0f1f3f5f6f8f9fbfcfdfeff,79:00020304060708090a0b0c,784050a877d7641089e6590463e35ddd7a7f693d4f20823955984e3275ae7a975e:628a,95ef521b5439708a6376952457826625693f918755076df37eaf882262337ef075b5832878c196cc8f9e614874f78bcd6b64523a8d506b21806a847156f153064e:ce1b,51d17c97918b7c074fc38e7f7be17a9c64675d1450ac810676017cb96dec7fe067515b:58f8,78cb64:ae13,63:aa2b,9519642d8fbe7b5476296253592754466b7950a362345e266b864ee38d37888b5f85902e79:0d0e0f1011121415161718191a1b1c1d1f2021222325262728292a2b2c2d2e2f3031323335363738393d3f42434445474a4b4c4d4e4f505152545558596163#6466696a6b6c6e70717273747576797b7c7d7e7f8283868788898b8c8d8e909192,6020803d62c54e39535590f863b880c665e66c2e4f4660ee6de18bde5f3986cb5f536321515a83616863520063638e4850125c9b79775bfc52307a3b60bc905376d75f:b797,76848e6c706f767b7b4977aa51f3909358244f4e6ef48fea654c7b1b72c46da47fdf5ae162b55e95573084827b2c5e1d5f1f90127f1498a063826ec7789870b95178975b57ab75354f4375385e9760e659606dc06bbf788953fc96d551cb52016389540a94938c038dcc7239789f87768fed8c0d53e079:939495969798999b9c9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b6b7b8bcbfc2c4c5c7c8cacccecfd0d3d4d6d7d9dadbdcdddee0e1e2e5e8ea#eceef1f2f3f4f5f6f7f9fafcfeff,7a:0104050708090a0c0f10111213151618191b1c,4e0176ef53ee948998769f0e952d5b9a8ba24e:221c,51ac846361c252a8680b4f97606b51bb6d1e515c6296659796618c46901775d890fd77636bd272:8aec,8bfb583577798d4c675c9540809a5ea66e2159927aef77ed953b6bb565ad7f0e58065151961f5bf958a954288e726566987f56e4949d76fe9041638754c659:1a3a,579b8eb267358dfa8235524160f0581586fe5ce89e454fc4989d8bb95a2560765384627c904f9102997f6069800c513f80335c1499756d314e8c7a:1d1f21222425262728292a2b2c2d2e2f303132343536383a3e4041424344454748494a4b4c4d4e4f50525354555658595a5b5c5d5e5f606162636465666768#696a6b6c6d6e6f717273757b7c7d7e828587898a8b8c8e8f909394999a9b9ea1a2,8d3053d17f5a7b4f4f104e4f96006cd573d085e95e06756a7ffb6a0a77fe94927e4151e170e653cd8fd483038d2972af996d6cdb574a82b365b980aa623f963259a84eff8bbf7eba653e83f2975e556198de80a5532a8bfd542080ba5e9f6cb88d3982ac915a54296c1b52067eb7575f711a6c7e7c89594b4efd5fff61247caa4e305c0167ab87025cf0950b98ce75af70fd902251af7f1d8bbd594951e44f5b5426592b657780a45b7562:76c2,8f905e456c1f7b264f:0fd8,670d7a:a3a4a7a9aaabaeafb0b1b2b4b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d4d5d7d8dadbdcdde1e2e4e7e8e9eaebeceef0f1f2f3#f4f5f6f7f8fbfcfe,7b:0001020507090c0d0e1012131617181a1c1d1f21222327292d,6d:6eaa,798f88b15f17752b629a8f854fef91dc65a781:2f51,5e9c81508d74526f89868d4b590d50854ed8961c723681798d1f5bcc8ba3964459877f1a549056:760e,8be565396982949976d66e895e72751867:46d1,7aff809d8d76611f79c665628d635188521a94a27f38809b7eb25c976e2f67607bd9768b9ad8818f7f947cd5641e95507a3f54:4ae5,6b4c640162089e3d80f3759952729769845b683c86e496:0194,94ec4e2a54047ed968398ddf801566f45e9a7fb97b:2f303234353637393b3d3f404142434446484a4d4e535557595c5e5f61636465666768696a6b6c6d6f70737476787a7c7d7f81828384868788898a8b8c8e8f#9192939698999a9b9e9fa0a3a4a5aeafb0b2b3b5b6b7b9babbbcbdbebfc0c2c3c4,57c2803f68975de5653b529f606d9f9a4f9b8eac516c5bab5f135de96c5e62f18d21517194a952fe6c9f82df72d757a267848d2d591f8f9c83c754957b8d4f306cbd5b6459d19f1353e486ca9aa88c3780a16545987e56fa96c7522e74dc52505be1630289024e5662d0602a68fa51735b9851a089c27ba199867f5060ef704c8d2f51495e7f901b747089c4572d78455f529f9f95fa8f689b3c8be17678684267dc8d:ea35,523d8f8a6eda68cd950590ed56fd679c88f98fc754c87b:c5c8c9cacbcdcecfd0d2d4d5d6d7d8dbdcdedfe0e2e3e4e7e8e9ebecedeff0f2f3f4f5f6f8f9fafbfdff,7c:0001020304050608090a0d0e101112131415171819#1a1b1c1d1e20212223242528292b2c2d2e2f3031323334353637393a3b3c3d3e42,9ab85b696d776c264ea55bb39a87916361a890af97e9542b6db55bd251fd558a7f:55f0,64bc634d65f161be608d710a6c:5749,592f676d822a58d5568e8c6a6beb90dd597d801753f76d695475559d83:77cf,683879be548c4f55540876d28c8996026cb36db88d6b89109e648d3a563f9ed175d55f8872e0606854fc4ea86a2a886160528f7054c470d886799e3f6d2a5b8f5f187ea255894faf7334543c539a501954:0e7c,4e4e5ffd745a58f6846b80e1877472d07cca6e567c:434445464748494a4b4c4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717275767778797a7e7f8081828384858687#888a8b8c8d8e8f90939496999a9ba0a1a3a6a7a8a9abacadafb0b4b5b6b7b8babb,5f27864e552c62a44e926caa623782b154d7534e733e6ed1753b521253168bdd69d05f8a60006dee574f6b2273af68538fd87f13636260a3552475ea8c6271156da35ba65e7b8352614c9ec478fa87577c27768751f060f6714c66435e4c604d8c0e707063258f895fbd606286d456de6bc160946167534960e066668d3f79fd4f1a70e96c478b:b3f2,7ed88364660f5a5a9b426d:51f7,8c416d3b4f19706b83b7621660d1970d8d27797851fb57:3efa,673a75787a3d79ef7b957c:bfc0c2c3c4c6c9cbcecfd0d1d2d3d4d8dadbdddee1e2e3e4e5e6e7e9eaebecedeef0f1f2f3f4f5f6f7f9fafcfdfeff,7d:000102030405060708090b0c0d0e0f10#1112131415161718191a1b1c1d1e1f212324252628292a2c2d2e30313233343536,808c99658ff96fc08ba59e2159ec7ee97f095409678168d88f917c4d96c653ca602575be6c7253735ac97ea7632451e0810a5df184df628051805b634f0e796d524260b86d4e5b:c4c2,8b:a1b0,65e25fcc964559937e:e7aa,560967b759394f735bb652a0835a988a8d3e753294be50477a3c4ef767b69a7e5ac16b7c76d1575a5c167b3a95f4714e517c80a9827059787f04832768c067ec78:b177,62e363617b804fed526a51cf835069db92748d:f531,89c1952e7bad4ef67d:3738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6f70717273747576#78797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798,506582305251996f6e:1085,6da75efa50f559dc5c066d466c5f7586848b686859568bb253209171964d854969127901712680f64ea490ca6d479a845a0756bc640594f077eb4fa5811a72e189d2997a7f347ede527f655991758f:7f83,53eb7a9663:eda5,768679f888579636622a52ab8282685467706377776b7aed6d017ed389e359d0621285c982a5754c501f4ecb75a58beb5c4a5dfe7b4b65a491d14eca6d25895f7d2795264ec58c288fdb9773664b79818fd170ec6d787d:999a9b9c9d9e9fa0a1a2a3a4a5a7a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9#dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa,5c3d52b283465162830e775b66769cb84eac60ca7c:beb3,7ecf4e958b66666f988897595883656c955c5f8475c997567a:dfde,51c070af7a9863ea7a767ea0739697ed4e4570784e5d915253a965:51e7,81fc8205548e5c31759a97a062d872d975bd5c459a7983ca5c40548077e94e3e6cae805a62d2636e5de851778ddd8e1e952f4ff153e560e770ac526763509e435a1f5026773753777ee26485652b628963985014723589c951b38bc07edd574783cc94a7519b541b5cfb7d:fbfcfdfeff,7e:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536373839#3a3c3d3e3f40424344454648494a4b4c4d4e4f505152535455565758595a5b5c5d,4fca7ae36d5a90e19a8f55805496536154af5f0063e9697751ef6168520a582a52d8574e780d770b5eb761777ce062:5b97,4ea27095800362f770e49760577782db67ef68f578d5989779d158f354b353ef6e34514b523b5ba28bfe80af554357a660735751542d7a7a60505b5463a762a053e362635bc767af54ed7a9f82e691775e9388e4593857ae630e8de880ef57577b774fa95feb5bbd6b3e53217b5072c2684677:ff36,65f751b54e8f76d45cbf7aa58475594e9b4150807e:5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f909192939495969798999a9c9d9e#aeb4bbbcd6e4ecf9,7f:0a101e37393b3c3d3e3f404143464748494a4b4c4d4e4f5253,998861276e8357646606634656f062:ec69,5ed39614578362c955878721814a8fa3556683b167658d5684dd5a6a680f62e67bee961151706f9c8c3063fd89c861d27f0670c26ee57405699472fc5eca90ce67176d6a635e52b3726280014f6c59e5916a70d96d9d52d24e5096f7956d857e78ca7d2f5121579264c2808b7c7b6cea68f1695e51b7539868a872819ece7bf172f879bb6f137406674e91cc9ca4793c83:8954,540f68174e3d538952b1783e5386522950884f:8bd0,7f:56595b5c5d5e6063646566676b6c6d6f7073757677787a7b7c7d7f8082838485868788898b8d8f9091929395969798999b9ca0a2a3a5a6a8a9aaabacadaeb1#b3b4b5b6b7babbbec0c2c3c4c6c7c8c9cbcdcfd0d1d2d3d6d7d9dadbdcdddee2e3,75e27acb7c926ca596b6529b748354e94fe9805483b28fde95705ec9601c6d9f5e18655b813894fe604b70bc7ec37cae51c968817cb1826f4e248f8691cf667e4eae8c0564a9804a50da759771ce5be58fbd6f664e86648295635ed66599521788c270c852a3730e7433679778f797164e3490bb9cde6dcb51db8d41541d62ce73b283f196f69f8494c34f367f9a51cc707596755cad988653e64ee46e9c740969b4786b998f7559521876246d4167f3516d9f99804b54997b3c7abf7f:e4e7e8eaebecedeff2f4f5f6f7f8f9fafdfeff,80:020708090a0e0f11131a1b1d1e1f2123242b2c2d2e2f303234393a3c3e404144454748494e4f505153555657#595b5c5d5e5f6061626364656667686b6c6d6e6f7072737475767778797a7b7c7d,9686578462e29647697c5a0464027bd36f0f964b82a6536298855e90708963b35364864f9c819e93788c97328d:ef42,9e7f6f5e79845f559646622e9a74541594dd4fa365c55c:6561,7f1586516c2f5f8b73876ee47eff5ce6631b5b6a6ee653754e7163a0756562a18f6e4f264ed16ca67eb68bba841d87ba7f57903b95237ba99aa188f8843d6d1b9a867edc59889ebb739b780186829a:6c82,561b541757cb4e709ea653568fc881097792999286ee6ee1851366fc61626f2b80:7e818285888a8d8e8f909192949597999ea3a6a7a8acb0b3b5b6b8b9bbc5c7c8c9cacbcfd0d1d2d3d4d5d8dfe0e2e3e6eef5f7f9fbfeff,81:000103040507080b#0c1517191b1c1d1f202122232425262728292a2b2d2e3033343537393a3b3c3d3f,8c298292832b76f26c135fd983bd732b8305951a6bdb77db94c6536f830251925e3d8c8c8d384e4873ab679a68859176970971646ca177095a9295416bcf7f8e66275bd059b95a9a95:e8f7,4eec84:0c99,6aac76df9530731b68a65b5f772f919a97617cdc8ff78c1c5f257c7379d889c56ccc871c5bc65e4268c977207ef551:954d,52c95a297f05976282d763cf778485d079d26e3a5e9959998511706d6c1162bf76bf654f60af95fd660e879f9e2394ed54:0d7d,8c2c647881:40414243444547494d4e4f525657585b5c5d5e5f6162636466686a6b6c6f727375767778818384858687898b8c8d8e90929394959697999a9e9fa0a1a2a4a5#a7a9abacadaeafb0b1b2b4b5b6b7b8b9bcbdbebfc4c5c7c8c9cbcdcecfd0d1d2d3,647986116a21819c78e864699b5462b9672b83ab58a89ed86cab6f205bde964c8c0b725f67d062c772614ea959c66bcd589366ae5e5552df6155672876ee776672677a4662ff54:ea50,94a090a35a1c7eb36c164e435976801059485357753796be56ca63208111607c95f96dd65462998151855ae980fd59ae9713502a6ce55c3c62df4f60533f817b90066eba852b62c85e7478be64b5637b5ff55a18917f9e1f5c3f634f80425b7d556e95:4a4d,6d8560a867e072de51dd5b8181:d4d5d6d7d8d9dadbdcdddedfe0e1e2e4e5e6e8e9ebeeeff0f1f2f5f6f7f8f9fafdff,82:030708090a0b0e0f111315161718191a1d2024252627292e323a3c3d3f#404142434546484a4c4d4e5051525354555657595b5c5d5e606162636465666769,62e76cde725b626d94ae7ebd81136d53519c5f04597452aa6012597366968650759f632a61e67cef8bfa54e66b279e256bb485d5545550766ca4556a8db4722c5e156015743662cd6392724c5f986e436d3e65006f5876d878d076fc7554522453db4e535e9e65c180:2ad6,629b5486522870ae888d8dd16ce1547880da57f988f48d54966a914d4f696c9b55b776c6783062a870f96f8e5f6d84ec68da787c7bf781a8670b9e4f636778b0576f7812973962:79ab,528874356bd782:6a6b6c6d71757677787b7c808183858687898c90939495969a9b9ea0a2a3a7b2b5b6babbbcbfc0c2c3c5c6c9d0d6d9dadde2e7e8e9eaecedeef0f2f3f5f6f8#fafcfdfeff,83:000a0b0d1012131618191d1e1f20212223242526292a2e3032373b3d,5564813e75b276ae533975de50fb5c418b6c7bc7504f72479a9798d86f0274e27968648777a562fc98918d2b54c180584e52576a82f9840d5e7351ed74f68bc45c4f57616cfc98875a4678349b448feb7c955256625194fa4ec68386846183e984b257d467345703666e6d668c3166dd7011671f6b3a6816621a59bb4e0351c46f0667d26c8f517668cb59476b6775665d0e81109f5065d779:4841,9a918d775c824e5e4f01542f5951780c56686c148fc45f036c:7de3,8bab639083:3e3f41424445484a4b4c4d4e5355565758595d6270717273747576797a7e7f808182838487888a8b8c8d8f909194959697999a9d9fa1a2a3a4a5a6a7acadae#afb5bbbebfc2c3c4c6c8c9cbcdced0d1d2d3d5d7d9dadbdee2e3e4e6e7e8ebeced,60706d3d7275626694:8ec5,53438fc17b7e4edf8c264e7e9ed494:b1b3,524d6f5c90636d458c3458115d4c6b:2049,67aa545b81547f8c589985375f3a62a26a47953965726084686577a74e544fa85de7979864ac7fd85ced4fcf7a8d520783044e14602f7a8394a64fb54eb279e6743452e482b964d279bd5bdd6c8197528f7b6c22503e537f6e0564ce66746c3060c598778bf75e86743c7a7779cb4e1890b174036c4256da914b6cc58d8b533a86c666f28eaf5c489a716e2083:eeeff3f4f5f6f7fafbfcfeff,84:0002050708090a10121314151617191a1b1e1f20212223292a2b2c2d2e2f30323334353637393a3b3e3f404142434445474849#4a4b4c4d4e4f505253545556585d5e5f606264656667686a6e6f70727477797b7c,53d65a369f8b8da353bb570898a76743919b6cc9516875ca62f372ac52:389d,7f3a7094763853749e4a69b7786e96c088d97fa471:36c3,518967d374e458e4651856b78ba9997662707ed560f970ed58ec4e:c1ba,5fcd97e74efb8ba45203598a7eab62544ecd65e5620e833884c98363878d71946eb65bb97ed2519763c967d480898339881551125b7a59828fb14e736c5d516589258f6f962e854a745e95:10f0,6da682e55f3164926d128428816e9cc3585e8d5b4e0953c184:7d7e7f8081838485868a8d8f90919293949596989a9b9d9e9fa0a2a3a4a5a6a7a8a9aaabacadaeb0b1b3b5b6b7bbbcbec0c2c3c5c6c7c8cbcccecfd2d4d5d7#d8d9dadbdcdee1e2e4e7e8e9eaebedeeeff1f2f3f4f5f6f7f8f9fafbfdfe,85:000102,4f1e6563685155d34e2764149a9a626b5ac2745f82726da968ee50e7838e7802674052396c997eb150bb5565715e7b5b665273ca82eb67495c715220717d886b95ea965564c58d6181b355846c5562477f2e58924f2455468d4f664c4e0a5c1a88f368a2634e7a0d70e7828d52fa97f65c1154e890b57ecd59628d4a86c782:0c0d,8d6664445c0461516d89793e8bbe78377533547b4f388eab6df15a207ec5795e6c885ba15a76751a80be614e6e1758f075:1f25,727253477ef385:030405060708090a0b0d0e0f101214151618191b1c1d1e2022232425262728292a2d2e2f303132333435363e3f404142444546474b4c4d4e4f505152535455#57585a5b5c5d5f60616263656667696a6b6c6d6e6f707173757677787c7d7f8081,770176db526980dc57235e08593172ee65bd6e7f8bd75c388671534177f362fe65f64ec098df86805b9e8bc653f277e24f7f5c4e9a7659cb5f0f793a58eb4e1667ff4e8b62ed8a93901d52bf662f55dc566c90024ed54f8d91ca99706c0f5e0260435ba489c68bd56536624b99965b:88ff,6388552e53d77626517d852c67a268b36b8a62928f9353d482126dd1758f4e668d4e5b70719f85af66:91d9,7f7287009ecd9f205c5e672f8ff06811675f620d7ad658855eb665706f3185:82838688898a8b8c8d8e909192939495969798999a9d9e9fa0a1a2a3a5a6a7a9abacadb1b2b3b4b5b6b8babbbcbdbebfc0c2c3c4c5c6c7c8cacbcccdced1d2#d4d6d7d8d9dadbdddedfe0e1e2e3e5e6e7e8eaebecedeeeff0f1f2f3f4f5f6f7f8,60555237800d6454887075295e05681362f4971c53cc723d8c016c3477617a0e542e77ac987a821c8bf47855671470c165af64955636601d79c153f84e1d6b7b80865bfa55e356db4f:3a3c,99725df3677e80386002988290015b8b8b:bcf5,641c825864de55fd82cf91654fd77d20901f7c9f50f358516eaf5bbf8bc980839178849c7b97867d96:8b8f,7ee59ad3788e5c817a57904296a7795f5b59635f7b0b84d168ad55067f2974107d2295016240584c4ed65b835979585485:f9fafcfdfe,86:0001020304060708090a0b0c0d0e0f10121314151718191a1b1c1d1e1f20212223242526282a2b2c2d2e2f3031323334353637393a3b3d3e3f40#4142434445464748494a4b4c525355565758595b5c5d5f6061636465666768696a,736d631e8e:4b0f,80ce82d462ac53f06cf0915e592a60016c70574d644a8d2a762b6ee9575b6a8075f06f6d8c:2d08,57666bef889278b363a253f970ad6c645858642a580268e0819b55107cd650188eba6dcc8d9f70eb638f6d9b6ed47ee68404684390036dd896768ba85957727985e4817e75bc8a8a68af52548e22951163d098988e44557c4f5366ff568f60d56d9552435c4959296dfb586b75:301c,606c82148146631167618fe2773a8d:f334,94c15e165385542c70c386:6d6f7072737475767778838485868788898e8f90919294969798999a9b9e9fa0a1a2a5a6abadaeb2b3b7b8b9bbbcbdbebfc1c2c3c5c8cccdd2d3d5d6d7dadc#dde0e1e2e3e5e6e7e8eaebeceff5f6f7fafbfcfdff,87:010405060b0c0e0f10111416,6c405ef7505c4ead5ead633a8247901a6850916e77b3540c94dc5f647ae5687663457b527edf75db507762955934900f51f879c37a8156fe5f9290146d825c60571f541051546e4d56e263a89893817f8715892a9000541e5c6f81c062:d658,81319e3596409a:6e7c,692d59a562d3553e631654c786d96d3c5a0374e6889c6b6a59168c4c5f2f6e7e73a9987d4e3870f75b8c7897633d665a769660cb5b9b5a494e0781556c6a738b4ea167897f515f8065fa671b5fd859845a0187:191b1d1f20242627282a2b2c2d2f303233353638393a3c3d404142434445464a4b4d4f505152545556585a5b5c5d5e5f6162666768696a6b6c6d6f71727375#7778797a7f8081848687898a8c8e8f90919294959698999a9b9c9d9ea0a1a2a3a4,5dcd5fae537197e68fdd684556f4552f60df4e3a6f4d7ef482c7840e59d44f:1f2a,5c3e7eac672a851a5473754f80c355829b4f4f4d6e2d8c135c096170536b761f6e29868a658795fb7eb9543b7a337d0a95ee55e17fc174ee631d87176da17a9d621165a1536763e16c835deb545c94a84e4c6c618bec5c4b65e0829c68a754:3e34,6b:cb66,4e9463425348821e4f:0dae,575e620a96fe6664726952:ffa1,609f8bef661471996790897f785277fd6670563b54389521727a87:a5a6a7a9aaaeb0b1b2b4b6b7b8b9bbbcbebfc1c2c3c4c5c7c8c9cccdcecfd0d4d5d6d7d8d9dadcdddedfe1e2e3e4e6e7e8e9ebecedeff0f1f2f3f4f5f6f7f8#fafbfcfdff,88:0001020405060708090b0c0d0e0f101112141718191a1c1d1e1f2023,7a00606f5e0c6089819d591560dc718470ef6eaa6c5072806a8488ad5e2d4e605ab3559c94e36d177cfb9699620f7ec6778e867e5323971e8f9666875ce14fa072ed4e0b53a6590f54136380952851484ed99c9c7ea454b88d248854823795f26d8e5f265acc663e966973:b02e,53bf817a99857fa15baa96:7750,7ebf76f853a2957699997bb189446e584e617fd479658be660f354cd4eab98795df76a6150cf54118c618427785d9704524a54ee56a395006d885bb56dc6665388:2425262728292a2b2c2d2e2f30313334353637383a3b3d3e3f414243464748494a4b4e4f505152535556585a5b5c5d5e5f6066676a6d6f717374757678797a#7b7c80838687898a8c8e8f90919394959798999a9b9d9e9fa0a1a3a5a6a7a8a9aa,5c0f5b5d6821809655787b11654869544e9b6b47874e978b534f631f643a90aa659c80c18c10519968b0537887f961c86c:c4fb,8c225c5185aa82af950c6b238f9b65b05f:fbc3,4fe18845661f8165732960fa51745211578b5f6290a2884c91925e78674f602759d351:44f6,80f853086c7996c4718a4f:11ee,7f9e673d55c5950879c088967ee3589f620c9700865a5618987b5f908bb884c4915753d965ed5e8f755c60647d6e5a7f7e:eaed,8f6955a75ba360ac65cb738488:acaeafb0b2b3b4b5b6b8b9babbbdbebfc0c3c4c7c8cacbcccdcfd0d1d3d6d7dadbdcdddee0e1e6e7e9eaebecedeeeff2f5f6f7fafbfdff,89:0001030405060708#090b0c0d0e0f1114151617181c1d1e1f20222324262728292c2d2e2f3132333537,9009766377297eda9774859b5b667a7496ea884052cb718f5faa65ec8be25bfb9a6f5de16b896c5b8b:adaf,900a8fc5538b62bc9e:262d,54404e2b82bd7259869c5d1688596daf96c554d14e9a8bb6710954bd960970df6df976d04e25781487125ca95ef68a00989c960e708e6cbf594463a9773c884d6f148273583071d5538c781a96c155015f6671305bb48c1a9a8c6b83592e9e2f79e76768626c4f6f75a17f8a6d0b96336c274ef075d2517b68376f3e908081705996747689:38393a3b3c3d3e3f40424345464748494a4b4c4d4e4f505152535455565758595a5b5c5d6061626364656768696a6b6c6d6e6f707172737475767778797a7c#7d7e808284858788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1,64475c2790657a918c2359da54ac8200836f898180006930564e8036723791ce51b64e5f987563964e1a53f666f3814b591c6db24e0058f9533b63d694f14f:9d0a,886398905937905779fb4eea80f075916c825b9c59e85f5d69058681501a5df24e5977e34ee5827a6291661390915c794ebf5f7981c69038808475ab4ea688d4610f6bc55fc64e4976ca6ea28b:e3ae,8c0a8bd15f027f:fccc,7ece83:356b,56e06bb797f3963459fb541f94f66deb5bc5996e5c395f15969089:a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c3cdd3d4d5d7d8d9dbdddfe0e1e2e4e7e8e9eaecedeef0f1f2f4f5f6f7f8f9fa#fbfcfdfeff,8a:01020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d,537082f16a315a749e705e947f2883b984:2425,836787478fce8d6276c85f719896786c662054df62e54f6381c375c85eb896cd8e0a86f9548f6cf36d8c6c38607f52c775285e7d4f1860a05fe75c24753190ae94c072b96cb96e389149670953:cbf3,4f5191c98bf153c85e7c8fc26de44e8e76c26986865e611a82064f:59de,903e9c7c61096e:1d14,96854e885a3196e84e0e5c7f79b95b878bed7fbd738957df828b90c15401904755bb5cea5fa161086b3272f180b28a:891e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f4041424344454647494a4b4c4d4e4f505152535455565758595a5b5c5d5e#5f606162636465666768696a6b6c6d6e6f7071727374757677787a7b7c7d7e7f80,6d745bd388d598848c6b9a6d9e336e0a51:a443,57a38881539f63f48f9556ed54585706733f6e907f188fdc82d1613f6028966266f07ea68d:8ac3,94a55cb37ca4670860a6960580184e9190e75300966851418fd08574915d665597f55b55531d78386742683d54c9707e5bb08f7d518d572854b1651266828d:5e43,810f846c906d7cdf51ff85fb67a365e96fa186a48e81566a90207682707671e58d2362e952196cfd8d3c600e589e618e66fe8d60624e55b36e23672d8f678a:81828384858687888b8c8d8e8f9091929495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3,94e195f87728680569a8548b4e4d70b88bc86458658b5b857a84503a5be877bb6be18a797c986cbe76cf65a98f975d2d5c5586386808536062187ad96e5b7efd6a1f7ae05f706f335f20638c6da867564e085e108d264ed780c07634969c62db662d627e6cbc8d7571677f695146808753ec906e629854f286f08f998005951785178fd96d5973cd659f771f7504782781fb8d1e94884fa6679575b98bca9707632f9547963584b8632377415f8172f04e896014657462ef6b63653f8a:e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8b:0001020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#24252728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,5e2775c790d18bc1829d679d652f5431871877e580a281026c414e4b7ec7804c76f4690d6b966267503c4f84574063076b628dbe53ea65e87eb85fd763:1ab7,81:f3f4,7f6e5e1c5cd95236667a79e97a1a8d28709975d46ede6cbb7a924e2d76c55fe0949f88777ec879cd80bf91cd4ef24f17821f54685dde6d328bcc7ca58f7480985e1a549276b15b99663c9aa473e0682a86db6731732a8b:f8db,90107af970db716e62c477a956314e3b845767f152a986c08d2e94f87b518b:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656768696a6b6d6e6f707172737475767778797a7b7c7d7e7f80818283848586#8788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9facb1bbc7d0ea,8c:091e,4f4f6ce8795d9a7b6293722a62fd4e1378168f6c64b08d5a7bc668695e8488c55986649e58ee72b6690e95258ffd8d5857607f008c0651c6634962d95353684c74228301914c55447740707c6d4a517954a88d4459ff6ecb6dc45b5c7d2b4ed47c7d6ed35b5081ea6e0d5b579b0368d58e2a5b977efc603b7eb590b98d70594f63cd79df8db3535265cf79568bc5963b7ec494bb7e825634918967007f6a5c0a907566285de64f5067de505a4f5c57505e:a7#3$,8c:38393a3b3c3d3e3f4042434445484a4b4d4e4f5051525354565758595b5c5d5e5f60636465666768696c6d6e6f707172747576777b7c7d7e7f808183848687#888b8d8e8f90919293959697999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacad,4e:8d0c,51404e105eff53454e:15981e,9b325b6c56694e2879ba4e3f53154e47592d723b536e6c1056df80e499976bd3777e9f174e:369f,9f104e:5c6993,82885b5b556c560f4ec453:8d9da3a5ae,97658d5d53:1af5262e3e,8d5c53:6663,52:02080e2d333f404c5e615c,84af52:7d82819093,51827f544e:bbc3c9c2e8e1ebde,4f1b4ef34f:2264,4ef54f:2527092b5e67,65384f:5a5d,8c:aeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebec#edeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8d:000102030405060708090a0b0c0d,4f:5f57323d76749189838f7e7baa7cac94e6e8eac5dae3dcd1dff8,50:294c,4ff350:2c0f2e2d,4ffe50:1c0c25287e4355484e6c7ba5a7a9bad6,510650:edece6ee,51:070b,4edd6c3d4f:5865ce,9fa06c467c74516e5dfd9ec999985181591452f9530d8a07531051eb591951554ea051564eb388:6ea4,4eb5811488d279805b3488037fb851:abb1bdbc,8d:0e0f101112131415161718191a1b1c205152575f6568696a6c6e6f717278797a7b7c7d7e7f808283868788898c8d8e8f90929395969798999a9b9c9d9ea0a1#a2a4a5a6a7a8a9aaabacadaeafb0b2b6b7b9bbbdc0c1c2c5c7c8c9cacdd0d2d3d4,51:c796a2a5,8b:a0a6a7aab4b5b7c2c3cbcfced2d3d4d6d8d9dcdfe0e4e8e9eef0f3f6f9fcff,8c:000204070c0f1112141516191b181d1f202125272a2b2e2f32333536,53:697a,96:1d2221312a3d3c4249545f676c7274888d97b0,90:979b9d99aca1b4b3b6ba,8d:d5d8d9dce0e1e2e5e6e7e9edeef0f1f2f4f6fcfeff,8e:00010203040607080b0d0e1011121315161718191a1b1c202124252627282b2d303233343637383b3c3e#3f4345464c4d4e4f505354555657585a5b5c5d5e5f60616263646567686a6b6e71,90:b8b0cfc5bed0c4c7d3e6e2dcd7dbebeffe,91:04221e23312f394346,520d594252:a2acadbe,54ff52:d0d6f0,53df71ee77cd5ef451:f5fc,9b2f53b65f01755a5def57:4ca9a1,58:7ebcc5d1,57:292c2a33392e2f5c3b4269856b867c7b686d7673ada48cb2cfa7b493a0d5d8dad9d2b8f4eff8e4dd,8e:73757778797a7b7d7e808283848688898a8b8c8d8e91929395969798999a9b9d9fa0a1a2a3a4a5a6a7a8a9aaadaeb0b1b3b4b5b6b7b8b9bbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4,58:0b0d,57:fded,58:001e194420656c81899a80,99a89f1961ff82:797d7f8f8aa8848e919799abb8beb0c8cae398b7aecbccc1a9b4a1aa9fc4cea4e1,830982:f7e4,83:0f07,82:dcf4d2d8,830c82:fbd3,83:111a061415,82:e0d5,83:1c515b5c08923c34319b5e2f4f47435f4017602d3a336665,8e:e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8f:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#2425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344,83:681b696c6a6d6eb078b3b4a0aa939c857cb6a97db87b989ea8babcc1,840183:e5d8,580784:180b,83:ddfdd6,84:1c381106,83:d4df,84:0f03,83:f8f9eac5c0,842683:f0e1,84:5c515a597387887a89783c4669768c8e316dc1cdd0e6bdd3cabfbae0a1b9b497e5e3,850c750d853884f085:391f3a,8f:45464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656a808c929da0a1a2a4a5a6a7aaacadaeafb2b3b4b5b7b8babbbcbfc0c3c6#c9cacbcccdcfd2d6d7dae0e1e3e7eceff1f2f4f5f6fafbfcfeff,90:07080c0e131518,85:563b,84:fffc,85:594868645e7a,77a285:43727ba4a8878f79ae9c85b9b7b0d3c1dcff,86:270529163c,5efe5f0859:3c41,803759:555a58,530f5c:22252c34,62:4c6a9fbbcadad7ee,632262f663:394b43adf6717a8eb46dac8a69aebcf2f8e0ffc4dece,645263:c6be,64:45410b1b200c26215e846d96,90:191c2324252728292a2b2c303132333437393a3d3f4043454648494a4b4c4e545556595a5c5d5e5f6061646667696a6b6c6f70717273767778797a7b7c7e81#84858687898a8c8d8e8f90929496989a9c9e9fa0a4a5a7a8a9abadb2b7bcbdbfc0,64:7ab7b899bac0d0d7e4e2,65:09252e,5f:0bd2,75195f1153:5ff1fde9e8fb,54:1216064b5253545643215759233282947771649a9b8476669dd0adc2b4d2a7a6d3d472a3d5bbbfccd9dadca9aaa4ddcfde,551b54e7552054fd551454f355:22230f11272a678fb5496d41553f503c,90:c2c3c6c8c9cbcccdd2d4d5d6d8d9dadedfe0e3e4e5e9eaeceef0f1f2f3f5f6f7f9fafbfcff,91:00010305060708090a0b0c0d0e0f1011121314151617181a1b1c#1d1f20212425262728292a2b2c2d2e30323334353637383a3b3c3d3e3f40414244,55:375675767733305c8bd283b1b988819f7ed6917bdfbdbe9499eaf7c9,561f55:d1ebecd4e6ddc4efe5f2f3cccde8f5e4,8f9456:1e080c012423,55fe56:00272d5839572c4d62595c4c548664716b7b7c8593afd4d7dde1f5ebf9ff,57:040a091c,5e:0f191411313b3c,91:454748515354555658595b5c5f606667686b6d737a7b7c808182838486888a8e8f939495969798999c9d9e9fa0a1a4a5a6a7a8a9abacb0b1b2b3b6b7b8b9bb#bcbdbebfc0c1c2c3c4c5c6c8cbd0d2d3d4d5d6d7d8d9dadbdddedfe0e1e2e3e4e5,5e:3744545b5e61,5c:8c7a8d9096889899919a9cb5a2bdacabb1a3c1b7c4d2e4cbe5,5d:020327262e241e061b583e343d6c5b6f5d6b4b4a697482999d,8c735d:b7c5,5f:73778287898c95999ca8adb5bc,88625f6172:adb0b4b7b8c3c1cecdd2e8efe9f2f4f7,730172f3730372fa91:e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,92:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324#25262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,72fb73:1713210a1e1d152239252c3831504d57606c6f7e,821b592598e759:2402,99:636768696a6b6c74777d8084878a8d9091939495,5e:80918b96a5a0b9b5beb3,8d535e:d2d1dbe8ea,81ba5f:c4c9d6cf,60035fee60045f:e1e4fe,60:0506,5f:eaedf8,60:1935261b0f0d292b0a3f2178797b7a42,92:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727375767778797a7b7c7d7e7f808182838485#868788898a8b8c8d8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7,60:6a7d969aad9d83928c9becbbb1ddd8c6dab4,61:20261523,60f461:000e2b4a75ac94a7b7d4f5,5fdd96b395:e9ebf1f3f5f6fcfe,96:030406080a0b0c0d0f12151617191a,4e2c723f62156c:35545c4aa38590948c6869747686a9d0d4adf7f8f1d7b2e0d6faebeeb1d3effe,92:a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8#e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,93:00010203040506070809,6d:39270c43480704190e2b4d2e351a4f525433916f9ea05e93945c607c63,6e1a6d:c7c5de,6e0e6d:bfe0,6e116d:e6ddd9,6e166dab6e0c6dae6e:2b6e4e6bb25f865354322544dfb198e0,6f2d6e:e2a5a7bdbbb7d7b4cf8fc29f,6f:6246472415,6ef96f:2f364b742a0929898d8c78727c7ad1,93:0a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f40414243444546474849#4a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696b,6f:c9a7b9b6c2e1eedee0ef,70:1a231b39354f5e,5b:80849593a5b8,752f9a9e64345b:e4ee,89305bf08e478b078f:b6d3d5e5eee4e9e6f3e8,90:05040b26110d162135362d2f445152506858625b,66b990:747d8288838b,5f:50575658,5c3b54ab5c:5059,5b715c:6366,7fbc5f:2a292d,82745f3c9b3b5c6e59:81838da9aaa3,93:6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaab#acadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cbcccd,59:97caab9ea4d2b2afd7be,5a:0506,59dd5a0859:e3d8f9,5a:0c09323411231340674a553c6275,80ec5a:aa9b777abeebb2d2d4b8e0e3f1d6e6d8dc,5b:091716323740,5c:151c,5b:5a6573515362,9a:7577787a7f7d808185888a90929396989b9c9d9fa0a2a3a5a7,7e:9fa1a3a5a8a9,93:cecfd0d1d2d3d4d5d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,94:000102030405060708090a0b0c0d#0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e,7e:adb0bec0c1c2c9cbccd0d4d7dbe0e1e8ebeeeff1f2,7f0d7e:f6fafbfe,7f:01020307080b0c0f111217191c1b1f212223242526272a2b2c2d2f3031323335,5e7a757f5ddb753e909573:8e91aea29fcfc2d1b7b3c0c9c8e5d9,987c740a73:e9e7debaf2,74:0f2a5b262528302e2c,94:2f303132333435363738393a3b3c3d3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6c6d6e6f#707172737475767778797a7b7c7d7e7f8081828384919698c7cfd3d4dae6fb,95:1c20,74:1b1a415c575559776d7e9c8e8081878b9ea8a990a7d2ba,97:eaebec,67:4c535e4869a5876a7398a775a89ead8b777cf0,680967d8680a67:e9b0,680c67:d9b5dab3dd,680067:c3b8e2,680e67:c1fd,68:323360614e624464831d55664167403e4a4929b58f7477936bc2,696e68fc69:1f20,68f995:27333d43484b555a606e74757778797a7b7c7d7e808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aa#abacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacb,692468f069:0b0157,68e369:10713960425d846b80987834cc8788ce896663799ba7bbabadd4b1c1cadf95e08dff,6a2f69ed6a:171865,69f26a:443ea0505b358e793d28587c9190a997ab,73:3752,6b:8182878492938d9a9ba1aa,8f:6b6d71727375767877797a7c7e818284878b,95:cccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7ecff,96:0713181b1e20232425262728292b2c2d2f303738393a3e41434a4e4f5152535657#58595a5c5d5e606365666b6d6e6f70717378797a7b7c7d7e7f808182838487898a,8f:8d8e8f989a,8ece62:0b171b1f222125242c,81e774:eff4ff,75:0f1113,65:34eeeff0,66:0a19,677266:031500,708566:f71d34313635,800666:5f54414f56615777848ca79dbedbdce6e9,8d:3233363b3d4045464849474d5559,89:c7cacbcccecfd0d1,72:6e9f5d666f7e7f848b8d8f92,63:0832b0,96:8c8e91929395969a9b9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb1b2b4b5b7b8babbbfc2c3c8cacbd0d1d3d4d6d7d8d9dadbdcdddedfe1e2e3e4e5e6e7eb#ecedeef0f1f2f4f5f8fafbfcfdff,97:0203050a0b0c10111214151718191a1b1d1f20,64:3fd8,80046b:eaf3fdf5f9,6c:0507060d1518191a2129242a32,65:35556b,72:4d525630,8662521680:9f9c93bc,670a80:bdb1abadb4b7e7e8e9eadbc2c4d9cdd7,671080:ddebf1f4ed,81:0d0e,80:f2fc,671581128c5a81:361e2c1832484c5374595a7160697c7d6d67,584d5ab581:888291,6ed581:a3aacc,672681:cabb,97:2122232425262728292b2c2e2f3133343536373a3b3c3d3f404142434445464748494a4b4c4d4e4f5051545557585a5c5d5f63646667686a6b6c6d6e6f7071#72757778797a7b7d7e7f8081828384868788898a8c8e8f9093959697999a9b9c9d,81:c1a6,6b:243739434659,98:d1d2d3d5d9da,6bb35f406bc289f365909f5165:93bcc6c4c3ccced2d6,70:809c969dbbc0b7abb1e8ca,71:1013162f31735c6845724a787a98b3b5a8a0e0d4e7f9,72:1d28,706c71:1866b9,62:3e3d434849,79:3b4046495b5c535a6257606f677a858a9aa7b3,5f:d1d0,97:9e9fa1a2a4a5a6a7a8a9aaacaeb0b1b3b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3#e4e5e8eeeff0f1f2f4f7f8f9fafbfcfdfeff,98:000102030405060708090a0b0c0d0e,60:3c5d5a67415963ab,61:060d5da99dcbd1,620680:807f,6c:93f6,6dfc77:f6f8,78:0009171811,65ab78:2d1c1d393a3b1f3c252c23294e6d56572650474c6a9b939a879ca1a3b2b9a5d4d9c9ecf2,790578f479:13241e34,9f9b9e:f9fbfc,76f177:040d,76f977:07081a22192d263538505147435a68,98:0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d#4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e,77:62657f8d7d808c919fa0b0b5bd,75:3a404e4b485b727983,7f:58615f,8a487f:68747179817e,76:cde5,883294:8586878b8a8c8d8f909497959a9b9ca3a4abaaadacafb0b2b4b6b7b8b9babcbdbfc4c8c9cacbcccdced0d1d2d5d6d7d9d8dbdedfe0e2e4e5e7e8ea,98:6f70717273748b8e929599a3a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcfd0d4d6d7dbdcdde0e1e2e3e4#e5e6e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,99:0001020304050607,94:e9ebeeeff3f4f5f7f9fcfdff,95:03020607090a0d0e0f1213141516181b1d1e1f222a2b292c3132343637383c3e3f4235444546494c4e4f525354565758595b5e5f5d61626465666768696a6b6c6f7172733a,77:e7ec,96c979:d5ede3eb,7a065d477a:03021e14,99:08090a0b0c0e0f1112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2f303132333435363738393a3b3c3d3e3f40414243444546474849#4a4b4c4d4e4f50515253565758595a5b5c5d5e5f60616264667378797b7e828389,7a:393751,9ecf99a57a7076:888e9399a4,74:dee0,752c9e:202228292a2b2c3231363837393a3e414244464748494b4c4e5155575a5b5c5e63666768696a6b6c716d73,75:929496a09daca3b3b4b8c4b1b0c3c2d6cde3e8e6e4ebe7,760375:f1fcff,76:1000050c170a25181519,99:8c8e9a9b9c9d9e9fa0a1a2a3a4a6a7a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8#d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9,76:1b3c2220402d303f35433e334d5e545c566b6f,7fca7a:e6787980868895a6a0aca8adb3,88:6469727d7f82a2c6b7bcc9e2cee3e5f1,891a88:fce8fef0,89:2119131b0a342b3641667b,758b80e576:b2b4,77dc80:1214161c20222526272928310b3543464d526971,898398:788083,99:fafbfcfdfeff,9a:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738#393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253545556575859,98:898c8d8f949a9b9e9fa1a2a5a6,86:4d546c6e7f7a7c7ba88d8bac9da7a3aa93a9b6c4b5ceb0bab1afc9cfb4e9f1f2edf3d0,871386:def4dfd8d1,87:0307,86f887:080a0d09233b1e252e1a3e48343129373f82227d7e7b60704c6e8b53637c64596593afa8d2,9a:5a5b5c5d5e5f606162636465666768696a6b7283898d8e949599a6a9aaabacadaeafb2b3b4b5b9bbbdbebfc3c4c6c7c8c9cacdcecfd0d2d4d5d6d7d9dadbdc#dddee0e2e3e4e5e7e8e9eaeceef0f1f2f3f4f5f6f7f8fafcfdfeff,9b:000102040506,87:c68885ad9783abe5acb5b3cbd3bdd1c0cadbeae0ee,88:1613,87fe88:0a1b21393c,7f:36424445,82107a:fafd,7b:080304150a2b0f47382a192e31202524333e1e585a45754c5d606e7b62727190a6a7b8ac9da885aa9ca2abb4d1c1ccdddae5e6ea,7c0c7b:fefc,7c:0f160b,9b:07090a0b0c0d0e1011121415161718191a1b1c1d1e2021222425262728292a2b2c2d2e3031333435363738393a3d3e3f40464a4b4c4e50525355565758595a#5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b,7c:1f2a26384140,81fe82:010204,81ec884482:2122232d2f282b383b33343e44494b4f5a5f68,88:7e8588d8df,895e7f:9d9fa7afb0b2,7c7c65497c:919d9c9ea2b2bcbdc1c7cccdc8c5d7e8,826e66a87f:bfced5e5e1e6e9eef3,7cf87d:77a6ae,7e:479b,9e:b8b4,8d:73849491b1676d,8c:4749,91:4a504e4f64,9b:7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9ba#bbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadb,91:626170696f7d7e7274798c85908d91a2a3aaadaeafb5b4ba,8c559e7e8d:b8eb,8e:055969,8d:b5bfbcbac4d6d7dadececfdbc6ecf7f8e3f9fbe4,8e098dfd8e:141d1f2c2e232f3a4039353d3149414251524a70767c6f74858f94909c9e,8c:78828a859894,659b89:d6dedadc,9b:dcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9c:000102030405060708090a0b0c0d0e0f101112131415161718191a#1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b,89:e5ebef,8a3e8b26975396:e9f3ef,97:0601080f0e2a2d303e,9f:808385868788898a8c,9efe9f:0b0d,96:b9bcbdced2,77bf96e092:8eaec8,93:3e6aca8f,94:3e6b,9c:7f8285868788,7a239c:8b8e90919294959a9b9e9fa0a1a2a3a5a6a7a8a9abadaeb0b1b2b3b4b5b6b7babbbcbdc4c5c6c7cacb3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a#7b7d7e808384898a8c8f93969798999daaacafb9bebfc0c1c2c8c9d1d2dadbe0e1cccdcecfd0d3d4d5d7d8d9dcdddfe2,97:7c85919294afaba3b2b4,9a:b1b0b7,9e589a:b6babcc1c0c5c2cbccd1,9b:45434749484d51,98e899:0d2e5554,9a:dfe1e6efebfbedf9,9b:080f131f23,9e:bdbe,7e3b9e:8287888b92,93d69e:9d9fdbdcdde0dfe2e9e7e5eaef,9f:222c2f39373d3e44,9c:e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9d:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021#22232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142#92$434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081#82838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2#92$a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1#e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9e:000102#92$030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e24272e30343b3c404d5052535456595d5f606162656e6f727475767778797a7b7c7d80#8183848586898a8c8d8e8f90919495969798999a9b9c9ea0a1a2a3a4a5a7a8a9aa#92$abacadaeafb0b1b2b3b5b6b7b9babcbfc0c1c2c3c5c6c7c8cacbccd0d2d3d5d6d7d9dadee1e3e4e6e8ebecedeef0f1f2f3f4f5f6f7f8fafdff,9f:000102030405#060708090a0c0f1112141516181a1b1c1d1e1f21232425262728292a2b2d2e3031#92$3233343536383a3c3f4041424345464748494a4b4c4d4e4f52535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778#797a7b7c7d7e81828d8e8f9091929394959697989c9d9ea1a2a3a4a5,f9:2c7995e7f1#92$,fa:0c0d0e0f111314181f20212324272829,e8:15161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243#4445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364'),
- U2Ghash={},
- G2Uhash={};
- !function(data){
- var k=0;
- data=data.match(/..../g);
- for(var i=0x81;i<=0xfe;i++){
- for(var j=0x40;j<=0xFE;j++){
- U2Ghash[data[k++]]=('%'+i.toString(16)+'%'+j.toString(16))
- .toUpperCase();
- }
- }
- for(var key in U2Ghash){
- G2Uhash[U2Ghash[key]]=key;
- }
- }(data);
- function isAscii(unicode) {
- return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000));
- }
- return{
- encode:function(str){
- return str.replace(/./g,function(a){
- var code=a.charCodeAt(0);
- if(isAscii(code)){
- return encodeURIComponent(a);
- }else{
- var key=code.toString(16);
- if(key.length!=4)key=('000'+key).match(/....$/)[0];
- return U2Ghash[key]||a;
- }
- });
- },
- decode:function(str){
- return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){
- if(a in G2Uhash){
- return String.fromCharCode('0x'+G2Uhash[a]);
- }else{
- return a;
- }
- }).replace(/%[\w]{2}/g,function(a){
- return decodeURIComponent(a);
-
- });
- }
- };
-}
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/drpy2.js b/tvboxqq/摸鱼儿/api/drpy2.js
deleted file mode 100644
index 83a8305..0000000
--- a/tvboxqq/摸鱼儿/api/drpy2.js
+++ /dev/null
@@ -1 +0,0 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import 模板 from"./a848d2173d12b963b98a2ffa9796abe7.js";import{gbkTool}from"./dffd4cc3bf2fdbddf56e179fb494a4fa.js";function init_test(){console.log("init_test_start"),console.log("当前版本号:"+VERSION),console.log(RKEY),console.log(JSON.stringify(rule)),console.log("init_test_end")}function pre(){if("string"==typeof rule.预处理&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code),code.startsWith("js:")&&(code=code.replace("js:",""));try{eval(code)}catch(e){console.log("预处理执行失败:"+e.message)}}}let rule={},vercode="function"==typeof pdfl?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.49beta2 20231122",MOBILE_UA="Mozilla/5.0 (Linux; Android 11; M2007J3SC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045714 Mobile Safari/537.36",PC_UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36",UA="Mozilla/5.0",UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36",IOS_UA="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",RULE_CK="cookie",CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态",TAB_EXCLUDE="猜你|喜欢|下载|剧情|热播",OCR_RETRY=3,OCR_API="http://drpy.nokia.press:8028/ocr/drpy/text";if(void 0===MY_URL)var MY_URL;var HOST,RKEY,fetch,print,log,rule_fetch_params,fetch_params,oheaders,_pdfh,_pdfa,_pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/,SPECIAL_URL=/^(ftp|magnet|thunder|ws):/,NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/,URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/,SELECT_REGEX=/:eq|:lt|:gt|#/g,SELECT_REGEX_A=/:eq|:lt|:gt/g;function 是否正版(e){return new RegExp("qq.com|iqiyi.com|youku.com|mgtv.com|bilibili.com|sohu.com|ixigua.com|pptv.com|miguvideo.com|le.com|1905.com|fun.tv").test(e)}function urlDeal(e){return e?是否正版(e)?(/miguvideo/.test(e)||(e=e.split("#")[0].split("?")[0]),e):e:""}function setResult(e){return Array.isArray(e)?(VODS=[],e.forEach(function(e){let t={vod_id:e.url||"",vod_name:e.title||"",vod_remarks:e.desc||"",vod_content:e.content||"",vod_pic:e.pic_url||e.img||""},r=Object.keys(e);r.includes("tname")&&(t.type_name=e.tname||""),r.includes("tid")&&(t.type_id=e.tid||""),r.includes("year")&&(t.vod_year=e.year||""),r.includes("actor")&&(t.vod_actor=e.actor||""),r.includes("director")&&(t.vod_director=e.director||""),r.includes("area")&&(t.vod_area=e.area||""),VODS.push(t)}),VODS):[]}function setResult2(e){return VODS=e.list||[]}function setHomeResult(e){return e&&"object"==typeof e?setResult(e.list):[]}function rc(e){if("maomi_aes.js"===e){var t=CryptoJS.enc.Utf8.parse("625222f9149e961d"),r=CryptoJS.enc.Utf8.parse("5efdtf6060e2o330");return{De:function(e){return e=CryptoJS.enc.Hex.parse(e),CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(e),t,{iv:r,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)},En:function(e){return CryptoJS.AES.encrypt(e,t,{iv:r,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).ciphertext.toString()}}}return{}}function maoss(jxurl,ref,key){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params)),eval(getCryptoJS());try{var getVideoInfo=function(e){return CryptoJS.AES.decrypt(e,key,{iv:iv,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)},token_key=null==key?"dvyYRQlnPRCMdQSe":key;if(ref)var html=request(jxurl,{headers:{Referer:ref}});else var html=request(jxurl);-1!=html.indexOf("&btwaf=")&&(html=request(jxurl+"&btwaf"+html.match(/&btwaf(.*?)"/)[1],{headers:{Referer:ref}}));var token_iv=html.split('_token = "')[1].split('"')[0],key=CryptoJS.enc.Utf8.parse(token_key),iv=CryptoJS.enc.Utf8.parse(token_iv);return eval(html.match(/var config = {[\s\S]*?}/)[0]+""),config.url.startsWith("http")||(config.url=CryptoJS.AES.decrypt(config.url,key,{iv:iv,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)),config.url}catch(e){return""}}function urlencode(e){return e=(e+"").toString(),encodeURIComponent(e).replace(/!/g,"%21").replace(/'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/\*/g,"%2A").replace(/%20/g,"+")}function base64Encode(e){return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(e))}function base64Decode(e){return CryptoJS.enc.Utf8.stringify(CryptoJS.enc.Base64.parse(e))}function md5(e){return CryptoJS.MD5(e).toString()}function encodeStr(e,t){if((t=t||"gbk").startsWith("gb")){e=gbkTool().encode(e)}return e}function decodeStr(e,t){if((t=t||"gbk").startsWith("gb")){e=gbkTool().decode(e)}return e}function getCryptoJS(){return'console.log("CryptoJS已装载");'}"function"!=typeof Object.assign&&(Object.assign=function(){for(var e=arguments[0],t=1;tthis.length)&&-1!==this.indexOf(e,t)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(e,t){if(null==this)throw new TypeError('"this" is null or not defined');var r=Object(this),l=r.length>>>0;if(0===l)return!1;for(var o=0|t,s=Math.max(o>=0?o:l-Math.abs(o),0);s=o)return e;let s=e[l],a=e[o];if(t)try{s=s[t],a=a[t]}catch(e){}if(r&&"function"==typeof r)try{s=r(s),a=r(a)}catch(e){}if(a+="",(s+="").match(/(\d+)/)&&a.match(/(\d+)/)){Number(s.match(/(\d+)/)[1])>Number(a.match(/(\d+)/)[1])&&e.reverse()}return e}let VODS=[],VOD={},TABS=[],LISTS=[];function urljoin(e,t){return e=e||"",t=t||"",joinUrl(e,t)}globalThis.encodeUrl=urlencode,globalThis.urlencode=urlencode;var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd:pd};function pdfh2(e,t){let r=e;try{"string"!=typeof e&&(r=e.rr(e.ele).toString())}catch(e){print("html对象转文本发生了错误:"+e.message)}let l=defaultParser.pdfh(r,t),o=t.includes("&&")?t.split("&&").slice(-1)[0]:t.split(" ").slice(-1)[0];if(/style/.test(o.toLowerCase())&&/url\(/.test(l))try{l=(l=l.match(/url\((.*?)\)/)[1]).replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}return l}function pdfa2(e,t){let r=e;try{"string"!=typeof e&&(r=e.rr(e.ele).toString())}catch(e){print("html对象转文本发生了错误:"+e.message)}return defaultParser.pdfa(r,t)}function pd2(e,t,r){let l=pdfh2(e,t);return void 0!==r&&r||(r=""),DOM_CHECK_ATTR.test(t)&&!SPECIAL_URL.test(l)&&(l=/http/.test(l)?l.substr(l.indexOf("http")):urljoin(MY_URL,l)),l}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(e,t){if(!t||!t.trim())return"";"string"==typeof e&&(e=JSON.parse(e)),(t=t.trim()).startsWith("$.")||(t="$."+t),t=t.split("||");for(let r of t){let t=cheerio.jp(r,e);if((t=Array.isArray(t)?t[0]||"":t||"")&&"string"!=typeof t&&(t=t.toString()),t)return t}return""},pdfa(e,t){if(!t||!t.trim())return"";"string"==typeof e&&(e=JSON.parse(e)),(t=t.trim()).startsWith("$.")||(t="$."+t);let r=cheerio.jp(t,e);return Array.isArray(r)&&Array.isArray(r[0])&&1===r.length?r[0]||[]:r||[]},pd(e,t){let r=parseTags.json.pdfh(e,t);return r?urljoin(MY_URL,r):r}},jq:{pdfh(e,t){if(!e||!t||!t.trim())return"";return t=t.trim(),defaultParser.pdfh(e,t)},pdfa(e,t){if(!e||!t||!t.trim())return[];t=t.trim();let r=defaultParser.pdfa(e,t);return print(`pdfa解析${t}=>${r.length}`),r},pd:(e,t,r)=>e&&t&&t.trim()?(t=t.trim(),r=r||MY_URL,defaultParser.pd(e,t,r)):""},getParse(e){return e.startsWith("jsp:")?this.jsp:e.startsWith("json:")?this.json:(e.startsWith("jq:"),this.jq)}},stringify=JSON.stringify,jsp=parseTags.jsp,jq=parseTags.jq;function readFile(e){e=e||"./uri.min.js";var t=os.open(e),r=new ArrayBuffer(1024),l=os.read(t,r,0,1024);console.log(l);let o=String.fromCharCode.apply(null,new Uint8Array(r));return console.log(o),o}function dealJson(e){try{(e=e.trim()).startsWith("{")&&e.endsWith("}")||e.startsWith("[")&&e.endsWith("]")||(e="{"+e.match(/.*?\{(.*)\}/m)[1]+"}")}catch(e){}try{e=JSON.parse(e)}catch(e){}return e}var OcrApi={api:OCR_API,classification:function(e){let t="";try{log("通过drpy_ocr验证码接口过验证..."),t=request(OCR_API,{data:{img:e},headers:{"User-Agent":PC_UA},method:"POST"},!0)||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return t}};function verifyCode(e){let t=0,r=getHome(e),l="";for(;t"set-cookie"===e.toLowerCase());l=e?s[e].split(";")[0]:""}console.log("cookie:"+l);let a=s.body,i=OcrApi.classification(a);console.log(`第${t+1}次验证码识别结果:${i}`);let n=`${r}/index.php/ajax/verify_check?type=search&verify=${i}`;console.log(n);let p=request(n,{headers:{Cookie:l,"User-Agent":MOBILE_UA},method:"POST"});if("ok"===(p=JSON.parse(p)).msg)return console.log(`第${t+1}次验证码提交成功`),l;"ok"!==p.msg&&t+1>=OCR_RETRY&&(l="")}catch(e){console.log(`第${t+1}次验证码提交失败:${e.message}`),t+1>=OCR_RETRY&&(l="")}t+=1}return l}function setItem(e,t){local.set(RKEY,e,t),console.log(`规则${RKEY}设置${e} => ${t}`)}function getItem(e,t){return local.get(RKEY,e)||t}function clearItem(e){local.delete(RKEY,e)}function getHome(e){if(!e)return"";let t=e.split("//");e=t[0]+"//"+t[1].split("/")[0];try{e=decodeURIComponent(e)}catch(e){}return e}function buildUrl(e,t){t=t||{},e.indexOf("?")<0&&(e+="?");let r=[],l=Object.keys(t);l.forEach(e=>{r.push(e+"="+t[e])});let o=r.join("&");return l.length>0&&!e.endsWith("?")&&(e+="&"),e+=o}function require(url){eval(request(url))}function request(e,t,r){if(r=r||!1,void 0!==t&&t&&t!=={}){let r=t.headers||{},l=Object.keys(r).map(e=>e.toLowerCase());l.includes("user-agent")||(r["User-Agent"]=MOBILE_UA),l.includes("referer")||(r.Referer=getHome(e)),t.headers=r}else{if(!fetch_params||!fetch_params.headers){let e={"User-Agent":MOBILE_UA};rule.headers&&Object.assign(e,rule.headers),fetch_params||(fetch_params={}),fetch_params.headers=e}fetch_params.headers.Referer||(fetch_params.headers.Referer=getHome(e)),t=fetch_params}if(rule.encoding&&"utf-8"!==rule.encoding&&!r&&(t.headers.hasOwnProperty("Content-Type")||t.headers.hasOwnProperty("content-type")||(t.headers["Content-Type"]="text/html; charset="+rule.encoding)),void 0!==t.body&&t.body&&"string"==typeof t.body?t.headers.hasOwnProperty("Content-Type")||t.headers.hasOwnProperty("content-type")||(t.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding):void 0!==t.body&&t.body&&"object"==typeof t.body&&(t.data=t.body,delete t.body),!e)return t.withHeaders?"{}":"";t.toBase64&&(t.buffer=2,delete t.toBase64),console.log(JSON.stringify(t.headers)),console.log("request:"+e+`|method:${t.method||"GET"}|body:${t.body||""}`);let l=req(e,t),o=l.content||"";if(t.withHeaders){let e=l.headers;return e.body=o,JSON.stringify(e)}return o}function post(e,t){return t.method="POST",request(e,t)}function checkHtml(e,t,r){if(/\?btwaf=/.test(e)){let l=e.match(/btwaf(.*?)"/)[1];t=t.split("#")[0]+"?btwaf"+l,print("宝塔验证访问链接:"+t),e=request(t,r)}return e}function getCode(e,t){let r=request(e,t);return r=checkHtml(r,e,t)}function getHtml(e){let t={};rule.headers&&(t.headers=rule.headers);let r=getItem(RULE_CK,"");return r&&(t.headers&&!Object.keys(t.headers).map(e=>e.toLowerCase()).includes("cookie")?(log("历史无cookie,新增过验证后的cookie"),t.headers.Cookie=r):t.headers&&t.headers.cookie&&t.headers.cookie!==r?(t.headers.Cookie=r,log("历史有小写过期的cookie,更新过验证后的cookie")):t.headers&&t.headers.Cookie&&t.headers.Cookie!==r?(t.headers.Cookie=r,log("历史有大写过期的cookie,更新过验证后的cookie")):t.headers||(t.headers={Cookie:r},log("历史无headers,更新过验证后的含cookie的headers"))),getCode(e,t)}function homeParse(e){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let t=[];if(e.class_name&&e.class_url){let r=e.class_name.split("&"),l=e.class_url.split("&"),o=Math.min(r.length,l.length);for(let e=0;e=3)try{let l=getHtml(e.MY_URL);if(l){homeHtmlCache=l;let o=_pdfa(l,r[0]);o&&o.length>0&&o.forEach((l,o)=>{try{let s=_pdfh(l,r[1]);if(e.cate_exclude&&new RegExp(e.cate_exclude).test(s))return;let a=_pd(l,r[2]);if(r.length>3&&r[3]){let e=new RegExp(r[3]);a=a.match(e)[1]}t.push({type_id:a.trim(),type_name:s.trim()})}catch(e){console.log(`分类列表定位第${o}个元素正常报错:${e.message}`)}})}}catch(e){console.log(e.message)}}let r={class:t=t.filter(t=>!e.cate_exclude||!new RegExp(e.cate_exclude).test(t.type_name))};return e.filter&&(r.filters=e.filter),console.log(JSON.stringify(r)),JSON.stringify(r)}function getPP(e,t,r,l){try{return"*"===e[t]&&r.length>l?r[l]:e[t]}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl,console.log(MY_URL);let t1=(new Date).getTime(),p=homeVodObj.推荐;if(print("p:"+p),"*"===p&&rule.一级&&(p=rule.一级,homeVodObj.double=!1),!p||"string"!=typeof p)return"{}";p=p.trim();let pp=rule.一级.split(";");if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host,eval(p.replace("js:","")),d=VODS}else{if(p=p.split(";"),!homeVodObj.double&&p.length<5)return"{}";if(homeVodObj.double&&p.length<6)return"{}";let e=getPP(p,0,pp,0),t=parseTags.getParse(e);_pdfa=t.pdfa,_pdfh=t.pdfh,_pd=t.pd;let r=e.startsWith("json:");e=e.replace(/^(jsp:|json:|jq:)/,"");let l=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=void 0,r&&(l=dealJson(l));try{if(console.log("double:"+homeVodObj.double),homeVodObj.double){let t=_pdfa(l,e),r=getPP(p,1,pp,0),o=getPP(p,2,pp,1),s=getPP(p,3,pp,2),a=getPP(p,4,pp,3),i=getPP(p,5,pp,4),n=getPP(p,6,pp,5);for(let e of t){let t=_pdfa(e,r);for(let e of t)try{let t=_pdfh(e,o),r="";try{r=_pd(e,s)}catch(e){}let l="";try{l=_pdfh(e,a)}catch(e){}let u=[],c;for(let t of i.split("+")){let r=homeVodObj.detailUrl?_pdfh(e,t):_pd(e,t,MY_URL);u.push(r)}c=p.length>6&&p[6]?_pdfh(e,n):"";let f=u.join("$");"*"===rule.二级&&(f=f+"@@"+t+"@@"+r);let h={vod_name:t,vod_pic:r,vod_remarks:l,vod_content:c,vod_id:f};d.push(h)}catch(e){console.log("首页列表双层定位处理发生错误:"+e.message)}}}else{let t=_pdfa(l,e),r=getPP(p,1,pp,1),o=getPP(p,2,pp,2),s=getPP(p,3,pp,3),a=getPP(p,4,pp,4),i=getPP(p,5,pp,5);for(let e of t)try{let t=_pdfh(e,r),l="";try{l=_pd(e,o,MY_URL)}catch(e){}let n="";try{n=_pdfh(e,s)}catch(e){}let u=[],c;for(let t of a.split("+")){let r=homeVodObj.detailUrl?_pdfh(e,t):_pd(e,t,MY_URL);u.push(r)}c=p.length>5&&p[5]?_pdfh(e,i):"";let f=u.join("$");"*"===rule.二级&&(f=f+"@@"+t+"@@"+l);let h={vod_name:t,vod_pic:l,vod_remarks:n,vod_content:c,vod_id:f};d.push(h)}catch(e){console.log("首页列表单层定位处理发生错误:"+e.message)}}}catch(e){}}let t2=(new Date).getTime();return console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒"),rule.图片来源&&d.forEach(e=>{e.vod_pic&&e.vod_pic.startsWith("http")&&(e.vod_pic=e.vod_pic+rule.图片来源)}),d.length>0&&print(d.slice(0,2)),JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||"string"!=typeof p)return"{}";let d=[],url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(1===cateObj.pg&&url.includes("[")&&url.includes("]")?url=url.split("[")[1].split("]")[0]:cateObj.pg>1&&url.includes("[")&&url.includes("]")&&(url=url.split("[")[0]),rule.filter_url){/fyfilter/.test(url)?url=url.replace("fyfilter",rule.filter_url):(url.endsWith("&")||rule.filter_url.startsWith("&")||(url+="&"),url+=rule.filter_url);let e=cateObj.filter?cateObj.extend:{},t;if(rule.filter_def&&"object"==typeof rule.filter_def)try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let t=rule.filter_def[cateObj.tid];if(t&&"object"==typeof t){let r=JSON.parse(JSON.stringify(t));e=Object.assign(r,e)}}}catch(e){print("合并不同分类对应的默认筛选出错:"+e.message)}t=cheerio.jinja2(url,{fl:e}),url=t}if(/fypage/.test(url))if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1],cnt_page=url_rep.replaceAll("fypage",cateObj.pg),cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else url=url.replaceAll("fypage",cateObj.pg);MY_URL=url,console.log(MY_URL),p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:","")),d=VODS}else{if(p=p.split(";"),p.length<5)return"{}";let e=parseTags.getParse(p[0]);_pdfa=e.pdfa,_pdfh=e.pdfh,_pd=e.pd;let t=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let e=getHtml(MY_URL);if(e){t&&(e=dealJson(e));let r=_pdfa(e,p[0]);r.forEach(e=>{let t=p[4].split("+").map(t=>rule.detailUrl?_pdfh(e,t):_pd(e,t,MY_URL)).join("$"),r=rule.detailUrl?MY_CATE+"$"+t:t,l=_pdfh(e,p[1]).replace(/\n|\t/g,"").trim(),o=_pd(e,p[2],MY_URL);"*"===rule.二级&&(r=r+"@@"+l+"@@"+o),d.push({vod_id:r,vod_name:l,vod_pic:o,vod_remarks:_pdfh(e,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}rule.图片来源&&d.forEach(e=>{e.vod_pic&&e.vod_pic.startsWith("http")&&(e.vod_pic=e.vod_pic+rule.图片来源)}),d.length>0&&print(d.slice(0,2));let pagecount=0;rule.pagecount&&"object"==typeof rule.pagecount&&rule.pagecount.hasOwnProperty(MY_CATE)&&(print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`),pagecount=parseInt(rule.pagecount[MY_CATE]));let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1},vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl)return"{}";let p="*"===searchObj.搜索&&rule.一级?rule.一级:searchObj.搜索;if(!p||"string"!=typeof p)return"{}";p=p.trim();let pp=rule.一级.split(";"),url=searchObj.searchUrl.replaceAll("**",searchObj.wd);if(1===searchObj.pg&&url.includes("[")&&url.includes("]")&&!url.includes("#")?url=url.split("[")[1].split("]")[0]:searchObj.pg>1&&url.includes("[")&&url.includes("]")&&!url.includes("#")&&(url=url.split("[")[0]),/fypage/.test(url))if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1],cnt_page=url_rep.replaceAll("fypage",searchObj.pg),cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else url=url.replaceAll("fypage",searchObj.pg);if(MY_URL=url,console.log(MY_URL),p.startsWith("js:")){const TYPE="search",MY_PAGE=searchObj.pg,KEY=searchObj.wd;var input=MY_URL,detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:","")),d=VODS}else{if(p=p.split(";"),p.length<5)return"{}";let e=getPP(p,0,pp,0),t=parseTags.getParse(e);_pdfa=t.pdfa,_pdfh=t.pdfh,_pd=t.pd;let r=e.startsWith("json:");e=e.replace(/^(jsp:|json:|jq:)/,"");try{let t=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get",l;if("post"===t){let e=MY_URL.split(";")[0].split("#"),t=e[0],r=e.length>1?e[1]:"";print(`post=》rurl:${t},params:${r}`);let o=JSON.parse(JSON.stringify(rule_fetch_params)),s={body:r};Object.assign(o,s),l=post(t,o)}else if("postjson"===t){let e=MY_URL.split(";")[0].split("#"),t=e[0],r=e.length>1?e[1]:"";print(`postjson-》rurl:${t},params:${r}`);try{r=JSON.parse(r)}catch(e){r="{}"}let o=JSON.parse(JSON.stringify(rule_fetch_params)),s={body:r};Object.assign(o,s),l=post(t,o)}else l=getHtml(MY_URL);if(l){if(/系统安全验证|输入验证码/.test(l)){let e=verifyCode(MY_URL);e?(console.log(`本次成功过验证,cookie:${e}`),setItem(RULE_CK,e)):console.log(`本次自动过搜索验证失败,cookie:${e}`),l=getHtml(MY_URL)}l.includes(searchObj.wd)||(console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码"),console.log(l)),r&&(l=dealJson(l));let t=_pdfa(l,e),o=getPP(p,1,pp,1),s=getPP(p,2,pp,2),a=getPP(p,3,pp,3),i=getPP(p,4,pp,4),n=getPP(p,5,pp,5);t.forEach(e=>{let t,r=i.split("+").map(t=>rule.detailUrl?_pdfh(e,t):_pd(e,t,MY_URL)).join("$");t=p.length>5&&p[5]?_pdfh(e,n):"";let l=r,u=_pdfh(e,o).replace(/\n|\t/g,"").trim(),c=_pd(e,s,MY_URL);"*"===rule.二级&&(l=l+"@@"+u+"@@"+c);let f={vod_id:l,vod_name:u,vod_pic:c,vod_remarks:_pdfh(e,a).replace(/\n|\t/g,"").trim(),vod_content:t.replace(/\n|\t/g,"").trim()};d.push(f)})}}catch(e){return print("搜索发生错误:"+e.message),"{}"}}return rule.图片来源&&d.forEach(e=>{e.vod_pic&&e.vod_pic.startsWith("http")&&(e.vod_pic=e.vod_pic+rule.图片来源)}),JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId,vod_name="片名",vod_pic="",vod_id=orId;if("*"===rule.二级){let e=orId.split("@@");vod_name=e.length>1?e[1]:vod_name,vod_pic=e.length>2?e[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"},p=detailObj.二级,url=detailObj.url,detailUrl=detailObj.detailUrl,fyclass=detailObj.fyclass,tab_exclude=detailObj.tab_exclude,html=detailObj.html||"";if(MY_URL=url,detailObj.二级访问前)try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`),eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}if("*"===p)vod.vod_play_from="免费分享",vod.vod_remarks=detailUrl,vod.vod_actor="没有二级,只有一级链接直接嗅探播放",vod.vod_content=MY_URL,vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0];else if("string"==typeof p&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL,play_url="";eval(p.trim().replace("js:","")),vod=VOD,console.log(JSON.stringify(vod))}else if(p&&"object"==typeof p){let tt1=(new Date).getTime(),_ps;html||(html=getHtml(MY_URL)),print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`),p.is_json?(print("二级是json"),_ps=parseTags.json,html=dealJson(html)):p.is_jsp?(print("二级是jsp"),_ps=parseTags.jsp):p.is_jq?(print("二级是jq"),_ps=parseTags.jq):(print("二级默认jq"),_ps=parseTags.jq);let tt2=(new Date).getTime();if(print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`),_pdfa=_ps.pdfa,_pdfh=_ps.pdfh,_pd=_ps.pd,p.title){let e=p.title.split(";");vod.vod_name=_pdfh(html,e[0]).replace(/\n|\t/g,"").trim();let t=e.length>1?_pdfh(html,e[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=t||vod.type_name}if(p.desc)try{let e=p.desc.split(";");vod.vod_remarks=_pdfh(html,e[0]).replace(/\n|\t/g,"").trim(),vod.vod_year=e.length>1?_pdfh(html,e[1]).replace(/\n|\t/g,"").trim():"",vod.vod_area=e.length>2?_pdfh(html,e[2]).replace(/\n|\t/g,"").trim():"",vod.vod_actor=e.length>3?_pdfh(html,e[3]).replace(/\n|\t/g,"").trim():"",vod.vod_director=e.length>4?_pdfh(html,e[4]).replace(/\n|\t/g,"").trim():""}catch(e){}if(p.content)try{let e=p.content.split(";");vod.vod_content=_pdfh(html,e[0]).replace(/\n|\t/g,"").trim()}catch(e){}if(p.img)try{let e=p.img.split(";");vod.vod_pic=_pd(html,e[0],MY_URL)}catch(e){}let vod_play_from="$$$",playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")&&(print("开始执行重定向代码:"+p.重定向),html=eval(p.重定向.replace("js:",""))),p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);var input=MY_URL;eval(p.tabs.replace("js:","")),playFrom=TABS}else{let e=p.tabs.split(";")[0],t=_pdfa(html,e);console.log(t.length);let r=p.tab_text||"body&&Text",l={};for(let e of t){let t=_pdfh(e,r).trim();console.log(t),tab_exclude&&new RegExp(tab_exclude).test(t)||(l.hasOwnProperty(t)?l[t]+=1:l[t]=1,l[t]>1&&(t+=Number(l[t]-1)),playFrom.push(t))}}console.log(JSON.stringify(playFrom))}else playFrom=["免费分享"];vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$",vod_tab_list=[];if(p.lists)if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{var input=MY_URL,play_url="";eval(p.lists.replace("js:",""));for(let e in LISTS)if(LISTS.hasOwnProperty(e))try{LISTS[e]=LISTS[e].map(e=>e.split("$").slice(0,2).join("$"))}catch(e){print("格式化LISTS发生错误:"+e.message)}vod_play_url=LISTS.map(e=>e.join("#")).join(vod_play_url)}catch(e){print("js执行lists: 发生错误:"+e.message)}}else{let e=p.list_text||"body&&Text",t=p.list_url||"a&&href",r=p.tabs.trim().startsWith("js:");for(let l=0;l1&&!r?p.tabs.split(";")[1]:"",a=p.lists.replaceAll("#idv",o).replaceAll("#id",l);s=s.replaceAll("#idv",o).replaceAll("#id",l);let i=s?_pdfh(html,s):o;console.log(i);let n=[],u=(new Date).getTime();if("function"==typeof pdfl)n=pdfl(html,a,e,t,MY_URL);else{let r=[];try{r=_pdfa(html,a),console.log("len(vodList):"+r.length)}catch(e){}for(let l=0;l0&&(n=forceOrder(n,"",e=>e.split("$")[0]),console.log(`drpy影响性能代码共计列表数循环次数:${n.length},耗时:${(new Date).getTime()-u}毫秒`));let c=n.join("#");vod_tab_list.push(c)}vod_play_url=vod_tab_list.join(vod_play_url)}vod.vod_play_url=vod_play_url}rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")&&(vod.vod_pic=vod.vod_pic+rule.图片来源),(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id)&&(vod.vod_id=vod_id);let t2=(new Date).getTime();return console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`),vod=vodDeal(vod),void 0!==vod.type_name?vod.type_name=vod.type_name+" | 免费分享":vod.type_name="免费分享",JSON.stringify({list:[vod]})}function get_tab_index(e){let t={};return e.vod_play_from.split("$$$").forEach((e,r)=>{t[e]=r}),t}function vodDeal(e){let t=e.vod_play_from.split("$$$"),r=e.vod_play_url.split("$$$"),l=t,o=t,s=t,a=t,i=r;if(rule.tab_remove&&rule.tab_remove.length>0||rule.tab_order&&rule.tab_order.length>0){let s=get_tab_index(e);if(rule.tab_remove&&rule.tab_remove.length>0&&(a=l=t.filter(e=>!rule.tab_remove.includes(e))),rule.tab_order&&rule.tab_order.length>0){let e=rule.tab_order;a=o=l.sort((t,r)=>(-1===e.indexOf(t)?9999:e.indexOf(t))-(-1===e.indexOf(r)?9999:e.indexOf(r)))}i=a.map(e=>r[s[e]])}return rule.tab_rename&&"object"==typeof rule.tab_rename&Object.keys(rule.tab_rename).length>0&&(a=s=a.map(e=>rule.tab_rename[e]||e)),e.vod_play_from=a.join("$$$"),e.vod_play_url=i.join("$$$"),e}function tellIsJx(e){try{return!/\.(m3u8|mp4|m4a)$/.test(e.split("?")[0])&&是否正版(e)?1:0}catch(e){return 1}}function playParse(playObj){if(fetch_params=JSON.parse(JSON.stringify(rule_fetch_params)),MY_URL=playObj.url,!/http/.test(MY_URL))try{MY_URL=base64Decode(MY_URL)}catch(e){}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;let common_play={parse:1,url:input,jx:tellIsJx(input)},lazy_play;if(rule.play_parse&&rule.lazy)if(rule.play_parse&&rule.lazy&&"string"==typeof rule.lazy)try{let lazy_code=rule.lazy.replace("js:","").trim();print("开始执行js免嗅=>"+lazy_code),eval(lazy_code),lazy_play="object"==typeof input?input:{parse:1,jx:tellIsJx(input),url:input}}catch(e){print("js免嗅错误:"+e.message),lazy_play=common_play}else lazy_play=common_play;else lazy_play=common_play;if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let e=lazy_play.url;for(let t of rule.play_json)if(t.re&&("*"===t.re||e.match(new RegExp(t.re)))&&t.json&&"object"==typeof t.json){let e=t.json;lazy_play=Object.assign(lazy_play,e);break}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let e={jx:1,parse:1};lazy_play=Object.assign(lazy_play,e)}else if(!rule.play_json){let e={jx:0,parse:1};lazy_play=Object.assign(lazy_play,e)}return console.log(JSON.stringify(lazy_play)),JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(!proxyObj.proxy_rule)return[404,"text/plain","Not Found"];log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{return eval(proxyObj.proxy_rule),input&&input!==proxyObj.params&&Array.isArray(input)&&3===input.length?input:[404,"text/plain","Not Found"]}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let e=new RegExp(isVideoObj.isVideo,"i");return e.test(input)}try{return eval(isVideoObj.isVideo),"boolean"==typeof input&&input}catch(e){return log("执行嗅探规则发生错误:"+e.message),!1}}function init(ext){console.log("init");try{let muban=模板.getMubans();if("object"==typeof ext)rule=ext;else if("string"==typeof ext)if(ext.startsWith("http")){let js=request(ext,{method:"GET"});js.startsWith("**")&&(js=base64Decode(js.substring(2))),js&&eval(js.replace("var rule","rule"))}else eval(ext.replace("var rule","rule"));rule.模板&&muban.hasOwnProperty(rule.模板)&&(print("继承模板:"+rule.模板),rule=Object.assign(muban[rule.模板],rule));let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(e=>e.trim()),rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(e=>e.trim());if(rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(e=>e.trim())),rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(e=>e.trim())),rule.cate_exclude=rule_cate_excludes.join("|"),rule.tab_exclude=rule_tab_excludes.join("|"),rule.host=(rule.host||"").rstrip("/"),HOST=rule.host,rule.hostJs){console.log("检测到hostJs,准备执行...");try{eval(rule.hostJs),rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:`+e.message)}}if(rule.url=rule.url||"",rule.double=rule.double||!1,rule.homeUrl=rule.homeUrl||"",rule.detailUrl=rule.detailUrl||"",rule.searchUrl=rule.searchUrl||"",rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host,rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl,rule.二级访问前=rule.二级访问前||"",rule.url.includes("[")&&rule.url.includes("]")){let e=rule.url.split("[")[0],t=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,e)+"["+urljoin(rule.host,t)+"]":rule.url}else rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url;if(rule.searchUrl.includes("[")&&rule.searchUrl.includes("]")&&!rule.searchUrl.includes("#")){let e=rule.searchUrl.split("[")[0],t=rule.searchUrl.split("[")[1].split("]")[0];rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,e)+"["+urljoin(rule.host,t)+"]":rule.searchUrl}else rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl;if(rule.timeout=rule.timeout||5e3,rule.encoding=rule.编码||rule.encoding||"utf-8",rule.search_encoding=rule.搜索编码||rule.search_encoding||"",rule.图片来源=rule.图片来源||"",rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[],rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{},rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"",rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"",rule.sniffer=!(!rule.sniffer||"0"===rule.sniffer||"false"===rule.sniffer),rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"",rule.tab_remove=rule.hasOwnProperty("tab_remove")?rule.tab_remove:[],rule.tab_order=rule.hasOwnProperty("tab_order")?rule.tab_order:[],rule.tab_rename=rule.hasOwnProperty("tab_rename")?rule.tab_rename:{},rule.headers&&"object"==typeof rule.headers)try{let header_keys=Object.keys(rule.headers);for(let k of header_keys)if("user-agent"===k.toLowerCase()){let v=rule.headers[k];console.log(v),["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)&&(rule.headers[k]=eval(v))}else if("cookie"===k.toLowerCase()){let e=rule.headers[k];if(e&&e.startsWith("http")){console.log(e);try{e=fetch(e),console.log(e),rule.headers[k]=e}catch(t){console.log(`从${e}获取cookie发生错误:`+t.message)}}}}catch(e){console.log("处理headers发生错误:"+e.message)}rule_fetch_params={headers:rule.headers||!1,timeout:rule.timeout,encoding:rule.encoding},oheaders=rule.headers||{},RKEY="undefined"!=typeof key&&key?key:"drpy_"+(rule.title||rule.host),pre(),init_test()}catch(e){console.log("init_test发生错误:"+e.message)}}fetch=request,print=function(e){if("object"==typeof(e=e||"")&&Object.keys(e).length>0)try{e=JSON.stringify(e),console.log(e)}catch(t){return void console.log(typeof e+":"+e.length)}else"object"==typeof e&&Object.keys(e).length<1?console.log("null object"):console.log(e)},log=print;let homeHtmlCache=void 0;function home(e){return console.log("home"),homeParse({filter:rule.filter||!1,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:rule.class_parse||"",cate_exclude:rule.cate_exclude})}function homeVod(e){return console.log("homeVod"),homeVodParse({"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl})}function category(e,t,r,l){return categoryParse({url:rule.url,"一级":rule.一级,tid:e,pg:parseInt(t),filter:r,extend:l})}function detail(e){let t=e,r="";if(log("orId:"+t),e.indexOf("$")>-1){let t=e.split("$");r=t[0],e=t[1]}let l,o=e.split("@@")[0];return detailParse({orId:t,url:l=o.startsWith("http")||o.includes("/")?o.includes("/")?urljoin(rule.homeUrl,o):o:rule.detailUrl.replaceAll("fyid",o).replaceAll("fyclass",r),"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:o,fyclass:r,tab_exclude:rule.tab_exclude})}function play(e,t,r){return playParse({url:t,flag:e,flags:r})}function search(e,t,r){return rule.search_encoding?"utf-8"!==rule.search_encoding.toLowerCase()&&(e=encodeStr(e,rule.search_encoding)):rule.encoding&&"utf-8"!==rule.encoding.toLowerCase()&&(e=encodeStr(e,rule.encoding)),searchParse({searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:e,pg:r||1,quick:t})}function proxy(e){return rule.proxy_rule&&rule.proxy_rule.trim()&&(rule.proxy_rule=rule.proxy_rule.trim()),rule.proxy_rule.startsWith("js:")&&(rule.proxy_rule=rule.proxy_rule.replace("js:","")),proxyParse({params:e,proxy_rule:rule.proxy_rule})}function sniffer(){let e=rule.sniffer||!1;return e&&log("开始执行辅助嗅探代理规则..."),e}function isVideo(e){let t,r=0;rule.isVideo&&rule.isVideo.trim()&&(t=rule.isVideo.trim()),t.startsWith("js:")&&(t=t.replace("js:",""),r=1);let l=isVideoParse({url:e,isVideo:t,t:r});return l&&log("成功执行辅助嗅探规则并检测到视频地址:\n"+rule.isVideo),l}function DRPY(){return{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo}}export default{init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/drpy2.min.js b/tvboxqq/摸鱼儿/api/drpy2.min.js
deleted file mode 100644
index 7e28988..0000000
--- a/tvboxqq/摸鱼儿/api/drpy2.min.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import cheerio from"assets://js/lib/cheerio.min.js";import"assets://js/lib/crypto-js.js";import"./node-rsa.js";import"./pako.min.js";import 模板 from"./模板.js";import{gbkTool}from"./gbk.js";import"./json5.js";import"./jinja.js";const _jinja2=cheerio.jinja2;cheerio.jinja2=function(template,obj){try{return jinja.render(template,obj)}catch(e){console.log("新的jinja2库渲染失败,换回原始cheerio:"+e.message);return _jinja2(template,obj)}};function init_test(){console.log("init_test_start");console.log("当前版本号:"+VERSION);console.log("本地代理地址:"+getProxyUrl());console.log(RKEY);console.log(JSON.stringify(rule));console.log("init_test_end")}function ocr_demo_test(){let img_base64=`iVBORw0KGgoAAAANSUhEUgAAAIAAAAAoBAMAAADEX+97AAAAG1BMVEXz+/4thQTa7N6QwIFFkyNeokKozqDB3b93sWHFR+MEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABN0lEQVRIie2TQU+DQBCFt9vScvQpxR4xrcSjJCZ67JDGXsX+AdR4B3vpsSYm/m2HXaRLmuySepR3Gdidb/btDAjRq5dT96eCMlfBuzi1QLZUoZy2yz5sOvI+9iomaPEZ6nWnEtxqIyiM1RcAy44GNDhBXUjot/VVNweV1ah68FqWRyjKIOqAcyYF6rGcmpYnHzGt3fycNoMw0d3/THFu7hFSJ/8OXO6iTM8/KSg09obAzIHLO250LgQ0txOZSfgrV4Exdw98uGycJ0ErAeExZGhOmFHV9zHO6qVSj0MpLq7xZON56o++MjlsEgfVhbQWWME+xQX7J4V6zfi9A1Ly9rP1BvEXp+BbVJ/M77n+wfOIDVp51pZ4iBxvmj9AGrtvry6emwfKnVkW+ZRKd5ZNMvob36vXP9YPDmQki8QiCFAAAAAASUVORK5CYII=`;OcrApi.api=OCR_API;let code=OcrApi.classification(img_base64);log("测试验证码图片的ocr识别结果为:"+code)}function rsa_demo_test(){let t1=(new Date).getTime();let pkcs1_public=`
------BEGIN RSA PUBLIC KEY-----
-MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
-lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
------END RSA PUBLIC KEY-----
-`.trim();let pkcs1_public_pem=`
-MEgCQQCrI0pQ/ERRpJ3Ou190XJedFq846nDYP52rOtXyDxlFK5D3p6JJu2RwsKwy
-lsQ9xY0xYPpRZUZKMEeR7e9gmRNLAgMBAAE=
-`.trim();let pkcs8_public=`
------BEGIN PUBLIC KEY-----
-MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
-nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
------END PUBLIC KEY-----`.trim();let pkcs8_public_pem=`
-MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/
-nas61fIPGUUrkPenokm7ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQ==
-`.trim();let pkcs1_private=`
------BEGIN RSA PRIVATE KEY-----
-MIIBOAIBAAJBAKsjSlD8RFGknc67X3Rcl50WrzjqcNg/nas61fIPGUUrkPenokm7
-ZHCwrDKWxD3FjTFg+lFlRkowR5Ht72CZE0sCAwEAAQI/b6OV1z65UokQaMvSeRXt
-0Yv6wiYtduQI9qpq5nzy/ytaqsbBfClNTi/HifKPKxlRouWFkc518EQI8LBxoarJ
-AiEA4DaONMplV8PQNa3TKn2F+SDEvLOCjdL0kHKdN90Ti28CIQDDZnTBaHgZwZbA
-hS7Bbf5yvwjWMhO6Y7l04/Qm7R+35QIgPuQuqXIoUSD080mp1N5WyRW++atksIF+
-5lGv9e6GP/MCICnj8y/rl6Pd7tXDN6zcSeqLrfdNsREKhB3dKOCXgW9JAiAFYtFS
-EJNBXVRTK42SNsZ2hJ/9xLwOwnH2epT8Q43s3Q==
------END RSA PRIVATE KEY-----
-`.trim();let pkcs8_private=`
------BEGIN PRIVATE KEY-----
-MIIBUgIBADANBgkqhkiG9w0BAQEFAASCATwwggE4AgEAAkEAqyNKUPxEUaSdzrtf
-dFyXnRavOOpw2D+dqzrV8g8ZRSuQ96eiSbtkcLCsMpbEPcWNMWD6UWVGSjBHke3v
-YJkTSwIDAQABAj9vo5XXPrlSiRBoy9J5Fe3Ri/rCJi125Aj2qmrmfPL/K1qqxsF8
-KU1OL8eJ8o8rGVGi5YWRznXwRAjwsHGhqskCIQDgNo40ymVXw9A1rdMqfYX5IMS8
-s4KN0vSQcp033ROLbwIhAMNmdMFoeBnBlsCFLsFt/nK/CNYyE7pjuXTj9CbtH7fl
-AiA+5C6pcihRIPTzSanU3lbJFb75q2SwgX7mUa/17oY/8wIgKePzL+uXo93u1cM3
-rNxJ6out902xEQqEHd0o4JeBb0kCIAVi0VIQk0FdVFMrjZI2xnaEn/3EvA7CcfZ6
-lPxDjezd
------END PRIVATE KEY-----
-`.trim();let data=`
-NodeRsa
-这是node-rsa 现在修改集成在drpy里使用`.trim();let encryptedWithPublic=NODERSA.encryptRSAWithPublicKey(data,pkcs1_public,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("公钥加密");console.log(encryptedWithPublic);let decryptedWithPrivate=NODERSA.decryptRSAWithPrivateKey(encryptedWithPublic,pkcs1_private,{options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("私钥解密");console.log(decryptedWithPrivate);let pkcs1_sha256_sign=NODERSA.sign("1",pkcs1_private,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:"pkcs1",signingScheme:"pkcs1-sha256"}});console.log("pkcs1_sha256_sign");console.log(pkcs1_sha256_sign);let pkcs1_sha256_sign_verify=NODERSA.verify("1","Oulx2QrgeipKYBtqEDqFb2s/+ndk2cGQxO4CkhU7iBM1vyNmmvqubpsmeoUuN3waGrYZLknSEdwBkfv0tUMpFQ==",pkcs1_private,{options:{environment:"browser",encryptionScheme:"pkcs1",signingScheme:"pkcs1-sha256"}});console.log("pkcs1_sha256_sign_verify");console.log(pkcs1_sha256_sign_verify);let pkcs1_oaep_sha256=NODERSA.encryptRSAWithPublicKey(data,`-----BEGIN RSA PUBLIC KEY-----
-MIIBCgKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7IsT1du
-SYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7Sxhdm
-kte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy3zD8
-PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+HP+m
-PfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEAApRb
-Dd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQAB
------END RSA PUBLIC KEY-----
-`,{outputEncoding:"base64",options:{environment:"browser",encryptionScheme:{scheme:"pkcs1_oaep",hash:"sha256"}}});console.log("pkcs1_oaep_sha256");console.log(pkcs1_oaep_sha256);decryptedWithPrivate=NODERSA.decryptRSAWithPrivateKey("kSZesAAyYh2hdsQnYMdGqb6gKAzTauBKouvBzWcc4+F8RvGd0nwO6mVkUMVilPgUuNxjEauHayHiY8gI3Py45UI3+km0rSGyHrS6dHiHgCkMejXHieglYzAB0IxX3Jkm4z/66bdB/D+GFy0oct5fGCMI1UHPjEAYOsazJDa8lBFNbjiWFeb/qiZtIx3vGM7KYPAZzyRf/zPbbQ8zy9xOmRuOl5nnIxgo0Okp3KO/RIPO4GZOSBA8f2lx1UtNwwrXAMpcNavtoqHVcjJ/9lcotXYQFrn5b299pSIRf2gVm8ZJ31SK6Z8cc14nKtvgnmsgClDzIXJ1o1RcDK+knVAySg==",`-----BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA5KOq1gRNyllLNWKQy8sGpZE3Q1ULLSmzZw+eaAhj9lvqn7Is
-T1duSYn08FfoOA2qMwtz+1O2l1mgzNoSVCyVpVabnTG+C9XKeZXAnJHd8aYA7l7S
-xhdmkte+iymYZ0ZBPzijo8938iugtVvqi9UgDmnY3u/NlQDqiL5BGqSxSTd/Sgmy
-3zD8PYzEa3wD9vehQ5fZZ45vKIq8GNVh2Z8+IGO85FF1OsN7+b2yGJa/FmDDNn0+
-HP+mPfI+kYBqEVpo0Ztbc3UdxgFwGC8O1n8AQyriwHnSOtIiuBH62J/7qyC/3LEA
-ApRbDd9YszqzmODjQUddZKHmvc638VW+azc0EwIDAQABAoIBADZ/QGgUzInvsLp/
-zO2WbfYm39o/uhNAvk9RbLt1TIZbMFhyOpeKynHi3Swwd9xsfWX/U9zS/lGi/m31
-iKrhmaW4OA1G3vqpMcK7TBbFufYwUEaA+ZJX344euH8pIfdzyneMQ4z3Far2dS7l
-QsmjuilVV2kEFadveXewiYoVOWCu00w6bN8wy2SIHlQn+kIL6HQhWz12iKKflIKu
-eGRdzLHsKmBt6WbY1Wuhx7HU0fAKdlBDPxCHNlI+kybUYE9o5C2vJiaVM5wqJBgZ
-8Dz8kt1QbLJ910JoLXkLVQ8uC8NJKQwFtqQjTGPnEq0+wbgz6Ij599rKZkwW/xq9
-l6KoUiECgYEA6Ah42tVdkNW047f03xVYXFH96RgorHRS36mR8Y+ONUq1fwKidovC
-WjwVujt4OPf3l1W6iyn/F6cu/bsmvPrSc3HTN0B1V31QK4OjgetxQ2PSbTldH02J
-NPzkt+v+cPxXpx/P5mgt7Weefw5txU547KubGrHUV5rBKFtIx9pj16MCgYEA/EF0
-o19+D24DZAPwlDS5VbEd7FStnwY4oQ5PqbuNOSbSJLMWU0AqzXcRokp8UTyCZ0X3
-ATkS1REq97kShCuR+npTR6a6DlY7sdpPI1SMLNajgB2tkx0EOzX+PfNIbHUd4jpJ
-I0ZMAHv/OOtkzQHDaeTWBTrzsWm6/nTiykfduNECgYEA46AMD4HpPECqKAs66e5i
-tI6q7JSKskObWVdcmQEfnSAhVOwcvPb2Ptda6UuV8S0xcwDi88rLOUUFUFzc79+P
-vTkY38cYVi/VChsluDpk7ptqv0PbGu5Rf+3n4pZdEjI7OvR2W64wAAn67uIUxc7p
-yiO/ET0K9rYWb6S9jXGtKMkCgYEA2kPAqoO7zZoBMQ7/oR0lp/HC1HRIbiqx4RlC
-8Lgpb+QZPEwA6zPAVVvLVENi4d+bbcRp/xLlKpraNNJcJSSWAMbLPFoU7sbKjA87
-HnTPfRSTEA2d3Ibk3F7Rh8TzS3Ti0JZiJjVzGZAwu41iAMifzwaD8K6boUy80eNN
-QH2CaaECgYBUsLYvC/MiYg3w+LGOONuQongoVUXjGqnw2bjVa9RK7lwRdXPUqJ51
-MpVO98IkoLvGSI/0sGNP3GKNhC+eMGjJAVwFyEuOn+JsmMv9Y9uStIVi5tIHIhKw
-m7mp8il0kaftHdSxTbspG3tZ2fjIiFIZkLEOmRpd7ogWumgOajzUdA==
------END RSA PRIVATE KEY-----`,{options:{environment:"browser",encryptionScheme:"pkcs1_oaep"}});console.log("decryptedWithPrivate");console.log(decryptedWithPrivate);(()=>{let key=new NODERSA.NodeRSA({b:1024});key.setOptions({encryptionScheme:"pkcs1"});let text=`你好drpy node-ras`;let encrypted=key.encrypt(text,"base64");console.log("encrypted: ",encrypted);const decrypted=key.decrypt(encrypted,"utf8");console.log("decrypted: ",decrypted)})();let t2=(new Date).getTime();console.log("rsa_demo_test 测试耗时:"+(t2-t1)+"毫秒")}function pre(){if(typeof rule.预处理==="string"&&rule.预处理&&rule.预处理.trim()){let code=rule.预处理.trim();console.log("执行预处理代码:"+code);if(code.startsWith("js:")){code=code.replace("js:","")}try{eval(code)}catch(e){console.log(`预处理执行失败:${e.message}`)}}}let rule={};let vercode=typeof pdfl==="function"?"drpy2.1":"drpy2";const VERSION=vercode+" 3.9.51beta2 20240711";const MOBILE_UA="Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.91 Mobile Safari/537.36";const PC_UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36";const UA="Mozilla/5.0";const UC_UA="Mozilla/5.0 (Linux; U; Android 9; zh-CN; MI 9 Build/PKQ1.181121.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.5.5.1035 Mobile Safari/537.36";const IOS_UA="Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1";const RULE_CK="cookie";const CATE_EXCLUDE="首页|留言|APP|下载|资讯|新闻|动态";const TAB_EXCLUDE="猜你|喜欢|下载|剧情|榜|评论";const OCR_RETRY=3;const OCR_API="https://api.nn.ci/ocr/b64/text";if(typeof MY_URL==="undefined"){var MY_URL}var HOST;var RKEY;var fetch;var print;var log;var rule_fetch_params;var fetch_params;var oheaders;var _pdfh;var _pdfa;var _pd;const DOM_CHECK_ATTR=/(url|src|href|-original|-src|-play|-url|style)$/;const SPECIAL_URL=/^(ftp|magnet|thunder|ws):/;const NOADD_INDEX=/:eq|:lt|:gt|:first|:last|^body$|^#/;const URLJOIN_ATTR=/(url|src|href|-original|-src|-play|-url|style)$|^(data-|url-|src-)/;const SELECT_REGEX=/:eq|:lt|:gt|#/g;const SELECT_REGEX_A=/:eq|:lt|:gt/g;const $js={toString(func){let strfun=func.toString();return strfun.replace(/^\(\)(\s+)?=>(\s+)?\{/,"js:").replace(/\}$/,"")}};function window_b64(){let b64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let base64DecodeChars=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function btoa(str){var out,i,len;var c1,c2,c3;len=str.length;i=0;out="";while(i>2);out+=b64map.charAt((c1&3)<<4);out+="==";break}c2=str.charCodeAt(i++);if(i==len){out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2);out+="=";break}c3=str.charCodeAt(i++);out+=b64map.charAt(c1>>2);out+=b64map.charAt((c1&3)<<4|(c2&240)>>4);out+=b64map.charAt((c2&15)<<2|(c3&192)>>6);out+=b64map.charAt(c3&63)}return out}function atob(str){var c1,c2,c3,c4;var i,len,out;len=str.length;i=0;out="";while(i>4);do{c3=str.charCodeAt(i++)&255;if(c3==61)return out;c3=base64DecodeChars[c3]}while(i>2);do{c4=str.charCodeAt(i++)&255;if(c4==61)return out;c4=base64DecodeChars[c4]}while(ithis.length){return false}else{return this.indexOf(search,start)!==-1}}}if(!Array.prototype.includes){Object.defineProperty(Array.prototype,"includes",{value:function(searchElement,fromIndex){if(this==null){throw new TypeError('"this" is null or not defined')}var o=Object(this);var len=o.length>>>0;if(len===0){return false}var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);while(k>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out+=String.fromCharCode(c);break;case 12:case 13:char2=array[i++];out+=String.fromCharCode((c&31)<<6|char2&63);break;case 14:char2=array[i++];char3=array[i++];out+=String.fromCharCode((c&15)<<12|(char2&63)<<6|(char3&63)<<0);break}}return out}function gzip(str){let arr=pako.gzip(str,{});return uint8ArrayToBase64(arr)}function ungzip(b64Data){let strData=atob(b64Data);const charData=strData.split("").map(function(x){return x.charCodeAt(0)});const binData=new Uint8Array(charData);const data=pako.inflate(binData);return Utf8ArrayToStr(data)}function encodeStr(input,encoding){encoding=encoding||"gbk";if(encoding.startsWith("gb")){const strTool=gbkTool();input=strTool.encode(input)}return input}function decodeStr(input,encoding){encoding=encoding||"gbk";if(encoding.startsWith("gb")){const strTool=gbkTool();input=strTool.decode(input)}return input}function getCryptoJS(){return'console.log("CryptoJS已装载");'}const RSA={decode:function(data,key,option){option=option||{};if(typeof JSEncrypt==="function"){let chunkSize=option.chunkSize||117;let privateKey=this.getPrivateKey(key);const decryptor=new JSEncrypt;decryptor.setPrivateKey(privateKey);let uncrypted="";uncrypted=decryptor.decryptUnicodeLong(data);return uncrypted}else{return false}},encode:function(data,key,option){option=option||{};if(typeof JSEncrypt==="function"){let chunkSize=option.chunkSize||117;let publicKey=this.getPublicKey(key);const encryptor=new JSEncrypt;encryptor.setPublicKey(publicKey);let encrypted="";encrypted=encryptor.encryptUnicodeLong(data);return encrypted}else{return false}},fixKey(key,prefix,endfix){if(!key.includes(prefix)){key=prefix+key}if(!key.includes(endfix)){key+=endfix}return key},getPrivateKey(key){let prefix="-----BEGIN RSA PRIVATE KEY-----";let endfix="-----END RSA PRIVATE KEY-----";return this.fixKey(key,prefix,endfix)},getPublicKey(key){let prefix="-----BEGIN PUBLIC KEY-----";let endfix="-----END PUBLIC KEY-----";return this.fixKey(key,prefix,endfix)}};function getProxyUrl(){if(typeof getProxy==="function"){return getProxy(true)}else{return"http://127.0.0.1:9978/proxy?do=js"}}function fixAdM3u8(m3u8_text,m3u8_url,ad_remove){if(!m3u8_text&&!m3u8_url||!m3u8_text&&m3u8_url&&!m3u8_url.startsWith("http")){return""}if(!m3u8_text){log("m3u8_url:"+m3u8_url);m3u8_text=request(m3u8_url)}log("len(m3u8_text):"+m3u8_text.length);if(!ad_remove){return m3u8_text}if(ad_remove.startsWith("reg:")){ad_remove=ad_remove.slice(4)}else if(ad_remove.startsWith("js:")){ad_remove=ad_remove.slice(3)}let m3u8_start=m3u8_text.slice(0,m3u8_text.indexOf("#EXTINF")).trim();let m3u8_body=m3u8_text.slice(m3u8_text.indexOf("#EXTINF"),m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();let m3u8_end=m3u8_text.slice(m3u8_text.indexOf("#EXT-X-ENDLIST")).trim();let murls=[];let m3_body_list=m3u8_body.split("\n");let m3_len=m3_body_list.length;let i=0;while(i{new_m3u8_body.push(it)})}}new_m3u8_body=new_m3u8_body.join("\n").trim();m3u8_text=[m3u8_start,new_m3u8_body,m3u8_end].join("\n").trim();return m3u8_text}function fixAdM3u8Ai(m3u8_url,headers){let ts=(new Date).getTime();let option=headers?{headers:headers}:{};function b(s1,s2){let i=0;while(iit.startsWith("#")?it:urljoin(m3u8_url,it)).join("\n");m3u8=m3u8.replace(/\n\n/gi,"\n");let last_url=m3u8.split("\n").slice(-1)[0];if(last_url.length<5){last_url=m3u8.split("\n").slice(-2)[0]}if(last_url.includes(".m3u8")&&last_url!==m3u8_url){m3u8_url=urljoin2(m3u8_url,last_url);log("嵌套的m3u8_url:"+m3u8_url);m3u8=request(m3u8_url,option)}let s=m3u8.trim().split("\n").filter(it=>it.trim()).join("\n");let ss=s.split("\n");let firststr="";let maxl=0;let kk=0;let kkk=2;let secondstr="";for(let i=0;i1){if(maxl>b(firststr,s)){if(secondstr.length<5)secondstr=s;kkk=kkk+2}else{maxl=b(firststr,s);kkk++}}kk++;if(kk>=20)break}}if(kkk>30)firststr=secondstr;let firststrlen=firststr.length;let ml=Math.round(ss.length/2).toString().length;let maxc=0;let laststr=ss.toReversed().find(x=>{if(!x.startsWith("#")){let k=b(reverseString(firststr),reverseString(x));maxl=b(firststr,x);maxc++;if(firststrlen-maxl<=ml+k||maxc>10){return true}}return false});log("最后一条切片:"+laststr);let ad_urls=[];for(let i=0;i=end){return lists}let first=lists[start];let second=lists[end];if(key){try{first=first[key];second=second[key]}catch(e){}}if(option&&typeof option==="function"){try{first=option(first);second=option(second)}catch(e){}}first+="";second+="";if(first.match(/(\d+)/)&&second.match(/(\d+)/)){let num1=Number(first.match(/(\d+)/)[1]);let num2=Number(second.match(/(\d+)/)[1]);if(num1>num2){lists.reverse()}}return lists}let VODS=[];let VOD={};let TABS=[];let LISTS=[];function getQuery(url){try{if(url.indexOf("?")>-1){url=url.slice(url.indexOf("?")+1)}let arr=url.split("#")[0].split("&");const resObj={};arr.forEach(item=>{let arr1=item.split("=");let key=arr1[0];let value=arr1.slice(1).join("=");resObj[key]=value});return resObj}catch(err){log(`getQuery发生错误:${e.message}`);return{}}}function urljoin(fromPath,nowPath){fromPath=fromPath||"";nowPath=nowPath||"";return joinUrl(fromPath,nowPath)}var urljoin2=urljoin;const defaultParser={pdfh:pdfh,pdfa:pdfa,pd:pd};function pdfh2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print(`html对象转文本发生了错误:${e.message}`)}let result=defaultParser.pdfh(html2,parse);let option=parse.includes("&&")?parse.split("&&").slice(-1)[0]:parse.split(" ").slice(-1)[0];if(/style/.test(option.toLowerCase())&&/url\(/.test(result)){try{result=result.match(/url\((.*?)\)/)[1];result=result.replace(/^['|"](.*)['|"]$/,"$1")}catch(e){}}return result}function pdfa2(html,parse){let html2=html;try{if(typeof html!=="string"){html2=html.rr(html.ele).toString()}}catch(e){print(`html对象转文本发生了错误:${e.message}`)}return defaultParser.pdfa(html2,parse)}function pd2(html,parse,uri){let ret=pdfh2(html,parse);if(typeof uri==="undefined"||!uri){uri=""}if(DOM_CHECK_ATTR.test(parse)&&!SPECIAL_URL.test(ret)){if(/http/.test(ret)){ret=ret.slice(ret.indexOf("http"))}else{ret=urljoin(MY_URL,ret)}}return ret}const parseTags={jsp:{pdfh:pdfh2,pdfa:pdfa2,pd:pd2},json:{pdfh(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}parse=parse.split("||");for(let ps of parse){let ret=cheerio.jp(ps,html);if(Array.isArray(ret)){ret=ret[0]||""}else{ret=ret||""}if(ret&&typeof ret!=="string"){ret=ret.toString()}if(ret){return ret}}return""},pdfa(html,parse){if(!parse||!parse.trim()){return""}if(typeof html==="string"){html=JSON.parse(html)}parse=parse.trim();if(!parse.startsWith("$.")){parse="$."+parse}let ret=cheerio.jp(parse,html);if(Array.isArray(ret)&&Array.isArray(ret[0])&&ret.length===1){return ret[0]||[]}return ret||[]},pd(html,parse){let ret=parseTags.json.pdfh(html,parse);if(ret){return urljoin(MY_URL,ret)}return ret}},jq:{pdfh(html,parse){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();let result=defaultParser.pdfh(html,parse);return result},pdfa(html,parse){if(!html||!parse||!parse.trim()){return[]}parse=parse.trim();let result=defaultParser.pdfa(html,parse);print(`pdfa解析${parse}=>${result.length}`);return result},pd(html,parse,base_url){if(!html||!parse||!parse.trim()){return""}parse=parse.trim();base_url=base_url||MY_URL;return defaultParser.pd(html,parse,base_url)}},getParse(p0){if(p0.startsWith("jsp:")){return this.jsp}else if(p0.startsWith("json:")){return this.json}else if(p0.startsWith("jq:")){return this.jq}else{return this.jq}}};const stringify=JSON.stringify;const jsp=parseTags.jsp;const jq=parseTags.jq;function readFile(filePath){filePath=filePath||"./uri.min.js";var fd=os.open(filePath);var buffer=new ArrayBuffer(1024);var len=os.read(fd,buffer,0,1024);console.log(len);let text=String.fromCharCode.apply(null,new Uint8Array(buffer));console.log(text);return text}function dealJson(html){try{html=html.trim();if(!(html.startsWith("{")&&html.endsWith("}")||html.startsWith("[")&&html.endsWith("]"))){html="{"+html.match(/.*?\{(.*)\}/m)[1]+"}"}}catch(e){}try{html=JSON.parse(html)}catch(e){}return html}var OcrApi={api:OCR_API,classification:function(img){let code="";try{log("通过drpy_ocr验证码接口过验证...");let html="";if(this.api.endsWith("drpy/text")){html=request(this.api,{data:{img:img},headers:{"User-Agent":PC_UA},method:"POST"},true)}else{html=post(this.api,{body:img})}code=html||""}catch(e){log(`OCR识别验证码发生错误:${e.message}`)}return code}};function verifyCode(url){let cnt=0;let host=getHome(url);let cookie="";while(cntit.toLowerCase()==="set-cookie");cookie=setCk?json[setCk].split(";")[0]:""}console.log("cookie:"+cookie);let img=json.body;let code=OcrApi.classification(img);console.log(`第${cnt+1}次验证码识别结果:${code}`);let submit_url=`${host}/index.php/ajax/verify_check?type=search&verify=${code}`;console.log(submit_url);let html=request(submit_url,{headers:{Cookie:cookie},method:"POST"});html=JSON.parse(html);if(html.msg==="ok"){console.log(`第${cnt+1}次验证码提交成功`);return cookie}else if(html.msg!=="ok"&&cnt+1>=OCR_RETRY){cookie=""}}catch(e){console.log(`第${cnt+1}次验证码提交失败:${e.message}`);if(cnt+1>=OCR_RETRY){cookie=""}}cnt+=1}return cookie}function setItem(k,v){local.set(RKEY,k,v);console.log(`规则${RKEY}设置${k} => ${v}`)}function getItem(k,v){return local.get(RKEY,k)||v}function clearItem(k){local.delete(RKEY,k)}function getHome(url){if(!url){return""}let tmp=url.split("//");url=tmp[0]+"//"+tmp[1].split("/")[0];try{url=decodeURIComponent(url)}catch(e){}return url}function buildUrl(url,obj){obj=obj||{};if(url.indexOf("?")<0){url+="?"}let param_list=[];let keys=Object.keys(obj);keys.forEach(it=>{param_list.push(it+"="+obj[it])});let prs=param_list.join("&");if(keys.length>0&&!url.endsWith("?")){url+="&"}url+=prs;return url}function $require(url){eval(request(url))}function keysToLowerCase(obj){return Object.keys(obj).reduce((result,key)=>{const newKey=key.toLowerCase();result[newKey]=obj[key];return result},{})}function request(url,obj,ocr_flag){ocr_flag=ocr_flag||false;if(typeof obj==="undefined"||!obj||obj==={}){if(!fetch_params||!fetch_params.headers){let headers={"User-Agent":MOBILE_UA};if(rule.headers){Object.assign(headers,rule.headers)}if(!fetch_params){fetch_params={}}fetch_params.headers=headers}if(!fetch_params.headers.Referer){fetch_params.headers.Referer=getHome(url)}obj=fetch_params}else{let headers=obj.headers||{};let keys=Object.keys(headers).map(it=>it.toLowerCase());if(!keys.includes("user-agent")){headers["User-Agent"]=MOBILE_UA;if(typeof fetch_params==="object"&&fetch_params&&fetch_params.headers){let fetch_headers=keysToLowerCase(fetch_params.headers);if(fetch_headers["user-agent"]){headers["User-Agent"]=fetch_headers["user-agent"]}}}if(!keys.includes("referer")){headers["Referer"]=getHome(url)}obj.headers=headers}if(rule.encoding&&rule.encoding!=="utf-8"&&!ocr_flag){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="text/html; charset="+rule.encoding}}if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="string"){if(!obj.headers.hasOwnProperty("Content-Type")&&!obj.headers.hasOwnProperty("content-type")){obj.headers["Content-Type"]="application/x-www-form-urlencoded; charset="+rule.encoding}}else if(typeof obj.body!="undefined"&&obj.body&&typeof obj.body==="object"){obj.data=obj.body;delete obj.body}if(!url){return obj.withHeaders?"{}":""}if(obj.toBase64){obj.buffer=2;delete obj.toBase64}if(obj.redirect===false){obj.redirect=0}console.log(JSON.stringify(obj.headers));console.log("request:"+url+`|method:${obj.method||"GET"}|body:${obj.body||""}`);let res=req(url,obj);let html=res.content||"";if(obj.withHeaders){let htmlWithHeaders=res.headers;htmlWithHeaders.body=html;return JSON.stringify(htmlWithHeaders)}else{return html}}function post(url,obj){obj=obj||{};obj.method="POST";return request(url,obj)}function reqCookie(url,obj,all_cookie){obj=obj||{};obj.withHeaders=true;all_cookie=all_cookie||false;let html=request(url,obj);let json=JSON.parse(html);let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");let cookie=setCk?json[setCk]:"";if(Array.isArray(cookie)){cookie=cookie.join(";")}if(!all_cookie){cookie=cookie.split(";")[0]}html=json.body;return{cookie:cookie,html:html}}fetch=request;print=function(data){data=data||"";if(typeof data=="object"&&Object.keys(data).length>0){try{data=JSON.stringify(data);console.log(data)}catch(e){console.log(typeof data+":"+data.length);return}}else if(typeof data=="object"&&Object.keys(data).length<1){console.log("null object")}else{console.log(data)}};log=print;function checkHtml(html,url,obj){if(/\?btwaf=/.test(html)){let btwaf=html.match(/btwaf(.*?)"/)[1];url=url.split("#")[0]+"?btwaf"+btwaf;print("宝塔验证访问链接:"+url);html=request(url,obj)}return html}function getCode(url,obj){let html=request(url,obj);html=checkHtml(html,url,obj);return html}function getHtml(url){let obj={};if(rule.headers){obj.headers=rule.headers}let cookie=getItem(RULE_CK,"");if(cookie){if(obj.headers&&!Object.keys(obj.headers).map(it=>it.toLowerCase()).includes("cookie")){log("历史无cookie,新增过验证后的cookie");obj.headers["Cookie"]=cookie}else if(obj.headers&&obj.headers.cookie&&obj.headers.cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有小写过期的cookie,更新过验证后的cookie")}else if(obj.headers&&obj.headers.Cookie&&obj.headers.Cookie!==cookie){obj.headers["Cookie"]=cookie;log("历史有大写过期的cookie,更新过验证后的cookie")}else if(!obj.headers){obj.headers={Cookie:cookie};log("历史无headers,更新过验证后的含cookie的headers")}}let html=getCode(url,obj);return html}function homeParse(homeObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let classes=[];if(homeObj.class_name&&homeObj.class_url){let names=homeObj.class_name.split("&");let urls=homeObj.class_url.split("&");let cnt=Math.min(names.length,urls.length);for(let i=0;i0){classes=list}}}catch(e){console.log(e.message)}}else if(p.length>=3&&!is_json){try{let html=homeObj.home_html||getHtml(homeObj.MY_URL);if(html){homeHtmlCache=html;let list=_pdfa(html,p0);if(list&&list.length>0){list.forEach((it,idex)=>{try{let name=_pdfh(it,p[1]);if(homeObj.cate_exclude&&new RegExp(homeObj.cate_exclude).test(name)){return}let url=_pd(it,p[2]);if(p.length>3&&p[3]&&!homeObj.home_html){let exp=new RegExp(p[3]);url=url.match(exp)[1]}classes.push({type_id:url.trim(),type_name:name.trim()})}catch(e){console.log(`分类列表定位第${idex}个元素正常报错:${e.message}`)}})}}}catch(e){console.log(e.message)}}}}classes=classes.filter(it=>!homeObj.cate_exclude||!new RegExp(homeObj.cate_exclude).test(it.type_name));let resp={class:classes};if(homeObj.filter){resp.filters=homeObj.filter}console.log(JSON.stringify(resp));return JSON.stringify(resp)}function getPP(p,pn,pp,ppn){try{let ps=p[pn]==="*"&&pp.length>ppn?pp[ppn]:p[pn];return ps}catch(e){return""}}function homeVodParse(homeVodObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];MY_URL=homeVodObj.homeUrl;console.log(MY_URL);let t1=(new Date).getTime();let p=homeVodObj.推荐;print("p:"+p);if(p==="*"&&rule.一级){p=rule.一级;homeVodObj.double=false}if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级?rule.一级.split(";"):[];if(p.startsWith("js:")){const TYPE="home";var input=MY_URL;HOST=rule.host;eval(p.replace("js:",""));d=VODS}else{p=p.split(";");if(!homeVodObj.double&&p.length<5){return"{}"}else if(homeVodObj.double&&p.length<6){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");let html=homeHtmlCache||getHtml(MY_URL);homeHtmlCache=undefined;if(is_json){html=dealJson(html)}try{console.log("double:"+homeVodObj.double);if(homeVodObj.double){let items=_pdfa(html,p0);let p1=getPP(p,1,pp,0);let p2=getPP(p,2,pp,1);let p3=getPP(p,3,pp,2);let p4=getPP(p,4,pp,3);let p5=getPP(p,5,pp,4);let p6=getPP(p,6,pp,5);for(let item of items){let items2=_pdfa(item,p1);for(let item2 of items2){try{let title=_pdfh(item2,p2);let img="";try{img=_pd(item2,p3)}catch(e){}let desc="";try{desc=_pdfh(item2,p4)}catch(e){}let links=[];for(let _p5 of p5.split("+")){let link=!homeVodObj.detailUrl?_pd(item2,_p5,MY_URL):_pdfh(item2,_p5);links.push(link)}let content;if(p.length>6&&p[6]){content=_pdfh(item2,p6)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log(`首页列表双层定位处理发生错误:${e.message}`)}}}}else{let items=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);for(let item of items){try{let title=_pdfh(item,p1);let img="";try{img=_pd(item,p2,MY_URL)}catch(e){}let desc="";try{desc=_pdfh(item,p3)}catch(e){}let links=[];for(let _p5 of p4.split("+")){let link=!homeVodObj.detailUrl?_pd(item,_p5,MY_URL):_pdfh(item,_p5);links.push(link)}let content;if(p.length>5&&p[5]){content=_pdfh(item,p5)}else{content=""}let vid=links.join("$");if(rule.二级==="*"){vid=vid+"@@"+title+"@@"+img}let vod={vod_name:title,vod_pic:img,vod_remarks:desc,vod_content:content,vod_id:vid};d.push(vod)}catch(e){console.log(`首页列表单层定位处理发生错误:${e.message}`)}}}}catch(e){}}let t2=(new Date).getTime();console.log("加载首页推荐耗时:"+(t2-t1)+"毫秒");if(rule.图片替换){if(rule.图片替换.startsWith("js:")){d.forEach(it=>{try{var input=it.vod_pic;eval(rule.图片替换.trim().replace("js:",""));it.vod_pic=input}catch(e){log(`图片:${it.vod_pic}替换错误:${e.message}`)}})}else if(rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}return JSON.stringify({list:d})}function categoryParse(cateObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let p=cateObj.一级;if(!p||typeof p!=="string"){return"{}"}let d=[];let url=cateObj.url.replaceAll("fyclass",cateObj.tid);if(cateObj.pg===1&&url.includes("[")&&url.includes("]")){url=url.split("[")[1].split("]")[0]}else if(cateObj.pg>1&&url.includes("[")&&url.includes("]")){url=url.split("[")[0]}if(rule.filter_url){if(!/fyfilter/.test(url)){if(!url.endsWith("&")&&!rule.filter_url.startsWith("&")){url+="&"}url+=rule.filter_url}else{url=url.replace("fyfilter",rule.filter_url)}url=url.replaceAll("fyclass",cateObj.tid);let fl=cateObj.filter?cateObj.extend:{};if(rule.filter_def&&typeof rule.filter_def==="object"){try{if(Object.keys(rule.filter_def).length>0&&rule.filter_def.hasOwnProperty(cateObj.tid)){let self_fl_def=rule.filter_def[cateObj.tid];if(self_fl_def&&typeof self_fl_def==="object"){let fl_def=JSON.parse(JSON.stringify(self_fl_def));fl=Object.assign(fl_def,fl)}}}catch(e){print(`合并不同分类对应的默认筛选出错:${e.message}`)}}let new_url;new_url=cheerio.jinja2(url,{fl:fl,fyclass:cateObj.tid});url=new_url}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",cateObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",cateObj.pg)}}MY_URL=url;console.log(MY_URL);p=p.trim();const MY_CATE=cateObj.tid;if(p.startsWith("js:")){var MY_FL=cateObj.extend;const TYPE="cate";var input=MY_URL;const MY_PAGE=cateObj.pg;var desc="";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let _ps=parseTags.getParse(p[0]);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p[0].startsWith("json:");p[0]=p[0].replace(/^(jsp:|json:|jq:)/,"");try{let html=getHtml(MY_URL);if(html){if(is_json){html=dealJson(html)}let list=_pdfa(html,p[0]);list.forEach(it=>{let links=p[4].split("+").map(p4=>{return!rule.detailUrl?_pd(it,p4,MY_URL):_pdfh(it,p4)});let link=links.join("$");let vod_id=rule.detailUrl?MY_CATE+"$"+link:link;let vod_name=_pdfh(it,p[1]).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p[2],MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}d.push({vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p[3]).replace(/\n|\t/g,"").trim()})})}}catch(e){console.log(e.message)}}if(rule.图片替换){if(rule.图片替换.startsWith("js:")){d.forEach(it=>{try{var input=it.vod_pic;eval(rule.图片替换.trim().replace("js:",""));it.vod_pic=input}catch(e){log(`图片:${it.vod_pic}替换错误:${e.message}`)}})}else if(rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}if(d.length>0){print(d.slice(0,2))}let pagecount=0;if(rule.pagecount&&typeof rule.pagecount==="object"&&rule.pagecount.hasOwnProperty(MY_CATE)){print(`MY_CATE:${MY_CATE},pagecount:${JSON.stringify(rule.pagecount)}`);pagecount=parseInt(rule.pagecount[MY_CATE])}let nodata={list:[{vod_name:"无数据,防无限请求",vod_id:"no_data",vod_remarks:"不要点,会崩的",vod_pic:"https://ghproxy.net/https://raw.githubusercontent.com/hjdhnx/dr_py/main/404.jpg"}],total:1,pagecount:1,page:1,limit:1};let vod=d.length<1?JSON.stringify(nodata):JSON.stringify({page:parseInt(cateObj.pg),pagecount:pagecount||999,limit:20,total:999,list:d});return vod}function searchParse(searchObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let d=[];if(!searchObj.searchUrl){return"{}"}let p=searchObj.搜索==="*"&&rule.一级?rule.一级:searchObj.搜索;if(!p||typeof p!=="string"){return"{}"}p=p.trim();let pp=rule.一级?rule.一级.split(";"):[];let url=searchObj.searchUrl.replaceAll("**",searchObj.wd);if(searchObj.pg===1&&url.includes("[")&&url.includes("]")&&!url.includes("#")){url=url.split("[")[1].split("]")[0]}else if(searchObj.pg>1&&url.includes("[")&&url.includes("]")&&!url.includes("#")){url=url.split("[")[0]}if(/fypage/.test(url)){if(url.includes("(")&&url.includes(")")){let url_rep=url.match(/.*?\((.*)\)/)[1];let cnt_page=url_rep.replaceAll("fypage",searchObj.pg);let cnt_pg=eval(cnt_page);url=url.replaceAll(url_rep,cnt_pg).replaceAll("(","").replaceAll(")","")}else{url=url.replaceAll("fypage",searchObj.pg)}}MY_URL=url;console.log(MY_URL);if(p.startsWith("js:")){const TYPE="search";const MY_PAGE=searchObj.pg;const KEY=searchObj.wd;var input=MY_URL;var detailUrl=rule.detailUrl||"";eval(p.trim().replace("js:",""));d=VODS}else{p=p.split(";");if(p.length<5){return"{}"}let p0=getPP(p,0,pp,0);let _ps=parseTags.getParse(p0);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;let is_json=p0.startsWith("json:");p0=p0.replace(/^(jsp:|json:|jq:)/,"");try{let req_method=MY_URL.split(";").length>1?MY_URL.split(";")[1].toLowerCase():"get";let html;if(req_method==="post"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`post=》rurl:${rurl},params:${params}`);let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else if(req_method==="postjson"){let rurls=MY_URL.split(";")[0].split("#");let rurl=rurls[0];let params=rurls.length>1?rurls[1]:"";print(`postjson-》rurl:${rurl},params:${params}`);try{params=JSON.parse(params)}catch(e){params="{}"}let _fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let postData={body:params};Object.assign(_fetch_params,postData);html=post(rurl,_fetch_params)}else{html=getHtml(MY_URL)}if(html){if(/系统安全验证|输入验证码/.test(html)){let cookie=verifyCode(MY_URL);if(cookie){console.log(`本次成功过验证,cookie:${cookie}`);setItem(RULE_CK,cookie)}else{console.log(`本次自动过搜索验证失败,cookie:${cookie}`)}html=getHtml(MY_URL)}if(!html.includes(searchObj.wd)){console.log("搜索结果源码未包含关键字,疑似搜索失败,正为您打印结果源码");console.log(html)}if(is_json){html=dealJson(html)}let list=_pdfa(html,p0);let p1=getPP(p,1,pp,1);let p2=getPP(p,2,pp,2);let p3=getPP(p,3,pp,3);let p4=getPP(p,4,pp,4);let p5=getPP(p,5,pp,5);list.forEach(it=>{let links=p4.split("+").map(_p4=>{return!rule.detailUrl?_pd(it,_p4,MY_URL):_pdfh(it,_p4)});let link=links.join("$");let content;if(p.length>5&&p[5]){content=_pdfh(it,p5)}else{content=""}let vod_id=link;let vod_name=_pdfh(it,p1).replace(/\n|\t/g,"").trim();let vod_pic=_pd(it,p2,MY_URL);if(rule.二级==="*"){vod_id=vod_id+"@@"+vod_name+"@@"+vod_pic}let ob={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,vod_remarks:_pdfh(it,p3).replace(/\n|\t/g,"").trim(),vod_content:content.replace(/\n|\t/g,"").trim()};d.push(ob)})}}catch(e){print(`搜索发生错误:${e.message}`);return"{}"}}if(rule.图片替换){if(rule.图片替换.startsWith("js:")){d.forEach(it=>{try{var input=it.vod_pic;eval(rule.图片替换.trim().replace("js:",""));it.vod_pic=input}catch(e){log(`图片:${it.vod_pic}替换错误:${e.message}`)}})}else if(rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic.replace(replace_from,replace_to)}})}}if(rule.图片来源){d.forEach(it=>{if(it.vod_pic&&it.vod_pic.startsWith("http")){it.vod_pic=it.vod_pic+rule.图片来源}})}return JSON.stringify({page:parseInt(searchObj.pg),pagecount:10,limit:20,total:100,list:d})}function detailParse(detailObj){let t1=(new Date).getTime();fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));let orId=detailObj.orId;let vod_name="片名";let vod_pic="";let vod_id=orId;if(rule.二级==="*"){let extra=orId.split("@@");vod_name=extra.length>1?extra[1]:vod_name;vod_pic=extra.length>2?extra[2]:vod_pic}let vod={vod_id:vod_id,vod_name:vod_name,vod_pic:vod_pic,type_name:"类型",vod_year:"年份",vod_area:"地区",vod_remarks:"更新信息",vod_actor:"主演",vod_director:"导演",vod_content:"简介"};let p=detailObj.二级;let url=detailObj.url;let detailUrl=detailObj.detailUrl;let fyclass=detailObj.fyclass;let tab_exclude=detailObj.tab_exclude;let html=detailObj.html||"";MY_URL=url;if(detailObj.二级访问前){try{print(`尝试在二级访问前执行代码:${detailObj.二级访问前}`);eval(detailObj.二级访问前.trim().replace("js:",""))}catch(e){print(`二级访问前执行代码出现错误:${e.message}`)}}if(p==="*"){vod.vod_play_from="免费分享";vod.vod_remarks=detailUrl;vod.vod_actor="没有二级,只有一级链接直接嗅探播放";vod.vod_content=MY_URL;vod.vod_play_url="嗅探播放$"+MY_URL.split("@@")[0]}else if(typeof p==="string"&&p.trim().startsWith("js:")){const TYPE="detail";var input=MY_URL;var play_url="";eval(p.trim().replace("js:",""));vod=VOD;console.log(JSON.stringify(vod))}else if(p&&typeof p==="object"){let tt1=(new Date).getTime();if(!html){html=getHtml(MY_URL)}print(`二级${MY_URL}仅获取源码耗时:${(new Date).getTime()-tt1}毫秒`);let _ps;if(p.is_json){print("二级是json");_ps=parseTags.json;html=dealJson(html)}else if(p.is_jsp){print("二级是jsp");_ps=parseTags.jsp}else if(p.is_jq){print("二级是jq");_ps=parseTags.jq}else{print("二级默认jq");_ps=parseTags.jq}let tt2=(new Date).getTime();print(`二级${MY_URL}获取并装载源码耗时:${tt2-tt1}毫秒`);_pdfa=_ps.pdfa;_pdfh=_ps.pdfh;_pd=_ps.pd;if(p.title){let p1=p.title.split(";");vod.vod_name=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();let type_name=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").replace(/ /g,"").trim():"";vod.type_name=type_name||vod.type_name}if(p.desc){try{let p1=p.desc.split(";");vod.vod_remarks=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim();vod.vod_year=p1.length>1?_pdfh(html,p1[1]).replace(/\n|\t/g,"").trim():"";vod.vod_area=p1.length>2?_pdfh(html,p1[2]).replace(/\n|\t/g,"").trim():"";vod.vod_actor=p1.length>3?_pdfh(html,p1[3]).replace(/\n|\t/g,"").trim():"";vod.vod_director=p1.length>4?_pdfh(html,p1[4]).replace(/\n|\t/g,"").trim():""}catch(e){}}if(p.content){try{let p1=p.content.split(";");vod.vod_content=_pdfh(html,p1[0]).replace(/\n|\t/g,"").trim()}catch(e){}}if(p.img){try{let p1=p.img.split(";");vod.vod_pic=_pd(html,p1[0],MY_URL)}catch(e){}}let vod_play_from="$$$";let playFrom=[];if(p.重定向&&p.重定向.startsWith("js:")){print("开始执行重定向代码:"+p.重定向);html=eval(p.重定向.replace("js:",""))}if(p.tabs){if(p.tabs.startsWith("js:")){print("开始执行tabs代码:"+p.tabs);var input=MY_URL;eval(p.tabs.replace("js:",""));playFrom=TABS}else{let p_tab=p.tabs.split(";")[0];let vHeader=_pdfa(html,p_tab);console.log(vHeader.length);let tab_text=p.tab_text||"body&&Text";let new_map={};for(let v of vHeader){let v_title=_pdfh(v,tab_text).trim();if(!v_title){v_title="线路空"}console.log(v_title);if(tab_exclude&&new RegExp(tab_exclude).test(v_title)){continue}if(!new_map.hasOwnProperty(v_title)){new_map[v_title]=1}else{new_map[v_title]+=1}if(new_map[v_title]>1){v_title+=Number(new_map[v_title]-1)}playFrom.push(v_title)}}console.log(JSON.stringify(playFrom))}else{playFrom=["免费分享"]}vod.vod_play_from=playFrom.join(vod_play_from);let vod_play_url="$$$";let vod_tab_list=[];if(p.lists){if(p.lists.startsWith("js:")){print("开始执行lists代码:"+p.lists);try{var input=MY_URL;var play_url="";eval(p.lists.replace("js:",""));for(let i in LISTS){if(LISTS.hasOwnProperty(i)){try{LISTS[i]=LISTS[i].map(it=>it.split("$").slice(0,2).join("$"))}catch(e){print(`格式化LISTS发生错误:${e.message}`)}}}vod_play_url=LISTS.map(it=>it.join("#")).join(vod_play_url)}catch(e){print(`js执行lists: 发生错误:${e.message}`)}}else{let list_text=p.list_text||"body&&Text";let list_url=p.list_url||"a&&href";let list_url_prefix=p.list_url_prefix||"";let is_tab_js=p.tabs.trim().startsWith("js:");for(let i=0;i1&&!is_tab_js?p.tabs.split(";")[1]:"";let p1=p.lists.replaceAll("#idv",tab_name).replaceAll("#id",i);tab_ext=tab_ext.replaceAll("#idv",tab_name).replaceAll("#id",i);let tabName=tab_ext?_pdfh(html,tab_ext):tab_name;console.log(tabName);let new_vod_list=[];let tt1=(new Date).getTime();if(typeof pdfl==="function"){new_vod_list=pdfl(html,p1,list_text,list_url,MY_URL);if(list_url_prefix){new_vod_list=new_vod_list.map(it=>it.split("$")[0]+"$"+list_url_prefix+it.split("$").slice(1).join("$"))}}else{let vodList=[];try{vodList=_pdfa(html,p1);console.log("len(vodList):"+vodList.length)}catch(e){}for(let i=0;i0){new_vod_list=forceOrder(new_vod_list,"",x=>x.split("$")[0]);console.log(`drpy影响性能代码共计列表数循环次数:${new_vod_list.length},耗时:${(new Date).getTime()-tt1}毫秒`)}let vlist=new_vod_list.join("#");vod_tab_list.push(vlist)}vod_play_url=vod_tab_list.join(vod_play_url)}}vod.vod_play_url=vod_play_url}if(rule.图片替换&&rule.图片替换.includes("=>")){let replace_from=rule.图片替换.split("=>")[0];let replace_to=rule.图片替换.split("=>")[1];vod.vod_pic=vod.vod_pic.replace(replace_from,replace_to)}if(rule.图片来源&&vod.vod_pic&&vod.vod_pic.startsWith("http")){vod.vod_pic=vod.vod_pic+rule.图片来源}if(!vod.vod_id||vod_id.includes("$")&&vod.vod_id!==vod_id){vod.vod_id=vod_id}let t2=(new Date).getTime();console.log(`加载二级界面${MY_URL}耗时:${t2-t1}毫秒`);try{vod=vodDeal(vod)}catch(e){console.log(`vodDeal发生错误:${e.message}`)}return JSON.stringify({list:[vod]})}function get_tab_index(vod){let obj={};vod.vod_play_from.split("$$$").forEach((it,index)=>{obj[it]=index});return obj}function vodDeal(vod){let vod_play_from=vod.vod_play_from.split("$$$");let vod_play_url=vod.vod_play_url.split("$$$");let tab_removed_list=vod_play_from;let tab_ordered_list=vod_play_from;let tab_renamed_list=vod_play_from;let tab_list=vod_play_from;let play_ordered_list=vod_play_url;if(rule.tab_remove&&rule.tab_remove.length>0||rule.tab_order&&rule.tab_order.length>0){let tab_index_dict=get_tab_index(vod);if(rule.tab_remove&&rule.tab_remove.length>0){tab_removed_list=vod_play_from.filter(it=>!rule.tab_remove.includes(it));tab_list=tab_removed_list}if(rule.tab_order&&rule.tab_order.length>0){let tab_order=rule.tab_order;tab_ordered_list=tab_removed_list.sort((a,b)=>{return(tab_order.indexOf(a)===-1?9999:tab_order.indexOf(a))-(tab_order.indexOf(b)===-1?9999:tab_order.indexOf(b))});tab_list=tab_ordered_list}play_ordered_list=tab_list.map(it=>vod_play_url[tab_index_dict[it]])}if(rule.tab_rename&&typeof rule.tab_rename==="object"&Object.keys(rule.tab_rename).length>0){tab_renamed_list=tab_list.map(it=>rule.tab_rename[it]||it);tab_list=tab_renamed_list}vod.vod_play_from=tab_list.join("$$$");vod.vod_play_url=play_ordered_list.join("$$$");return vod}function tellIsJx(url){try{let is_vip=!/\.(m3u8|mp4|m4a)$/.test(url.split("?")[0])&&是否正版(url);return is_vip?1:0}catch(e){return 1}}function playParse(playObj){fetch_params=JSON.parse(JSON.stringify(rule_fetch_params));MY_URL=playObj.url;var MY_FLAG=playObj.flag;if(!/http/.test(MY_URL)){try{MY_URL=base64Decode(MY_URL)}catch(e){}}MY_URL=decodeURIComponent(MY_URL);var input=MY_URL;var flag=MY_FLAG;let common_play={parse:SPECIAL_URL.test(input)||/^(push:)/.test(input)?0:1,url:input,flag:flag,jx:tellIsJx(input)};let lazy_play;if(!rule.play_parse||!rule.lazy){lazy_play=common_play}else if(rule.play_parse&&rule.lazy&&typeof rule.lazy==="string"){try{let lazy_code=rule.lazy.trim();if(lazy_code.startsWith("js:")){lazy_code=lazy_code.replace("js:","").trim()}print("开始执行js免嗅=>"+lazy_code);eval(lazy_code);lazy_play=typeof input==="object"?input:{parse:SPECIAL_URL.test(input)||/^(push:)/.test(input)?0:1,jx:tellIsJx(input),url:input}}catch(e){print(`js免嗅错误:${e.message}`);lazy_play=common_play}}else{lazy_play=common_play}if(Array.isArray(rule.play_json)&&rule.play_json.length>0){let web_url=lazy_play.url;for(let pjson of rule.play_json){if(pjson.re&&(pjson.re==="*"||web_url.match(new RegExp(pjson.re)))){if(pjson.json&&typeof pjson.json==="object"){let base_json=pjson.json;lazy_play=Object.assign(lazy_play,base_json);break}}}}else if(rule.play_json&&!Array.isArray(rule.play_json)){let base_json={jx:1,parse:1};lazy_play=Object.assign(lazy_play,base_json)}else if(!rule.play_json){let base_json={jx:0,parse:1};lazy_play=Object.assign(lazy_play,base_json)}console.log(JSON.stringify(lazy_play));return JSON.stringify(lazy_play)}function proxyParse(proxyObj){var input=proxyObj.params;if(proxyObj.proxy_rule){log("准备执行本地代理规则:\n"+proxyObj.proxy_rule);try{eval(proxyObj.proxy_rule);if(input&&input!==proxyObj.params&&Array.isArray(input)&&input.length>=3){return input}else{return[404,"text/plain","Not Found"]}}catch(e){return[500,"text/plain","代理规则错误:"+e.message]}}else{return[404,"text/plain","Not Found"]}}function isVideoParse(isVideoObj){var input=isVideoObj.url;if(!isVideoObj.t){let re_matcher=new RegExp(isVideoObj.isVideo,"i");return re_matcher.test(input)}else{try{eval(isVideoObj.isVideo);if(typeof input==="boolean"){return input}else{return false}}catch(e){log(`执行嗅探规则发生错误:${e.message}`);return false}}}function getOriginalJs(js_code){let current_match=/var rule|[\u4E00-\u9FA5]+|function|let |var |const |\(|\)|"|'/;if(current_match.test(js_code)){return js_code}let rsa_private_key="MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqin/jUpqM6+fgYP/oMqj9zcdHMM0mEZXLeTyixIJWP53lzJV2N2E3OP6BBpUmq2O1a9aLnTIbADBaTulTNiOnVGoNG58umBnupnbmmF8iARbDp2mTzdMMeEgLdrfXS6Y3VvazKYALP8EhEQykQVarexR78vRq7ltY3quXx7cgI0ROfZz5Sw3UOLQJ+VoWmwIxu9AMEZLVzFDQN93hzuzs3tNyHK6xspBGB7zGbwCg+TKi0JeqPDrXxYUpAz1cQ/MO+Da0WgvkXnvrry8NQROHejdLVOAslgr6vYthH9bKbsGyNY3H+P12kcxo9RAcVveONnZbcMyxjtF5dWblaernAgMBAAECggEAGdEHlSEPFmAr5PKqKrtoi6tYDHXdyHKHC5tZy4YV+Pp+a6gxxAiUJejx1hRqBcWSPYeKne35BM9dgn5JofgjI5SKzVsuGL6bxl3ayAOu+xXRHWM9f0t8NHoM5fdd0zC3g88dX3fb01geY2QSVtcxSJpEOpNH3twgZe6naT2pgiq1S4okpkpldJPo5GYWGKMCHSLnKGyhwS76gF8bTPLoay9Jxk70uv6BDUMlA4ICENjmsYtd3oirWwLwYMEJbSFMlyJvB7hjOjR/4RpT4FPnlSsIpuRtkCYXD4jdhxGlvpXREw97UF2wwnEUnfgiZJ2FT/MWmvGGoaV/CfboLsLZuQKBgQDTNZdJrs8dbijynHZuuRwvXvwC03GDpEJO6c1tbZ1s9wjRyOZjBbQFRjDgFeWs9/T1aNBLUrgsQL9c9nzgUziXjr1Nmu52I0Mwxi13Km/q3mT+aQfdgNdu6ojsI5apQQHnN/9yMhF6sNHg63YOpH+b+1bGRCtr1XubuLlumKKscwKBgQDOtQ2lQjMtwsqJmyiyRLiUOChtvQ5XI7B2mhKCGi8kZ+WEAbNQcmThPesVzW+puER6D4Ar4hgsh9gCeuTaOzbRfZ+RLn3Aksu2WJEzfs6UrGvm6DU1INn0z/tPYRAwPX7sxoZZGxqML/z+/yQdf2DREoPdClcDa2Lmf1KpHdB+vQKBgBXFCVHz7a8n4pqXG/HvrIMJdEpKRwH9lUQS/zSPPtGzaLpOzchZFyQQBwuh1imM6Te+VPHeldMh3VeUpGxux39/m+160adlnRBS7O7CdgSsZZZ/dusS06HAFNraFDZf1/VgJTk9BeYygX+AZYu+0tReBKSs9BjKSVJUqPBIVUQXAoGBAJcZ7J6oVMcXxHxwqoAeEhtvLcaCU9BJK36XQ/5M67ceJ72mjJC6/plUbNukMAMNyyi62gO6I9exearecRpB/OGIhjNXm99Ar59dAM9228X8gGfryLFMkWcO/fNZzb6lxXmJ6b2LPY3KqpMwqRLTAU/zy+ax30eFoWdDHYa4X6e1AoGAfa8asVGOJ8GL9dlWufEeFkDEDKO9ww5GdnpN+wqLwePWqeJhWCHad7bge6SnlylJp5aZXl1+YaBTtOskC4Whq9TP2J+dNIgxsaF5EFZQJr8Xv+lY9lu0CruYOh9nTNF9x3nubxJgaSid/7yRPfAGnsJRiknB5bsrCvgsFQFjJVs=";let decode_content="";function aes_decrypt(data){let key=CryptoJS.enc.Hex.parse("686A64686E780A0A0A0A0A0A0A0A0A0A");let iv=CryptoJS.enc.Hex.parse("647A797964730A0A0A0A0A0A0A0A0A0A");let encrypted=CryptoJS.AES.decrypt({ciphertext:CryptoJS.enc.Base64.parse(data)},key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);return encrypted}let error_log=false;function logger(text){if(error_log){log(text)}}let decode_funcs=[text=>{try{return ungzip(text)}catch(e){logger("非gzip加密");return""}},text=>{try{return base64Decode(text)}catch(e){logger("非b64加密");return""}},text=>{try{return aes_decrypt(text)}catch(e){logger("非aes加密");return""}},text=>{try{return RSA.decode(text,rsa_private_key,null)}catch(e){logger("非rsa加密");return""}}];let func_index=0;while(!current_match.test(decode_content)){decode_content=decode_funcs[func_index](js_code);func_index++;if(func_index>=decode_funcs.length){break}}return decode_content}function runMain(main_func_code,arg){let mainFunc=function(){return""};try{eval(main_func_code+"\nmainFunc=main;");return mainFunc(arg)}catch(e){log(`执行main_funct发生了错误:${e.message}`);return""}}function init(ext){console.log("init");rule={};rule_fetch_params={};fetch_params=null;try{let muban=模板.getMubans();if(typeof ext=="object"){rule=ext}else if(typeof ext=="string"){if(ext.startsWith("http")||ext.startsWith("file://")){let query=getQuery(ext);let js=request(ext,{method:"GET"});if(js){js=getOriginalJs(js);eval("(function(){"+js.replace("var rule","rule")+"})()")}if(query.type==="url"&&query.params){rule.params=urljoin(ext,query.params)}else if(query.params){rule.params=query.params}}else{ext=getOriginalJs(ext);eval("(function(){"+ext.replace("var rule","rule")+"})()")}}else{console.log(`规则加载失败,不支持的规则类型:${typeof ext}`);return}rule.host=(rule.host||"").rstrip("/");HOST=rule.host;if(rule.hostJs){console.log(`检测到hostJs,准备执行...`);try{eval(rule.hostJs);rule.host=HOST.rstrip("/")}catch(e){console.log(`执行${rule.hostJs}获取host发生错误:${e.message}`)}}if(rule["模板"]==="自动"){try{let host_headers=rule["headers"]||{};let host_html=getCode(HOST,{headers:host_headers});let match_muban="";let muban_keys=Object.keys(muban).filter(it=>!/默认|短视2|采集1/.test(it));for(let muban_key of muban_keys){try{let host_data=JSON.parse(home({},host_html,muban[muban_key].class_parse));if(host_data.class&&host_data.class.length>0){match_muban=muban_key;console.log(`自动匹配模板:【${muban_key}】`);break}}catch(e){console.log(`自动匹配模板:【${muban_key}】错误:${e.message}`)}}if(match_muban){muban["自动"]=muban[match_muban];if(rule["模板修改"]&&rule["模板修改"].startsWith("js:")){eval(rule["模板修改"].replace("js:","").trim())}}else{delete rule["模板"]}}catch(e){delete rule["模板"]}}if(rule.模板&&muban.hasOwnProperty(rule.模板)){print("继承模板:"+rule.模板);rule=Object.assign(muban[rule.模板],rule)}let rule_cate_excludes=(rule.cate_exclude||"").split("|").filter(it=>it.trim());let rule_tab_excludes=(rule.tab_exclude||"").split("|").filter(it=>it.trim());rule_cate_excludes=rule_cate_excludes.concat(CATE_EXCLUDE.split("|").filter(it=>it.trim()));rule_tab_excludes=rule_tab_excludes.concat(TAB_EXCLUDE.split("|").filter(it=>it.trim()));rule.cate_exclude=rule_cate_excludes.join("|");rule.tab_exclude=rule_tab_excludes.join("|");rule.类型=rule.类型||"影视";rule.url=rule.url||"";rule.double=rule.double||false;rule.homeUrl=rule.homeUrl||"";rule.detailUrl=rule.detailUrl||"";rule.searchUrl=rule.searchUrl||"";rule.homeUrl=rule.host&&rule.homeUrl?urljoin(rule.host,rule.homeUrl):rule.homeUrl||rule.host;rule.homeUrl=cheerio.jinja2(rule.homeUrl,{rule:rule});rule.detailUrl=rule.host&&rule.detailUrl?urljoin(rule.host,rule.detailUrl):rule.detailUrl;rule.二级访问前=rule.二级访问前||"";if(rule.url.includes("[")&&rule.url.includes("]")){let u1=rule.url.split("[")[0];let u2=rule.url.split("[")[1].split("]")[0];rule.url=rule.host&&rule.url?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.url}else{rule.url=rule.host&&rule.url?urljoin(rule.host,rule.url):rule.url}if(rule.searchUrl.includes("[")&&rule.searchUrl.includes("]")&&!rule.searchUrl.includes("#")){let u1=rule.searchUrl.split("[")[0];let u2=rule.searchUrl.split("[")[1].split("]")[0];rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,u1)+"["+urljoin(rule.host,u2)+"]":rule.searchUrl}else{rule.searchUrl=rule.host&&rule.searchUrl?urljoin(rule.host,rule.searchUrl):rule.searchUrl}rule.timeout=rule.timeout||5e3;rule.encoding=rule.编码||rule.encoding||"utf-8";rule.search_encoding=rule.搜索编码||rule.search_encoding||"";rule.图片来源=rule.图片来源||"";rule.图片替换=rule.图片替换||"";rule.play_json=rule.hasOwnProperty("play_json")?rule.play_json:[];rule.pagecount=rule.hasOwnProperty("pagecount")?rule.pagecount:{};rule.proxy_rule=rule.hasOwnProperty("proxy_rule")?rule.proxy_rule:"";if(!rule.hasOwnProperty("sniffer")){rule.sniffer=false}rule.sniffer=rule.hasOwnProperty("sniffer")?rule.sniffer:"";rule.sniffer=!!(rule.sniffer&&rule.sniffer!=="0"&&rule.sniffer!=="false");rule.isVideo=rule.hasOwnProperty("isVideo")?rule.isVideo:"";if(rule.sniffer&&!rule.isVideo){rule.isVideo="http((?!http).){12,}?\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)\\?.*|http((?!http).){12,}\\.(m3u8|mp4|flv|avi|mkv|rm|wmv|mpg|m4a|mp3)|http((?!http).)*?video/tos*|http((?!http).)*?obj/tos*"}rule.tab_remove=rule.hasOwnProperty("tab_remove")?rule.tab_remove:[];rule.tab_order=rule.hasOwnProperty("tab_order")?rule.tab_order:[];rule.tab_rename=rule.hasOwnProperty("tab_rename")?rule.tab_rename:{};if(rule.headers&&typeof rule.headers==="object"){try{let header_keys=Object.keys(rule.headers);for(let k of header_keys){if(k.toLowerCase()==="user-agent"){let v=rule.headers[k];console.log(v);if(["MOBILE_UA","PC_UA","UC_UA","IOS_UA","UA"].includes(v)){rule.headers[k]=eval(v)}}else if(k.toLowerCase()==="cookie"){let v=rule.headers[k];if(v&&v.startsWith("http")){console.log(v);try{v=fetch(v);console.log(v);rule.headers[k]=v}catch(e){console.log(`从${v}获取cookie发生错误:${e.message}`)}}}}}catch(e){console.log(`处理headers发生错误:${e.message}`)}}rule_fetch_params={headers:rule.headers||false,timeout:rule.timeout,encoding:rule.encoding};oheaders=rule.headers||{};RKEY=typeof key!=="undefined"&&key?key:"drpy_"+(rule.title||rule.host);pre();init_test()}catch(e){console.log(`init_test发生错误:${e.message}`)}}let homeHtmlCache=undefined;function home(filter,home_html,class_parse){console.log("home");home_html=home_html||"";class_parse=class_parse||"";if(typeof rule.filter==="string"&&rule.filter.trim().length>0){try{let filter_json=ungzip(rule.filter.trim());rule.filter=JSON.parse(filter_json)}catch(e){rule.filter={}}}let homeObj={filter:rule.filter||false,MY_URL:rule.homeUrl,class_name:rule.class_name||"",class_url:rule.class_url||"",class_parse:class_parse||rule.class_parse||"",cate_exclude:rule.cate_exclude,home_html:home_html};return homeParse(homeObj)}function homeVod(params){console.log("homeVod");let homeVodObj={"推荐":rule.推荐,double:rule.double,homeUrl:rule.homeUrl,detailUrl:rule.detailUrl};return homeVodParse(homeVodObj)}function category(tid,pg,filter,extend){let cateObj={url:rule.url,"一级":rule.一级,tid:tid,pg:parseInt(pg),filter:filter,extend:extend};return categoryParse(cateObj)}function detail(vod_url){let orId=vod_url;let fyclass="";log("orId:"+orId);if(vod_url.indexOf("$")>-1){let tmp=vod_url.split("$");fyclass=tmp[0];vod_url=tmp[1]}let detailUrl=vod_url.split("@@")[0];let url;if(!detailUrl.startsWith("http")&&!detailUrl.includes("/")){url=rule.detailUrl.replaceAll("fyid",detailUrl).replaceAll("fyclass",fyclass)}else if(detailUrl.includes("/")){url=urljoin(rule.homeUrl,detailUrl)}else{url=detailUrl}let detailObj={orId:orId,url:url,"二级":rule.二级,"二级访问前":rule.二级访问前,detailUrl:detailUrl,fyclass:fyclass,tab_exclude:rule.tab_exclude};return detailParse(detailObj)}function play(flag,id,flags){let playObj={url:id,flag:flag,flags:flags};return playParse(playObj)}function search(wd,quick,pg){if(rule.search_encoding){if(rule.search_encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.search_encoding)}}else if(rule.encoding&&rule.encoding.toLowerCase()!=="utf-8"){wd=encodeStr(wd,rule.encoding)}let searchObj={searchUrl:rule.searchUrl,"搜索":rule.搜索,wd:wd,pg:pg||1,quick:quick};return searchParse(searchObj)}function proxy(params){if(rule.proxy_rule&&rule.proxy_rule.trim()){rule.proxy_rule=rule.proxy_rule.trim()}if(rule.proxy_rule.startsWith("js:")){rule.proxy_rule=rule.proxy_rule.replace("js:","")}let proxyObj={params:params,proxy_rule:rule.proxy_rule};return proxyParse(proxyObj)}function sniffer(){let enable_sniffer=rule.sniffer||false;if(enable_sniffer){log("开始执行辅助嗅探代理规则...")}return enable_sniffer}function isVideo(url){let t=0;let is_video;if(rule.isVideo&&rule.isVideo.trim()){is_video=rule.isVideo.trim()}if(is_video.startsWith("js:")){is_video=is_video.replace("js:","");t=1}let isVideoObj={url:url,isVideo:is_video,t:t};let result=isVideoParse(isVideoObj);if(result){log("成功执行辅助嗅探规则并检测到视频地址:\n"+rule.isVideo)}return result}function getRule(key){return key?rule[key]||"":rule}function DRPY(){return{runMain:runMain,getRule:getRule,init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,fixAdM3u8Ai:fixAdM3u8Ai}}export default{runMain:runMain,getRule:getRule,init:init,home:home,homeVod:homeVod,category:category,detail:detail,play:play,search:search,proxy:proxy,sniffer:sniffer,isVideo:isVideo,fixAdM3u8Ai:fixAdM3u8Ai,DRPY:DRPY};
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/gbk.js b/tvboxqq/摸鱼儿/api/gbk.js
deleted file mode 100644
index 796d53a..0000000
--- a/tvboxqq/摸鱼儿/api/gbk.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/***
- * gbk编码解码函数
- * strTool = gbkTool() strTool.encode(key)
- * @returns {{encode: (function(*): *), decode: (function(*): *)}}
- */
-export function gbkTool(){
- var data=function(zipData){
- var re=zipData
- .replace(/#(\d+)\$/g,function(a,b){
- return Array(+b+3).join('#');
- })
- .replace(/#/g,'####')
- .replace(/(\w\w):([\w#]+)(?:,|$)/g,function(a,hd,dt){
- return dt.replace(/../g,function(a){
- if(a!='##'){
- return hd+a;
- }else{
- return a;
- }
- });
- });
- return re;
- }('4e:020405060f12171f20212326292e2f313335373c40414244464a5155575a5b6263646567686a6b6c6d6e6f727475767778797a7b7c7d7f808182838485878a#909697999c9d9ea3aaafb0b1b4b6b7b8b9bcbdbec8cccfd0d2dadbdce0e2e6e7e9edeeeff1f4f8f9fafcfe,4f:00020304050607080b0c12131415161c1d212328292c2d2e31333537393b3e3f40414244454748494a4b4c525456616266686a6b6d6e7172757778797a7d8081828586878a8c8e909293959698999a9c9e9fa1a2a4abadb0b1b2b3b4b6b7b8b9babbbcbdbec0c1c2c6c7c8c9cbcccdd2d3d4d5d6d9dbe0e2e4e5e7ebecf0f2f4f5f6f7f9fbfcfdff,50:000102030405060708090a#0b0e1011131516171b1d1e20222324272b2f303132333435363738393b3d3f404142444546494a4b4d5051525354565758595b5d5e5f6061626364666768696a6b6d6e6f70717273747578797a7c7d818283848687898a8b8c8e8f909192939495969798999a9b9c9d9e9fa0a1a2a4a6aaabadaeafb0b1b3b4b5b6b7b8b9bcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdced0d1d2d3d4d5d7d8d9dbdcdddedfe0e1e2e3e4e5e8e9eaebeff0f1f2f4f6f7f8f9fafcfdfeff,51:00010203040508#090a0c0d0e0f1011131415161718191a1b1c1d1e1f2022232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e42474a4c4e4f5052535758595b5d5e5f606163646667696a6f727a7e7f838486878a8b8e8f90919394989a9d9e9fa1a3a6a7a8a9aaadaeb4b8b9babebfc1c2c3c5c8cacdced0d2d3d4d5d6d7d8d9dadcdedfe2e3e5e6e7e8e9eaeceef1f2f4f7fe,52:0405090b0c0f101314151c1e1f2122232526272a2c2f313234353c3e4445464748494b4e4f5253555758#595a5b5d5f6062636466686b6c6d6e7071737475767778797a7b7c7e808384858687898a8b8c8d8e8f91929495969798999a9ca4a5a6a7aeafb0b4b5b6b7b8b9babbbcbdc0c1c2c4c5c6c8cacccdcecfd1d3d4d5d7d9dadbdcdddee0e1e2e3e5e6e7e8e9eaebecedeeeff1f2f3f4f5f6f7f8fbfcfd,53:0102030407090a0b0c0e11121314181b1c1e1f2224252728292b2c2d2f3031323334353637383c3d404244464b4c4d505458595b5d65686a6c6d7276797b7c7d7e80818387888a8e8f#90919293949697999b9c9ea0a1a4a7aaabacadafb0b1b2b3b4b5b7b8b9babcbdbec0c3c4c5c6c7cecfd0d2d3d5dadcdddee1e2e7f4fafeff,54:000205070b1418191a1c2224252a303336373a3d3f4142444547494c4d4e4f515a5d5e5f6061636567696a6b6c6d6e6f7074797a7e7f8183858788898a8d919397989c9e9fa0a1a2a5aeb0b2b5b6b7b9babcbec3c5cacbd6d8dbe0e1e2e3e4ebeceff0f1f4f5f6f7f8f9fbfe,55:0002030405080a0b0c0d0e121315161718191a1c1d1e1f212526#28292b2d3234353638393a3b3d40424547484b4c4d4e4f515253545758595a5b5d5e5f60626368696b6f7071727374797a7d7f85868c8d8e9092939596979a9b9ea0a1a2a3a4a5a6a8a9aaabacadaeafb0b2b4b6b8babcbfc0c1c2c3c6c7c8cacbcecfd0d5d7d8d9dadbdee0e2e7e9edeef0f1f4f6f8f9fafbfcff,56:0203040506070a0b0d1011121314151617191a1c1d202122252628292a2b2e2f30333537383a3c3d3e404142434445464748494a4b4f5051525355565a5b5d5e5f6061#636566676d6e6f70727374757778797a7d7e7f80818283848788898a8b8c8d9091929495969798999a9b9c9d9e9fa0a1a2a4a5a6a7a8a9aaabacadaeb0b1b2b3b4b5b6b8b9babbbdbebfc0c1c2c3c4c5c6c7c8c9cbcccdcecfd0d1d2d3d5d6d8d9dce3e5e6e7e8e9eaeceeeff2f3f6f7f8fbfc,57:00010205070b0c0d0e0f101112131415161718191a1b1d1e202122242526272b313234353637383c3d3f414344454648494b52535455565859626365676c6e707172747578797a7d7e7f80#818788898a8d8e8f90919495969798999a9c9d9e9fa5a8aaacafb0b1b3b5b6b7b9babbbcbdbebfc0c1c4c5c6c7c8c9cacccdd0d1d3d6d7dbdcdee1e2e3e5e6e7e8e9eaebeceef0f1f2f3f5f6f7fbfcfeff,58:0103040508090a0c0e0f101213141617181a1b1c1d1f222325262728292b2c2d2e2f31323334363738393a3b3c3d3e3f4041424345464748494a4b4e4f505253555657595a5b5c5d5f6061626364666768696a6d6e6f707172737475767778797a7b7c7d7f82848687888a8b8c#8d8e8f909194959697989b9c9da0a1a2a3a4a5a6a7aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbdbebfc0c2c3c4c6c7c8c9cacbcccdcecfd0d2d3d4d6d7d8d9dadbdcdddedfe0e1e2e3e5e6e7e8e9eaedeff1f2f4f5f7f8fafbfcfdfeff,59:000103050608090a0b0c0e1011121317181b1d1e2021222326282c30323335363b3d3e3f404345464a4c4d505253595b5c5d5e5f616364666768696a6b6c6d6e6f70717275777a7b7c7e7f8085898b8c8e8f90919495989a9b9c9d9fa0a1a2a6#a7acadb0b1b3b4b5b6b7b8babcbdbfc0c1c2c3c4c5c7c8c9cccdcecfd5d6d9dbdedfe0e1e2e4e6e7e9eaebedeeeff0f1f2f3f4f5f6f7f8fafcfdfe,5a:00020a0b0d0e0f101214151617191a1b1d1e2122242627282a2b2c2d2e2f3033353738393a3b3d3e3f414243444547484b4c4d4e4f5051525354565758595b5c5d5e5f60616364656668696b6c6d6e6f7071727378797b7c7d7e808182838485868788898a8b8c8d8e8f9091939495969798999c9d9e9fa0a1a2a3a4a5a6a7a8a9abac#adaeafb0b1b4b6b7b9babbbcbdbfc0c3c4c5c6c7c8cacbcdcecfd0d1d3d5d7d9dadbdddedfe2e4e5e7e8eaecedeeeff0f2f3f4f5f6f7f8f9fafbfcfdfeff,5b:0001020304050607080a0b0c0d0e0f10111213141518191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303133353638393a3b3c3d3e3f4142434445464748494a4b4c4d4e4f52565e606167686b6d6e6f7274767778797b7c7e7f82868a8d8e90919294969fa7a8a9acadaeafb1b2b7babbbcc0c1c3c8c9cacbcdcecf#d1d4d5d6d7d8d9dadbdce0e2e3e6e7e9eaebecedeff1f2f3f4f5f6f7fdfe,5c:0002030507080b0c0d0e10121317191b1e1f2021232628292a2b2d2e2f303233353637434446474c4d5253545657585a5b5c5d5f62646768696a6b6c6d70727374757677787b7c7d7e808384858687898a8b8e8f9293959d9e9fa0a1a4a5a6a7a8aaaeafb0b2b4b6b9babbbcbec0c2c3c5c6c7c8c9cacccdcecfd0d1d3d4d5d6d7d8dadbdcdddedfe0e2e3e7e9ebeceeeff1f2f3f4f5f6f7f8f9fafcfdfeff,5d:00#01040508090a0b0c0d0f10111213151718191a1c1d1f2021222325282a2b2c2f3031323335363738393a3b3c3f4041424344454648494d4e4f5051525354555657595a5c5e5f6061626364656667686a6d6e7071727375767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f9091929394959697989a9b9c9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b8b9babbbcbdbebfc0c1c2c3c4c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d7d8d9dadcdfe0e3e4eaeced#f0f5f6f8f9fafbfcff,5e:000407090a0b0d0e1213171e1f20212223242528292a2b2c2f303233343536393a3e3f404143464748494a4b4d4e4f50515253565758595a5c5d5f60636465666768696a6b6c6d6e6f70717577797e8182838588898c8d8e92989b9da1a2a3a4a8a9aaabacaeafb0b1b2b4babbbcbdbfc0c1c2c3c4c5c6c7c8cbcccdcecfd0d4d5d7d8d9dadcdddedfe0e1e2e3e4e5e6e7e9ebecedeeeff0f1f2f3f5f8f9fbfcfd,5f:050607090c0d0e10121416191a1c1d1e21222324#282b2c2e30323334353637383b3d3e3f4142434445464748494a4b4c4d4e4f5154595a5b5c5e5f60636567686b6e6f72747576787a7d7e7f83868d8e8f919394969a9b9d9e9fa0a2a3a4a5a6a7a9abacafb0b1b2b3b4b6b8b9babbbebfc0c1c2c7c8cacbced3d4d5dadbdcdedfe2e3e5e6e8e9eceff0f2f3f4f6f7f9fafc,60:0708090b0c10111317181a1e1f2223242c2d2e3031323334363738393a3d3e404445464748494a4c4e4f5153545657585b5c5e5f606165666e71727475777e80#8182858687888a8b8e8f909193959798999c9ea1a2a4a5a7a9aaaeb0b3b5b6b7b9babdbebfc0c1c2c3c4c7c8c9cccdcecfd0d2d3d4d6d7d9dbdee1e2e3e4e5eaf1f2f5f7f8fbfcfdfeff,61:02030405070a0b0c1011121314161718191b1c1d1e21222528292a2c2d2e2f303132333435363738393a3b3c3d3e4041424344454647494b4d4f50525354565758595a5b5c5e5f606163646566696a6b6c6d6e6f717273747678797a7b7c7d7e7f808182838485868788898a8c8d8f9091929395#969798999a9b9c9e9fa0a1a2a3a4a5a6aaabadaeafb0b1b2b3b4b5b6b8b9babbbcbdbfc0c1c3c4c5c6c7c9cccdcecfd0d3d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e7e8e9eaebecedeeeff0f1f2f3f4f6f7f8f9fafbfcfdfe,62:00010203040507091314191c1d1e2023262728292b2d2f303132353638393a3b3c424445464a4f50555657595a5c5d5e5f6061626465687172747577787a7b7d818283858687888b8c8d8e8f9094999c9d9ea3a6a7a9aaadaeafb0b2b3b4b6b7b8babec0c1#c3cbcfd1d5dddee0e1e4eaebf0f2f5f8f9fafb,63:00030405060a0b0c0d0f10121314151718191c2627292c2d2e30313334353637383b3c3e3f40414447484a51525354565758595a5b5c5d60646566686a6b6c6f707273747578797c7d7e7f81838485868b8d9193949597999a9b9c9d9e9fa1a4a6abafb1b2b5b6b9bbbdbfc0c1c2c3c5c7c8cacbccd1d3d4d5d7d8d9dadbdcdddfe2e4e5e6e7e8ebeceeeff0f1f3f5f7f9fafbfcfe,64:0304060708090a0d0e111215161718191a1d1f222324#252728292b2e2f3031323335363738393b3c3e404243494b4c4d4e4f505153555657595a5b5c5d5f60616263646566686a6b6c6e6f70717273747576777b7c7d7e7f8081838688898a8b8c8d8e8f90939497989a9b9c9d9fa0a1a2a3a5a6a7a8aaabafb1b2b3b4b6b9bbbdbebfc1c3c4c6c7c8c9cacbcccfd1d3d4d5d6d9dadbdcdddfe0e1e3e5e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,65:01020304050607080a0b0c0d0e0f10111314151617191a1b1c1d1e1f2021#222324262728292a2c2d30313233373a3c3d404142434446474a4b4d4e5052535457585a5c5f606164656768696a6d6e6f7173757678797a7b7c7d7e7f8081828384858688898a8d8e8f92949596989a9d9ea0a2a3a6a8aaacaeb1b2b3b4b5b6b7b8babbbebfc0c2c7c8c9cacdd0d1d3d4d5d8d9dadbdcdddedfe1e3e4eaebf2f3f4f5f8f9fbfcfdfeff,66:0104050708090b0d1011121617181a1b1c1e2122232426292a2b2c2e3032333738393a3b3d3f40424445464748494a4d4e505158#595b5c5d5e6062636567696a6b6c6d7172737578797b7c7d7f808183858688898a8b8d8e8f909293949598999a9b9c9e9fa0a1a2a3a4a5a6a9aaabacadafb0b1b2b3b5b6b7b8babbbcbdbfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8dadedfe0e1e2e3e4e5e7e8eaebecedeeeff1f5f6f8fafbfd,67:010203040506070c0e0f1112131618191a1c1e20212223242527292e303233363738393b3c3e3f414445474a4b4d5254555758595a5b5d62636466676b6c6e717476#78797a7b7d8082838586888a8c8d8e8f9192939496999b9fa0a1a4a6a9acaeb1b2b4b9babbbcbdbebfc0c2c5c6c7c8c9cacbcccdced5d6d7dbdfe1e3e4e6e7e8eaebedeef2f5f6f7f8f9fafbfcfe,68:01020304060d1012141518191a1b1c1e1f20222324252627282b2c2d2e2f30313435363a3b3f474b4d4f52565758595a5b5c5d5e5f6a6c6d6e6f707172737578797a7b7c7d7e7f8082848788898a8b8c8d8e90919294959698999a9b9c9d9e9fa0a1a3a4a5a9aaabacaeb1b2b4b6b7b8#b9babbbcbdbebfc1c3c4c5c6c7c8cacccecfd0d1d3d4d6d7d9dbdcdddedfe1e2e4e5e6e7e8e9eaebecedeff2f3f4f6f7f8fbfdfeff,69:00020304060708090a0c0f11131415161718191a1b1c1d1e21222325262728292a2b2c2e2f313233353637383a3b3c3e4041434445464748494a4b4c4d4e4f50515253555658595b5c5f616264656768696a6c6d6f7072737475767a7b7d7e7f8183858a8b8c8e8f909192939697999a9d9e9fa0a1a2a3a4a5a6a9aaacaeafb0b2b3b5b6b8b9babcbd#bebfc0c2c3c4c5c6c7c8c9cbcdcfd1d2d3d5d6d7d8d9dadcdddee1e2e3e4e5e6e7e8e9eaebeceeeff0f1f3f4f5f6f7f8f9fafbfcfe,6a:000102030405060708090b0c0d0e0f10111213141516191a1b1c1d1e20222324252627292b2c2d2e30323334363738393a3b3c3f40414243454648494a4b4c4d4e4f515253545556575a5c5d5e5f60626364666768696a6b6c6d6e6f70727374757677787a7b7d7e7f81828385868788898a8b8c8d8f929394959698999a9b9c9d9e9fa1a2a3a4a5a6#a7a8aaadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,6b:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f252628292a2b2c2d2e2f303133343536383b3c3d3f4041424445484a4b4d4e4f5051525354555657585a5b5c5d5e5f606168696b6c6d6e6f7071727374757677787a7d7e7f808588#8c8e8f909194959798999c9d9e9fa0a2a3a4a5a6a7a8a9abacadaeafb0b1b2b6b8b9babbbcbdbec0c3c4c6c7c8c9caccced0d1d8dadcdddedfe0e2e3e4e5e6e7e8e9ecedeef0f1f2f4f6f7f8fafbfcfeff,6c:000102030408090a0b0c0e12171c1d1e2023252b2c2d31333637393a3b3c3e3f434445484b4c4d4e4f5152535658595a62636566676b6c6d6e6f71737577787a7b7c7f8084878a8b8d8e9192959697989a9c9d9ea0a2a8acafb0b4b5b6b7bac0c1c2c3c6c7c8cbcdcecfd1d2d8#d9dadcdddfe4e6e7e9ecedf2f4f9ff,6d:000203050608090a0d0f101113141516181c1d1f20212223242628292c2d2f30343637383a3f404244494c50555657585b5d5f6162646567686b6c6d707172737576797a7b7d7e7f8081838486878a8b8d8f9092969798999a9ca2a5acadb0b1b3b4b6b7b9babbbcbdbec1c2c3c8c9cacdcecfd0d2d3d4d5d7dadbdcdfe2e3e5e7e8e9eaedeff0f2f4f5f6f8fafdfeff,6e:0001020304060708090b0f12131518191b1c1e1f222627282a2c2e30313335#3637393b3c3d3e3f40414245464748494a4b4c4f5051525557595a5c5d5e606162636465666768696a6c6d6f707172737475767778797a7b7c7d8081828487888a8b8c8d8e91929394959697999a9b9d9ea0a1a3a4a6a8a9abacadaeb0b3b5b8b9bcbebfc0c3c4c5c6c8c9cacccdced0d2d6d8d9dbdcdde3e7eaebecedeeeff0f1f2f3f5f6f7f8fafbfcfdfeff,6f:000103040507080a0b0c0d0e101112161718191a1b1c1d1e1f212223252627282c2e303234353738393a3b3c3d3f404142#43444548494a4c4e4f5051525354555657595a5b5d5f60616364656768696a6b6c6f707173757677797b7d7e7f808182838586878a8b8f909192939495969798999a9b9d9e9fa0a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b7b8babbbcbdbebfc1c3c4c5c6c7c8cacbcccdcecfd0d3d4d5d6d7d8d9dadbdcdddfe2e3e4e5e6e7e8e9eaebecedf0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,70:000102030405060708090a0b0c0d0e0f1012131415161718191c1d1e1f2021222425262728292a#2b2c2d2e2f30313233343637383a3b3c3d3e3f404142434445464748494a4b4d4e505152535455565758595a5b5c5d5f606162636465666768696a6e7172737477797a7b7d818283848687888b8c8d8f90919397989a9b9e9fa0a1a2a3a4a5a6a7a8a9aab0b2b4b5b6babebfc4c5c6c7c9cbcccdcecfd0d1d2d3d4d5d6d7dadcdddee0e1e2e3e5eaeef0f1f2f3f4f5f6f8fafbfcfeff,71:0001020304050607080b0c0d0e0f111214171b1c1d1e1f2021222324252728292a2b2c2d2e323334#353738393a3b3c3d3e3f4041424344464748494b4d4f505152535455565758595a5b5d5f6061626365696a6b6c6d6f707174757677797b7c7e7f8081828385868788898b8c8d8e909192939596979a9b9c9d9ea1a2a3a4a5a6a7a9aaabadaeafb0b1b2b4b6b7b8babbbcbdbebfc0c1c2c4c5c6c7c8c9cacbcccdcfd0d1d2d3d6d7d8d9dadbdcdddedfe1e2e3e4e6e8e9eaebecedeff0f1f2f3f4f5f6f7f8fafbfcfdfeff,72:0001020304050708090a0b0c0d0e0f101112131415161718191a#1b1c1e1f2021222324252627292b2d2e2f3233343a3c3e40414243444546494a4b4e4f505153545557585a5c5e60636465686a6b6c6d707173747677787b7c7d828385868788898c8e9091939495969798999a9b9c9d9ea0a1a2a3a4a5a6a7a8a9aaabaeb1b2b3b5babbbcbdbebfc0c5c6c7c9cacbcccfd1d3d4d5d6d8dadb#95$,30:000102,00b702:c9c7,00a830:0305,2014ff5e20:162618191c1d,30:141508090a0b0c0d0e0f16171011,00:b1d7f7,22:362728110f2a2908371aa52520,231222:992b2e614c483d1d606e6f64651e3534,26:4240,00b020:3233,2103ff0400a4ff:e0e1,203000a7211626:0605,25:cbcfcec7c6a1a0b3b2,203b21:92909193,30:13#95$,21:70717273747576777879#4$,24:88898a8b8c8d8e8f909192939495969798999a9b7475767778797a7b7c7d7e7f808182838485868760616263646566676869##,32:20212223242526272829##,21:606162636465666768696a6b#97$,ff:010203e505060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5de3#95$,30:4142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f90919293#106$a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6#103$,03:9192939495969798999a9b9c9d9e9fa0a1a3a4a5a6a7a8a9#6$b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c3c4c5c6c7c8c9#5$,fe:3536393a3f403d3e41424344##3b3c373831#3334#104$,04:10111213141501161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f#13$30313233343551363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f#11$,02:cacbd9,20:13152535,21:050996979899,22:151f23526667bf,25:505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727381828384858687#88898a8b8c8d8e8f939495bcbde2e3e4e5,2609229530:121d1e#9$,010100e101ce00e0011300e9011b00e8012b00ed01d000ec014d00f301d200f2016b00fa01d400f901:d6d8dadc,00:fcea,0251e7c701:4448,e7c802:61#2$,31:05060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223242526272829#19$,30:212223242526272829,32a333:8e8f9c9d9ea1c4ced1d2d5,fe30ff:e2e4#,212132:31#,20:10#1$,30:fc9b9cfdfe069d9e,fe:494a4b4c4d4e4f50515254555657595a5b5c5d5e5f6061#626364656668696a6b,e7:e7e8e9eaebecedeeeff0f1f2f3,30:07#11$,25:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b#13$,72:dcdddfe2e3e4e5e6e7eaebf5f6f9fdfeff,73:00020405060708090b0c0d0f1011121418191a1f2023242627282d2f30323335363a3b3c3d404142434445464748#494a4b4c4e4f515354555658595a5b5c5d5e5f6162636465666768696a6b6e7071#92$72737475767778797a7b7c7d7f808182838586888a8c8d8f90929394959798999a9c9d9ea0a1a3a4a5a6a7a8aaacadb1b4b5b6b8b9bcbdbebfc1c3c4c5c6c7#cbccced2d3d4d5d6d7d8dadbdcdddfe1e2e3e4e6e8eaebeceeeff0f1f3f4f5f6f7#92$f8f9fafbfcfdfeff,74:0001020407080b0c0d0e1112131415161718191c1d1e1f2021232427292b2d2f31323738393a3b3d3e3f4042434445464748494a4b4c4d#4e4f505152535456585d606162636465666768696a6b6c6e6f717273747578797a#92$7b7c7d7f8284858688898a8c8d8f9192939495969798999a9b9d9fa0a1a2a3a4a5a6aaabacadaeafb0b1b2b3b4b5b6b7b8b9bbbcbdbebfc0c1c2c3c4c5c6c7#c8c9cacbcccdcecfd0d1d3d4d5d6d7d8d9dadbdddfe1e5e7e8e9eaebecedf0f1f2#92$f3f5f8f9fafbfcfdfe,75:0001020305060708090a0b0c0e1012141516171b1d1e202122232426272a2e3436393c3d3f414243444647494a4d5051525355565758#5d5e5f60616263646768696b6c6d6e6f7071737576777a7b7c7d7e808182848587#92$88898a8c8d8e909395989b9c9ea2a6a7a8a9aaadb6b7babbbfc0c1c6cbcccecfd0d1d3d7d9dadcdddfe0e1e5e9ecedeeeff2f3f5f6f7f8fafbfdfe,76:02040607#08090b0d0e0f11121314161a1c1d1e212327282c2e2f31323637393a3b3d414244#92$45464748494a4b4e4f50515253555758595a5b5d5f6061626465666768696a6c6d6e7071727374757677797a7c7f80818385898a8c8d8f9092949597989a9b#9c9d9e9fa0a1a2a3a5a6a7a8a9aaabacadafb0b3b5b6b7b8b9babbbcbdbec0c1c3,554a963f57c3632854ce550954c076:914c,853c77ee827e788d72319698978d6c285b894ffa630966975cb880fa684880ae660276ce51f9655671ac7ff1888450b2596561ca6fb382ad634c625253ed54277b06516b75a45df462d48dcb9776628a8019575d97387f627238767d67cf767e64464f708d2562dc7a17659173ed642c6273822c9881677f724862:6ecc,4f3474e3534a529e7eca90a65e2e6886699c81807ed168d278c5868c9551508d8c2482de80de53058912526576:c4c7c9cbccd3d5d9dadcdddee0e1e2e3e4e6e7e8e9eaebecedf0f3f5f6f7fafbfdff,77:00020305060a0c0e0f1011121314151617181b1c1d1e21232425272a2b#2c2e3031323334393b3d3e3f4244454648494a4b4c4d4e4f52535455565758595c,858496f94fdd582199715b9d62:b1a5,66b48c799c8d7206676f789160b253:5117,8f8880cc8d1d94a1500d72c8590760eb711988ab595482ef672c7b285d297ef7752d6cf58e668ff8903c9f3b6bd491197b145f7c78a784d6853d6b:d5d9d6,5e:0187,75f995ed655d5f:0ac5,8f9f58c181c2907f965b97ad8fb97f168d2c62414fbf53:d85e,8f:a8a9ab,904d68075f6a819888689cd6618b522b762a5f6c658c6fd26ee85bbe644851:75b0,67c44e1979c9997c70b377:5d5e5f606467696a6d6e6f7071727374757677787a7b7c818283868788898a8b8f90939495969798999a9b9c9d9ea1a3a4a6a8abadaeafb1b2b4b6b7b8b9ba#bcbec0c1c2c3c4c5c6c7c8c9cacbcccecfd0d1d2d3d4d5d6d8d9dadddedfe0e1e4,75c55e7673bb83e064ad62e894b56ce2535a52c3640f94c27b944f2f5e1b823681:168a,6e246cca9a736355535c54fa886557e04e0d5e036b657c3f90e8601664e6731c88c16750624d8d22776c8e2991c75f6983dc8521991053c286956b8b60:ede8,707f82:cd31,4ed36ca785cf64cd7cd969fd66f9834953957b564fa7518c6d4b5c428e6d63d253c983:2c36,67e578b4643d5bdf5c945dee8be762c667f48c7a640063ba8749998b8c177f2094f24ea7961098a4660c731677:e6e8eaeff0f1f2f4f5f7f9fafbfc,78:0304050607080a0b0e0f101315191b1e20212224282a2b2e2f31323335363d3f414243444648494a4b4d4f51535458595a#5b5c5e5f606162636465666768696f7071727374757678797a7b7d7e7f80818283,573a5c1d5e38957f507f80a05382655e7545553150218d856284949e671d56326f6e5de2543570928f66626f64a463a35f7b6f8890f481e38fb05c1866685ff16c8996488d81886c649179f057ce6a59621054484e587a0b60e96f848bda627f901e9a8b79e4540375f4630153196c608fdf5f1b9a70803b9f7f4f885c3a8d647fc565a570bd51:45b2,866b5d075ba062bd916c75748e0c7a2061017b794ec77ef877854e1181ed521d51fa6a7153a88e87950496cf6ec19664695a78:848586888a8b8f9092949596999d9ea0a2a4a6a8a9aaabacadaeafb5b6b7b8babbbcbdbfc0c2c3c4c6c7c8cccdcecfd1d2d3d6d7d8dadbdcdddedfe0e1e2e3#e4e5e6e7e9eaebedeeeff0f1f3f5f6f8f9fbfcfdfeff,79:00020304060708090a0b0c,784050a877d7641089e6590463e35ddd7a7f693d4f20823955984e3275ae7a975e:628a,95ef521b5439708a6376952457826625693f918755076df37eaf882262337ef075b5832878c196cc8f9e614874f78bcd6b64523a8d506b21806a847156f153064e:ce1b,51d17c97918b7c074fc38e7f7be17a9c64675d1450ac810676017cb96dec7fe067515b:58f8,78cb64:ae13,63:aa2b,9519642d8fbe7b5476296253592754466b7950a362345e266b864ee38d37888b5f85902e79:0d0e0f1011121415161718191a1b1c1d1f2021222325262728292a2b2c2d2e2f3031323335363738393d3f42434445474a4b4c4d4e4f505152545558596163#6466696a6b6c6e70717273747576797b7c7d7e7f8283868788898b8c8d8e909192,6020803d62c54e39535590f863b880c665e66c2e4f4660ee6de18bde5f3986cb5f536321515a83616863520063638e4850125c9b79775bfc52307a3b60bc905376d75f:b797,76848e6c706f767b7b4977aa51f3909358244f4e6ef48fea654c7b1b72c46da47fdf5ae162b55e95573084827b2c5e1d5f1f90127f1498a063826ec7789870b95178975b57ab75354f4375385e9760e659606dc06bbf788953fc96d551cb52016389540a94938c038dcc7239789f87768fed8c0d53e079:939495969798999b9c9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb0b1b2b4b5b6b7b8bcbfc2c4c5c7c8cacccecfd0d3d4d6d7d9dadbdcdddee0e1e2e5e8ea#eceef1f2f3f4f5f6f7f9fafcfeff,7a:0104050708090a0c0f10111213151618191b1c,4e0176ef53ee948998769f0e952d5b9a8ba24e:221c,51ac846361c252a8680b4f97606b51bb6d1e515c6296659796618c46901775d890fd77636bd272:8aec,8bfb583577798d4c675c9540809a5ea66e2159927aef77ed953b6bb565ad7f0e58065151961f5bf958a954288e726566987f56e4949d76fe9041638754c659:1a3a,579b8eb267358dfa8235524160f0581586fe5ce89e454fc4989d8bb95a2560765384627c904f9102997f6069800c513f80335c1499756d314e8c7a:1d1f21222425262728292a2b2c2d2e2f303132343536383a3e4041424344454748494a4b4c4d4e4f50525354555658595a5b5c5d5e5f606162636465666768#696a6b6c6d6e6f717273757b7c7d7e828587898a8b8c8e8f909394999a9b9ea1a2,8d3053d17f5a7b4f4f104e4f96006cd573d085e95e06756a7ffb6a0a77fe94927e4151e170e653cd8fd483038d2972af996d6cdb574a82b365b980aa623f963259a84eff8bbf7eba653e83f2975e556198de80a5532a8bfd542080ba5e9f6cb88d3982ac915a54296c1b52067eb7575f711a6c7e7c89594b4efd5fff61247caa4e305c0167ab87025cf0950b98ce75af70fd902251af7f1d8bbd594951e44f5b5426592b657780a45b7562:76c2,8f905e456c1f7b264f:0fd8,670d7a:a3a4a7a9aaabaeafb0b1b2b4b5b6b7b8b9babbbcbdbec0c1c2c3c4c5c6c7c8c9cacccdcecfd0d1d2d3d4d5d7d8dadbdcdde1e2e4e7e8e9eaebeceef0f1f2f3#f4f5f6f7f8fbfcfe,7b:0001020507090c0d0e1012131617181a1c1d1f21222327292d,6d:6eaa,798f88b15f17752b629a8f854fef91dc65a781:2f51,5e9c81508d74526f89868d4b590d50854ed8961c723681798d1f5bcc8ba3964459877f1a549056:760e,8be565396982949976d66e895e72751867:46d1,7aff809d8d76611f79c665628d635188521a94a27f38809b7eb25c976e2f67607bd9768b9ad8818f7f947cd5641e95507a3f54:4ae5,6b4c640162089e3d80f3759952729769845b683c86e496:0194,94ec4e2a54047ed968398ddf801566f45e9a7fb97b:2f303234353637393b3d3f404142434446484a4d4e535557595c5e5f61636465666768696a6b6c6d6f70737476787a7c7d7f81828384868788898a8b8c8e8f#9192939698999a9b9e9fa0a3a4a5aeafb0b2b3b5b6b7b9babbbcbdbebfc0c2c3c4,57c2803f68975de5653b529f606d9f9a4f9b8eac516c5bab5f135de96c5e62f18d21517194a952fe6c9f82df72d757a267848d2d591f8f9c83c754957b8d4f306cbd5b6459d19f1353e486ca9aa88c3780a16545987e56fa96c7522e74dc52505be1630289024e5662d0602a68fa51735b9851a089c27ba199867f5060ef704c8d2f51495e7f901b747089c4572d78455f529f9f95fa8f689b3c8be17678684267dc8d:ea35,523d8f8a6eda68cd950590ed56fd679c88f98fc754c87b:c5c8c9cacbcdcecfd0d2d4d5d6d7d8dbdcdedfe0e2e3e4e7e8e9ebecedeff0f2f3f4f5f6f8f9fafbfdff,7c:0001020304050608090a0d0e101112131415171819#1a1b1c1d1e20212223242528292b2c2d2e2f3031323334353637393a3b3c3d3e42,9ab85b696d776c264ea55bb39a87916361a890af97e9542b6db55bd251fd558a7f:55f0,64bc634d65f161be608d710a6c:5749,592f676d822a58d5568e8c6a6beb90dd597d801753f76d695475559d83:77cf,683879be548c4f55540876d28c8996026cb36db88d6b89109e648d3a563f9ed175d55f8872e0606854fc4ea86a2a886160528f7054c470d886799e3f6d2a5b8f5f187ea255894faf7334543c539a501954:0e7c,4e4e5ffd745a58f6846b80e1877472d07cca6e567c:434445464748494a4b4c4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f70717275767778797a7e7f8081828384858687#888a8b8c8d8e8f90939496999a9ba0a1a3a6a7a8a9abacadafb0b4b5b6b7b8babb,5f27864e552c62a44e926caa623782b154d7534e733e6ed1753b521253168bdd69d05f8a60006dee574f6b2273af68538fd87f13636260a3552475ea8c6271156da35ba65e7b8352614c9ec478fa87577c27768751f060f6714c66435e4c604d8c0e707063258f895fbd606286d456de6bc160946167534960e066668d3f79fd4f1a70e96c478b:b3f2,7ed88364660f5a5a9b426d:51f7,8c416d3b4f19706b83b7621660d1970d8d27797851fb57:3efa,673a75787a3d79ef7b957c:bfc0c2c3c4c6c9cbcecfd0d1d2d3d4d8dadbdddee1e2e3e4e5e6e7e9eaebecedeef0f1f2f3f4f5f6f7f9fafcfdfeff,7d:000102030405060708090b0c0d0e0f10#1112131415161718191a1b1c1d1e1f212324252628292a2c2d2e30313233343536,808c99658ff96fc08ba59e2159ec7ee97f095409678168d88f917c4d96c653ca602575be6c7253735ac97ea7632451e0810a5df184df628051805b634f0e796d524260b86d4e5b:c4c2,8b:a1b0,65e25fcc964559937e:e7aa,560967b759394f735bb652a0835a988a8d3e753294be50477a3c4ef767b69a7e5ac16b7c76d1575a5c167b3a95f4714e517c80a9827059787f04832768c067ec78:b177,62e363617b804fed526a51cf835069db92748d:f531,89c1952e7bad4ef67d:3738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6f70717273747576#78797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798,506582305251996f6e:1085,6da75efa50f559dc5c066d466c5f7586848b686859568bb253209171964d854969127901712680f64ea490ca6d479a845a0756bc640594f077eb4fa5811a72e189d2997a7f347ede527f655991758f:7f83,53eb7a9663:eda5,768679f888579636622a52ab8282685467706377776b7aed6d017ed389e359d0621285c982a5754c501f4ecb75a58beb5c4a5dfe7b4b65a491d14eca6d25895f7d2795264ec58c288fdb9773664b79818fd170ec6d787d:999a9b9c9d9e9fa0a1a2a3a4a5a7a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9#dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fa,5c3d52b283465162830e775b66769cb84eac60ca7c:beb3,7ecf4e958b66666f988897595883656c955c5f8475c997567a:dfde,51c070af7a9863ea7a767ea0739697ed4e4570784e5d915253a965:51e7,81fc8205548e5c31759a97a062d872d975bd5c459a7983ca5c40548077e94e3e6cae805a62d2636e5de851778ddd8e1e952f4ff153e560e770ac526763509e435a1f5026773753777ee26485652b628963985014723589c951b38bc07edd574783cc94a7519b541b5cfb7d:fbfcfdfeff,7e:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f30313233343536373839#3a3c3d3e3f40424344454648494a4b4c4d4e4f505152535455565758595a5b5c5d,4fca7ae36d5a90e19a8f55805496536154af5f0063e9697751ef6168520a582a52d8574e780d770b5eb761777ce062:5b97,4ea27095800362f770e49760577782db67ef68f578d5989779d158f354b353ef6e34514b523b5ba28bfe80af554357a660735751542d7a7a60505b5463a762a053e362635bc767af54ed7a9f82e691775e9388e4593857ae630e8de880ef57577b774fa95feb5bbd6b3e53217b5072c2684677:ff36,65f751b54e8f76d45cbf7aa58475594e9b4150807e:5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081838485868788898a8b8c8d8e8f909192939495969798999a9c9d9e#aeb4bbbcd6e4ecf9,7f:0a101e37393b3c3d3e3f404143464748494a4b4c4d4e4f5253,998861276e8357646606634656f062:ec69,5ed39614578362c955878721814a8fa3556683b167658d5684dd5a6a680f62e67bee961151706f9c8c3063fd89c861d27f0670c26ee57405699472fc5eca90ce67176d6a635e52b3726280014f6c59e5916a70d96d9d52d24e5096f7956d857e78ca7d2f5121579264c2808b7c7b6cea68f1695e51b7539868a872819ece7bf172f879bb6f137406674e91cc9ca4793c83:8954,540f68174e3d538952b1783e5386522950884f:8bd0,7f:56595b5c5d5e6063646566676b6c6d6f7073757677787a7b7c7d7f8082838485868788898b8d8f9091929395969798999b9ca0a2a3a5a6a8a9aaabacadaeb1#b3b4b5b6b7babbbec0c2c3c4c6c7c8c9cbcdcfd0d1d2d3d6d7d9dadbdcdddee2e3,75e27acb7c926ca596b6529b748354e94fe9805483b28fde95705ec9601c6d9f5e18655b813894fe604b70bc7ec37cae51c968817cb1826f4e248f8691cf667e4eae8c0564a9804a50da759771ce5be58fbd6f664e86648295635ed66599521788c270c852a3730e7433679778f797164e3490bb9cde6dcb51db8d41541d62ce73b283f196f69f8494c34f367f9a51cc707596755cad988653e64ee46e9c740969b4786b998f7559521876246d4167f3516d9f99804b54997b3c7abf7f:e4e7e8eaebecedeff2f4f5f6f7f8f9fafdfeff,80:020708090a0e0f11131a1b1d1e1f2123242b2c2d2e2f303234393a3c3e404144454748494e4f505153555657#595b5c5d5e5f6061626364656667686b6c6d6e6f7072737475767778797a7b7c7d,9686578462e29647697c5a0464027bd36f0f964b82a6536298855e90708963b35364864f9c819e93788c97328d:ef42,9e7f6f5e79845f559646622e9a74541594dd4fa365c55c:6561,7f1586516c2f5f8b73876ee47eff5ce6631b5b6a6ee653754e7163a0756562a18f6e4f264ed16ca67eb68bba841d87ba7f57903b95237ba99aa188f8843d6d1b9a867edc59889ebb739b780186829a:6c82,561b541757cb4e709ea653568fc881097792999286ee6ee1851366fc61626f2b80:7e818285888a8d8e8f909192949597999ea3a6a7a8acb0b3b5b6b8b9bbc5c7c8c9cacbcfd0d1d2d3d4d5d8dfe0e2e3e6eef5f7f9fbfeff,81:000103040507080b#0c1517191b1c1d1f202122232425262728292a2b2d2e3033343537393a3b3c3d3f,8c298292832b76f26c135fd983bd732b8305951a6bdb77db94c6536f830251925e3d8c8c8d384e4873ab679a68859176970971646ca177095a9295416bcf7f8e66275bd059b95a9a95:e8f7,4eec84:0c99,6aac76df9530731b68a65b5f772f919a97617cdc8ff78c1c5f257c7379d889c56ccc871c5bc65e4268c977207ef551:954d,52c95a297f05976282d763cf778485d079d26e3a5e9959998511706d6c1162bf76bf654f60af95fd660e879f9e2394ed54:0d7d,8c2c647881:40414243444547494d4e4f525657585b5c5d5e5f6162636466686a6b6c6f727375767778818384858687898b8c8d8e90929394959697999a9e9fa0a1a2a4a5#a7a9abacadaeafb0b1b2b4b5b6b7b8b9bcbdbebfc4c5c7c8c9cbcdcecfd0d1d2d3,647986116a21819c78e864699b5462b9672b83ab58a89ed86cab6f205bde964c8c0b725f67d062c772614ea959c66bcd589366ae5e5552df6155672876ee776672677a4662ff54:ea50,94a090a35a1c7eb36c164e435976801059485357753796be56ca63208111607c95f96dd65462998151855ae980fd59ae9713502a6ce55c3c62df4f60533f817b90066eba852b62c85e7478be64b5637b5ff55a18917f9e1f5c3f634f80425b7d556e95:4a4d,6d8560a867e072de51dd5b8181:d4d5d6d7d8d9dadbdcdddedfe0e1e2e4e5e6e8e9ebeeeff0f1f2f5f6f7f8f9fafdff,82:030708090a0b0e0f111315161718191a1d2024252627292e323a3c3d3f#404142434546484a4c4d4e5051525354555657595b5c5d5e606162636465666769,62e76cde725b626d94ae7ebd81136d53519c5f04597452aa6012597366968650759f632a61e67cef8bfa54e66b279e256bb485d5545550766ca4556a8db4722c5e156015743662cd6392724c5f986e436d3e65006f5876d878d076fc7554522453db4e535e9e65c180:2ad6,629b5486522870ae888d8dd16ce1547880da57f988f48d54966a914d4f696c9b55b776c6783062a870f96f8e5f6d84ec68da787c7bf781a8670b9e4f636778b0576f7812973962:79ab,528874356bd782:6a6b6c6d71757677787b7c808183858687898c90939495969a9b9ea0a2a3a7b2b5b6babbbcbfc0c2c3c5c6c9d0d6d9dadde2e7e8e9eaecedeef0f2f3f5f6f8#fafcfdfeff,83:000a0b0d1012131618191d1e1f20212223242526292a2e3032373b3d,5564813e75b276ae533975de50fb5c418b6c7bc7504f72479a9798d86f0274e27968648777a562fc98918d2b54c180584e52576a82f9840d5e7351ed74f68bc45c4f57616cfc98875a4678349b448feb7c955256625194fa4ec68386846183e984b257d467345703666e6d668c3166dd7011671f6b3a6816621a59bb4e0351c46f0667d26c8f517668cb59476b6775665d0e81109f5065d779:4841,9a918d775c824e5e4f01542f5951780c56686c148fc45f036c:7de3,8bab639083:3e3f41424445484a4b4c4d4e5355565758595d6270717273747576797a7e7f808182838487888a8b8c8d8f909194959697999a9d9fa1a2a3a4a5a6a7acadae#afb5bbbebfc2c3c4c6c8c9cbcdced0d1d2d3d5d7d9dadbdee2e3e4e6e7e8ebeced,60706d3d7275626694:8ec5,53438fc17b7e4edf8c264e7e9ed494:b1b3,524d6f5c90636d458c3458115d4c6b:2049,67aa545b81547f8c589985375f3a62a26a47953965726084686577a74e544fa85de7979864ac7fd85ced4fcf7a8d520783044e14602f7a8394a64fb54eb279e6743452e482b964d279bd5bdd6c8197528f7b6c22503e537f6e0564ce66746c3060c598778bf75e86743c7a7779cb4e1890b174036c4256da914b6cc58d8b533a86c666f28eaf5c489a716e2083:eeeff3f4f5f6f7fafbfcfeff,84:0002050708090a10121314151617191a1b1e1f20212223292a2b2c2d2e2f30323334353637393a3b3e3f404142434445474849#4a4b4c4d4e4f505253545556585d5e5f606264656667686a6e6f70727477797b7c,53d65a369f8b8da353bb570898a76743919b6cc9516875ca62f372ac52:389d,7f3a7094763853749e4a69b7786e96c088d97fa471:36c3,518967d374e458e4651856b78ba9997662707ed560f970ed58ec4e:c1ba,5fcd97e74efb8ba45203598a7eab62544ecd65e5620e833884c98363878d71946eb65bb97ed2519763c967d480898339881551125b7a59828fb14e736c5d516589258f6f962e854a745e95:10f0,6da682e55f3164926d128428816e9cc3585e8d5b4e0953c184:7d7e7f8081838485868a8d8f90919293949596989a9b9d9e9fa0a2a3a4a5a6a7a8a9aaabacadaeb0b1b3b5b6b7bbbcbec0c2c3c5c6c7c8cbcccecfd2d4d5d7#d8d9dadbdcdee1e2e4e7e8e9eaebedeeeff1f2f3f4f5f6f7f8f9fafbfdfe,85:000102,4f1e6563685155d34e2764149a9a626b5ac2745f82726da968ee50e7838e7802674052396c997eb150bb5565715e7b5b665273ca82eb67495c715220717d886b95ea965564c58d6181b355846c5562477f2e58924f2455468d4f664c4e0a5c1a88f368a2634e7a0d70e7828d52fa97f65c1154e890b57ecd59628d4a86c782:0c0d,8d6664445c0461516d89793e8bbe78377533547b4f388eab6df15a207ec5795e6c885ba15a76751a80be614e6e1758f075:1f25,727253477ef385:030405060708090a0b0d0e0f101214151618191b1c1d1e2022232425262728292a2d2e2f303132333435363e3f404142444546474b4c4d4e4f505152535455#57585a5b5c5d5f60616263656667696a6b6c6d6e6f707173757677787c7d7f8081,770176db526980dc57235e08593172ee65bd6e7f8bd75c388671534177f362fe65f64ec098df86805b9e8bc653f277e24f7f5c4e9a7659cb5f0f793a58eb4e1667ff4e8b62ed8a93901d52bf662f55dc566c90024ed54f8d91ca99706c0f5e0260435ba489c68bd56536624b99965b:88ff,6388552e53d77626517d852c67a268b36b8a62928f9353d482126dd1758f4e668d4e5b70719f85af66:91d9,7f7287009ecd9f205c5e672f8ff06811675f620d7ad658855eb665706f3185:82838688898a8b8c8d8e909192939495969798999a9d9e9fa0a1a2a3a5a6a7a9abacadb1b2b3b4b5b6b8babbbcbdbebfc0c2c3c4c5c6c7c8cacbcccdced1d2#d4d6d7d8d9dadbdddedfe0e1e2e3e5e6e7e8eaebecedeeeff0f1f2f3f4f5f6f7f8,60555237800d6454887075295e05681362f4971c53cc723d8c016c3477617a0e542e77ac987a821c8bf47855671470c165af64955636601d79c153f84e1d6b7b80865bfa55e356db4f:3a3c,99725df3677e80386002988290015b8b8b:bcf5,641c825864de55fd82cf91654fd77d20901f7c9f50f358516eaf5bbf8bc980839178849c7b97867d96:8b8f,7ee59ad3788e5c817a57904296a7795f5b59635f7b0b84d168ad55067f2974107d2295016240584c4ed65b835979585485:f9fafcfdfe,86:0001020304060708090a0b0c0d0e0f10121314151718191a1b1c1d1e1f20212223242526282a2b2c2d2e2f3031323334353637393a3b3d3e3f40#4142434445464748494a4b4c525355565758595b5c5d5f6061636465666768696a,736d631e8e:4b0f,80ce82d462ac53f06cf0915e592a60016c70574d644a8d2a762b6ee9575b6a8075f06f6d8c:2d08,57666bef889278b363a253f970ad6c645858642a580268e0819b55107cd650188eba6dcc8d9f70eb638f6d9b6ed47ee68404684390036dd896768ba85957727985e4817e75bc8a8a68af52548e22951163d098988e44557c4f5366ff568f60d56d9552435c4959296dfb586b75:301c,606c82148146631167618fe2773a8d:f334,94c15e165385542c70c386:6d6f7072737475767778838485868788898e8f90919294969798999a9b9e9fa0a1a2a5a6abadaeb2b3b7b8b9bbbcbdbebfc1c2c3c5c8cccdd2d3d5d6d7dadc#dde0e1e2e3e5e6e7e8eaebeceff5f6f7fafbfcfdff,87:010405060b0c0e0f10111416,6c405ef7505c4ead5ead633a8247901a6850916e77b3540c94dc5f647ae5687663457b527edf75db507762955934900f51f879c37a8156fe5f9290146d825c60571f541051546e4d56e263a89893817f8715892a9000541e5c6f81c062:d658,81319e3596409a:6e7c,692d59a562d3553e631654c786d96d3c5a0374e6889c6b6a59168c4c5f2f6e7e73a9987d4e3870f75b8c7897633d665a769660cb5b9b5a494e0781556c6a738b4ea167897f515f8065fa671b5fd859845a0187:191b1d1f20242627282a2b2c2d2f303233353638393a3c3d404142434445464a4b4d4f505152545556585a5b5c5d5e5f6162666768696a6b6c6d6f71727375#7778797a7f8081848687898a8c8e8f90919294959698999a9b9c9d9ea0a1a2a3a4,5dcd5fae537197e68fdd684556f4552f60df4e3a6f4d7ef482c7840e59d44f:1f2a,5c3e7eac672a851a5473754f80c355829b4f4f4d6e2d8c135c096170536b761f6e29868a658795fb7eb9543b7a337d0a95ee55e17fc174ee631d87176da17a9d621165a1536763e16c835deb545c94a84e4c6c618bec5c4b65e0829c68a754:3e34,6b:cb66,4e9463425348821e4f:0dae,575e620a96fe6664726952:ffa1,609f8bef661471996790897f785277fd6670563b54389521727a87:a5a6a7a9aaaeb0b1b2b4b6b7b8b9bbbcbebfc1c2c3c4c5c7c8c9cccdcecfd0d4d5d6d7d8d9dadcdddedfe1e2e3e4e6e7e8e9ebecedeff0f1f2f3f4f5f6f7f8#fafbfcfdff,88:0001020405060708090b0c0d0e0f101112141718191a1c1d1e1f2023,7a00606f5e0c6089819d591560dc718470ef6eaa6c5072806a8488ad5e2d4e605ab3559c94e36d177cfb9699620f7ec6778e867e5323971e8f9666875ce14fa072ed4e0b53a6590f54136380952851484ed99c9c7ea454b88d248854823795f26d8e5f265acc663e966973:b02e,53bf817a99857fa15baa96:7750,7ebf76f853a2957699997bb189446e584e617fd479658be660f354cd4eab98795df76a6150cf54118c618427785d9704524a54ee56a395006d885bb56dc6665388:2425262728292a2b2c2d2e2f30313334353637383a3b3d3e3f414243464748494a4b4e4f505152535556585a5b5c5d5e5f6066676a6d6f717374757678797a#7b7c80838687898a8c8e8f90919394959798999a9b9d9e9fa0a1a3a5a6a7a8a9aa,5c0f5b5d6821809655787b11654869544e9b6b47874e978b534f631f643a90aa659c80c18c10519968b0537887f961c86c:c4fb,8c225c5185aa82af950c6b238f9b65b05f:fbc3,4fe18845661f8165732960fa51745211578b5f6290a2884c91925e78674f602759d351:44f6,80f853086c7996c4718a4f:11ee,7f9e673d55c5950879c088967ee3589f620c9700865a5618987b5f908bb884c4915753d965ed5e8f755c60647d6e5a7f7e:eaed,8f6955a75ba360ac65cb738488:acaeafb0b2b3b4b5b6b8b9babbbdbebfc0c3c4c7c8cacbcccdcfd0d1d3d6d7dadbdcdddee0e1e6e7e9eaebecedeeeff2f5f6f7fafbfdff,89:0001030405060708#090b0c0d0e0f1114151617181c1d1e1f20222324262728292c2d2e2f3132333537,9009766377297eda9774859b5b667a7496ea884052cb718f5faa65ec8be25bfb9a6f5de16b896c5b8b:adaf,900a8fc5538b62bc9e:262d,54404e2b82bd7259869c5d1688596daf96c554d14e9a8bb6710954bd960970df6df976d04e25781487125ca95ef68a00989c960e708e6cbf594463a9773c884d6f148273583071d5538c781a96c155015f6671305bb48c1a9a8c6b83592e9e2f79e76768626c4f6f75a17f8a6d0b96336c274ef075d2517b68376f3e908081705996747689:38393a3b3c3d3e3f40424345464748494a4b4c4d4e4f505152535455565758595a5b5c5d6061626364656768696a6b6c6d6e6f707172737475767778797a7c#7d7e808284858788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1,64475c2790657a918c2359da54ac8200836f898180006930564e8036723791ce51b64e5f987563964e1a53f666f3814b591c6db24e0058f9533b63d694f14f:9d0a,886398905937905779fb4eea80f075916c825b9c59e85f5d69058681501a5df24e5977e34ee5827a6291661390915c794ebf5f7981c69038808475ab4ea688d4610f6bc55fc64e4976ca6ea28b:e3ae,8c0a8bd15f027f:fccc,7ece83:356b,56e06bb797f3963459fb541f94f66deb5bc5996e5c395f15969089:a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c3cdd3d4d5d7d8d9dbdddfe0e1e2e4e7e8e9eaecedeef0f1f2f4f5f6f7f8f9fa#fbfcfdfeff,8a:01020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d,537082f16a315a749e705e947f2883b984:2425,836787478fce8d6276c85f719896786c662054df62e54f6381c375c85eb896cd8e0a86f9548f6cf36d8c6c38607f52c775285e7d4f1860a05fe75c24753190ae94c072b96cb96e389149670953:cbf3,4f5191c98bf153c85e7c8fc26de44e8e76c26986865e611a82064f:59de,903e9c7c61096e:1d14,96854e885a3196e84e0e5c7f79b95b878bed7fbd738957df828b90c15401904755bb5cea5fa161086b3272f180b28a:891e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f4041424344454647494a4b4c4d4e4f505152535455565758595a5b5c5d5e#5f606162636465666768696a6b6c6d6e6f7071727374757677787a7b7c7d7e7f80,6d745bd388d598848c6b9a6d9e336e0a51:a443,57a38881539f63f48f9556ed54585706733f6e907f188fdc82d1613f6028966266f07ea68d:8ac3,94a55cb37ca4670860a6960580184e9190e75300966851418fd08574915d665597f55b55531d78386742683d54c9707e5bb08f7d518d572854b1651266828d:5e43,810f846c906d7cdf51ff85fb67a365e96fa186a48e81566a90207682707671e58d2362e952196cfd8d3c600e589e618e66fe8d60624e55b36e23672d8f678a:81828384858687888b8c8d8e8f9091929495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3,94e195f87728680569a8548b4e4d70b88bc86458658b5b857a84503a5be877bb6be18a797c986cbe76cf65a98f975d2d5c5586386808536062187ad96e5b7efd6a1f7ae05f706f335f20638c6da867564e085e108d264ed780c07634969c62db662d627e6cbc8d7571677f695146808753ec906e629854f286f08f998005951785178fd96d5973cd659f771f7504782781fb8d1e94884fa6679575b98bca9707632f9547963584b8632377415f8172f04e896014657462ef6b63653f8a:e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8b:0001020304050608090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#24252728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,5e2775c790d18bc1829d679d652f5431871877e580a281026c414e4b7ec7804c76f4690d6b966267503c4f84574063076b628dbe53ea65e87eb85fd763:1ab7,81:f3f4,7f6e5e1c5cd95236667a79e97a1a8d28709975d46ede6cbb7a924e2d76c55fe0949f88777ec879cd80bf91cd4ef24f17821f54685dde6d328bcc7ca58f7480985e1a549276b15b99663c9aa473e0682a86db6731732a8b:f8db,90107af970db716e62c477a956314e3b845767f152a986c08d2e94f87b518b:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656768696a6b6d6e6f707172737475767778797a7b7c7d7e7f80818283848586#8788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9facb1bbc7d0ea,8c:091e,4f4f6ce8795d9a7b6293722a62fd4e1378168f6c64b08d5a7bc668695e8488c55986649e58ee72b6690e95258ffd8d5857607f008c0651c6634962d95353684c74228301914c55447740707c6d4a517954a88d4459ff6ecb6dc45b5c7d2b4ed47c7d6ed35b5081ea6e0d5b579b0368d58e2a5b977efc603b7eb590b98d70594f63cd79df8db3535265cf79568bc5963b7ec494bb7e825634918967007f6a5c0a907566285de64f5067de505a4f5c57505e:a7#3$,8c:38393a3b3c3d3e3f4042434445484a4b4d4e4f5051525354565758595b5c5d5e5f60636465666768696c6d6e6f707172747576777b7c7d7e7f808183848687#888b8d8e8f90919293959697999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacad,4e:8d0c,51404e105eff53454e:15981e,9b325b6c56694e2879ba4e3f53154e47592d723b536e6c1056df80e499976bd3777e9f174e:369f,9f104e:5c6993,82885b5b556c560f4ec453:8d9da3a5ae,97658d5d53:1af5262e3e,8d5c53:6663,52:02080e2d333f404c5e615c,84af52:7d82819093,51827f544e:bbc3c9c2e8e1ebde,4f1b4ef34f:2264,4ef54f:2527092b5e67,65384f:5a5d,8c:aeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebec#edeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8d:000102030405060708090a0b0c0d,4f:5f57323d76749189838f7e7baa7cac94e6e8eac5dae3dcd1dff8,50:294c,4ff350:2c0f2e2d,4ffe50:1c0c25287e4355484e6c7ba5a7a9bad6,510650:edece6ee,51:070b,4edd6c3d4f:5865ce,9fa06c467c74516e5dfd9ec999985181591452f9530d8a07531051eb591951554ea051564eb388:6ea4,4eb5811488d279805b3488037fb851:abb1bdbc,8d:0e0f101112131415161718191a1b1c205152575f6568696a6c6e6f717278797a7b7c7d7e7f808283868788898c8d8e8f90929395969798999a9b9c9d9ea0a1#a2a4a5a6a7a8a9aaabacadaeafb0b2b6b7b9bbbdc0c1c2c5c7c8c9cacdd0d2d3d4,51:c796a2a5,8b:a0a6a7aab4b5b7c2c3cbcfced2d3d4d6d8d9dcdfe0e4e8e9eef0f3f6f9fcff,8c:000204070c0f1112141516191b181d1f202125272a2b2e2f32333536,53:697a,96:1d2221312a3d3c4249545f676c7274888d97b0,90:979b9d99aca1b4b3b6ba,8d:d5d8d9dce0e1e2e5e6e7e9edeef0f1f2f4f6fcfeff,8e:00010203040607080b0d0e1011121315161718191a1b1c202124252627282b2d303233343637383b3c3e#3f4345464c4d4e4f505354555657585a5b5c5d5e5f60616263646567686a6b6e71,90:b8b0cfc5bed0c4c7d3e6e2dcd7dbebeffe,91:04221e23312f394346,520d594252:a2acadbe,54ff52:d0d6f0,53df71ee77cd5ef451:f5fc,9b2f53b65f01755a5def57:4ca9a1,58:7ebcc5d1,57:292c2a33392e2f5c3b4269856b867c7b686d7673ada48cb2cfa7b493a0d5d8dad9d2b8f4eff8e4dd,8e:73757778797a7b7d7e808283848688898a8b8c8d8e91929395969798999a9b9d9fa0a1a2a3a4a5a6a7a8a9aaadaeb0b1b3b4b5b6b7b8b9bbbcbdbebfc0c1c2#c3c4c5c6c7c8c9cacbcccdcfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4,58:0b0d,57:fded,58:001e194420656c81899a80,99a89f1961ff82:797d7f8f8aa8848e919799abb8beb0c8cae398b7aecbccc1a9b4a1aa9fc4cea4e1,830982:f7e4,83:0f07,82:dcf4d2d8,830c82:fbd3,83:111a061415,82:e0d5,83:1c515b5c08923c34319b5e2f4f47435f4017602d3a336665,8e:e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,8f:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20212223#2425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f4041424344,83:681b696c6a6d6eb078b3b4a0aa939c857cb6a97db87b989ea8babcc1,840183:e5d8,580784:180b,83:ddfdd6,84:1c381106,83:d4df,84:0f03,83:f8f9eac5c0,842683:f0e1,84:5c515a597387887a89783c4669768c8e316dc1cdd0e6bdd3cabfbae0a1b9b497e5e3,850c750d853884f085:391f3a,8f:45464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364656a808c929da0a1a2a4a5a6a7aaacadaeafb2b3b4b5b7b8babbbcbfc0c3c6#c9cacbcccdcfd2d6d7dae0e1e3e7eceff1f2f4f5f6fafbfcfeff,90:07080c0e131518,85:563b,84:fffc,85:594868645e7a,77a285:43727ba4a8878f79ae9c85b9b7b0d3c1dcff,86:270529163c,5efe5f0859:3c41,803759:555a58,530f5c:22252c34,62:4c6a9fbbcadad7ee,632262f663:394b43adf6717a8eb46dac8a69aebcf2f8e0ffc4dece,645263:c6be,64:45410b1b200c26215e846d96,90:191c2324252728292a2b2c303132333437393a3d3f4043454648494a4b4c4e545556595a5c5d5e5f6061646667696a6b6c6f70717273767778797a7b7c7e81#84858687898a8c8d8e8f90929496989a9c9e9fa0a4a5a7a8a9abadb2b7bcbdbfc0,64:7ab7b899bac0d0d7e4e2,65:09252e,5f:0bd2,75195f1153:5ff1fde9e8fb,54:1216064b5253545643215759233282947771649a9b8476669dd0adc2b4d2a7a6d3d472a3d5bbbfccd9dadca9aaa4ddcfde,551b54e7552054fd551454f355:22230f11272a678fb5496d41553f503c,90:c2c3c6c8c9cbcccdd2d4d5d6d8d9dadedfe0e3e4e5e9eaeceef0f1f2f3f5f6f7f9fafbfcff,91:00010305060708090a0b0c0d0e0f1011121314151617181a1b1c#1d1f20212425262728292a2b2c2d2e30323334353637383a3b3c3d3e3f40414244,55:375675767733305c8bd283b1b988819f7ed6917bdfbdbe9499eaf7c9,561f55:d1ebecd4e6ddc4efe5f2f3cccde8f5e4,8f9456:1e080c012423,55fe56:00272d5839572c4d62595c4c548664716b7b7c8593afd4d7dde1f5ebf9ff,57:040a091c,5e:0f191411313b3c,91:454748515354555658595b5c5f606667686b6d737a7b7c808182838486888a8e8f939495969798999c9d9e9fa0a1a4a5a6a7a8a9abacb0b1b2b3b6b7b8b9bb#bcbdbebfc0c1c2c3c4c5c6c8cbd0d2d3d4d5d6d7d8d9dadbdddedfe0e1e2e3e4e5,5e:3744545b5e61,5c:8c7a8d9096889899919a9cb5a2bdacabb1a3c1b7c4d2e4cbe5,5d:020327262e241e061b583e343d6c5b6f5d6b4b4a697482999d,8c735d:b7c5,5f:73778287898c95999ca8adb5bc,88625f6172:adb0b4b7b8c3c1cecdd2e8efe9f2f4f7,730172f3730372fa91:e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,92:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021222324#25262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445,72fb73:1713210a1e1d152239252c3831504d57606c6f7e,821b592598e759:2402,99:636768696a6b6c74777d8084878a8d9091939495,5e:80918b96a5a0b9b5beb3,8d535e:d2d1dbe8ea,81ba5f:c4c9d6cf,60035fee60045f:e1e4fe,60:0506,5f:eaedf8,60:1935261b0f0d292b0a3f2178797b7a42,92:464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727375767778797a7b7c7d7e7f808182838485#868788898a8b8c8d8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7,60:6a7d969aad9d83928c9becbbb1ddd8c6dab4,61:20261523,60f461:000e2b4a75ac94a7b7d4f5,5fdd96b395:e9ebf1f3f5f6fcfe,96:030406080a0b0c0d0f12151617191a,4e2c723f62156c:35545c4aa38590948c6869747686a9d0d4adf7f8f1d7b2e0d6faebeeb1d3effe,92:a8a9aaabacadafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8#e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,93:00010203040506070809,6d:39270c43480704190e2b4d2e351a4f525433916f9ea05e93945c607c63,6e1a6d:c7c5de,6e0e6d:bfe0,6e116d:e6ddd9,6e166dab6e0c6dae6e:2b6e4e6bb25f865354322544dfb198e0,6f2d6e:e2a5a7bdbbb7d7b4cf8fc29f,6f:6246472415,6ef96f:2f364b742a0929898d8c78727c7ad1,93:0a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3f40414243444546474849#4a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696b,6f:c9a7b9b6c2e1eedee0ef,70:1a231b39354f5e,5b:80849593a5b8,752f9a9e64345b:e4ee,89305bf08e478b078f:b6d3d5e5eee4e9e6f3e8,90:05040b26110d162135362d2f445152506858625b,66b990:747d8288838b,5f:50575658,5c3b54ab5c:5059,5b715c:6366,7fbc5f:2a292d,82745f3c9b3b5c6e59:81838da9aaa3,93:6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaab#acadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cbcccd,59:97caab9ea4d2b2afd7be,5a:0506,59dd5a0859:e3d8f9,5a:0c09323411231340674a553c6275,80ec5a:aa9b777abeebb2d2d4b8e0e3f1d6e6d8dc,5b:091716323740,5c:151c,5b:5a6573515362,9a:7577787a7f7d808185888a90929396989b9c9d9fa0a2a3a5a7,7e:9fa1a3a5a8a9,93:cecfd0d1d2d3d4d5d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,94:000102030405060708090a0b0c0d#0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e,7e:adb0bec0c1c2c9cbccd0d4d7dbe0e1e8ebeeeff1f2,7f0d7e:f6fafbfe,7f:01020307080b0c0f111217191c1b1f212223242526272a2b2c2d2f3031323335,5e7a757f5ddb753e909573:8e91aea29fcfc2d1b7b3c0c9c8e5d9,987c740a73:e9e7debaf2,74:0f2a5b262528302e2c,94:2f303132333435363738393a3b3c3d3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6c6d6e6f#707172737475767778797a7b7c7d7e7f8081828384919698c7cfd3d4dae6fb,95:1c20,74:1b1a415c575559776d7e9c8e8081878b9ea8a990a7d2ba,97:eaebec,67:4c535e4869a5876a7398a775a89ead8b777cf0,680967d8680a67:e9b0,680c67:d9b5dab3dd,680067:c3b8e2,680e67:c1fd,68:323360614e624464831d55664167403e4a4929b58f7477936bc2,696e68fc69:1f20,68f995:27333d43484b555a606e74757778797a7b7c7d7e808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aa#abacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacb,692468f069:0b0157,68e369:10713960425d846b80987834cc8788ce896663799ba7bbabadd4b1c1cadf95e08dff,6a2f69ed6a:171865,69f26a:443ea0505b358e793d28587c9190a997ab,73:3752,6b:8182878492938d9a9ba1aa,8f:6b6d71727375767877797a7c7e818284878b,95:cccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7ecff,96:0713181b1e20232425262728292b2c2d2f303738393a3e41434a4e4f5152535657#58595a5c5d5e606365666b6d6e6f70717378797a7b7c7d7e7f808182838487898a,8f:8d8e8f989a,8ece62:0b171b1f222125242c,81e774:eff4ff,75:0f1113,65:34eeeff0,66:0a19,677266:031500,708566:f71d34313635,800666:5f54414f56615777848ca79dbedbdce6e9,8d:3233363b3d4045464849474d5559,89:c7cacbcccecfd0d1,72:6e9f5d666f7e7f848b8d8f92,63:0832b0,96:8c8e91929395969a9b9d9e9fa0a1a2a3a4a5a6a8a9aaabacadaeafb1b2b4b5b7b8babbbfc2c3c8cacbd0d1d3d4d6d7d8d9dadbdcdddedfe1e2e3e4e5e6e7eb#ecedeef0f1f2f4f5f8fafbfcfdff,97:0203050a0b0c10111214151718191a1b1d1f20,64:3fd8,80046b:eaf3fdf5f9,6c:0507060d1518191a2129242a32,65:35556b,72:4d525630,8662521680:9f9c93bc,670a80:bdb1abadb4b7e7e8e9eadbc2c4d9cdd7,671080:ddebf1f4ed,81:0d0e,80:f2fc,671581128c5a81:361e2c1832484c5374595a7160697c7d6d67,584d5ab581:888291,6ed581:a3aacc,672681:cabb,97:2122232425262728292b2c2e2f3133343536373a3b3c3d3f404142434445464748494a4b4c4d4e4f5051545557585a5c5d5f63646667686a6b6c6d6e6f7071#72757778797a7b7d7e7f8081828384868788898a8c8e8f9093959697999a9b9c9d,81:c1a6,6b:243739434659,98:d1d2d3d5d9da,6bb35f406bc289f365909f5165:93bcc6c4c3ccced2d6,70:809c969dbbc0b7abb1e8ca,71:1013162f31735c6845724a787a98b3b5a8a0e0d4e7f9,72:1d28,706c71:1866b9,62:3e3d434849,79:3b4046495b5c535a6257606f677a858a9aa7b3,5f:d1d0,97:9e9fa1a2a4a5a6a7a8a9aaacaeb0b1b3b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3#e4e5e8eeeff0f1f2f4f7f8f9fafbfcfdfeff,98:000102030405060708090a0b0c0d0e,60:3c5d5a67415963ab,61:060d5da99dcbd1,620680:807f,6c:93f6,6dfc77:f6f8,78:0009171811,65ab78:2d1c1d393a3b1f3c252c23294e6d56572650474c6a9b939a879ca1a3b2b9a5d4d9c9ecf2,790578f479:13241e34,9f9b9e:f9fbfc,76f177:040d,76f977:07081a22192d263538505147435a68,98:0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d#4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e,77:62657f8d7d808c919fa0b0b5bd,75:3a404e4b485b727983,7f:58615f,8a487f:68747179817e,76:cde5,883294:8586878b8a8c8d8f909497959a9b9ca3a4abaaadacafb0b2b4b6b7b8b9babcbdbfc4c8c9cacbcccdced0d1d2d5d6d7d9d8dbdedfe0e2e4e5e7e8ea,98:6f70717273748b8e929599a3a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcfd0d4d6d7dbdcdde0e1e2e3e4#e5e6e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,99:0001020304050607,94:e9ebeeeff3f4f5f7f9fcfdff,95:03020607090a0d0e0f1213141516181b1d1e1f222a2b292c3132343637383c3e3f4235444546494c4e4f525354565758595b5e5f5d61626465666768696a6b6c6f7172733a,77:e7ec,96c979:d5ede3eb,7a065d477a:03021e14,99:08090a0b0c0e0f1112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2f303132333435363738393a3b3c3d3e3f40414243444546474849#4a4b4c4d4e4f50515253565758595a5b5c5d5e5f60616264667378797b7e828389,7a:393751,9ecf99a57a7076:888e9399a4,74:dee0,752c9e:202228292a2b2c3231363837393a3e414244464748494b4c4e5155575a5b5c5e63666768696a6b6c716d73,75:929496a09daca3b3b4b8c4b1b0c3c2d6cde3e8e6e4ebe7,760375:f1fcff,76:1000050c170a25181519,99:8c8e9a9b9c9d9e9fa0a1a2a3a4a6a7a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8#d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9,76:1b3c2220402d303f35433e334d5e545c566b6f,7fca7a:e6787980868895a6a0aca8adb3,88:6469727d7f82a2c6b7bcc9e2cee3e5f1,891a88:fce8fef0,89:2119131b0a342b3641667b,758b80e576:b2b4,77dc80:1214161c20222526272928310b3543464d526971,898398:788083,99:fafbfcfdfeff,9a:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738#393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f50515253545556575859,98:898c8d8f949a9b9e9fa1a2a5a6,86:4d546c6e7f7a7c7ba88d8bac9da7a3aa93a9b6c4b5ceb0bab1afc9cfb4e9f1f2edf3d0,871386:def4dfd8d1,87:0307,86f887:080a0d09233b1e252e1a3e48343129373f82227d7e7b60704c6e8b53637c64596593afa8d2,9a:5a5b5c5d5e5f606162636465666768696a6b7283898d8e949599a6a9aaabacadaeafb2b3b4b5b9bbbdbebfc3c4c6c7c8c9cacdcecfd0d2d4d5d6d7d9dadbdc#dddee0e2e3e4e5e7e8e9eaeceef0f1f2f3f4f5f6f7f8fafcfdfeff,9b:000102040506,87:c68885ad9783abe5acb5b3cbd3bdd1c0cadbeae0ee,88:1613,87fe88:0a1b21393c,7f:36424445,82107a:fafd,7b:080304150a2b0f47382a192e31202524333e1e585a45754c5d606e7b62727190a6a7b8ac9da885aa9ca2abb4d1c1ccdddae5e6ea,7c0c7b:fefc,7c:0f160b,9b:07090a0b0c0d0e1011121415161718191a1b1c1d1e2021222425262728292a2b2c2d2e3031333435363738393a3d3e3f40464a4b4c4e50525355565758595a#5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b,7c:1f2a26384140,81fe82:010204,81ec884482:2122232d2f282b383b33343e44494b4f5a5f68,88:7e8588d8df,895e7f:9d9fa7afb0b2,7c7c65497c:919d9c9ea2b2bcbdc1c7cccdc8c5d7e8,826e66a87f:bfced5e5e1e6e9eef3,7cf87d:77a6ae,7e:479b,9e:b8b4,8d:73849491b1676d,8c:4749,91:4a504e4f64,9b:7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9ba#bbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadb,91:626170696f7d7e7274798c85908d91a2a3aaadaeafb5b4ba,8c559e7e8d:b8eb,8e:055969,8d:b5bfbcbac4d6d7dadececfdbc6ecf7f8e3f9fbe4,8e098dfd8e:141d1f2c2e232f3a4039353d3149414251524a70767c6f74858f94909c9e,8c:78828a859894,659b89:d6dedadc,9b:dcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9c:000102030405060708090a0b0c0d0e0f101112131415161718191a#1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b,89:e5ebef,8a3e8b26975396:e9f3ef,97:0601080f0e2a2d303e,9f:808385868788898a8c,9efe9f:0b0d,96:b9bcbdced2,77bf96e092:8eaec8,93:3e6aca8f,94:3e6b,9c:7f8285868788,7a239c:8b8e90919294959a9b9e9fa0a1a2a3a5a6a7a8a9abadaeb0b1b2b3b4b5b6b7babbbcbdc4c5c6c7cacb3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a#7b7d7e808384898a8c8f93969798999daaacafb9bebfc0c1c2c8c9d1d2dadbe0e1cccdcecfd0d3d4d5d7d8d9dcdddfe2,97:7c85919294afaba3b2b4,9a:b1b0b7,9e589a:b6babcc1c0c5c2cbccd1,9b:45434749484d51,98e899:0d2e5554,9a:dfe1e6efebfbedf9,9b:080f131f23,9e:bdbe,7e3b9e:8287888b92,93d69e:9d9fdbdcdde0dfe2e9e7e5eaef,9f:222c2f39373d3e44,9c:e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9d:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f2021#22232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142#92$434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f8081#82838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2#92$a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1#e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff,9e:000102#92$030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e24272e30343b3c404d5052535456595d5f606162656e6f727475767778797a7b7c7d80#8183848586898a8c8d8e8f90919495969798999a9b9c9ea0a1a2a3a4a5a7a8a9aa#92$abacadaeafb0b1b2b3b5b6b7b9babcbfc0c1c2c3c5c6c7c8cacbccd0d2d3d5d6d7d9dadee1e3e4e6e8ebecedeef0f1f2f3f4f5f6f7f8fafdff,9f:000102030405#060708090a0c0f1112141516181a1b1c1d1e1f21232425262728292a2b2d2e3031#92$3233343536383a3c3f4041424345464748494a4b4c4d4e4f52535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778#797a7b7c7d7e81828d8e8f9091929394959697989c9d9ea1a2a3a4a5,f9:2c7995e7f1#92$,fa:0c0d0e0f111314181f20212324272829,e8:15161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f40414243#4445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6061626364'),
- U2Ghash={},
- G2Uhash={};
- !function(data){
- var k=0;
- data=data.match(/..../g);
- for(var i=0x81;i<=0xfe;i++){
- for(var j=0x40;j<=0xFE;j++){
- U2Ghash[data[k++]]=('%'+i.toString(16)+'%'+j.toString(16))
- .toUpperCase();
- }
- }
- for(var key in U2Ghash){
- G2Uhash[U2Ghash[key]]=key;
- }
- }(data);
- function isAscii(unicode) {
- return ((unicode == 0x20AC) || (unicode <= 0x007F && unicode >= 0x0000));
- }
- return{
- encode:function(str){
- return str.replace(/./g,function(a){
- var code=a.charCodeAt(0);
- if(isAscii(code)){
- return encodeURIComponent(a);
- }else{
- var key=code.toString(16);
- if(key.length!=4)key=('000'+key).match(/....$/)[0];
- return U2Ghash[key]||a;
- }
- });
- },
- decode:function(str){
- return str.replace(/%[0-9A-F]{2}%[0-9A-F]{2}/g,function(a){
- if(a in G2Uhash){
- return String.fromCharCode('0x'+G2Uhash[a]);
- }else{
- return a;
- }
- }).replace(/%[\w]{2}/g,function(a){
- return decodeURIComponent(a);
-
- });
- }
- };
-}
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/jinja.js b/tvboxqq/摸鱼儿/api/jinja.js
deleted file mode 100644
index cc02357..0000000
--- a/tvboxqq/摸鱼儿/api/jinja.js
+++ /dev/null
@@ -1,577 +0,0 @@
-/*!
- * Jinja Templating for JavaScript v0.1.8
- * https://github.com/sstur/jinja-js
- *
- * This is a slimmed-down Jinja2 implementation [http://jinja.pocoo.org/]
- *
- * In the interest of simplicity, it deviates from Jinja2 as follows:
- * - Line statements, cycle, super, macro tags and block nesting are not implemented
- * - auto escapes html by default (the filter is "html" not "e")
- * - Only "html" and "safe" filters are built in
- * - Filters are not valid in expressions; `foo|length > 1` is not valid
- * - Expression Tests (`if num is odd`) not implemented (`is` translates to `==` and `isnot` to `!=`)
- *
- * Notes:
- * - if property is not found, but method '_get' exists, it will be called with the property name (and cached)
- * - `{% for n in obj %}` iterates the object's keys; get the value with `{% for n in obj %}{{ obj[n] }}{% endfor %}`
- * - subscript notation `a[0]` takes literals or simple variables but not `a[item.key]`
- * - `.2` is not a valid number literal; use `0.2`
- *
- */
-/*global require, exports, module, define */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.jinja = {}));
-})(this, (function (jinja) {
- "use strict";
- var STRINGS = /'(\\.|[^'])*'|"(\\.|[^"'"])*"/g;
- var IDENTS_AND_NUMS = /([$_a-z][$\w]*)|([+-]?\d+(\.\d+)?)/g;
- var NUMBER = /^[+-]?\d+(\.\d+)?$/;
- //non-primitive literals (array and object literals)
- var NON_PRIMITIVES = /\[[@#~](,[@#~])*\]|\[\]|\{([@i]:[@#~])(,[@i]:[@#~])*\}|\{\}/g;
- //bare identifiers such as variables and in object literals: {foo: 'value'}
- var IDENTIFIERS = /[$_a-z][$\w]*/ig;
- var VARIABLES = /i(\.i|\[[@#i]\])*/g;
- var ACCESSOR = /(\.i|\[[@#i]\])/g;
- var OPERATORS = /(===?|!==?|>=?|<=?|&&|\|\||[+\-\*\/%])/g;
- //extended (english) operators
- var EOPS = /(^|[^$\w])(and|or|not|is|isnot)([^$\w]|$)/g;
- var LEADING_SPACE = /^\s+/;
- var TRAILING_SPACE = /\s+$/;
-
- var START_TOKEN = /\{\{\{|\{\{|\{%|\{#/;
- var TAGS = {
- '{{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}\}/,
- '{{': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?\}\}/,
- '{%': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?%\}/,
- '{#': /^('(\\.|[^'])*'|"(\\.|[^"'"])*"|.)+?#\}/
- };
-
- var delimeters = {
- '{%': 'directive',
- '{{': 'output',
- '{#': 'comment'
- };
-
- var operators = {
- and: '&&',
- or: '||',
- not: '!',
- is: '==',
- isnot: '!='
- };
-
- var constants = {
- 'true': true,
- 'false': false,
- 'null': null
- };
-
- function Parser() {
- this.nest = [];
- this.compiled = [];
- this.childBlocks = 0;
- this.parentBlocks = 0;
- this.isSilent = false;
- }
-
- Parser.prototype.push = function (line) {
- if (!this.isSilent) {
- this.compiled.push(line);
- }
- };
-
- Parser.prototype.parse = function (src) {
- this.tokenize(src);
- return this.compiled;
- };
-
- Parser.prototype.tokenize = function (src) {
- var lastEnd = 0, parser = this, trimLeading = false;
- matchAll(src, START_TOKEN, function (open, index, src) {
- //here we match the rest of the src against a regex for this tag
- var match = src.slice(index + open.length).match(TAGS[open]);
- match = (match ? match[0] : '');
- //here we sub out strings so we don't get false matches
- var simplified = match.replace(STRINGS, '@');
- //if we don't have a close tag or there is a nested open tag
- if (!match || ~simplified.indexOf(open)) {
- return index + 1;
- }
- var inner = match.slice(0, 0 - open.length);
- //check for white-space collapse syntax
- if (inner.charAt(0) === '-') var wsCollapseLeft = true;
- if (inner.slice(-1) === '-') var wsCollapseRight = true;
- inner = inner.replace(/^-|-$/g, '').trim();
- //if we're in raw mode and we are not looking at an "endraw" tag, move along
- if (parser.rawMode && (open + inner) !== '{%endraw') {
- return index + 1;
- }
- var text = src.slice(lastEnd, index);
- lastEnd = index + open.length + match.length;
- if (trimLeading) text = trimLeft(text);
- if (wsCollapseLeft) text = trimRight(text);
- if (wsCollapseRight) trimLeading = true;
- if (open === '{{{') {
- //liquid-style: make {{{x}}} => {{x|safe}}
- open = '{{';
- inner += '|safe';
- }
- parser.textHandler(text);
- parser.tokenHandler(open, inner);
- });
- var text = src.slice(lastEnd);
- if (trimLeading) text = trimLeft(text);
- this.textHandler(text);
- };
-
- Parser.prototype.textHandler = function (text) {
- this.push('write(' + JSON.stringify(text) + ');');
- };
-
- Parser.prototype.tokenHandler = function (open, inner) {
- var type = delimeters[open];
- if (type === 'directive') {
- this.compileTag(inner);
- } else if (type === 'output') {
- var extracted = this.extractEnt(inner, STRINGS, '@');
- //replace || operators with ~
- extracted.src = extracted.src.replace(/\|\|/g, '~').split('|');
- //put back || operators
- extracted.src = extracted.src.map(function (part) {
- return part.split('~').join('||');
- });
- var parts = this.injectEnt(extracted, '@');
- if (parts.length > 1) {
- var filters = parts.slice(1).map(this.parseFilter.bind(this));
- this.push('filter(' + this.parseExpr(parts[0]) + ',' + filters.join(',') + ');');
- } else {
- this.push('filter(' + this.parseExpr(parts[0]) + ');');
- }
- }
- };
-
- Parser.prototype.compileTag = function (str) {
- var directive = str.split(' ')[0];
- var handler = tagHandlers[directive];
- if (!handler) {
- throw new Error('Invalid tag: ' + str);
- }
- handler.call(this, str.slice(directive.length).trim());
- };
-
- Parser.prototype.parseFilter = function (src) {
- src = src.trim();
- var match = src.match(/[:(]/);
- var i = match ? match.index : -1;
- if (i < 0) return JSON.stringify([src]);
- var name = src.slice(0, i);
- var args = src.charAt(i) === ':' ? src.slice(i + 1) : src.slice(i + 1, -1);
- args = this.parseExpr(args, {terms: true});
- return '[' + JSON.stringify(name) + ',' + args + ']';
- };
-
- Parser.prototype.extractEnt = function (src, regex, placeholder) {
- var subs = [], isFunc = typeof placeholder == 'function';
- src = src.replace(regex, function (str) {
- var replacement = isFunc ? placeholder(str) : placeholder;
- if (replacement) {
- subs.push(str);
- return replacement;
- }
- return str;
- });
- return {src: src, subs: subs};
- };
-
- Parser.prototype.injectEnt = function (extracted, placeholder) {
- var src = extracted.src, subs = extracted.subs, isArr = Array.isArray(src);
- var arr = (isArr) ? src : [src];
- var re = new RegExp('[' + placeholder + ']', 'g'), i = 0;
- arr.forEach(function (src, index) {
- arr[index] = src.replace(re, function () {
- return subs[i++];
- });
- });
- return isArr ? arr : arr[0];
- };
-
- //replace complex literals without mistaking subscript notation with array literals
- Parser.prototype.replaceComplex = function (s) {
- var parsed = this.extractEnt(s, /i(\.i|\[[@#i]\])+/g, 'v');
- parsed.src = parsed.src.replace(NON_PRIMITIVES, '~');
- return this.injectEnt(parsed, 'v');
- };
-
- //parse expression containing literals (including objects/arrays) and variables (including dot and subscript notation)
- //valid expressions: `a + 1 > b.c or c == null`, `a and b[1] != c`, `(a < b) or (c < d and e)`, 'a || [1]`
- Parser.prototype.parseExpr = function (src, opts) {
- opts = opts || {};
- //extract string literals -> @
- var parsed1 = this.extractEnt(src, STRINGS, '@');
- //note: this will catch {not: 1} and a.is; could we replace temporarily and then check adjacent chars?
- parsed1.src = parsed1.src.replace(EOPS, function (s, before, op, after) {
- return (op in operators) ? before + operators[op] + after : s;
- });
- //sub out non-string literals (numbers/true/false/null) -> #
- // the distinction is necessary because @ can be object identifiers, # cannot
- var parsed2 = this.extractEnt(parsed1.src, IDENTS_AND_NUMS, function (s) {
- return (s in constants || NUMBER.test(s)) ? '#' : null;
- });
- //sub out object/variable identifiers -> i
- var parsed3 = this.extractEnt(parsed2.src, IDENTIFIERS, 'i');
- //remove white-space
- parsed3.src = parsed3.src.replace(/\s+/g, '');
-
- //the rest of this is simply to boil the expression down and check validity
- var simplified = parsed3.src;
- //sub out complex literals (objects/arrays) -> ~
- // the distinction is necessary because @ and # can be subscripts but ~ cannot
- while (simplified !== (simplified = this.replaceComplex(simplified))) ;
- //now @ represents strings, # represents other primitives and ~ represents non-primitives
- //replace complex variables (those with dot/subscript accessors) -> v
- while (simplified !== (simplified = simplified.replace(/i(\.i|\[[@#i]\])+/, 'v'))) ;
- //empty subscript or complex variables in subscript, are not permitted
- simplified = simplified.replace(/[iv]\[v?\]/g, 'x');
- //sub in "i" for @ and # and ~ and v (now "i" represents all literals, variables and identifiers)
- simplified = simplified.replace(/[@#~v]/g, 'i');
- //sub out operators
- simplified = simplified.replace(OPERATORS, '%');
- //allow 'not' unary operator
- simplified = simplified.replace(/!+[i]/g, 'i');
- var terms = opts.terms ? simplified.split(',') : [simplified];
- terms.forEach(function (term) {
- //simplify logical grouping
- while (term !== (term = term.replace(/\(i(%i)*\)/g, 'i'))) ;
- if (!term.match(/^i(%i)*/)) {
- throw new Error('Invalid expression: ' + src + " " + term);
- }
- });
- parsed3.src = parsed3.src.replace(VARIABLES, this.parseVar.bind(this));
- parsed2.src = this.injectEnt(parsed3, 'i');
- parsed1.src = this.injectEnt(parsed2, '#');
- return this.injectEnt(parsed1, '@');
- };
-
- Parser.prototype.parseVar = function (src) {
- var args = Array.prototype.slice.call(arguments);
- var str = args.pop(), index = args.pop();
- //quote bare object identifiers (might be a reserved word like {while: 1})
- if (src === 'i' && str.charAt(index + 1) === ':') {
- return '"i"';
- }
- var parts = ['"i"'];
- src.replace(ACCESSOR, function (part) {
- if (part === '.i') {
- parts.push('"i"');
- } else if (part === '[i]') {
- parts.push('get("i")');
- } else {
- parts.push(part.slice(1, -1));
- }
- });
- return 'get(' + parts.join(',') + ')';
- };
-
- //escapes a name to be used as a javascript identifier
- Parser.prototype.escName = function (str) {
- return str.replace(/\W/g, function (s) {
- return '$' + s.charCodeAt(0).toString(16);
- });
- };
-
- Parser.prototype.parseQuoted = function (str) {
- if (str.charAt(0) === "'") {
- str = str.slice(1, -1).replace(/\\.|"/, function (s) {
- if (s === "\\'") return "'";
- return s.charAt(0) === '\\' ? s : ('\\' + s);
- });
- str = '"' + str + '"';
- }
- //todo: try/catch or deal with invalid characters (linebreaks, control characters)
- return JSON.parse(str);
- };
-
-
- //the context 'this' inside tagHandlers is the parser instance
- var tagHandlers = {
- 'if': function (expr) {
- this.push('if (' + this.parseExpr(expr) + ') {');
- this.nest.unshift('if');
- },
- 'else': function () {
- if (this.nest[0] === 'for') {
- this.push('}, function() {');
- } else {
- this.push('} else {');
- }
- },
- 'elseif': function (expr) {
- this.push('} else if (' + this.parseExpr(expr) + ') {');
- },
- 'endif': function () {
- this.nest.shift();
- this.push('}');
- },
- 'for': function (str) {
- var i = str.indexOf(' in ');
- var name = str.slice(0, i).trim();
- var expr = str.slice(i + 4).trim();
- this.push('each(' + this.parseExpr(expr) + ',' + JSON.stringify(name) + ',function() {');
- this.nest.unshift('for');
- },
- 'endfor': function () {
- this.nest.shift();
- this.push('});');
- },
- 'raw': function () {
- this.rawMode = true;
- },
- 'endraw': function () {
- this.rawMode = false;
- },
- 'set': function (stmt) {
- var i = stmt.indexOf('=');
- var name = stmt.slice(0, i).trim();
- var expr = stmt.slice(i + 1).trim();
- this.push('set(' + JSON.stringify(name) + ',' + this.parseExpr(expr) + ');');
- },
- 'block': function (name) {
- if (this.isParent) {
- ++this.parentBlocks;
- var blockName = 'block_' + (this.escName(name) || this.parentBlocks);
- this.push('block(typeof ' + blockName + ' == "function" ? ' + blockName + ' : function() {');
- } else if (this.hasParent) {
- this.isSilent = false;
- ++this.childBlocks;
- blockName = 'block_' + (this.escName(name) || this.childBlocks);
- this.push('function ' + blockName + '() {');
- }
- this.nest.unshift('block');
- },
- 'endblock': function () {
- this.nest.shift();
- if (this.isParent) {
- this.push('});');
- } else if (this.hasParent) {
- this.push('}');
- this.isSilent = true;
- }
- },
- 'extends': function (name) {
- name = this.parseQuoted(name);
- var parentSrc = this.readTemplateFile(name);
- this.isParent = true;
- this.tokenize(parentSrc);
- this.isParent = false;
- this.hasParent = true;
- //silence output until we enter a child block
- this.isSilent = true;
- },
- 'include': function (name) {
- name = this.parseQuoted(name);
- var incSrc = this.readTemplateFile(name);
- this.isInclude = true;
- this.tokenize(incSrc);
- this.isInclude = false;
- }
- };
-
- //liquid style
- tagHandlers.assign = tagHandlers.set;
- //python/django style
- tagHandlers.elif = tagHandlers.elseif;
-
- var getRuntime = function runtime(data, opts) {
- var defaults = {autoEscape: 'toJson'};
- var _toString = Object.prototype.toString;
- var _hasOwnProperty = Object.prototype.hasOwnProperty;
- var getKeys = Object.keys || function (obj) {
- var keys = [];
- for (var n in obj) if (_hasOwnProperty.call(obj, n)) keys.push(n);
- return keys;
- };
- var isArray = Array.isArray || function (obj) {
- return _toString.call(obj) === '[object Array]';
- };
- var create = Object.create || function (obj) {
- function F() {
- }
-
- F.prototype = obj;
- return new F();
- };
- var toString = function (val) {
- if (val == null) return '';
- return (typeof val.toString == 'function') ? val.toString() : _toString.call(val);
- };
- var extend = function (dest, src) {
- var keys = getKeys(src);
- for (var i = 0, len = keys.length; i < len; i++) {
- var key = keys[i];
- dest[key] = src[key];
- }
- return dest;
- };
- //get a value, lexically, starting in current context; a.b -> get("a","b")
- var get = function () {
- var val, n = arguments[0], c = stack.length;
- while (c--) {
- val = stack[c][n];
- if (typeof val != 'undefined') break;
- }
- for (var i = 1, len = arguments.length; i < len; i++) {
- if (val == null) continue;
- n = arguments[i];
- val = (_hasOwnProperty.call(val, n)) ? val[n] : (typeof val._get == 'function' ? (val[n] = val._get(n)) : null);
- }
- return (val == null) ? '' : val;
- };
- var set = function (n, val) {
- stack[stack.length - 1][n] = val;
- };
- var push = function (ctx) {
- stack.push(ctx || {});
- };
- var pop = function () {
- stack.pop();
- };
- var write = function (str) {
- output.push(str);
- };
- var filter = function (val) {
- for (var i = 1, len = arguments.length; i < len; i++) {
- var arr = arguments[i], name = arr[0], filter = filters[name];
- if (filter) {
- arr[0] = val;
- //now arr looks like [val, arg1, arg2]
- val = filter.apply(data, arr);
- } else {
- throw new Error('Invalid filter: ' + name);
- }
- }
- if (opts.autoEscape && name !== opts.autoEscape && name !== 'safe') {
- //auto escape if not explicitly safe or already escaped
- val = filters[opts.autoEscape].call(data, val);
- }
- output.push(val);
- };
- var each = function (obj, loopvar, fn1, fn2) {
- if (obj == null) return;
- var arr = isArray(obj) ? obj : getKeys(obj), len = arr.length;
- var ctx = {loop: {length: len, first: arr[0], last: arr[len - 1]}};
- push(ctx);
- for (var i = 0; i < len; i++) {
- extend(ctx.loop, {index: i + 1, index0: i});
- fn1(ctx[loopvar] = arr[i]);
- }
- if (len === 0 && fn2) fn2();
- pop();
- };
- var block = function (fn) {
- push();
- fn();
- pop();
- };
- var render = function () {
- return output.join('');
- };
- data = data || {};
- opts = extend(defaults, opts || {});
- var filters = extend({
- html: function (val) {
- return toString(val)
- .split('&').join('&')
- .split('<').join('<')
- .split('>').join('>')
- .split('"').join('"');
- },
- safe: function (val) {
- return val;
- },
- toJson: function (val) {
- if (typeof val === 'object') {
- return JSON.stringify(val);
- }
- return toString(val);
- }
- }, opts.filters || {});
- var stack = [create(data || {})], output = [];
- return {
- get: get,
- set: set,
- push: push,
- pop: pop,
- write: write,
- filter: filter,
- each: each,
- block: block,
- render: render
- };
- };
-
- var runtime;
-
- jinja.compile = function (markup, opts) {
- opts = opts || {};
- var parser = new Parser();
- parser.readTemplateFile = this.readTemplateFile;
- var code = [];
- code.push('function render($) {');
- code.push('var get = $.get, set = $.set, push = $.push, pop = $.pop, write = $.write, filter = $.filter, each = $.each, block = $.block;');
- code.push.apply(code, parser.parse(markup));
- code.push('return $.render();');
- code.push('}');
- code = code.join('\n');
- if (opts.runtime === false) {
- var fn = new Function('data', 'options', 'return (' + code + ')(runtime(data, options))');
- } else {
- runtime = runtime || (runtime = getRuntime.toString());
- fn = new Function('data', 'options', 'return (' + code + ')((' + runtime + ')(data, options))');
- }
- return {render: fn};
- };
-
- jinja.render = function (markup, data, opts) {
- var tmpl = jinja.compile(markup);
- return tmpl.render(data, opts);
- };
-
- jinja.templateFiles = [];
-
- jinja.readTemplateFile = function (name) {
- var templateFiles = this.templateFiles || [];
- var templateFile = templateFiles[name];
- if (templateFile == null) {
- throw new Error('Template file not found: ' + name);
- }
- return templateFile;
- };
-
-
- /*!
- * Helpers
- */
-
- function trimLeft(str) {
- return str.replace(LEADING_SPACE, '');
- }
-
- function trimRight(str) {
- return str.replace(TRAILING_SPACE, '');
- }
-
- function matchAll(str, reg, fn) {
- //copy as global
- reg = new RegExp(reg.source, 'g' + (reg.ignoreCase ? 'i' : '') + (reg.multiline ? 'm' : ''));
- var match;
- while ((match = reg.exec(str))) {
- var result = fn(match[0], match.index, str);
- if (typeof result == 'number') {
- reg.lastIndex = result;
- }
- }
- }
-}));
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/json5.js b/tvboxqq/摸鱼儿/api/json5.js
deleted file mode 100644
index 10d7ab0..0000000
--- a/tvboxqq/摸鱼儿/api/json5.js
+++ /dev/null
@@ -1,1737 +0,0 @@
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.JSON5 = factory());
-}(this, (function () { 'use strict';
-
- function createCommonjsModule(fn, module) {
- return module = { exports: {} }, fn(module, module.exports), module.exports;
- }
-
- var _global = createCommonjsModule(function (module) {
- // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
- ? window : typeof self != 'undefined' && self.Math == Math ? self
- // eslint-disable-next-line no-new-func
- : Function('return this')();
- if (typeof __g == 'number') { __g = global; } // eslint-disable-line no-undef
- });
-
- var _core = createCommonjsModule(function (module) {
- var core = module.exports = { version: '2.6.5' };
- if (typeof __e == 'number') { __e = core; } // eslint-disable-line no-undef
- });
- var _core_1 = _core.version;
-
- var _isObject = function (it) {
- return typeof it === 'object' ? it !== null : typeof it === 'function';
- };
-
- var _anObject = function (it) {
- if (!_isObject(it)) { throw TypeError(it + ' is not an object!'); }
- return it;
- };
-
- var _fails = function (exec) {
- try {
- return !!exec();
- } catch (e) {
- return true;
- }
- };
-
- // Thank's IE8 for his funny defineProperty
- var _descriptors = !_fails(function () {
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
- });
-
- var document = _global.document;
- // typeof document.createElement is 'object' in old IE
- var is = _isObject(document) && _isObject(document.createElement);
- var _domCreate = function (it) {
- return is ? document.createElement(it) : {};
- };
-
- var _ie8DomDefine = !_descriptors && !_fails(function () {
- return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
- });
-
- // 7.1.1 ToPrimitive(input [, PreferredType])
-
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
- // and the second argument - flag - preferred type is a string
- var _toPrimitive = function (it, S) {
- if (!_isObject(it)) { return it; }
- var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; }
- if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) { return val; }
- if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) { return val; }
- throw TypeError("Can't convert object to primitive value");
- };
-
- var dP = Object.defineProperty;
-
- var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- _anObject(O);
- P = _toPrimitive(P, true);
- _anObject(Attributes);
- if (_ie8DomDefine) { try {
- return dP(O, P, Attributes);
- } catch (e) { /* empty */ } }
- if ('get' in Attributes || 'set' in Attributes) { throw TypeError('Accessors not supported!'); }
- if ('value' in Attributes) { O[P] = Attributes.value; }
- return O;
- };
-
- var _objectDp = {
- f: f
- };
-
- var _propertyDesc = function (bitmap, value) {
- return {
- enumerable: !(bitmap & 1),
- configurable: !(bitmap & 2),
- writable: !(bitmap & 4),
- value: value
- };
- };
-
- var _hide = _descriptors ? function (object, key, value) {
- return _objectDp.f(object, key, _propertyDesc(1, value));
- } : function (object, key, value) {
- object[key] = value;
- return object;
- };
-
- var hasOwnProperty = {}.hasOwnProperty;
- var _has = function (it, key) {
- return hasOwnProperty.call(it, key);
- };
-
- var id = 0;
- var px = Math.random();
- var _uid = function (key) {
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
- };
-
- var _library = false;
-
- var _shared = createCommonjsModule(function (module) {
- var SHARED = '__core-js_shared__';
- var store = _global[SHARED] || (_global[SHARED] = {});
-
- (module.exports = function (key, value) {
- return store[key] || (store[key] = value !== undefined ? value : {});
- })('versions', []).push({
- version: _core.version,
- mode: _library ? 'pure' : 'global',
- copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
- });
- });
-
- var _functionToString = _shared('native-function-to-string', Function.toString);
-
- var _redefine = createCommonjsModule(function (module) {
- var SRC = _uid('src');
-
- var TO_STRING = 'toString';
- var TPL = ('' + _functionToString).split(TO_STRING);
-
- _core.inspectSource = function (it) {
- return _functionToString.call(it);
- };
-
- (module.exports = function (O, key, val, safe) {
- var isFunction = typeof val == 'function';
- if (isFunction) { _has(val, 'name') || _hide(val, 'name', key); }
- if (O[key] === val) { return; }
- if (isFunction) { _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); }
- if (O === _global) {
- O[key] = val;
- } else if (!safe) {
- delete O[key];
- _hide(O, key, val);
- } else if (O[key]) {
- O[key] = val;
- } else {
- _hide(O, key, val);
- }
- // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
- })(Function.prototype, TO_STRING, function toString() {
- return typeof this == 'function' && this[SRC] || _functionToString.call(this);
- });
- });
-
- var _aFunction = function (it) {
- if (typeof it != 'function') { throw TypeError(it + ' is not a function!'); }
- return it;
- };
-
- // optional / simple context binding
-
- var _ctx = function (fn, that, length) {
- _aFunction(fn);
- if (that === undefined) { return fn; }
- switch (length) {
- case 1: return function (a) {
- return fn.call(that, a);
- };
- case 2: return function (a, b) {
- return fn.call(that, a, b);
- };
- case 3: return function (a, b, c) {
- return fn.call(that, a, b, c);
- };
- }
- return function (/* ...args */) {
- return fn.apply(that, arguments);
- };
- };
-
- var PROTOTYPE = 'prototype';
-
- var $export = function (type, name, source) {
- var IS_FORCED = type & $export.F;
- var IS_GLOBAL = type & $export.G;
- var IS_STATIC = type & $export.S;
- var IS_PROTO = type & $export.P;
- var IS_BIND = type & $export.B;
- var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];
- var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
- var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
- var key, own, out, exp;
- if (IS_GLOBAL) { source = name; }
- for (key in source) {
- // contains in native
- own = !IS_FORCED && target && target[key] !== undefined;
- // export native or passed
- out = (own ? target : source)[key];
- // bind timers to global for call from export context
- exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
- // extend global
- if (target) { _redefine(target, key, out, type & $export.U); }
- // export
- if (exports[key] != out) { _hide(exports, key, exp); }
- if (IS_PROTO && expProto[key] != out) { expProto[key] = out; }
- }
- };
- _global.core = _core;
- // type bitmap
- $export.F = 1; // forced
- $export.G = 2; // global
- $export.S = 4; // static
- $export.P = 8; // proto
- $export.B = 16; // bind
- $export.W = 32; // wrap
- $export.U = 64; // safe
- $export.R = 128; // real proto method for `library`
- var _export = $export;
-
- // 7.1.4 ToInteger
- var ceil = Math.ceil;
- var floor = Math.floor;
- var _toInteger = function (it) {
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
- };
-
- // 7.2.1 RequireObjectCoercible(argument)
- var _defined = function (it) {
- if (it == undefined) { throw TypeError("Can't call method on " + it); }
- return it;
- };
-
- // true -> String#at
- // false -> String#codePointAt
- var _stringAt = function (TO_STRING) {
- return function (that, pos) {
- var s = String(_defined(that));
- var i = _toInteger(pos);
- var l = s.length;
- var a, b;
- if (i < 0 || i >= l) { return TO_STRING ? '' : undefined; }
- a = s.charCodeAt(i);
- return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
- ? TO_STRING ? s.charAt(i) : a
- : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
- };
- };
-
- var $at = _stringAt(false);
- _export(_export.P, 'String', {
- // 21.1.3.3 String.prototype.codePointAt(pos)
- codePointAt: function codePointAt(pos) {
- return $at(this, pos);
- }
- });
-
- var codePointAt = _core.String.codePointAt;
-
- var max = Math.max;
- var min = Math.min;
- var _toAbsoluteIndex = function (index, length) {
- index = _toInteger(index);
- return index < 0 ? max(index + length, 0) : min(index, length);
- };
-
- var fromCharCode = String.fromCharCode;
- var $fromCodePoint = String.fromCodePoint;
-
- // length should be 1, old FF problem
- _export(_export.S + _export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
- // 21.1.2.2 String.fromCodePoint(...codePoints)
- fromCodePoint: function fromCodePoint(x) {
- var arguments$1 = arguments;
- // eslint-disable-line no-unused-vars
- var res = [];
- var aLen = arguments.length;
- var i = 0;
- var code;
- while (aLen > i) {
- code = +arguments$1[i++];
- if (_toAbsoluteIndex(code, 0x10ffff) !== code) { throw RangeError(code + ' is not a valid code point'); }
- res.push(code < 0x10000
- ? fromCharCode(code)
- : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
- );
- } return res.join('');
- }
- });
-
- var fromCodePoint = _core.String.fromCodePoint;
-
- // This is a generated file. Do not edit.
- var Space_Separator = /[\u1680\u2000-\u200A\u202F\u205F\u3000]/;
- var ID_Start = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/;
- var ID_Continue = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/;
-
- var unicode = {
- Space_Separator: Space_Separator,
- ID_Start: ID_Start,
- ID_Continue: ID_Continue
- };
-
- var util = {
- isSpaceSeparator: function isSpaceSeparator (c) {
- return typeof c === 'string' && unicode.Space_Separator.test(c)
- },
-
- isIdStartChar: function isIdStartChar (c) {
- return typeof c === 'string' && (
- (c >= 'a' && c <= 'z') ||
- (c >= 'A' && c <= 'Z') ||
- (c === '$') || (c === '_') ||
- unicode.ID_Start.test(c)
- )
- },
-
- isIdContinueChar: function isIdContinueChar (c) {
- return typeof c === 'string' && (
- (c >= 'a' && c <= 'z') ||
- (c >= 'A' && c <= 'Z') ||
- (c >= '0' && c <= '9') ||
- (c === '$') || (c === '_') ||
- (c === '\u200C') || (c === '\u200D') ||
- unicode.ID_Continue.test(c)
- )
- },
-
- isDigit: function isDigit (c) {
- return typeof c === 'string' && /[0-9]/.test(c)
- },
-
- isHexDigit: function isHexDigit (c) {
- return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)
- },
- };
-
- var source;
- var parseState;
- var stack;
- var pos;
- var line;
- var column;
- var token;
- var key;
- var root;
-
- var parse = function parse (text, reviver) {
- source = String(text);
- parseState = 'start';
- stack = [];
- pos = 0;
- line = 1;
- column = 0;
- token = undefined;
- key = undefined;
- root = undefined;
-
- do {
- token = lex();
-
- // This code is unreachable.
- // if (!parseStates[parseState]) {
- // throw invalidParseState()
- // }
-
- parseStates[parseState]();
- } while (token.type !== 'eof')
-
- if (typeof reviver === 'function') {
- return internalize({'': root}, '', reviver)
- }
-
- return root
- };
-
- function internalize (holder, name, reviver) {
- var value = holder[name];
- if (value != null && typeof value === 'object') {
- if (Array.isArray(value)) {
- for (var i = 0; i < value.length; i++) {
- var key = String(i);
- var replacement = internalize(value, key, reviver);
- if (replacement === undefined) {
- delete value[key];
- } else {
- Object.defineProperty(value, key, {
- value: replacement,
- writable: true,
- enumerable: true,
- configurable: true,
- });
- }
- }
- } else {
- for (var key$1 in value) {
- var replacement$1 = internalize(value, key$1, reviver);
- if (replacement$1 === undefined) {
- delete value[key$1];
- } else {
- Object.defineProperty(value, key$1, {
- value: replacement$1,
- writable: true,
- enumerable: true,
- configurable: true,
- });
- }
- }
- }
- }
-
- return reviver.call(holder, name, value)
- }
-
- var lexState;
- var buffer;
- var doubleQuote;
- var sign;
- var c;
-
- function lex () {
- lexState = 'default';
- buffer = '';
- doubleQuote = false;
- sign = 1;
-
- for (;;) {
- c = peek();
-
- // This code is unreachable.
- // if (!lexStates[lexState]) {
- // throw invalidLexState(lexState)
- // }
-
- var token = lexStates[lexState]();
- if (token) {
- return token
- }
- }
- }
-
- function peek () {
- if (source[pos]) {
- return String.fromCodePoint(source.codePointAt(pos))
- }
- }
-
- function read () {
- var c = peek();
-
- if (c === '\n') {
- line++;
- column = 0;
- } else if (c) {
- column += c.length;
- } else {
- column++;
- }
-
- if (c) {
- pos += c.length;
- }
-
- return c
- }
-
- var lexStates = {
- default: function default$1 () {
- switch (c) {
- case '\t':
- case '\v':
- case '\f':
- case ' ':
- case '\u00A0':
- case '\uFEFF':
- case '\n':
- case '\r':
- case '\u2028':
- case '\u2029':
- read();
- return
-
- case '/':
- read();
- lexState = 'comment';
- return
-
- case undefined:
- read();
- return newToken('eof')
- }
-
- if (util.isSpaceSeparator(c)) {
- read();
- return
- }
-
- // This code is unreachable.
- // if (!lexStates[parseState]) {
- // throw invalidLexState(parseState)
- // }
-
- return lexStates[parseState]()
- },
-
- comment: function comment () {
- switch (c) {
- case '*':
- read();
- lexState = 'multiLineComment';
- return
-
- case '/':
- read();
- lexState = 'singleLineComment';
- return
- }
-
- throw invalidChar(read())
- },
-
- multiLineComment: function multiLineComment () {
- switch (c) {
- case '*':
- read();
- lexState = 'multiLineCommentAsterisk';
- return
-
- case undefined:
- throw invalidChar(read())
- }
-
- read();
- },
-
- multiLineCommentAsterisk: function multiLineCommentAsterisk () {
- switch (c) {
- case '*':
- read();
- return
-
- case '/':
- read();
- lexState = 'default';
- return
-
- case undefined:
- throw invalidChar(read())
- }
-
- read();
- lexState = 'multiLineComment';
- },
-
- singleLineComment: function singleLineComment () {
- switch (c) {
- case '\n':
- case '\r':
- case '\u2028':
- case '\u2029':
- read();
- lexState = 'default';
- return
-
- case undefined:
- read();
- return newToken('eof')
- }
-
- read();
- },
-
- value: function value () {
- switch (c) {
- case '{':
- case '[':
- return newToken('punctuator', read())
-
- case 'n':
- read();
- literal('ull');
- return newToken('null', null)
-
- case 't':
- read();
- literal('rue');
- return newToken('boolean', true)
-
- case 'f':
- read();
- literal('alse');
- return newToken('boolean', false)
-
- case '-':
- case '+':
- if (read() === '-') {
- sign = -1;
- }
-
- lexState = 'sign';
- return
-
- case '.':
- buffer = read();
- lexState = 'decimalPointLeading';
- return
-
- case '0':
- buffer = read();
- lexState = 'zero';
- return
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- buffer = read();
- lexState = 'decimalInteger';
- return
-
- case 'I':
- read();
- literal('nfinity');
- return newToken('numeric', Infinity)
-
- case 'N':
- read();
- literal('aN');
- return newToken('numeric', NaN)
-
- case '"':
- case "'":
- doubleQuote = (read() === '"');
- buffer = '';
- lexState = 'string';
- return
- }
-
- throw invalidChar(read())
- },
-
- identifierNameStartEscape: function identifierNameStartEscape () {
- if (c !== 'u') {
- throw invalidChar(read())
- }
-
- read();
- var u = unicodeEscape();
- switch (u) {
- case '$':
- case '_':
- break
-
- default:
- if (!util.isIdStartChar(u)) {
- throw invalidIdentifier()
- }
-
- break
- }
-
- buffer += u;
- lexState = 'identifierName';
- },
-
- identifierName: function identifierName () {
- switch (c) {
- case '$':
- case '_':
- case '\u200C':
- case '\u200D':
- buffer += read();
- return
-
- case '\\':
- read();
- lexState = 'identifierNameEscape';
- return
- }
-
- if (util.isIdContinueChar(c)) {
- buffer += read();
- return
- }
-
- return newToken('identifier', buffer)
- },
-
- identifierNameEscape: function identifierNameEscape () {
- if (c !== 'u') {
- throw invalidChar(read())
- }
-
- read();
- var u = unicodeEscape();
- switch (u) {
- case '$':
- case '_':
- case '\u200C':
- case '\u200D':
- break
-
- default:
- if (!util.isIdContinueChar(u)) {
- throw invalidIdentifier()
- }
-
- break
- }
-
- buffer += u;
- lexState = 'identifierName';
- },
-
- sign: function sign$1 () {
- switch (c) {
- case '.':
- buffer = read();
- lexState = 'decimalPointLeading';
- return
-
- case '0':
- buffer = read();
- lexState = 'zero';
- return
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- buffer = read();
- lexState = 'decimalInteger';
- return
-
- case 'I':
- read();
- literal('nfinity');
- return newToken('numeric', sign * Infinity)
-
- case 'N':
- read();
- literal('aN');
- return newToken('numeric', NaN)
- }
-
- throw invalidChar(read())
- },
-
- zero: function zero () {
- switch (c) {
- case '.':
- buffer += read();
- lexState = 'decimalPoint';
- return
-
- case 'e':
- case 'E':
- buffer += read();
- lexState = 'decimalExponent';
- return
-
- case 'x':
- case 'X':
- buffer += read();
- lexState = 'hexadecimal';
- return
- }
-
- return newToken('numeric', sign * 0)
- },
-
- decimalInteger: function decimalInteger () {
- switch (c) {
- case '.':
- buffer += read();
- lexState = 'decimalPoint';
- return
-
- case 'e':
- case 'E':
- buffer += read();
- lexState = 'decimalExponent';
- return
- }
-
- if (util.isDigit(c)) {
- buffer += read();
- return
- }
-
- return newToken('numeric', sign * Number(buffer))
- },
-
- decimalPointLeading: function decimalPointLeading () {
- if (util.isDigit(c)) {
- buffer += read();
- lexState = 'decimalFraction';
- return
- }
-
- throw invalidChar(read())
- },
-
- decimalPoint: function decimalPoint () {
- switch (c) {
- case 'e':
- case 'E':
- buffer += read();
- lexState = 'decimalExponent';
- return
- }
-
- if (util.isDigit(c)) {
- buffer += read();
- lexState = 'decimalFraction';
- return
- }
-
- return newToken('numeric', sign * Number(buffer))
- },
-
- decimalFraction: function decimalFraction () {
- switch (c) {
- case 'e':
- case 'E':
- buffer += read();
- lexState = 'decimalExponent';
- return
- }
-
- if (util.isDigit(c)) {
- buffer += read();
- return
- }
-
- return newToken('numeric', sign * Number(buffer))
- },
-
- decimalExponent: function decimalExponent () {
- switch (c) {
- case '+':
- case '-':
- buffer += read();
- lexState = 'decimalExponentSign';
- return
- }
-
- if (util.isDigit(c)) {
- buffer += read();
- lexState = 'decimalExponentInteger';
- return
- }
-
- throw invalidChar(read())
- },
-
- decimalExponentSign: function decimalExponentSign () {
- if (util.isDigit(c)) {
- buffer += read();
- lexState = 'decimalExponentInteger';
- return
- }
-
- throw invalidChar(read())
- },
-
- decimalExponentInteger: function decimalExponentInteger () {
- if (util.isDigit(c)) {
- buffer += read();
- return
- }
-
- return newToken('numeric', sign * Number(buffer))
- },
-
- hexadecimal: function hexadecimal () {
- if (util.isHexDigit(c)) {
- buffer += read();
- lexState = 'hexadecimalInteger';
- return
- }
-
- throw invalidChar(read())
- },
-
- hexadecimalInteger: function hexadecimalInteger () {
- if (util.isHexDigit(c)) {
- buffer += read();
- return
- }
-
- return newToken('numeric', sign * Number(buffer))
- },
-
- string: function string () {
- switch (c) {
- case '\\':
- read();
- buffer += escape();
- return
-
- case '"':
- if (doubleQuote) {
- read();
- return newToken('string', buffer)
- }
-
- buffer += read();
- return
-
- case "'":
- if (!doubleQuote) {
- read();
- return newToken('string', buffer)
- }
-
- buffer += read();
- return
-
- case '\n':
- case '\r':
- throw invalidChar(read())
-
- case '\u2028':
- case '\u2029':
- separatorChar(c);
- break
-
- case undefined:
- throw invalidChar(read())
- }
-
- buffer += read();
- },
-
- start: function start () {
- switch (c) {
- case '{':
- case '[':
- return newToken('punctuator', read())
-
- // This code is unreachable since the default lexState handles eof.
- // case undefined:
- // return newToken('eof')
- }
-
- lexState = 'value';
- },
-
- beforePropertyName: function beforePropertyName () {
- switch (c) {
- case '$':
- case '_':
- buffer = read();
- lexState = 'identifierName';
- return
-
- case '\\':
- read();
- lexState = 'identifierNameStartEscape';
- return
-
- case '}':
- return newToken('punctuator', read())
-
- case '"':
- case "'":
- doubleQuote = (read() === '"');
- lexState = 'string';
- return
- }
-
- if (util.isIdStartChar(c)) {
- buffer += read();
- lexState = 'identifierName';
- return
- }
-
- throw invalidChar(read())
- },
-
- afterPropertyName: function afterPropertyName () {
- if (c === ':') {
- return newToken('punctuator', read())
- }
-
- throw invalidChar(read())
- },
-
- beforePropertyValue: function beforePropertyValue () {
- lexState = 'value';
- },
-
- afterPropertyValue: function afterPropertyValue () {
- switch (c) {
- case ',':
- case '}':
- return newToken('punctuator', read())
- }
-
- throw invalidChar(read())
- },
-
- beforeArrayValue: function beforeArrayValue () {
- if (c === ']') {
- return newToken('punctuator', read())
- }
-
- lexState = 'value';
- },
-
- afterArrayValue: function afterArrayValue () {
- switch (c) {
- case ',':
- case ']':
- return newToken('punctuator', read())
- }
-
- throw invalidChar(read())
- },
-
- end: function end () {
- // This code is unreachable since it's handled by the default lexState.
- // if (c === undefined) {
- // read()
- // return newToken('eof')
- // }
-
- throw invalidChar(read())
- },
- };
-
- function newToken (type, value) {
- return {
- type: type,
- value: value,
- line: line,
- column: column,
- }
- }
-
- function literal (s) {
- for (var i = 0, list = s; i < list.length; i += 1) {
- var c = list[i];
-
- var p = peek();
-
- if (p !== c) {
- throw invalidChar(read())
- }
-
- read();
- }
- }
-
- function escape () {
- var c = peek();
- switch (c) {
- case 'b':
- read();
- return '\b'
-
- case 'f':
- read();
- return '\f'
-
- case 'n':
- read();
- return '\n'
-
- case 'r':
- read();
- return '\r'
-
- case 't':
- read();
- return '\t'
-
- case 'v':
- read();
- return '\v'
-
- case '0':
- read();
- if (util.isDigit(peek())) {
- throw invalidChar(read())
- }
-
- return '\0'
-
- case 'x':
- read();
- return hexEscape()
-
- case 'u':
- read();
- return unicodeEscape()
-
- case '\n':
- case '\u2028':
- case '\u2029':
- read();
- return ''
-
- case '\r':
- read();
- if (peek() === '\n') {
- read();
- }
-
- return ''
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- throw invalidChar(read())
-
- case undefined:
- throw invalidChar(read())
- }
-
- return read()
- }
-
- function hexEscape () {
- var buffer = '';
- var c = peek();
-
- if (!util.isHexDigit(c)) {
- throw invalidChar(read())
- }
-
- buffer += read();
-
- c = peek();
- if (!util.isHexDigit(c)) {
- throw invalidChar(read())
- }
-
- buffer += read();
-
- return String.fromCodePoint(parseInt(buffer, 16))
- }
-
- function unicodeEscape () {
- var buffer = '';
- var count = 4;
-
- while (count-- > 0) {
- var c = peek();
- if (!util.isHexDigit(c)) {
- throw invalidChar(read())
- }
-
- buffer += read();
- }
-
- return String.fromCodePoint(parseInt(buffer, 16))
- }
-
- var parseStates = {
- start: function start () {
- if (token.type === 'eof') {
- throw invalidEOF()
- }
-
- push();
- },
-
- beforePropertyName: function beforePropertyName () {
- switch (token.type) {
- case 'identifier':
- case 'string':
- key = token.value;
- parseState = 'afterPropertyName';
- return
-
- case 'punctuator':
- // This code is unreachable since it's handled by the lexState.
- // if (token.value !== '}') {
- // throw invalidToken()
- // }
-
- pop();
- return
-
- case 'eof':
- throw invalidEOF()
- }
-
- // This code is unreachable since it's handled by the lexState.
- // throw invalidToken()
- },
-
- afterPropertyName: function afterPropertyName () {
- // This code is unreachable since it's handled by the lexState.
- // if (token.type !== 'punctuator' || token.value !== ':') {
- // throw invalidToken()
- // }
-
- if (token.type === 'eof') {
- throw invalidEOF()
- }
-
- parseState = 'beforePropertyValue';
- },
-
- beforePropertyValue: function beforePropertyValue () {
- if (token.type === 'eof') {
- throw invalidEOF()
- }
-
- push();
- },
-
- beforeArrayValue: function beforeArrayValue () {
- if (token.type === 'eof') {
- throw invalidEOF()
- }
-
- if (token.type === 'punctuator' && token.value === ']') {
- pop();
- return
- }
-
- push();
- },
-
- afterPropertyValue: function afterPropertyValue () {
- // This code is unreachable since it's handled by the lexState.
- // if (token.type !== 'punctuator') {
- // throw invalidToken()
- // }
-
- if (token.type === 'eof') {
- throw invalidEOF()
- }
-
- switch (token.value) {
- case ',':
- parseState = 'beforePropertyName';
- return
-
- case '}':
- pop();
- }
-
- // This code is unreachable since it's handled by the lexState.
- // throw invalidToken()
- },
-
- afterArrayValue: function afterArrayValue () {
- // This code is unreachable since it's handled by the lexState.
- // if (token.type !== 'punctuator') {
- // throw invalidToken()
- // }
-
- if (token.type === 'eof') {
- throw invalidEOF()
- }
-
- switch (token.value) {
- case ',':
- parseState = 'beforeArrayValue';
- return
-
- case ']':
- pop();
- }
-
- // This code is unreachable since it's handled by the lexState.
- // throw invalidToken()
- },
-
- end: function end () {
- // This code is unreachable since it's handled by the lexState.
- // if (token.type !== 'eof') {
- // throw invalidToken()
- // }
- },
- };
-
- function push () {
- var value;
-
- switch (token.type) {
- case 'punctuator':
- switch (token.value) {
- case '{':
- value = {};
- break
-
- case '[':
- value = [];
- break
- }
-
- break
-
- case 'null':
- case 'boolean':
- case 'numeric':
- case 'string':
- value = token.value;
- break
-
- // This code is unreachable.
- // default:
- // throw invalidToken()
- }
-
- if (root === undefined) {
- root = value;
- } else {
- var parent = stack[stack.length - 1];
- if (Array.isArray(parent)) {
- parent.push(value);
- } else {
- Object.defineProperty(parent, key, {
- value: value,
- writable: true,
- enumerable: true,
- configurable: true,
- });
- }
- }
-
- if (value !== null && typeof value === 'object') {
- stack.push(value);
-
- if (Array.isArray(value)) {
- parseState = 'beforeArrayValue';
- } else {
- parseState = 'beforePropertyName';
- }
- } else {
- var current = stack[stack.length - 1];
- if (current == null) {
- parseState = 'end';
- } else if (Array.isArray(current)) {
- parseState = 'afterArrayValue';
- } else {
- parseState = 'afterPropertyValue';
- }
- }
- }
-
- function pop () {
- stack.pop();
-
- var current = stack[stack.length - 1];
- if (current == null) {
- parseState = 'end';
- } else if (Array.isArray(current)) {
- parseState = 'afterArrayValue';
- } else {
- parseState = 'afterPropertyValue';
- }
- }
-
- // This code is unreachable.
- // function invalidParseState () {
- // return new Error(`JSON5: invalid parse state '${parseState}'`)
- // }
-
- // This code is unreachable.
- // function invalidLexState (state) {
- // return new Error(`JSON5: invalid lex state '${state}'`)
- // }
-
- function invalidChar (c) {
- if (c === undefined) {
- return syntaxError(("JSON5: invalid end of input at " + line + ":" + column))
- }
-
- return syntaxError(("JSON5: invalid character '" + (formatChar(c)) + "' at " + line + ":" + column))
- }
-
- function invalidEOF () {
- return syntaxError(("JSON5: invalid end of input at " + line + ":" + column))
- }
-
- // This code is unreachable.
- // function invalidToken () {
- // if (token.type === 'eof') {
- // return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)
- // }
-
- // const c = String.fromCodePoint(token.value.codePointAt(0))
- // return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)
- // }
-
- function invalidIdentifier () {
- column -= 5;
- return syntaxError(("JSON5: invalid identifier character at " + line + ":" + column))
- }
-
- function separatorChar (c) {
- console.warn(("JSON5: '" + (formatChar(c)) + "' in strings is not valid ECMAScript; consider escaping"));
- }
-
- function formatChar (c) {
- var replacements = {
- "'": "\\'",
- '"': '\\"',
- '\\': '\\\\',
- '\b': '\\b',
- '\f': '\\f',
- '\n': '\\n',
- '\r': '\\r',
- '\t': '\\t',
- '\v': '\\v',
- '\0': '\\0',
- '\u2028': '\\u2028',
- '\u2029': '\\u2029',
- };
-
- if (replacements[c]) {
- return replacements[c]
- }
-
- if (c < ' ') {
- var hexString = c.charCodeAt(0).toString(16);
- return '\\x' + ('00' + hexString).substring(hexString.length)
- }
-
- return c
- }
-
- function syntaxError (message) {
- var err = new SyntaxError(message);
- err.lineNumber = line;
- err.columnNumber = column;
- return err
- }
-
- var stringify = function stringify (value, replacer, space) {
- var stack = [];
- var indent = '';
- var propertyList;
- var replacerFunc;
- var gap = '';
- var quote;
-
- if (
- replacer != null &&
- typeof replacer === 'object' &&
- !Array.isArray(replacer)
- ) {
- space = replacer.space;
- quote = replacer.quote;
- replacer = replacer.replacer;
- }
-
- if (typeof replacer === 'function') {
- replacerFunc = replacer;
- } else if (Array.isArray(replacer)) {
- propertyList = [];
- for (var i = 0, list = replacer; i < list.length; i += 1) {
- var v = list[i];
-
- var item = (void 0);
-
- if (typeof v === 'string') {
- item = v;
- } else if (
- typeof v === 'number' ||
- v instanceof String ||
- v instanceof Number
- ) {
- item = String(v);
- }
-
- if (item !== undefined && propertyList.indexOf(item) < 0) {
- propertyList.push(item);
- }
- }
- }
-
- if (space instanceof Number) {
- space = Number(space);
- } else if (space instanceof String) {
- space = String(space);
- }
-
- if (typeof space === 'number') {
- if (space > 0) {
- space = Math.min(10, Math.floor(space));
- gap = ' '.substr(0, space);
- }
- } else if (typeof space === 'string') {
- gap = space.substr(0, 10);
- }
-
- return serializeProperty('', {'': value})
-
- function serializeProperty (key, holder) {
- var value = holder[key];
- if (value != null) {
- if (typeof value.toJSON5 === 'function') {
- value = value.toJSON5(key);
- } else if (typeof value.toJSON === 'function') {
- value = value.toJSON(key);
- }
- }
-
- if (replacerFunc) {
- value = replacerFunc.call(holder, key, value);
- }
-
- if (value instanceof Number) {
- value = Number(value);
- } else if (value instanceof String) {
- value = String(value);
- } else if (value instanceof Boolean) {
- value = value.valueOf();
- }
-
- switch (value) {
- case null: return 'null'
- case true: return 'true'
- case false: return 'false'
- }
-
- if (typeof value === 'string') {
- return quoteString(value, false)
- }
-
- if (typeof value === 'number') {
- return String(value)
- }
-
- if (typeof value === 'object') {
- return Array.isArray(value) ? serializeArray(value) : serializeObject(value)
- }
-
- return undefined
- }
-
- function quoteString (value) {
- var quotes = {
- "'": 0.1,
- '"': 0.2,
- };
-
- var replacements = {
- "'": "\\'",
- '"': '\\"',
- '\\': '\\\\',
- '\b': '\\b',
- '\f': '\\f',
- '\n': '\\n',
- '\r': '\\r',
- '\t': '\\t',
- '\v': '\\v',
- '\0': '\\0',
- '\u2028': '\\u2028',
- '\u2029': '\\u2029',
- };
-
- var product = '';
-
- for (var i = 0; i < value.length; i++) {
- var c = value[i];
- switch (c) {
- case "'":
- case '"':
- quotes[c]++;
- product += c;
- continue
-
- case '\0':
- if (util.isDigit(value[i + 1])) {
- product += '\\x00';
- continue
- }
- }
-
- if (replacements[c]) {
- product += replacements[c];
- continue
- }
-
- if (c < ' ') {
- var hexString = c.charCodeAt(0).toString(16);
- product += '\\x' + ('00' + hexString).substring(hexString.length);
- continue
- }
-
- product += c;
- }
-
- var quoteChar = quote || Object.keys(quotes).reduce(function (a, b) { return (quotes[a] < quotes[b]) ? a : b; });
-
- product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);
-
- return quoteChar + product + quoteChar
- }
-
- function serializeObject (value) {
- if (stack.indexOf(value) >= 0) {
- throw TypeError('Converting circular structure to JSON5')
- }
-
- stack.push(value);
-
- var stepback = indent;
- indent = indent + gap;
-
- var keys = propertyList || Object.keys(value);
- var partial = [];
- for (var i = 0, list = keys; i < list.length; i += 1) {
- var key = list[i];
-
- var propertyString = serializeProperty(key, value);
- if (propertyString !== undefined) {
- var member = serializeKey(key) + ':';
- if (gap !== '') {
- member += ' ';
- }
- member += propertyString;
- partial.push(member);
- }
- }
-
- var final;
- if (partial.length === 0) {
- final = '{}';
- } else {
- var properties;
- if (gap === '') {
- properties = partial.join(',');
- final = '{' + properties + '}';
- } else {
- var separator = ',\n' + indent;
- properties = partial.join(separator);
- final = '{\n' + indent + properties + ',\n' + stepback + '}';
- }
- }
-
- stack.pop();
- indent = stepback;
- return final
- }
-
- function serializeKey (key) {
- if (key.length === 0) {
- return quoteString(key, true)
- }
-
- var firstChar = String.fromCodePoint(key.codePointAt(0));
- if (!util.isIdStartChar(firstChar)) {
- return quoteString(key, true)
- }
-
- for (var i = firstChar.length; i < key.length; i++) {
- if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {
- return quoteString(key, true)
- }
- }
-
- return key
- }
-
- function serializeArray (value) {
- if (stack.indexOf(value) >= 0) {
- throw TypeError('Converting circular structure to JSON5')
- }
-
- stack.push(value);
-
- var stepback = indent;
- indent = indent + gap;
-
- var partial = [];
- for (var i = 0; i < value.length; i++) {
- var propertyString = serializeProperty(String(i), value);
- partial.push((propertyString !== undefined) ? propertyString : 'null');
- }
-
- var final;
- if (partial.length === 0) {
- final = '[]';
- } else {
- if (gap === '') {
- var properties = partial.join(',');
- final = '[' + properties + ']';
- } else {
- var separator = ',\n' + indent;
- var properties$1 = partial.join(separator);
- final = '[\n' + indent + properties$1 + ',\n' + stepback + ']';
- }
- }
-
- stack.pop();
- indent = stepback;
- return final
- }
- };
-
- var JSON5 = {
- parse: parse,
- stringify: stringify,
- };
-
- var lib = JSON5;
-
- var es5 = lib;
-
- return es5;
-
-})));
diff --git a/tvboxqq/摸鱼儿/api/node-rsa.js b/tvboxqq/摸鱼儿/api/node-rsa.js
deleted file mode 100644
index b5ca093..0000000
--- a/tvboxqq/摸鱼儿/api/node-rsa.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! For license information please see node-rsa.bundle.js.LICENSE.txt */
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.NODERSA=e():t.NODERSA=e()}(globalThis,(()=>(()=>{var t={6395:t=>{t.exports={newInvalidAsn1Error:function(t){var e=new Error;return e.name="InvalidAsn1Error",e.message=t||"",e}}},5670:(t,e,r)=>{var n=r(6395),i=r(6299),o=r(3319),s=r(1431);for(var a in t.exports={Reader:o,Writer:s},i)i.hasOwnProperty(a)&&(t.exports[a]=i[a]);for(var f in n)n.hasOwnProperty(f)&&(t.exports[f]=n[f])},3319:(t,e,r)=>{var n=r(4529),i=r(4774).Buffer,o=r(6299),s=r(6395).newInvalidAsn1Error;function a(t){if(!t||!i.isBuffer(t))throw new TypeError("data must be a node Buffer");this._buf=t,this._size=t.length,this._len=0,this._offset=0}Object.defineProperty(a.prototype,"length",{enumerable:!0,get:function(){return this._len}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){return this._offset}}),Object.defineProperty(a.prototype,"remain",{get:function(){return this._size-this._offset}}),Object.defineProperty(a.prototype,"buffer",{get:function(){return this._buf.slice(this._offset)}}),a.prototype.readByte=function(t){if(this._size-this._offset<1)return null;var e=255&this._buf[this._offset];return t||(this._offset+=1),e},a.prototype.peek=function(){return this.readByte(!0)},a.prototype.readLength=function(t){if(void 0===t&&(t=this._offset),t>=this._size)return null;var e=255&this._buf[t++];if(null===e)return null;if(128&~e)this._len=e;else{if(0==(e&=127))throw s("Indefinite length not supported");if(e>4)throw s("encoding too long");if(this._size-tthis._size-n)return null;if(this._offset=n,0===this.length)return e?i.alloc(0):"";var a=this._buf.slice(this._offset,this._offset+this.length);return this._offset+=this.length,e?a:a.toString("utf8")},a.prototype.readOID=function(t){t||(t=o.OID);var e=this.readString(t,!0);if(null===e)return null;for(var r=[],n=0,i=0;i4)throw s("Integer too long: "+this.length);if(this.length>this._size-r)return null;this._offset=r;for(var i=this._buf[this._offset],o=0,a=0;a{t.exports={EOC:0,Boolean:1,Integer:2,BitString:3,OctetString:4,Null:5,OID:6,ObjectDescriptor:7,External:8,Real:9,Enumeration:10,PDV:11,Utf8String:12,RelativeOID:13,Sequence:16,Set:17,NumericString:18,PrintableString:19,T61String:20,VideotexString:21,IA5String:22,UTCTime:23,GeneralizedTime:24,GraphicString:25,VisibleString:26,GeneralString:28,UniversalString:29,CharacterString:30,BMPString:31,Constructor:32,Context:128}},1431:(t,e,r)=>{var n=r(4529),i=r(4774).Buffer,o=r(6299),s=r(6395).newInvalidAsn1Error,a={size:1024,growthFactor:8};function f(t){var e,r;e=a,r=t||{},n.ok(e),n.equal(typeof e,"object"),n.ok(r),n.equal(typeof r,"object"),Object.getOwnPropertyNames(e).forEach((function(t){if(!r[t]){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n)}})),t=r,this._buf=i.alloc(t.size||1024),this._size=this._buf.length,this._offset=0,this._options=t,this._seq=[]}Object.defineProperty(f.prototype,"buffer",{get:function(){if(this._seq.length)throw s(this._seq.length+" unended sequence(s)");return this._buf.slice(0,this._offset)}}),f.prototype.writeByte=function(t){if("number"!=typeof t)throw new TypeError("argument must be a Number");this._ensure(1),this._buf[this._offset++]=t},f.prototype.writeInt=function(t,e){if("number"!=typeof t)throw new TypeError("argument must be a Number");"number"!=typeof e&&(e=o.Integer);for(var r=4;(!(4286578688&t)||-8388608==(4286578688&t))&&r>1;)r--,t<<=8;if(r>4)throw s("BER ints cannot be > 0xffffffff");for(this._ensure(2+r),this._buf[this._offset++]=e,this._buf[this._offset++]=r;r-- >0;)this._buf[this._offset++]=(4278190080&t)>>>24,t<<=8},f.prototype.writeNull=function(){this.writeByte(o.Null),this.writeByte(0)},f.prototype.writeEnumeration=function(t,e){if("number"!=typeof t)throw new TypeError("argument must be a Number");return"number"!=typeof e&&(e=o.Enumeration),this.writeInt(t,e)},f.prototype.writeBoolean=function(t,e){if("boolean"!=typeof t)throw new TypeError("argument must be a Boolean");"number"!=typeof e&&(e=o.Boolean),this._ensure(3),this._buf[this._offset++]=e,this._buf[this._offset++]=1,this._buf[this._offset++]=t?255:0},f.prototype.writeString=function(t,e){if("string"!=typeof t)throw new TypeError("argument must be a string (was: "+typeof t+")");"number"!=typeof e&&(e=o.OctetString);var r=i.byteLength(t);this.writeByte(e),this.writeLength(r),r&&(this._ensure(r),this._buf.write(t,this._offset),this._offset+=r)},f.prototype.writeBuffer=function(t,e){if("number"!=typeof e)throw new TypeError("tag must be a number");if(!i.isBuffer(t))throw new TypeError("argument must be a buffer");this.writeByte(e),this.writeLength(t.length),this._ensure(t.length),t.copy(this._buf,this._offset,0,t.length),this._offset+=t.length},f.prototype.writeStringArray=function(t){if(!t instanceof Array)throw new TypeError("argument must be an Array[String]");var e=this;t.forEach((function(t){e.writeString(t)}))},f.prototype.writeOID=function(t,e){if("string"!=typeof t)throw new TypeError("argument must be a string");if("number"!=typeof e&&(e=o.OID),!/^([0-9]+\.){3,}[0-9]+$/.test(t))throw new Error("argument is not a valid OID string");var r=t.split("."),n=[];n.push(40*parseInt(r[0],10)+parseInt(r[1],10)),r.slice(2).forEach((function(t){!function(t,e){e<128?t.push(e):e<16384?(t.push(e>>>7|128),t.push(127&e)):e<2097152?(t.push(e>>>14|128),t.push(e>>>7&255|128),t.push(127&e)):e<268435456?(t.push(e>>>21|128),t.push(e>>>14&255|128),t.push(e>>>7&255|128),t.push(127&e)):(t.push(e>>>28&255|128),t.push(e>>>21&255|128),t.push(e>>>14&255|128),t.push(e>>>7&255|128),t.push(127&e))}(n,parseInt(t,10))}));var i=this;this._ensure(2+n.length),this.writeByte(e),this.writeLength(n.length),n.forEach((function(t){i.writeByte(t)}))},f.prototype.writeLength=function(t){if("number"!=typeof t)throw new TypeError("argument must be a Number");if(this._ensure(4),t<=127)this._buf[this._offset++]=t;else if(t<=255)this._buf[this._offset++]=129,this._buf[this._offset++]=t;else if(t<=65535)this._buf[this._offset++]=130,this._buf[this._offset++]=t>>8,this._buf[this._offset++]=t;else{if(!(t<=16777215))throw s("Length too long (> 4 bytes)");this._buf[this._offset++]=131,this._buf[this._offset++]=t>>16,this._buf[this._offset++]=t>>8,this._buf[this._offset++]=t}},f.prototype.startSequence=function(t){"number"!=typeof t&&(t=o.Sequence|o.Constructor),this.writeByte(t),this._seq.push(this._offset),this._ensure(3),this._offset+=3},f.prototype.endSequence=function(){var t=this._seq.pop(),e=t+3,r=this._offset-e;if(r<=127)this._shift(e,r,-2),this._buf[t]=r;else if(r<=255)this._shift(e,r,-1),this._buf[t]=129,this._buf[t+1]=r;else if(r<=65535)this._buf[t]=130,this._buf[t+1]=r>>8,this._buf[t+2]=r;else{if(!(r<=16777215))throw s("Sequence too long");this._shift(e,r,1),this._buf[t]=131,this._buf[t+1]=r>>16,this._buf[t+2]=r>>8,this._buf[t+3]=r}},f.prototype._shift=function(t,e,r){n.ok(void 0!==t),n.ok(void 0!==e),n.ok(r),this._buf.copy(this._buf,t+r,t,t+e),this._offset+=r},f.prototype._ensure=function(t){if(n.ok(t),this._size-this._offset{var n=r(5670);t.exports={Ber:n,BerReader:n.Reader,BerWriter:n.Writer}},4529:(t,e,r)=>{"use strict";var n=r(1514)();function i(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,o=Math.min(r,n);i=0;u--)if(c[u]!==h[u])return!1;for(u=c.length-1;u>=0;u--)if(!S(t[a=c[u]],e[a],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function _(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function b(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function E(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&v(i,r,"Missing expected exception"+n);var o="string"==typeof n,a=!t&&i&&!r;if((!t&&s.isError(i)&&o&&b(i,r)||a)&&v(i,r,"Got unwanted exception"+n),t&&i&&r&&!b(i,r)||!t&&i)throw i}p.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=g(d(this.actual),128)+" "+this.operator+" "+g(d(this.expected),128),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=y(e),o=n.indexOf("\n"+i);if(o>=0){var s=n.indexOf("\n",o+1);n=n.substring(s+1)}this.stack=n}}},s.inherits(p.AssertionError,Error),p.fail=v,p.ok=m,p.equal=function(t,e,r){t!=e&&v(t,e,r,"==",p.equal)},p.notEqual=function(t,e,r){t==e&&v(t,e,r,"!=",p.notEqual)},p.deepEqual=function(t,e,r){S(t,e,!1)||v(t,e,r,"deepEqual",p.deepEqual)},p.deepStrictEqual=function(t,e,r){S(t,e,!0)||v(t,e,r,"deepStrictEqual",p.deepStrictEqual)},p.notDeepEqual=function(t,e,r){S(t,e,!1)&&v(t,e,r,"notDeepEqual",p.notDeepEqual)},p.notDeepStrictEqual=function t(e,r,n){S(e,r,!0)&&v(e,r,n,"notDeepStrictEqual",t)},p.strictEqual=function(t,e,r){t!==e&&v(t,e,r,"===",p.strictEqual)},p.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,"!==",p.notStrictEqual)},p.throws=function(t,e,r){E(!0,t,e,r)},p.doesNotThrow=function(t,e,r){E(!1,t,e,r)},p.ifError=function(t){if(t)throw t},p.strict=n((function t(e,r){e||v(e,!0,r,"==",t)}),p,{equal:p.strictEqual,deepEqual:p.deepStrictEqual,notEqual:p.notStrictEqual,notDeepEqual:p.notDeepStrictEqual}),p.strict.strict=p.strict;var w=Object.keys||function(t){var e=[];for(var r in t)a.call(t,r)&&e.push(r);return e}},6100:t=>{"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},3845:t=>{t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},4591:(t,e,r)=>{var n=r(5606),i=/%[sdj%]/g;e.format=function(t){if(!v(t)){for(var e=[],r=0;r=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),f=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),y(r)?n.showHidden=r:r&&e._extend(n,r),m(n.showHidden)&&(n.showHidden=!1),m(n.depth)&&(n.depth=2),m(n.colors)&&(n.colors=!1),m(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=f),c(n,t,n.depth)}function f(t,e){var r=a.styles[e];return r?"["+a.colors[r][0]+"m"+t+"["+a.colors[r][1]+"m":t}function u(t,e){return t}function c(t,r,n){if(t.customInspect&&r&&w(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,t);return v(i)||(i=c(t,i,n)),i}var o=function(t,e){if(m(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return d(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0}(t,r);if(o)return o;var s=Object.keys(r),a=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(r)),E(r)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return h(r);if(0===s.length){if(w(r)){var f=r.name?": "+r.name:"";return t.stylize("[Function"+f+"]","special")}if(S(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(b(r))return t.stylize(Date.prototype.toString.call(r),"date");if(E(r))return h(r)}var u,_="",O=!1,B=["{","}"];return l(r)&&(O=!0,B=["[","]"]),w(r)&&(_=" [Function"+(r.name?": "+r.name:"")+"]"),S(r)&&(_=" "+RegExp.prototype.toString.call(r)),b(r)&&(_=" "+Date.prototype.toUTCString.call(r)),E(r)&&(_=" "+h(r)),0!==s.length||O&&0!=r.length?n<0?S(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),u=O?function(t,e,r,n,i){for(var o=[],s=0,a=e.length;s60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(u,_,B)):B[0]+_+B[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function p(t,e,r,n,i,o){var s,a,f;if((f=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?a=f.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):f.set&&(a=t.stylize("[Setter]","special")),x(n,i)||(s="["+i+"]"),a||(t.seen.indexOf(f.value)<0?(a=g(r)?c(t,f.value,null):c(t,f.value,r-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+a.split("\n").map((function(t){return" "+t})).join("\n")):a=t.stylize("[Circular]","special")),m(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+a}function l(t){return Array.isArray(t)}function y(t){return"boolean"==typeof t}function g(t){return null===t}function d(t){return"number"==typeof t}function v(t){return"string"==typeof t}function m(t){return void 0===t}function S(t){return _(t)&&"[object RegExp]"===O(t)}function _(t){return"object"==typeof t&&null!==t}function b(t){return _(t)&&"[object Date]"===O(t)}function E(t){return _(t)&&("[object Error]"===O(t)||t instanceof Error)}function w(t){return"function"==typeof t}function O(t){return Object.prototype.toString.call(t)}function B(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(m(o)&&(o=n.env.NODE_DEBUG||""),t=t.toUpperCase(),!s[t])if(new RegExp("\\b"+t+"\\b","i").test(o)){var r=n.pid;s[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else s[t]=function(){};return s[t]},e.inspect=a,a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},a.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.isArray=l,e.isBoolean=y,e.isNull=g,e.isNullOrUndefined=function(t){return null==t},e.isNumber=d,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=m,e.isRegExp=S,e.isObject=_,e.isDate=b,e.isError=E,e.isFunction=w,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(3845);var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function x(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[B((t=new Date).getHours()),B(t.getMinutes()),B(t.getSeconds())].join(":"),[t.getDate(),A[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(6100),e._extend=function(t,e){if(!e||!_(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}},7526:(t,e)=>{"use strict";e.byteLength=function(t){var e=a(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,o=a(t),s=o[0],f=o[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,s,f)),c=0,h=f>0?s-4:s;for(r=0;r>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===f&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===f&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],s=16383,a=0,u=n-i;au?u:a+s));return 1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=o[s],n[o.charCodeAt(s)]=s;function a(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function f(t,e,n){for(var i,o,s=[],a=e;a>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},8287:(t,e,r)=>{"use strict";var n=r(7526),i=r(251);e.Buffer=a,e.SlowBuffer=function(t){return+t!=t&&(t=0),a.alloc(+t)},e.INSPECT_MAX_BYTES=50;var o=2147483647;function s(t){if(t>o)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return c(t)}return f(t,e,r)}function f(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|l(t,e),n=s(r),i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return h(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(H(t,ArrayBuffer)||t&&H(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|t}function l(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||H(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return U(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return M(t).length;default:if(i)return n?-1:U(t).length;e=(""+e).toLowerCase(),i=!0}}function y(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return T(this,e,r);case"utf8":case"utf-8":return B(this,e,r);case"ascii":return x(this,e,r);case"latin1":case"binary":return P(this,e,r);case"base64":return O(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function g(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),F(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:v(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):v(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function v(t,e,r,n,i){var o,s=1,a=t.length,f=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,f/=2,r/=2}function u(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var c=-1;for(o=r;oa&&(r=a-f),o=r;o>=0;o--){for(var h=!0,p=0;pi&&(n=i):n=i;var o=e.length;n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function O(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function B(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:u>223?3:u>191?2:1;if(i+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128==(192&(o=t[i+1]))&&(f=(31&u)<<6|63&o)>127&&(c=f);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(f=(15&u)<<12|(63&o)<<6|63&s)>2047&&(f<55296||f>57343)&&(c=f);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(f=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&f<1114112&&(c=f)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),i+=h}return function(t){var e=t.length;if(e<=A)return String.fromCharCode.apply(String,t);for(var r="",n=0;nr&&(t+=" ... "),""},a.prototype.compare=function(t,e,r,n,i){if(H(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),f=Math.min(o,s),u=this.slice(n,i),c=t.slice(e,r),h=0;h>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return S(this,t,e,r);case"ascii":return _(this,t,e,r);case"latin1":case"binary":return b(this,t,e,r);case"base64":return E(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return w(this,t,e,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function x(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;ii)&&(r=i);for(var o="",s=e;sr)throw new RangeError("Trying to access beyond buffer length")}function D(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function R(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function N(t,e,r,n,o){return e=+e,r>>>=0,o||R(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function L(t,e,r,n,o){return e=+e,r>>>=0,o||R(t,0,r,8),i.write(t,e,r,n,52,8),r+8}a.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||k(t,e,this.length);for(var n=this[t],i=1,o=0;++o>>=0,e>>>=0,r||k(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return t>>>=0,e||k(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return t>>>=0,e||k(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return t>>>=0,e||k(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return t>>>=0,e||k(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return t>>>=0,e||k(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||k(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||k(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},a.prototype.readInt8=function(t,e){return t>>>=0,e||k(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},a.prototype.readInt16LE=function(t,e){t>>>=0,e||k(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){t>>>=0,e||k(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return t>>>=0,e||k(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return t>>>=0,e||k(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return t>>>=0,e||k(t,4,this.length),i.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return t>>>=0,e||k(t,4,this.length),i.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return t>>>=0,e||k(t,8,this.length),i.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return t>>>=0,e||k(t,8,this.length),i.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){t=+t,e>>>=0,r>>>=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,n||D(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,o=1;for(this[e+i]=255&t;--i>=0&&(o*=256);)this[e+i]=t/o&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,1,255,0),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>>=0,!n){var i=Math.pow(2,8*r-1);D(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s|0)-a&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||D(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeFloatLE=function(t,e,r){return N(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return N(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return L(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return L(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(!a.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},a.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function M(t){return n.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(C,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function j(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function H(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function F(t){return t!=t}},8075:(t,e,r)=>{"use strict";var n=r(453),i=r(487),o=i(n("String.prototype.indexOf"));t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&o(t,".prototype.")>-1?i(r):r}},487:(t,e,r)=>{"use strict";var n=r(6743),i=r(453),o=r(6897),s=r(9675),a=i("%Function.prototype.apply%"),f=i("%Function.prototype.call%"),u=i("%Reflect.apply%",!0)||n.call(f,a),c=r(655),h=i("%Math.max%");t.exports=function(t){if("function"!=typeof t)throw new s("a function is required");var e=u(n,f,arguments);return o(e,1+h(0,t.length-(arguments.length-1)),!0)};var p=function(){return u(n,a,arguments)};c?c(t.exports,"apply",{value:p}):t.exports.apply=p},955:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib.BlockCipher,r=t.algo,i=[],o=[],s=[],a=[],f=[],u=[],c=[],h=[],p=[],l=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,n=0;for(e=0;e<256;e++){var y=n^n<<1^n<<2^n<<3^n<<4;y=y>>>8^255&y^99,i[r]=y,o[y]=r;var g=t[r],d=t[g],v=t[d],m=257*t[y]^16843008*y;s[r]=m<<24|m>>>8,a[r]=m<<16|m>>>16,f[r]=m<<8|m>>>24,u[r]=m,m=16843009*v^65537*d^257*g^16843008*r,c[y]=m<<24|m>>>8,h[y]=m<<16|m>>>16,p[y]=m<<8|m>>>24,l[y]=m,r?(r=g^t[t[t[v^g]]],n^=t[t[n]]):r=n=1}}();var y=[0,1,2,4,8,16,32,64,128,27,54],g=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s6&&s%r==4&&(a=i[a>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a]):(a=i[(a=a<<8|a>>>24)>>>24]<<24|i[a>>>16&255]<<16|i[a>>>8&255]<<8|i[255&a],a^=y[s/r|0]<<24),o[s]=o[s-r]^a}for(var f=this._invKeySchedule=[],u=0;u>>24]]^h[i[a>>>16&255]]^p[i[a>>>8&255]]^l[i[255&a]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,a,f,u,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,c,h,p,l,o),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var f=this._nRounds,u=t[e]^r[0],c=t[e+1]^r[1],h=t[e+2]^r[2],p=t[e+3]^r[3],l=4,y=1;y>>24]^i[c>>>16&255]^o[h>>>8&255]^s[255&p]^r[l++],d=n[c>>>24]^i[h>>>16&255]^o[p>>>8&255]^s[255&u]^r[l++],v=n[h>>>24]^i[p>>>16&255]^o[u>>>8&255]^s[255&c]^r[l++],m=n[p>>>24]^i[u>>>16&255]^o[c>>>8&255]^s[255&h]^r[l++];u=g,c=d,h=v,p=m}g=(a[u>>>24]<<24|a[c>>>16&255]<<16|a[h>>>8&255]<<8|a[255&p])^r[l++],d=(a[c>>>24]<<24|a[h>>>16&255]<<16|a[p>>>8&255]<<8|a[255&u])^r[l++],v=(a[h>>>24]<<24|a[p>>>16&255]<<16|a[u>>>8&255]<<8|a[255&c])^r[l++],m=(a[p>>>24]<<24|a[u>>>16&255]<<16|a[c>>>8&255]<<8|a[255&h])^r[l++],t[e]=g,t[e+1]=d,t[e+2]=v,t[e+3]=m},keySize:8});t.AES=e._createHelper(g)}(),n.AES)},7165:function(t,e,r){var n,i,o,s,a,f,u,c,h,p,l,y,g,d,v,m,S,_,b;t.exports=(n=r(9021),r(9506),void(n.lib.Cipher||(i=n,o=i.lib,s=o.Base,a=o.WordArray,f=o.BufferedBlockAlgorithm,u=i.enc,u.Utf8,c=u.Base64,h=i.algo.EvpKDF,p=o.Cipher=f.extend({cfg:s.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,r){this.cfg=this.cfg.extend(r),this._xformMode=t,this._key=e,this.reset()},reset:function(){f.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?b:S}return function(e){return{encrypt:function(r,n,i){return t(n).encrypt(e,r,n,i)},decrypt:function(r,n,i){return t(n).decrypt(e,r,n,i)}}}}()}),o.StreamCipher=p.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),l=i.mode={},y=o.BlockCipherMode=s.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),g=l.CBC=function(){var t=y.extend();function e(t,e,r){var n=this._iv;if(n){var i=n;this._iv=void 0}else i=this._prevBlock;for(var o=0;o>>2];t.sigBytes-=e}},o.BlockCipher=p.extend({cfg:p.cfg.extend({mode:g,padding:d}),reset:function(){p.reset.call(this);var t=this.cfg,e=t.iv,r=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else n=r.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(r,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),v=o.CipherParams=s.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}}),m=(i.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;if(r)var n=a.create([1398893684,1701076831]).concat(r).concat(e);else n=e;return n.toString(c)},parse:function(t){var e=c.parse(t),r=e.words;if(1398893684==r[0]&&1701076831==r[1]){var n=a.create(r.slice(2,4));r.splice(0,4),e.sigBytes-=16}return v.create({ciphertext:e,salt:n})}},S=o.SerializableCipher=s.extend({cfg:s.extend({format:m}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=t.createEncryptor(r,n),o=i.finalize(e),s=i.cfg;return v.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,r,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(r,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),_=(i.kdf={}).OpenSSL={execute:function(t,e,r,n){n||(n=a.random(8));var i=h.create({keySize:e+r}).compute(t,n),o=a.create(i.words.slice(e),4*r);return i.sigBytes=4*e,v.create({key:i,iv:o,salt:n})}},b=o.PasswordBasedCipher=S.extend({cfg:S.cfg.extend({kdf:_}),encrypt:function(t,e,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,t.keySize,t.ivSize);n.iv=i.iv;var o=S.encrypt.call(this,t,e,i.key,n);return o.mixIn(i),o},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=n.kdf.execute(r,t.keySize,t.ivSize,e.salt);return n.iv=i.iv,S.decrypt.call(this,t,e,i.key,n)}}))))},9021:function(t,e){var r;t.exports=(r=r||function(t,e){var r=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),n={},i=n.lib={},o=i.Base={extend:function(t){var e=r(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},s=i.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||f).stringify(this)},concat:function(t){var e=this.words,r=t.words,n=this.sigBytes,i=t.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var r,n=[],i=function(e){var r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return i/=4294967296,(i+=.5)*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new s.init(r,e/2)}},u=a.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new s.init(r,e)}},c=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},h=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=c.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),f=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*o,u=t.min(4*f,i);if(f){for(var c=0;c>>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a>>6*(3-a)&63));var f=n.charAt(64);if(f)for(;i.length%4;)i.push(f);return i.join("")},parse:function(t){var e=t.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var i=0;i>>6-s%4*2;n[i>>>2]|=(a|f)<<24-i%4*8,i++}return o.create(n,i)}(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},n.enc.Base64)},5503:function(t,e,r){var n;t.exports=(n=r(9021),function(){var t=n,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i>>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var r=t.length,n=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return e.create(n,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o>>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),n.enc.Utf16)},9506:function(t,e,r){var n,i,o,s,a,f,u,c;t.exports=(c=r(9021),r(5471),r(1025),o=(i=(n=c).lib).Base,s=i.WordArray,f=(a=n.algo).MD5,u=a.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:f,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=r.hasher.create(),i=s.create(),o=i.words,a=r.keySize,f=r.iterations;o.lengthn&&(e=t.finalize(e)),e.clamp();for(var i=this._oKey=e.clone(),s=this._iKey=e.clone(),a=i.words,f=s.words,u=0;u>>2]|=t[i]<<24-i%4*8;e.call(this,n,r)}else e.apply(this,arguments)};r.prototype=t}}(),n.lib.WordArray)},4636:function(t,e,r){var n;t.exports=(n=r(9021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=[];!function(){for(var e=0;e<64;e++)a[e]=4294967296*t.abs(t.sin(e+1))|0}();var f=s.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,s=t[e+0],f=t[e+1],l=t[e+2],y=t[e+3],g=t[e+4],d=t[e+5],v=t[e+6],m=t[e+7],S=t[e+8],_=t[e+9],b=t[e+10],E=t[e+11],w=t[e+12],O=t[e+13],B=t[e+14],A=t[e+15],x=o[0],P=o[1],T=o[2],I=o[3];x=u(x,P,T,I,s,7,a[0]),I=u(I,x,P,T,f,12,a[1]),T=u(T,I,x,P,l,17,a[2]),P=u(P,T,I,x,y,22,a[3]),x=u(x,P,T,I,g,7,a[4]),I=u(I,x,P,T,d,12,a[5]),T=u(T,I,x,P,v,17,a[6]),P=u(P,T,I,x,m,22,a[7]),x=u(x,P,T,I,S,7,a[8]),I=u(I,x,P,T,_,12,a[9]),T=u(T,I,x,P,b,17,a[10]),P=u(P,T,I,x,E,22,a[11]),x=u(x,P,T,I,w,7,a[12]),I=u(I,x,P,T,O,12,a[13]),T=u(T,I,x,P,B,17,a[14]),x=c(x,P=u(P,T,I,x,A,22,a[15]),T,I,f,5,a[16]),I=c(I,x,P,T,v,9,a[17]),T=c(T,I,x,P,E,14,a[18]),P=c(P,T,I,x,s,20,a[19]),x=c(x,P,T,I,d,5,a[20]),I=c(I,x,P,T,b,9,a[21]),T=c(T,I,x,P,A,14,a[22]),P=c(P,T,I,x,g,20,a[23]),x=c(x,P,T,I,_,5,a[24]),I=c(I,x,P,T,B,9,a[25]),T=c(T,I,x,P,y,14,a[26]),P=c(P,T,I,x,S,20,a[27]),x=c(x,P,T,I,O,5,a[28]),I=c(I,x,P,T,l,9,a[29]),T=c(T,I,x,P,m,14,a[30]),x=h(x,P=c(P,T,I,x,w,20,a[31]),T,I,d,4,a[32]),I=h(I,x,P,T,S,11,a[33]),T=h(T,I,x,P,E,16,a[34]),P=h(P,T,I,x,B,23,a[35]),x=h(x,P,T,I,f,4,a[36]),I=h(I,x,P,T,g,11,a[37]),T=h(T,I,x,P,m,16,a[38]),P=h(P,T,I,x,b,23,a[39]),x=h(x,P,T,I,O,4,a[40]),I=h(I,x,P,T,s,11,a[41]),T=h(T,I,x,P,y,16,a[42]),P=h(P,T,I,x,v,23,a[43]),x=h(x,P,T,I,_,4,a[44]),I=h(I,x,P,T,w,11,a[45]),T=h(T,I,x,P,A,16,a[46]),x=p(x,P=h(P,T,I,x,l,23,a[47]),T,I,s,6,a[48]),I=p(I,x,P,T,m,10,a[49]),T=p(T,I,x,P,B,15,a[50]),P=p(P,T,I,x,d,21,a[51]),x=p(x,P,T,I,w,6,a[52]),I=p(I,x,P,T,y,10,a[53]),T=p(T,I,x,P,b,15,a[54]),P=p(P,T,I,x,f,21,a[55]),x=p(x,P,T,I,S,6,a[56]),I=p(I,x,P,T,A,10,a[57]),T=p(T,I,x,P,v,15,a[58]),P=p(P,T,I,x,O,21,a[59]),x=p(x,P,T,I,g,6,a[60]),I=p(I,x,P,T,E,10,a[61]),T=p(T,I,x,P,l,15,a[62]),P=p(P,T,I,x,_,21,a[63]),o[0]=o[0]+x|0,o[1]=o[1]+P|0,o[2]=o[2]+T|0,o[3]=o[3]+I|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;r[i>>>5]|=128<<24-i%32;var o=t.floor(n/4294967296),s=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,f=a.words,u=0;u<4;u++){var c=f[u];f[u]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return a},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function u(t,e,r,n,i,o,s){var a=t+(e&r|~e&n)+i+s;return(a<>>32-o)+e}function c(t,e,r,n,i,o,s){var a=t+(e&n|r&~n)+i+s;return(a<>>32-o)+e}function h(t,e,r,n,i,o,s){var a=t+(e^r^n)+i+s;return(a<>>32-o)+e}function p(t,e,r,n,i,o,s){var a=t+(r^(e|~n))+i+s;return(a<>>32-o)+e}e.MD5=o._createHelper(f),e.HmacMD5=o._createHmacHelper(f)}(Math),n.MD5)},2169:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.mode.CFB=function(){var t=n.lib.BlockCipherMode.extend();function e(t,e,r,n){var i=this._iv;if(i){var o=i.slice(0);this._iv=void 0}else o=this._prevBlock;n.encryptBlock(o,0);for(var s=0;s>24))t+=1<<24;else{var e=t>>16&255,r=t>>8&255,n=255&t;255===e?(e=0,255===r?(r=0,255===n?n=0:++n):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=n}return t}var r=t.Encryptor=t.extend({processBlock:function(t,r){var n=this._cipher,i=n.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),function(t){0===(t[0]=e(t[0]))&&(t[1]=e(t[1]))}(s);var a=s.slice(0);n.encryptBlock(a,0);for(var f=0;f>>2]|=i<<24-o%4*8,t.sigBytes+=i},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Ansix923)},4905:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Iso10126)},482:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.Iso97971={pad:function(t,e){t.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(t,e)},unpad:function(t){n.pad.ZeroPadding.unpad(t),t.sigBytes--}},n.pad.Iso97971)},8124:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},2155:function(t,e,r){var n;t.exports=(n=r(9021),r(7165),n.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){for(var e=t.words,r=t.sigBytes-1;!(e[r>>>2]>>>24-r%4*8&255);)r--;t.sigBytes=r+1}},n.pad.ZeroPadding)},19:function(t,e,r){var n,i,o,s,a,f,u,c,h;t.exports=(h=r(9021),r(5471),r(1025),o=(i=(n=h).lib).Base,s=i.WordArray,f=(a=n.algo).SHA1,u=a.HMAC,c=a.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:f,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=u.create(r.hasher,t),i=s.create(),o=s.create([1]),a=i.words,f=o.words,c=r.keySize,h=r.iterations;a.length>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)f.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(e){var o=e.words,s=o[0],a=o[1],u=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=u>>>16|4294901760&c,p=c<<16|65535&u;for(n[0]^=u,n[1]^=h,n[2]^=c,n[3]^=p,n[4]^=u,n[5]^=h,n[6]^=c,n[7]^=p,i=0;i<4;i++)f.call(this)}},_doProcessBlock:function(t,e){var r=this._X;f.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function f(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,f=((i*i>>>17)+i*a>>>15)+a*a,u=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=f^u}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.RabbitLegacy=e._createHelper(a)}(),n.RabbitLegacy)},6298:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=[],o=[],s=[],a=r.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=0;r<4;r++)t[r]=16711935&(t[r]<<8|t[r]>>>24)|4278255360&(t[r]<<24|t[r]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)f.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(e){var o=e.words,s=o[0],a=o[1],u=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),c=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=u>>>16|4294901760&c,p=c<<16|65535&u;for(i[0]^=u,i[1]^=h,i[2]^=c,i[3]^=p,i[4]^=u,i[5]^=h,i[6]^=c,i[7]^=p,r=0;r<4;r++)f.call(this)}},_doProcessBlock:function(t,e){var r=this._X;f.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function f(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,f=((i*i>>>17)+i*a>>>15)+a*a,u=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=f^u}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.Rabbit=e._createHelper(a)}(),n.Rabbit)},7193:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,n=this._S=[],i=0;i<256;i++)n[i]=i;i=0;for(var o=0;i<256;i++){var s=i%r,a=e[s>>>2]>>>24-s%4*8&255;o=(o+n[i]+a)%256;var f=n[i];n[i]=n[o],n[o]=f}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,n|=t[(t[e]+t[r])%256]<<24-8*i}return this._i=e,this._j=r,n}t.RC4=e._createHelper(i);var s=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(s)}(),n.RC4)},8056:function(t,e,r){var n;t.exports=(n=r(9021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),f=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),u=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),c=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),h=i.create([0,1518500249,1859775393,2400959708,2840853838]),p=i.create([1352829926,1548603684,1836072691,2053994217,0]),l=s.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,s,l,_,b,E,w,O,B,A,x,P=this._hash.words,T=h.words,I=p.words,k=a.words,D=f.words,R=u.words,N=c.words;for(E=o=P[0],w=s=P[1],O=l=P[2],B=_=P[3],A=b=P[4],r=0;r<80;r+=1)x=o+t[e+k[r]]|0,x+=r<16?y(s,l,_)+T[0]:r<32?g(s,l,_)+T[1]:r<48?d(s,l,_)+T[2]:r<64?v(s,l,_)+T[3]:m(s,l,_)+T[4],x=(x=S(x|=0,R[r]))+b|0,o=b,b=_,_=S(l,10),l=s,s=x,x=E+t[e+D[r]]|0,x+=r<16?m(w,O,B)+I[0]:r<32?v(w,O,B)+I[1]:r<48?d(w,O,B)+I[2]:r<64?g(w,O,B)+I[3]:y(w,O,B)+I[4],x=(x=S(x|=0,N[r]))+A|0,E=A,A=B,B=S(O,10),O=w,w=x;x=P[1]+l+B|0,P[1]=P[2]+_+A|0,P[2]=P[3]+b+E|0,P[3]=P[4]+o+w|0,P[4]=P[0]+s+O|0,P[0]=x},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var i=this._hash,o=i.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function y(t,e,r){return t^e^r}function g(t,e,r){return t&e|~t&r}function d(t,e,r){return(t|~e)^r}function v(t,e,r){return t&r|e&~r}function m(t,e,r){return t^(e|~r)}function S(t,e){return t<>>32-e}e.RIPEMD160=o._createHelper(l),e.HmacRIPEMD160=o._createHmacHelper(l)}(Math),n.RIPEMD160)},5471:function(t,e,r){var n,i,o,s,a,f,u,c;t.exports=(i=(n=c=r(9021)).lib,o=i.WordArray,s=i.Hasher,a=n.algo,f=[],u=a.SHA1=s.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],u=0;u<80;u++){if(u<16)f[u]=0|t[e+u];else{var c=f[u-3]^f[u-8]^f[u-14]^f[u-16];f[u]=c<<1|c>>>31}var h=(n<<5|n>>>27)+a+f[u];h+=u<20?1518500249+(i&o|~i&s):u<40?1859775393+(i^o^s):u<60?(i&o|i&s|o&s)-1894007588:(i^o^s)-899497514,a=s,s=o,o=i<<30|i>>>2,i=n,n=h}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(n+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=s.clone.call(this);return t._hash=this._hash.clone(),t}}),n.SHA1=s._createHelper(u),n.HmacSHA1=s._createHmacHelper(u),c.SHA1)},6308:function(t,e,r){var n,i,o,s,a,f;t.exports=(f=r(9021),r(3009),i=(n=f).lib.WordArray,o=n.algo,s=o.SHA256,a=o.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=4,t}}),n.SHA224=s._createHelper(a),n.HmacSHA224=s._createHmacHelper(a),f.SHA224)},3009:function(t,e,r){var n;t.exports=(n=r(9021),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=[],f=[];!function(){function e(e){for(var r=t.sqrt(e),n=2;n<=r;n++)if(!(e%n))return!1;return!0}function r(t){return 4294967296*(t-(0|t))|0}for(var n=2,i=0;i<64;)e(n)&&(i<8&&(a[i]=r(t.pow(n,.5))),f[i]=r(t.pow(n,1/3)),i++),n++}();var u=[],c=s.SHA256=o.extend({_doReset:function(){this._hash=new i.init(a.slice(0))},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],c=r[5],h=r[6],p=r[7],l=0;l<64;l++){if(l<16)u[l]=0|t[e+l];else{var y=u[l-15],g=(y<<25|y>>>7)^(y<<14|y>>>18)^y>>>3,d=u[l-2],v=(d<<15|d>>>17)^(d<<13|d>>>19)^d>>>10;u[l]=g+u[l-7]+v+u[l-16]}var m=n&i^n&o^i&o,S=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),_=p+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&c^~a&h)+f[l]+u[l];p=h,h=c,c=a,a=s+_|0,s=o,o=i,i=n,n=_+(S+m)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0,r[5]=r[5]+c|0,r[6]=r[6]+h|0,r[7]=r[7]+p|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(c),e.HmacSHA256=o._createHmacHelper(c)}(Math),n.SHA256)},5953:function(t,e,r){var n;t.exports=(n=r(9021),r(3240),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.x64.Word,a=e.algo,f=[],u=[],c=[];!function(){for(var t=1,e=0,r=0;r<24;r++){f[t+5*e]=(r+1)*(r+2)/2%64;var n=(2*t+3*e)%5;t=e%5,e=n}for(t=0;t<5;t++)for(e=0;e<5;e++)u[t+5*e]=e+(2*t+3*e)%5*5;for(var i=1,o=0;o<24;o++){for(var a=0,h=0,p=0;p<7;p++){if(1&i){var l=(1<>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(P=r[i]).high^=s,P.low^=o}for(var a=0;a<24;a++){for(var p=0;p<5;p++){for(var l=0,y=0,g=0;g<5;g++)l^=(P=r[p+5*g]).high,y^=P.low;var d=h[p];d.high=l,d.low=y}for(p=0;p<5;p++){var v=h[(p+4)%5],m=h[(p+1)%5],S=m.high,_=m.low;for(l=v.high^(S<<1|_>>>31),y=v.low^(_<<1|S>>>31),g=0;g<5;g++)(P=r[p+5*g]).high^=l,P.low^=y}for(var b=1;b<25;b++){var E=(P=r[b]).high,w=P.low,O=f[b];O<32?(l=E<>>32-O,y=w<>>32-O):(l=w<>>64-O,y=E<>>64-O);var B=h[u[b]];B.high=l,B.low=y}var A=h[0],x=r[0];for(A.high=x.high,A.low=x.low,p=0;p<5;p++)for(g=0;g<5;g++){var P=r[b=p+5*g],T=h[b],I=h[(p+1)%5+5*g],k=h[(p+2)%5+5*g];P.high=T.high^~I.high&k.high,P.low=T.low^~I.low&k.low}P=r[0];var D=c[a];P.high^=D.high,P.low^=D.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,f=a/8,u=[],c=0;c>>24)|4278255360&(p<<24|p>>>8),l=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8),u.push(l),u.push(p)}return new i.init(u,a)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=o._createHelper(p),e.HmacSHA3=o._createHmacHelper(p)}(Math),n.SHA3)},9557:function(t,e,r){var n,i,o,s,a,f,u,c;t.exports=(c=r(9021),r(3240),r(1380),i=(n=c).x64,o=i.Word,s=i.WordArray,a=n.algo,f=a.SHA512,u=a.SHA384=f.extend({_doReset:function(){this._hash=new s.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=f._doFinalize.call(this);return t.sigBytes-=16,t}}),n.SHA384=f._createHelper(u),n.HmacSHA384=f._createHmacHelper(u),c.SHA384)},1380:function(t,e,r){var n;t.exports=(n=r(9021),r(3240),function(){var t=n,e=t.lib.Hasher,r=t.x64,i=r.Word,o=r.WordArray,s=t.algo;function a(){return i.create.apply(i,arguments)}var f=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],u=[];!function(){for(var t=0;t<80;t++)u[t]=a()}();var c=s.SHA512=e.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],c=r[5],h=r[6],p=r[7],l=n.high,y=n.low,g=i.high,d=i.low,v=o.high,m=o.low,S=s.high,_=s.low,b=a.high,E=a.low,w=c.high,O=c.low,B=h.high,A=h.low,x=p.high,P=p.low,T=l,I=y,k=g,D=d,R=v,N=m,L=S,C=_,U=b,M=E,j=w,H=O,F=B,z=A,G=x,q=P,$=0;$<80;$++){var K=u[$];if($<16)var W=K.high=0|t[e+2*$],V=K.low=0|t[e+2*$+1];else{var Y=u[$-15],X=Y.high,Z=Y.low,J=(X>>>1|Z<<31)^(X>>>8|Z<<24)^X>>>7,Q=(Z>>>1|X<<31)^(Z>>>8|X<<24)^(Z>>>7|X<<25),tt=u[$-2],et=tt.high,rt=tt.low,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=u[$-7],st=ot.high,at=ot.low,ft=u[$-16],ut=ft.high,ct=ft.low;W=(W=(W=J+st+((V=Q+at)>>>0>>0?1:0))+nt+((V+=it)>>>0>>0?1:0))+ut+((V+=ct)>>>0>>0?1:0),K.high=W,K.low=V}var ht,pt=U&j^~U&F,lt=M&H^~M&z,yt=T&k^T&R^k&R,gt=I&D^I&N^D&N,dt=(T>>>28|I<<4)^(T<<30|I>>>2)^(T<<25|I>>>7),vt=(I>>>28|T<<4)^(I<<30|T>>>2)^(I<<25|T>>>7),mt=(U>>>14|M<<18)^(U>>>18|M<<14)^(U<<23|M>>>9),St=(M>>>14|U<<18)^(M>>>18|U<<14)^(M<<23|U>>>9),_t=f[$],bt=_t.high,Et=_t.low,wt=G+mt+((ht=q+St)>>>0>>0?1:0),Ot=vt+gt;G=F,q=z,F=j,z=H,j=U,H=M,U=L+(wt=(wt=(wt=wt+pt+((ht+=lt)>>>0>>0?1:0))+bt+((ht+=Et)>>>0>>0?1:0))+W+((ht+=V)>>>0>>0?1:0))+((M=C+ht|0)>>>0>>0?1:0)|0,L=R,C=N,R=k,N=D,k=T,D=I,T=wt+(dt+yt+(Ot>>>0>>0?1:0))+((I=ht+Ot|0)>>>0>>0?1:0)|0}y=n.low=y+I,n.high=l+T+(y>>>0>>0?1:0),d=i.low=d+D,i.high=g+k+(d>>>0>>0?1:0),m=o.low=m+N,o.high=v+R+(m>>>0>>0?1:0),_=s.low=_+C,s.high=S+L+(_>>>0>>0?1:0),E=a.low=E+M,a.high=b+U+(E>>>0>>0?1:0),O=c.low=O+H,c.high=w+j+(O>>>0>>0?1:0),A=h.low=A+z,h.high=B+F+(A>>>0>>0?1:0),P=p.low=P+q,p.high=x+G+(P>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(c),t.HmacSHA512=e._createHmacHelper(c)}(),n.SHA512)},7628:function(t,e,r){var n;t.exports=(n=r(9021),r(754),r(4636),r(9506),r(7165),function(){var t=n,e=t.lib,r=e.WordArray,i=e.BlockCipher,o=t.algo,s=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],f=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],u=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],c=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],h=o.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var n=s[r]-1;e[r]=t[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var u=i[o]=[],c=f[o];for(r=0;r<24;r++)u[r/6|0]|=e[(a[r]-1+c)%28]<<31-r%6,u[4+(r/6|0)]|=e[28+(a[r+24]-1+c)%28]<<31-r%6;for(u[0]=u[0]<<1|u[0]>>>31,r=1;r<7;r++)u[r]=u[r]>>>4*(r-1)+3;u[7]=u[7]<<5|u[7]>>>27}var h=this._invSubKeys=[];for(r=0;r<16;r++)h[r]=i[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],p.call(this,4,252645135),p.call(this,16,65535),l.call(this,2,858993459),l.call(this,8,16711935),p.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,s=this._rBlock,a=0,f=0;f<8;f++)a|=u[f][((s^i[f])&c[f])>>>0];this._lBlock=s,this._rBlock=o^a}var h=this._lBlock;this._lBlock=this._rBlock,this._rBlock=h,p.call(this,1,1431655765),l.call(this,8,16711935),l.call(this,2,858993459),p.call(this,16,65535),p.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function p(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r<>>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r<{"use strict";var n=r(655),i=r(8068),o=r(9675),s=r(5795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new o("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new o("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new o("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new o("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new o("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new o("`loose`, if provided, must be a boolean");var a=arguments.length>3?arguments[3]:null,f=arguments.length>4?arguments[4]:null,u=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],h=!!s&&s(t,e);if(n)n(t,e,{configurable:null===u&&h?h.configurable:!u,enumerable:null===a&&h?h.enumerable:!a,value:r,writable:null===f&&h?h.writable:!f});else{if(!c&&(a||f||u))throw new i("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},655:(t,e,r)=>{"use strict";var n=r(453)("%Object.defineProperty%",!0)||!1;if(n)try{n({},"a",{value:1})}catch(t){n=!1}t.exports=n},1237:t=>{"use strict";t.exports=EvalError},9383:t=>{"use strict";t.exports=Error},9290:t=>{"use strict";t.exports=RangeError},9538:t=>{"use strict";t.exports=ReferenceError},8068:t=>{"use strict";t.exports=SyntaxError},9675:t=>{"use strict";t.exports=TypeError},5345:t=>{"use strict";t.exports=URIError},9353:t=>{"use strict";var e=Object.prototype.toString,r=Math.max,n=function(t,e){for(var r=[],n=0;n{"use strict";var n=r(9353);t.exports=Function.prototype.bind||n},453:(t,e,r)=>{"use strict";var n,i=r(9383),o=r(1237),s=r(9290),a=r(9538),f=r(8068),u=r(9675),c=r(5345),h=Function,p=function(t){try{return h('"use strict"; return ('+t+").constructor;")()}catch(t){}},l=Object.getOwnPropertyDescriptor;if(l)try{l({},"")}catch(t){l=null}var y=function(){throw new u},g=l?function(){try{return y}catch(t){try{return l(arguments,"callee").get}catch(t){return y}}}():y,d=r(4039)(),v=r(24)(),m=Object.getPrototypeOf||(v?function(t){return t.__proto__}:null),S={},_="undefined"!=typeof Uint8Array&&m?m(Uint8Array):n,b={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":d&&m?m([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":S,"%AsyncGenerator%":S,"%AsyncGeneratorFunction%":S,"%AsyncIteratorPrototype%":S,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":o,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":h,"%GeneratorFunction%":S,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":d&&m?m(m([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&d&&m?m((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":s,"%ReferenceError%":a,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&d&&m?m((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":d&&m?m(""[Symbol.iterator]()):n,"%Symbol%":d?Symbol:n,"%SyntaxError%":f,"%ThrowTypeError%":g,"%TypedArray%":_,"%TypeError%":u,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":c,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet};if(m)try{null.error}catch(t){var E=m(m(t));b["%Error.prototype%"]=E}var w=function t(e){var r;if("%AsyncFunction%"===e)r=p("async function () {}");else if("%GeneratorFunction%"===e)r=p("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=p("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var i=t("%AsyncGenerator%");i&&m&&(r=m(i.prototype))}return b[e]=r,r},O={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},B=r(6743),A=r(9957),x=B.call(Function.call,Array.prototype.concat),P=B.call(Function.apply,Array.prototype.splice),T=B.call(Function.call,String.prototype.replace),I=B.call(Function.call,String.prototype.slice),k=B.call(Function.call,RegExp.prototype.exec),D=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,R=/\\(\\)?/g,N=function(t,e){var r,n=t;if(A(O,n)&&(n="%"+(r=O[n])[0]+"%"),A(b,n)){var i=b[n];if(i===S&&(i=w(n)),void 0===i&&!e)throw new u("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:i}}throw new f("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new u('"allowMissing" argument must be a boolean');if(null===k(/^%?[^%]*%?$/,t))throw new f("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=I(t,0,1),r=I(t,-1);if("%"===e&&"%"!==r)throw new f("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new f("invalid intrinsic syntax, expected opening `%`");var n=[];return T(t,D,(function(t,e,r,i){n[n.length]=r?T(i,R,"$1"):e||t})),n}(t),n=r.length>0?r[0]:"",i=N("%"+n+"%",e),o=i.name,s=i.value,a=!1,c=i.alias;c&&(n=c[0],P(r,x([0,1],c)));for(var h=1,p=!0;h=r.length){var v=l(s,y);s=(p=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:s[y]}else p=A(s,y),s=s[y];p&&!a&&(b[o]=s)}}return s}},5795:(t,e,r)=>{"use strict";var n=r(453)("%Object.getOwnPropertyDescriptor%",!0);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},592:(t,e,r)=>{"use strict";var n=r(655),i=function(){return!!n};i.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=i},24:t=>{"use strict";var e={__proto__:null,foo:{}},r=Object;t.exports=function(){return{__proto__:e}.foo===e.foo&&!(e instanceof r)}},4039:(t,e,r)=>{"use strict";var n="undefined"!=typeof Symbol&&Symbol,i=r(1333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&i()}},1333:t=>{"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var n=Object.getOwnPropertySymbols(t);if(1!==n.length||n[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},9957:(t,e,r)=>{"use strict";var n=Function.prototype.call,i=Object.prototype.hasOwnProperty,o=r(6743);t.exports=o.call(n,i)},251:(t,e)=>{e.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,f=(1<>1,c=-7,h=r?i-1:0,p=r?-1:1,l=t[e+h];for(h+=p,o=l&(1<<-c)-1,l>>=-c,c+=a;c>0;o=256*o+t[e+h],h+=p,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=p,c-=8);if(0===o)o=1-u;else{if(o===f)return s?NaN:1/0*(l?-1:1);s+=Math.pow(2,n),o-=u}return(l?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,f,u=8*o-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,l=n?0:o-1,y=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-s))<1&&(s--,f*=2),(e+=s+h>=1?p/f:p*Math.pow(2,1-h))*f>=2&&(s++,f/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(e*f-1)*Math.pow(2,i),s+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+l]=255&a,l+=y,a/=256,i-=8);for(s=s<0;t[r+l]=255&s,l+=y,s/=256,u-=8);t[r+l-y]|=128*g}},3229:(t,e,r)=>{var n=r(8287).Buffer,i=r(7449),o=r(5682),s=(r(3200),r(3100).Ber,r(8226)._),a=r(8226),f=r(1768),u=r(7460);void 0===i.RSA_NO_PADDING&&(i.RSA_NO_PADDING=3),t.exports=function(){var t={node10:["md4","md5","ripemd160","sha1","sha224","sha256","sha384","sha512"],node:["md4","md5","ripemd160","sha1","sha224","sha256","sha384","sha512"],iojs:["md4","md5","ripemd160","sha1","sha224","sha256","sha384","sha512"],browser:["md5","ripemd160","sha1","sha256","sha512"]},e="pkcs1_oaep",r="pkcs1",i={private:"pkcs1-private-pem","private-der":"pkcs1-private-der",public:"pkcs8-public-pem","public-der":"pkcs8-public-der"};function c(t,i,f){if(!(this instanceof c))return new c(t,i,f);s.isObject(i)&&(f=i,i=void 0),this.$options={signingScheme:r,signingSchemeOptions:{hash:"sha256",saltLength:null},encryptionScheme:e,encryptionSchemeOptions:{hash:"sha1",label:null},environment:a.detectEnvironment(),rsaUtils:this},this.keyPair=new o.Key,this.$cache={},n.isBuffer(t)||s.isString(t)?this.importKey(t,i):s.isObject(t)&&this.generateKeyPair(t.b,t.e),this.setOptions(f)}return c.prototype.setOptions=function(n){if((n=n||{}).environment&&(this.$options.environment=n.environment),n.signingScheme){if(s.isString(n.signingScheme)){var i=n.signingScheme.toLowerCase().split("-");1==i.length?t.node.indexOf(i[0])>-1?(this.$options.signingSchemeOptions={hash:i[0]},this.$options.signingScheme=r):(this.$options.signingScheme=i[0],this.$options.signingSchemeOptions={hash:null}):(this.$options.signingSchemeOptions={hash:i[1]},this.$options.signingScheme=i[0])}else s.isObject(n.signingScheme)&&(this.$options.signingScheme=n.signingScheme.scheme||r,this.$options.signingSchemeOptions=s.omit(n.signingScheme,"scheme"));if(!f.isSignature(this.$options.signingScheme))throw Error("Unsupported signing scheme");if(this.$options.signingSchemeOptions.hash&&-1===t[this.$options.environment].indexOf(this.$options.signingSchemeOptions.hash))throw Error("Unsupported hashing algorithm for "+this.$options.environment+" environment")}if(n.encryptionScheme){if(s.isString(n.encryptionScheme)?(this.$options.encryptionScheme=n.encryptionScheme.toLowerCase(),this.$options.encryptionSchemeOptions={}):s.isObject(n.encryptionScheme)&&(this.$options.encryptionScheme=n.encryptionScheme.scheme||e,this.$options.encryptionSchemeOptions=s.omit(n.encryptionScheme,"scheme")),!f.isEncryption(this.$options.encryptionScheme))throw Error("Unsupported encryption scheme");if(this.$options.encryptionSchemeOptions.hash&&-1===t[this.$options.environment].indexOf(this.$options.encryptionSchemeOptions.hash))throw Error("Unsupported hashing algorithm for "+this.$options.environment+" environment")}this.keyPair.setOptions(this.$options)},c.prototype.generateKeyPair=function(t,e){if(e=e||65537,(t=t||2048)%8!=0)throw Error("Key size must be a multiple of 8.");return this.keyPair.generate(t,e.toString(16)),this.$cache={},this},c.prototype.importKey=function(t,e){if(!t)throw Error("Empty key given");if(e&&(e=i[e]||e),!u.detectAndImport(this.keyPair,t,e)&&void 0===e)throw Error("Key format must be specified");return this.$cache={},this},c.prototype.exportKey=function(t){return t=i[t=t||"private"]||t,this.$cache[t]||(this.$cache[t]=u.detectAndExport(this.keyPair,t)),this.$cache[t]},c.prototype.isPrivate=function(){return this.keyPair.isPrivate()},c.prototype.isPublic=function(t){return this.keyPair.isPublic(t)},c.prototype.isEmpty=function(t){return!(this.keyPair.n||this.keyPair.e||this.keyPair.d)},c.prototype.encrypt=function(t,e,r){return this.$$encryptKey(!1,t,e,r)},c.prototype.decrypt=function(t,e){return this.$$decryptKey(!1,t,e)},c.prototype.encryptPrivate=function(t,e,r){return this.$$encryptKey(!0,t,e,r)},c.prototype.decryptPublic=function(t,e){return this.$$decryptKey(!0,t,e)},c.prototype.$$encryptKey=function(t,e,r,n){try{var i=this.keyPair.encrypt(this.$getDataForEncrypt(e,n),t);return"buffer"!=r&&r?i.toString(r):i}catch(t){throw Error("Error during encryption. Original error: "+t)}},c.prototype.$$decryptKey=function(t,e,r){try{e=s.isString(e)?n.from(e,"base64"):e;var i=this.keyPair.decrypt(e,t);if(null===i)throw Error("Key decrypt method returns null.");return this.$getDecryptedData(i,r)}catch(t){throw Error("Error during decryption (probably incorrect key). Original error: "+t)}},c.prototype.sign=function(t,e,r){if(!this.isPrivate())throw Error("This is not private key");var n=this.keyPair.sign(this.$getDataForEncrypt(t,r));return e&&"buffer"!=e&&(n=n.toString(e)),n},c.prototype.verify=function(t,e,r,n){if(!this.isPublic())throw Error("This is not public key");return n=n&&"buffer"!=n?n:null,this.keyPair.verify(this.$getDataForEncrypt(t,r),e,n)},c.prototype.getKeySize=function(){return this.keyPair.keySize},c.prototype.getMaxMessageSize=function(){return this.keyPair.maxMessageLength},c.prototype.$getDataForEncrypt=function(t,e){if(s.isString(t)||s.isNumber(t))return n.from(""+t,e||"utf8");if(n.isBuffer(t))return t;if(s.isObject(t))return n.from(JSON.stringify(t));throw Error("Unexpected data type")},c.prototype.$getDecryptedData=function(t,e){return"buffer"==(e=e||"buffer")?t:"json"==e?JSON.parse(t.toString()):t.toString(e)},c}()},4538:(t,e,r)=>{var n=r(3200);t.exports={getEngine:function(t,e){var i=r(7469);return"node"===e.environment&&"function"==typeof n.publicEncrypt&&"function"==typeof n.privateDecrypt&&(i="function"==typeof n.privateEncrypt&&"function"==typeof n.publicDecrypt?r(2418):r(1957)),i(t,e)}}},2418:(t,e,r)=>{var n=r(3200),i=r(7449),o=r(1768);t.exports=function(t,e){var r=o.pkcs1.makeScheme(t,e);return{encrypt:function(t,o){var s;if(o)return s=i.RSA_PKCS1_PADDING,e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding),n.privateEncrypt({key:e.rsaUtils.exportKey("private"),padding:s},t);s=i.RSA_PKCS1_OAEP_PADDING,"pkcs1"===e.encryptionScheme&&(s=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding);var a=t;return s===i.RSA_NO_PADDING&&(a=r.pkcs0pad(t)),n.publicEncrypt({key:e.rsaUtils.exportKey("public"),padding:s},a)},decrypt:function(t,o){var s;if(o)return s=i.RSA_PKCS1_PADDING,e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding),n.publicDecrypt({key:e.rsaUtils.exportKey("public"),padding:s},t);s=i.RSA_PKCS1_OAEP_PADDING,"pkcs1"===e.encryptionScheme&&(s=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(s=e.encryptionSchemeOptions.padding);var a=n.privateDecrypt({key:e.rsaUtils.exportKey("private"),padding:s},t);return s===i.RSA_NO_PADDING?r.pkcs0unpad(a):a}}}},7469:(t,e,r)=>{var n=r(1973),i=r(1768);t.exports=function(t,e){var r=i.pkcs1.makeScheme(t,e);return{encrypt:function(e,i){var o,s;return i?(o=new n(r.encPad(e,{type:1})),s=t.$doPrivate(o)):(o=new n(t.encryptionScheme.encPad(e)),s=t.$doPublic(o)),s.toBuffer(t.encryptedDataLength)},decrypt:function(e,i){var o,s=new n(e);return i?(o=t.$doPublic(s),r.encUnPad(o.toBuffer(t.encryptedDataLength),{type:1})):(o=t.$doPrivate(s),t.encryptionScheme.encUnPad(o.toBuffer(t.encryptedDataLength)))}}}},1957:(t,e,r)=>{var n=r(3200),i=r(7449),o=r(1768);t.exports=function(t,e){var s=r(7469)(t,e),a=o.pkcs1.makeScheme(t,e);return{encrypt:function(t,r){if(r)return s.encrypt(t,r);var o=i.RSA_PKCS1_OAEP_PADDING;"pkcs1"===e.encryptionScheme&&(o=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(o=e.encryptionSchemeOptions.padding);var f=t;return o===i.RSA_NO_PADDING&&(f=a.pkcs0pad(t)),n.publicEncrypt({key:e.rsaUtils.exportKey("public"),padding:o},f)},decrypt:function(t,r){if(r)return s.decrypt(t,r);var o=i.RSA_PKCS1_OAEP_PADDING;"pkcs1"===e.encryptionScheme&&(o=i.RSA_PKCS1_PADDING),e.encryptionSchemeOptions&&e.encryptionSchemeOptions.padding&&(o=e.encryptionSchemeOptions.padding);var f=n.privateDecrypt({key:e.rsaUtils.exportKey("private"),padding:o},t);return o===i.RSA_NO_PADDING?a.pkcs0unpad(f):f}}}},3374:(t,e,r)=>{r(8226)._,r(8226),t.exports={privateExport:function(t,e){return{n:t.n.toBuffer(),e:t.e,d:t.d.toBuffer(),p:t.p.toBuffer(),q:t.q.toBuffer(),dmp1:t.dmp1.toBuffer(),dmq1:t.dmq1.toBuffer(),coeff:t.coeff.toBuffer()}},privateImport:function(t,e,r){if(!(e.n&&e.e&&e.d&&e.p&&e.q&&e.dmp1&&e.dmq1&&e.coeff))throw Error("Invalid key data");t.setPrivate(e.n,e.e,e.d,e.p,e.q,e.dmp1,e.dmq1,e.coeff)},publicExport:function(t,e){return{n:t.n.toBuffer(),e:t.e}},publicImport:function(t,e,r){if(!e.n||!e.e)throw Error("Invalid key data");t.setPublic(e.n,e.e)},autoImport:function(e,r){return!(!r.n||!r.e||(r.d&&r.p&&r.q&&r.dmp1&&r.dmq1&&r.coeff?(t.exports.privateImport(e,r),0):(t.exports.publicImport(e,r),0)))}}},7460:(t,e,r)=>{function n(t){t=t.split("-");for(var e="private",r={type:"default"},n=1;n{var n=r(8287).Buffer,i=r(8226)._,o=r(8226),s=r(1973);const a="-----BEGIN OPENSSH PRIVATE KEY-----",f="-----END OPENSSH PRIVATE KEY-----";function u(t){const e=t.buf.readInt32BE(t.off);t.off+=4;const r=t.buf.slice(t.off,t.off+e);return t.off+=e,r}function c(t,e){t.buf.writeInt32BE(e.byteLength,t.off),t.off+=4,t.off+=e.copy(t.buf,t.off)}t.exports={privateExport:function(t,e){const r=t.n.toBuffer();let i=n.alloc(4);for(i.writeUInt32BE(t.e,0);0===i[0];)i=i.slice(1);const s=t.d.toBuffer(),u=t.coeff.toBuffer(),h=t.p.toBuffer(),p=t.q.toBuffer();let l;l=void 0!==t.sshcomment?n.from(t.sshcomment):n.from([]);const y=15+i.byteLength+4+r.byteLength,g=23+r.byteLength+4+i.byteLength+4+s.byteLength+4+u.byteLength+4+h.byteLength+4+p.byteLength+4+l.byteLength;let d=43+y+4+g;d+=8*Math.ceil(g/8)-g;const v=n.alloc(d),m={buf:v,off:0};v.write("openssh-key-v1","utf8"),v.writeUInt8(0,14),m.off+=15,c(m,n.from("none")),c(m,n.from("none")),c(m,n.from("")),m.off=m.buf.writeUInt32BE(1,m.off),m.off=m.buf.writeUInt32BE(y,m.off),c(m,n.from("ssh-rsa")),c(m,i),c(m,r),m.off=m.buf.writeUInt32BE(d-47-y,m.off),m.off+=8,c(m,n.from("ssh-rsa")),c(m,r),c(m,i),c(m,s),c(m,u),c(m,h),c(m,p),c(m,l);let S=1;for(;m.off{var n=r(8287).Buffer,i=r(3100).Ber,o=r(8226)._,s=r(8226);const a="-----BEGIN RSA PRIVATE KEY-----",f="-----END RSA PRIVATE KEY-----",u="-----BEGIN RSA PUBLIC KEY-----",c="-----END RSA PUBLIC KEY-----";t.exports={privateExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=t.d.toBuffer(),o=t.p.toBuffer(),u=t.q.toBuffer(),c=t.dmp1.toBuffer(),h=t.dmq1.toBuffer(),p=t.coeff.toBuffer(),l=r.length+n.length+o.length+u.length+c.length+h.length+p.length+512,y=new i.Writer({size:l});return y.startSequence(),y.writeInt(0),y.writeBuffer(r,2),y.writeInt(t.e),y.writeBuffer(n,2),y.writeBuffer(o,2),y.writeBuffer(u,2),y.writeBuffer(c,2),y.writeBuffer(h,2),y.writeBuffer(p,2),y.endSequence(),"der"===e.type?y.buffer:a+"\n"+s.linebrk(y.buffer.toString("base64"),64)+"\n"+f},privateImport:function(t,e,r){var u;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),!o.isString(e))throw Error("Unsupported key format");var c=s.trimSurroundingText(e,a,f).replace(/\s+|\n\r|\n|\r$/gm,"");u=n.from(c,"base64")}else{if(!n.isBuffer(e))throw Error("Unsupported key format");u=e}var h=new i.Reader(u);h.readSequence(),h.readString(2,!0),t.setPrivate(h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0),h.readString(2,!0))},publicExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=r.length+512,o=new i.Writer({size:n});return o.startSequence(),o.writeBuffer(r,2),o.writeInt(t.e),o.endSequence(),"der"===e.type?o.buffer:u+"\n"+s.linebrk(o.buffer.toString("base64"),64)+"\n"+c},publicImport:function(t,e,r){var a;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),o.isString(e)){var f=s.trimSurroundingText(e,u,c).replace(/\s+|\n\r|\n|\r$/gm,"");a=n.from(f,"base64")}}else{if(!n.isBuffer(e))throw Error("Unsupported key format");a=e}var h=new i.Reader(a);h.readSequence(),t.setPublic(h.readString(2,!0),h.readString(2,!0))},autoImport:function(e,r){return/^[\S\s]*-----BEGIN RSA PRIVATE KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END RSA PRIVATE KEY-----[\S\s]*$/g.test(r)?(t.exports.privateImport(e,r),!0):!!/^[\S\s]*-----BEGIN RSA PUBLIC KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END RSA PUBLIC KEY-----[\S\s]*$/g.test(r)&&(t.exports.publicImport(e,r),!0)}}},8573:(t,e,r)=>{var n=r(8287).Buffer,i=r(3100).Ber,o=r(8226)._,s="1.2.840.113549.1.1.1",a=r(8226);const f="-----BEGIN PRIVATE KEY-----",u="-----END PRIVATE KEY-----",c="-----BEGIN PUBLIC KEY-----",h="-----END PUBLIC KEY-----";t.exports={privateExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=t.d.toBuffer(),o=t.p.toBuffer(),c=t.q.toBuffer(),h=t.dmp1.toBuffer(),p=t.dmq1.toBuffer(),l=t.coeff.toBuffer(),y=r.length+n.length+o.length+c.length+h.length+p.length+l.length+512,g=new i.Writer({size:y});g.startSequence(),g.writeInt(0),g.writeBuffer(r,2),g.writeInt(t.e),g.writeBuffer(n,2),g.writeBuffer(o,2),g.writeBuffer(c,2),g.writeBuffer(h,2),g.writeBuffer(p,2),g.writeBuffer(l,2),g.endSequence();var d=new i.Writer({size:y});return d.startSequence(),d.writeInt(0),d.startSequence(),d.writeOID(s),d.writeNull(),d.endSequence(),d.writeBuffer(g.buffer,4),d.endSequence(),"der"===e.type?d.buffer:f+"\n"+a.linebrk(d.buffer.toString("base64"),64)+"\n"+u},privateImport:function(t,e,r){var c;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),!o.isString(e))throw Error("Unsupported key format");var h=a.trimSurroundingText(e,f,u).replace("-----END PRIVATE KEY-----","").replace(/\s+|\n\r|\n|\r$/gm,"");c=n.from(h,"base64")}else{if(!n.isBuffer(e))throw Error("Unsupported key format");c=e}var p=new i.Reader(c);if(p.readSequence(),p.readInt(0),new i.Reader(p.readString(48,!0)).readOID(6,!0)!==s)throw Error("Invalid Public key format");var l=new i.Reader(p.readString(4,!0));l.readSequence(),l.readString(2,!0),t.setPrivate(l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0),l.readString(2,!0))},publicExport:function(t,e){e=e||{};var r=t.n.toBuffer(),n=r.length+512,o=new i.Writer({size:n});o.writeByte(0),o.startSequence(),o.writeBuffer(r,2),o.writeInt(t.e),o.endSequence();var f=new i.Writer({size:n});return f.startSequence(),f.startSequence(),f.writeOID(s),f.writeNull(),f.endSequence(),f.writeBuffer(o.buffer,3),f.endSequence(),"der"===e.type?f.buffer:c+"\n"+a.linebrk(f.buffer.toString("base64"),64)+"\n"+h},publicImport:function(t,e,r){var f;if("der"!==(r=r||{}).type){if(n.isBuffer(e)&&(e=e.toString("utf8")),o.isString(e)){var u=a.trimSurroundingText(e,c,h).replace(/\s+|\n\r|\n|\r$/gm,"");f=n.from(u,"base64")}}else{if(!n.isBuffer(e))throw Error("Unsupported key format");f=e}var p=new i.Reader(f);if(p.readSequence(),new i.Reader(p.readString(48,!0)).readOID(6,!0)!==s)throw Error("Invalid Public key format");var l=new i.Reader(p.readString(3,!0));l.readByte(),l.readSequence(),t.setPublic(l.readString(2,!0),l.readString(2,!0))},autoImport:function(e,r){return/^[\S\s]*-----BEGIN PRIVATE KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END PRIVATE KEY-----[\S\s]*$/g.test(r)?(t.exports.privateImport(e,r),!0):!!/^[\S\s]*-----BEGIN PUBLIC KEY-----\s*(?=(([A-Za-z0-9+/=]+\s*)+))\1-----END PUBLIC KEY-----[\S\s]*$/g.test(r)&&(t.exports.publicImport(e,r),!0)}}},1973:(t,e,r)=>{var n=r(8287).Buffer,i=r(3200),o=r(8226)._;function s(t,e){null!=t&&("number"==typeof t?this.fromNumber(t,e):n.isBuffer(t)?this.fromBuffer(t):null==e&&"string"!=typeof t?this.fromByteArray(t):this.fromString(t,e))}function a(){return new s(null)}s.prototype.am=function(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var f=16383&this[t],u=this[t++]>>14,c=a*f+u*s;i=((f=s*f+((16383&c)<<14)+r[n]+i)>>28)+(c>>14)+a*u,r[n++]=268435455&f}return i},s.prototype.DB=28,s.prototype.DM=268435455,s.prototype.DV=1<<28,s.prototype.FV=Math.pow(2,52),s.prototype.F1=24,s.prototype.F2=4;var f,u,c=new Array;for(f="0".charCodeAt(0),u=0;u<=9;++u)c[f++]=u;for(f="a".charCodeAt(0),u=10;u<36;++u)c[f++]=u;for(f="A".charCodeAt(0),u=10;u<36;++u)c[f++]=u;function h(t){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)}function p(t,e){var r=c[t.charCodeAt(e)];return null==r?-1:r}function l(t){var e=a();return e.fromInt(t),e}function y(t){var e,r=1;return 0!=(e=t>>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function g(t){this.m=t}function d(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),255&t||(t>>=8,e+=8),15&t||(t>>=4,e+=4),3&t||(t>>=2,e+=2),1&t||++e,e}function E(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function w(){}function O(t){return t}function B(t){this.r2=a(),this.q3=a(),s.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}g.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},g.prototype.revert=function(t){return t},g.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},g.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},g.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},d.prototype.convert=function(t){var e=a();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(s.ZERO)>0&&this.m.subTo(e,e),e},d.prototype.revert=function(t){var e=a();return t.copyTo(e),this.reduce(e),e},d.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},d.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},d.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},w.prototype.convert=O,w.prototype.revert=O,w.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r)},w.prototype.sqrTo=function(t,e){t.squareTo(e)},B.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=a();return t.copyTo(e),this.reduce(e),e},B.prototype.revert=function(t){return t},B.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},B.prototype.mulTo=function(t,e,r){t.multiplyTo(e,r),this.reduce(r)},B.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)};var A=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],x=(1<<26)/A[A.length-1];s.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},s.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+DV:this.t=0},s.prototype.fromString=function(t,e,r){var n;switch(e){case 2:n=1;break;case 4:n=2;break;case 8:n=3;break;case 16:n=4;break;case 32:n=5;break;case 256:n=8;break;default:return void this.fromRadix(t,e)}this.t=0,this.s=0;for(var i=t.length,o=!1,a=0;--i>=0;){var f=8==n?255&t[i]:p(t,i);f<0?"-"==t.charAt(i)&&(o=!0):(o=!1,0===a?this[this.t++]=f:a+n>this.DB?(this[this.t-1]|=(f&(1<>this.DB-a):this[this.t-1]|=f<=this.DB&&(a-=this.DB))}!r&&8==n&&128&t[0]&&(this.s=-1,a>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},s.prototype.dlShiftTo=function(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},s.prototype.drShiftTo=function(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},s.prototype.rShiftTo=function(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},s.prototype.multiplyTo=function(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},s.prototype.divRemTo=function(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var h=o.t,p=o[h-1];if(0!==p){var l=p*(1<1?o[h-2]>>this.F2:0),g=this.FV/l,d=(1<=0&&(r[r.t++]=1,r.subTo(_,r)),s.ONE.dlShiftTo(h,_),_.subTo(o,o);o.t=0;){var b=r[--m]==p?this.DM:Math.floor(r[m]*g+(r[m-1]+v)*d);if((r[m]+=o.am(0,b,r,S,0,h))0&&r.rShiftTo(c,r),f<0&&s.ZERO.subTo(r,r)}}},s.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(!(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},s.prototype.isEven=function(){return 0===(this.t>0?1&this[0]:this.s)},s.prototype.exp=function(t,e){if(t>4294967295||t<1)return s.ONE;var r=a(),n=a(),i=e.convert(this),o=y(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var f=r;r=n,n=f}return e.revert(r)},s.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},s.prototype.toRadix=function(t){if(null==t&&(t=10),0===this.signum()||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=l(r),i=a(),o=a(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},s.prototype.fromRadix=function(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,a=0,f=0;f=r&&(this.dMultiply(n),this.dAddOffset(a,0),o=0,a=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(a,0)),i&&s.ZERO.subTo(this,this)},s.prototype.fromNumber=function(t,e){if("number"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t),this.testBit(t-1)||this.bitwiseTo(s.ONE.shiftLeft(t-1),m,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(s.ONE.shiftLeft(t-1),this);else{var r=i.randomBytes(1+(t>>3)),n=7&t;n>0?r[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},s.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},s.prototype.dAddOffset=function(t,e){if(0!==t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},s.prototype.multiplyLowerTo=function(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0===e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},s.prototype.millerRabin=function(t){var e=this.subtract(s.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>A.length&&(t=A.length);for(var i=a(),o=0;o0)for(a>a)>0&&(i=!0,o=h(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=h(r));return i?o:"0"},s.prototype.negate=function(){var t=a();return s.ZERO.subTo(this,t),t},s.prototype.abs=function(){return this.s<0?this.negate():this},s.prototype.compareTo=function(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},s.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+y(this[this.t-1]^this.s&this.DM)},s.prototype.mod=function(t){var e=a();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(s.ZERO)>0&&t.subTo(e,e),e},s.prototype.modPowInt=function(t,e){var r;return r=t<256||e.isEven()?new g(e):new d(e),this.exp(t,r)},s.prototype.clone=function(){var t=a();return this.copyTo(t),t},s.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0===this.t)return-1}else{if(1==this.t)return this[0];if(0===this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<>24},s.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},s.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},s.prototype.toByteArray=function(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),128&r&&(r|=-256),0===i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},s.prototype.toBuffer=function(t){var e=n.from(this.toByteArray());if(!0===t&&0===e[0])e=e.slice(1);else if(o.isNumber(t)){if(e.length>t){for(var r=0;r0?this:t},s.prototype.and=function(t){var e=a();return this.bitwiseTo(t,v,e),e},s.prototype.or=function(t){var e=a();return this.bitwiseTo(t,m,e),e},s.prototype.xor=function(t){var e=a();return this.bitwiseTo(t,S,e),e},s.prototype.andNot=function(t){var e=a();return this.bitwiseTo(t,_,e),e},s.prototype.not=function(){for(var t=a(),e=0;e=this.t?0!=this.s:!!(this[e]&1<1){var h=a();for(n.sqrTo(s[1],h);f<=c;)s[f]=a(),n.mulTo(h,s[f-2],s[f]),f+=2}var p,v,m=t.t-1,S=!0,_=a();for(i=y(t[m])-1;m>=0;){for(i>=u?p=t[m]>>i-u&c:(p=(t[m]&(1<0&&(p|=t[m-1]>>this.DB+i-u)),f=r;!(1&p);)p>>=1,--f;if((i-=f)<0&&(i+=this.DB,--m),S)s[p].copyTo(o),S=!1;else{for(;f>1;)n.sqrTo(o,_),n.sqrTo(_,o),f-=2;f>0?n.sqrTo(o,_):(v=o,o=_,_=v),n.mulTo(_,s[p],o)}for(;m>=0&&!(t[m]&1<=0?(r.subTo(n,r),e&&i.subTo(a,i),o.subTo(f,o)):(n.subTo(r,n),e&&a.subTo(i,a),f.subTo(o,f))}return 0!=n.compareTo(s.ONE)?s.ZERO:f.compareTo(t)>=0?f.subtract(t):f.signum()<0?(f.addTo(t,f),f.signum()<0?f.add(t):f):f},s.prototype.pow=function(t){return this.exp(t,new w)},s.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},s.prototype.isProbablePrime=function(t){var e,r=this.abs();if(1==r.t&&r[0]<=A[A.length-1]){for(e=0;e{var n=r(8287).Buffer,i=r(8226)._,o=(r(3200),r(1973)),s=r(8226),a=r(1768),f=r(4538);e.BigInteger=o,t.exports.Key=function(){function t(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return t.prototype.setOptions=function(t){var e=a[t.signingScheme],r=a[t.encryptionScheme];e===r?this.signingScheme=this.encryptionScheme=r.makeScheme(this,t):(this.encryptionScheme=r.makeScheme(this,t),this.signingScheme=e.makeScheme(this,t)),this.encryptEngine=f.getEngine(this,t)},t.prototype.generate=function(t,e){var r=t>>1;this.e=parseInt(e,16);for(var n=new o(e,16);;){for(;this.p=new o(t-r,1),0!==this.p.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.p.isProbablePrime(10););for(;this.q=new o(r,1),0!==this.q.subtract(o.ONE).gcd(n).compareTo(o.ONE)||!this.q.isProbablePrime(10););if(this.p.compareTo(this.q)<=0){var i=this.p;this.p=this.q,this.q=i}var s=this.p.subtract(o.ONE),a=this.q.subtract(o.ONE),f=s.multiply(a);if(0===f.gcd(n).compareTo(o.ONE)){if(this.n=this.p.multiply(this.q),this.n.bitLength()0&&(i.isNumber(e)||e.length>0)&&r.length>0))throw Error("Invalid RSA private key");this.n=new o(t),this.e=i.isNumber(e)?e:s.get32IntFromBuffer(e,0),this.d=new o(r),n&&a&&f&&u&&c&&(this.p=new o(n),this.q=new o(a),this.dmp1=new o(f),this.dmq1=new o(u),this.coeff=new o(c)),this.$$recalculateCache()},t.prototype.setPublic=function(t,e){if(!(t&&e&&t.length>0&&(i.isNumber(e)||e.length>0)))throw Error("Invalid RSA public key");this.n=new o(t),this.e=i.isNumber(e)?e:s.get32IntFromBuffer(e,0),this.$$recalculateCache()},t.prototype.$doPrivate=function(t){if(this.p||this.q)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),r=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(r)<0;)e=e.add(this.p);return e.subtract(r).multiply(this.coeff).mod(this.p).multiply(this.q).add(r)},t.prototype.$doPublic=function(t){return t.modPowInt(this.e,this.n)},t.prototype.encrypt=function(t,e){var r=[],i=[],o=t.length,s=Math.ceil(o/this.maxMessageLength)||1,a=Math.ceil(o/s||1);if(1==s)r.push(t);else for(var f=0;f0)throw Error("Incorrect data or key");for(var r=[],i=0,o=0,s=t.length/this.encryptedDataLength,a=0;a>3},t}()},2487:(t,e,r)=>{var n=r(8287).Buffer,i=(r(1973),r(3200));t.exports={isEncryption:!0,isSignature:!1},t.exports.digestLength={md4:16,md5:16,ripemd160:20,rmd160:20,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64};var o="sha1";t.exports.eme_oaep_mgf1=function(e,r,s){s=s||o;for(var a=t.exports.digestLength[s],f=Math.ceil(r/a),u=n.alloc(a*f),c=n.alloc(4),h=0;hf-2*u-2)throw new Error("Message is too long to encode into an encoded message with a length of "+f+" bytes, increaseemLen to fix this error (minimum value for given parameters and options: "+(f-2*u-2)+")");var c=i.createHash(r);c.update(a),c=c.digest();var h=n.alloc(f-e.length-2*u-1);h.fill(0),h[h.length-1]=1;for(var p=n.concat([c,h,e]),l=i.randomBytes(u),y=s(l,p.length,r),g=0;g{var n=r(8287).Buffer,i=r(1973),o=r(3200),s=r(7449),a={md2:n.from("3020300c06082a864886f70d020205000410","hex"),md5:n.from("3020300c06082a864886f70d020505000410","hex"),sha1:n.from("3021300906052b0e03021a05000414","hex"),sha224:n.from("302d300d06096086480165030402040500041c","hex"),sha256:n.from("3031300d060960864801650304020105000420","hex"),sha384:n.from("3041300d060960864801650304020205000430","hex"),sha512:n.from("3051300d060960864801650304020305000440","hex"),ripemd160:n.from("3021300906052b2403020105000414","hex"),rmd160:n.from("3021300906052b2403020105000414","hex")},f={ripemd160:"rmd160"},u="sha256";t.exports={isEncryption:!0,isSignature:!0},t.exports.makeScheme=function(t,e){function r(t,e){this.key=t,this.options=e}return r.prototype.maxMessageLength=function(){return this.options.encryptionSchemeOptions&&this.options.encryptionSchemeOptions.padding==s.RSA_NO_PADDING?this.key.encryptedDataLength:this.key.encryptedDataLength-11},r.prototype.encPad=function(t,e){var r;if(e=e||{},t.length>this.key.maxMessageLength)throw new Error("Message too long for RSA (n="+this.key.encryptedDataLength+", l="+t.length+")");if(this.options.encryptionSchemeOptions&&this.options.encryptionSchemeOptions.padding==s.RSA_NO_PADDING)return(r=n.alloc(this.key.maxMessageLength-t.length)).fill(0),n.concat([r,t]);if(1===e.type)return(r=n.alloc(this.key.encryptedDataLength-t.length-1)).fill(255,0,r.length-1),r[0]=1,r[r.length-1]=0,n.concat([r,t]);(r=n.alloc(this.key.encryptedDataLength-t.length))[0]=0,r[1]=2;for(var i=o.randomBytes(r.length-3),a=0;a=t.length)return null}else{if(0!==t[0]||2!==t[1])return null;for(r=3;0!==t[r];)if(++r>=t.length)return null}return t.slice(r+1,t.length)},r.prototype.sign=function(t){var e=this.options.signingSchemeOptions.hash||u;if("browser"===this.options.environment){e=f[e]||e;var r=o.createHash(e);r.update(t);var n=this.pkcs1pad(r.digest(),e);return this.key.$doPrivate(new i(n)).toBuffer(this.key.encryptedDataLength)}var s=o.createSign("RSA-"+e.toUpperCase());return s.update(t),s.sign(this.options.rsaUtils.exportKey("private"))},r.prototype.verify=function(t,e,r){if(this.options.encryptionSchemeOptions&&this.options.encryptionSchemeOptions.padding==s.RSA_NO_PADDING)return!1;var a=this.options.signingSchemeOptions.hash||u;if("browser"===this.options.environment){a=f[a]||a,r&&(e=n.from(e,r));var c=o.createHash(a);c.update(t);var h=this.pkcs1pad(c.digest(),a);return this.key.$doPublic(new i(e)).toBuffer().toString("hex")==h.toString("hex")}var p=o.createVerify("RSA-"+a.toUpperCase());return p.update(t),p.verify(this.options.rsaUtils.exportKey("public"),e,r)},r.prototype.pkcs0pad=function(t){var e=n.alloc(this.key.maxMessageLength-t.length);return e.fill(0),n.concat([e,t])},r.prototype.pkcs0unpad=function(t){return"function"==typeof t.lastIndexOf?t.slice(t.lastIndexOf("\0")+1,t.length):t.slice(String.prototype.lastIndexOf.call(t,"\0")+1,t.length)},r.prototype.pkcs1pad=function(t,e){var r=a[e];if(!r)throw Error("Unsupported hash algorithm");var i=n.concat([r,t]);if(i.length+10>this.key.encryptedDataLength)throw Error("Key is too short for signing algorithm ("+e+")");var o=n.alloc(this.key.encryptedDataLength-i.length-1);return o.fill(255,0,o.length-1),o[0]=1,o[o.length-1]=0,n.concat([o,i])},new r(t,e)}},4414:(t,e,r)=>{var n=r(8287).Buffer,i=r(1973),o=r(3200);t.exports={isEncryption:!1,isSignature:!0};var s="sha1";t.exports.makeScheme=function(t,e){var a=r(1768).pkcs1_oaep;function f(t,e){this.key=t,this.options=e}return f.prototype.sign=function(t){var e=o.createHash(this.options.signingSchemeOptions.hash||s);e.update(t);var r=this.emsa_pss_encode(e.digest(),this.key.keySize-1);return this.key.$doPrivate(new i(r)).toBuffer(this.key.encryptedDataLength)},f.prototype.verify=function(t,e,r){r&&(e=n.from(e,r)),e=new i(e);var a=Math.ceil((this.key.keySize-1)/8),f=this.key.$doPublic(e).toBuffer(a),u=o.createHash(this.options.signingSchemeOptions.hash||s);return u.update(t),this.emsa_pss_verify(u.digest(),f,this.key.keySize-1)},f.prototype.emsa_pss_encode=function(t,e){var r=this.options.signingSchemeOptions.hash||s,i=this.options.signingSchemeOptions.mgf||a.eme_oaep_mgf1,f=this.options.signingSchemeOptions.saltLength||20,u=a.digestLength[r],c=Math.ceil(e/8);if(c>8-S<<8-S;v[0]=v[0]&_;var b=n.alloc(v.length+l.length+1);return v.copy(b,0),l.copy(b,v.length),b[b.length-1]=188,b},f.prototype.emsa_pss_verify=function(t,e,r){var i=this.options.signingSchemeOptions.hash||s,f=this.options.signingSchemeOptions.mgf||a.eme_oaep_mgf1,u=this.options.signingSchemeOptions.saltLength||20,c=a.digestLength[i],h=Math.ceil(r/8);if(h>8-(g=8*h-r)<<8-g,p[0]=p[0]&l,y=0;0===p[y]&&y{t.exports={pkcs1:r(8290),pkcs1_oaep:r(2487),pss:r(4414),isEncryption:function(e){return t.exports[e]&&t.exports[e].isEncryption},isSignature:function(e){return t.exports[e]&&t.exports[e].isSignature}}},8226:(t,e,r)=>{var n=r(5606);r(3200),t.exports.linebrk=function(t,e){for(var r="",n=0;n+e0){if(r>=4)return t.readUIntBE(e,r);for(var n=0,i=e+r,o=0;i>e;i--,o+=2)n+=t[i-1]*Math.pow(16,o);return n}return NaN},t.exports._={isObject:function(t){var e=typeof t;return!!t&&("object"==e||"function"==e)},isString:function(t){return"string"==typeof t||t instanceof String},isNumber:function(t){return"number"==typeof t||!isNaN(parseFloat(t))&&isFinite(t)},omit:function(t,e){var r={};for(var n in t)t.hasOwnProperty(n)&&n!==e&&(r[n]=t[n]);return r}},t.exports.trimSurroundingText=function(t,e,r){var n=0,i=t.length,o=t.indexOf(e);o>=0&&(n=o+e.length);var s=t.indexOf(r,o);return s>=0&&(i=s),t.substring(n,i)}},8875:(t,e,r)=>{"use strict";var n;if(!Object.keys){var i=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=r(1093),a=Object.prototype.propertyIsEnumerable,f=!a.call({toString:null},"toString"),u=a.call((function(){}),"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(t){var e=t.constructor;return e&&e.prototype===t},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!p["$"+t]&&i.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{h(window[t])}catch(t){return!0}}catch(t){return!0}return!1}();n=function(t){var e=null!==t&&"object"==typeof t,r="[object Function]"===o.call(t),n=s(t),a=e&&"[object String]"===o.call(t),p=[];if(!e&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var y=u&&r;if(a&&t.length>0&&!i.call(t,0))for(var g=0;g0)for(var d=0;d{"use strict";var n=Array.prototype.slice,i=r(1093),o=Object.keys,s=o?function(t){return o(t)}:r(8875),a=Object.keys;s.shim=function(){if(Object.keys){var t=function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2);t||(Object.keys=function(t){return i(t)?a(n.call(t)):a(t)})}else Object.keys=s;return Object.keys||s},t.exports=s},1093:t=>{"use strict";var e=Object.prototype.toString;t.exports=function(t){var r=e.call(t),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===e.call(t.callee)),n}},8403:(t,e,r)=>{"use strict";var n=r(1189),i=r(1333)(),o=r(8075),s=Object,a=o("Array.prototype.push"),f=o("Object.prototype.propertyIsEnumerable"),u=i?Object.getOwnPropertySymbols:null;t.exports=function(t,e){if(null==t)throw new TypeError("target must be an object");var r=s(t);if(1===arguments.length)return r;for(var o=1;o{"use strict";var n=r(8403);t.exports=function(){return Object.assign?function(){if(!Object.assign)return!1;for(var t="abcdefghijklmnopqrst",e=t.split(""),r={},n=0;n{var e,r,n=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(t){if(e===setTimeout)return setTimeout(t,0);if((e===i||!e)&&setTimeout)return e=setTimeout,setTimeout(t,0);try{return e(t,0)}catch(r){try{return e.call(null,t,0)}catch(r){return e.call(this,t,0)}}}!function(){try{e="function"==typeof setTimeout?setTimeout:i}catch(t){e=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(t){r=o}}();var a,f=[],u=!1,c=-1;function h(){u&&a&&(u=!1,a.length?f=a.concat(f):c=-1,f.length&&p())}function p(){if(!u){var t=s(h);u=!0;for(var e=f.length;e;){for(a=f,f=[];++c1)for(var r=1;r{"use strict";var n,i=r(5606),o=r(8287),s=o.Buffer,a={};for(n in o)o.hasOwnProperty(n)&&"SlowBuffer"!==n&&"Buffer"!==n&&(a[n]=o[n]);var f=a.Buffer={};for(n in s)s.hasOwnProperty(n)&&"allocUnsafe"!==n&&"allocUnsafeSlow"!==n&&(f[n]=s[n]);if(a.Buffer.prototype=s.prototype,f.from&&f.from!==Uint8Array.from||(f.from=function(t,e,r){if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof t);if(t&&void 0===t.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);return s(t,e,r)}),f.alloc||(f.alloc=function(t,e,r){if("number"!=typeof t)throw new TypeError('The "size" argument must be of type number. Received type '+typeof t);if(t<0||t>=2*(1<<30))throw new RangeError('The value "'+t+'" is invalid for option "size"');var n=s(t);return e&&0!==e.length?"string"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n}),!a.kStringMaxLength)try{a.kStringMaxLength=i.binding("buffer").kStringMaxLength}catch(t){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),t.exports=a},6897:(t,e,r)=>{"use strict";var n=r(453),i=r(41),o=r(592)(),s=r(5795),a=r(9675),f=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new a("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||f(e)!==e)throw new a("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,u=!0;if("length"in t&&s){var c=s(t,"length");c&&!c.configurable&&(n=!1),c&&!c.writable&&(u=!1)}return(n||u||!r)&&(o?i(t,"length",e,!0,!0):i(t,"length",e)),t}},3200:(t,e,r)=>{var n=r(8287).Buffer,i=r(1396),o={randomBytes:function(t){for(var e=[],r=0;r{var n=r(8287).Buffer;const i=r(3229);let o={outputEncoding:"",PublicFormat:"pkcs1-public",PrivateFormat:"pkcs1-private",options:{environment:"browser",encryptionScheme:"pkcs1"}};t.exports={NodeRSA:i,encryptRSAWithPublicKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PublicFormat,r.options).encrypt(t,r.outEncoding||"base64")},encryptRSAWithPrivateKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PrivateFormat,r.options).encryptPrivate(t,r.outputEncoding||"base64")},decryptRSAWithPublicKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PublicEncoding,r.options).decryptPublic(t,r.outEncoding||"utf8")},decryptRSAWithPrivateKey:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PrivateEncoding,r.options).decrypt(t,r.outEncoding||"utf8")},sign:function(t,e,r={}){return r=Object.assign({},o,r),new i(e,r.PrivateEncoding,r.options).sign(t,r.outEncoding||"base64")},verify:function(t,e,r,s={}){return"string"==typeof e&&e.match(/^([0-9a-fA-F]{2})*$/)?e=n.from(e,"hex"):"string"==typeof e&&(e=n.from(e,"base64")),s=Object.assign({},o,s),new i(r,s.PublicEncoding,s.options).verify(t,e)}}},7449:t=>{"use strict";t.exports=JSON.parse('{"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":512,"O_EXCL":2048,"O_NOCTTY":131072,"O_TRUNC":1024,"O_APPEND":8,"O_DIRECTORY":1048576,"O_NOFOLLOW":256,"O_SYNC":128,"O_SYMLINK":2097152,"O_NONBLOCK":4,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"E2BIG":7,"EACCES":13,"EADDRINUSE":48,"EADDRNOTAVAIL":49,"EAFNOSUPPORT":47,"EAGAIN":35,"EALREADY":37,"EBADF":9,"EBADMSG":94,"EBUSY":16,"ECANCELED":89,"ECHILD":10,"ECONNABORTED":53,"ECONNREFUSED":61,"ECONNRESET":54,"EDEADLK":11,"EDESTADDRREQ":39,"EDOM":33,"EDQUOT":69,"EEXIST":17,"EFAULT":14,"EFBIG":27,"EHOSTUNREACH":65,"EIDRM":90,"EILSEQ":92,"EINPROGRESS":36,"EINTR":4,"EINVAL":22,"EIO":5,"EISCONN":56,"EISDIR":21,"ELOOP":62,"EMFILE":24,"EMLINK":31,"EMSGSIZE":40,"EMULTIHOP":95,"ENAMETOOLONG":63,"ENETDOWN":50,"ENETRESET":52,"ENETUNREACH":51,"ENFILE":23,"ENOBUFS":55,"ENODATA":96,"ENODEV":19,"ENOENT":2,"ENOEXEC":8,"ENOLCK":77,"ENOLINK":97,"ENOMEM":12,"ENOMSG":91,"ENOPROTOOPT":42,"ENOSPC":28,"ENOSR":98,"ENOSTR":99,"ENOSYS":78,"ENOTCONN":57,"ENOTDIR":20,"ENOTEMPTY":66,"ENOTSOCK":38,"ENOTSUP":45,"ENOTTY":25,"ENXIO":6,"EOPNOTSUPP":102,"EOVERFLOW":84,"EPERM":1,"EPIPE":32,"EPROTO":100,"EPROTONOSUPPORT":43,"EPROTOTYPE":41,"ERANGE":34,"EROFS":30,"ESPIPE":29,"ESRCH":3,"ESTALE":70,"ETIME":101,"ETIMEDOUT":60,"ETXTBSY":26,"EWOULDBLOCK":35,"EXDEV":18,"SIGHUP":1,"SIGINT":2,"SIGQUIT":3,"SIGILL":4,"SIGTRAP":5,"SIGABRT":6,"SIGIOT":6,"SIGBUS":10,"SIGFPE":8,"SIGKILL":9,"SIGUSR1":30,"SIGSEGV":11,"SIGUSR2":31,"SIGPIPE":13,"SIGALRM":14,"SIGTERM":15,"SIGCHLD":20,"SIGCONT":19,"SIGSTOP":17,"SIGTSTP":18,"SIGTTIN":21,"SIGTTOU":22,"SIGURG":16,"SIGXCPU":24,"SIGXFSZ":25,"SIGVTALRM":26,"SIGPROF":27,"SIGWINCH":28,"SIGIO":23,"SIGSYS":12,"SSL_OP_ALL":2147486719,"SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION":262144,"SSL_OP_CIPHER_SERVER_PREFERENCE":4194304,"SSL_OP_CISCO_ANYCONNECT":32768,"SSL_OP_COOKIE_EXCHANGE":8192,"SSL_OP_CRYPTOPRO_TLSEXT_BUG":2147483648,"SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS":2048,"SSL_OP_EPHEMERAL_RSA":0,"SSL_OP_LEGACY_SERVER_CONNECT":4,"SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER":32,"SSL_OP_MICROSOFT_SESS_ID_BUG":1,"SSL_OP_MSIE_SSLV2_RSA_PADDING":0,"SSL_OP_NETSCAPE_CA_DN_BUG":536870912,"SSL_OP_NETSCAPE_CHALLENGE_BUG":2,"SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG":1073741824,"SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG":8,"SSL_OP_NO_COMPRESSION":131072,"SSL_OP_NO_QUERY_MTU":4096,"SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION":65536,"SSL_OP_NO_SSLv2":16777216,"SSL_OP_NO_SSLv3":33554432,"SSL_OP_NO_TICKET":16384,"SSL_OP_NO_TLSv1":67108864,"SSL_OP_NO_TLSv1_1":268435456,"SSL_OP_NO_TLSv1_2":134217728,"SSL_OP_PKCS1_CHECK_1":0,"SSL_OP_PKCS1_CHECK_2":0,"SSL_OP_SINGLE_DH_USE":1048576,"SSL_OP_SINGLE_ECDH_USE":524288,"SSL_OP_SSLEAY_080_CLIENT_DH_BUG":128,"SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG":0,"SSL_OP_TLS_BLOCK_PADDING_BUG":512,"SSL_OP_TLS_D5_BUG":256,"SSL_OP_TLS_ROLLBACK_BUG":8388608,"ENGINE_METHOD_DSA":2,"ENGINE_METHOD_DH":4,"ENGINE_METHOD_RAND":8,"ENGINE_METHOD_ECDH":16,"ENGINE_METHOD_ECDSA":32,"ENGINE_METHOD_CIPHERS":64,"ENGINE_METHOD_DIGESTS":128,"ENGINE_METHOD_STORE":256,"ENGINE_METHOD_PKEY_METHS":512,"ENGINE_METHOD_PKEY_ASN1_METHS":1024,"ENGINE_METHOD_ALL":65535,"ENGINE_METHOD_NONE":0,"DH_CHECK_P_NOT_SAFE_PRIME":2,"DH_CHECK_P_NOT_PRIME":1,"DH_UNABLE_TO_CHECK_GENERATOR":4,"DH_NOT_SUITABLE_GENERATOR":8,"NPN_ENABLED":1,"RSA_PKCS1_PADDING":1,"RSA_SSLV23_PADDING":2,"RSA_NO_PADDING":3,"RSA_PKCS1_OAEP_PADDING":4,"RSA_X931_PADDING":5,"RSA_PKCS1_PSS_PADDING":6,"POINT_CONVERSION_COMPRESSED":2,"POINT_CONVERSION_UNCOMPRESSED":4,"POINT_CONVERSION_HYBRID":6,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1,"UV_UDP_REUSEADDR":4}')}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}return r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r(7033)})()));
\ No newline at end of file
diff --git a/tvboxqq/摸鱼儿/api/pako.min.js b/tvboxqq/摸鱼儿/api/pako.min.js
deleted file mode 100644
index 05a54a2..0000000
--- a/tvboxqq/摸鱼儿/api/pako.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pako={})}(this,(function(t){"use strict";function e(t){let e=t.length;for(;--e>=0;)t[e]=0}const a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),o=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),l=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);const _=new Array(60);e(_);const f=new Array(512);e(f);const c=new Array(256);e(c);const u=new Array(29);e(u);const w=new Array(n);function m(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let b,g,p;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(w);const v=t=>t<256?f[t]:f[256+(t>>>7)],y=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},x=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<{x(t,a[2*e],a[2*e+1])},A=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},E=(t,e,a)=>{const i=new Array(16);let n,r,o=0;for(n=1;n<=s;n++)o=o+a[n-1]<<1,i[n]=o;for(r=0;r<=e;r++){let e=t[2*r+1];0!==e&&(t[2*r]=A(i[e]++,e))}},R=t=>{let e;for(e=0;e{t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},U=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n{let n,s,l,h,d=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+d++],n+=(255&t.pending_buf[t.sym_buf+d++])<<8,s=t.pending_buf[t.sym_buf+d++],0===n?z(t,s,e):(l=c[s],z(t,l+a+1,e),h=r[l],0!==h&&(s-=u[l],x(t,s,h)),n--,l=v(n),z(t,l,i),h=o[l],0!==h&&(n-=w[l],x(t,n,h)))}while(d{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;let o,l,h,d=-1;for(t.heap_len=0,t.heap_max=573,o=0;o>1;o>=1;o--)S(t,a,o);h=r;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,a[2*h]=a[2*o]+a[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,a[2*o+1]=a[2*l+1]=h,t.heap[1]=h++,S(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;let d,_,f,c,u,w,m=0;for(c=0;c<=s;c++)t.bl_count[c]=0;for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++)_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,m++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=l&&(u=o[_-l]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));if(0!==m){do{for(c=h-1;0===t.bl_count[c];)c--;t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,m-=2}while(m>0);for(c=h;0!==c;c--)for(_=t.bl_count[c];0!==_;)f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--)}})(t,e),E(a,d,t.bl_count)},O=(t,e,a)=>{let i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++o{let i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++o{x(t,0+(i?1:0),3),Z(t),y(t,a),y(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var N=(t,e,i,n)=>{let s,r,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e{let e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=i+5,i+4<=s&&-1!==e?L(t,e,i,n):4===t.strategy||r===s?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),((t,e,a,i)=>{let n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n{F||((()=>{let t,e,a,h,k;const v=new Array(16);for(a=0,h=0;h<28;h++)for(u[h]=a,t=0;t<1<>=7;h(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(c[i]+a+1)]++,t.dyn_dtree[2*v(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{x(t,2,3),z(t,256,d),(t=>{16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}};var C=(t,e,a,i)=>{let n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0}while(--r);n%=65521,s%=65521}return n|s<<16|0};const M=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var H=(t,e,a,i)=>{const n=M,s=i+a;t^=-1;for(let a=i;a>>8^n[255&(t^e[a])];return-1^t},j={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},K={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:P,_tr_stored_block:Y,_tr_flush_block:G,_tr_tally:X,_tr_align:W}=B,{Z_NO_FLUSH:q,Z_PARTIAL_FLUSH:J,Z_FULL_FLUSH:Q,Z_FINISH:V,Z_BLOCK:$,Z_OK:tt,Z_STREAM_END:et,Z_STREAM_ERROR:at,Z_DATA_ERROR:it,Z_BUF_ERROR:nt,Z_DEFAULT_COMPRESSION:st,Z_FILTERED:rt,Z_HUFFMAN_ONLY:ot,Z_RLE:lt,Z_FIXED:ht,Z_DEFAULT_STRATEGY:dt,Z_UNKNOWN:_t,Z_DEFLATED:ft}=K,ct=258,ut=262,wt=42,mt=113,bt=666,gt=(t,e)=>(t.msg=j[e],e),pt=t=>2*t-(t>4?9:0),kt=t=>{let e=t.length;for(;--e>=0;)t[e]=0},vt=t=>{let e,a,i,n=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=n?a-n:0}while(--e);e=n,i=e;do{a=t.prev[--i],t.prev[i]=a>=n?a-n:0}while(--e)};let yt=(t,e,a)=>(e<{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},zt=(t,e)=>{G(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,xt(t.strm)},At=(t,e)=>{t.pending_buf[t.pending++]=e},Et=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},Rt=(t,e,a,i)=>{let n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=C(t.adler,e,n,a):2===t.state.wrap&&(t.adler=H(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)},Zt=(t,e)=>{let a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,o=t.nice_match;const l=t.strstart>t.w_size-ut?t.strstart-(t.w_size-ut):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ct;let c=h[s+r-1],u=h[s+r];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+r]===u&&h[a+r-1]===c&&h[a]===h[s]&&h[++a]===h[s+1]){s+=2,a++;do{}while(h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&sr){if(t.match_start=e,r=i,i>=o)break;c=h[s+r-1],u=h[s+r]}}}while((e=_[e&d])>l&&0!=--n);return r<=t.lookahead?r:t.lookahead},Ut=t=>{const e=t.w_size;let a,i,n;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ut)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),vt(t),i+=e),0===t.strm.avail_in)break;if(a=Rt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=yt(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=yt(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let a,i,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r=0,o=t.strm.avail_in;do{if(a=65535,n=t.bi_valid+42>>3,t.strm.avail_outi+t.strm.avail_in&&(a=i+t.strm.avail_in),a>n&&(a=n),a>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,xt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(Rt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===r);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_watern&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(Rt(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,i=t.strstart-t.block_start,(i>=s||(i||e===V)&&e!==q&&0===t.strm.avail_in&&i<=n)&&(a=i>n?n:i,r=e===V&&0===t.strm.avail_in&&a===i?1:0,Y(t,t.block_start,a,r),t.block_start+=a,xt(t.strm)),r?3:1)},Dt=(t,e)=>{let a,i;for(;;){if(t.lookahead=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ut&&(t.match_length=Zt(t,a)),t.match_length>=3)if(i=X(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=yt(t,t.ins_h,t.window[t.strstart+1]);else i=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(zt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2},Tt=(t,e)=>{let a,i,n;for(;;){if(t.lookahead=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=X(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(zt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=X(t,0,t.window[t.strstart-1]),i&&zt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=X(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2};function Ot(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}const It=[new Ot(0,0,0,0,St),new Ot(4,4,8,4,Dt),new Ot(4,5,16,8,Dt),new Ot(4,6,32,32,Dt),new Ot(4,4,16,16,Tt),new Ot(8,16,32,32,Tt),new Ot(8,16,128,128,Tt),new Ot(8,32,128,256,Tt),new Ot(32,128,258,1024,Tt),new Ot(32,258,258,4096,Tt)];function Ft(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ft,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),kt(this.dyn_ltree),kt(this.dyn_dtree),kt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),kt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),kt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Lt=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==wt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==mt&&e.status!==bt?1:0},Nt=t=>{if(Lt(t))return gt(t,at);t.total_in=t.total_out=0,t.data_type=_t;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?wt:mt,t.adler=2===e.wrap?0:1,e.last_flush=-2,P(e),tt},Bt=t=>{const e=Nt(t);var a;return e===tt&&((a=t.state).window_size=2*a.w_size,kt(a.head),a.max_lazy_match=It[a.level].max_lazy,a.good_match=It[a.level].good_length,a.nice_match=It[a.level].nice_length,a.max_chain_length=It[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Ct=(t,e,a,i,n,s)=>{if(!t)return at;let r=1;if(e===st&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==ft||i<8||i>15||e<0||e>9||s<0||s>ht||8===i&&1!==r)return gt(t,at);8===i&&(i=9);const o=new Ft;return t.state=o,o.strm=t,o.status=wt,o.wrap=r,o.gzhead=null,o.w_bits=i,o.w_size=1<Ct(t,e,ft,15,8,dt),deflateInit2:Ct,deflateReset:Bt,deflateResetKeep:Nt,deflateSetHeader:(t,e)=>Lt(t)||2!==t.state.wrap?at:(t.state.gzhead=e,tt),deflate:(t,e)=>{if(Lt(t)||e>$||e<0)return t?gt(t,at):at;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===bt&&e!==V)return gt(t,0===t.avail_out?nt:at);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(xt(t),0===t.avail_out)return a.last_flush=-1,tt}else if(0===t.avail_in&&pt(e)<=pt(i)&&e!==V)return gt(t,nt);if(a.status===bt&&0!==t.avail_in)return gt(t,nt);if(a.status===wt&&0===a.wrap&&(a.status=mt),a.status===wt){let e=ft+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=ot||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,Et(a,e),0!==a.strstart&&(Et(a,t.adler>>>16),Et(a,65535&t.adler)),t.adler=1,a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt}if(57===a.status)if(t.adler=0,At(a,31),At(a,139),At(a,8),a.gzhead)At(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),At(a,255&a.gzhead.time),At(a,a.gzhead.time>>8&255),At(a,a.gzhead.time>>16&255),At(a,a.gzhead.time>>24&255),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(At(a,255&a.gzhead.extra.length),At(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=H(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(At(a,0),At(a,0),At(a,0),At(a,0),At(a,0),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,3),a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=H(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=n,xt(t),0!==a.pending)return a.last_flush=-1,tt;e=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=H(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i)),xt(t),0!==a.pending)return a.last_flush=-1,tt;i=0}e=a.gzindexi&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i)),xt(t),0!==a.pending)return a.last_flush=-1,tt;i=0}e=a.gzindexi&&(t.adler=H(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(xt(t),0!==a.pending))return a.last_flush=-1,tt;At(a,255&t.adler),At(a,t.adler>>8&255),t.adler=0}if(a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt}if(0!==t.avail_in||0!==a.lookahead||e!==q&&a.status!==bt){let i=0===a.level?St(a,e):a.strategy===ot?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Ut(t),0===t.lookahead)){if(e===q)return 1;break}if(t.match_length=0,a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(zt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===lt?((t,e)=>{let a,i,n,s;const r=t.window;for(;;){if(t.lookahead<=ct){if(Ut(t),t.lookahead<=ct&&e===q)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+ct;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=X(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(zt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2})(a,e):It[a.level].func(a,e);if(3!==i&&4!==i||(a.status=bt),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),tt;if(2===i&&(e===J?W(a):e!==$&&(Y(a,0,0,!1),e===Q&&(kt(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),xt(t),0===t.avail_out))return a.last_flush=-1,tt}return e!==V?tt:a.wrap<=0?et:(2===a.wrap?(At(a,255&t.adler),At(a,t.adler>>8&255),At(a,t.adler>>16&255),At(a,t.adler>>24&255),At(a,255&t.total_in),At(a,t.total_in>>8&255),At(a,t.total_in>>16&255),At(a,t.total_in>>24&255)):(Et(a,t.adler>>>16),Et(a,65535&t.adler)),xt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?tt:et)},deflateEnd:t=>{if(Lt(t))return at;const e=t.state.status;return t.state=null,e===mt?gt(t,it):tt},deflateSetDictionary:(t,e)=>{let a=e.length;if(Lt(t))return at;const i=t.state,n=i.wrap;if(2===n||1===n&&i.status!==wt||i.lookahead)return at;if(1===n&&(t.adler=C(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(kt(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const s=t.avail_in,r=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Ut(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=yt(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Ut(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=o,t.avail_in=s,i.wrap=n,tt},deflateInfo:"pako deflate (from Nodeca project)"};const Ht=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var jt=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)Ht(a,e)&&(t[e]=a[e])}}return t},Kt=t=>{let e=0;for(let a=0,i=t.length;a=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Yt[254]=Yt[254]=1;var Gt=t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,n,s,r=t.length,o=0;for(n=0;n>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},Xt=(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,n;const s=new Array(2*a);for(n=0,i=0;i4)s[n++]=65533,i+=r-1;else{for(e&=2===r?31:3===r?15:7;r>1&&i1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Pt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Yt[t[a]]>e?a:e};var qt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Jt=Object.prototype.toString,{Z_NO_FLUSH:Qt,Z_SYNC_FLUSH:Vt,Z_FULL_FLUSH:$t,Z_FINISH:te,Z_OK:ee,Z_STREAM_END:ae,Z_DEFAULT_COMPRESSION:ie,Z_DEFAULT_STRATEGY:ne,Z_DEFLATED:se}=K;function re(t){this.options=jt({level:ie,method:se,chunkSize:16384,windowBits:15,memLevel:8,strategy:ne},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt,this.strm.avail_out=0;let a=Mt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==ee)throw new Error(j[a]);if(e.header&&Mt.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Gt(e.dictionary):"[object ArrayBuffer]"===Jt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=Mt.deflateSetDictionary(this.strm,t),a!==ee)throw new Error(j[a]);this._dict_set=!0}}function oe(t,e){const a=new re(e);if(a.push(t,!0),a.err)throw a.msg||j[a.err];return a.result}re.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?te:Qt,"string"==typeof t?a.input=Gt(t):"[object ArrayBuffer]"===Jt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Vt||s===$t)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Mt.deflate(a,s),n===ae)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Mt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ee;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},re.prototype.onData=function(t){this.chunks.push(t)},re.prototype.onEnd=function(t){t===ee&&(this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var le={Deflate:re,deflate:oe,deflateRaw:function(t,e){return(e=e||{}).raw=!0,oe(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,oe(t,e)},constants:K};const he=16209;var de=function(t,e){let a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z,A;const E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),o=E.dmax,l=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,c=E.bits,u=E.lencode,w=E.distcode,m=(1<>>24,f>>>=p,c-=p,p=g>>>16&255,0===p)A[n++]=65535&g;else{if(!(16&p)){if(0==(64&p)){g=u[(65535&g)+(f&(1<>>=p,c-=p),c<15&&(f+=z[a++]<>>24,f>>>=p,c-=p,p=g>>>16&255,!(16&p)){if(0==(64&p)){g=w[(65535&g)+(f&(1<o){t.msg="invalid distance too far back",E.mode=he;break t}if(f>>>=p,c-=p,p=n-s,v>p){if(p=v-p,p>h&&E.sane){t.msg="invalid distance too far back",E.mode=he;break t}if(y=0,x=_,0===d){if(y+=l-p,p2;)A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],k-=3;k&&(A[n++]=x[y++],k>1&&(A[n++]=x[y++]))}else{y=n-v;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],k-=3}while(k>2);k&&(A[n++]=A[y++],k>1&&(A[n++]=A[y++]))}break}}break}}while(a>3,a-=k,c-=k<<3,f&=(1<{const l=o.bits;let h,d,_,f,c,u,w=0,m=0,b=0,g=0,p=0,k=0,v=0,y=0,x=0,z=0,A=null;const E=new Uint16Array(16),R=new Uint16Array(16);let Z,U,S,D=null;for(w=0;w<=_e;w++)E[w]=0;for(m=0;m=1&&0===E[g];g--);if(p>g&&(p=g),0===g)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(b=1;b0&&(0===t||1!==g))return-1;for(R[1]=0,w=1;w<_e;w++)R[w+1]=R[w]+E[w];for(m=0;m852||2===t&&x>592)return 1;for(;;){Z=w-v,r[m]+1=u?(U=D[r[m]-u],S=A[r[m]-u]):(U=96,S=0),h=1<>v)+d]=Z<<24|U<<16|S|0}while(0!==d);for(h=1<>=1;if(0!==h?(z&=h-1,z+=h):z=0,m++,0==--E[w]){if(w===g)break;w=e[a+r[m]]}if(w>p&&(z&f)!==_){for(0===v&&(v=p),c+=b,k=w-v,y=1<852||2===t&&x>592)return 1;_=z&f,n[_]=p<<24|k<<16|c-s|0}}return 0!==z&&(n[c+z]=w-v<<24|64<<16|0),o.bits=p,0};const{Z_FINISH:be,Z_BLOCK:ge,Z_TREES:pe,Z_OK:ke,Z_STREAM_END:ve,Z_NEED_DICT:ye,Z_STREAM_ERROR:xe,Z_DATA_ERROR:ze,Z_MEM_ERROR:Ae,Z_BUF_ERROR:Ee,Z_DEFLATED:Re}=K,Ze=16180,Ue=16190,Se=16191,De=16192,Te=16194,Oe=16199,Ie=16200,Fe=16206,Le=16209,Ne=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Be(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ce=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},Me=t=>{if(Ce(t))return xe;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Ze,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,ke},He=t=>{if(Ce(t))return xe;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Me(t)},je=(t,e)=>{let a;if(Ce(t))return xe;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?xe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,He(t))},Ke=(t,e)=>{if(!t)return xe;const a=new Be;t.state=a,a.strm=t,a.window=null,a.mode=Ze;const i=je(t,e);return i!==ke&&(t.state=null),i};let Pe,Ye,Ge=!0;const Xe=t=>{if(Ge){Pe=new Int32Array(512),Ye=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(me(1,t.lens,0,288,Pe,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;me(2,t.lens,0,32,Ye,0,t.work,{bits:5}),Ge=!1}t.lencode=Pe,t.lenbits=9,t.distcode=Ye,t.distbits=5},We=(t,e,a,i)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveKe(t,15),inflateInit2:Ke,inflate:(t,e)=>{let a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z=0;const A=new Uint8Array(4);let E,R;const Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ce(t)||!t.output||!t.input&&0!==t.avail_in)return xe;a=t.state,a.mode===Se&&(a.mode=De),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,_=o,f=l,x=ke;t:for(;;)switch(a.mode){case Ze:if(0===a.wrap){a.mode=De;break}for(;d<16;){if(0===o)break t;o--,h+=i[s++]<>>8&255,a.check=H(a.check,A,2,0),h=0,d=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=Le;break}if((15&h)!==Re){t.msg="unknown compression method",a.mode=Le;break}if(h>>>=4,d-=4,y=8+(15&h),0===a.wbits&&(a.wbits=y),y>15||y>a.wbits){t.msg="invalid window size",a.mode=Le;break}a.dmax=1<>8&1),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<>>8&255,A[2]=h>>>16&255,A[3]=h>>>24&255,a.check=H(a.check,A,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[s++]<>8),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[s++]<>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+c),y)),512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&c>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=Se;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<>>=7&d,d-=7&d,a.mode=Fe;break}for(;d<3;){if(0===o)break t;o--,h+=i[s++]<>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(Xe(a),a.mode=Oe,e===pe){h>>>=2,d-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=Le}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=Le;break}if(a.length=65535&h,h=0,d=0,a.mode=Te,e===pe)break t;case Te:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;n.set(i.subarray(s,s+c),r),o-=c,s+=c,l-=c,r+=c,a.length-=c;break}a.mode=Se;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[s++]<>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Le;break}a.have=0,a.mode=16197;case 16197:for(;a.have>>=3,d-=3}for(;a.have<19;)a.lens[Z[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,E={bits:a.lenbits},x=me(0,a.lens,0,19,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid code lengths set",a.mode=Le;break}a.have=0,a.mode=16198;case 16198:for(;a.have>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<>>=m,d-=m,a.lens[a.have++]=g;else{if(16===g){for(R=m+2;d>>=m,d-=m,0===a.have){t.msg="invalid bit length repeat",a.mode=Le;break}y=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2}else if(17===g){for(R=m+3;d>>=m,d-=m,y=0,c=3+(7&h),h>>>=3,d-=3}else{for(R=m+7;d>>=m,d-=m,y=0,c=11+(127&h),h>>>=7,d-=7}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Le;break}for(;c--;)a.lens[a.have++]=y}}if(a.mode===Le)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Le;break}if(a.lenbits=9,E={bits:a.lenbits},x=me(1,a.lens,0,a.nlen,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid literal/lengths set",a.mode=Le;break}if(a.distbits=6,a.distcode=a.distdyn,E={bits:a.distbits},x=me(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,E),a.distbits=E.bits,x){t.msg="invalid distances set",a.mode=Le;break}if(a.mode=Oe,e===pe)break t;case Oe:a.mode=Ie;case Ie:if(o>=6&&l>=258){t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,de(t,f),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===Se&&(a.back=-1);break}for(a.back=0;z=a.lencode[h&(1<>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<>>=p,d-=p,a.back+=p}if(h>>>=m,d-=m,a.back+=m,a.length=g,0===b){a.mode=16205;break}if(32&b){a.back=-1,a.mode=Se;break}if(64&b){t.msg="invalid literal/length code",a.mode=Le;break}a.extra=15&b,a.mode=16201;case 16201:if(a.extra){for(R=a.extra;d>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<