/******************************
> 华文数交助手

*******************************

[rewrite_local]

^https?:\/\/api\.hbcpre\.com url script-request-body https://git.vsprit.com/shawenguan/Quantumult-X/raw/master/Scripts/hbcpre/hbcpreHelper.js
^https?:\/\/api\.hbcpre\.com url script-response-body https://git.vsprit.com/shawenguan/Quantumult-X/raw/master/Scripts/hbcpre/hbcpreHelper.js

[MITM]

hostname = api.hbcpre.com

********************************/
const scriptName = `华文数交助手`;
const magicJS = MagicJS(scriptName, "INFO");

const HbcpreConstKey = {
    // 基础数据
    decryptionEnabled: 'HbcpreDecryptionEnabled',
    token: 'HbcpreUserToken',
    userPhone: 'HbcpreUserPhoneNum',
    userId: 'HbcpreUserId',
    userInfo: 'HbcpreUserInfo',
    walletPayPassword: 'HbcpreWalletPayPassword',// 钱包支付密码
    myOwnSeriesCntFakeData: 'HbcpreMyOwnSeriesCntFakeData', // 资产的伪装数据
    myOwnSeriesListDict: 'HbcpreMyOwnSeriesList',
    myOwnSeriesDetail: 'HbcpreMyOwnSeriesDetail',
    browserProxyUrl: 'HbcpreBrowserOpenUrl',

    // 下单相关
    marketSeriesDataGrabEnabled: 'HbcpreOrderItemDataGrabEnabled',
    marketItemWatchLocked: 'HbcpreCollectionWatchLocked',
    marketFastModeEnabled: 'HbcpreOrderFastModeEnabled',
    marketSeriesList: 'HbcpreCollectionClassList',
    marketSeriesId: 'HbcpreCastingId',
    marketSeriesName: 'HbcpreCollectionName',
    marketOrderLimitPrice: 'HbcpreOrderLimitPrice',
    marketOrderPriceInterval: 'HbcpreFloatPriceIntaval',
    marketOrderAutoPayPriceLimit: 'HbcpreMarketOrderAutoPayPriceLimit',

    // 首发相关
    homeSeriesDataGrabEnabled: 'HbcpreHomeSeriesDataGrabEnabled',
    homeSeriesCacheModeEnabled: 'HbcpreHomeSeriesCacheModeEnabled',
    homeSeriesOpenTimeOffset: 'HbcpreOpeningTimeOffset',
    homeSeriesList: 'HbcpreHomeSeriesList',
    homeSeriesInfo: 'HbcpreHomeSeriesInfo',
    homeSeriesId: 'HbcpreHomeSeriesId',
    homeSeriesName: 'HbcpreHomeSeriesName',
    homeSeriesLimitBuy: 'HbcpreHomeSeriesLimitBuy',

    // 合成相关
    compositeItemDataGrabEnabled: 'HbcpreCompositeItemDataGrabEnabled',
    compositeActivityData: 'HbcpreCompositeActivityData',
    compositeActivityId: 'HbcpreCompositeActivityId',
    compositeActivityName: 'HbcpreCompositeActivityName',
    compositeEntryTitleList: 'HbcpreCompositeEntryTitleList',
    compositeEntryTitleCustom: 'HbcpreCompositeEntryTitleCustom',
    compositeActivityTaskMode: 'HbcpreCompositeActivityTaskMode',
    compositeRapidFrequencyCount: 'HbcpreCompositeRapidFrequencyCount',

    // 兑换相关
    exchangeItemDataGrabEnabled: 'HbcpreExchangeItemDataGrabEnabled',
    exchangeOnlyUseCache: 'HbcpreExchangeOnlyUseCache',
    exchangeActivityData: 'HbcpreExchangeActivityData',
    exchangeActivityId: 'HbcpreExchangeActivityId',
    exchangeActivityName: 'HbcpreExchangeActivityName',
    exchangeEntryTitleList: 'HbcpreExchangeEntryTitleList',
    exchangeEntryTitleCustom: 'HbcpreExchangeEntryTitleCustom',
    exchangeActivityTaskMode: 'HbcpreExchangeActivityTaskMode',
    exchangeRapidFrequencyCount: 'HbcpreExchangeRapidFrequencyCount',

    // 抽奖相关的
    drawItemDataGrabEnabled: 'HbcpreDrawItemDataGrabEnabled',
    drawActivityData: 'HbcpreDrawActivityData',
    drawActivityCostSeriesList: 'HbcpreDrawActivityCostSeriesList',
    drawActivityId: 'HbcpreDrawActivityId',
    drawActivityName: 'HbcpreDrawActivityName',
    drawActivityRunCount: 'HbcpreDrawActivityRunCount',

    // 临时
    tmpContractData: 'HbcpreTmpContractData',
};

const gUserAgent = `Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1`;
let gAppToken = `02z/K0Xp4ItXMROQyjLv+2PYeo7V55zbL5/ojIRYKE4=`;
let gUserPhoneNum = `13430389115`;
let gUserId = 95388;

const gCommonHeaders = {
    'Sec-Fetch-Dest' : `empty`,
    'x-cloudbase-phone' : gUserPhoneNum,
    'Connection' : `keep-alive`,
    'Accept-Encoding' : `gzip, deflate, br`,
    'trans-id' : `ea9cf9e9f7cf45adbebd67ce1314dcc5`,
    'Content-Type' : `application/json;charset=UTF-8`,
    'Sec-Fetch-Site' : `same-site`,
    'Origin' : `https://luanshu.hbcpre.com`,
    'app-name' : `m`,
    'User-Agent' : gUserAgent,
    'app-token' : gAppToken,
    'Sec-Fetch-Mode' : `cors`,
    'Cookie' : `JSESSIONID=${gAppToken}; app-token=${gAppToken}`,
    'Host' : `api.hbcpre.com`,
    'Referer' : `https://luanshu.hbcpre.com/`,
    'Accept-Language' : `zh-CN`,
    'Accept' : `application/json, text/plain, */*`
};

let gItemCntRwDict = {};

let gRetBody;
async function Main() {
    if (magicJS.isStrictRequest) {
        magicJS.checkRecordRequestBody();
    }
    if (magicJS.isRequest) {
        checkHandleRequest();
    } else { }
    magicJS.notification.msg('');
    if (gRetBody) {
        magicJS.done({
            body: JSON.stringify(gRetBody)
        });
    } else {
        magicJS.done();
    }
}

function shallowClone(obj) {
    let clone = {};
    for (let key in obj) {
        if (obj.hasOwnProperty(key)) {
            clone[key] = obj[key];
        }
    }
    return clone;
}

function isDecryptionEnabled() {
    let flag = magicJS.data.read(HbcpreConstKey.decryptionEnabled, null);
    if (flag == null) {
        return true;
    }
    return JSON.parse(flag);
}

function isSeriesDataGrabEnabled() {
    let isLocked = magicJS.data.read(HbcpreConstKey.marketItemWatchLocked, null);
    if(isLocked){
        isLocked = JSON.parse(isLocked);
    }
    if(isLocked){
        return false;
    }

    let flag = magicJS.data.read(HbcpreConstKey.marketSeriesDataGrabEnabled, null);
    if (flag == null) {
        return false;
    }
    return JSON.parse(flag);
}

function isHomeSeriesDataGrabEnabled(seriesId) {
    let flag = magicJS.data.read(HbcpreConstKey.homeSeriesDataGrabEnabled, null);
    if (flag == null) {
        return false;
    }
    flag = JSON.parse(flag);
    if(seriesId && flag){
        let seriesList = magicJS.data.read(HbcpreConstKey.homeSeriesList, []);
        for(let i=seriesList.length-1; i>= 0; i--){
            if(seriesList[i].seriesId == seriesId){
                return true;
            }
        }
        return false;
    }
    return flag;
}

function isCompositeItemGrabEnabled() {
    let flag = magicJS.data.read(HbcpreConstKey.compositeItemDataGrabEnabled, null);
    if (flag == null) {
        return false;
    }
    return JSON.parse(flag);
}

function isDrawItemGrabEnabled() {
    let flag = magicJS.data.read(HbcpreConstKey.drawItemDataGrabEnabled, null);
    if (flag == null) {
        return false;
    }
    return JSON.parse(flag);
}

function isExchangeItemGrabEnabled() {
    let flag = magicJS.data.read(HbcpreConstKey.exchangeItemDataGrabEnabled, null);
    if (flag == null) {
        return false;
    }
    return JSON.parse(flag);
}

function readMySeriesOwnCntFakeData() {
    gItemCntRwDict = {};
    let text = magicJS.data.read(HbcpreConstKey.myOwnSeriesCntFakeData, null);
    if (text) {
        let segments = text.split('|');
        for (let i = segments.length - 1; i >= 0; i--) {
            let kvArr = segments[i].trim().split('#');
            if (kvArr.length == 2) {
                const key = kvArr[0].trim();
                const value = parseInt(kvArr[1].trim());
                gItemCntRwDict[key] = value;
            }
        }
    }
    return gItemCntRwDict;
}

function getSeriesData(seriesId) {
    let dataList = magicJS.data.read(HbcpreConstKey.marketSeriesList, []);
    for (let i = 0; i < dataList.length; i++) {
        if (seriesId == dataList[i].seriesId) {
            return dataList[i];
        }
    }
    return null;
}

function getSeriesName(seriesId) {
    let data = getSeriesData(seriesId);
    if (data) {
        return `${data.seriesName}`;
    }
    return `${seriesId}`;
}

function getSeriesPrice(seriesId) {
    let data = getSeriesData(seriesId);
    if (data) {
        return parseInt(data.amount || 99999.99);
    }
    return 0;
}

function getActivitDataCache(eventsType, eventsId){
    // 1=合成 3=兑换
    let data = null;
    let storeKey = null;
    if(eventsType == 1){
        storeKey = HbcpreConstKey.compositeActivityData;
    }else if(eventsType == 3){
        storeKey = HbcpreConstKey.exchangeActivityData;
    }
    if(!storeKey){
        data = {};
    }else{
        data = magicJS.data.read(storeKey, {});
    }
    if(eventsId){
        return data[eventsId];
    }
    return data;
}


function saveActivitDataCache(eventsType, actData, aysncUpdateTask, eventsId){
    if(!actData){
        if(!eventsId){
            return;
        }
        let data = null;
        let storeKey = null;
        if(eventsType == 1){
            storeKey = HbcpreConstKey.compositeActivityData;
        }else if(eventsType == 3){
            storeKey = HbcpreConstKey.exchangeActivityData;
        }
        if(!storeKey){
            data = {};
        }else{
            data = magicJS.data.read(storeKey, {});
        }
        if(eventsId){
            data[eventsId] = null;
        }
        return;
    }
    let data = null;
    let storeKey = null;
    if(eventsType == 1){
        storeKey = HbcpreConstKey.compositeActivityData;
        if(aysncUpdateTask){
            magicJS.data.write(HbcpreConstKey.compositeActivityId, actData.eventsId);
            magicJS.data.write(HbcpreConstKey.compositeActivityName, actData.eventsName);
        }
    }else if(eventsType == 3){
        storeKey = HbcpreConstKey.exchangeActivityData;
        if(aysncUpdateTask){
            magicJS.data.write(HbcpreConstKey.exchangeActivityId, actData.eventsId);
            magicJS.data.write(HbcpreConstKey.exchangeActivityName, actData.eventsName);
        }
    }
    if(!storeKey){
        data = {};
    }else{
        data = magicJS.data.read(storeKey, {});
    }
    data[actData.eventsId] = actData;
    magicJS.data.write(storeKey, data);
}

function checkHandleRequest() {
    handleHeaders();
    const request = magicJS.request;
    const url = request.url;
    const path = request.path;
    magicJS.log(`请求url=${url}#${request.method}`);
    let reqBody = magicJS.getRequestBody();
    if (isDecryptionEnabled()) {
        reqBody = getRequestPlainData();
        magicJS.log(`请求body=${JSON.stringify(reqBody)}`);
    } else {
        magicJS.log(`请求body=${reqBody}`);
    }
    printResponseData();
    if ($request && $request.method != 'OPTIONS') {
        switch (path) {
            case '/mall/collector/checkAuthority':
                handleAuthority();
                break;
            case '/mall/collector/getCollectorInfo':
                handleUserInfo();
                break;
            case '/mall/user/series':
                // 个人资产-所有产品类别列表
                handleMySeriesList();
                break;
            case '/mall/user/works':
                // 个人资产-单一类别产品列表
                handleMyWorksList();
                break;
            case '/mall/order/menu':
                // 我的订单分类标签页
                handleOrederMenu();
                break;
            case '/mall/order/page':
                // 我的订单数据
                handleOrederPage();
                break;
            case '/mall/works/category':
                // 产品排序类别以及分类类别等
                break;
            case '/mall/resale/focus':
                // 关注收藏产品
                handleFocus();
                break
            case '/mall/sell/quickOrder':
                // 快速下单
                break;
            case '/mall/works/fee':
                // 寄售相关手续费
                break;
            case '/mall/collector/checkPassword':
                // 寄售密码验证换取凭据
                break;
            case '/mall/works/sell':
                // 使用密码凭据进行寄售
                break;
            case '/mall/works/cancel':
                // 取消寄售
                // post {
                //     "worksId": 4214461
                // }
                break;
            case '/mall/works/batchCancel':
                // 批量取消寄售
                // post {
                //     "seriesId": 2988,
                //     "seriesType": 5
                // }
                break;
            case '/notify/page':
                // 查找相关公告
                // post {
                //     "page": 1,
                //     "pageSize": 20,
                //     "content": "",//可能需要 encodeURIComponent
                // }
                break;
            case '/mall/raffle/info':
                // 限时抽奖 post= {raffleId:11}
                handleRaffleData();
                break;
            case '/mall/raffle/seriesList':
                // 限时抽奖-产品  post= {raffleId:11}
                handleRaffleSeriesList();
                break;
            case '/mall/raffle/records':
                // 限时抽奖-中奖记录 post= {page:1,pageSize:10,raffleId:11}
                break;
            case '/mall/raffle/raffle':
                // 限时抽奖-抽奖 post= {raffleId:11,raffleNum:1,seriesId:3120}
                handleRaffleRun();
                break;
            default:
                if (path.indexOf('/mall/works/compositeList') > -1) {
                    handleCompositeList();
                } else if (path.indexOf('/mall/order/detail') > -1) {
                    // 订单详情
                    handleOrderDetail();
                } else if (path.indexOf('/mall/works/info') > -1) {
                    // 我的产品详情或在售产品详情
                    handleWorksInfo();
                } else if (path.indexOf('/mall/works/page') > -1) {
                    // 产品在售列表
                    handleMarketWorksList();
                } else if (path.indexOf('/mall/series/seriesInfo') > -1) {
                    // 产品在售简要
                    handleSeriesInfo();
                } else if (path.indexOf('/mall/resale/getSeriesList') > -1) {
                    // 产品类别
                    handleMarketSeriesList();
                } else if (path.indexOf('/mall/home/series') > -1) {//无需登录
                    //首页数字资产和盲盒上新
                    handleHomeSeriesList();
                } else if (path.indexOf('/mall/homepage/info') > -1) {//无需登录
                    //首页信息，包括广告喇叭、banner上多个入口配置
                    handleHomePageInfo();
                } else if (path.indexOf('/mall/application/getBasicInfo') > -1) {//无需登录
                    //应用基础信息
                } else if (path.indexOf('/mall/collector/password/login') > -1) {
                    //登录
                    handleLoginIndex();
                }
                break;
        }
    }
}

function handleHeaders() {
    let headers = $request.headers;
    if (headers['App-Token']) {
        let newToken = headers['App-Token'];
        if (!newToken) {
            let cookieDict = magicJS.parseCookies(headers['Cookie']);
            newToken = cookieDict['app-token'];
        }
        if (newToken != void 0) {
            let oldToken = magicJS.data.read(HbcpreConstKey.token, null);
            if (newToken != oldToken) {
                magicJS.data.write(HbcpreConstKey.token, newToken);
                magicJS.logger.info(`当前token刷新到最新`);
                magicJS.notification.appendNotifyInfo(`🎉当前token刷新到最新`);
            } else {
                magicJS.logger.info(`当前token已经是最新无需更新`);
            }
        }
    }
}

function printResponseData() {
    let data = magicJS.getResponseBody();
    if (!data) {
        return;
    }
    if (isDecryptionEnabled()) {
        data = getResponsePlainData();
    }
    magicJS.log(`jsonStr=${JSON.stringify(data)}`);
}

function getResponsePlainData() {
    let data = magicJS.getResponseBody();
    if (!data) {
        return;
    }
    try{
        return JSON.parse(data);
    } catch(err){
        magicJS.logger.error(err);
    }
}

function getRequestPlainData() {
    let data = magicJS.getRequestBody();
    let reqData = null;
    if (data) {
        reqData = JSON.parse(data);
    } else {
        reqData = magicJS.parseQueryStr($request.url);
    }
    return reqData;
}

function getQueryPlainData() {
    let params = magicJS.parseQueryStr($request.url);
    return params;
}

function handleAuthority() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    if (rspData.data?.isLogin == 1) {
        let reqData = getRequestPlainData();
        let newToken = reqData.address;
        let oldToken = magicJS.data.read(HbcpreConstKey.token, null);
        if (newToken != oldToken) {
            magicJS.data.write(HbcpreConstKey.token, newToken);
            magicJS.logger.info(`当前token刷新到最新`);
            magicJS.notification.appendNotifyInfo(`🎉当前token刷新到最新`);
        } else {
            magicJS.logger.info(`当前token已经是最新无需更新`);
        }
    } else {
        magicJS.data.write(HbcpreConstKey.token, '');
        magicJS.logger.info(`当前token已失效`);
    }
}

function handleLoginIndex() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code == 200) {
        magicJS.data.write(HbcpreConstKey.token, rspData.data.token);
    }
}

function handleUserInfo() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code == 200) {
        magicJS.data.write(HbcpreConstKey.userInfo, JSON.stringify(rspData.data));
    }
}

function handleHomeSeriesList(){
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let dataList = magicJS.data.read(HbcpreConstKey.homeSeriesList, []);
    let tmpItemDict = {};
    for (let i = 0; i < dataList.length; i++) {
        const id = dataList[i].seriesId;
        tmpItemDict[id] = dataList[i];
    }

    let otimeOffset = magicJS.data.read(HbcpreConstKey.homeSeriesOpenTimeOffset, 60000);
    let seriesList = rspData.data.list || [];

    for(let i=0; i < seriesList.length; i++){
        const item = seriesList[i];
        const id = item.seriesId;
        tmpItemDict[id] = shallowClone(item);

        item.seriesName = `${item.seriesName}-剩${item.issueNum-item.soldNum}`;
        item.seriesName = `${item.seriesName} ${magicJS.formatDate(new Date(item.saleTime), 'MM-dd HH:mm:ss')}开售`;
        if(item.soldNum >= item.issueNum){
            item.soldNum = item.issueNum - 1;
        }
        item.saleTime -= otimeOffset;
        item.status = 2;
    }

    dataList = [];
    for (let k in tmpItemDict) {
        dataList.push(tmpItemDict[k]);
    }
    magicJS.data.write(HbcpreConstKey.homeSeriesList, dataList);

    gRetBody = rspData;
}

function handleHomePageInfo(){
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let bannerList = rspData.data.bannerList || [];
    for(let i=0; i < bannerList.length; i++){
        const item = bannerList[i];
        if(item.url.indexOf('http') == -1){
            continue;
        }
        const params = magicJS.parseQueryStr(item.url);
        params.createTime = item.createTime;
        params.updateTime = item.createTime;
        params.url = item.url;
        if(item.name.indexOf('合成') > -1){
            if (isCompositeItemGrabEnabled()) {
                magicJS.data.write(HbcpreConstKey.compositeActivityId, params.id);
                magicJS.data.write(HbcpreConstKey.compositeActivityName, '');
                item.name = `${item.name}#${params.id}`;
            }
        }else if(item.name.indexOf('兑换') > -1){
            if (isExchangeItemGrabEnabled()){
                magicJS.data.write(HbcpreConstKey.exchangeActivityId, params.id);
                magicJS.data.write(HbcpreConstKey.exchangeActivityName, '');
                item.name = `${item.name}#${params.id}`;
            }
        }else if(item.name.indexOf('抽奖') > -1){
            if (isDrawItemGrabEnabled()){
                magicJS.data.write(HbcpreConstKey.drawActivityId, params.id);
                magicJS.data.write(HbcpreConstKey.drawActivityName, '');
                item.name = `${item.name}#${params.id}`;
            }
        }
    }
    gRetBody = rspData;
}

function handleMarketSeriesList() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let reqData = getQueryPlainData();
    let nftType = reqData.nftType || 0;//0=数字资产 1=盲盒

    let dataList = magicJS.data.read(HbcpreConstKey.marketSeriesList, []);
    let tmpItemDict = {};
    for (let i = 0; i < dataList.length; i++) {
        const id = dataList[i].seriesId;
        tmpItemDict[id] = dataList[i];
    }

    let itemList = rspData.data.list;
    for (let i = 0; i < itemList.length; i++) {
        // seriesId
        // seriesName
        // seriesType
        // nftType 类别
        // quantityNumber //发行
        // soldNum //流通
        // amount //最低价格
        // care
        // grade
        // isSpillover
        const iData = itemList[i];
        const id = iData.seriesId;
        tmpItemDict[id] = iData;
    }

    dataList = [];
    for (let k in tmpItemDict) {
        dataList.push(tmpItemDict[k]);
    }
    magicJS.data.write(HbcpreConstKey.marketSeriesList, dataList);

    gRetBody = rspData;
}

function handleSeriesInfo() {
    if (isSeriesDataGrabEnabled()) {
        let reqData = getRequestPlainData();
        if (reqData) {
            let seriesId = magicJS.data.read(HbcpreConstKey.marketSeriesId, null);
            let seriesPrice = getSeriesPrice(reqData.seriesId);
            magicJS.data.write(HbcpreConstKey.marketOrderLimitPrice, seriesPrice);

            if (seriesId != reqData.seriesId) {
                magicJS.data.write(HbcpreConstKey.marketSeriesId, reqData.seriesId);
                let seriesName = getSeriesName(reqData.seriesId);
                magicJS.data.write(HbcpreConstKey.marketSeriesName, seriesName);
                magicJS.notification.post(scriptName, "", `🎉[${seriesName}-￥${seriesPrice}]快捷下单数据采集成功！`);
            }
        }
    }
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let seriesInfo = rspData.data;
    // quantityNumber //发行
    // circulationNumber //流通
    if(seriesInfo.openingTime > 0){
        if(isHomeSeriesDataGrabEnabled(seriesInfo.seriesId)){
            let seriesId = seriesInfo.seriesId;
            let storeKey = `${HbcpreConstKey.homeSeriesInfo}#${seriesInfo.seriesId}`;
            magicJS.data.write(storeKey, seriesInfo);

            magicJS.data.write(HbcpreConstKey.homeSeriesId, seriesInfo.seriesId);
            magicJS.data.write(HbcpreConstKey.homeSeriesName, seriesInfo.seriesName);
            magicJS.data.write(HbcpreConstKey.homeSeriesLimitBuy, seriesInfo.limitBuy);
            magicJS.notification.post(scriptName, "", `🎉[${seriesInfo.seriesName}-限一ID购${seriesInfo.limitBuy}]首发数据采集成功！`);
        }

        // 上新提前开放时间
        let otimeOffset = magicJS.data.read(HbcpreConstKey.homeSeriesOpenTimeOffset, 60000);
        seriesInfo.openingTime -= otimeOffset;
        // 强开限制可购买数
        if(seriesInfo.circulationNumber >= seriesInfo.quantityNumber){
            // seriesInfo.circulationNumber = seriesInfo.quantityNumber - 1;
            seriesInfo.authorName = `${seriesInfo.authorName}#改`;
        }
        seriesInfo.status = 2;
        // 强开限制购买次数
        seriesInfo.limitBuy = 10;
    }
    seriesInfo.canQuick = 1;


    if (isSeriesDataGrabEnabled()) {
        let seriesId = magicJS.data.read(HbcpreConstKey.marketSeriesId, null);
        let seriesPrice = getSeriesPrice(seriesId);
        magicJS.data.write(HbcpreConstKey.marketOrderLimitPrice, seriesPrice);

        if (seriesId != seriesInfo.seriesId) {
            magicJS.data.write(HbcpreConstKey.marketSeriesId, seriesInfo.seriesId);
            magicJS.data.write(HbcpreConstKey.marketSeriesName, seriesInfo.seriesName);

            magicJS.notification.post(scriptName, "", `🎉[${seriesInfo.seriesName}-￥${seriesPrice}]快捷下单数据采集成功！`);
        }
    }
    gRetBody = rspData;
}

function handleMarketWorksList() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    // let reqData =  getRequestPlainData();
    // reqData.sort  1=价格顺序 3=价格倒序 0=编号顺序 2=编号倒序
    let currPage = rspData.data.currPage;
    let list = rspData.data.list;
    for (let i = list.length - 1; i >= 0; i--) {
        const item = list[i];
        // worksStatus 6=寄售中 13=锁定中,待支付 16=已完成
    }
}

function handleWorksInfo() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let data = rspData.data;
    // sourceType 4=空投 7=兑换
    // sellType
    // sellFlag 0=不可寄售 1=可寄售
    // status 1=未上架 6=寄售中 13=锁定中,待支付 16=已完成
    // ownerId 用户UID
    // minPrice-maxPrice 允许的最低价-最高价
    // price priceCny 当前在售价
    data.sellFlag = 1;
    // `${data.contractAddress}-${data.token}`;
    // 合约-资产ID 亿链
    // https://explorer.e-chain.net.cn/#/nft/0xc5fde670ae2ef0005777def33fc09bf43d5724e3-3671263
    let tmpData = {
        seriesId: data.seriesId,
        worksId: data.worksId,
        contractAddress: data.contractAddress, 
        tokenid: data.token,
        time: new Date().getTime(),
    };
    magicJS.data.write(HbcpreConstKey.tmpContractData, tmpData);
    gRetBody = rspData;
}

function formatNumberWithKAndW(n) {
    if (n < 1000) {
        return n.toString();
    }
    if (n >= 1000 && n < 10000) {
        return (n / 1000).toFixed(1) + 'k';
    }
    if (n >= 10000 && n < 100000000) {
        return (n / 10000).toFixed(1) + 'w';
    }
    return (n / 1000000).toFixed(1) + 'm';
}

function handleMySeriesList() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let reqData = getRequestPlainData();
    let currPage = rspData.data.currPage;
    let mySeriesData = {};
    if (currPage > 1) {
        mySeriesData = magicJS.data.read(HbcpreConstKey.myOwnSeriesListDict, {});
    }
    if(reqData.name){//系列名称存在，搜索时候存在

    }
    // reqData.type 0=数字资产 1=盲盒 5=我的寄售 4=已卖出
    if (reqData.type == 0 || reqData.type == 1) {
        let itemList = rspData.data.list;
        let itemCntDict = readMySeriesOwnCntFakeData();

        let existsIds = {};
        for (let i = 0; i < itemList.length; i++) {
            const item = itemList[i];
            const seriesId = item.seriesId;
            mySeriesData[seriesId] = item;
            existsIds[seriesId] = 1;

            const seriesName = item.seriesName;
            if (itemCntDict[seriesId]) {
                item.total = itemCntDict[seriesId];
            } else if (itemCntDict[seriesName]) {
                item.total = itemCntDict[seriesName];
            }
            item.seriesName = `${seriesName}#￥${parseFloat(item.avgPrice).toFixed(2)}`;
            item.authorName = `存量(${formatNumberWithKAndW(item.soldNum)}/${formatNumberWithKAndW(item.issueNum)})`;
        }
        magicJS.data.write(HbcpreConstKey.myOwnSeriesListDict, mySeriesData);
        gRetBody = rspData;
    }
}

function handleMyWorksList() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    let reqData = getRequestPlainData();
    let seriesId = reqData.seriesId;
    let currPage = rspData.data.currPage;
    let myWorksData = {};
    let storeKey = `${HbcpreConstKey.myOwnSeriesDetail}#${seriesId}`;
    if (currPage > 1) {
        myWorksData = magicJS.data.read(storeKey, {});
    }
    let list = rspData.data.list;
    if (list.length == 0) {
        magicJS.data.write(storeKey, myWorksData);
        return;
    }
    seriesId = list[0].seriesId;
    for (let i = 0; i < list.length; i++) {
        const item = list[i];
        // compositeFlag 合成标签是否显示
        // compositeName 合成标签显示的内容
        
        const sId = item.seriesId;
        myWorksData[sId] = item;
    }
    magicJS.data.write(storeKey, myWorksData);
}

function handleOrederMenu() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    // rspData = {
    //     "code": 200,
    //     "data": [
    //         {
    //             "menuId": 5,
    //             "name": "全部"
    //         },
    //         {
    //             "menuId": 2,
    //             "name": "待支付"
    //         },
    //         {
    //             "menuId": 3,
    //             "name": "进行中"
    //         },
    //         {
    //             "menuId": 1,
    //             "name": "已完成"
    //         },
    //         {
    //             "menuId": 4,
    //             "name": "已取消"
    //         },
    //         {
    //             "menuId": 7,
    //             "name": "已卖出"
    //         }
    //     ],
    //     "message": "操作成功",
    //     "success": true
    // }
}

function handleOrederPage() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    if (rspData.code != 200) {
        return;
    }
    // rspData.status 6=取消
}

function handleOrderDetail() {
}

function handleFocus(){
    if (magicJS.isStrictRequest) {
        let reqData = getRequestPlainData();
        let tmpData = magicJS.data.read(HbcpreConstKey.tmpContractData, null);
        if(reqData && tmpData){
            if(tmpData.seriesId == reqData.seriesId){
                if(tmpData.time + 60000 > new Date().getTime()){
                    let openUrl = `https://explorer.e-chain.net.cn/#/nft/${tmpData.contractAddress}-${tmpData.tokenid}`;
                    magicJS.notification.post(scriptName, "", `🎉前往亿链浏览器查看资产详情！`, openUrl);
                }
            }
            magicJS.data.write(HbcpreConstKey.tmpContractData, {});
        }
    }
}

function handleCompositeList() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    // rspData = {
    //   "code" : 200,
    //   "data" : {
    //     "eventsName" : "《蓝色的梦》合成活动",
    //     "eventsType" : 1,
    //     "ownList" : [
    //       {
    //         "groupId" : 73,
    //         "num" : 4,
    //         "bonusRuleList" : [

    //         ],
    //         "seriesList" : [
    //           {
    //             "worksPic" : "/file/oss/wc/pic/nftg/6f6b52d986f04c9e8912443e75c02093.png",
    //             "worksName" : "银卡",
    //             "seriesId" : 3120,
    //             "worksList" : [
    //               {
    //                 "worksId" : 16251392,
    //                 "worksNo" : 26199
    //               },
    //               {
    //                 "worksId" : 16272871,
    //                 "worksNo" : 47678
    //               },
    //               {
    //                 "worksId" : 16284998,
    //                 "worksNo" : 59805
    //               },
    //               {
    //                 "worksId" : 16327450,
    //                 "worksNo" : 102257
    //               }
    //             ]
    //           }
    //         ]
    //       },
    //       {
    //         "groupId" : 74,
    //         "num" : 1,
    //         "bonusRuleList" : [

    //         ],
    //         "seriesList" : [

    //         ]
    //       }
    //     ],
    //     "ownBonusList" : [

    //     ],
    //     "eventsInfo" : "通道B：\r\n合成材料 ：《执惠徽章》*1+《银卡》*4\r\n合成时间 ：2024年5月18日12:30-13：30",
    //     "eventsPic" : "/file/oss/wc/pic/nftg/d6a6f1cbff894a3c8df33ee009b7f869.jpg",
    //     "needList" : [
    //       {
    //         "groupId" : 73,
    //         "num" : 4,
    //         "bonusFlag" : 0,
    //         "bonusRuleList" : [

    //         ],
    //         "seriesList" : [
    //           {
    //             "worksList" : [

    //             ],
    //             "worksPic" : "/file/oss/wc/pic/nftg/6f6b52d986f04c9e8912443e75c02093.png",
    //             "worksName" : "银卡",
    //             "seriesId" : 3120,
    //             "seriesType" : 0
    //           }
    //         ]
    //       },
    //       {
    //         "groupId" : 74,
    //         "num" : 1,
    //         "bonusFlag" : 0,
    //         "bonusRuleList" : [

    //         ],
    //         "seriesList" : [
    //           {
    //             "worksList" : [

    //             ],
    //             "worksPic" : "/file/oss/wc/pic/nftg/d04a29c7285446ba9f0dfdf9b704b0ac.jpg",
    //             "worksName" : "执惠徽章",
    //             "seriesId" : 3119,
    //             "seriesType" : 0
    //           }
    //         ]
    //       }
    //     ],
    //     "eventsId" : 33
    //   },
    //   "message" : "操作成功",
    //   "success" : true
    // };
    // 414=未开始 415=已结束 432=无资格
    let isModify = false;
    if (rspData.code == 432) {
        rspData.code = 200;
        isModify = true;
    }
    if (rspData.code != 200) {
        return;
    }
    let data = rspData.data;
    if(!data){
        return;
    }
    // 1=合成 3=兑换
    let eventsType = data.eventsType;
    if(eventsType == 1){
        if (isCompositeItemGrabEnabled()) {
            saveActivitDataCache(1, data, true);
            magicJS.notification.post(scriptName, "", `🎉[合成]<${data.eventsName}>采集成功！`);
        }
    } else if(eventsType == 3){
        if (isExchangeItemGrabEnabled()){
            saveActivitDataCache(3, data, true);
            magicJS.notification.post(scriptName, "", `🎉[兑换]<${data.eventsName}>采集成功！`);
        }
    }
    if(isModify){
        data.eventsName = `${data.eventsName}#无资格`;
    }

    // 固定材料
    let needList = data.needList;
    for (let i = 0; i < needList.length; i++) {
        let iData = needList[i];
        // iData = {
        //     "bonusFlag": 0,
        //     "bonusRuleList": [],
        //     "groupId": 30,
        //     "num": 8,
        //     "seriesList": [
        //         {
        //             "seriesId": 2988,
        //             "seriesType": 0,
        //             "worksList": [],
        //             "worksName": "黑卡",
        //             "worksPic": ""
        //         }
        //     ]
        // }
    }

    // 个人拥有材料列表
    let ownList = data.ownList;
    for (let i = 0; i < ownList.length; i++) {
        let iData = ownList[i];
        // iData = {
        //     "bonusRuleList": [],
        //     "groupId": 30,
        //     "num": 4,
        //     "seriesList": [
        //         {
        //             "seriesId": 2988,
        //             "worksList": [
        //                 {
        //                     "worksId": 4660254,
        //                     "worksNo": 1178689
        //                 },
        //             ],
        //             "worksName": "黑卡",
        //             "worksPic": ""
        //         }
        //     ]
        // }
        let ownSeriesList = iData.seriesList;
        let ownWorksCnt = getOwnSeriesWorksCount(ownSeriesList);
        if(iData.num > ownWorksCnt){
            // 填充假数据
            // addCompositeFakeWorksToSeries(ownSeriesList, needList[i], needList[i].num - ownWorksCnt);
        }
    }
    gRetBody = rspData;
}

function getOwnSeriesWorksCount(seriesList){
    let total = 0;
    for(let i=seriesList.length-1; i>= 0; i--){
        let ele = seriesList[i];
        total += ele.worksList.length;
    }
    return total;
}


function getNRandomDigits(n) {
    const min = Math.pow(10, n-1);
    const max = Math.pow(10, n) - 1;
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}

function getRandomFakeWorksData(seriesId, ctrlValue){
    return {
        worksId: ctrlValue*100000000+getRandomInt(10000000,100000000),
        worksNo: ctrlValue*100000+getNRandomDigits(6),
    };
}

function addCompositeFakeWorksToSeries(ownSeriesList, needData, num){
    let needSeriesList = needData.seriesList;
    let seriesCntDict = readMySeriesOwnCntFakeData();
    for(let i=0; i < needSeriesList.length; i++){
        let nedSeries = needSeriesList[i];
        let ownSeries = ownSeriesList[i];
        if(!ownSeries){
            ownSeries = shallowClone(nedSeries);
            ownSeries.worksList = [];
            ownSeriesList[i] = ownSeries;
        }
        let sCnt = seriesCntDict[ownSeries.seriesId] || seriesCntDict[ownSeries.worksName] || num;
        while(sCnt > 0){
            const fkWorksData = getRandomFakeWorksData(ownSeries.seriesId, num);
            ownSeries.worksList.push({
                worksId: fkWorksData.worksId,
                worksNo: fkWorksData.worksNo,
            });
            sCnt -= 1;
            num -= 1;
        }
        if(num <= 0){
            break;
        }
    }
}

function handleRaffleData() {
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    // rspData = {
    //     "code" : 200,
    //     "data" : {
    //         "personalNumber" : -1,
    //         "raffleBonus" : 1,
    //         "maxRaffleNumber" : 5,
    //         "raffleName" : "华文数交惊喜抽奖活动！！",
    //         "raffleType" : 1,
    //         "raffleTotalNum" : 4552,
    //         "updateTime" : 1716614116000,
    //         "background" : "/file/oss/wc/pic/nftg/f173c6cf222d47ec8ff7506a6fc24e29.png",
    //         "endTime" : 1716627600000,
    //         "destroyType" : 1,
    //         "hasWhite" : 1,
    //         "id" : 11,
    //         "raffleStatus" : 1,
    //         "activityStatus" : 1,
    //         "remainder" : -95,
    //         "resultAddress" : "",
    //         "startTime" : 1716616800000,
    //         "openingTime" : 1716616270694,
    //         "content" : "https://notice.hbcpre.com/oss/static/notify/specifics/n_specifics_6780bf194a4840f3a355d1bf69a07db6.html?v=1716613646241",
    //         "raffleModel" : 1
    //     },
    //     "message" : "操作成功",
    //     "success" : true
    // }
    if (rspData.code != 200) {
        return;
    }
    if (isDrawItemGrabEnabled()) {
        let reqData = getRequestPlainData();
        magicJS.data.write(HbcpreConstKey.drawActivityData, rspData.data);
        magicJS.data.write(HbcpreConstKey.drawActivityName, rspData.data.raffleName);
        magicJS.data.write(HbcpreConstKey.drawActivityId, reqData.raffleId);
        magicJS.notification.post(scriptName, "", `🎉[抽奖]<${rspData.data.raffleName}>采集成功！`);
    }
    gRetBody = rspData;
}

function handleRaffleSeriesList(){
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    // rspData = {
    //     "code" : 200,
    //     "data" : [
    //         {
    //             "amount" : 19,
    //             "ownedNum" : 12,
    //             "raffleTotalNum" : 0,
    //             "seriesId" : 3120,
    //             "worksPic" : "/file/oss/wc/pic/nftg/6f6b52d986f04c9e8912443e75c02093.png",
    //             "raffledNum" : 0,
    //             "raffleLimitNum" : 1,
    //             "seriesName" : "银卡"
    //         }
    //     ],
    //     "message" : "操作成功",
    //     "success" : true
    // }
    if (rspData.code != 200) {
        return;
    }
    if (isDrawItemGrabEnabled()) {
        let activityId = magicJS.data.read(HbcpreConstKey.drawActivityId, null);
        let reqData = getRequestPlainData();
        if (activityId == reqData.raffleId) {
            magicJS.data.write(HbcpreConstKey.drawActivityCostSeriesList, rspData.data);
        }
    }
    // amount 价格
    // ownedNum  拥有的数量
    // raffleLimitNum  使用数量
    // gRetBody = rspData;
}

function handleRaffleRun() {
    let reqData = getRequestPlainData();
    if (!reqData) {
        return;
    }
    if (isDrawItemGrabEnabled()) {
        let activityId = magicJS.data.read(HbcpreConstKey.drawActivityId, null);
        if (activityId == reqData.raffleId) {
            magicJS.data.write(HbcpreConstKey.drawActivityRunCount, reqData.raffleNum);
        }
    }
    let rspData = getResponsePlainData();
    if (!rspData) {
        return;
    }
    // rspData = {
    //     "code":200,
    //     "data":[
    //         {
    //             "awards":0,
    //             "awardsName":"未中奖",
    //             "awardsNum":1
    //         }
    //     ],
    //     "message":"操作成功",
    //     "success":true
    // }
    // gRetBody = rspData;
}

function transformKeys(keyStr) {
    let n = 3;
    if (arguments.length > 1 && void 0 !== arguments[1]) {
        n = arguments[1];
    }
    let retStr = "";
    for (i = 0; i < keyStr.length; i++) {
        if (keyStr.charCodeAt(i) >= 65 && keyStr.charCodeAt(i) <= 90) {
            retStr += String.fromCharCode((keyStr.charCodeAt(i) - 65 - n + 26) % 26 + 65);
        } else {
            if (keyStr.charCodeAt(i) >= 97 && keyStr.charCodeAt(i) <= 122) {
                retStr += String.fromCharCode((keyStr.charCodeAt(i) - 97 - n + 26) % 26 + 97);
            } else {
                retStr += String.fromCharCode(keyStr.charCodeAt(i));
            }
        }
    }
    return retStr;
}

function getBaseConfig() {
    let config = {
        "h5_host": "https://luanshu.hbcpre.com",
        "api_host": "https://api.hbcpre.com",
        "name": "华文数交",
        "k": transformKeys("X2931Ur0r023I9PD"),
        "v": transformKeys("g809i9823j7nJ9j7"),
        "encrypt": false
    };
    return config;
}

//AES加密
function encryptAES(wordStr, keyStr, ivStr) {
    if (typeof (wordStr) != 'string') {
        magicJS.logger.error('parame "str" is not a string');
        return;
    }
    if (typeof (keyStr) != 'string') {
        magicJS.logger.error('parame "key" is not a string');
        return;
    }
    let CryptoJS = createCryptoJS();
    let key = CryptoJS.enc.Utf8.parse(keyStr);
    let text = CryptoJS.enc.Utf8.parse(wordStr);
    let encrypted = CryptoJS.AES.encrypt(text, key, {
        iv: CryptoJS.enc.Utf8.parse(ivStr),
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.toString();
}
//AES解密
function decryptAES(wordStr, keyStr, ivStr) {
    if (typeof (wordStr) != 'string') {
        magicJS.logger.error('parame "str" is not a string');
        return;
    }
    if (typeof (keyStr) != 'string') {
        magicJS.logger.error('parame "key" is not a string');
        return;
    }
    let CryptoJS = createCryptoJS();
    let wHexStr = CryptoJS.enc.Hex.parse(wordStr);
    let key = CryptoJS.enc.Utf8.parse(keyStr);
    let decrypt = (CryptoJS.enc.Base64.stringify(wHexStr), CryptoJS.AES.decrypt(wordStr, key, {
        iv: CryptoJS.enc.Utf8.parse(ivStr),
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7,
    }));
    decrypt = decrypt.toString(CryptoJS.enc.Utf8);
    return decrypt.toString();
}

async function hbRequest(config, data) {
    const api = config.API;
    const method = config.METHOD;
    const headers = gCommonHeaders;
    const md5 = createWMd5();
    headers['trans-id'] = md5.hex_md5_32Upper(`${new Date().getTime()}`);

    const baseConfig = getBaseConfig();
    let body = '';
    let url = `${baseConfig.api_host}${api}`;
    if(method == 'post'){
        let contentType = headers['Content-Type'];
        if(contentType && contentType.indexOf('form') > -1){
            // 表单
            body = magicJS.objToQueryStr(data);
        } else {
            body = JSON.stringify(data);
        }
    } else {
        url = `${url}?${magicJS.objToQueryStr(data)}`;
    }
    let options = {
        url: url,
        headers: headers,
        body: body
    };
    let result = await magicJS.http[method](options).then(response => {
        try {
            const body = response.body;
            let rspData = null;
            if (typeof body === "string") {
                magicJS.logger.info(`Response Exception Request By: ${API}`);
                return {
                    code: -1,
                    message: "Response Exception"
                };
            } else if (typeof body === "object") {
                rspData = body;
            }
            magicJS.logger.info(`rspData=${JSON.stringify(rspData)}`);
            if (rspData) {
                return rspData;
            } else {
                return {
                    code: -1,
                    message: "Response Exception"
                };
            }
        } catch (e) {
            magicJS.logger.error(e);
            magicJS.logger.info("请求结果解析失败");
            return {
                code: -1,
                message: "Response Exception"
            };
        }
    }).catch(err => {
        const msg = `请求发送异常\n${JSON.stringify(err)}`;
        magicJS.logger.error(msg);
        if(err.response && err.response.body){
            if (err.response.statusCode == 401) {
                // token失效
                return null;
            }
        }
        return {
            code: -1,
            message: `Response Exception: ${err.message}`
        };
    });
    return result;
}

Main().catch((e) => magicJS.logger.log(`-\n ${e}`)).finally(() => magicJS.done());


//---SyncByPyScript---MagicJS3-start
function MagicJS(e="MagicJS",t="INFO"){const n=()=>{const e="undefined"!=typeof $loon,t="undefined"!=typeof $task,r="undefined"!=typeof module,n="undefined"!=typeof $httpClient&&!e,o="undefined"!=typeof $storm,i="undefined"!=typeof $environment&&void 0!==$environment["stash-build"];var s=n||e||o||i;const a="undefined"!=typeof importModule;return{isLoon:e,isQuanX:t,isNode:r,isSurge:n,isStorm:o,isStash:i,isSurgeLike:s,isScriptable:a,get name(){return e?"Loon":t?"QuantumultX":r?"NodeJS":n?"Surge":a?"Scriptable":"unknown"},get build(){return n?$environment["surge-build"]:i?$environment["stash-build"]:o?$storm.buildVersion:void 0},get language(){if(n||i)return $environment.language},get version(){return n?$environment["surge-version"]:i?$environment["stash-version"]:o?$storm.appVersion:r?process.version:void 0},get system(){return n?$environment.system:r?process.platform:void 0},get systemVersion(){if(o)return $storm.systemVersion},get deviceName(){if(o)return $storm.deviceName}}},o=(r,e="INFO")=>{let n=e,t="\n";const o={SNIFFER:6,DEBUG:5,INFO:4,NOTIFY:3,WARNING:2,ERROR:1,CRITICAL:0,NONE:-1},i={SNIFFER:"",DEBUG:"",INFO:"",NOTIFY:"",WARNING:"❗ ",ERROR:"❌ ",CRITICAL:"❌ ",NONE:""},s=(e,t="INFO")=>{o[n]<o[t.toUpperCase()]||console.log(`██[${r}][${t}]`+i[t.toUpperCase()]+e+"\n")};return{getLevel:()=>n,setLevel:e=>{n=e},sniffer:(...e)=>{e=e.join(t);s(e,"SNIFFER")},log:(...e)=>{e=e.join(t);console.log(`██[${r}]`+e+"\n")},debug:(...e)=>{e=e.join(t);s(e,"DEBUG")},info:(...e)=>{e=e.join(t);s(e,"INFO")},notify:(...e)=>{e=e.join(t);s(e,"NOTIFY")},warning:(...e)=>{e=e.join(t);s(e,"WARNING")},error:(...e)=>{e=e.join(t);s(e,"ERROR")},retry:(...e)=>{e=e.join(t);s(e,"RETRY")}}};return new class{constructor(e,t){var r;this._startTime=Date.now(),this.version="3.0.0",this.scriptName=e,this.env=n(),this.logger=o(e,t),this.http="function"==typeof MagicHttp?MagicHttp(this.env,this.logger):void 0,this.data="function"==typeof MagicData?MagicData(this.env,this.logger):void 0,this.notification="function"==typeof MagicNotification?MagicNotification(this.scriptName,this.env,this.logger,this.http):void 0,this.utils="function"==typeof MagicUtils?MagicUtils(this.env,this.logger):void 0,this.qinglong="function"==typeof MagicQingLong?MagicQingLong(this.env,this.data,this.logger):void 0,void 0!==this.data&&(t=this.data.read("magic_loglevel"),r=this.data.read("magic_bark_url"),t&&this.logger.setLevel(t.toUpperCase()),r)&&this.notification.setBark(r),this.logger.info(e+", 开始执行!")}get isRequest(){return"undefined"!=typeof $request}get isStrictRequest(){return"undefined"!=typeof $request&&"undefined"==typeof $response}get isResponse(){return"undefined"!=typeof $response}get isDebug(){return"DEBUG"===this.logger.level}get request(){return"undefined"!=typeof $request?$request:void 0}get response(){if("undefined"!=typeof $response)return $response.hasOwnProperty("status")&&($response.statusCode=$response.status),$response.hasOwnProperty("statusCode")&&($response.status=$response.statusCode),$response}log(...e){this.logger.log(e)}toStr(e,t=null){try{return JSON.stringify(e)}catch{return t}}toObj(e,t=null){try{return JSON.parse(e)}catch{return t}}checkRecordRequestBody(){if(this.isRequest){var t=$request.body;if(t){var r=this.env,n=$request.path;let e=this.scriptName+"#"+n.replace("/","_");e=e.replace("?","#"),r.isQuanX&&$prefs.setValueForKey(t,e),(r.isLoon||r.isSurge)&&$persistentStore.write(t,e),r.isNode&&require("fs").writeFileSync(e+".json",t,{flag:"w"},e=>console.log(e))}}}getRequestBody(){var e=this.env,t=$request.path;let r=this.scriptName+"#"+t.replace("/","_");if(r=r.replace("?","#"),e.isSurge||e.isLoon)return $persistentStore.read(r);if(e.isQuanX)return $prefs.valueForKey(r);if(e.isNode){t=r+".json",e=require("fs");if(!e.existsSync(t))return JSON.parse(e.readFileSync(t))}}getResponseBody(){if($response)return $response.body}parseCookies(e,t=!1){let r={};return t?e&&e.split(";").forEach(function(e){e=e.split("=");r[e.shift().trim()]=decodeURIComponent(e.join("="))}):e&&e.split(";").forEach(function(e){e=e.split("=");r[e.shift().trim()]=e.join("=")}),r}serializeCookies(e,t=!1){var r=[];if(t)for(var n in e){var o=e[n],n=n+"="+encodeURIComponent(o);r.push(n)}else for(var i in e){var s=e[i],i=i+"="+s;r.push(i)}return r.join("; ")}parseSetCookies(e){var t=e.split(/,\s*/).map(e=>{var e=e.trim().split(/;\s*(?=[^=]+=[^;]*)/),t=e[0].split("=").map(e=>e.trim());const r={name:t[0],value:t[1]};return e.slice(1).forEach(e=>{var[e,t]=e.split("=").map(e=>e.trim());r[e]=t||!0}),r}),r=[];let n=0;for(;n<t.length;){var o,i=t[n];r.push(i),i.Expires?((o=t[n+1])&&(i.Expires=i.Expires+","+o.name),n+=2):n+=1}return r}objToQueryStr(t,r){let n="";for(const o in t){let e=t[o];null!=e&&""!==e&&("object"==typeof e?e=JSON.stringify(e):r&&(e=encodeURIComponent(e)),n+=`${o}=${e}&`)}return n=n.substring(0,n.length-1)}parseQueryStr(e){var t={},r=(e=-1<e.indexOf("?")?e.split("?")[1]:e).split("&");for(let e=0;e<r.length;e++){var n=r[e].split("=");t[n[0]]=n[1]}return t}deepClone(e,t){for(var r in t=t||{},e)"object"==typeof e[r]?(t[r]=e[r].constructor===Array?[]:{},this.deepClone(e[r],t[r])):t[r]=e[r];return t}formatDate(e,t){var r,n={"M+":e.getMonth()+1,"d+":e.getDate(),"H+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds(),"q+":Math.floor((e.getMonth()+3)/3),S:e.getMilliseconds()};for(r in/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length))),n)new RegExp("("+r+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?n[r]:("00"+n[r]).substr((""+n[r]).length)));return t}parseDate(a,e){let l={y:0,M:1,d:0,H:0,h:0,m:0,s:0,S:0};(e=e||"yyyy-MM-dd").replace(/([^yMdHmsS]*?)(([yMdHmsS])\3*)([^yMdHmsS]*?)/g,function(e,t,r,n,o,i,s){return a=a.replace(new RegExp(t+"(\\d{"+r.length+"})"+o),function(e,t){return l[n]=parseInt(t),""}),""}),l.M--;e=new Date(l.y,l.M,l.d,l.H,l.m,l.s);return 0!==l.S&&e.setMilliseconds(l.S),e}getBaseDoneHeaders(e={}){return Object.assign({"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST,GET,OPTIONS,PUT,DELETE","Access-Control-Allow-Headers":"Origin, X-Requested-With, Content-Type, Accept"},e)}getHtmlDoneHeaders(){return this.getBaseDoneHeaders({"Content-Type":"text/html;charset=UTF-8"})}getJsonDoneHeaders(){return this.getBaseDoneHeaders({"Content-Type":"text/json; charset=utf-8",Connection:"keep-alive"})}doWxpusherSend(e){var t=this.getJsonDoneHeaders(),t=(t.Host="wxpusher.zjiecode.com",t["Content-Type"]="application/json;charset=UTF-8",{url:"https://wxpusher.zjiecode.com/api/send/message",headers:t,body:JSON.stringify(e)});return this.http.post(t)}fastWxpusherSend(e,t="",r=""){return this.doWxpusherSend({appToken:"AT_7wDWqSoT8xpJCQqJtHpshKhw7kXc0XCW",content:e,summary:t,contentType:1,topicIds:[],uids:["UID_6P4B00X6Zv8U2oKC0I2R09emxtqq"],url:r,verifyPay:!1,verifyPayType:0})}isEmpty(e){return void 0===e||null==e||""==e||"null"==e||"undefined"==e||0===e.length}base64Encode(e){var t,r,n,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";let i,s,a;for(a=e.length,s=0,i="";s<a;){if(t=255&e.charCodeAt(s++),s==a){i=(i+=o.charAt(t>>2))+o.charAt((3&t)<<4)+"==";break}if(r=e.charCodeAt(s++),s==a){i=(i=(i+=o.charAt(t>>2))+o.charAt((3&t)<<4|(240&r)>>4))+o.charAt((15&r)<<2)+"=";break}n=e.charCodeAt(s++),i=(i=(i=(i+=o.charAt(t>>2))+o.charAt((3&t)<<4|(240&r)>>4))+o.charAt((15&r)<<2|(192&n)>>6))+o.charAt(63&n)}return i}base64Decode(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";if(/([^\s]+[^0-9a-zA-Z\+\/\=]|[^0-9a-zA-Z\+\/\=]\s+)/.test(e))throw new Error("Invalid base64 input");var r,n,o,i,s,a,l=e.replace(/\s/g,"");let u="",c=0;for(;c<l.length;)o=t.indexOf(l.charAt(c++)),r=(15&(i=t.indexOf(l.charAt(c++))))<<4|(s=t.indexOf(l.charAt(c++)))>>2,n=(3&s)<<6|(a=t.indexOf(l.charAt(c++))),u+=String.fromCharCode(o<<2|i>>4),64!==s&&(u+=String.fromCharCode(r)),64!==a&&(u+=String.fromCharCode(n));return u=this.utf8Decode(u)}utf8Decode(t){let e=[],r=0,n=0,o=0;for(t=t.replace(/\r\n/g,"\n");r<t.length;){n=255&t.charCodeAt(r),o=0,o=n<=191?(n&=127,1):n<=223?(n&=31,2):n<=239?(n&=15,3):(n&=7,4);for(let e=1;e<o;++e)n=n<<6|63&t.charCodeAt(e+r);4===o?(n-=65536,e.push(String.fromCharCode(55296|n>>10&1023)),e.push(String.fromCharCode(56320|1023&n))):e.push(String.fromCharCode(n)),r+=o}return e.join("")}parseJwt(e){try{var t=e.split("."),r=t[0].replace(/-/g,"+").replace(/_/g,"/"),n=this.base64Decode(r).replace(/\0/g,""),o=JSON.parse(n),i=t[1].replace(/-/g,"+").replace(/_/g,"/"),s=this.base64Decode(i).replace(/\0/g,"");return{header:o,payload:JSON.parse(s),signature:t[2]}}catch(e){return this.log(e),null}}costTime(){var e=this.scriptName+"执行完毕！",t=(this._endTime=(new Date).getTime(),this._endTime-this._startTime);this.logger.info(e+`耗时【${t/1e3}】秒`)}done=(e={})=>{this.costTime(),"undefined"!=typeof $done&&$done(e)}}(e,t)}function MagicHttp(d,p){var e;let g;d.isNode&&(e=require("axios"),g=e.create());class t{constructor(e=!0){this.handlers=[],this.isRequest=e}use(e,t,r){return"function"==typeof e&&p.debug("Register fulfilled "+e.name),"function"==typeof t&&p.debug("Register rejected "+t.name),this.handlers.push({fulfilled:e,rejected:t,synchronous:!(!r||"boolean"!=typeof r.synchronous)&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}forEach(t){this.handlers.forEach(e=>{null!==e&&t(e)})}}function f(e){let r={...e};return r.params&&!d.isNode&&(e=Object.keys(r.params).map(e=>{var t=encodeURIComponent(e);return r.url=r.url.replace(new RegExp(e+"=[^&]*","ig"),""),r.url=r.url.replace(new RegExp(t+"=[^&]*","ig"),""),t+"="+encodeURIComponent(r.params[e])}).join("&"),r.url.indexOf("?")<0&&(r.url+="?"),/(&|\?)$/g.test(r.url)||(r.url+="&"),r.url+=e,delete r.params,p.debug("Params to QueryString: "+r.url)),r}const h=(e,t=null)=>{if(e){t={...e,config:e.config||t,status:e.statusCode||e.status,body:e.body||e.data,headers:e.headers||e.header};if("string"==typeof t.body)try{t.body=JSON.parse(t.body)}catch{}return delete t.data,t}return e};const y=(e,t=null)=>{if(e&&400<=e.status)return p.debug("Raise exception when status code is "+e.status),{name:"RequestException",message:"Request failed with status code "+e.status,config:t||e.config,response:e}},m={request:new t,response:new t(!1)};let v=[],b=[],S=!0;function N(e){return e=f(e),p.debug(`HTTP ${e.method.toUpperCase()}:`+"\n"+JSON.stringify(e)),e}function E(t){try{t=t&&h(t),p.sniffer(`HTTP ${t.config.method.toUpperCase()}:`+"\n"+JSON.stringify(t.config)+"\nSTATUS CODE:\n"+t.status+"\nRESPONSE:\n"+("object"==typeof t.body?JSON.stringify(t.body):t.body));var e=y(t);return e?Promise.reject(e):t}catch(e){return p.error(e),t}}const r=(e,r)=>{let n;r=((e,t)=>{let r="object"==typeof t?{headers:{},...t}:{url:t,headers:{}};return r.method||(r.method=e),!0===(r=f(r)).rewrite&&(d.isSurge?(r.headers["X-Surge-Skip-Scripting"]=!1,delete r.rewrite):d.isQuanX&&(r.hints=!1,delete r.rewrite)),d.isSurgeLike?(t=r.headers["content-type"]||r.headers["Content-Type"],"GET"!==r.method&&t&&0<=t.indexOf("application/json")&&r.body instanceof Array&&(r.body=JSON.stringify(r.body),p.debug("Convert Array object to String: "+r.body))):d.isQuanX?(r.hasOwnProperty("body")&&"string"!=typeof r.body&&(r.body=JSON.stringify(r.body)),r.method=e):d.isNode&&("POST"===e||"PUT"===e||"PATCH"===e||"DELETE"===e?r.data=r.data||r.body:"GET"===e&&(r.params=r.params||r.body),delete r.body),r})(e.toUpperCase(),r),n=d.isNode?g:d.isSurgeLike?i=>new Promise((n,o)=>{$httpClient[e.toLowerCase()](i,(e,t,r)=>{e?(e={name:e.name||e,message:e.message||e,stack:e.stack||e,config:i,response:h(t)},o(e)):(t.config=i,t.body=r,n(t))})}):n=>new Promise((r,t)=>{$task.fetch(n).then(e=>{e=h(e,n);var t=y(e,n);if(t)return Promise.reject(t);r(e)}).catch(e=>{e={name:e.message||e.error,message:e.message||e.error,stack:e.error,config:n,response:e.response?h(e.response):null};t(e)})});let o;var t=r;try{v=[],b=[],m.request.forEach(e=>{"function"==typeof e.runWhen&&!1===e.runWhen(t)||(S=S&&e.synchronous,v.unshift(e.fulfilled,e.rejected))}),m.response.forEach(e=>{b.push(e.fulfilled,e.rejected)})}catch(e){p.error(`Failed to register interceptors: ${e}.`)}var i=[N,void 0],s=[E,void 0];if(S){for(p.debug("Interceptors are executed in synchronous mode"),Array.prototype.unshift.apply(v,i),v=v.concat([N,void 0]);v.length;){var a=v.shift(),l=v.shift();try{"function"==typeof a&&p.debug("Executing request fulfilled "+a.name),r=a(r)}catch(e){"function"==typeof l&&p.debug("Executing request rejected "+l.name),l(e);break}}try{o=(!d.isNode&&r.timeout?c:n)(r)}catch(e){return Promise.reject(e)}for(Array.prototype.unshift.apply(b,s);b.length;)o=o.then(b.shift(),b.shift());return o}{p.debug("Interceptors are executed in asynchronous mode");let t=[n,void 0];for(Array.prototype.unshift.apply(t,i),Array.prototype.unshift.apply(t,v),t=(t=t.concat(s)).concat(b),o=Promise.resolve(r);t.length;)try{let e=t.shift();var u=t.shift();"function"==typeof(e=!d.isNode&&r.timeout&&e===n?c:e)&&p.debug("Executing request fulfilled "+e.name),"function"==typeof u&&p.debug("Executing request rejected "+u.name),o=o.then(e,u)}catch(e){p.error("request exception: "+e)}return o}function c(r){try{var e=new Promise((e,t)=>{setTimeout(()=>{var e={message:`timeout of ${r.timeout}ms exceeded.`,config:r};t(e)},r.timeout)});return Promise.race([n(r),e])}catch(e){p.error(`Request Timeout exception: ${e}.`)}}};return{request:r,interceptors:m,convertHeadersToLowerCase:r=>Object.keys(r).reduce((e,t)=>(e[t.toLowerCase()]=r[t],e),{}),convertHeadersToCamelCase:r=>Object.keys(r).reduce((e,t)=>{return e[t.split("-").map(e=>e[0].toUpperCase()+e.slice(1)).join("-")]=r[t],e},{}),modifyResponse:h,get:e=>r("GET",e),post:e=>r("POST",e),put:e=>r("PUT",e),patch:e=>r("PATCH",e),delete:e=>r("DELETE",e),head:e=>r("HEAD",e),options:e=>r("OPTIONS",e)}}function MagicData(d,p){let g={fs:void 0,data:{}};if(d.isNode){g.fs=require("fs");try{g.fs.accessSync("./magic.json",g.fs.constants.R_OK|g.fs.constants.W_OK)}catch(e){g.fs.writeFileSync("./magic.json","{}",{encoding:"utf8"})}g.data=require("./magic.json")}const s=(e,t)=>"object"!=typeof t&&e===t,a=e=>"true"===e||"false"!==e&&(void 0===e?null:e),l=(e,t,r,n)=>{if(r)try{e=!0===(e="string"==typeof e?JSON.parse(e):e).magic_session?e[r]:null}catch{e=null}if("string"==typeof e&&"null"!==e)try{e=JSON.parse(e)}catch{}return null==(e=!1===n&&e&&!0===e.magic_session?null:e)&&null!=t&&(e=t),e=a(e)},f=t=>{if("string"!=typeof t)return t instanceof Array||null==t||t!=t||"boolean"==typeof t?{}:t;{let e={};try{var r=typeof(e=JSON.parse(t));("object"!=r||e instanceof Array||"bool"==r||null===e)&&(e={})}catch{}return e}},u=(e,t=null,r="",n=!1,o=null)=>{let i="";return i=o||d.isNode?((e,t=null,r="",n=!1,o=null)=>{o=o||g.data;return val=o&&void 0!==o[e]&&null!==o[e]?o[e]:r?{}:null,val=l(val,t,r,n)})(e,t,r,n,o):(d.isSurgeLike?i=$persistentStore.read(e):d.isQuanX&&(i=$prefs.valueForKey(e)),l(i,t,r,n)),p.debug(`READ DATA [${e}]${r?`[${r}]`:""} <${typeof i}>`+"\n"+JSON.stringify(i)),i},c=(e,t,r="",n=null)=>{if(void 0===t||t!=t)return!1;d.isNode||"boolean"!=typeof t&&"number"!=typeof t||(t=String(t));let o="";var i,s,a,l,u,c;if(n||d.isNode?o=([i,s,a="",l=null]=[e,t,r,n],c=l||g.data,c=f(c),a?((u=f(c[i])).magic_session=!0,u[a]=s,c[i]=u):c[i]=s,null!==l&&(l=c),c):r?(d.isSurgeLike?o=$persistentStore.read(e)?$persistentStore.read(e):o:d.isQuanX&&(o=$prefs.valueForKey(e)?$prefs.valueForKey(e):o),(o=f(o)).magic_session=!0,o[r]=t):o=t,o&&"object"==typeof o&&(o=JSON.stringify(o,null,4)),p.debug(`WRITE DATA [${e}]${r?`[${r}]`:""} <${typeof t}>`+"\n"+JSON.stringify(t)),!n){if(d.isSurgeLike)return $persistentStore.write(o,e);if(d.isQuanX)return $prefs.setValueForKey(o,e);if(d.isNode)try{g.fs.writeFileSync("./magic.json",o)}catch(e){return p.error(e),!1}}return!0};return{read:u,write:c,del:(e,t="",r=null)=>{let n={};if(r||d.isNode)n=(o=e,i=t,s=r||g.data,s=f(s),i?(delete(obj=f(s[o]))[i],s[o]=obj):delete s[o],s),r?r=n:g.fs.writeFileSync("./magic.json",JSON.stringify(n,null,4));else if(t){d.isSurgeLike?n=$persistentStore.read(e):d.isQuanX&&(n=$prefs.valueForKey(e)),delete(n=f(n))[t];i=JSON.stringify(n,null,4);c(e,i)}else{if(d.isStorm)return $persistentStore.remove(e);if(d.isSurgeLike)return $persistentStore.write(null,e);if(d.isQuanX)return $prefs.removeValueForKey(e)}var o,i,s;p.debug(`DELETE KEY [${e}]`+(t?`[${t}]`:""))},update:(e,t,r,n=s,o=null)=>{var i;return t=a(t),!0!==n(u(e,null,r,!1,o),t)&&(i=c(e,t,r,o),e=u(e,null,r,!1,o),n===s&&"object"==typeof e?i:n(t,e))},allSessions:(e,t=null)=>{let r={};t=u(e,null,null,!0,t);return!0===(t=f(t)).magic_session&&delete(r={...t}).magic_session,p.debug(`READ ALL SESSIONS [${e}] <${typeof r}>`+"\n"+JSON.stringify(r,null,4)),r},allSessionNames:(e,t=null)=>{let r=[];t=u(e,null,null,!0,t),t=f(t);return r=!0!==t.magic_session?[]:Object.keys(t).filter(e=>"magic_session"!==e),p.debug(`READ ALL SESSIONS [${e}] <${typeof r}>`+"\n"+JSON.stringify(r,null,4)),r},defaultValueComparator:s,convertToObject:f}}function MagicNotification(i,o,s,a){let l=null,u=null,c=[];function d(e=i,t="",r="",n=""){n=(t=>{try{let e={};var r;return"string"==typeof t?0<t.length&&(o.isLoon?e={openUrl:t}:o.isQuanX?e={"open-url":t}:o.isSurge&&(e={url:t})):"object"==typeof t&&(o.isLoon?(e.openUrl=t["open-url"]||"",e.mediaUrl=t["media-url"]||""):o.isQuanX?e=t["open-url"]||t["media-url"]?t:{}:o.isSurge&&(r=t["open-url"]||t.openUrl,e=r?{url:r}:{})),e}catch(e){s.error("通知选项转换失败"+e)}return t})(n),1===arguments.length&&(e=i,t="",r=arguments[0]),s.notify("\ntitle:"+e+"\nsubTitle:"+t+"\nbody:"+r+"\noptions:"+("object"==typeof n?JSON.stringify(n):n)),o.isSurge?$notification.post(e,t,r,n):o.isLoon?n?$notification.post(e,t,r,n):$notification.post(e,t,r):o.isQuanX&&$notify(e,t,r,n),l&&u&&p(e,t,r)}function p(e=i,t="",r="",n){if(void 0===a||void 0===a.post)throw"Bark notification needs to import MagicHttp module.";e={url:l,headers:{"content-type":"application/json; charset=utf-8"},body:{title:e,body:t?t+"\n"+r:r,device_key:u}};a.post(e).catch(e=>{s.error("Bark notify error: "+e)})}return{post:d,debug:function(e=i,t="",r="",n=""){"DEBUG"===s.getLevel()&&(1===arguments.length&&(e=i,t="",r=arguments[0]),this.post(e,t,r,n))},bark:p,setBark:e=>{try{var t=e.replace(/\/+$/g,"");l=/^https?:\/\/([^/]*)/.exec(t)[0]+"/push",u=/\/([^\/]+)\/?$/.exec(t)[1]}catch(e){s.error(`Bark url error: ${e}.`)}},appendNotifyInfo:function(e,t){1==t?c=e:c.push(e)},prependNotifyInfo:function(e){c.splice(0,0,e)},msg:function(e,t,r,n){var o={};r&&(o["open-url"]=r),n&&(o["media-url"]=n),(t=t&&0!=t.length?t:Array.isArray(c)?c.join("\n"):c)&&0<t.length&&d(i,"",t,o)}}}function MagicUtils(n,u){const e=(e,t="yyyy-MM-dd hh:mm:ss")=>{var r,n={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds(),"q+":Math.floor((e.getMonth()+3)/3),S:e.getMilliseconds()};for(r in/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length))),n)new RegExp("("+r+")").test(t)&&(t=t.replace(RegExp.$1,1===RegExp.$1.length?n[r]:("00"+n[r]).substr((""+n[r]).length)));return t};return{retry:(i,s=5,a=0,l=null)=>(...e)=>new Promise((r,n)=>{function o(...t){Promise.resolve().then(()=>i.apply(this,t)).then(e=>{"function"==typeof l?Promise.resolve().then(()=>l(e)).then(()=>{r(e)}).catch(e=>{1<=s?0<a?setTimeout(()=>o.apply(this,t),a):o.apply(this,t):n(e),s--}):r(e)}).catch(e=>{u.error(e),1<=s&&0<a?setTimeout(()=>o.apply(this,t),a):1<=s?o.apply(this,t):n(e),s--})}o.apply(this,e)}),formatTime:e,now:()=>e(new Date,"yyyy-MM-dd hh:mm:ss"),today:()=>e(new Date,"yyyy-MM-dd"),sleep:t=>new Promise(e=>setTimeout(e,t)),assert:(e,t=null)=>{var r;n.isNode?(r=require("assert"),t?r(e,t):r(e)):!0!==e&&u.error("AssertionError: "+(t||"The expression evaluated to a falsy value."))}}}function MagicQingLong(e,a,o){let i="",s="",l="",u="",c="",t="";const d="magic.json",p=MagicHttp(e,o);async function r(){return l=l||a.read("magic_qlclient"),u=u||a.read("magic_qlsecrt"),s=s||a.read("magic_qlname"),c=c||a.read("magic_qlpwd"),i&&l&&u?(o.info("Get token from QingLong Panel"),await p.get({url:"/open/auth/token",headers:{"content-type":"application/json"},params:{client_id:l,client_secret:u}}).then(e=>{if(!(0<Object.keys(e.body).length&&e.body.data&&e.body.data.token))throw new Error("Get QingLong Panel token failed.");o.info("Successfully logged in to QingLong Panel"),t=e.body.data.token,a.write("magic_qltoken",t)}).catch(e=>{o.error("Error logging in to QingLong Panel.\n"+(e.message||e))})):i&&s&&c&&await p.post({url:"/api/user/login",headers:{"content-type":"application/json"},body:{username:s,password:c}}).then(e=>{o.info("Successfully logged in to QingLong Panel"),t=e.body.data.token,a.write("magic_qltoken",t)}).catch(e=>{o.error("Error logging in to QingLong Panel.\n"+(e.message||e))}),t}async function g(e){let t=[];return await p.post({url:"/api/envs",headers:{"content-type":"application/json"},body:e}).then(e=>{200===e.body.code?e.body.data.forEach(e=>{o.debug(`QINGLONG ADD ENV ${e.name} <${typeof e.value}> (${e.id})`+"\n"+JSON.stringify(e)),t.push(e.id)}):o.error("Error adding environments variable from QingLong Panel.\n"+JSON.stringify(e))}).catch(e=>{o.error("Error adding environments variable from QingLong Panel.\n"+(e.message||e))}),t}async function n(n=null,e="",t){let o=[];return await p.get({url:"/api/envs",headers:{"content-type":"application/json"},params:{searchValue:e}}).then(e=>{if(200!==e.body.code)throw new Error("Error reading environment variable from QingLong Panel.\n"+JSON.stringify(e));e=e.body.data;if(n){var t=[];for(const r of e)r.name===n&&o.push(r);o=t}o=e}).catch(e=>{throw new Error("Error reading environments variable from QingLong Panel.\n"+(e.message||e))}),o}async function f(e,t=""){let r="";return await p.get({url:"/api/scripts/"+e,params:{path:t}}).then(e=>{if(200!==e.body.code)throw new Error("Error reading data from QingLong Panel.\n"+JSON.stringify(e));r=e.body.data}).catch(e=>{throw new Error("Error reading data from QingLong Panel.\n"+(e.message||e))}),r}async function h(e,t="",r=""){let n=!1;return await p.put({url:"/api/scripts",headers:{"content-type":"application/json"},body:{filename:e,path:t,content:r}}).then(e=>{200===e.body.code?n=!0:o.error("Error reading data from QingLong Panel.\n"+JSON.stringify(e))}).catch(e=>{o.error("Error reading data from QingLong Panel.\n"+(e.message||e))}),n}return p.interceptors.request.use(function(e){return i=i||a.read("magic_qlurl"),e.url.indexOf(i)<0&&(e.url=""+i+e.url),{...e,timeout:3e3}},void 0),p.interceptors.request.use(function(e){return(l=l||a.read("magic_qlclient"))&&(e.url=e.url.replace("/api/","/open/")),e},void 0,{runWhen:e=>e.url.indexOf("api/user/login")<0&&e.url.indexOf("open/auth/token")<0}),p.interceptors.request.use(async function(e){return(t=t||a.read("magic_qltoken",""))||await r(),e.headers.authorization="Bearer "+t,e},void 0,{runWhen:e=>e.url.indexOf("api/user/login")<0&&e.url.indexOf("open/auth/token")<0}),p.interceptors.request.use(function(e){return e.params={...e.params,t:Date.now()},e},void 0,{runWhen:e=>e.url.indexOf("open/auth/token")<0}),p.interceptors.request.use(function(e){return i=i||a.read("magic_qlurl"),t=t||a.read("magic_qltoken"),o.debug("QingLong url: "+i+"\nQingLong token: "+t),e},void 0),p.interceptors.response.use(void 0,async function(e){try{var t=e.message||e.error||JSON.stringify(e);return(0<=t.indexOf("NSURLErrorDomain")&&0<=t.indexOf("-1012")||e.response&&401===e.response.status)&&e.config&&!0!==e.config.refreshToken?(o.warning("QingLong Panel token has expired"),o.info("Refreshing the QingLong Panel token"),await r(),e.config.refreshToken=!0,o.info("Call the previous method again"),await p.request(e.config.method,e.config)):Promise.reject(e)}catch(e){return Promise.reject(e)}}),{url:i||a.read("magic_qlurl"),init:(e,t,r,n,o)=>{i=e,l=t,u=r,s=n,c=o},getToken:r,setEnv:async function(t,r,n=null){if(i=i||a.read("magic_qlurl"),null===n){var e=await g([{name:t,value:r}]);if(e&&1===e.length)return e[0]}else await p.put({url:"/api/envs",headers:{"content-type":"application/json"},body:{name:t,value:r,id:n}}).then(e=>{if(200===e.body.code)return o.debug(`QINGLONG UPDATE ENV ${t} <${typeof r}> (${n})`+"\n"+JSON.stringify(r)),!0;o.error("Error adding environment variable from QingLong Panel.\n"+JSON.stringify(e))}).catch(e=>(o.error("Error adding environment variable from QingLong Panel.\n"+(e.message||e)),!1))},setEnvs:g,getEnv:async function(e){let t=null;for(const r of await n())if(r.id===e){t=r;break}return t},getEnvs:n,delEnvs:async function(t){return p.delete({url:"/api/envs",headers:{accept:"application/json","accept-language":"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",connection:"keep-alive","content-type":"application/json;charset=UTF-8","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.30"},body:t}).then(e=>200===e.body.code?(o.debug("QINGLONG DELETE ENV IDS: "+t),!0):(o.error("Error deleting environments variable from QingLong Panel.\n"+JSON.stringify(e)),!1)).catch(e=>{o.error("Error deleting environments variable from QingLong Panel.\n"+(e.message||e))})},disableEnvs:async function(t){let r=!1;return await p.put({url:"/api/envs/disable",headers:{accept:"application/json","accept-Language":"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",connection:"keep-alive","content-type":"application/json;charset=UTF-8","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.30"},body:t}).then(e=>{200===e.body.code?(o.debug("QINGLONG DISABLED ENV IDS: "+t),r=!0):o.error("Error disabling environments variable from QingLong Panel.\n"+JSON.stringify(e))}).catch(e=>{o.error("Error disabling environments variable from QingLong Panel.\n"+(e.message||e))}),r},enableEnvs:async function(t){let r=!1;return await p.put({url:"/api/envs/enable",headers:{accept:"application/json","accept-language":"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",connection:"keep-alive","content-type":"application/json;charset=UTF-8","user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36 Edg/102.0.1245.30"},body:t}).then(e=>{200===e.body.code?(o.debug("QINGLONG ENABLED ENV IDS: "+t),r=!0):o.error("Error enabling environments variable from Qilong panel.\n"+JSON.stringify(e))}).catch(e=>{o.error("Error enabling environments variable from Qilong panel.\n"+(e.message||e))}),r},addScript:async function(e,t="",r=""){let n=!1;return await p.post({url:"/api/scripts",headers:{"content-type":"application/json"},body:{filename:e,path:t,content:r}}).then(e=>{200===e.body.code?n=!0:o.error("Error reading data from QingLong Panel.\n"+JSON.stringify(e))}).catch(e=>{o.error("Error reading data from QingLong Panel.\n"+(e.message||e))}),n},getScript:f,editScript:h,delScript:async function(e,t=""){let r=!1;return await p.delete({url:"/api/scripts",headers:{"content-type":"application/json"},body:{filename:e,path:t}}).then(e=>{200===e.body.code?r=!0:o.error("Error reading data from QingLong Panel.\n"+JSON.stringify(e))}).catch(e=>{o.error("Error reading data from QingLong Panel.\n"+(e.message||e))}),r},write:async function(e,t,r=""){var n=await f(d,""),o=a.convertToObject(n),e=a.write(e,t,r,o),n=JSON.stringify(o,null,4);return await h(d,"",n)&&e},read:async function(e,t,r="",n=!1){var o=await f(d,""),o=a.convertToObject(o);return a.read(e,t,r,n,o)},del:async function(e,t=""){var r=await f(d,""),n=a.convertToObject(r),e=a.del(e,t,n),r=JSON.stringify(n,null,4),t=await h(d,"",r);return e&&t},update:async function(e,t,r,n=a.defaultValueComparator){var o=await f(d,""),i=a.convertToObject(o),e=a.update(e,t,r,n,i);let s=!1;return!0===e&&(o=JSON.stringify(i,null,4),s=await h(d,"",o)),e&&s},batchWrite:async function(...e){var t,r=await f(d,""),n=a.convertToObject(r);for(t of e)a.write(t[0],t[1],void 0!==t[2]?t[2]:"",n);return r=JSON.stringify(n,null,4),h(d,"",r)},batchRead:async function(...e){var t,r=await f(d,""),n=a.convertToObject(r),o=[];for(t of e){var i=a.read(t[0],t[1],void 0!==t[2]?t[2]:"","boolean"==typeof t[3]&&t[3],n);o.push(i)}return o},batchUpdate:async function(...e){var t,r=await f(d,""),n=a.convertToObject(r);for(t of e)a.update(t[0],t[1],void 0!==t[2]?t[2]:"",void 0!==t[3]?t.comparator:a.defaultValueComparator,n);return r=JSON.stringify(n,null,4),h(d,"",r)},batchDel:async function(...e){var t,r=await f(d,""),n=a.convertToObject(r);for(t of e)a.del(t[0],void 0!==t[1]?t[1]:"",n);return r=JSON.stringify(n,null,4),h(d,"",r)},allSessions:async function(e){var t=await f(d,""),t=a.convertToObject(t);return a.allSessions(e,t)},allSessionNames:async function(e){var t=await f(d,""),t=a.convertToObject(t);return a.allSessionNames(e,t)}}}
//---SyncByPyScript---MagicJS3-end

//---SyncByPyScript---CryptoJS-start
function createCryptoJS(){var r=Object.getOwnPropertyNames,u=(e=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(e,{get:(e,t)=>("undefined"!=typeof require?require:e)[t]}):e)(function(e){if("undefined"!=typeof require)return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),e=(e,t)=>function(){return t||(0,e[r(e)[0]])((t={exports:{}}).exports,t),t.exports},y=e({"(disabled):crypto"(){}}),n=e({"core.js"(e,t){var r,i;i=function(){var i,f=Math;if("undefined"!=typeof window&&window.crypto&&(i=window.crypto),"undefined"!=typeof self&&self.crypto&&(i=self.crypto),!(i=!(i=!(i="undefined"!=typeof globalThis&&globalThis.crypto?globalThis.crypto:i)&&"undefined"!=typeof window&&window.msCrypto?window.msCrypto:i)&&"undefined"!=typeof global&&global.crypto?global.crypto:i)&&"function"==typeof u)try{i=y()}catch(e){}var r=Object.create||function(e){return t.prototype=e,e=new t,t.prototype=null,e};function t(){}var e={},n=e.lib={},o=n.Base={extend:function(e){var t=r(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},h=n.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||s).stringify(this)},concat:function(e){var t=this.words,r=e.words,i=this.sigBytes,n=e.sigBytes;if(this.clamp(),i%4)for(var o=0;o<n;o++){var c=r[o>>>2]>>>24-o%4*8&255;t[i+o>>>2]|=c<<24-(i+o)%4*8}else for(var s=0;s<n;s+=4)t[i+s>>>2]=r[s>>>2];return this.sigBytes+=n,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=f.ceil(t/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r<e;r+=4)t.push(function(){if(i){if("function"==typeof i.getRandomValues)try{return i.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof i.randomBytes)try{return i.randomBytes(4).readInt32LE()}catch(e){}}throw new Error("Native crypto module could not be used to get secure random number.")}());return new h.init(t,e)}}),c=e.enc={},s=c.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n++){var o=t[n>>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i+=2)r[i>>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new h.init(r,t/2)}},a=c.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n++){var o=t[n>>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i++)r[i>>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new h.init(r,t)}},d=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(a.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return a.parse(unescape(encodeURIComponent(e)))}},p=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new h.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t,r=this._data,i=r.words,n=r.sigBytes,o=this.blockSize,c=n/(4*o),s=(c=e?f.ceil(c):f.max((0|c)-this._minBufferSize,0))*o,e=f.min(4*s,n);if(s){for(var a=0;a<s;a+=o)this._doProcessBlock(i,a);t=i.splice(0,s),r.sigBytes-=e}return new h.init(t,e)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),l=(n.Hasher=p.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){p.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(r){return function(e,t){return new r.init(t).finalize(e)}},_createHmacHelper:function(r){return function(e,t){return new l.HMAC.init(r,t).finalize(e)}}}),e.algo={});return e},"object"==typeof(r=e)?t.exports=e=i():"function"==typeof define&&define.amd?define([],i):r.CryptoJS=i()}}),o=e({"x64-core.js"(e,t){var r,i;i=function(e){var t,n,o;return t=e.lib,n=t.Base,o=t.WordArray,(t=e.x64={}).Word=n.extend({init:function(e,t){this.high=e,this.low=t}}),t.WordArray=n.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:8*e.length},toX32:function(){for(var e=this.words,t=e.length,r=[],i=0;i<t;i++){var n=e[i];r.push(n.high),r.push(n.low)}return o.create(r,this.sigBytes)},clone:function(){for(var e=n.clone.call(this),t=e.words=this.words.slice(0),r=t.length,i=0;i<r;i++)t[i]=t[i].clone();return e}}),e},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),c=e({"lib-typedarrays.js"(e,t){var r,i;i=function(e){var t,n;return"function"==typeof ArrayBuffer&&(t=e.lib.WordArray,n=t.init,(t.init=function(e){if((e=(e=e instanceof ArrayBuffer?new Uint8Array(e):e)instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e)instanceof Uint8Array){for(var t=e.byteLength,r=[],i=0;i<t;i++)r[i>>>2]|=e[i]<<24-i%4*8;n.call(this,r,t)}else n.apply(this,arguments)}).prototype=t),e.lib.WordArray},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),s=e({"enc-utf16.js"(e,t){var r,i;i=function(e){var n=e.lib.WordArray,t=e.enc;function c(e){return e<<8&4278255360|e>>>8&16711935}return t.Utf16=t.Utf16BE={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n+=2){var o=t[n>>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i++)r[i>>>1]|=e.charCodeAt(i)<<16-i%2*16;return n.create(r,2*t)}},t.Utf16LE={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=[],n=0;n<r;n+=2){var o=c(t[n>>>2]>>>16-n%4*8&65535);i.push(String.fromCharCode(o))}return i.join("")},parse:function(e){for(var t=e.length,r=[],i=0;i<t;i++)r[i>>>1]|=c(e.charCodeAt(i)<<16-i%2*16);return n.create(r,2*t)}},e.enc.Utf16},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),a=e({"enc-base64.js"(e,t){var r,i;i=function(e){var u;return u=e.lib.WordArray,e.enc.Base64={stringify:function(e){for(var t=e.words,r=e.sigBytes,i=this._map,n=(e.clamp(),[]),o=0;o<r;o+=3)for(var c=(t[o>>>2]>>>24-o%4*8&255)<<16|(t[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|t[o+2>>>2]>>>24-(o+2)%4*8&255,s=0;s<4&&o+.75*s<r;s++)n.push(i.charAt(c>>>6*(3-s)&63));var a=i.charAt(64);if(a)for(;n.length%4;)n.push(a);return n.join("")},parse:function(e){var t=e.length,r=this._map;if(!(i=this._reverseMap))for(var i=this._reverseMap=[],n=0;n<r.length;n++)i[r.charCodeAt(n)]=n;for(var o,c,s=r.charAt(64),a=(s&&-1!==(s=e.indexOf(s))&&(t=s),e),f=t,h=i,d=[],p=0,l=0;l<f;l++)l%4&&(o=h[a.charCodeAt(l-1)]<<l%4*2,c=h[a.charCodeAt(l)]>>>6-l%4*2,d[p>>>2]|=(o|c)<<24-p%4*8,p++);return u.create(d,p)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},e.enc.Base64},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),f=e({"enc-base64url.js"(e,t){var r,i;i=function(e){var u;return u=e.lib.WordArray,e.enc.Base64url={stringify:function(e,t=!0){for(var r=e.words,i=e.sigBytes,n=t?this._safe_map:this._map,o=(e.clamp(),[]),c=0;c<i;c+=3)for(var s=(r[c>>>2]>>>24-c%4*8&255)<<16|(r[c+1>>>2]>>>24-(c+1)%4*8&255)<<8|r[c+2>>>2]>>>24-(c+2)%4*8&255,a=0;a<4&&c+.75*a<i;a++)o.push(n.charAt(s>>>6*(3-a)&63));var f=n.charAt(64);if(f)for(;o.length%4;)o.push(f);return o.join("")},parse:function(e,t=!0){var r=e.length,i=t?this._safe_map:this._map;if(!(n=this._reverseMap))for(var n=this._reverseMap=[],o=0;o<i.length;o++)n[i.charCodeAt(o)]=o;for(var c,s,t=i.charAt(64),a=(t&&-1!==(t=e.indexOf(t))&&(r=t),e),f=r,h=n,d=[],p=0,l=0;l<f;l++)l%4&&(c=h[a.charCodeAt(l-1)]<<l%4*2,s=h[a.charCodeAt(l)]>>>6-l%4*2,d[p>>>2]|=(c|s)<<24-p%4*8,p++);return u.create(d,p)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},e.enc.Base64url},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),h=e({"md5.js"(e,t){var r,i;i=function(e){for(var a=Math,t=e,r=(n=t.lib).WordArray,i=n.Hasher,n=t.algo,C=[],o=0;o<64;o++)C[o]=4294967296*a.abs(a.sin(o+1))|0;function A(e,t,r,i,n,o,c){e=e+(t&r|~t&i)+n+c;return(e<<o|e>>>32-o)+t}function H(e,t,r,i,n,o,c){e=e+(t&i|r&~i)+n+c;return(e<<o|e>>>32-o)+t}function j(e,t,r,i,n,o,c){e=e+(t^r^i)+n+c;return(e<<o|e>>>32-o)+t}function z(e,t,r,i,n,o,c){e=e+(r^(t|~i))+n+c;return(e<<o|e>>>32-o)+t}return n=n.MD5=i.extend({_doReset:function(){this._hash=new r.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var i=t+r,n=e[i];e[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}var o=this._hash.words,c=e[t+0],s=e[t+1],a=e[t+2],f=e[t+3],h=e[t+4],d=e[t+5],p=e[t+6],l=e[t+7],u=e[t+8],y=e[t+9],_=e[t+10],v=e[t+11],g=e[t+12],B=e[t+13],m=e[t+14],w=e[t+15],b=A(o[0],x=o[1],S=o[2],k=o[3],c,7,C[0]),k=A(k,b,x,S,s,12,C[1]),S=A(S,k,b,x,a,17,C[2]),x=A(x,S,k,b,f,22,C[3]);b=A(b,x,S,k,h,7,C[4]),k=A(k,b,x,S,d,12,C[5]),S=A(S,k,b,x,p,17,C[6]),x=A(x,S,k,b,l,22,C[7]),b=A(b,x,S,k,u,7,C[8]),k=A(k,b,x,S,y,12,C[9]),S=A(S,k,b,x,_,17,C[10]),x=A(x,S,k,b,v,22,C[11]),b=A(b,x,S,k,g,7,C[12]),k=A(k,b,x,S,B,12,C[13]),S=A(S,k,b,x,m,17,C[14]),b=H(b,x=A(x,S,k,b,w,22,C[15]),S,k,s,5,C[16]),k=H(k,b,x,S,p,9,C[17]),S=H(S,k,b,x,v,14,C[18]),x=H(x,S,k,b,c,20,C[19]),b=H(b,x,S,k,d,5,C[20]),k=H(k,b,x,S,_,9,C[21]),S=H(S,k,b,x,w,14,C[22]),x=H(x,S,k,b,h,20,C[23]),b=H(b,x,S,k,y,5,C[24]),k=H(k,b,x,S,m,9,C[25]),S=H(S,k,b,x,f,14,C[26]),x=H(x,S,k,b,u,20,C[27]),b=H(b,x,S,k,B,5,C[28]),k=H(k,b,x,S,a,9,C[29]),S=H(S,k,b,x,l,14,C[30]),b=j(b,x=H(x,S,k,b,g,20,C[31]),S,k,d,4,C[32]),k=j(k,b,x,S,u,11,C[33]),S=j(S,k,b,x,v,16,C[34]),x=j(x,S,k,b,m,23,C[35]),b=j(b,x,S,k,s,4,C[36]),k=j(k,b,x,S,h,11,C[37]),S=j(S,k,b,x,l,16,C[38]),x=j(x,S,k,b,_,23,C[39]),b=j(b,x,S,k,B,4,C[40]),k=j(k,b,x,S,c,11,C[41]),S=j(S,k,b,x,f,16,C[42]),x=j(x,S,k,b,p,23,C[43]),b=j(b,x,S,k,y,4,C[44]),k=j(k,b,x,S,g,11,C[45]),S=j(S,k,b,x,w,16,C[46]),b=z(b,x=j(x,S,k,b,a,23,C[47]),S,k,c,6,C[48]),k=z(k,b,x,S,l,10,C[49]),S=z(S,k,b,x,m,15,C[50]),x=z(x,S,k,b,d,21,C[51]),b=z(b,x,S,k,g,6,C[52]),k=z(k,b,x,S,f,10,C[53]),S=z(S,k,b,x,_,15,C[54]),x=z(x,S,k,b,s,21,C[55]),b=z(b,x,S,k,u,6,C[56]),k=z(k,b,x,S,w,10,C[57]),S=z(S,k,b,x,p,15,C[58]),x=z(x,S,k,b,B,21,C[59]),b=z(b,x,S,k,h,6,C[60]),k=z(k,b,x,S,v,10,C[61]),S=z(S,k,b,x,a,15,C[62]),x=z(x,S,k,b,y,21,C[63]),o[0]=o[0]+b|0,o[1]=o[1]+x|0,o[2]=o[2]+S|0,o[3]=o[3]+k|0},_doFinalize:function(){for(var e=this._data,t=e.words,r=8*this._nDataBytes,i=8*e.sigBytes,n=(t[i>>>5]|=128<<24-i%32,a.floor(r/4294967296)),n=(t[15+(64+i>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),t[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process(),this._hash),o=n.words,c=0;c<4;c++){var s=o[c];o[c]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return n},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}}),t.MD5=i._createHelper(n),t.HmacMD5=i._createHmacHelper(n),e.MD5},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),d=e({"sha1.js"(e,t){var r,i;i=function(e){var t,r,i,n,h;return r=(t=e).lib,i=r.WordArray,n=r.Hasher,r=t.algo,h=[],r=r.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],s=r[4],a=0;a<80;a++){h[a]=a<16?0|e[t+a]:(f=h[a-3]^h[a-8]^h[a-14]^h[a-16])<<1|f>>>31;var f=(i<<5|i>>>27)+s+h[a];f+=a<20?1518500249+(n&o|~n&c):a<40?1859775393+(n^o^c):a<60?(n&o|n&c|o&c)-1894007588:(n^o^c)-899497514,s=c,c=o,o=n<<30|n>>>2,n=i,i=f}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[14+(64+i>>>9<<4)]=Math.floor(r/4294967296),t[15+(64+i>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),t.SHA1=n._createHelper(r),t.HmacSHA1=n._createHmacHelper(r),e.SHA1},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),p=e({"sha256.js"(e,t){var r,i;i=function(e){var n=Math,t=e,r=(o=t.lib).WordArray,i=o.Hasher,o=t.algo,c=[],u=[];function s(e){return 4294967296*(e-(0|e))|0}for(var a=2,f=0;f<64;)!function(e){for(var t=n.sqrt(e),r=2;r<=t;r++)if(!(e%r))return;return 1}(a)||(f<8&&(c[f]=s(n.pow(a,.5))),u[f]=s(n.pow(a,1/3)),f++),a++;var y=[],o=o.SHA256=i.extend({_doReset:function(){this._hash=new r.init(c.slice(0))},_doProcessBlock:function(e,t){for(var r=this._hash.words,i=r[0],n=r[1],o=r[2],c=r[3],s=r[4],a=r[5],f=r[6],h=r[7],d=0;d<64;d++){y[d]=d<16?0|e[t+d]:(((p=y[d-15])<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+y[d-7]+(((p=y[d-2])<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+y[d-16];var p=i&n^i&o^n&o,l=h+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&a^~s&f)+u[d]+y[d],h=f,f=a,a=s,s=c+l|0,c=o,o=n,n=i,i=l+(((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+p)|0}r[0]=r[0]+i|0,r[1]=r[1]+n|0,r[2]=r[2]+o|0,r[3]=r[3]+c|0,r[4]=r[4]+s|0,r[5]=r[5]+a|0,r[6]=r[6]+f|0,r[7]=r[7]+h|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[14+(64+i>>>9<<4)]=n.floor(r/4294967296),t[15+(64+i>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});return t.SHA256=i._createHelper(o),t.HmacSHA256=i._createHmacHelper(o),e.SHA256},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),l=e({"sha224.js"(e,t){var r,i;i=function(e){var t,r,i,n;return r=(t=e).lib.WordArray,i=t.algo,n=i.SHA256,i=i.SHA224=n.extend({_doReset:function(){this._hash=new r.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=n._doFinalize.call(this);return e.sigBytes-=4,e}}),t.SHA224=n._createHelper(i),t.HmacSHA224=n._createHmacHelper(i),e.SHA224},"object"==typeof(r=e)?t.exports=e=i(n(),p()):"function"==typeof define&&define.amd?define(["./core","./sha256"],i):i(r.CryptoJS)}}),_=e({"sha512.js"(e,t){var r,i;i=function(e){var t=e,r=t.lib.Hasher,i=(o=t.x64).Word,n=o.WordArray,o=t.algo;function c(){return i.create.apply(i,arguments)}for(var t1=[c(1116352408,3609767458),c(1899447441,602891725),c(3049323471,3964484399),c(3921009573,2173295548),c(961987163,4081628472),c(1508970993,3053834265),c(2453635748,2937671579),c(2870763221,3664609560),c(3624381080,2734883394),c(310598401,1164996542),c(607225278,1323610764),c(1426881987,3590304994),c(1925078388,4068182383),c(2162078206,991336113),c(2614888103,633803317),c(3248222580,3479774868),c(3835390401,2666613458),c(4022224774,944711139),c(264347078,2341262773),c(604807628,2007800933),c(770255983,1495990901),c(1249150122,1856431235),c(1555081692,3175218132),c(1996064986,2198950837),c(2554220882,3999719339),c(2821834349,766784016),c(2952996808,2566594879),c(3210313671,3203337956),c(3336571891,1034457026),c(3584528711,2466948901),c(113926993,3758326383),c(338241895,168717936),c(666307205,1188179964),c(773529912,1546045734),c(1294757372,1522805485),c(1396182291,2643833823),c(1695183700,2343527390),c(1986661051,1014477480),c(2177026350,1206759142),c(2456956037,344077627),c(2730485921,1290863460),c(2820302411,3158454273),c(3259730800,3505952657),c(3345764771,106217008),c(3516065817,3606008344),c(3600352804,1432725776),c(4094571909,1467031594),c(275423344,851169720),c(430227734,3100823752),c(506948616,1363258195),c(659060556,3750685593),c(883997877,3785050280),c(958139571,3318307427),c(1322822218,3812723403),c(1537002063,2003034995),c(1747873779,3602036899),c(1955562222,1575990012),c(2024104815,1125592928),c(2227730452,2716904306),c(2361852424,442776044),c(2428436474,593698344),c(2756734187,3733110249),c(3204031479,2999351573),c(3329325298,3815920427),c(3391569614,3928383900),c(3515267271,566280711),c(3940187606,3454069534),c(4118630271,4000239992),c(116418474,1914138554),c(174292421,2731055270),c(289380356,3203993006),c(460393269,320620315),c(685471733,587496836),c(852142971,1086792851),c(1017036298,365543100),c(1126000580,2618297676),c(1288033470,3409855158),c(1501505948,4234509866),c(1607167915,987167468),c(1816402316,1246189591)],r1=[],s=0;s<80;s++)r1[s]=c();return o=o.SHA512=r.extend({_doReset:function(){this._hash=new n.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(P,F){for(var e=this._hash.words,t=e[0],r=e[1],i=e[2],n=e[3],o=e[4],c=e[5],s=e[6],e=e[7],W=t.high,a=t.low,O=r.high,f=r.low,I=i.high,h=i.low,U=n.high,d=n.low,K=o.high,p=o.low,X=c.high,l=c.low,L=s.high,u=s.low,T=e.high,y=e.low,_=W,v=a,g=O,B=f,m=I,w=h,q=U,b=d,k=K,S=p,N=X,x=l,Z=L,G=u,V=T,Q=y,C=0;C<80;C++)var A,H,j=r1[C],z=(C<16?(H=j.high=0|P[F+2*C],A=j.low=0|P[F+2*C+1]):(J=(M=r1[C-15]).high,M=M.low,R=(E=r1[C-2]).high,E=E.low,D=(z=r1[C-7]).high,z=z.low,$=(Y=r1[C-16]).high,H=(H=((J>>>1|M<<31)^(J>>>8|M<<24)^J>>>7)+D+((A=(D=(M>>>1|J<<31)^(M>>>8|J<<24)^(M>>>7|J<<25))+z)>>>0<D>>>0?1:0))+((R>>>19|E<<13)^(R<<3|E>>>29)^R>>>6)+((A+=M=(E>>>19|R<<13)^(E<<3|R>>>29)^(E>>>6|R<<26))>>>0<M>>>0?1:0),A+=J=Y.low,j.high=H=H+$+(A>>>0<J>>>0?1:0),j.low=A),k&N^~k&Z),D=S&x^~S&G,E=_&g^_&m^g&m,R=(v>>>28|_<<4)^(v<<30|_>>>2)^(v<<25|_>>>7),M=t1[C],Y=M.high,$=M.low,J=Q+((S>>>14|k<<18)^(S>>>18|k<<14)^(S<<23|k>>>9)),j=V+((k>>>14|S<<18)^(k>>>18|S<<14)^(k<<23|S>>>9))+(J>>>0<Q>>>0?1:0),e1=R+(v&B^v&w^B&w),V=Z,Q=G,Z=N,G=x,N=k,x=S,k=q+(j=j+z+((J=J+D)>>>0<D>>>0?1:0)+Y+((J=J+$)>>>0<$>>>0?1:0)+H+((J=J+A)>>>0<A>>>0?1:0))+((S=b+J|0)>>>0<b>>>0?1:0)|0,q=m,b=w,m=g,w=B,g=_,B=v,_=j+(((_>>>28|v<<4)^(_<<30|v>>>2)^(_<<25|v>>>7))+E+(e1>>>0<R>>>0?1:0))+((v=J+e1|0)>>>0<J>>>0?1:0)|0;a=t.low=a+v,t.high=W+_+(a>>>0<v>>>0?1:0),f=r.low=f+B,r.high=O+g+(f>>>0<B>>>0?1:0),h=i.low=h+w,i.high=I+m+(h>>>0<w>>>0?1:0),d=n.low=d+b,n.high=U+q+(d>>>0<b>>>0?1:0),p=o.low=p+S,o.high=K+k+(p>>>0<S>>>0?1:0),l=c.low=l+x,c.high=X+N+(l>>>0<x>>>0?1:0),u=s.low=u+G,s.high=L+Z+(u>>>0<G>>>0?1:0),y=e.low=y+Q,e.high=T+V+(y>>>0<Q>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,i=8*e.sigBytes;return t[i>>>5]|=128<<24-i%32,t[30+(128+i>>>10<<5)]=Math.floor(r/4294967296),t[31+(128+i>>>10<<5)]=r,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),t.SHA512=r._createHelper(o),t.HmacSHA512=r._createHmacHelper(o),e.SHA512},"object"==typeof(r=e)?t.exports=e=i(n(),o()):"function"==typeof define&&define.amd?define(["./core","./x64-core"],i):i(r.CryptoJS)}}),v=e({"sha384.js"(e,t){var r,i;i=function(e){var t,r,i,n,o;return r=(t=e).x64,i=r.Word,n=r.WordArray,r=t.algo,o=r.SHA512,r=r.SHA384=o.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var e=o._doFinalize.call(this);return e.sigBytes-=16,e}}),t.SHA384=o._createHelper(r),t.HmacSHA384=o._createHmacHelper(r),e.SHA384},"object"==typeof(r=e)?t.exports=e=i(n(),o(),_()):"function"==typeof define&&define.amd?define(["./core","./x64-core","./sha512"],i):i(r.CryptoJS)}}),g=e({"sha3.js"(e,t){var r,i;i=function(e){for(var h=Math,t=e,d=(n=t.lib).WordArray,i=n.Hasher,r=t.x64.Word,n=t.algo,C=[],A=[],H=[],o=1,c=0,s=0;s<24;s++){C[o+5*c]=(s+1)*(s+2)/2%64;var a=(2*o+3*c)%5;o=c%5,c=a}for(o=0;o<5;o++)for(c=0;c<5;c++)A[o+5*c]=c+(2*o+3*c)%5*5;for(var f=1,p=0;p<24;p++){for(var l,u=0,y=0,_=0;_<7;_++)1&f&&((l=(1<<_)-1)<32?y^=1<<l:u^=1<<l-32),128&f?f=f<<1^113:f<<=1;H[p]=r.create(u,y)}for(var j=[],v=0;v<25;v++)j[v]=r.create();return n=n.SHA3=i.extend({cfg:i.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],t=0;t<25;t++)e[t]=new r.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,t){for(var r=this._state,i=this.blockSize/2,n=0;n<i;n++){var o=e[t+2*n],c=e[t+2*n+1],o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8);(b=r[n]).high^=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),b.low^=o}for(var s=0;s<24;s++){for(var a=0;a<5;a++){for(var f=0,h=0,d=0;d<5;d++)f^=(b=r[a+5*d]).high,h^=b.low;var p=j[a];p.high=f,p.low=h}for(a=0;a<5;a++)for(var l=j[(a+4)%5],u=j[(a+1)%5],y=u.high,u=u.low,f=l.high^(y<<1|u>>>31),h=l.low^(u<<1|y>>>31),d=0;d<5;d++)(b=r[a+5*d]).high^=f,b.low^=h;for(var _=1;_<25;_++){var v=(b=r[_]).high,g=b.low,B=C[_],v=(h=B<32?(f=v<<B|g>>>32-B,g<<B|v>>>32-B):(f=g<<B-32|v>>>64-B,v<<B-32|g>>>64-B),j[A[_]]);v.high=f,v.low=h}var m=j[0],w=r[0];m.high=w.high,m.low=w.low;for(a=0;a<5;a++)for(d=0;d<5;d++){var b=r[_=a+5*d],k=j[_],S=j[(a+1)%5+5*d],x=j[(a+2)%5+5*d];b.high=k.high^~S.high&x.high,b.low=k.low^~S.low&x.low}b=r[0],m=H[s];b.high^=m.high,b.low^=m.low}},_doFinalize:function(){for(var e=this._data,t=e.words,r=(this._nDataBytes,8*e.sigBytes),i=32*this.blockSize,n=(t[r>>>5]|=1<<24-r%32,t[(h.ceil((1+r)/i)*i>>>5)-1]|=128,e.sigBytes=4*t.length,this._process(),this._state),r=this.cfg.outputLength/8,o=r/8,c=[],s=0;s<o;s++){var a=n[s],f=a.high,a=a.low,f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8);c.push(16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)),c.push(f)}return new d.init(c,r)},clone:function(){for(var e=i.clone.call(this),t=e._state=this._state.slice(0),r=0;r<25;r++)t[r]=t[r].clone();return e}}),t.SHA3=i._createHelper(n),t.HmacSHA3=i._createHmacHelper(n),e.SHA3},"object"==typeof(r=e)?t.exports=e=i(n(),o()):"function"==typeof define&&define.amd?define(["./core","./x64-core"],i):i(r.CryptoJS)}}),B=e({"ripemd160.js"(e,t){var r,i;i=function(e){function k(e,t,r){return e&t|~e&r}function S(e,t,r){return e&r|t&~r}function x(e,t){return e<<t|e>>>32-t}var t,r,i,n,C,A,H,j,z,D;return Math,r=(t=e).lib,i=r.WordArray,n=r.Hasher,r=t.algo,C=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]),A=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]),H=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]),j=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]),z=i.create([0,1518500249,1859775393,2400959708,2840853838]),D=i.create([1352829926,1548603684,1836072691,2053994217,0]),r=r.RIPEMD160=n.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var i=t+r,n=e[i];e[i]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8)}for(var o,c,s,a,f,h,d=this._hash.words,p=z.words,l=D.words,u=C.words,y=A.words,_=H.words,v=j.words,g=o=d[0],B=c=d[1],m=s=d[2],w=a=d[3],b=f=d[4],r=0;r<80;r+=1)h=(h=x(h=(h=o+e[t+u[r]]|0)+(r<16?(c^s^a)+p[0]:r<32?k(c,s,a)+p[1]:r<48?((c|~s)^a)+p[2]:r<64?S(c,s,a)+p[3]:(c^(s|~a))+p[4])|0,_[r]))+f|0,o=f,f=a,a=x(s,10),s=c,c=h,h=(h=x(h=(h=g+e[t+y[r]]|0)+(r<16?(B^(m|~w))+l[0]:r<32?S(B,m,w)+l[1]:r<48?((B|~m)^w)+l[2]:r<64?k(B,m,w)+l[3]:(B^m^w)+l[4])|0,v[r]))+b|0,g=b,b=w,w=x(m,10),m=B,B=h;h=d[1]+s+w|0,d[1]=d[2]+a+b|0,d[2]=d[3]+f+g|0,d[3]=d[4]+o+B|0,d[4]=d[0]+c+m|0,d[0]=h},_doFinalize:function(){for(var e=this._data,t=e.words,r=8*this._nDataBytes,i=8*e.sigBytes,i=(t[i>>>5]|=128<<24-i%32,t[14+(64+i>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),e.sigBytes=4*(t.length+1),this._process(),this._hash),n=i.words,o=0;o<5;o++){var c=n[o];n[o]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}return i},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),t.RIPEMD160=n._createHelper(r),t.HmacRIPEMD160=n._createHmacHelper(r),e.RIPEMD160},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),m=e({"hmac.js"(e,t){var r,i;i=function(e){var t,s;t=e.lib.Base,s=e.enc.Utf8,e.algo.HMAC=t.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=s.parse(t));for(var r=e.blockSize,i=4*r,e=((t=t.sigBytes>i?e.finalize(t):t).clamp(),this._oKey=t.clone()),t=this._iKey=t.clone(),n=e.words,o=t.words,c=0;c<r;c++)n[c]^=1549556828,o[c]^=909522486;e.sigBytes=t.sigBytes=i,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,e=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(e))}})},"object"==typeof(r=e)?t.exports=e=i(n()):"function"==typeof define&&define.amd?define(["./core"],i):i(r.CryptoJS)}}),w=e({"pbkdf2.js"(e,t){var r,i;i=function(e){var t,r,i,v,n,g,o;return r=(t=e).lib,i=r.Base,v=r.WordArray,r=t.algo,n=r.SHA1,g=r.HMAC,o=r.PBKDF2=i.extend({cfg:i.extend({keySize:4,hasher:n,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r=this.cfg,i=g.create(r.hasher,e),n=v.create(),o=v.create([1]),c=n.words,s=o.words,a=r.keySize,f=r.iterations;c.length<a;){for(var h=i.update(t).finalize(o),d=(i.reset(),h.words),p=d.length,l=h,u=1;u<f;u++){l=i.finalize(l),i.reset();for(var y=l.words,_=0;_<p;_++)d[_]^=y[_]}n.concat(h),s[0]++}return n.sigBytes=4*a,n}}),t.PBKDF2=function(e,t,r){return o.create(r).compute(e,t)},e.PBKDF2},"object"==typeof(r=e)?t.exports=e=i(n(),d(),m()):"function"==typeof define&&define.amd?define(["./core","./sha1","./hmac"],i):i(r.CryptoJS)}}),b=e({"evpkdf.js"(e,t){var r,i;i=function(e){var t,r,i,h,n,o;return r=(t=e).lib,i=r.Base,h=r.WordArray,r=t.algo,n=r.MD5,o=r.EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:n,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r,i=this.cfg,n=i.hasher.create(),o=h.create(),c=o.words,s=i.keySize,a=i.iterations;c.length<s;){r&&n.update(r),r=n.update(e).finalize(t),n.reset();for(var f=1;f<a;f++)r=n.finalize(r),n.reset();o.concat(r)}return o.sigBytes=4*s,o}}),t.EvpKDF=function(e,t,r){return o.create(r).compute(e,t)},e.EvpKDF},"object"==typeof(r=e)?t.exports=e=i(n(),d(),m()):"function"==typeof define&&define.amd?define(["./core","./sha1","./hmac"],i):i(r.CryptoJS)}}),k=e({"cipher-core.js"(e,t){var r,i;i=function(e){function n(e){return"string"==typeof e?y:u}function o(e,t,r){var i,n=this._iv;n?(i=n,this._iv=c):i=this._prevBlock;for(var o=0;o<r;o++)e[t+o]^=i[o]}var c,t,r,s,i,a,f,h,d,p,l,u,y;e.lib.Cipher||(t=(e=e).lib,r=t.Base,s=t.WordArray,i=t.BufferedBlockAlgorithm,(a=e.enc).Utf8,f=a.Base64,h=e.algo.EvpKDF,d=t.Cipher=i.extend({cfg:r.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){i.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(i){return{encrypt:function(e,t,r){return n(t).encrypt(i,e,t,r)},decrypt:function(e,t,r){return n(t).decrypt(i,e,t,r)}}}}),t.StreamCipher=d.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),a=e.mode={},p=t.BlockCipherMode=r.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),p=a.CBC=((a=p.extend()).Encryptor=a.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;o.call(this,e,t,i),r.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),a.Decryptor=a.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=e.slice(t,t+i);r.decryptBlock(e,t),o.call(this,e,t,i),this._prevBlock=n}}),a),a=(e.pad={}).Pkcs7={pad:function(e,t){for(var t=4*t,r=t-e.sigBytes%t,i=r<<24|r<<16|r<<8|r,n=[],o=0;o<r;o+=4)n.push(i);t=s.create(n,r);e.concat(t)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},t.BlockCipher=d.extend({cfg:d.cfg.extend({mode:p,padding:a}),reset:function(){d.reset.call(this);var e,t=this.cfg,r=t.iv,t=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=t.createEncryptor:(e=t.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,r&&r.words):(this._mode=e.call(t,this,r&&r.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4}),l=t.CipherParams=r.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),p=(e.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,e=e.salt,e=e?s.create([1398893684,1701076831]).concat(e).concat(t):t;return e.toString(f)},parse:function(e){var t,e=f.parse(e),r=e.words;return 1398893684==r[0]&&1701076831==r[1]&&(t=s.create(r.slice(2,4)),r.splice(0,4),e.sigBytes-=16),l.create({ciphertext:e,salt:t})}},u=t.SerializableCipher=r.extend({cfg:r.extend({format:p}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=e.createEncryptor(r,i),t=n.finalize(t),n=n.cfg;return l.create({ciphertext:t,key:r,iv:n.iv,algorithm:e,mode:n.mode,padding:n.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(r,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),a=(e.kdf={}).OpenSSL={execute:function(e,t,r,i){i=i||s.random(8);e=h.create({keySize:t+r}).compute(e,i),r=s.create(e.words.slice(t),4*r);return e.sigBytes=4*t,l.create({key:e,iv:r,salt:i})}},y=t.PasswordBasedCipher=u.extend({cfg:u.cfg.extend({kdf:a}),encrypt:function(e,t,r,i){r=(i=this.cfg.extend(i)).kdf.execute(r,e.keySize,e.ivSize),i.iv=r.iv,e=u.encrypt.call(this,e,t,r.key,i);return e.mixIn(r),e},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);r=i.kdf.execute(r,e.keySize,e.ivSize,t.salt);return i.iv=r.iv,u.decrypt.call(this,e,t,r.key,i)}}))},"object"==typeof(r=e)?t.exports=e=i(n(),b()):"function"==typeof define&&define.amd?define(["./core","./evpkdf"],i):i(r.CryptoJS)}}),S=e({"mode-cfb.js"(e,t){var r,i;i=function(e){function o(e,t,r,i){var n,o=this._iv;o?(n=o.slice(0),this._iv=void 0):n=this._prevBlock,i.encryptBlock(n,0);for(var c=0;c<r;c++)e[t+c]^=n[c]}var t;return e.mode.CFB=((t=e.lib.BlockCipherMode.extend()).Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize;o.call(this,e,t,i,r),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=e.slice(t,t+i);o.call(this,e,t,i,r),this._prevBlock=n}}),t),e.mode.CFB},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),x=e({"mode-ctr.js"(e,t){var r,i;i=function(e){var t,r;return e.mode.CTR=(t=e.lib.BlockCipherMode.extend(),r=t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter,c=(n&&(o=this._counter=n.slice(0),this._iv=void 0),o.slice(0));r.encryptBlock(c,0),o[i-1]=o[i-1]+1|0;for(var s=0;s<i;s++)e[t+s]^=c[s]}}),t.Decryptor=r,t),e.mode.CTR},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),C=e({"mode-ctr-gladman.js"(e,t){var r,i;i=function(e){function a(e){var t,r,i;return 255==(e>>24&255)?(r=e>>8&255,i=255&e,255===(t=e>>16&255)?(t=0,255===r?(r=0,255===i?i=0:++i):++r):++t,e=0,e=(e+=t<<16)+(r<<8)+i):e+=1<<24,e}var t,r;return e.mode.CTRGladman=(t=e.lib.BlockCipherMode.extend(),r=t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._counter,c=(n&&(o=this._counter=n.slice(0),this._iv=void 0),0===((n=o)[0]=a(n[0]))&&(n[1]=a(n[1])),o.slice(0));r.encryptBlock(c,0);for(var s=0;s<i;s++)e[t+s]^=c[s]}}),t.Decryptor=r,t),e.mode.CTRGladman},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),A=e({"mode-ofb.js"(e,t){var r,i;i=function(e){var t,r;return e.mode.OFB=(t=e.lib.BlockCipherMode.extend(),r=t.Encryptor=t.extend({processBlock:function(e,t){var r=this._cipher,i=r.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),r.encryptBlock(o,0);for(var c=0;c<i;c++)e[t+c]^=o[c]}}),t.Decryptor=r,t),e.mode.OFB},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),H=e({"mode-ecb.js"(e,t){var r,i;i=function(e){var t;return e.mode.ECB=((t=e.lib.BlockCipherMode.extend()).Encryptor=t.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),t.Decryptor=t.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),t),e.mode.ECB},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),j=e({"pad-ansix923.js"(e,t){var r,i;i=function(e){return e.pad.AnsiX923={pad:function(e,t){var r=e.sigBytes,t=4*t,t=t-r%t,r=r+t-1;e.clamp(),e.words[r>>>2]|=t<<24-r%4*8,e.sigBytes+=t},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},e.pad.Ansix923},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),z=e({"pad-iso10126.js"(e,t){var r,i;i=function(r){return r.pad.Iso10126={pad:function(e,t){t*=4,t-=e.sigBytes%t;e.concat(r.lib.WordArray.random(t-1)).concat(r.lib.WordArray.create([t<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},r.pad.Iso10126},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),D=e({"pad-iso97971.js"(e,t){var r,i;i=function(r){return r.pad.Iso97971={pad:function(e,t){e.concat(r.lib.WordArray.create([2147483648],1)),r.pad.ZeroPadding.pad(e,t)},unpad:function(e){r.pad.ZeroPadding.unpad(e),e.sigBytes--}},r.pad.Iso97971},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),E=e({"pad-zeropadding.js"(e,t){var r,i;i=function(e){return e.pad.ZeroPadding={pad:function(e,t){t*=4;e.clamp(),e.sigBytes+=t-(e.sigBytes%t||t)},unpad:function(e){for(var t=e.words,r=e.sigBytes-1,r=e.sigBytes-1;0<=r;r--)if(t[r>>>2]>>>24-r%4*8&255){e.sigBytes=r+1;break}}},e.pad.ZeroPadding},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),R=e({"pad-nopadding.js"(e,t){var r,i;i=function(e){return e.pad.NoPadding={pad:function(){},unpad:function(){}},e.pad.NoPadding},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),M=e({"format-hex.js"(e,t){var r,i;i=function(e){var t,r;return t=e.lib.CipherParams,r=e.enc.Hex,e.format.Hex={stringify:function(e){return e.ciphertext.toString(r)},parse:function(e){e=r.parse(e);return t.create({ciphertext:e})}},e.format.Hex},"object"==typeof(r=e)?t.exports=e=i(n(),k()):"function"==typeof define&&define.amd?define(["./core","./cipher-core"],i):i(r.CryptoJS)}}),J=e({"aes.js"(e,t){var r,i;i=function(e){for(var t=e,r=t.lib.BlockCipher,i=t.algo,f=[],n=[],o=[],c=[],s=[],a=[],h=[],d=[],p=[],l=[],u=[],y=0;y<256;y++)u[y]=y<128?y<<1:y<<1^283;for(var _=0,v=0,y=0;y<256;y++){var g=v^v<<1^v<<2^v<<3^v<<4,B=u[n[f[_]=g=g>>>8^255&g^99]=_],m=u[B],w=u[m],b=257*u[g]^16843008*g;o[_]=b<<24|b>>>8,c[_]=b<<16|b>>>16,s[_]=b<<8|b>>>24,a[_]=b,h[g]=(b=16843009*w^65537*m^257*B^16843008*_)<<24|b>>>8,d[g]=b<<16|b>>>16,p[g]=b<<8|b>>>24,l[g]=b,_?(_=B^u[u[u[w^B]]],v^=u[u[v]]):_=v=1}var k=[0,1,2,4,8,16,32,64,128,27,54],i=i.AES=r.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,i=4*(1+(this._nRounds=6+r)),n=this._keySchedule=[],o=0;o<i;o++)o<r?n[o]=t[o]:(a=n[o-1],o%r?6<r&&o%r==4&&(a=f[a>>>24]<<24|f[a>>>16&255]<<16|f[a>>>8&255]<<8|f[255&a]):(a=f[(a=a<<8|a>>>24)>>>24]<<24|f[a>>>16&255]<<16|f[a>>>8&255]<<8|f[255&a],a^=k[o/r|0]<<24),n[o]=n[o-r]^a);for(var c=this._invKeySchedule=[],s=0;s<i;s++){var a,o=i-s;a=s%4?n[o]:n[o-4],c[s]=s<4||o<=4?a:h[f[a>>>24]]^d[f[a>>>16&255]]^p[f[a>>>8&255]]^l[f[255&a]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,c,s,a,f)},decryptBlock:function(e,t){var r=e[t+1],r=(e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,h,d,p,l,n),e[t+1]);e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,i,n,o,c,s){for(var a=this._nRounds,f=e[t]^r[0],h=e[t+1]^r[1],d=e[t+2]^r[2],p=e[t+3]^r[3],l=4,u=1;u<a;u++)var y=i[f>>>24]^n[h>>>16&255]^o[d>>>8&255]^c[255&p]^r[l++],_=i[h>>>24]^n[d>>>16&255]^o[p>>>8&255]^c[255&f]^r[l++],v=i[d>>>24]^n[p>>>16&255]^o[f>>>8&255]^c[255&h]^r[l++],g=i[p>>>24]^n[f>>>16&255]^o[h>>>8&255]^c[255&d]^r[l++],f=y,h=_,d=v,p=g;y=(s[f>>>24]<<24|s[h>>>16&255]<<16|s[d>>>8&255]<<8|s[255&p])^r[l++],_=(s[h>>>24]<<24|s[d>>>16&255]<<16|s[p>>>8&255]<<8|s[255&f])^r[l++],v=(s[d>>>24]<<24|s[p>>>16&255]<<16|s[f>>>8&255]<<8|s[255&h])^r[l++],g=(s[p>>>24]<<24|s[f>>>16&255]<<16|s[h>>>8&255]<<8|s[255&d])^r[l++];e[t]=y,e[t+1]=_,e[t+2]=v,e[t+3]=g},keySize:8});return t.AES=r._createHelper(i),e.AES},"object"==typeof(r=e)?t.exports=e=i(n(),a(),h(),b(),k()):"function"==typeof define&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],i):i(r.CryptoJS)}}),P=e({"tripledes.js"(e,t){var r,i;i=function(e){var t=e,i=(r=t.lib).WordArray,r=r.BlockCipher,n=t.algo,f=[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],h=[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],d=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],p=[{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}],l=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],o=n.DES=r.extend({_doReset:function(){for(var e=this._key.words,t=[],r=0;r<56;r++){var i=f[r]-1;t[r]=e[i>>>5]>>>31-i%32&1}for(var n=this._subKeys=[],o=0;o<16;o++){for(var c=n[o]=[],s=d[o],r=0;r<24;r++)c[r/6|0]|=t[(h[r]-1+s)%28]<<31-r%6,c[4+(r/6|0)]|=t[28+(h[r+24]-1+s)%28]<<31-r%6;c[0]=c[0]<<1|c[0]>>>31;for(r=1;r<7;r++)c[r]=c[r]>>>4*(r-1)+3;c[7]=c[7]<<5|c[7]>>>27}for(var a=this._invSubKeys=[],r=0;r<16;r++)a[r]=n[15-r]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._subKeys)},decryptBlock:function(e,t){this._doCryptBlock(e,t,this._invSubKeys)},_doCryptBlock:function(e,t,r){this._lBlock=e[t],this._rBlock=e[t+1],u.call(this,4,252645135),u.call(this,16,65535),y.call(this,2,858993459),y.call(this,8,16711935),u.call(this,1,1431655765);for(var i=0;i<16;i++){for(var n=r[i],o=this._lBlock,c=this._rBlock,s=0,a=0;a<8;a++)s|=p[a][((c^n[a])&l[a])>>>0];this._lBlock=c,this._rBlock=o^s}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,u.call(this,1,1431655765),y.call(this,8,16711935),y.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),e[t]=this._lBlock,e[t+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(e,t){t=(this._lBlock>>>e^this._rBlock)&t;this._rBlock^=t,this._lBlock^=t<<e}function y(e,t){t=(this._rBlock>>>e^this._lBlock)&t;this._lBlock^=t,this._rBlock^=t<<e}return t.DES=r._createHelper(o),n=n.TripleDES=r.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var t=e.slice(0,2),r=e.length<4?e.slice(0,2):e.slice(2,4),e=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=o.createEncryptor(i.create(t)),this._des2=o.createEncryptor(i.create(r)),this._des3=o.createEncryptor(i.create(e))},encryptBlock:function(e,t){this._des1.encryptBlock(e,t),this._des2.decryptBlock(e,t),this._des3.encryptBlock(e,t)},decryptBlock:function(e,t){this._des3.decryptBlock(e,t),this._des2.encryptBlock(e,t),this._des1.decryptBlock(e,t)},keySize:6,ivSize:2,blockSize:2}),t.TripleDES=r._createHelper(n),e.TripleDES},"object"==typeof(r=e)?t.exports=e=i(n(),a(),h(),b(),k()):"function"==typeof define&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],i):i(r.CryptoJS)}}),F=e({"rc4.js"(e,t){var r,i;i=function(e){var t=e,r=t.lib.StreamCipher,i=t.algo,n=i.RC4=r.extend({_doReset:function(){for(var e=this._key,t=e.words,r=e.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var c=n%r,c=t[c>>>2]>>>24-c%4*8&255,o=(o+i[n]+c)%256,c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var e=this._S,t=this._i,r=this._j,i=0,n=0;n<4;n++){var r=(r+e[t=(t+1)%256])%256,o=e[t];e[t]=e[r],e[r]=o,i|=e[(e[t]+e[r])%256]<<24-8*n}return this._i=t,this._j=r,i}return t.RC4=r._createHelper(n),i=i.RC4Drop=n.extend({cfg:n.cfg.extend({drop:192}),_doReset:function(){n._doReset.call(this);for(var e=this.cfg.drop;0<e;e--)o.call(this)}}),t.RC4Drop=r._createHelper(i),e.RC4},"object"==typeof(r=e)?t.exports=e=i(n(),a(),h(),b(),k()):"function"==typeof define&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],i):i(r.CryptoJS)}}),W=e({"rabbit.js"(e,t){var r,i;i=function(e){function a(){for(var e=this._X,t=this._C,r=0;r<8;r++)c[r]=t[r];t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<c[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<c[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<c[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<c[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<c[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<c[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<c[6]>>>0?1:0)|0,this._b=t[7]>>>0<c[7]>>>0?1:0;for(r=0;r<8;r++){var i=e[r]+t[r],n=65535&i,o=i>>>16;s[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}e[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,e[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,e[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,e[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,e[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,e[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,e[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,e[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}var t,r,i,n,c,s;return r=(t=e).lib.StreamCipher,i=t.algo,n=[],c=[],s=[],i=i.Rabbit=r.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=0;r<4;r++)e[r]=16711935&(e[r]<<8|e[r]>>>24)|4278255360&(e[r]<<24|e[r]>>>8);for(var i=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]],r=this._b=0;r<4;r++)a.call(this);for(r=0;r<8;r++)n[r]^=i[r+4&7];if(t){var t=t.words,o=t[0],t=t[1],o=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),c=o>>>16|4294901760&t,s=t<<16|65535&o;n[0]^=o,n[1]^=c,n[2]^=t,n[3]^=s,n[4]^=o,n[5]^=c,n[6]^=t,n[7]^=s;for(r=0;r<4;r++)a.call(this)}},_doProcessBlock:function(e,t){var r=this._X;a.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),e[t+i]^=n[i]},blockSize:4,ivSize:2}),t.Rabbit=r._createHelper(i),e.Rabbit},"object"==typeof(r=e)?t.exports=e=i(n(),a(),h(),b(),k()):"function"==typeof define&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],i):i(r.CryptoJS)}}),O=e({"rabbit-legacy.js"(e,t){var r,i;i=function(e){function s(){for(var e=this._X,t=this._C,r=0;r<8;r++)c[r]=t[r];t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<c[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<c[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<c[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<c[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<c[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<c[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<c[6]>>>0?1:0)|0,this._b=t[7]>>>0<c[7]>>>0?1:0;for(r=0;r<8;r++){var i=e[r]+t[r],n=65535&i,o=i>>>16;a[r]=((n*n>>>17)+n*o>>>15)+o*o^((4294901760&i)*i|0)+((65535&i)*i|0)}e[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,e[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,e[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,e[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,e[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,e[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,e[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,e[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}var t,r,i,n,c,a;return r=(t=e).lib.StreamCipher,i=t.algo,n=[],c=[],a=[],i=i.RabbitLegacy=r.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]],n=this._b=0;n<4;n++)s.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var e=t.words,t=e[0],e=e[1],t=16711935&(t<<8|t>>>24)|4278255360&(t<<24|t>>>8),e=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),o=t>>>16|4294901760&e,c=e<<16|65535&t;i[0]^=t,i[1]^=o,i[2]^=e,i[3]^=c,i[4]^=t,i[5]^=o,i[6]^=e,i[7]^=c;for(n=0;n<4;n++)s.call(this)}},_doProcessBlock:function(e,t){var r=this._X;s.call(this),n[0]=r[0]^r[5]>>>16^r[3]<<16,n[1]=r[2]^r[7]>>>16^r[5]<<16,n[2]=r[4]^r[1]>>>16^r[7]<<16,n[3]=r[6]^r[3]>>>16^r[1]<<16;for(var i=0;i<4;i++)n[i]=16711935&(n[i]<<8|n[i]>>>24)|4278255360&(n[i]<<24|n[i]>>>8),e[t+i]^=n[i]},blockSize:4,ivSize:2}),t.RabbitLegacy=r._createHelper(i),e.RabbitLegacy},"object"==typeof(r=e)?t.exports=e=i(n(),a(),h(),b(),k()):"function"==typeof define&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],i):i(r.CryptoJS)}});return e({"index.js"(e,t){var r,i;i=function(e){return e},"object"==typeof(r=e)?t.exports=e=i(n(),o(),c(),s(),a(),f(),h(),d(),p(),l(),_(),v(),g(),B(),m(),w(),b(),k(),S(),x(),C(),A(),H(),j(),z(),D(),E(),R(),M(),J(),P(),F(),W(),O()):"function"==typeof define&&define.amd?define(["./core","./x64-core","./lib-typedarrays","./enc-utf16","./enc-base64","./enc-base64url","./md5","./sha1","./sha256","./sha224","./sha512","./sha384","./sha3","./ripemd160","./hmac","./pbkdf2","./evpkdf","./cipher-core","./mode-cfb","./mode-ctr","./mode-ctr-gladman","./mode-ofb","./mode-ecb","./pad-ansix923","./pad-iso10126","./pad-iso97971","./pad-zeropadding","./pad-nopadding","./format-hex","./aes","./tripledes","./rc4","./rabbit","./rabbit-legacy"],i):r.CryptoJS=r.CryptoJS}})()}
//---SyncByPyScript---CryptoJS-end

//---SyncByPyScript---w_md5-start
function hex_md5(r,n){function a(r,n){return r<<n|r>>>32-n}function i(r,n){var t=2147483648&r,e=2147483648&n,o=1073741824&r,u=1073741824&n,r=(1073741823&r)+(1073741823&n);return o&u?2147483648^r^t^e:o|u?1073741824&r?3221225472^r^t^e:1073741824^r^t^e:r^t^e}function t(r,n,t,e,o,u,f){return r=i(r,i(i(n&t|~n&e,o),f)),i(a(r,u),n)}function e(r,n,t,e,o,u,f){return r=i(r,i(i(n&e|t&~e,o),f)),i(a(r,u),n)}function o(r,n,t,e,o,u,f){return r=i(r,i(i(n^t^e,o),f)),i(a(r,u),n)}function u(r,n,t,e,o,u,f){return r=i(r,i(i(t^(n|~e),o),f)),i(a(r,u),n)}function f(r){for(var n="",t="",e=0;e<=3;e++)n+=(t="0"+(r>>>8*e&255).toString(16)).substr(t.length-2,2);return n}Array();for(var h,c,d,C,m=function(r){for(var n,t=r.length,e=16*(1+((e=t+8)-e%64)/64),o=Array(e-1),u=0,f=0;f<t;)u=f%4*8,o[n=(f-f%4)/4]=o[n]|r.charCodeAt(f)<<u,f++;return o[n=(f-f%4)/4]=o[n]|128<<(u=f%4*8),o[e-2]=t<<3,o[e-1]=t>>>29,o}(r=function(r){r=r.replace(/\r\n/g,"\n");for(var n="",t=0;t<r.length;t++){var e=r.charCodeAt(t);e<128?n+=String.fromCharCode(e):n=127<e&&e<2048?(n+=String.fromCharCode(e>>6|192))+String.fromCharCode(63&e|128):(n=(n+=String.fromCharCode(e>>12|224))+String.fromCharCode(e>>6&63|128))+String.fromCharCode(63&e|128)}return n}(r)),_=1732584193,g=4023233417,p=2562383102,x=271733878,v=0;v<m.length;v+=16)_=t(h=_,c=g,d=p,C=x,m[v+0],7,3614090360),x=t(x,_,g,p,m[v+1],12,3905402710),p=t(p,x,_,g,m[v+2],17,606105819),g=t(g,p,x,_,m[v+3],22,3250441966),_=t(_,g,p,x,m[v+4],7,4118548399),x=t(x,_,g,p,m[v+5],12,1200080426),p=t(p,x,_,g,m[v+6],17,2821735955),g=t(g,p,x,_,m[v+7],22,4249261313),_=t(_,g,p,x,m[v+8],7,1770035416),x=t(x,_,g,p,m[v+9],12,2336552879),p=t(p,x,_,g,m[v+10],17,4294925233),g=t(g,p,x,_,m[v+11],22,2304563134),_=t(_,g,p,x,m[v+12],7,1804603682),x=t(x,_,g,p,m[v+13],12,4254626195),p=t(p,x,_,g,m[v+14],17,2792965006),_=e(_,g=t(g,p,x,_,m[v+15],22,1236535329),p,x,m[v+1],5,4129170786),x=e(x,_,g,p,m[v+6],9,3225465664),p=e(p,x,_,g,m[v+11],14,643717713),g=e(g,p,x,_,m[v+0],20,3921069994),_=e(_,g,p,x,m[v+5],5,3593408605),x=e(x,_,g,p,m[v+10],9,38016083),p=e(p,x,_,g,m[v+15],14,3634488961),g=e(g,p,x,_,m[v+4],20,3889429448),_=e(_,g,p,x,m[v+9],5,568446438),x=e(x,_,g,p,m[v+14],9,3275163606),p=e(p,x,_,g,m[v+3],14,4107603335),g=e(g,p,x,_,m[v+8],20,1163531501),_=e(_,g,p,x,m[v+13],5,2850285829),x=e(x,_,g,p,m[v+2],9,4243563512),p=e(p,x,_,g,m[v+7],14,1735328473),_=o(_,g=e(g,p,x,_,m[v+12],20,2368359562),p,x,m[v+5],4,4294588738),x=o(x,_,g,p,m[v+8],11,2272392833),p=o(p,x,_,g,m[v+11],16,1839030562),g=o(g,p,x,_,m[v+14],23,4259657740),_=o(_,g,p,x,m[v+1],4,2763975236),x=o(x,_,g,p,m[v+4],11,1272893353),p=o(p,x,_,g,m[v+7],16,4139469664),g=o(g,p,x,_,m[v+10],23,3200236656),_=o(_,g,p,x,m[v+13],4,681279174),x=o(x,_,g,p,m[v+0],11,3936430074),p=o(p,x,_,g,m[v+3],16,3572445317),g=o(g,p,x,_,m[v+6],23,76029189),_=o(_,g,p,x,m[v+9],4,3654602809),x=o(x,_,g,p,m[v+12],11,3873151461),p=o(p,x,_,g,m[v+15],16,530742520),_=u(_,g=o(g,p,x,_,m[v+2],23,3299628645),p,x,m[v+0],6,4096336452),x=u(x,_,g,p,m[v+7],10,1126891415),p=u(p,x,_,g,m[v+14],15,2878612391),g=u(g,p,x,_,m[v+5],21,4237533241),_=u(_,g,p,x,m[v+12],6,1700485571),x=u(x,_,g,p,m[v+3],10,2399980690),p=u(p,x,_,g,m[v+10],15,4293915773),g=u(g,p,x,_,m[v+1],21,2240044497),_=u(_,g,p,x,m[v+8],6,1873313359),x=u(x,_,g,p,m[v+15],10,4264355552),p=u(p,x,_,g,m[v+6],15,2734768916),g=u(g,p,x,_,m[v+13],21,1309151649),_=u(_,g,p,x,m[v+4],6,4149444226),x=u(x,_,g,p,m[v+11],10,3174756917),p=u(p,x,_,g,m[v+2],15,718787259),g=u(g,p,x,_,m[v+9],21,3951481745),_=i(_,h),g=i(g,c),p=i(p,d),x=i(x,C);return(32==n?f(_)+f(g)+f(p)+f(x):f(g)+f(p)).toLowerCase()}function createWMd5(){var r={hex_md5_16:function(r){return hex_md5(r,16)},hex_md5_16Upper:function(r){return hex_md5(r,16).toUpperCase()},hex_md5_32:function(r){return hex_md5(r,32)},hex_md5_32Upper:function(r){return hex_md5(r,32).toUpperCase()}};return r}
//---SyncByPyScript---w_md5-end