var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t, tag) {
        return -1 == o(n) && (e(n), r(`function ${tag ? tag : ""}${t || n.name || ""}() { [native code] }`.replaceAll('get get', 'get').replaceAll('set set', 'set'))), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            return "function" == typeof this && i[o(this)] || n.call(this)
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();
_process = process;
var v_new = function (v) {
    var temp = v_new_toggle;
    v_new_toggle = true;
    var r = new v;
    v_new_toggle = temp;
    return r
}
const Canvas = require("canvas");
// import Canvas from "canvas";
const fss = require("fs");

var ENVS = JSON.parse(fss.readFileSync('env.json').toString())
// dc6a639f12738c9276d68c74
let keys = Object.keys(ENVS);
// let ENV = ENVS[process.argv[2] || keys[parseInt(Math.random() * keys.length)]]
// d849c3286d37b521717482d0  af2e0109addda0ff7427c775   8ffdff7b995c8ad51d902ff0
let sid = process.argv[2] || '8ffdff7b995c8ad51d902ff0';
let ENV = ENVS[sid]




// let ENV = ENVS[ '1']
let randomEvent = false;
let timeout = true;
let imgRes = {}
let imgs = Object.keys(ENV.imgsres['94px sans-serif'])
for (let i = 0; i < imgs.length; i++) {
    let t = ENV.imgsres['94px sans-serif'][imgs[i]].split(',');
    let r = [];
    for (let j = 0; j < t.length; j++) {
        r.push(parseInt(t[j]))
    }
    imgRes[imgs[i]] = r;
}
ENV.imgsres['94px sans-serif'] = imgRes
let plgs = ENV.plugins;
Object.keys(plgs).forEach(e => {
    if (plgs[e]['field1']) {
        plgs[e]['0'] = plgs[e]['field1']
    }
    if (plgs[e]['field2']) {
        plgs[e]['1'] = plgs[e]['field2']
    }
})

ENV.plugins = plgs;


Object.defineProperty(console, 'Console', {
    enumerable: false,
    configurable: false,
    writable: false,
})
Object.defineProperties(console, {
    createTask: {
        value: v_saf(function createTask() {
        }),
        enumerable: true,
        configurable: true,
        writable: false,
    },
    memory: {
        value: v_saf(function memory() {
        }),
        enumerable: true,
        configurable: true,
        writable: false,
    }
})
console.Console = undefined;
let proxy = function (tt, name) {
    return new Proxy(tt, {
        get(target, p, receiver) {
            let res = Reflect.get(target, p, receiver);
            if (p !== 'debug' && p !== 'Object') {
                console.log(`${name} get`, p, typeof res)
            }
            // if (p === 'offsetHeight'){
            //   debugger;
            // }
            if (p === 'exec') {
                return v_saf(function (args) {
                    console.log(`${name} exec`, args)

                    return /{\s*\[\s*native\s+code\s*]\s*}\s*$/.exec(args)
                })
            }
            // console.log(Reflect.get(target, '_cf_chl_ctx', receiver))

            if (!['_registeredHandlers', 'window', '_currentEvent', 'debug', '_eventListenerss', 'top', 'prototype'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
                return proxy(res, p)
            }
            return res;
        },
        // getPrototypeOf(target) {
        //
        // },

        set(target, p, newValue, receiver) {
            console.log(`${name} set`, p, typeof newValue)

            return Reflect.set(target, p, newValue, receiver)
        }
    })
}

var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t, tag) {
        return -1 == o(n) && (e(n), r(`function ${tag ? tag : ""}${t || n.name || ""}() { [native code] }`.replaceAll("get get", 'get'))), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            return "function" == typeof this && i[o(this)] || n.call(this)
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();
const jsdom = require("./jsdom");
const path = require("ghost-cursor").path;
const {
    Worker, isMainThread, parentPort, workerData
} = require('worker_threads');
module = undefined;
process = undefined;
__dirname = undefined;
__filename = undefined;
require = undefined;


var _random = Math.random
Date.prototype.toString = v_saf(function () {
    try {
        return this.getTime()
    } catch (e) {
        return Date.now()
    }
}, 'toString')

    Date.now = function now() {
        return 1693903208580
    };
    Date.parse = function () {
        return 1693903208580
    };
    Date.prototype.valueOf = function () {
        return 1693903208580
    };
    Date.prototype.getTime = function () {
        return 1693903208580
    };
    Date.prototype.toString = function () {
        return 1693903208580
    };
    Performance.prototype.now = function now() {
        return Number('1693903208580'.slice(8))
    }

    Math.random = function random() {
        return 0.08636862211354912
    };


const {
    JSDOM
} = jsdom; // 引出 JSDOM 类， 等同于 JSDOM = jsdom.JSDOM

const dom = new JSDOM(`
<!DOCTYPE html><html lang="zh-cn" data-reactroot=""><head><title>上海酒店,上海酒店预订查询,上海宾馆住宿【携程酒店】</title><meta name="keywords" content="上海酒店,上海酒店预订,上海酒店查询,上海住宿,上海宾馆,携程酒店预订"/><meta name="description" content="携程酒店频道为您提供上海约0家酒店预订，您可以通过对比实时价格，查看酒店真实照片，浏览用户真实点评等多种手段选择舒适、优质的上海酒店。访问携程享受可订保障。"/><meta charSet="UTF-8"/><link rel="canonical" href="https://hotels.ctrip.com/hotels/shanghai-hotels-list-2/"/><link rel="canonical" href="https://hotels.ctrip.com/international/shanghai2"/><link rel="dns-prefetch" href="//webresource.english.c-ctrip.com"/><link rel="dns-prefetch" href="//pic.english.c-ctrip.com"/><link rel="dns-prefetch" href="//www.trip.com"/><meta http-equiv="X-UA-Compatible" content="ie=edge,chrome=1"/><meta name="app" content="x5-page-mode"/><meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=0, viewport-fit=cover"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black"/><meta name="format-detection" content="telephone=no"/><meta property="fb:app_id" name="" http-equiv="" content="891889767495675"/><meta property="og:title" name="" http-equiv="" content="Cheap hotels &amp; hotel booking | Trip.com"/><meta property="og:description" name="" http-equiv="" content="Find the best hotel at the best rate. Over 1,200,000 hotels in more than 200 regions. 24/7 Customer Service."/><meta property="og:url" name="" http-equiv="" content="http://www.trip.com/hotels/"/><meta property="og:image" name="" http-equiv="" content="//pic.tripcdn.com/picaresenglish/ibu/fe-home/images/v1/fa-share.699801db.png"/><meta property="" name="twitter:card" http-equiv="" content="summary_large_image"/><meta property="" name="twitter:title" http-equiv="" content="Cheap hotels &amp; hotel booking | Trip.com"/><meta property="" name="twitter:description" http-equiv="" content="Find the best hotel at the best rate. Over 1,200,000 hotels in more than 200 regions. 24/7 Customer Service."/><meta property="" name="twitter:url" http-equiv="" content="http://www.trip.com/hotels/"/><meta property="" name="twitter:image" http-equiv="" content="//pic.tripcdn.com/picaresenglish/ibu/fe-home/images/v1/fa-share.699801db.png"/><meta property="" name="" http-equiv="x-dns-prefetch-control" content="on"/><meta property="" name="" http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta property="" name="" http-equiv="pragma" content="no-cache"/><meta property="" name="" http-equiv="x-ua-compatible" content="IE=edge,chrome=1"/><meta http-equiv="x-dns-prefetch-control" content="on"/><link href="https://ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/index.082269b0fc693fda0d8fe1f7fbf70cc0.css" rel="stylesheet" type="text/css"/><link rel="preload" href="//pages.trip.com/Hotels/libs/sdt/10/sdt.min.js" as="script"/><link rel="preload" href="https://ws-s.tripcdn.cn/ares/api/cc?f=locale%2Fv2%2F6001%2Fzh-CN.js%2C%2Flocale%2Fv2%2F6002%2Fzh-CN.js%2C%2Flocale%2Fv2%2F330153%2Fzh-CN.js&amp;etagc=10df83938716638dc50a0cbc591c9958" as="script" crossorigin="anonymous"/><link rel="preload" href="https://ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/smart/smart.01ff5bbcb05a03e8f105.js" as="script" crossorigin="anonymous"/><link rel="preload" href="https://ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/index.7e4640312783f6037d144c35669af740.js" as="script" crossorigin="anonymous"/><link rel="preload" href="//webresource.c-ctrip.com/ares2/sysdev/ubt-sdk/*/default/ubt.minl.js?v=1695694845282" as="script" crossorigin="anonymous"/><script>var _hmt = _hmt || [];
  (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?4a51227696a44e11b0c61f6105dc4ee4";
      var s = document.getElementsByTagName("script")[0]; 
      s.parentNode.insertBefore(hm, s);
  })();</script></head><body class="ibu_hotel_online ibu_hotel_zh-cn"><div id="hp_header"><div id="leftSideNavLayer" class="relativeLeftSideNavLayer" style="position: fixed; top:0; left: 0;bottom: 0;z-index: 998"><div role="navigation" class="lsn_left_nav_container_CT1cL"><div class="lsn_small_left_nav_container_KMgI- lsn_mini_left_nav_container_TASuN"><div class="lsn_top_button_wrap_t3-TA lsn_icon_center_uNT-6"><div class="lsn_button_icon_dvatN"><div class="pc_home-tabbtnIcon lsn_ico_9C9TD"></div></div></div><div style="flex: 1;"><div style="position: relative; overflow: hidden; width: 100%; height: 100%;"><div style="position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; overflow: hidden; -webkit-overflow-scrolling: touch; margin-right: 0px; margin-bottom: 0px;"><div class="lsn_nav_content_wrap_ci7QT"><div class="lsn_first_nav_wrap_LZamG"><button aria-label="酒店 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-jiudian lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">酒店</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//www.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">国内酒店</span></a><a href="//hotels.ctrip.com/international/?intl=1" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">海外酒店</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="机票 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-jipiao lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">机票</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//flights.ctrip.com/online/channel/domestic" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">国内/国际/中国港澳台</span></a><a href="//flights.ctrip.com/fuzzysearch/search" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">特价机票</span></a><a href="//flights.ctrip.com/actualtime/search?newpchpheader=1" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">航班动态</span></a><a href="//m.ctrip.com/webapp/flight/postservice/iframes/index.html?type=bookseat&amp;newpchpheader=1" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">值机选座</span></a><a href="//my.ctrip.com/myinfo/flight" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">退票改签</span></a><a href="//flights.ctrip.com/booking/airport-guides.html" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">机场攻略</span></a><a href="//flights.ctrip.com/itinerary/charter/book" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">定制包机</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="火车票 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-huochepiao lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">火车票</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//trains.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">国内火车票</span></a><a href="//trains.ctrip.com/overseasTrains" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">国际/中国港澳台</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="旅游 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-lvyou lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">旅游</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//vacations.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">旅游首页</span></a><a href="//vacations.ctrip.com/around" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">周末游</span></a><a href="//vacations.ctrip.com/grouptravel" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">跟团游</span></a><a href="//vacations.ctrip.com/freetravel" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">自由行</span></a><a href="//vacations.ctrip.com/privategroup" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">私家团</span></a><a href="//cruise.ctrip.com/newpackage" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">邮轮</span></a><a href="//huodong.ctrip.com/things-to-do/list?pshowcode=1daytrip&amp;sourceFrom=vacation&amp;newheader=1" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">一日游</span></a><a href="//vacations.ctrip.com/themetravel" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">主题游</span></a><a href="//vacations.ctrip.com/customtravel/index" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">定制旅游</span></a><a href="//vacations.ctrip.com/youxue" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">游学</span></a><a href="//vacations.ctrip.com/visa" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">签证</span></a><a href="//mice.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">企业会奖</span></a><a href="//vacations.ctrip.com/tangram/hhtravel?ctm_ref=vactang_page_5872#ctm_ref=hh_ct_thp_nav" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">高端游</span></a><a href="//vacations.ctripins.com/ins?isctripins=true" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">保险</span></a><a href="//dst.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">目的地</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="攻略·景点 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-gongluejingdian lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">攻略·景点</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="汽车·船票 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-qichechuanpiao lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">汽车·船票</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//bus.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">汽车票</span></a><a href="//ship.ctrip.com/ship" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">船票</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="门票·活动 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-menpiaohuodong lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">门票·活动</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="用车 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-yongche lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">用车</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//car.ctrip.com/zuche/landing?isList=0#ctm_ref=chp_var_txt" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">国内租车</span></a><a href="//car.ctrip.com/zuche/osdlanding#ctm_ref=chp_var_txt" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">境外租车</span></a><a href="//car.ctrip.com/airport-transfers/landing" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">接送机站</span></a><a href="//car.ctrip.com/chartered-online/index" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">按天包车</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="全球购 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-chujing lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">全球购</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//g.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">名店购</span></a><a href="//pages.c-ctrip.com/shoppingchic/unionpay/default.html" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">银联特惠</span></a><a href="//forex.ctrip.com" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">外币兑换</span></a></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="礼品卡 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-lipinka lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU">礼品卡</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"><a href="//lipin.ctrip.com/lipinonline/" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">礼品卡首页</span></a><a href="//lipin.ctrip.com/lipinonline/static/intentional" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">企业采购</span></a><a href="//lipin.ctrip.com/lipinonline/static/wechat" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">心意送礼</span></a><a href="//lipin.ctrip.com/xcb" target="" class="lsn_son_nav_LbhRN"><span class="lsn_font_data_rSNIK">礼品卡福袋</span></a></div></div><div class="lsn_left_nav_border_ItHt7"></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="企业商旅 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-shanlv lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU lsn_top_nav_font_line_0iVuu">企业商旅</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"></div></div><div class="lsn_first_nav_wrap_LZamG"><button aria-label="携程金融 按回车键打开菜单" class="lsn_top_nav_qdgwe lsn_top_nav_show_none_content_pfZ8n"><span class="pc_home-xiechengjinrong lsn_top_nav_icon_ijnym"></span><span class="lsn_top_nav_font_4h1KU lsn_top_nav_font_line_0iVuu">携程金融</span></button><div class="lsn_son_nav_wrap_TJFu2 lsn_son_show_9gw-I lsn_son_hidden_vhA4D"></div></div></div></div><div style="position: absolute; height: 6px; transition: opacity 100ms; opacity: 0; display: none; right: 2px; bottom: 2px; left: 2px; border-radius: 3px;"><div style="position: relative; display: block; height: 100%; cursor: pointer; border-radius: inherit; background-color: rgba(0,0,0,.2);"></div></div><div style="position: absolute; width: 6px; transition: opacity 100ms; opacity: 0; display: none; right: 2px; bottom: 2px; top: 2px; border-radius: 3px;"><div style="position: relative; display: block; width: 100%; cursor: pointer; border-radius: inherit; background-color: rgba(0,0,0,.2);"></div></div></div></div></div></div><script id="__MFE_leftSideNavLayer_DATA__" type="application/json">{"host":"bbz-ctrip-index-ssr-function.faas.ctripcorp.com","leftServiceInfo":{"navData":[{"name":"酒店","enName":"hotel","icon":"pc_home-jiudian","href":"//www.ctrip.com","ubtCode":"PC_sitemap_htl_click","children":[{"name":"国内酒店","enName":"213303","href":"//www.ctrip.com","mapping":["ctrip.com/?newpchpheader=1","www.ctrip.com/?newpchpheader=1","ctrip.com","www.ctrip.com"],"ubtCode":"PC_sitemap_htl_demestic_click"},{"name":"海外酒店","enName":"213304","href":"//hotels.ctrip.com/international/?intl=1","ubtCode":"PC_sitemap_htl_oversea_click","mapping":["hotels.ctrip.com/international/?intl=1"]}]},{"name":"机票","enName":"pc_home-jipiao","icon":"pc_home-jipiao","href":"//flights.ctrip.com/online/channel/domestic","mapping":[],"ubtCode":"PC_sitemap_flt_click","children":[{"name":"国内/国际/中国港澳台","enName":"213306","href":"//flights.ctrip.com/online/channel/domestic","mapping":["flights.ctrip.com/online/channel/domestic?newpchpheader=1","flights.ctrip.com/online/channel/domestic"],"ubtCode":"PC_sitemap_flt_homepage_click"},{"name":"特价机票","enName":"213307","href":"//flights.ctrip.com/fuzzysearch/search","mapping":["flights.ctrip.com/fuzzysearch/search?newpchpheader=1","flights.ctrip.com/fuzzysearch/search"],"ubtCode":"PC_sitemap_flt_Specialoffer_click"},{"name":"航班动态","enName":"213308","href":"//flights.ctrip.com/actualtime/search?newpchpheader=1","mapping":["flights.ctrip.com/actualtime/search?newpchpheader=1","flights.ctrip.com/actualtime/search"],"ubtCode":"PC_sitemap_flt_information_click"},{"name":"值机选座","enName":"213309","href":"//m.ctrip.com/webapp/flight/postservice/iframes/index.html?type=bookseat&newpchpheader=1","mapping":["m.ctrip.com/webapp/flight/postservice/iframes/index.html?type=bookseat&newpchpheader=1","m.ctrip.com/webapp/flight/postservice/iframes/index.html?type=bookseat"],"ubtCode":"PC_sitemap_flt_checkin_click"},{"name":"退票改签","enName":"213310","href":"//my.ctrip.com/myinfo/flight","mapping":["my.ctrip.com/myinfo/flight","my.ctrip.com/myinfo/flight?newpchpheader=1"],"ubtCode":"PC_sitemap_flt_change_click"},{"name":"机场攻略","enName":"213311","href":"//flights.ctrip.com/booking/airport-guides.html","mapping":["flights.ctrip.com/booking/airport-guides.html?newpchpheader=1","flights.ctrip.com/booking/airport-guides.html"],"ubtCode":"PC_sitemap_flt_airportstrategy_click"},{"name":"定制包机","enName":"213312","href":"//flights.ctrip.com/itinerary/charter/book","mapping":["flights.ctrip.com/itinerary/charter/book?newpchpheader=1","flights.ctrip.com/itinerary/charter/book"],"ubtCode":"PC_sitemap_flt_charter_click"}]},{"name":"火车票","enName":"train","icon":"pc_home-huochepiao","href":"//trains.ctrip.com","mapping":[],"ubtCode":"PC_sitemap_trn_click","children":[{"name":"国内火车票","enName":"213313","href":"//trains.ctrip.com","ubtCode":"PC_sitemap_trn_demestic_click","mapping":["trains.ctrip.com/?newpchpheader=1","trains.ctrip.com"]},{"name":"国际/中国港澳台","enName":"213315","href":"//trains.ctrip.com/overseasTrains","ubtCode":"PC_sitemap_trn_oversea_click","mapping":["trains.ctrip.com/overseasTrains"]}]},{"name":"旅游","enName":"travel","icon":"pc_home-lvyou","ubtCode":"PC_sitemap_pkg_click","href":"//vacations.ctrip.com","children":[{"name":"旅游首页","enName":"213316","href":"//vacations.ctrip.com","mapping":["vacations.ctrip.com/?newheader=1","vacations.ctrip.com"],"ubtCode":"PC_sitemap_pkg_click"},{"name":"周末游","enName":213317,"ubtCode":"PC_sitemap_pkg_weekend_click","href":"//vacations.ctrip.com/around","mapping":["vacations.ctrip.com/around","vacations.ctrip.com/around?startcity=14","vacations.ctrip.com/around?startcity=14&newheader=1"]},{"name":"跟团游","enName":213319,"href":"//vacations.ctrip.com/grouptravel","ubtCode":"PC_sitemap_pkg_group_click","mapping":["vacations.ctrip.com/grouptravel","vacations.ctrip.com/grouptravel/?newheader=1"]},{"name":"自由行","enName":213320,"href":"//vacations.ctrip.com/freetravel","ubtCode":"PC_sitemap_pkg_free_click","mapping":["vacations.ctrip.com/freetravel?newpchpheader=1","vacations.ctrip.com/freetravel"]},{"name":"私家团","enName":213321,"href":"//vacations.ctrip.com/privategroup","ubtCode":"PC_sitemap_pkg_private_click","mapping":["vacations.ctrip.com/privategroup?newheader=1","vacations.ctrip.com/privategroup"]},{"name":"邮轮","enName":213322,"href":"//cruise.ctrip.com/newpackage","ubtCode":"PC_sitemap_pkg_cruiseship_click","mapping":["cruise.ctrip.com?newheader=1","cruise.ctrip.com/newpackage"]},{"name":"一日游","enName":213323,"href":"//huodong.ctrip.com/things-to-do/list?pshowcode=1daytrip&sourceFrom=vacation&newheader=1","ubtCode":"PC_sitemap_pkg_day_click","mapping":["huodong.ctrip.com/things-to-do/list?pshowcode=1daytrip&sourceFrom=vacation&newheader=1","huodong.ctrip.com/things-to-do/list?pshowcode=1daytrip&sourceFrom=vacation"]},{"name":"主题游","enName":213324,"ubtCode":"PC_sitemap_pkg_subject_click","href":"//vacations.ctrip.com/themetravel","mapping":["vacations.ctrip.com/themetravel?newheader=1","vacations.ctrip.com/themetravel"]},{"name":"定制旅游","enName":213325,"href":"//vacations.ctrip.com/customtravel/index","ubtCode":"PC_sitemap_pkg_custommade_click","mapping":["vacations.ctrip.com/customtravel/index?isNewHeader=1","vacations.ctrip.com/customtravel/index"]},{"name":"游学","enName":213326,"href":"//vacations.ctrip.com/youxue","ubtCode":"PC_sitemap_pkg_study_click","mapping":["vacations.ctrip.com/youxue","vacations.ctrip.com/youxue?newheader=1"]},{"name":"签证","enName":213327,"ubtCode":"PC_sitemap_pkg_visa_click","href":"//vacations.ctrip.com/visa","mapping":["vacations.ctrip.com/visa?newheader=1","vacations.ctrip.com/visa"]},{"name":"企业会奖","enName":213328,"ubtCode":"PC_sitemap_pkg_bizmeet_click","href":"//mice.ctrip.com"},{"name":"高端游","enName":213329,"ubtCode":"PC_sitemap_pkg_highend_click","href":"//vacations.ctrip.com/tangram/hhtravel?ctm_ref=vactang_page_5872#ctm_ref=hh_ct_thp_nav","mapping":["vacations.ctrip.com/tangram/hhtravel?ctm_ref=vactang_page_5872"]},{"name":"保险","enName":213330,"ubtCode":"PC_sitemap_pkg_insurance_click","href":"//vacations.ctripins.com/ins?isctripins=true","mapping":["vacations.ctripins.com/ins?isctripins=true"]},{"name":"目的地","enName":213331,"href":"//dst.ctrip.com","mapping":["dst.ctrip.com"],"ubtCode":"PC_sitemap_pkg_destination_click"}]},{"name":"攻略·景点","enName":"pc_home-gongluejingdian","icon":"pc_home-gongluejingdian","ubtCode":"PC_sitemap_strategy_click","href":"//you.ctrip.com","mapping":["you.ctrip.com"],"children":[]},{"name":"汽车·船票","enName":"bus","icon":"pc_home-qichechuanpiao","ubtCode":"PC_sitemap_carship_click","href":"//bus.ctrip.com","children":[{"name":"汽车票","enName":213334,"href":"//bus.ctrip.com","ubtCode":"PC_sitemap_carship_car_click","mapping":["bus.ctrip.com/?newpchpheader=1","bus.ctrip.com"]},{"name":"船票","enName":213336,"ubtCode":"PC_sitemap_carship_ship_click","href":"//ship.ctrip.com/ship","mapping":["ship.ctrip.com/ship?newpchpheader=1","ship.ctrip.com/ship"]}]},{"name":"门票·活动","enName":"piao","ubtCode":"PC_sitemap_ticketact_click","icon":"pc_home-menpiaohuodong","href":"//huodong.ctrip.com/things-to-do/web-home?newheader=1","mapping":["huodong.ctrip.com/things-to-do/web-home?newheader=1","huodong.ctrip.com/things-to-do/web-home"],"children":[]},{"name":"用车","enName":"car","icon":"pc_home-yongche","ubtCode":"PC_sitemap_car_click","href":"//car.ctrip.com/zuche/landing?isList=0#ctm_ref=chp_var_txt","mapping":[],"children":[{"name":"国内租车","enName":213339,"ubtCode":"PC_sitemap_car_rental_demestic_click","href":"//car.ctrip.com/zuche/landing?isList=0#ctm_ref=chp_var_txt","mapping":["car.ctrip.com/zuche/landing?isList=0"]},{"name":"境外租车","enName":213340,"ubtCode":"PC_sitemap_car_rental_oversea_click","href":"//car.ctrip.com/zuche/osdlanding#ctm_ref=chp_var_txt","mapping":["car.ctrip.com/zuche/osdlanding"]},{"name":"接送机站","enName":213341,"ubtCode":"PC_sitemap_car_transfer_click","href":"//car.ctrip.com/airport-transfers/landing","mapping":["car.ctrip.com/airport-transfers/landing?newpchpheader=1","car.ctrip.com/airport-transfers/landing"]},{"name":"按天包车","enName":213342,"ubtCode":"PC_sitemap_car_charter_click","href":"//car.ctrip.com/chartered-online/index","mapping":["car.ctrip.com/chartered-online/index?newpchpheader=1","car.ctrip.com/chartered-online/index"]}]},{"name":"全球购","enName":"quanqiugouwu","ubtCode":"PC_sitemap_global_click","icon":"pc_home-chujing","href":"//g.ctrip.com","children":[{"name":"名店购","enName":213344,"ubtCode":"PC_sitemap_global_shop_click","href":"//g.ctrip.com","mapping":["g.ctrip.com"]},{"name":"银联特惠","enName":213345,"ubtCode":"PC_sitemap_global_unionpay_click","href":"//pages.c-ctrip.com/shoppingchic/unionpay/default.html","mapping":["pages.c-ctrip.com/shoppingchic/unionpay/default.html"]},{"name":"外币兑换","enName":213346,"ubtCode":"PC_sitemap_global_foreigncurrency_click","href":"//forex.ctrip.com","mapping":["forex.ctrip.com"]}]},{"name":"礼品卡","enName":"lipinka","icon":"pc_home-lipinka","href":"//lipin.ctrip.com/lipinonline/","ubtCode":"PC_sitemap_giftcard_click","children":[{"name":"礼品卡首页","enName":213347,"ubtCode":"PC_sitemap_giftcard_click","href":"//lipin.ctrip.com/lipinonline/","mapping":["lipin.ctrip.com/lipinonline/?headerMode=new","lipin.ctrip.com/lipinonline/","lipin.ctrip.com"]},{"name":"企业采购","enName":213348,"ubtCode":"PC_sitemap_giftcard_purchase_click","href":"//lipin.ctrip.com/lipinonline/static/intentional","mapping":["lipin.ctrip.com/lipinonline/static/intentional","lipin.ctrip.com/lipinonline/static/intentional?headerMode=new"]},{"name":"心意送礼","enName":213349,"ubtCode":"PC_sitemap_giftcard_sendgift_click","href":"//lipin.ctrip.com/lipinonline/static/wechat","mapping":["lipin.ctrip.com/lipinonline/static/wechat?headerMode=new","lipin.ctrip.com/lipinonline/static/wechat"]},{"name":"礼品卡福袋","enName":213350,"ubtCode":"PC_sitemap_giftcard_fortunebag_click","href":"//lipin.ctrip.com/xcb","mapping":["lipin.ctrip.com/xcb","lipin.ctrip.com/xcb?headerMode=new"]}]}],"bottomData":[{"name":"企业商旅","enName":"pcasfsafsafsad","bottom":true,"target":true,"icon":"pc_home-shanlv","ubtCode":"PC_sitemap_biz_click","href":"//ct.ctrip.com/official?ctm_ref=xcct","children":[]},{"name":"携程金融","bottom":true,"enName":"pc_home-asdasd","ubtCode":"PC_sitemap_finance_click","icon":"pc_home-xiechengjinrong","href":"//jr.ctrip.com/#/?clientSource=CTRIP&version=2.0","mapping":[],"children":[]}]},"_propsData":{"miniFlag":true}}</script><style>
        #hp_container{
            padding-left: 76px;
        }
    </style></div></div><div id="hp_container"><div id="hp_top_layer"><script type="text/javascript">
                    
                    </script>
                    
                    
                    <div id="topLayer" class="relativeTopLayer"><style>
                body,html{
                    margin: 0;
                    padding: 0;
                }
                #hp_top_layer {
                    padding: 0 18px;
                }
                #hp_container{
                    box-sizing: border-box;
                }
                .CTRIP_ASSIST  #hp_container {
                }
                #content{
                    margin: 0 auto;
                }
                #footerLayer {
                    margin-top: 40px;
                    background: #f8fafd;
                }
            .lsn_menu_wrap_zLutF .lsn_menu_son_nav_HoNwa{display:block;text-decoration:none;padding:10px 20px;cursor:pointer}.lsn_menu_wrap_zLutF .lsn_menu_son_nav_HoNwa:hover .lsn_font_data_rSNIK{color:#0086f6;font-weight:500;cursor:pointer}.lsn_menu_wrap_zLutF .lsn_menu_son_nav_HoNwa .lsn_font_data_rSNIK{font-family:Pingfang SC,Helvetica,Helvetica Neue,Microsoft YaHei,Arial,Heiti SC,sans-serif;font-size:14px;letter-spacing:0px;line-height:18px;font-weight:normal;white-space:nowrap}.lsn_menu_wrap_zLutF .lsn_menu_son_nav_HoNwa:last-child{padding-bottom:20px}.lsn_menu_wrap_zLutF .lsn_menu_son_nav_HoNwa:first-child{padding-top:20px}.lsn_left_nav_container_fixed_GPuER{padding-right:76px}.lsn_left_nav_container_CT1cL{color:#555;font-size:14px;font-family:Pingfang SC,Helvetica,Helvetica Neue,Microsoft YaHei,Arial,Heiti SC,sans-serif;height:100%;background:#fff;border-right:1px solid #DADFE6}.lsn_left_nav_container_CT1cL .lsn_small_left_nav_container_KMgI-{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100%;width:164px}.lsn_left_nav_container_CT1cL .lsn_small_left_nav_container_fixed_lNeP4{background:#fff;border-right:1px solid #DADFE6;position:absolute;left:0;top:0;z-index:2}.lsn_left_nav_container_CT1cL .lsn_mini_left_nav_container_TASuN{width:76px}.lsn_left_nav_container_CT1cL .lsn_mini_left_nav_container_TASuN .lsn_button_icon_dvatN{margin:0 auto}.lsn_left_nav_container_CT1cL .lsn_mini_left_nav_container_TASuN .lsn_son_nav_wrap_TJFu2{transition:max-height 0s ease !important}.lsn_left_nav_container_CT1cL .lsn_top_button_wrap_boxshadown_EvVc7{position:relative}.lsn_left_nav_container_CT1cL .lsn_top_button_wrap_boxshadown_EvVc7:after{content:'';display:block;height:8px;width:100%;position:absolute;left:0;bottom:-8px;background:url("//webresource.c-ctrip.com/ares2/nfes/pc-home/*/default/image/blackbg.png") no-repeat;background-size:cover}.lsn_left_nav_container_CT1cL .lsn_top_button_wrap_t3-TA{height:60px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding-left:14px;background:#FFF}.lsn_left_nav_container_CT1cL .lsn_top_button_wrap_t3-TA .lsn_button_icon_dvatN{cursor:pointer;padding:12px}.lsn_left_nav_container_CT1cL .lsn_top_button_wrap_t3-TA .lsn_button_icon_dvatN .lsn_ico_9C9TD{width:24px;font-size:24px}.lsn_left_nav_container_CT1cL .lsn_icon_center_uNT-6{padding-left:0}.lsn_nav_content_wrap_ci7QT{-ms-flex:1;flex:1;padding:8px 15px;box-sizing:border-box}.lsn_nav_content_wrap_ci7QT .lsn_left_nav_border_ItHt7{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;padding:9px 0}.lsn_nav_content_wrap_ci7QT .lsn_left_nav_border_ItHt7:after{content:'';display:block;width:100%;border-top:1px solid #dadfe6}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-bottom:6px;min-height:38px;-ms-flex-pack:center;justify-content:center;box-sizing:border-box}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_qdgwe{cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;white-space:nowrap;padding:10px 13px;border-radius:20px;text-decoration:none;border:0;background:transparent;padding-right:0}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_qdgwe:hover{background:#f2f8fe}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_qdgwe .lsn_top_nav_icon_ijnym{width:20px;height:22px;border-radius:20px;text-align:center;font-size:20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:#0086F6;margin-right:7px}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_qdgwe .lsn_top_nav_font_tag_t5SfS{min-width:32px;max-width:72px;height:20px}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_qdgwe .lsn_top_nav_font_4h1KU{font-family:PingFang SC;font-style:normal;font-size:16px;font-weight:500;line-height:22px;margin-right:4px;color:#333333}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_qdgwe .lsn_top_nav_font_line_0iVuu{font-weight:normal}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_show_none_content_pfZ8n{padding:10px 12px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_show_none_content_pfZ8n .lsn_top_nav_icon_ijnym{margin:0}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_top_nav_show_none_content_pfZ8n .lsn_top_nav_font_4h1KU{display:none}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_son_nav_wrap_TJFu2{padding-left:32px;box-sizing:border-box;overflow-y:hidden;transition:max-height 0.3s ease;max-height:650px;visibility:visible;-webkit-transform:translateZ(0);transform:translateZ(0);padding-top:8px}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_son_nav_wrap_TJFu2 .lsn_son_nav_LbhRN{padding:6px 0;padding-left:10px;padding-bottom:4px;margin-bottom:2px;margin-right:2px;box-sizing:border-box;cursor:pointer;display:block;text-decoration:none}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_son_nav_wrap_TJFu2 .lsn_son_nav_LbhRN .lsn_font_data_rSNIK{font-style:normal;font-weight:normal;font-size:14px;line-height:16px;font-family:Pingfang SC,Helvetica,Helvetica Neue,Microsoft YaHei,Arial,Heiti SC,sans-serif;color:#666666;text-decoration:none}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_son_nav_wrap_TJFu2 .lsn_son_nav_LbhRN .lsn_font_data_rSNIK:hover{color:#0086f6;transition:all 0.2s ease}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_wrap_LZamG .lsn_son_nav_wrap_TJFu2 .lsn_son_nav_active_E-1fy .lsn_font_data_rSNIK{font-weight:500;color:#0086f6}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_active_v6VGn .lsn_top_nav_qdgwe{background:linear-gradient(90deg, #00a7fa 0%, #0076f5 100%)}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_active_v6VGn .lsn_top_nav_qdgwe:hover{background:linear-gradient(90deg, #00a7fa 0%, #0076f5 100%)}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_active_v6VGn .lsn_top_nav_qdgwe .lsn_top_nav_font_4h1KU{color:#fff}.lsn_nav_content_wrap_ci7QT .lsn_first_nav_active_v6VGn .lsn_top_nav_qdgwe .lsn_top_nav_icon_ijnym{color:#fff}.lsn_nav_content_wrap_ci7QT .lsn_son_hidden_vhA4D{display:none}.lsn_nav_content_wrap_ci7QT .lsn_son_show_9gw-I{max-height:0px !important;visibility:hidden !important;overflow:hidden;padding-top:0px !important}.lsn_disableClick_WFBYw{pointer-events:none;cursor:default}

.popup-content{background:#fff}#popup-root{position:absolute;z-index:100000;top:0;left:0;color:#666;font-size:14px;font-family:Pingfang SC,Helvetica,Helvetica Neue,Microsoft YaHei,Arial,Heiti SC,sans-serif}#popup-root a{color:#666;text-decoration:none;font-style:normal;font-weight:normal;font-family:Pingfang SC,Helvetica,Helvetica Neue,Microsoft YaHei,Arial,Heiti SC,sans-serif}[role=tooltip].popup-content{box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);border-radius:10px}.popup-overlay{background:rgba(0,0,0,0.5)}[data-popup=tooltip].popup-overlay{background:transparent}.popup-arrow{color:#fff;stroke-width:1px;box-shadow:0 0 2px -2px rgba(0,0,0,0.1);stroke:rgba(0,0,0,0.1);stroke-dasharray:30px;stroke-dashoffset:-54px;left:0;right:0;top:0;bottom:0}

.tl_header_nav_container_T0v0W{min-width:1080px;background-color:white;margin-left:auto;margin-right:auto;font-family:Pingfang SC, Helvetica, Helvetica Neue, Microsoft YaHei, Arial, Heiti SC, sans-serif}.tl_header_nav_container_T0v0W.tl_normal_header_oOjiU{max-width:1180px}.tl_header_nav_container_T0v0W.tl_simple_header_BRlgn{max-width:1180px;margin:auto}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ{height:72px;box-sizing:border-box}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7{height:100%;display:flex;align-items:center;justify-content:space-between;position:relative}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_logo_search_layout_jqiD8{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex:1}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_logo_search_layout_jqiD8 .tl_first_wrap_O-7cj{display:flex;align-items:center;height:40px;width:200px;z-index:10}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_logo_search_layout_jqiD8 .tl_first_wrap_O-7cj .tl_header_nav_small_logo_qV3BH{display:block;text-indent:-999px;width:194px;height:32px}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_logo_search_layout_jqiD8 .tl_first_wrap_O-7cj .tl_header_logo_default_7J1Wu{background:url(https://webresource.c-ctrip.com/ares2/nfes/pc-home/1.0.65/default/image/logo.png) no-repeat;background-size:100% 100%}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_logo_search_layout_jqiD8 .tl_first_wrap_O-7cj .tl_header_logo_custom_HJwDU{background:url(https://webresource.c-ctrip.com/ares2/nfes/pc-home/1.2.6/default/image/insurance.png) no-repeat;background-size:100% 100%}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_logo_search_layout_jqiD8 .tl_search_bar_wrap_-c5cq{display:flex;margin-left:24px;width:100%;max-width:320px;min-width:200px}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F{display:flex;align-items:center;margin-left:40px;right:0}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F a{text-decoration:none}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F button{border:none;outline:none;line-height:1;text-decoration:none}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe{position:relative;display:flex;justify-content:flex-start;align-items:center;cursor:pointer;background-color:transparent;color:#333333}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe.tl_btn_home_-XbZg{margin-right:20px}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe.tl_btn_accessibility_lXwrx{margin-left:20px;overflow:visible}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe:hover,.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe:focus{color:#0086f6}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe:hover .tl_icon_btn_Ml4AL,.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe:hover .tl_icon_content_qbOk8,.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe:focus .tl_icon_btn_Ml4AL,.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe:focus .tl_icon_content_qbOk8{color:#0086f6}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe .tl_icon_btn_Ml4AL{font-size:20px;color:#5678a8;vertical-align:middle}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_icon_btn_wrap_R8aGe .tl_icon_content_qbOk8{padding-left:4px;font-size:14px;line-height:18px;display:flex}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_header_jinlao_tips_XDmmg{position:absolute;top:calc(100% + 6px);left:calc(50% - 27px);z-index:9999;background:#333333;border-radius:16px 16px 16px 16px;box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1);padding:6px 9px;display:inline-block;color:#ffffff;font-size:12px;white-space:nowrap}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_header_tips_HkrYK{position:absolute;top:calc(100% + 6px);left:calc(50% - 33px);z-index:9999;background:#333333;border-radius:16px 16px 16px 16px;box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1);padding:6px 9px;display:inline-block;color:#ffffff;font-size:12px;white-space:nowrap}.tl_header_nav_container_T0v0W .tl_header_nav_fOCFQ .tl_header_nav_small_wrap_gCHc7 .tl_btn_wrap_EyH-F .tl_derive_5ZA9O{height:20px;width:1px;background-color:#dadfe6;margin-left:20px}#hp_top_layer{background-color:white}

.tl_nfes_home_header_account_oS-UF{list-style:none;margin:0;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;color:#333333;font-size:14px;line-height:1;box-sizing:border-box}.tl_nfes_home_header_account_oS-UF .tl_home_header_item_JJ5DU{margin-left:20px}.tl_nfes_home_header_account_oS-UF .tl_home_header_item_JJ5DU.tl_first_item_d1lsj{margin-left:0px}.tl_nfes_home_header_account_oS-UF button{border:none;background-color:transparent;outline:none;color:#333333;line-height:1}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn{position:relative}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp{display:flex;align-items:center;justify-content:flex-start;flex-direction:row;background:#f2f8fe;border-radius:16px 16px 16px 16px;padding:4px 8px 4px 4px;cursor:pointer}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp:hover,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp.tl_select_Jruuh,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp:focus{color:#0086f6}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp:hover .tl_nfes_home_header_login_avatar_SG4WR,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp:hover .tl_nfes_home_header_login_title_5neWJ,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp.tl_select_Jruuh .tl_nfes_home_header_login_avatar_SG4WR,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp.tl_select_Jruuh .tl_nfes_home_header_login_title_5neWJ,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp:focus .tl_nfes_home_header_login_avatar_SG4WR,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp:focus .tl_nfes_home_header_login_title_5neWJ{color:#0086f6}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_avatar_SG4WR{border-radius:50%;width:24px;height:auto;font-size:24px;color:#5678a8}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ{margin-left:5px;margin-right:2px;display:flex}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ .tl_nfes_home_header_login_title_name_fDEXu{white-space:nowrap;line-height:1.2}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ .tl_nfes_home_header_login_title_name_fDEXu.tl_vip_1Tkgx{max-width:56px;overflow:hidden;text-overflow:ellipsis}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ .tl_nfes_home_header_login_title_name_fDEXu.tl_non_vip_RJmOk{width:70px}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ .tl_nfes_home_header_icon_LA97o{font-size:14px;align-items:center;margin-left:2px;display:flex}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ .tl_nfes_home_header_icon_LA97o.tl_icon_dropdown_S6x2r{color:#333333}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_login_wrapper_siwkn .tl_nfes_home_header_login_IUsnp .tl_nfes_home_header_login_title_5neWJ .tl_nfes_home_header_icon_LA97o.tl_icon_hover_iGB9I{color:#0086f6}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_register_eTWYU{cursor:pointer}.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_register_eTWYU:hover,.tl_nfes_home_header_account_oS-UF .tl_nfes_home_header_register_eTWYU:focus{color:#0086f6}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj{position:absolute;z-index:9999;top:calc(100% + 8px);left:calc(50% - 114px)}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:20px 8px 11px 8px;box-sizing:border-box}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY{margin-bottom:18px;margin-right:19px;display:flex;flex-direction:row;justify-content:flex-start}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_user_avatar_9rIw1{padding-right:8px;display:flex;align-items:center}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR{display:flex;flex-direction:column;justify-content:space-around;align-items:flex-start}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_user_name_wrapper_zfBSz{display:inline-flex;cursor:pointer;color:#333333}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_user_name_wrapper_zfBSz:hover,.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_user_name_wrapper_zfBSz:focus{color:#0086f6}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_user_name_wrapper_zfBSz .tl_user_name_kFprV{max-width:129px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:16px;line-height:24px;font-weight:bold}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_user_name_wrapper_zfBSz .tl_icon_link_DuvU-{margin:auto;align-self:center}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF{display:inline-flex;white-space:nowrap;margin-top:2px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL{display:inline-flex;align-items:center;border-radius:9px 9px 9px 9px;color:#333333;font-size:12px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL span{margin:auto 8px auto 4px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_goldenVIP_-SFga{background:#ffe9c4}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_platinumVIP_fVTaA{background:#d8f5ff}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_blackDiamondVIP_ifRgb{background:#fff7eb}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_goldenDiamondVIP_O0uEF{background:#dde4fa}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_diamondVIP_p7979{background:#e7e6ff}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_ordinaryMember_jyuYJ{background:#e9f6ff}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_vip_level_Z03fL.tl_silverVIP_FgXfg{background:#e9f6ff}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_basic_info_vtLmY .tl_name_info_-XJhR .tl_vip_tag_faLjF .tl_super_vip_oJkGL{margin-left:4px;background:linear-gradient(90deg, #f9ebe4 0%, #ffd3bb 100%);border-radius:9px 9px 9px 9px;padding:3px 7px 3px 8px;color:#333333;font-size:12px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_vip_ads_-rMIg{width:100%;height:56px;margin-bottom:18px;background-size:cover;background-repeat:no-repeat;border-radius:8px 8px 8px 8px;display:flex;flex-direction:row;justify-content:flex-start}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_vip_ads_-rMIg .tl_left_vip_rights_mbn3N{color:#eeeeee;font-size:12px;padding:34px 12px 10px 8px;white-space:nowrap}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_vip_ads_-rMIg .tl_right_open_tUoRv{align-self:center;flex:1;display:flex;justify-content:center;padding-right:12px;white-space:nowrap}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_vip_ads_-rMIg .tl_right_open_tUoRv .tl_open_button_T3msR{background:linear-gradient(90deg, #f9ebe4 0%, #f2b390 100%);border-radius:12px 12px 12px 12px;color:#000000;font-size:12px;font-weight:500;cursor:pointer}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_vip_ads_-rMIg .tl_right_open_tUoRv .tl_open_button_T3msR span{margin:2px 8px;line-height:20px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq{width:212px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-start;align-items:center}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_split_line_NQgo2{margin:0 12px;height:1px;width:calc(100% - 24px);background-color:#dadfe6}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_split_line_NQgo2.tl_top_Gf7PT{margin-bottom:8px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_split_line_NQgo2.tl_bottom_F6xFi{margin:8px 0}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M{width:100%;box-sizing:border-box;display:inline-flex;padding:11px 12px;align-items:center;justify-content:flex-start;color:#333333;font-size:14px;font-weight:normal;line-height:18px}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M .tl_icon_C5ApI{color:#5678a8}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M .tl_title_sGgZK{margin:auto 0 auto 9px;white-space:nowrap}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M .tl_tag_y80ej{margin:auto 0 auto 8px;color:#0086f6;font-weight:500;text-overflow:ellipsis;overflow:hidden}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M.tl_logout_knRFU .tl_icon_C5ApI{color:#333333}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M:hover,.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M:focus{background:#f2f8fe;border-radius:20px 20px 20px 20px;color:#0086f6;cursor:pointer}.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M:hover .tl_icon_C5ApI,.tl_nfes_home_header_account_oS-UF .tl_header_account_center_wrapper_Anlqj .tl_header_account_center_CNxoP .tl_info_list_0vRoq .tl_list_item_Kah3M:focus .tl_icon_C5ApI{color:#0086f6}.tl_nfes_home_header_account_oS-UF .tl_space_vertical_line_Ng4Lz{height:20px;width:1px;background-color:#dadfe6}

.tl_pc_home_header_order_gcMhX{overflow:visible;position:relative;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;cursor:pointer;padding:6px 0px}.tl_pc_home_header_order_gcMhX a{color:#333333}.tl_pc_home_header_order_gcMhX:hover,.tl_pc_home_header_order_gcMhX:focus{color:#0086f6}.tl_pc_home_header_order_gcMhX:hover .tl_order_title_kSApX,.tl_pc_home_header_order_gcMhX:focus .tl_order_title_kSApX{color:#0086f6}.tl_pc_home_header_order_gcMhX .tl_icon_order_QjjKh{color:#5678a8;font-size:20px;vertical-align:middle}.tl_pc_home_header_order_gcMhX .tl_icon_order_QjjKh.tl_hover_x8-Yd{color:#0086f6}.tl_pc_home_header_order_gcMhX .tl_order_title_kSApX{margin:auto;padding-left:4px;padding-right:2px;display:flex}.tl_pc_home_header_order_gcMhX .tl_order_title_kSApX:focus{color:#0086f6}.tl_pc_home_header_order_gcMhX .tl_icon_dropdown_lExig{font-size:14px;vertical-align:middle}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa{position:absolute;z-index:9999;top:calc(100% + 8px);left:calc(50% - 80px)}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL{padding:11px 8px 9px 8px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U{width:100%;display:flex;cursor:pointer;padding:11px 12px;box-sizing:border-box}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U:hover,.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U:focus{background-color:#f2f8fe;border-radius:20px 20px 20px 20px;color:#0086f6}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U:hover .tl_icon_9iQ2G,.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U:focus .tl_icon_9iQ2G{color:#0086f6}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U span{padding-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_type_list_item_JB0-U .tl_icon_9iQ2G{color:#89a0c2}.tl_pc_home_header_order_gcMhX .tl_order_center_xwPxa .tl_order_type_list_z-dcL .tl_split_line_JEUU6{height:1px;width:calc(100% - 24px);background-color:#dadfe6;margin:8px 12px}

.tl_header_dropdown_panel_L4Nvq{box-sizing:border-box;background:#ffffff;border:1px solid #e6f3fe;border-radius:10px;filter:drop-shadow(0 0 8px rgba(0,0,0,0.1))}.tl_header_dropdown_panel_L4Nvq .tl_arrow_ZoQ7U{content:' ';position:absolute;top:-8px;left:calc(50% - 10px);border-width:0 8px 8px;border-style:solid;width:0;height:0;border-style:solid;border-color:transparent transparent #e6f3fe}.tl_header_dropdown_panel_L4Nvq .tl_arrow_ZoQ7U:after{content:"";position:absolute;top:1px;left:-7px;border-width:0 7px 7px;border-style:solid;border-color:transparent transparent #fff}

.tl_header_icon_wrapper_GsnJ-{display:flex;position:relative;padding:6px 0;overflow:visible}.tl_header_icon_wrapper_GsnJ-:hover .tl_header_icon_CqpDm,.tl_header_icon_wrapper_GsnJ-:focus .tl_header_icon_CqpDm,.tl_header_icon_wrapper_GsnJ- button:focus .tl_header_icon_CqpDm{color:#0086f6}.tl_header_icon_wrapper_GsnJ- .tl_header_icon_CqpDm{color:#5678a8;font-size:20px;cursor:pointer}.tl_header_tips_9Ze9j{position:absolute;top:calc(100% + 6px);left:calc(50% - 33px);z-index:9999;background:#333333;border-radius:16px 16px 16px 16px;box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1);padding:6px 9px;display:inline-block;color:#ffffff;font-size:12px;white-space:nowrap}.tl_notification_count_wrapper_Aa-WA{position:relative;cursor:pointer;display:flex}.tl_notification_count_wrapper_Aa-WA .tl_notification_count_gVIWt{position:absolute;left:50%;top:-8px;padding:2px 4px;border-radius:50px;background:#f5190a;display:inline-block;box-sizing:border-box;color:#ffffff;font-size:12px;text-align:center;vertical-align:middle}.tl_qrcode_panel_rfXW9{position:absolute;z-index:9999;top:calc(100% + 8px);left:calc(50% - 240px)}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F{display:flex;flex-direction:row;justify-content:center;align-items:flex-start;padding:22px 23px 20px}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;font-size:14px}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK.tl_first_0XM03{margin-right:25px}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK .tl_item_title_obEiT{margin-top:2px;color:#333333;line-height:22px}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK .tl_link_title_Gbhw6{color:#333333;font-weight:bold;margin-top:8px;cursor:pointer;display:inline-flex}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK .tl_link_title_Gbhw6:hover,.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK .tl_link_title_Gbhw6:focus{color:#0086f6}.tl_qrcode_panel_rfXW9 .tl_code_list_Efq9F .tl_list_item_JOnTK .tl_link_title_Gbhw6 .tl_icon_oynMq{font-size:14px}.tl_custom_service_panel_n5l1Y{position:absolute;z-index:9999;top:calc(100% + 8px);left:calc(50% - 119px)}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7{padding:24px 20px 16px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_service_center_link_LrDCv{padding-bottom:19px;font-size:14px;font-weight:bold;line-height:18px;display:flex;cursor:pointer;color:#333333}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_service_center_link_LrDCv:hover,.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_service_center_link_LrDCv:focus{color:#0086f6}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_service_center_link_LrDCv .tl_jump_icon_vlGT3{font-size:14px}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_tel_list_dG17S{padding-top:16px;border-top:1px solid #dadfe6;font-size:12px;line-height:16px}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_tel_list_dG17S li{margin-top:4px;list-style:none}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_tel_list_dG17S li:first-of-type{margin-top:0}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_tel_list_dG17S .tl_list_item_first_HWMIk{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_tel_list_dG17S .tl_list_item_first_HWMIk .tl_tel_number_list_Hdkg4{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.tl_custom_service_panel_n5l1Y .tl_panel_content_wPzc7 .tl_tel_list_dG17S .tl_list_item_other_hSzq2{display:flex;white-space:nowrap}

.tl_input_wrap_4wLqk{height:32px;width:100%;display:flex;align-items:center;background:#ffffff;border-radius:8px 8px 8px 8px;border:1px solid #9acefb}.tl_input_wrap_4wLqk .tl_input_8N-Vi{flex:1;background:none;outline:none;border:none !important;text-indent:15px;font-style:normal;font-weight:normal;color:#666666;font-size:14px;font-weight:normal;height:18px;letter-spacing:0px;line-height:18px;width:124px}.tl_input_wrap_4wLqk .tl_search_icon_N-uay{display:flex;justify-content:center;align-items:center;background:#0086f6;border-radius:0px 8px 8px 0px;height:100%;width:56px;margin-right:-1px;padding:1px 0;text-decoration:none}.tl_input_wrap_4wLqk .tl_search_icon_N-uay:before{content:"\\f0a6c";text-align:center;display:flex;color:white;align-content:center;font-size:23px;border-radius:0px 8px 8px 0px}

.fl_footer_wrap_ow234{width:100%;padding-left:18px;padding-right:18px;background:#f8fafd;box-sizing:border-box;font-family:Pingfang SC, Helvetica, Helvetica Neue, Microsoft YaHei, Arial, Heiti SC, sans-serif}.fl_footer_wrap_ow234 dl,.fl_footer_wrap_ow234 dd{margin:0;padding:0}.fl_footer_wrap_ow234 .fl_layout_wrap_g-sIE{min-width:1080px;margin:0 auto;padding-top:40px;padding-bottom:52px;background:#f8fafd}.fl_footer_wrap_ow234 .fl_layout_wrap_g-sIE.fl_normal_footer_YgQc1{max-width:1180px}.fl_footer_wrap_ow234 .fl_layout_wrap_g-sIE.fl_simple_footer_-yGp1{width:100%}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH{display:flex;flex-direction:row;justify-content:space-between;padding-left:12px;padding-right:9px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_layout_gZ1W6{margin-left:20px;border-right:1px solid #dadfe6;display:flex;box-sizing:border-box}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_layout_gZ1W6.fl_no_derive_G1PJ2{border-right-width:0}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_layout_gZ1W6.fl_first_item_y9897{margin-left:0}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx{float:left;display:inline-block;max-width:217px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_tel_list_3nBrm,.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_qrcode_Sf-pF{padding-top:42px;width:auto}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_tel_list_3nBrm .fl_list_item_first_CsArf{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_tel_list_3nBrm .fl_list_item_first_CsArf .fl_tel_number_list_Y0Y2g{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_tel_list_3nBrm .fl_list_item_other_7QPIe{display:inline-block;white-space:nowrap;margin-top:12px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_qrcode_Sf-pF{margin-left:31px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx.fl_item_qrcode_Sf-pF .fl_qr_title_oIhLw{color:#333333;font-size:14px;line-height:22px;margin:4px 0px 0px;padding:0px 0px;text-align:center}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx dt{color:#333333;font-size:20px;font-weight:500;line-height:24px;margin-bottom:6px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx dd{font-size:12px;line-height:16px;color:#666666}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler{position:relative;float:left;display:inline-block;width:96px;text-align:left;margin-right:8px;margin-top:12px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler>a,.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ>a{color:#666666;text-decoration:none}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler>a:hover,.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ>a:hover{color:#0086f6}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_news_item_a_5-UUz{display:flex}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_news_item_a_5-UUz:hover{color:#0086f6}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_news_item_a_5-UUz .fl_news_icon_VV9RE{font-size:12px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_dropdown_panel_S6G-k{position:absolute;z-index:9999;top:20px;right:0;background:#ffffff;border-radius:8px 8px 8px 8px;border:1px solid #e6f3fe;box-shadow:0px 2px 8px 0px rgba(0,0,0,0.1);display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:16px 20px;width:194px;box-sizing:border-box}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_dropdown_panel_S6G-k .fl_drop_news_item_rdWfz{width:100%;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_dropdown_panel_S6G-k .fl_drop_news_item_rdWfz.fl_last_more_i1AIf{margin-bottom:0}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_dropdown_panel_S6G-k .fl_drop_news_item_rdWfz.fl_last_more_i1AIf>a{color:#0086f6}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_dropdown_panel_S6G-k .fl_drop_news_item_rdWfz>a{color:#666666;font-size:12px;line-height:16px}.fl_footer_wrap_ow234 .fl_footer_link_list_OWItH .fl_footer_item_vp3yx .fl_ft_link_item_8Hler .fl_news_item_dropdown_A8-JZ .fl_dropdown_panel_S6G-k .fl_drop_news_item_rdWfz>a:hover{color:#0086f6}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt{margin-top:40px;text-align:center;color:#999;font-size:12px;line-height:1.5}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt a{color:#999;text-decoration:none}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt a:hover{color:#0086f6}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt *:focus{color:#666666}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_icon-gns_iPpG5,.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt a,.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt a,.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt span{background-color:#fff;background-repeat:no-repeat;background-position:0 0}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_gns_wrapper_wMJ0P{margin-top:8px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_gns_wrapper_wMJ0P .fl_icon-gns_iPpG5{display:inline-block;width:20px;height:20px;margin-right:3px;background-position:0 -235px;vertical-align:middle}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_supervision-call_gsdM8{padding-top:10px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt{display:inline-block;padding-top:10px;text-align:left}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt a,.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt span{float:left;margin:0 4px;width:88px;height:32px;border:1px solid #d1d1d1;border-radius:2px;font:12px/32px Simsun;color:#666;overflow:hidden;text-indent:-99em}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour1_-yL9A{background-position:-88px -50px;text-indent:36px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour2_Emzmq{background-position:-88px -85px;text-indent:36px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour4_eaDL-{background-position:-88px -118px;text-indent:0;padding:2px 0 2px 37px;width:51px;height:28px;line-height:1.2}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour5_o2v5s{width:95px;background-position:0 -387px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour6_ZTS5D{background-position:0 -118px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour10_6KzQ4{background-position:0 -429px;width:102px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour12_Lfzzx{background-position:0 -155px;width:114px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour11_30pvz{background-position:0 -480px;width:50px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour9_ds2vl{background-position:0 -350px;width:130px}.fl_footer_wrap_ow234 .fl_footer_copyright_wrapper_xaEbt .fl_honour_wrap_E--kt .fl_honour100_TQ2bR{background-size:contain;width:90px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( src='https://pages.c-ctrip.com/nfes/assist.png', sizingMethod='scale');-ms-filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader( src='https://pages.c-ctrip.com/nfes/assist.png', sizingMethod='scale')"}

</style><div class="tl_header_nav_container_T0v0W tl_normal_header_oOjiU"><div class="tl_header_nav_fOCFQ"><div class="tl_header_nav_small_wrap_gCHc7"><div class="tl_logo_search_layout_jqiD8"><div class="tl_first_wrap_O-7cj"><a id="logo_mfe_top_nfes" data-ubt-key="PC_head_logo_click" title="携程旅行网" href="//www.ctrip.com" assist-speak-text="true" assist-speak-text-pspeak="true" class="tl_header_nav_small_logo_qV3BH tl_header_logo_default_7J1Wu">携程旅行网 </a></div><form id="hp_nfes_searchbar" class="tl_search_bar_wrap_-c5cq"><link rel="stylesheet" href="https://static.tripcdn.com/packages/gcc/online-globalsearch/*/allsearchbar.css" type="text/css"><input type="text" style="display: none;"><div class="cui_search tl_input_wrap_4wLqk"><div id="_allSearchResult" style="display: none;" class="cui_search_list"></div><input type="text" id="_allSearchKeyword" placeholder="搜旅任何旅行相关..." aria-label="搜旅任何旅行相关..." assist-speak-text="true" tabindex="0" assist-speak-text-pspeak="true" autocomplete="off" class="tl_input_8N-Vi"><a href="javascript:void(0)" data-ubt-key="PC_head_search_click" assist-speak-text="true" assist-speak-text-pspeak="true" title="搜索" id="search_button_global" class="pc_home-search  tl_search_icon_N-uay"></a></div><script async="" crossorigin="anonymous" src="https://static.tripcdn.com/packages/gcc/online-globalsearch/*/allsearchbar.js"></script><script async="" crossorigin="anonymous" src="https://webresource.c-ctrip.com/ResUnionOnline/R1/remarketing/js/remarketing.js"></script></form></div><div class="tl_btn_wrap_EyH-F"><ul id="hp_nfes_accountbar" class="tl_nfes_home_header_account_oS-UF"><li class="tl_home_header_item_JJ5DU tl_first_item_d1lsj"><div class="tl_nfes_home_header_login_wrapper_siwkn"><button aria-label="" class="tl_nfes_home_header_login_IUsnp"><i aria-hidden="true" class="pc_home-account tl_nfes_home_header_login_avatar_SG4WR"></i><div class="tl_nfes_home_header_login_title_5neWJ"><span>请登录</span></div></button></div></li><li class="tl_home_header_item_JJ5DU"><button class="tl_nfes_home_header_register_eTWYU">注册</button></li><li class="tl_home_header_item_JJ5DU"><div class="tl_pc_home_header_order_gcMhX"><i aria-hidden="true" class="pc_home-dingdan tl_icon_order_QjjKh"></i><button class="tl_order_title_kSApX">我的订单</button><i aria-hidden="true" class="pc_home-dropdown tl_icon_dropdown_lExig"></i></div></li><li class="tl_home_header_item_JJ5DU"><div class="tl_space_vertical_line_Ng4Lz"></div></li><li class="tl_home_header_item_JJ5DU"><div title="携程客服" class="tl_header_icon_wrapper_GsnJ-"><button aria-label="携程客服"><i aria-hidden="true" class="pc_home-customerService tl_header_icon_CqpDm"></i></button></div></li><li class="tl_home_header_item_JJ5DU"><div title="扫码下载携程App或关注微信公众号" class="tl_header_icon_wrapper_GsnJ-"><button aria-label="扫码下载携程App或关注微信公众号"><i aria-hidden="true" class="pc_home-phone tl_header_icon_CqpDm"></i></button></div></li></ul><div class="tl_derive_5ZA9O"></div><button aria-label="无障碍阅读开关" data-ubt-key="PC_head_accessible_click" class="tl_icon_btn_wrap_R8aGe tl_btn_accessibility_lXwrx"><i aria-hidden="true" class="pc_home-wuzhangai tl_icon_btn_Ml4AL"></i></button><button aria-label="关怀版" data-ubt-key="PC_head_jinlao_click" class="tl_icon_btn_wrap_R8aGe tl_btn_accessibility_lXwrx"><i aria-hidden="true" class="pc_home-jinglao tl_icon_btn_Ml4AL"></i></button></div></div></div></div><script id="__MFE_topLayer_DATA__" type="application/json">{"host":"bbz-ctrip-index-ssr-function.faas.ctripcorp.com","customServiceTelInfo":[{"locationName":"境内","telNumber":["95010","400-830-6666"]},{"locationName":"中国香港","telNumber":"+852-3008-3295"},{"locationName":"中国澳门","telNumber":"+86-21 3406-4888"},{"locationName":"中国台湾","telNumber":"+86-21 3406-4888"},{"locationName":"其他国家和地区","telNumber":"+86-21 3406-4888"}],"cdnResVersion":"1.0.58","headerSwitch":{},"_propsData":{}}</script><link type="text/css" rel="stylesheet" href="//webresource.c-ctrip.com/ares2/nfes/pc-home/*/default/icon/pc_home.css"></div>
                    
                    </div><div id="content"><div id="ibu_hotel_container"><section><article><div class="hotel-list-page"><div class="list-search-container" data-exposure="{&quot;ubtKey&quot;:&quot;htl_c_online_list_search_exposure&quot;,&quot;data&quot;:{&quot;triggerTime&quot;:1695694845290}}" data-send="devTrace"><ul class="ul" role="booking"><li class="list-item li-item-destination list-destination"><div class="search-container"><div class="search-box"><label for="hotels-destination" aria-label="目的地/酒店名称">目的地/酒店名称</label><input type="text" id="hotels-destination" class="show-hightlight" value="上海" autoComplete="off" placeholder="城市、机场、区域、地标或酒店名称" aria-label="上海"/></div><div class="hot-city-picker" style="display:none"></div><div class="drop-result-list" style="left:-1px;display:none"><p class="not_found">抱歉，沒有「上海」的相关搜索結果。</p></div></div></li><li class="list-item li-item-calendar list-calendar"><div class="calendar-container"><div class="time-tab"><label class="in" aria-label="入住时间">入住时间</label><input type="text" class="focus-input show-hightlight in-time" value="9月26日(今天)" readonly="" data-key="2023/09/26" aria-label="9月26日(今天)"/></div><div class="nights" aria-label="1晚"><span>1晚</span></div><div class="time-tab"><label class="out" aria-label="退房时间">退房时间</label><input type="text" class="focus-input show-hightlight out-time" value="9月27日(明天)" readonly="" data-key="2023/09/27" aria-label="9月27日(明天)"/></div></div></li><li class="list-item li-item-roomguest list-roomguest"><div class="room-guest-container"><div class="room-guest room-guest-normal"><label aria-label="房间及住客">房间及住客</label><p class="info show-hightlight" aria-label="1间1位">1间<!-- -->, <!-- -->1位</p><i type="ic_new_dropdown_line" class="u-icon u-icon-ic_new_dropdown_line icon-arrow"></i></div><div class="choice" style="display:none"><div class="child-kid"><label><span>房间</span><span></span></label><div class="actions"><span class="icon-btn disabled"><i type="ic_minus" class="u-icon u-icon-ic_minus btn"></i></span><span class="count">1</span><span class="icon-btn"><i type="ic_plus" class="u-icon u-icon-ic_plus btn"></i></span></div></div><div class="child-kid"><label><span>成人</span><span>18岁及以上</span></label><div class="actions"><span class="icon-btn disabled"><i type="ic_minus" class="u-icon u-icon-ic_minus btn"></i></span><span class="count">1</span><span class="icon-btn"><i type="ic_plus" class="u-icon u-icon-ic_plus btn"></i></span></div></div><div class="child-kid"><label><span>儿童</span><span>0-17岁</span></label><div class="actions"><span class="icon-btn disabled"><i type="ic_minus" class="u-icon u-icon-ic_minus btn"></i></span><span class="count">0</span><span class="icon-btn"><i type="ic_plus" class="u-icon u-icon-ic_plus btn"></i></span></div></div><div class="done"><span>确定</span></div></div></div></li><li class="list-item li-item-keyword list-keyword"><div class="search-keyword-container"><label for="keyword">关键词（选填）</label><form class="h-full" autoComplete="off"><input type="text" id="keyword" value="" autoComplete="off" placeholder="机场、火车站、酒店名称或区域"/></form><div class="drop-result-list" style="left:-1px;display:none"><p class="not_found">抱歉，沒有「%1$s」的相关搜索結果。</p></div></div></li><li class="list-item list-btn"><button aria-label="按钮：查询酒店" aria-modal="true" class="search-btn-wrap"><i type="search" class="u-icon u-icon-search"></i></button></li></ul></div><section class="main-content"><div class="filter-mask"></div><section class="top-filter-container" data-exposure="{&quot;ubtKey&quot;:&quot;htl_c_online_list_filter_exposure&quot;,&quot;data&quot;:{&quot;triggerTime&quot;:1695694845302}}" data-send="devTrace"><dl class="start-price-filter"><dt><h4 aria-label="星级价格">星级价格</h4></dt><dd><ul class="sr-ul"><li class="sr-li" aria-label="五星(钻)级">五星(钻)级</li><li class="sr-li" aria-label="四星(钻)级">四星(钻)级</li><li class="sr-li" aria-label="三星(钻)级">三星(钻)级</li><li class="sr-li" aria-label="二星(钻)级及以下">二星(钻)级及以下</li></ul><div class="price-range-wrapper"><ul class="sr-ul"><li class="sr-li" aria-label="150以下">150以下</li><li class="sr-li" aria-label="150-300">150-300</li><li class="sr-li" aria-label="300-450">300-450</li><li class="sr-li" aria-label="450-600">450-600</li><li class="sr-li" aria-label="600以上">600以上</li></ul><div class="price-range-input"><span class="price-range-input-pr"><form autoComplete="off" class="price-range-form"><input type="text" class="price-range-input-low" value="" autoComplete="new-password"/><input style="display:none"/></form></span><span class="price-range-input-split">-</span><span class="price-range-input-pr"><form autoComplete="off" class="price-range-form"><input type="text" class="price-range-input-high" value="" autoComplete="new-password"/><input style="display:none"/></form></span></div></div></dd></dl><dl class="advanced-filter"><dt><h4 aria-label="高级筛选">高级筛选</h4></dt><dd><div class="m-tab filter-tab invisible"><ul class="tab-bar"><li class="tab-bar-item u-icon  " aria-label="评分">评分</li><li class="tab-bar-item u-icon  " aria-label="点评数量">点评数量</li><li class="tab-bar-item u-icon  " aria-label="早餐">早餐</li><li class="tab-bar-item u-icon  " aria-label="支付方式">支付方式</li><li class="tab-bar-item u-icon  " aria-label="房型">房型</li><li class="tab-bar-item u-icon  " aria-label="酒店设施">酒店设施</li><li class="tab-bar-item u-icon  " aria-label="优惠促销">优惠促销</li><li class="tab-bar-item u-icon  " aria-label="住宿类型">住宿类型</li><li class="tab-bar-item u-icon  " aria-label="特色主题">特色主题</li><li class="tab-bar-item u-icon  " aria-label="品牌">品牌</li><li class="tab-bar-item u-icon  " aria-label="携程服务">携程服务</li><li class="tab-bar-item u-icon  " aria-label="适用人群">适用人群</li></ul><ul class="tab-pane"><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li><li class="tab-pane-item"></li></ul></div></dd></dl></section><div class="list-content"><ul class="long-list" role="product"><li></li><li class="item-tag"><div class="ctrip-login-card"><p class="txt"><span class="desc">登录后可享更多立减、返现优惠</span><span class="btn">登录</span></p></div></li><li><div class="current-filter-wrap list"></div><div class="tab-sort-wrap"><div class="tab-item active" aria-label="欢迎度排序"><span class="font-bold">欢迎度排序</span></div><div class="tab-item" aria-label="好评优先"><span class="font-bold">好评优先</span></div><div class="tab-item" aria-label="价格（由低到高）"><span class="font-bold">价格（由低到高）</span></div><div class="tab-item" aria-label="距离（由近到远）"><span class="font-bold">距离（由近到远）</span></div><div class="tab-item" aria-label="星级（由高到低）"><span class="font-bold">星级（由高到低）</span></div><i aria-label="更多" class="u-icon u-icon-menu sort-menu" type="menu"></i></div><div class="small-filter " style="dispaly:none"><div class="f-left"><span><i type="ic_new_filter_line" class="u-icon u-icon-ic_new_filter_line"></i></span>筛选</div><div class="f-split"></div><div class="f-right"><span><i type="ic_new_map_line" class="u-icon u-icon-ic_new_map_line"></i></span>地图</div></div></li><li></li><li><div class="list-holder"><div class="avatar avatar-big"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div><div class="line"><div class="left"><div class="margin24" style="width:359px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:270px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div><div class="right"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="rt-bottom"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div></div></div></div></li><li><div class="list-holder"><div class="avatar avatar-big"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div><div class="line"><div class="left"><div class="margin24" style="width:359px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:270px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div><div class="right"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="rt-bottom"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div></div></div></div></li><li><div class="list-holder"><div class="avatar avatar-big"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div><div class="line"><div class="left"><div class="margin24" style="width:359px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:270px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div><div class="right"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="rt-bottom"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div></div></div></div></li><li><div class="list-holder"><div class="avatar avatar-big"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div><div class="line"><div class="left"><div class="margin24" style="width:359px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:270px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div><div class="right"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="rt-bottom"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div></div></div></div></li><li><div class="list-holder"><div class="avatar avatar-big"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div><div class="line"><div class="left"><div class="margin24" style="width:359px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:270px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="margin24" style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div><div class="right"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div class="rt-bottom"><div class="margin24" style="width:107px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div><div style="width:172px;height:24px"><div class="m-placeholder_container"><div class="m-placeholder" style="width:100%;height:100%"><div class="m-placeholder_list"><div class="m-placeholder_row" style="height:100%"><div class="m-placeholder_rect_container" style="padding:0"><div class="m-placeholder_rect breathe" style="width:100%;height:100%;background-color:#f0f2f5"></div></div></div></div></div></div></div></div></div></div></div></li></ul><div class="filter-wrap sticky-map w394"><div><div class="hotelmap-box" style="height:0"><div class="bmap-view"><div id="map" style="width:100%;height:100%"></div><div class="to-mappage"><i type="ic_new_map" class="u-icon u-icon-ic_new_map map_location"></i>查看大地图</div></div></div><div></div></div></div></div></section><div class="MOD_BOX mod-box mod-back-top"><div class="mod-inner clearfix"><div class="side-bar"><span aria-label="链接：客服" aria-modal="true" class="chat"><i class="c-icon icon-chat"></i></span></div></div></div></div></article></section></div></div><div id="hp_footer"><div id="footerLayer" class="relativeFooterLayer"><div class="fl_footer_wrap_ow234"><div class="fl_layout_wrap_g-sIE fl_normal_footer_YgQc1"><div class="fl_footer_link_list_OWItH"><div class="fl_footer_item_layout_gZ1W6 fl_first_item_y9897"><dl class="fl_footer_item_vp3yx"><dt>旅游资讯</dt><dd class="fl_ft_link_item_8Hler"><a href="http://hotels.ctrip.com/jiudian/" rel="nofollow" target="_blank">宾馆索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://you.ctrip.com/sitemap/" rel="nofollow" target="_blank">攻略索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://flights.ctrip.com/booking/hot-city-flights-sitemap.html" rel="nofollow" target="_blank">机票索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/sitemap/sitemap.htm" rel="nofollow" target="_blank">网站导航</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/sitemap/dj.html" rel="nofollow" target="_blank">旅游索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://trains.ctrip.com/sitemap.html" rel="nofollow" target="_blank">火车票索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://cruise.ctrip.com/hot-all-sitemap.html" rel="nofollow" target="_blank">邮轮索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://ct.ctrip.com/official?ctm_ref=sme006" rel="nofollow" target="_blank">企业差旅索引</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://car.ctrip.com/sitemap/all" rel="nofollow" target="_blank">用车索引</a></dd></dl></div><div class="fl_footer_item_layout_gZ1W6"><dl class="fl_footer_item_vp3yx"><dt>加盟合作</dt><dd class="fl_ft_link_item_8Hler"><a href="http://u.ctrip.com/" rel="nofollow" target="_blank">分销联盟</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/link/ctrip_link.html" rel="nofollow" target="_blank">友情链接</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://lipin.ctrip.com/lipinonline/static/intentional" rel="nofollow" target="_blank">企业礼品卡采购</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://www.ctripins.com/index.html" rel="nofollow" target="_blank">保险代理</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/dlhz.htm" rel="nofollow" target="_blank">代理合作</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://ebooking.ctrip.com/ebkovsassembly/HotelApply?type=1&amp;channel=1&amp;lang=0" rel="nofollow" target="_blank">酒店加盟</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://dst.ctrip.com/" rel="nofollow" target="_blank">目的地及景区合作</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.c-ctrip.com/cooperation/web/cooperation.html#ctm_ref=ctr_hp_btm_coop" rel="nofollow" target="_blank">更多加盟合作</a></dd></dl></div><div class="fl_footer_item_layout_gZ1W6 fl_no_derive_G1PJ2"><dl class="fl_footer_item_vp3yx"><dt>关于携程</dt><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/ctripab/abctrip.htm" rel="nofollow" target="_blank">关于携程</a></dd><dd class="fl_ft_link_item_8Hler"><div class="fl_news_item_dropdown_A8-JZ"><div class="fl_news_item_a_5-UUz">携程热点<i aria-hidden="true" class="pc_home-dropdown fl_news_icon_VV9RE"></i></div></div></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/contact.htm" rel="nofollow" target="_blank">联系我们</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://careers.ctrip.com/" rel="nofollow" target="_blank">诚聘英才</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/commerce/promote/201201/other/qygm/index.html?tzm=shanghaigongshangju" rel="nofollow" target="_blank">企业公民</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://contents.ctrip.com/huodong/privacypolicypc/index?type=0" rel="nofollow" target="_blank">用户协议</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://contents.ctrip.com/huodong/privacypolicypc/index?type=1" rel="nofollow" target="_blank">隐私政策</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://pages.ctrip.com/public/diploma/company.htm" rel="nofollow" target="_blank">营业执照</a></dd><dd class="fl_ft_link_item_8Hler"><a href="http://sec.ctrip.com/" rel="nofollow" target="_blank">安全中心</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://we.ctrip.com/account/login" rel="nofollow" target="_blank">携程内容中心</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://pages.c-ctrip.com/public/encroachment.html" rel="nofollow" target="_blank">知识产权</a></dd><dd class="fl_ft_link_item_8Hler"><a href="https://group.trip.com/" rel="nofollow" target="_blank">Trip.com Group</a></dd></dl></div><div class="fl_footer_item_layout_gZ1W6 fl_no_derive_G1PJ2"><dl class="fl_footer_item_vp3yx fl_item_tel_list_3nBrm"></dl><dl class="fl_footer_item_vp3yx fl_item_qrcode_Sf-pF"><dd><div><img alt="" style="width: 120px; height: auto;" data-src="//pic.c-ctrip.com/platform/online/home/er_ctrip_app.jpg" src="https://webresource.c-ctrip.com/ares2/nfes/pc-home/1.0.41/default/image/placeholder.png"><p class="fl_qr_title_oIhLw">扫码下载携程App</p></div></dd></dl></div></div><div class="fl_footer_copyright_wrapper_xaEbt"><p><a rel="nofollow" href="http://pages.ctrip.com/public/copyright.htm" id="copyright">Copyright©</a>1999-2023,&nbsp;<a href="http://www.ctrip.com/">ctrip.com</a>. All rights reserved.&nbsp;|&nbsp;<a rel="nofollow" target="_blank" href="https://pages.c-ctrip.com/nfes/pchome/icp.pdf?t=20220325">ICP证：沪B2-20050130&nbsp;|&nbsp;</a><a rel="nofollow" target="_blank" href="http://beian.miit.gov.cn/">沪ICP备08023580号-3</a></p><p class="fl_gns_wrapper_wMJ0P"><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=31010502002731"><i class="footerLayer-lazy fl_icon-gns_iPpG5"></i>沪公网备31010502002731号</a>丨<a href="https://pages.c-ctrip.com/nfes/pchome/InternetDrugCertificate.pdf" target="_blank">互联网药品信息服务资格证</a>丨<a href="https://pages.c-ctrip.com/nfes/yiliao.pdf?xx=11" target="_blank">（沪）网械平台备字[2022]第00001号</a> | <span>沪网食备1050001号</span> | <a href="http://m.ctrip.com/webapp/vacations/tour/supplier" rel="nofollow">旅游度假资质</a> | <a href="https://pages.c-ctrip.com/nfes/pchome/cert.html" rel="nofollow">平台信息</a></p><p class="fl_supervision-call_gsdM8"><span>违法和不良信息举报电话021-22500846丨全国旅游投诉热线12345丨</span><a href="http://pages.c-ctrip.com/commerce/promote/201611/other/zz/pc/index.html" target="_blank">上海市旅游网站落实诚信建设主体责任承诺书</a></p><div class="fl_honour_wrap_E--kt"><a href="http://scjgj.sh.gov.cn/" title="工商亮照标识" target="_blank" rel="nofollow" class="footerLayer-lazy fl_honour2_Emzmq">上海工商</a><a href="http://www.zx110.org/" target="_blank" rel="nofollow" title="征信网" class="footerLayer-lazy fl_honour4_eaDL-">网络社会征信网</a><a href="http://www.shjbzx.cn/" target="_blank" rel="nofollow" title="上海市互联网违法与违规信息举报中心" class="footerLayer-lazy fl_honour5_o2v5s">信息举报中心</a><a href="https://ss.knet.cn/verifyseal.dll?sn=e12061531010025926306977" target="_blank" rel="nofollow" title="可信网站" class="footerLayer-lazy fl_honour6_ZTS5D">可信网站</a></div><div class="fl_honour_wrap_E--kt"><a href="http://www.creditchina.gov.cn/" title="信用中国" target="_blank" rel="nofollow" class="footerLayer-lazy fl_honour10_6KzQ4">信用中国</a><a href="https://www.12377.cn/" title="网上有害信息举报专区" target="_blank" rel="nofollow" class="footerLayer-lazy fl_honour12_Lfzzx">网上有害信息举报专区</a><a href="https://im-synthesize.ctrip.com/complaints/rights/AppealCreate" title="消费维权联络点" target="_blank" rel="nofollow" class="footerLayer-lazy fl_honour11_30pvz">消费维权联络点</a><a href="https://fw.scjgj.sh.gov.cn/platform/survey/step1_phone" title="网购大家评" target="_blank" rel="nofollow" class="footerLayer-lazy fl_honour9_ds2vl">网购大家评</a><span title="适老化及无障碍标识" class="fl_honour100_TQ2bR">适老化及无障碍标识</span></div></div></div></div><script id="__MFE_footerLayer_DATA__" type="application/json">{"host":"bbz-ctrip-index-ssr-function.faas.ctripcorp.com","linkData":[{"title":"旅游资讯","listData":[{"jumpURL":"http://hotels.ctrip.com/jiudian/","name":"宾馆索引"},{"jumpURL":"http://you.ctrip.com/sitemap/","name":"攻略索引"},{"jumpURL":"http://flights.ctrip.com/booking/hot-city-flights-sitemap.html","name":"机票索引"},{"jumpURL":"http://pages.ctrip.com/public/sitemap/sitemap.htm","name":"网站导航"},{"jumpURL":"http://pages.ctrip.com/public/sitemap/dj.html","name":"旅游索引"},{"jumpURL":"http://trains.ctrip.com/sitemap.html","name":"火车票索引"},{"jumpURL":"http://cruise.ctrip.com/hot-all-sitemap.html","name":"邮轮索引"},{"jumpURL":"https://ct.ctrip.com/official?ctm_ref=sme006","name":"企业差旅索引"},{"jumpURL":"http://car.ctrip.com/sitemap/all","name":"用车索引"}]},{"title":"加盟合作","listData":[{"jumpURL":"http://u.ctrip.com/","name":"分销联盟"},{"jumpURL":"http://pages.ctrip.com/public/link/ctrip_link.html","name":"友情链接"},{"jumpURL":"https://lipin.ctrip.com/lipinonline/static/intentional","name":"企业礼品卡采购"},{"jumpURL":"http://www.ctripins.com/index.html","name":"保险代理"},{"jumpURL":"http://pages.ctrip.com/public/dlhz.htm","name":"代理合作"},{"jumpURL":"http://ebooking.ctrip.com/ebkovsassembly/HotelApply?type=1&channel=1&lang=0","name":"酒店加盟"},{"jumpURL":"http://dst.ctrip.com/","name":"目的地及景区合作"},{"jumpURL":"http://pages.c-ctrip.com/cooperation/web/cooperation.html#ctm_ref=ctr_hp_btm_coop","name":"更多加盟合作"}]},{"title":"关于携程","listData":[{"jumpURL":"http://pages.ctrip.com/public/ctripab/abctrip.htm","name":"关于携程"},{"name":"携程热点","contentList":[{"contentTitle":"携程公布2018年全年财报 净利达55亿元","contentLink":"https://pages.c-ctrip.com/marketing/news.htm?file=2019030501"},{"contentTitle":"上海市委书记李强调研携程","contentLink":"https://pages.c-ctrip.com/marketing/news.htm?file=2019022201"},{"contentTitle":"携程全球首个目的地服务中心落地普吉岛","contentLink":"https://pages.c-ctrip.com/marketing/news.htm?file=2019020301"},{"contentTitle":"更多","contentLink":"http://pages.ctrip.com/marketing/newsindex.htm"}]},{"jumpURL":"http://pages.ctrip.com/public/contact.htm","name":"联系我们"},{"jumpURL":"https://careers.ctrip.com/","name":"诚聘英才"},{"jumpURL":"http://pages.ctrip.com/commerce/promote/201201/other/qygm/index.html?tzm=shanghaigongshangju","name":"企业公民"},{"jumpURL":"https://contents.ctrip.com/huodong/privacypolicypc/index?type=0","name":"用户协议"},{"jumpURL":"https://contents.ctrip.com/huodong/privacypolicypc/index?type=1","name":"隐私政策"},{"name":"营业执照","jumpURL":"http://pages.ctrip.com/public/diploma/company.htm"},{"name":"安全中心","jumpURL":"http://sec.ctrip.com/"},{"name":"携程内容中心","jumpURL":"https://we.ctrip.com/account/login"},{"name":"知识产权","jumpURL":"https://pages.c-ctrip.com/public/encroachment.html"},{"name":"Trip.com Group","jumpURL":"https://group.trip.com/"}]}],"customServiceTelInfo":[{"locationName":"境内","telNumber":["95010","400-830-6666"]},{"locationName":"中国香港","telNumber":"+852-3008-3295"},{"locationName":"中国澳门","telNumber":"+86-21 3406-4888"},{"locationName":"中国台湾","telNumber":"+86-21 3406-4888"},{"locationName":"其他国家和地区","telNumber":"+86-21 3406-4888"}],"certificateInfo":{"copyright":{"name":"Copyright©","url":"http://pages.ctrip.com/public/copyright.htm"},"ctrip":{"name":"ctrip.com","url":"http://www.ctrip.com/"},"icpCert":{"name":"ICP证：沪B2-20050130","url":"https://pages.c-ctrip.com/nfes/pchome/icp.pdf?t=20220325"},"icpFilings":{"name":"沪ICP备08023580号-3","url":"http://beian.miit.gov.cn/"},"policeFiling":{"name":"沪公网备31010502002731号","url":"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=31010502002731"},"internetDrugCertificate":{"name":"互联网药品信息服务资格证","url":"https://pages.c-ctrip.com/nfes/pchome/InternetDrugCertificate.pdf"},"yiliao":{"name":"（沪）网械平台备字[2022]第00001号","url":"https://pages.c-ctrip.com/nfes/yiliao.pdf?xx=11"},"foodCert":{"name":"沪网食备1050001号"},"vacationCert":{"name":"旅游度假资质","url":"http://m.ctrip.com/webapp/vacations/tour/supplier"},"platformInfo":{"name":"平台信息","url":"https://pages.c-ctrip.com/nfes/pchome/cert.html"},"reportTel":{"name":"违法和不良信息举报电话021-22500846"},"complaintTel":{"name":"全国旅游投诉热线12345"},"commitment":{"name":"上海市旅游网站落实诚信建设主体责任承诺书","url":"http://pages.c-ctrip.com/commerce/promote/201611/other/zz/pc/index.html"},"businessSite":{"name":"上海工商","url":"http://scjgj.sh.gov.cn/"},"zhengxinNetwork":{"name":"网络社会征信网","url":"http://www.zx110.org/"},"infoReportingCenter":{"name":"信息举报中心","url":"http://www.shjbzx.cn/"},"trustedWebsite":{"name":"可信网站","url":"https://ss.knet.cn/verifyseal.dll?sn=e12061531010025926306977"},"creditChina":{"name":"信用中国","url":"http://www.creditchina.gov.cn/"},"onlineHarmInfoReportArea":{"name":"网上有害信息举报专区","url":"https://www.12377.cn/"},"consumerRightsProtectContact":{"name":"消费维权联络点","url":"https://im-synthesize.ctrip.com/complaints/rights/AppealCreate"},"onlineShoppingComments":{"name":"网购大家评","url":"https://fw.scjgj.sh.gov.cn/platform/survey/step1_phone"},"ariaSignage":{"name":"适老化及无障碍标识"}},"_propsData":{}}</script><script type="text/javascript" id="preact_js_common">
         document.body.classList.add('NEW-HEADER')
         window.Trip_Index_Event = (function(){
            var events = {}
            function On( Evt , handler){
                events[Evt] = []
                events[Evt].push({
                    handler: handler
                })
            }
            function Execute( evt, args){
                if (!events[evt]) {
                    return
                }else{
                    for (var i = 0, max = events[evt].length; i < max; i++) {
                        events[evt][i].handler(args)
                    }
                }

            }
            return {
                On: On,
                Execute: Execute
            }
        })()

        if (typeof window.ctrip_assit_onload_arr!="undefined"){
            window.ctrip_assit_onload_arr.push(preact_ctrip_assit_onload)
        }else {
            window.ctrip_assit_onload_arr=[]
            window.ctrip_assit_onload_arr.push(preact_ctrip_assit_onload)
        }

        if(typeof window.ctrip_assit_unonload_arr!="undefined"){
            window.ctrip_assit_unonload_arr.push(preact_ctrip_assit_unonload)
        }else {
            window.ctrip_assit_unonload_arr=[]
            window.ctrip_assit_unonload_arr.push(preact_ctrip_assit_unonload)
        }

        function preact_ctrip_assit_onload(){
            window.Trip_Index_Event.Execute("assitShow", true);
            var leftNav = document.getElementById('leftSideNavLayer');
            var rightContent = document.getElementById('hp_container');
            if(rightContent) {
                rightContent.style.top = '80px';
            } 
            if (leftNav) {
                leftNav.style.top = '80px';
            }
        }

        function preact_ctrip_assit_unonload () {
            window.Trip_Index_Event.Execute("assitShow", false);
            var leftNav = document.getElementById('leftSideNavLayer');
            var rightContent = document.getElementById('hp_container');
            if (leftNav) {
                leftNav.style.top = '0px';
            }
            if (rightContent) {
                rightContent.style.top = '0px';
            }
           

        }
    </script><script async="" src="//webresource.c-ctrip.com/NFES/mfe_compose/1695642538518/compose.preact.js"></script></div></div><div id="ibu_hotel_tools"></div></div><input type="hidden" value="102002" id="page_id"/><script type="text/javascript" src="//pages.trip.com/Hotels/libs/sdt/10/sdt.min.js"></script><script type="text/javascript">window.scriptTags =["https://ws-s.tripcdn.cn/ares/api/cc?f=locale%2Fv2%2F6001%2Fzh-CN.js%2C%2Flocale%2Fv2%2F6002%2Fzh-CN.js%2C%2Flocale%2Fv2%2F330153%2Fzh-CN.js&etagc=10df83938716638dc50a0cbc591c9958","","https://ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/smart/smart.01ff5bbcb05a03e8f105.js","https://ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/index.7e4640312783f6037d144c35669af740.js","//webresource.c-ctrip.com/ares2/sysdev/ubt-sdk/*/default/ubt.minl.js?v=1695694845282"]; 
    window.IBU_HOTEL={"initData":{"seoHeader":[{"property":"fb:app_id","name":"","content":"891889767495675","httpequiv":""},{"property":"og:title","name":"","content":"Cheap hotels \u0026 hotel booking | Trip.com","httpequiv":""},{"property":"og:description","name":"","content":"Find the best hotel at the best rate. Over 1,200,000 hotels in more than 200 regions. 24/7 Customer Service.","httpequiv":""},{"property":"og:url","name":"","content":"http://www.trip.com/hotels/","httpequiv":""},{"property":"og:image","name":"","content":"//pic.tripcdn.com/picaresenglish/ibu/fe-home/images/v1/fa-share.699801db.png","httpequiv":""},{"property":"","name":"twitter:card","content":"summary_large_image","httpequiv":""},{"property":"","name":"twitter:title","content":"Cheap hotels \u0026 hotel booking | Trip.com","httpequiv":""},{"property":"","name":"twitter:description","content":"Find the best hotel at the best rate. Over 1,200,000 hotels in more than 200 regions. 24/7 Customer Service.","httpequiv":""},{"property":"","name":"twitter:url","content":"http://www.trip.com/hotels/","httpequiv":""},{"property":"","name":"twitter:image","content":"//pic.tripcdn.com/picaresenglish/ibu/fe-home/images/v1/fa-share.699801db.png","httpequiv":""},{"property":"","name":"","content":"on","httpequiv":"x-dns-prefetch-control"},{"property":"","name":"","content":"text/html; charset=utf-8","httpequiv":"Content-Type"},{"property":"","name":"","content":"no-cache","httpequiv":"pragma"},{"property":"","name":"","content":"IE=edge,chrome=1","httpequiv":"x-ua-compatible"}],"safeguard":[{"icon":"advantage_blue","title":"丰富可靠的酒店资源","content":"携程品牌精选遍布全球200多个国家和地区仅1,210,000家酒店","type":1},{"icon":"advantage_blue","title":"海量的真实客户点评","content":"30,000,000条来自真实入住的精彩分享，助您轻松做决定","type":2},{"icon":"advantage_blue","title":"一站式服务保障","content":"携程护航预订/入住全过程，每一个环节都有携程的贴心支援","type":3}],"userInfo":{"email":"","login":false,"subscribed":0,"ticket":"","registered":-1},"linkInfo":[{"rel":"alternate","href":"https://www.trip.com/hotels/","hreflang":"en-US"},{"rel":"alternate","href":"https://fr.trip.com/hotels/","hreflang":"fr-FR"},{"rel":"alternate","href":"https://de.trip.com/hotels/","hreflang":"de-DE"},{"rel":"alternate","href":"https://es.trip.com/hotels/","hreflang":"es-ES"},{"rel":"alternate","href":"https://jp.trip.com/hotels/","hreflang":"ja-JP"},{"rel":"alternate","href":"https://kr.trip.com/hotels/","hreflang":"ko-KR"},{"rel":"alternate","href":"https://hk.trip.com/hotels/","hreflang":"zh-HK"},{"rel":"alternate","href":"https://ru.trip.com/hotels/","hreflang":"ru-RU"},{"rel":"alternate","href":"https://sg.trip.com/hotels/","hreflang":"en-SG"},{"rel":"alternate","href":"https://my.trip.com/hotels/","hreflang":"ms-MY"},{"rel":"alternate","href":"https://id.trip.com/hotels/","hreflang":"id-ID"},{"rel":"alternate","href":"https://th.trip.com/hotels/","hreflang":"th-TH"},{"rel":"alternate","href":"https://tw.trip.com/hotels/","hreflang":"zh-TW"},{"rel":"alternate","href":"https://au.trip.com/hotels/","hreflang":"en-AU"},{"rel":"alternate","href":"android-app://ctrip.english/http/www.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/fr.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/de.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/es.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/jp.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/kr.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/hk.trip.com/hotels/","hreflang":""},{"rel":"alternate","href":"android-app://ctrip.english/http/ru.trip.com/hotels/","hreflang":""}],"filterInfo":{"locations":{"list":[{"value":123,"status":0,"text":"嘉定区","lng":121.26564555,"lat":31.37571839,"filterType":0},{"value":133,"status":0,"text":"奉贤区","lng":121.47403626,"lat":30.91799659,"filterType":0},{"value":117,"status":0,"text":"宝山区","lng":121.48940854,"lat":31.40527039,"filterType":0},{"value":134,"status":0,"text":"崇明区","lng":121.39733753,"lat":31.62340316,"filterType":0},{"value":113,"status":0,"text":"徐汇区","lng":121.43655264,"lat":31.18860078,"filterType":0},{"value":120,"status":0,"text":"普陀区","lng":121.3918378404,"lat":31.2579977751,"filterType":0},{"value":121,"status":0,"text":"杨浦区","lng":121.52539724,"lat":31.25960847,"filterType":0},{"value":125,"status":0,"text":"松江区","lng":121.22764347,"lat":31.03258384,"filterType":0},{"value":119,"status":0,"text":"浦东新区","lng":121.5442809,"lat":31.22157517,"filterType":0},{"value":116,"status":0,"text":"虹口区","lng":121.50510387,"lat":31.26454322,"filterType":0},{"value":126,"status":0,"text":"金山区","lng":121.34241813,"lat":30.74184955,"filterType":0},{"value":114,"status":0,"text":"长宁区","lng":121.42442704,"lat":31.22041362,"filterType":0},{"value":122,"status":0,"text":"闵行区","lng":121.3817619,"lat":31.11287047,"filterType":0},{"value":128,"status":0,"text":"青浦区","lng":121.12400732,"lat":31.15069158,"filterType":0},{"value":112,"status":0,"text":"静安区","lng":121.44720806,"lat":31.22757697,"filterType":0},{"value":115,"status":0,"text":"黄浦区","lng":121.48461159,"lat":31.23162171,"filterType":0}],"title":"行政区"},"metros":{"lineList":[{"siteList":[{"value":-1,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4082,"status":0,"text":"莘庄","lng":121.3850136,"lat":31.1109272},{"value":4083,"status":0,"text":"外环路","lng":121.3932259,"lat":31.1212041},{"value":4084,"status":0,"text":"莲花路","lng":121.4027907,"lat":31.1308654},{"value":4085,"status":0,"text":"锦江乐园","lng":121.4142031,"lat":31.1422333},{"value":4086,"status":0,"text":"上海南站","lng":121.4298622,"lat":31.1548653},{"value":4087,"status":0,"text":"漕宝路","lng":121.4351076,"lat":31.1681851},{"value":4088,"status":0,"text":"上海体育馆","lng":121.4364393,"lat":31.1819985},{"value":4089,"status":0,"text":"徐家汇","lng":121.438327,"lat":31.192797},{"value":4090,"status":0,"text":"衡山路","lng":121.446743,"lat":31.2049916},{"value":4091,"status":0,"text":"常熟路","lng":121.4512924,"lat":31.2136246},{"value":4092,"status":0,"text":"陕西南路","lng":121.4602037,"lat":31.2173317},{"value":4093,"status":0,"text":"一大会址·黄陂南路","lng":121.4732918,"lat":31.2227296},{"value":4094,"status":0,"text":"人民广场","lng":121.4751467,"lat":31.2330079},{"value":4095,"status":0,"text":"新闸路","lng":121.4682927,"lat":31.2386622},{"value":4096,"status":0,"text":"汉中路","lng":121.4585374,"lat":31.2415975},{"value":4097,"status":0,"text":"上海火车站","lng":121.4559086,"lat":31.2473752},{"value":4098,"status":0,"text":"中山北路","lng":121.4591656,"lat":31.2590778},{"value":4099,"status":0,"text":"延长路","lng":121.4554693,"lat":31.2718105},{"value":4100,"status":0,"text":"上海马戏城","lng":121.4520954,"lat":31.2795548},{"value":4101,"status":0,"text":"汶水路","lng":121.4501605,"lat":31.2925053},{"value":4102,"status":0,"text":"彭浦新村","lng":121.4486933,"lat":31.3066177},{"value":4103,"status":0,"text":"共康路","lng":121.4470527,"lat":31.3190146},{"value":4104,"status":0,"text":"通河新村","lng":121.4413995,"lat":31.3314315},{"value":4105,"status":0,"text":"呼兰路","lng":121.4377618,"lat":31.3396252},{"value":4106,"status":0,"text":"共富新村","lng":121.434029,"lat":31.3552058},{"value":4107,"status":0,"text":"宝安公路","lng":121.4309311,"lat":31.3698812},{"value":4108,"status":0,"text":"友谊西路","lng":121.4279131,"lat":31.3814474},{"value":4109,"status":0,"text":"富锦路","lng":121.424607,"lat":31.3924346}],"title":"1号线","status":0,"filterType":0},{"siteList":[{"value":-2,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4139,"status":0,"text":"徐泾东","lng":121.3010847,"lat":31.1892348},{"value":4138,"status":0,"text":"虹桥火车站","lng":121.321506,"lat":31.1939545},{"value":4137,"status":0,"text":"虹桥2号航站楼","lng":121.3268672,"lat":31.1942201},{"value":4136,"status":0,"text":"淞虹路","lng":121.3592375,"lat":31.2181641},{"value":4135,"status":0,"text":"北新泾","lng":121.3740365,"lat":31.2164478},{"value":4134,"status":0,"text":"威宁路","lng":121.3870711,"lat":31.2148202},{"value":4133,"status":0,"text":"娄山关路","lng":121.40428,"lat":31.211063},{"value":4132,"status":0,"text":"中山公园","lng":121.4164129,"lat":31.2181942},{"value":4131,"status":0,"text":"江苏路","lng":121.432519,"lat":31.2198316},{"value":4130,"status":0,"text":"静安寺","lng":121.4462781,"lat":31.2232029},{"value":4129,"status":0,"text":"南京西路","lng":121.4602923,"lat":31.2299562},{"value":4128,"status":0,"text":"人民广场","lng":121.4727413,"lat":31.2328428},{"value":4127,"status":0,"text":"南京东路","lng":121.4837341,"lat":31.237148},{"value":4126,"status":0,"text":"陆家嘴","lng":121.5022134,"lat":31.2379946},{"value":4125,"status":0,"text":"东昌路","lng":121.5154142,"lat":31.2333253},{"value":4124,"status":0,"text":"世纪大道","lng":121.5269011,"lat":31.2289034},{"value":4123,"status":0,"text":"上海科技馆","lng":121.5441673,"lat":31.2192739},{"value":4122,"status":0,"text":"世纪公园","lng":121.550749,"lat":31.2096086},{"value":4121,"status":0,"text":"龙阳路","lng":121.5573892,"lat":31.2030831},{"value":4120,"status":0,"text":"张江高科","lng":121.5875708,"lat":31.2018322},{"value":4119,"status":0,"text":"金科路","lng":121.6019977,"lat":31.2041466},{"value":4118,"status":0,"text":"广兰路","lng":121.6205792,"lat":31.2110241},{"value":4117,"status":0,"text":"唐镇","lng":121.6561413,"lat":31.2137094},{"value":4116,"status":0,"text":"创新中路","lng":121.6739126,"lat":31.2134017},{"value":4115,"status":0,"text":"华夏东路","lng":121.6808914,"lat":31.1968042},{"value":4114,"status":0,"text":"川沙","lng":121.6980664,"lat":31.1866742},{"value":4113,"status":0,"text":"凌空路","lng":121.7237533,"lat":31.1928381},{"value":4112,"status":0,"text":"远东大道","lng":121.7555966,"lat":31.1994506},{"value":4111,"status":0,"text":"海天三路","lng":121.7968352,"lat":31.1685977},{"value":4110,"status":0,"text":"浦东国际机场","lng":121.8069846,"lat":31.1486975}],"title":"2号线","status":0,"filterType":0},{"siteList":[{"value":-3,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4140,"status":0,"text":"江杨北路","lng":121.4398303,"lat":31.4078587},{"value":4141,"status":0,"text":"铁力路","lng":121.4614118,"lat":31.4081063},{"value":4142,"status":0,"text":"友谊路","lng":121.4760288,"lat":31.4040481},{"value":4143,"status":0,"text":"宝杨路","lng":121.4795944,"lat":31.3954671},{"value":4144,"status":0,"text":"水产路","lng":121.488142,"lat":31.3813987},{"value":4145,"status":0,"text":"淞滨路","lng":121.4927901,"lat":31.3709003},{"value":4146,"status":0,"text":"张华浜","lng":121.4987948,"lat":31.3580211},{"value":4147,"status":0,"text":"淞发路","lng":121.5004641,"lat":31.3451269},{"value":4148,"status":0,"text":"长江南路","lng":121.4915886,"lat":31.3319961},{"value":4149,"status":0,"text":"殷高西路","lng":121.4848526,"lat":31.3198132},{"value":4150,"status":0,"text":"江湾镇","lng":121.4850829,"lat":31.3054162},{"value":4151,"status":0,"text":"大柏树","lng":121.4830734,"lat":31.2893317},{"value":4152,"status":0,"text":"赤峰路","lng":121.4824507,"lat":31.281264},{"value":4153,"status":0,"text":"虹口足球场","lng":121.4791137,"lat":31.2716447},{"value":4154,"status":0,"text":"东宝兴路","lng":121.4800909,"lat":31.2599303},{"value":4155,"status":0,"text":"宝山路","lng":121.4764922,"lat":31.2515841},{"value":4156,"status":0,"text":"上海火车站","lng":121.4582954,"lat":31.2497312},{"value":4157,"status":0,"text":"中潭路","lng":121.4410407,"lat":31.2546568},{"value":4158,"status":0,"text":"镇坪路","lng":121.4297992,"lat":31.2465219},{"value":4159,"status":0,"text":"曹杨路","lng":121.4177821,"lat":31.2394336},{"value":4160,"status":0,"text":"金沙江路","lng":121.4132517,"lat":31.2323203},{"value":4161,"status":0,"text":"中山公园","lng":121.4164129,"lat":31.2181942},{"value":4162,"status":0,"text":"延安西路","lng":121.4171084,"lat":31.2097305},{"value":4163,"status":0,"text":"虹桥路","lng":121.4208617,"lat":31.1973053},{"value":4164,"status":0,"text":"宜山路","lng":121.4269484,"lat":31.1867657},{"value":4165,"status":0,"text":"漕溪路","lng":121.4383502,"lat":31.17662},{"value":4166,"status":0,"text":"龙漕路","lng":121.4444122,"lat":31.1693738},{"value":4167,"status":0,"text":"石龙路","lng":121.4432376,"lat":31.1579487},{"value":4168,"status":0,"text":"上海南站","lng":121.4307302,"lat":31.1533469}],"title":"3号线","status":0,"filterType":0},{"siteList":[{"value":-4,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4169,"status":0,"text":"宜山路","lng":121.4274439,"lat":31.1867988},{"value":4194,"status":0,"text":"上海体育馆","lng":121.4375776,"lat":31.1829297},{"value":4193,"status":0,"text":"上海体育场","lng":121.443853,"lat":31.1858257},{"value":4192,"status":0,"text":"东安路","lng":121.4549452,"lat":31.1907847},{"value":4191,"status":0,"text":"大木桥路","lng":121.4636843,"lat":31.1942173},{"value":4190,"status":0,"text":"鲁班路","lng":121.4744677,"lat":31.1990256},{"value":4189,"status":0,"text":"西藏南路","lng":121.4895402,"lat":31.2019835},{"value":4188,"status":0,"text":"南浦大桥","lng":121.4997339,"lat":31.2086471},{"value":4187,"status":0,"text":"塘桥","lng":121.5187925,"lat":31.2096054},{"value":4186,"status":0,"text":"蓝村路","lng":121.5279651,"lat":31.2116785},{"value":4185,"status":0,"text":"浦电路","lng":121.532005,"lat":31.2229643},{"value":4184,"status":0,"text":"世纪大道","lng":121.5269011,"lat":31.2289034},{"value":4183,"status":0,"text":"浦东大道","lng":121.5194474,"lat":31.2399817},{"value":4182,"status":0,"text":"杨树浦路","lng":121.5173785,"lat":31.2519014},{"value":4181,"status":0,"text":"大连路","lng":121.5130008,"lat":31.2580049},{"value":4180,"status":0,"text":"临平路","lng":121.5010113,"lat":31.260944},{"value":4179,"status":0,"text":"海伦路","lng":121.4895289,"lat":31.2584664},{"value":4178,"status":0,"text":"宝山路","lng":121.4764922,"lat":31.2515841},{"value":4177,"status":0,"text":"上海火车站","lng":121.4582954,"lat":31.2497312},{"value":4176,"status":0,"text":"中潭路","lng":121.4410407,"lat":31.2546568},{"value":4175,"status":0,"text":"镇坪路","lng":121.4297992,"lat":31.2465219},{"value":4174,"status":0,"text":"曹杨路","lng":121.4177821,"lat":31.2394336},{"value":4173,"status":0,"text":"金沙江路","lng":121.4132517,"lat":31.2323203},{"value":4172,"status":0,"text":"中山公园","lng":121.4164129,"lat":31.2181942},{"value":4171,"status":0,"text":"延安西路","lng":121.4171084,"lat":31.2097305},{"value":4170,"status":0,"text":"虹桥路","lng":121.4208617,"lat":31.1973053}],"title":"4号线","status":0,"filterType":0},{"siteList":[{"value":-5,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4196,"status":0,"text":"莘庄","lng":121.3850136,"lat":31.1109272},{"value":4197,"status":0,"text":"春申路","lng":121.3857273,"lat":31.0983017},{"value":4198,"status":0,"text":"银都路","lng":121.3902832,"lat":31.0893923},{"value":4199,"status":0,"text":"颛桥","lng":121.4019096,"lat":31.0669949},{"value":4200,"status":0,"text":"北桥","lng":121.4100042,"lat":31.0451387},{"value":4201,"status":0,"text":"剑川路","lng":121.4165105,"lat":31.0264527},{"value":4202,"status":0,"text":"东川路","lng":121.4198699,"lat":31.018288},{"value":4203,"status":0,"text":"金平路","lng":121.4100454,"lat":31.0111379},{"value":4204,"status":0,"text":"华宁路","lng":121.3950579,"lat":31.0073186},{"value":4205,"status":0,"text":"文井路","lng":121.3807114,"lat":31.0035576},{"value":4206,"status":0,"text":"闵行开发区","lng":121.3698983,"lat":31.0006259},{"value":17466,"status":0,"text":"江川路","lng":121.4234368,"lat":31.0054997},{"value":17467,"status":0,"text":"西渡","lng":121.4324763,"lat":30.9892781},{"value":17468,"status":0,"text":"萧塘","lng":121.4419812,"lat":30.9659009},{"value":17469,"status":0,"text":"奉浦大道","lng":121.4493178,"lat":30.9417993},{"value":17470,"status":0,"text":"环城东路","lng":121.4636349,"lat":30.9310228},{"value":17471,"status":0,"text":"望园路","lng":121.483753,"lat":30.9319599},{"value":17472,"status":0,"text":"金海湖","lng":121.4924835,"lat":30.928949},{"value":17473,"status":0,"text":"奉贤新城","lng":121.4961819,"lat":30.9141908}],"title":"5号线","status":0,"filterType":0},{"siteList":[{"value":-6,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4207,"status":0,"text":"港城路","lng":121.5746966,"lat":31.3530296},{"value":4208,"status":0,"text":"外高桥保税区北","lng":121.586964,"lat":31.3478111},{"value":4209,"status":0,"text":"航津路","lng":121.594005,"lat":31.3353775},{"value":4210,"status":0,"text":"外高桥保税区南","lng":121.602106,"lat":31.3214443},{"value":4211,"status":0,"text":"洲海路","lng":121.589432,"lat":31.3123455},{"value":4212,"status":0,"text":"五洲大道","lng":121.5893649,"lat":31.3026164},{"value":4213,"status":0,"text":"东靖路","lng":121.5888524,"lat":31.2907863},{"value":4214,"status":0,"text":"巨峰路","lng":121.5885009,"lat":31.2806789},{"value":4215,"status":0,"text":"五莲路","lng":121.5880613,"lat":31.2719727},{"value":4216,"status":0,"text":"博兴路","lng":121.5869328,"lat":31.2640002},{"value":4217,"status":0,"text":"金桥路","lng":121.5819095,"lat":31.2571406},{"value":4218,"status":0,"text":"云山路","lng":121.572878,"lat":31.2503712},{"value":4219,"status":0,"text":"德平路","lng":121.5641613,"lat":31.2453527},{"value":4220,"status":0,"text":"北洋泾路","lng":121.552799,"lat":31.2392453},{"value":4221,"status":0,"text":"民生路","lng":121.5434677,"lat":31.2358747},{"value":4222,"status":0,"text":"源深体育中心","lng":121.5343943,"lat":31.2329559},{"value":4223,"status":0,"text":"世纪大道","lng":121.5269011,"lat":31.2289034},{"value":4224,"status":0,"text":"浦电路","lng":121.5289351,"lat":31.2200656},{"value":4225,"status":0,"text":"蓝村路","lng":121.5277259,"lat":31.211687},{"value":4226,"status":0,"text":"上海儿童医学中心","lng":121.5232544,"lat":31.2035241},{"value":4227,"status":0,"text":"临沂新村","lng":121.5165265,"lat":31.1931861},{"value":4228,"status":0,"text":"高科西路","lng":121.5098281,"lat":31.1856062},{"value":4229,"status":0,"text":"东明路","lng":121.5109285,"lat":31.1725608},{"value":4230,"status":0,"text":"高青路","lng":121.5157226,"lat":31.1594987},{"value":4231,"status":0,"text":"华夏西路","lng":121.5145873,"lat":31.1498352},{"value":4232,"status":0,"text":"上南路","lng":121.5063768,"lat":31.1491342},{"value":4233,"status":0,"text":"灵岩南路","lng":121.4950978,"lat":31.1487218},{"value":4234,"status":0,"text":"东方体育中心","lng":121.4804756,"lat":31.1535448}],"title":"6号线","status":0,"filterType":0},{"siteList":[{"value":-7,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4235,"status":0,"text":"美兰湖","lng":121.3499439,"lat":31.4018568},{"value":4236,"status":0,"text":"罗南新村","lng":121.3576567,"lat":31.3885276},{"value":6117,"status":0,"text":"潘广路","lng":121.3557504,"lat":31.364302},{"value":6119,"status":0,"text":"刘行","lng":121.3623436,"lat":31.3576341},{"value":4237,"status":0,"text":"顾村公园","lng":121.3727069,"lat":31.3449101},{"value":6118,"status":0,"text":"祁华路","lng":121.373569,"lat":31.3224518},{"value":4238,"status":0,"text":"上海大学","lng":121.3887117,"lat":31.320585},{"value":4239,"status":0,"text":"南陈路","lng":121.3986703,"lat":31.3214272},{"value":4240,"status":0,"text":"上大路","lng":121.4082712,"lat":31.3154919},{"value":4241,"status":0,"text":"场中路","lng":121.4136944,"lat":31.3038972},{"value":4242,"status":0,"text":"大场镇","lng":121.4164972,"lat":31.2935946},{"value":4243,"status":0,"text":"行知路","lng":121.4216316,"lat":31.2850224},{"value":4244,"status":0,"text":"大华三路","lng":121.4230596,"lat":31.2739606},{"value":4245,"status":0,"text":"新村路","lng":121.4225943,"lat":31.2639356},{"value":4246,"status":0,"text":"岚皋路","lng":121.4218905,"lat":31.2563709},{"value":4247,"status":0,"text":"镇坪路","lng":121.4315236,"lat":31.2470465},{"value":4248,"status":0,"text":"长寿路","lng":121.4383057,"lat":31.239907},{"value":4249,"status":0,"text":"昌平路","lng":121.4423203,"lat":31.2341093},{"value":4250,"status":0,"text":"静安寺","lng":121.4486562,"lat":31.2229372},{"value":4251,"status":0,"text":"常熟路","lng":121.4490984,"lat":31.2136823},{"value":4252,"status":0,"text":"肇嘉浜路","lng":121.4502676,"lat":31.1987155},{"value":4253,"status":0,"text":"东安路","lng":121.4545139,"lat":31.1913037},{"value":4254,"status":0,"text":"龙华中路","lng":121.4569498,"lat":31.1850863},{"value":4255,"status":0,"text":"后滩","lng":121.4735368,"lat":31.1719558},{"value":4256,"status":0,"text":"长清路","lng":121.4860941,"lat":31.174608},{"value":4257,"status":0,"text":"耀华路","lng":121.4945517,"lat":31.1784395},{"value":4258,"status":0,"text":"云台路","lng":121.5006896,"lat":31.1821299},{"value":4259,"status":0,"text":"高科西路","lng":121.5098281,"lat":31.1856062},{"value":4260,"status":0,"text":"杨高南路","lng":121.5251062,"lat":31.1875728},{"value":4261,"status":0,"text":"锦绣路","lng":121.5399561,"lat":31.1875891},{"value":4262,"status":0,"text":"芳华路","lng":121.5500657,"lat":31.1932174},{"value":4263,"status":0,"text":"龙阳路","lng":121.5576178,"lat":31.2035924},{"value":4264,"status":0,"text":"花木路","lng":121.562809,"lat":31.2112063}],"title":"7号线","status":0,"filterType":0},{"siteList":[{"value":-8,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4292,"status":0,"text":"市光路","lng":121.5320342,"lat":31.3224765},{"value":4291,"status":0,"text":"嫩江路","lng":121.5320737,"lat":31.3148851},{"value":4290,"status":0,"text":"翔殷路","lng":121.5319952,"lat":31.3049898},{"value":4289,"status":0,"text":"黄兴公园","lng":121.5332111,"lat":31.2958782},{"value":4288,"status":0,"text":"延吉中路","lng":121.5349479,"lat":31.2886366},{"value":4287,"status":0,"text":"黄兴路","lng":121.5279468,"lat":31.2786163},{"value":4286,"status":0,"text":"江浦路","lng":121.5182633,"lat":31.2750308},{"value":4285,"status":0,"text":"鞍山新村","lng":121.5094963,"lat":31.2732462},{"value":4284,"status":0,"text":"四平路","lng":121.5012388,"lat":31.2749561},{"value":4283,"status":0,"text":"曲阳路","lng":121.4904709,"lat":31.2764462},{"value":4282,"status":0,"text":"虹口足球场","lng":121.4794209,"lat":31.2699676},{"value":4281,"status":0,"text":"西藏北路","lng":121.4687596,"lat":31.2633768},{"value":4280,"status":0,"text":"中兴路","lng":121.4689097,"lat":31.2530129},{"value":4279,"status":0,"text":"曲阜路","lng":121.4715119,"lat":31.2422785},{"value":4278,"status":0,"text":"人民广场","lng":121.4755896,"lat":31.2328191},{"value":4277,"status":0,"text":"大世界","lng":121.4792678,"lat":31.22722},{"value":4276,"status":0,"text":"老西门","lng":121.4829101,"lat":31.218899},{"value":4275,"status":0,"text":"陆家浜路","lng":121.4861318,"lat":31.2117017},{"value":4274,"status":0,"text":"西藏南路","lng":121.4895402,"lat":31.2019835},{"value":6115,"status":0,"text":"中华艺术宫","lng":121.4941733,"lat":31.1856912},{"value":4273,"status":0,"text":"耀华路","lng":121.4945517,"lat":31.1784395},{"value":4272,"status":0,"text":"成山路","lng":121.4961579,"lat":31.1708408},{"value":4271,"status":0,"text":"杨思","lng":121.4937187,"lat":31.1610593},{"value":6116,"status":0,"text":"东方体育中心","lng":121.4804756,"lat":31.1535448},{"value":4270,"status":0,"text":"凌兆新村","lng":121.489699,"lat":31.1410097},{"value":4269,"status":0,"text":"芦恒路","lng":121.4977665,"lat":31.1192651},{"value":4268,"status":0,"text":"浦江镇","lng":121.5062879,"lat":31.0965379},{"value":4267,"status":0,"text":"江月路","lng":121.5085451,"lat":31.0843154},{"value":4266,"status":0,"text":"联航路","lng":121.5105575,"lat":31.0739662},{"value":4265,"status":0,"text":"沈杜公路","lng":121.5122449,"lat":31.0613553}],"title":"8号线","status":0,"filterType":0},{"siteList":[{"value":-9,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":6114,"status":0,"text":"松江南站","lng":121.231153,"lat":30.9849723},{"value":6113,"status":0,"text":"醉白池","lng":121.2293165,"lat":31.0009705},{"value":6112,"status":0,"text":"松江体育中心","lng":121.2306188,"lat":31.01606},{"value":4315,"status":0,"text":"松江新城","lng":121.2307652,"lat":31.0302263},{"value":4314,"status":0,"text":"松江大学城","lng":121.2327071,"lat":31.0540966},{"value":4313,"status":0,"text":"洞泾","lng":121.2305074,"lat":31.0844016},{"value":4312,"status":0,"text":"佘山","lng":121.2297394,"lat":31.1045997},{"value":4311,"status":0,"text":"泗泾","lng":121.2606476,"lat":31.1183345},{"value":4310,"status":0,"text":"九亭","lng":121.3189695,"lat":31.13748},{"value":4309,"status":0,"text":"中春路","lng":121.3383061,"lat":31.1497472},{"value":4308,"status":0,"text":"七宝","lng":121.3495652,"lat":31.1553878},{"value":4307,"status":0,"text":"星中路","lng":121.3690084,"lat":31.1581718},{"value":4306,"status":0,"text":"合川路","lng":121.3845974,"lat":31.1665838},{"value":4305,"status":0,"text":"漕河泾开发区","lng":121.3976271,"lat":31.170444},{"value":4304,"status":0,"text":"桂林路","lng":121.4185407,"lat":31.1748495},{"value":4303,"status":0,"text":"宜山路","lng":121.427675,"lat":31.1849165},{"value":4302,"status":0,"text":"徐家汇","lng":121.4369123,"lat":31.1956108},{"value":4301,"status":0,"text":"肇嘉浜路","lng":121.4498189,"lat":31.199464},{"value":4300,"status":0,"text":"嘉善路","lng":121.4607595,"lat":31.2027744},{"value":4299,"status":0,"text":"打浦桥","lng":121.4689008,"lat":31.2060509},{"value":4298,"status":0,"text":"马当路","lng":121.4771526,"lat":31.2093328},{"value":4297,"status":0,"text":"陆家浜路","lng":121.4861318,"lat":31.2117017},{"value":4296,"status":0,"text":"小南门","lng":121.4982864,"lat":31.217015},{"value":4295,"status":0,"text":"商城路","lng":121.516309,"lat":31.2303589},{"value":4294,"status":0,"text":"世纪大道","lng":121.5269011,"lat":31.2289034},{"value":4293,"status":0,"text":"杨高中路","lng":121.5485797,"lat":31.2274855},{"value":17171,"status":0,"text":"芳甸路","lng":121.5581809,"lat":31.2313322},{"value":17172,"status":0,"text":"蓝天路","lng":121.5777304,"lat":31.2412788},{"value":17173,"status":0,"text":"台儿庄路","lng":121.5974499,"lat":31.2528376},{"value":17174,"status":0,"text":"金桥","lng":121.6124721,"lat":31.2612217},{"value":17175,"status":0,"text":"金吉路","lng":121.6278241,"lat":31.2642711},{"value":17176,"status":0,"text":"金海路","lng":121.6392281,"lat":31.2642274},{"value":17177,"status":0,"text":"顾唐路","lng":121.6565325,"lat":31.2660648},{"value":17178,"status":0,"text":"民雷路","lng":121.6681947,"lat":31.2683477},{"value":17179,"status":0,"text":"曹路","lng":121.6830537,"lat":31.2711701}],"title":"9号线","status":0,"filterType":0},{"siteList":[{"value":-10,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":19091,"status":0,"text":"基隆路","lng":121.5904633,"lat":31.3511233},{"value":19092,"status":0,"text":"港城路","lng":121.5748481,"lat":31.3531195},{"value":19093,"status":0,"text":"高桥","lng":121.5634035,"lat":31.3526449},{"value":19094,"status":0,"text":"高桥西","lng":121.5495008,"lat":31.3515187},{"value":19095,"status":0,"text":"双江路","lng":121.539556,"lat":31.3535886},{"value":19096,"status":0,"text":"国帆路","lng":121.5132175,"lat":31.3396004},{"value":4316,"status":0,"text":"新江湾城","lng":121.5065909,"lat":31.3287918},{"value":4317,"status":0,"text":"殷高东路","lng":121.5065871,"lat":31.3220845},{"value":4318,"status":0,"text":"三门路","lng":121.5081232,"lat":31.3129463},{"value":4319,"status":0,"text":"江湾体育场","lng":121.5140789,"lat":31.3030191},{"value":4320,"status":0,"text":"五角场","lng":121.5146413,"lat":31.2980713},{"value":4321,"status":0,"text":"国权路","lng":121.5101816,"lat":31.2896702},{"value":4322,"status":0,"text":"同济大学","lng":121.5064797,"lat":31.2825621},{"value":4323,"status":0,"text":"四平路","lng":121.5017512,"lat":31.2752553},{"value":4324,"status":0,"text":"邮电新村","lng":121.4942773,"lat":31.2685376},{"value":4325,"status":0,"text":"海伦路","lng":121.4885253,"lat":31.2592202},{"value":4326,"status":0,"text":"四川北路","lng":121.4842021,"lat":31.2519774},{"value":4327,"status":0,"text":"天潼路","lng":121.4821668,"lat":31.2445352},{"value":4328,"status":0,"text":"南京东路","lng":121.4845325,"lat":31.2384039},{"value":4329,"status":0,"text":"豫园","lng":121.4873069,"lat":31.2282876},{"value":4330,"status":0,"text":"老西门","lng":121.4829099,"lat":31.2188993},{"value":4331,"status":0,"text":"一大会址·新天地","lng":121.4752725,"lat":31.2163416},{"value":4332,"status":0,"text":"陕西南路","lng":121.4580324,"lat":31.2147862},{"value":4333,"status":0,"text":"上海图书馆","lng":121.4443541,"lat":31.2080816},{"value":4334,"status":0,"text":"交通大学","lng":121.434148,"lat":31.2018535},{"value":4335,"status":0,"text":"虹桥路","lng":121.4223052,"lat":31.1966419},{"value":4336,"status":0,"text":"宋园路","lng":121.4119472,"lat":31.1966571},{"value":4337,"status":0,"text":"伊犁路","lng":121.404144,"lat":31.198744},{"value":4338,"status":0,"text":"水城路","lng":121.3918691,"lat":31.1993694},{"value":4339,"status":0,"text":"龙溪路","lng":121.3798796,"lat":31.1942435},{"value":4340,"status":0,"text":"上海动物园","lng":121.3670338,"lat":31.1903359},{"value":4341,"status":0,"text":"虹桥1号航站楼","lng":121.3474213,"lat":31.1914283},{"value":4342,"status":0,"text":"虹桥2号航站楼","lng":121.3268672,"lat":31.1942201},{"value":4343,"status":0,"text":"虹桥火车站","lng":121.321506,"lat":31.1939545},{"value":4403,"status":0,"text":"龙柏新村","lng":121.3704258,"lat":31.177211},{"value":4404,"status":0,"text":"紫藤路","lng":121.3644247,"lat":31.169788},{"value":4405,"status":0,"text":"航中路","lng":121.3547447,"lat":31.1657133}],"title":"10号线","status":0,"filterType":0},{"siteList":[{"value":-15,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":6120,"status":0,"text":"花桥","lng":121.1042512,"lat":31.2987413},{"value":6121,"status":0,"text":"光明路","lng":121.117478,"lat":31.2962612},{"value":6122,"status":0,"text":"兆丰路","lng":121.1503482,"lat":31.2889744},{"value":5235,"status":0,"text":"安亭","lng":121.1620832,"lat":31.2884858},{"value":5236,"status":0,"text":"上海汽车城","lng":121.1808186,"lat":31.2853918},{"value":5237,"status":0,"text":"昌吉东路","lng":121.2003834,"lat":31.2935809},{"value":5238,"status":0,"text":"上海赛车场","lng":121.2261327,"lat":31.3318675},{"value":5264,"status":0,"text":"嘉定北","lng":121.2374846,"lat":31.3915517},{"value":5265,"status":0,"text":"嘉定西","lng":121.2279114,"lat":31.3771956},{"value":5266,"status":0,"text":"白银路","lng":121.245215,"lat":31.3456275},{"value":5239,"status":0,"text":"嘉定新城","lng":121.2544404,"lat":31.3300906},{"value":5240,"status":0,"text":"马陆","lng":121.276871,"lat":31.3196321},{"value":20707,"status":0,"text":"陈翔公路","lng":121.3067753,"lat":31.3065561},{"value":5241,"status":0,"text":"南翔","lng":121.3233586,"lat":31.2970029},{"value":5242,"status":0,"text":"桃浦新村","lng":121.3494573,"lat":31.2816403},{"value":5243,"status":0,"text":"武威路","lng":121.3647672,"lat":31.2770842},{"value":5244,"status":0,"text":"祁连山路","lng":121.3759175,"lat":31.2715636},{"value":5245,"status":0,"text":"李子园","lng":121.38996,"lat":31.2689449},{"value":5246,"status":0,"text":"上海西站","lng":121.401402,"lat":31.262701},{"value":5247,"status":0,"text":"真如","lng":121.4073121,"lat":31.2505451},{"value":5248,"status":0,"text":"枫桥路","lng":121.4110297,"lat":31.2420439},{"value":5249,"status":0,"text":"曹杨路","lng":121.4176185,"lat":31.2379618},{"value":5250,"status":0,"text":"隆德路","lng":121.4235616,"lat":31.2305482},{"value":5251,"status":0,"text":"江苏路","lng":121.4306652,"lat":31.2204069},{"value":5252,"status":0,"text":"交通大学","lng":121.4349812,"lat":31.2025541},{"value":5253,"status":0,"text":"徐家汇","lng":121.4359102,"lat":31.1948476},{"value":5254,"status":0,"text":"上海游泳馆","lng":121.4416368,"lat":31.1790066},{"value":5255,"status":0,"text":"龙华","lng":121.4528216,"lat":31.1729775},{"value":5256,"status":0,"text":"云锦路","lng":121.4584861,"lat":31.1664473},{"value":5257,"status":0,"text":"龙耀路","lng":121.4595655,"lat":31.1599309},{"value":5258,"status":0,"text":"东方体育中心","lng":121.4804756,"lat":31.1535448},{"value":5259,"status":0,"text":"三林","lng":121.5109806,"lat":31.1429941},{"value":5260,"status":0,"text":"三林东","lng":121.5231648,"lat":31.1465221},{"value":5261,"status":0,"text":"浦三路","lng":121.5390929,"lat":31.1509849},{"value":5262,"status":0,"text":"御桥","lng":121.5709599,"lat":31.1583594},{"value":5263,"status":0,"text":"罗山路","lng":121.5932197,"lat":31.1532854},{"value":13779,"status":0,"text":"秀沿路","lng":121.5987999,"lat":31.1377773},{"value":13780,"status":0,"text":"康新公路","lng":121.6172279,"lat":31.1303918},{"value":13957,"status":0,"text":"迪士尼","lng":121.66833,"lat":31.1413677}],"title":"11号线","status":0,"filterType":0},{"siteList":[{"value":-12,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":5738,"status":0,"text":"金海路","lng":121.6386531,"lat":31.263153},{"value":5741,"status":0,"text":"申江路","lng":121.6272222,"lat":31.2801987},{"value":5743,"status":0,"text":"金京路","lng":121.6156302,"lat":31.2797732},{"value":5740,"status":0,"text":"杨高北路","lng":121.602881,"lat":31.2800848},{"value":5744,"status":0,"text":"巨峰路","lng":121.5896004,"lat":31.280157},{"value":5745,"status":0,"text":"东陆路","lng":121.5788178,"lat":31.282514},{"value":5748,"status":0,"text":"复兴岛","lng":121.5614419,"lat":31.2808546},{"value":5735,"status":0,"text":"爱国路","lng":121.5530317,"lat":31.2800153},{"value":5734,"status":0,"text":"隆昌路","lng":121.5444092,"lat":31.2751018},{"value":5739,"status":0,"text":"宁国路","lng":121.5325899,"lat":31.2687227},{"value":5746,"status":0,"text":"江浦公园","lng":121.523736,"lat":31.2645845},{"value":5742,"status":0,"text":"大连路","lng":121.5130008,"lat":31.2580049},{"value":5747,"status":0,"text":"提篮桥","lng":121.5066853,"lat":31.2534809},{"value":5749,"status":0,"text":"国际客运中心","lng":121.4982525,"lat":31.2501956},{"value":5736,"status":0,"text":"天潼路","lng":121.4822909,"lat":31.243893},{"value":5737,"status":0,"text":"曲阜路","lng":121.4715428,"lat":31.2423075},{"value":13781,"status":0,"text":"汉中路","lng":121.4588833,"lat":31.2406399},{"value":13782,"status":0,"text":"南京西路","lng":121.459462,"lat":31.2279376},{"value":13783,"status":0,"text":"陕西南路","lng":121.4591825,"lat":31.2160923},{"value":13784,"status":0,"text":"嘉善路","lng":121.4608479,"lat":31.2028932},{"value":13785,"status":0,"text":"大木桥路","lng":121.4635368,"lat":31.1942898},{"value":13786,"status":0,"text":"龙华中路","lng":121.4574021,"lat":31.1851241},{"value":13787,"status":0,"text":"龙华","lng":121.4527257,"lat":31.1738483},{"value":13788,"status":0,"text":"龙漕路","lng":121.4440109,"lat":31.1704882},{"value":13789,"status":0,"text":"漕宝路","lng":121.434972,"lat":31.1684385},{"value":13790,"status":0,"text":"桂林公园","lng":121.4186598,"lat":31.1668764},{"value":13791,"status":0,"text":"虹漕路","lng":121.4105209,"lat":31.1640352},{"value":13792,"status":0,"text":"虹梅路","lng":121.3974558,"lat":31.1601874},{"value":13793,"status":0,"text":"东兰路","lng":121.3921718,"lat":31.1552034},{"value":13794,"status":0,"text":"顾戴路","lng":121.3923748,"lat":31.1409601},{"value":13795,"status":0,"text":"虹莘路","lng":121.3793735,"lat":31.1373058},{"value":13796,"status":0,"text":"七莘路","lng":121.3632502,"lat":31.1320285}],"title":"12号线","status":0,"filterType":0},{"siteList":[{"value":-16,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":5267,"status":0,"text":"金运路","lng":121.3196131,"lat":31.2409999},{"value":5268,"status":0,"text":"金沙江西路","lng":121.33524,"lat":31.2411412},{"value":5269,"status":0,"text":"丰庄","lng":121.3556401,"lat":31.2424695},{"value":5270,"status":0,"text":"祁连山南路","lng":121.3675505,"lat":31.2374549},{"value":5271,"status":0,"text":"真北路","lng":121.3822749,"lat":31.2322186},{"value":5272,"status":0,"text":"大渡河路","lng":121.3951226,"lat":31.231786},{"value":5273,"status":0,"text":"金沙江路","lng":121.4124907,"lat":31.2311745},{"value":5274,"status":0,"text":"隆德路","lng":121.423284,"lat":31.2304635},{"value":5275,"status":0,"text":"武宁路","lng":121.430238,"lat":31.2339693},{"value":5276,"status":0,"text":"长寿路","lng":121.4383652,"lat":31.240825},{"value":5277,"status":0,"text":"江宁路","lng":121.444146,"lat":31.2441934},{"value":5278,"status":0,"text":"汉中路","lng":121.4588833,"lat":31.2406399},{"value":5279,"status":0,"text":"自然博物馆","lng":121.4627951,"lat":31.2357776},{"value":5280,"status":0,"text":"南京西路","lng":121.4624668,"lat":31.2285137},{"value":5281,"status":0,"text":"淮海中路","lng":121.4641882,"lat":31.2200843},{"value":5282,"status":0,"text":"一大会址·新天地","lng":121.47489,"lat":31.2155954},{"value":5283,"status":0,"text":"马当路","lng":121.4763789,"lat":31.2096468},{"value":13797,"status":0,"text":"世博会博物馆","lng":121.481963,"lat":31.1968212},{"value":5285,"status":0,"text":"世博大道","lng":121.4843881,"lat":31.1824836},{"value":17454,"status":0,"text":"长清路","lng":121.4874248,"lat":31.1742348},{"value":17455,"status":0,"text":"成山路","lng":121.4966872,"lat":31.1711752},{"value":17456,"status":0,"text":"东明路","lng":121.5116928,"lat":31.1727136},{"value":17457,"status":0,"text":"华鹏路","lng":121.5269886,"lat":31.176504},{"value":17458,"status":0,"text":"下南路","lng":121.5402345,"lat":31.1793532},{"value":17459,"status":0,"text":"北蔡","lng":121.5523625,"lat":31.1801351},{"value":17460,"status":0,"text":"陈春路","lng":121.5576414,"lat":31.1749831},{"value":17461,"status":0,"text":"莲溪路","lng":121.5661642,"lat":31.1690024},{"value":17462,"status":0,"text":"华夏中路","lng":121.582435,"lat":31.1751491},{"value":17463,"status":0,"text":"中科路","lng":121.6025003,"lat":31.1788792},{"value":17464,"status":0,"text":"学林路","lng":121.6142595,"lat":31.1834607},{"value":17465,"status":0,"text":"张江路","lng":121.6289473,"lat":31.1892717}],"title":"13号线","status":0,"filterType":0},{"siteList":[{"value":-14,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":19566,"status":0,"text":"封浜","lng":121.2978347,"lat":31.2674076},{"value":19567,"status":0,"text":"乐秀路","lng":121.3138244,"lat":31.2652829},{"value":19568,"status":0,"text":"临洮路","lng":121.3310222,"lat":31.263051},{"value":19569,"status":0,"text":"嘉怡路","lng":121.3456853,"lat":31.2591709},{"value":19570,"status":0,"text":"定边路","lng":121.3624042,"lat":31.2563561},{"value":19571,"status":0,"text":"真新新村","lng":121.3722537,"lat":31.255384},{"value":19572,"status":0,"text":"真光路","lng":121.3843778,"lat":31.2532694},{"value":19573,"status":0,"text":"铜川路","lng":121.3972033,"lat":31.2512429},{"value":19574,"status":0,"text":"真如","lng":121.4069662,"lat":31.2507288},{"value":19575,"status":0,"text":"中宁路","lng":121.4144077,"lat":31.2448733},{"value":19576,"status":0,"text":"曹杨路","lng":121.4217873,"lat":31.2397654},{"value":19577,"status":0,"text":"武宁路","lng":121.4309503,"lat":31.2335095},{"value":19578,"status":0,"text":"武定路","lng":121.4359823,"lat":31.2276331},{"value":19579,"status":0,"text":"静安寺","lng":121.4468896,"lat":31.222742},{"value":19580,"status":0,"text":"一大会址·黄陂南路","lng":121.4725891,"lat":31.2231852},{"value":19581,"status":0,"text":"大世界","lng":121.4795756,"lat":31.2269653},{"value":19582,"status":0,"text":"豫园","lng":121.4876357,"lat":31.2286328},{"value":19583,"status":0,"text":"陆家嘴","lng":121.5030888,"lat":31.2350316},{"value":19584,"status":0,"text":"浦东南路","lng":121.5124742,"lat":31.2384699},{"value":19585,"status":0,"text":"浦东大道","lng":121.5194041,"lat":31.2401587},{"value":19586,"status":0,"text":"源深路","lng":121.5306471,"lat":31.2412233},{"value":19587,"status":0,"text":"昌邑路","lng":121.5400426,"lat":31.2439378},{"value":19588,"status":0,"text":"歇浦路","lng":121.5514595,"lat":31.2505495},{"value":19589,"status":0,"text":"云山路","lng":121.5718577,"lat":31.2506983},{"value":19590,"status":0,"text":"蓝天路","lng":121.5779193,"lat":31.2407796},{"value":19591,"status":0,"text":"黄杨路","lng":121.5909463,"lat":31.2339776},{"value":19592,"status":0,"text":"云顺路","lng":121.6002377,"lat":31.2368987},{"value":19593,"status":0,"text":"浦东足球场","lng":121.6149233,"lat":31.2415614},{"value":19594,"status":0,"text":"金粤路","lng":121.6291012,"lat":31.2421393},{"value":19595,"status":0,"text":"桂桥路","lng":121.6350748,"lat":31.2505426}],"title":"14号线","status":0,"filterType":0},{"siteList":[{"value":-11,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":18862,"status":0,"text":"紫竹高新区","lng":121.4509574,"lat":31.0236722},{"value":18863,"status":0,"text":"永德路","lng":121.4432923,"lat":31.0391369},{"value":18864,"status":0,"text":"元江路","lng":121.4327325,"lat":31.0608646},{"value":18865,"status":0,"text":"双柏路","lng":121.4212673,"lat":31.084188},{"value":18866,"status":0,"text":"曙建路","lng":121.4172632,"lat":31.0917523},{"value":18867,"status":0,"text":"景西路","lng":121.4202808,"lat":31.1001194},{"value":18868,"status":0,"text":"虹梅南路","lng":121.4315999,"lat":31.1034952},{"value":18869,"status":0,"text":"华泾西","lng":121.4400345,"lat":31.1140819},{"value":18870,"status":0,"text":"朱梅路","lng":121.4382877,"lat":31.1223934},{"value":18871,"status":0,"text":"罗秀路","lng":121.4358031,"lat":31.1315828},{"value":18872,"status":0,"text":"华东理工大学","lng":121.4292111,"lat":31.1420227},{"value":18873,"status":0,"text":"上海南站","lng":121.4299343,"lat":31.1547116},{"value":18874,"status":0,"text":"桂林公园","lng":121.4189712,"lat":31.1669271},{"value":18875,"status":0,"text":"桂林路","lng":121.4173637,"lat":31.1746548},{"value":18876,"status":0,"text":"吴中路","lng":121.413449,"lat":31.1867923},{"value":18877,"status":0,"text":"姚虹路","lng":121.4090538,"lat":31.1914153},{"value":18878,"status":0,"text":"红宝石路","lng":121.3985227,"lat":31.1997812},{"value":18879,"status":0,"text":"娄山关路","lng":121.4020615,"lat":31.2115104},{"value":18880,"status":0,"text":"长风公园","lng":121.3962301,"lat":31.2239705},{"value":18881,"status":0,"text":"大渡河路","lng":121.3954563,"lat":31.2318092},{"value":18882,"status":0,"text":"梅岭北路","lng":121.3969672,"lat":31.244877},{"value":18883,"status":0,"text":"铜川路","lng":121.3973835,"lat":31.2506761},{"value":18884,"status":0,"text":"上海西站","lng":121.4007995,"lat":31.2629068},{"value":18885,"status":0,"text":"武威东路","lng":121.3914571,"lat":31.2763236},{"value":18886,"status":0,"text":"古浪路","lng":121.3919619,"lat":31.282539},{"value":18887,"status":0,"text":"祁安路","lng":121.3859851,"lat":31.291351},{"value":18888,"status":0,"text":"南大路","lng":121.3803634,"lat":31.2993645},{"value":18889,"status":0,"text":"丰翔路","lng":121.3809836,"lat":31.3083565},{"value":18890,"status":0,"text":"锦秋路","lng":121.3817276,"lat":31.3192378},{"value":18891,"status":0,"text":"顾村公园","lng":121.3729936,"lat":31.3445418}],"title":"15号线","status":0,"filterType":0},{"siteList":[{"value":-17,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":13799,"status":0,"text":"龙阳路","lng":121.5576695,"lat":31.2019866},{"value":13798,"status":0,"text":"华夏中路","lng":121.5834235,"lat":31.1750307},{"value":5469,"status":0,"text":"罗山路","lng":121.5932197,"lat":31.1532854},{"value":5470,"status":0,"text":"周浦东","lng":121.6069412,"lat":31.1100787},{"value":5471,"status":0,"text":"鹤沙航城","lng":121.6112109,"lat":31.0777297},{"value":5472,"status":0,"text":"航头东","lng":121.6174756,"lat":31.0550585},{"value":5473,"status":0,"text":"新场","lng":121.6487718,"lat":31.0455173},{"value":5474,"status":0,"text":"野生动物园","lng":121.699753,"lat":31.0502254},{"value":5475,"status":0,"text":"惠南","lng":121.7619329,"lat":31.0538135},{"value":5476,"status":0,"text":"惠南东","lng":121.7933049,"lat":31.0264236},{"value":5477,"status":0,"text":"书院","lng":121.850639,"lat":30.9593255},{"value":5478,"status":0,"text":"临港大道","lng":121.9103453,"lat":30.9240392},{"value":5479,"status":0,"text":"滴水湖","lng":121.9295762,"lat":30.9070813}],"title":"16号线","status":0,"filterType":0},{"siteList":[{"value":-18,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":16793,"status":0,"text":"虹桥火车站","lng":121.321561,"lat":31.1939526},{"value":16794,"status":0,"text":"诸光路","lng":121.2931884,"lat":31.191812},{"value":16795,"status":0,"text":"蟠龙路","lng":121.2794785,"lat":31.187028},{"value":16796,"status":0,"text":"徐盈路","lng":121.2546136,"lat":31.1786743},{"value":16797,"status":0,"text":"徐泾北城","lng":121.2418491,"lat":31.1754778},{"value":16798,"status":0,"text":"嘉松中路","lng":121.2248655,"lat":31.1639063},{"value":16799,"status":0,"text":"赵巷","lng":121.1923393,"lat":31.1611165},{"value":16800,"status":0,"text":"汇金路","lng":121.1517892,"lat":31.1612402},{"value":16801,"status":0,"text":"青浦新城","lng":121.1251532,"lat":31.1587738},{"value":16802,"status":0,"text":"漕盈路","lng":121.0962859,"lat":31.1603942},{"value":16803,"status":0,"text":"淀山湖大道","lng":121.0821236,"lat":31.1343735},{"value":16804,"status":0,"text":"朱家角","lng":121.0502561,"lat":31.1009924},{"value":16805,"status":0,"text":"东方绿舟","lng":121.0196839,"lat":31.098516}],"title":"17号线","status":0,"filterType":0},{"siteList":[{"value":-20,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":19596,"status":0,"text":"长江南路","lng":121.4906457,"lat":31.3320556},{"value":19597,"status":0,"text":"殷高路","lng":121.4955772,"lat":31.3215908},{"value":19598,"status":0,"text":"上海财经大学","lng":121.4962894,"lat":31.3080259},{"value":19599,"status":0,"text":"复旦大学","lng":121.4999406,"lat":31.2962723},{"value":19600,"status":0,"text":"国权路","lng":121.5104092,"lat":31.2893681},{"value":19601,"status":0,"text":"抚顺路","lng":121.5157046,"lat":31.2839952},{"value":19602,"status":0,"text":"江浦路","lng":121.5187008,"lat":31.274161},{"value":19603,"status":0,"text":"江浦公园","lng":121.5235436,"lat":31.2647016},{"value":19604,"status":0,"text":"平凉路","lng":121.5269338,"lat":31.2587616},{"value":19605,"status":0,"text":"丹阳路","lng":121.5317115,"lat":31.2530256},{"value":19606,"status":0,"text":"昌邑路","lng":121.5400426,"lat":31.2439378},{"value":19607,"status":0,"text":"民生路","lng":121.5440242,"lat":31.2356266},{"value":19608,"status":0,"text":"杨高中路","lng":121.5487034,"lat":31.227372},{"value":19609,"status":0,"text":"迎春路","lng":121.5512566,"lat":31.220643},{"value":19610,"status":0,"text":"龙阳路","lng":121.5573699,"lat":31.2023613},{"value":19611,"status":0,"text":"芳芯路","lng":121.5593121,"lat":31.1908688},{"value":19612,"status":0,"text":"北中路","lng":121.5613884,"lat":31.182626},{"value":19613,"status":0,"text":"莲溪路","lng":121.5661882,"lat":31.1692226},{"value":19048,"status":0,"text":"御桥","lng":121.5710046,"lat":31.1582733},{"value":19049,"status":0,"text":"康桥","lng":121.5673416,"lat":31.134514},{"value":19050,"status":0,"text":"周浦","lng":121.5677769,"lat":31.1135698},{"value":19051,"status":0,"text":"繁荣路","lng":121.5704276,"lat":31.103275},{"value":19052,"status":0,"text":"沈梅路","lng":121.5790391,"lat":31.0922253},{"value":19053,"status":0,"text":"鹤涛路","lng":121.5859875,"lat":31.0718954},{"value":19054,"status":0,"text":"下沙","lng":121.5888543,"lat":31.0553224},{"value":19055,"status":0,"text":"航头","lng":121.5973825,"lat":31.0337712}],"title":"18号线","status":0,"filterType":0},{"siteList":[{"value":-13,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":4377,"status":0,"text":"龙阳路","lng":121.5573087,"lat":31.2025584},{"value":4378,"status":0,"text":"浦东国际机场","lng":121.8061238,"lat":31.1499902}],"title":"磁悬浮","status":0,"filterType":0},{"siteList":[{"value":-19,"status":0,"text":"所有车站","lng":0,"lat":0},{"value":17180,"status":0,"text":"沈杜公路","lng":121.5123159,"lat":31.0613988},{"value":17181,"status":0,"text":"三鲁公路","lng":121.5275123,"lat":31.0561022},{"value":17182,"status":0,"text":"闵瑞路","lng":121.5303891,"lat":31.0484719},{"value":17183,"status":0,"text":"浦航路","lng":121.5306222,"lat":31.0410189},{"value":17184,"status":0,"text":"东城一路","lng":121.5322797,"lat":31.0299614},{"value":17185,"status":0,"text":"汇臻路","lng":121.5248786,"lat":31.0252506}],"title":"浦江线","status":0,"filterType":0}],"title":"地铁"},"landmarks":{"list":[{"value":4189898,"status":0,"text":"外滩","lng":121.4906033,"lat":31.2377705,"filterType":0},{"value":4190189,"status":0,"text":"南京路步行街","lng":121.4841186,"lat":31.2374731,"filterType":0},{"value":4190012,"status":0,"text":"人民广场","lng":121.4761616,"lat":31.2296694,"filterType":0},{"value":15096486,"status":0,"text":"陆家嘴","lng":121.5243898,"lat":31.2290097,"filterType":0},{"value":4190023,"status":0,"text":"上海新国际博览中心","lng":121.5680613,"lat":31.2103481,"filterType":0},{"value":4558399,"status":0,"text":"国家会展中心","lng":121.3021469,"lat":31.1900005,"filterType":0},{"value":4189952,"status":0,"text":"滴水湖","lng":121.941732,"lat":30.892537,"filterType":0},{"value":4189897,"status":0,"text":"东方明珠","lng":121.4997392,"lat":31.2397773,"filterType":0},{"value":10747267,"status":0,"text":"上海海昌海洋公园","lng":121.9043587,"lat":30.9147018,"filterType":0},{"value":4189937,"status":0,"text":"静安寺","lng":121.445167,"lat":31.2235908,"filterType":0},{"value":4248649,"status":0,"text":"梅赛德斯奔驰文化中心","lng":121.4932871,"lat":31.1887145,"filterType":0},{"value":4189902,"status":0,"text":"朱家角古镇景区","lng":121.053861,"lat":31.109856,"filterType":0},{"value":4189901,"status":0,"text":"新天地","lng":121.474704,"lat":31.221249,"filterType":0},{"value":4189906,"status":0,"text":"上海野生动物园","lng":121.7214609,"lat":31.0555915,"filterType":0},{"value":4346045,"status":0,"text":"上海世博展览馆","lng":121.489967,"lat":31.182755,"filterType":0},{"value":4189963,"status":0,"text":"上海自然博物馆","lng":121.462694,"lat":31.2349519,"filterType":0},{"value":4190003,"status":0,"text":"武康路","lng":121.4399457,"lat":31.207255,"filterType":0},{"value":4190065,"status":0,"text":"长兴岛","lng":121.7339993,"lat":31.3803008,"filterType":0},{"value":4189948,"status":0,"text":"豫园","lng":121.4924843,"lat":31.2267635,"filterType":0},{"value":4189996,"status":0,"text":"佘山国家森林公园","lng":121.196758,"lat":31.094523,"filterType":0},{"value":7712176,"status":0,"text":"迪士尼小镇","lng":121.662433,"lat":31.139847,"filterType":0},{"value":411306,"status":0,"text":"松江大学城","lng":121.1965649,"lat":31.0495266,"filterType":0},{"value":10750626,"status":0,"text":"上海天文馆","lng":121.9260142,"lat":30.9122176,"filterType":0},{"value":14722365,"status":0,"text":"南京西路","lng":121.453401,"lat":31.226794,"filterType":0},{"value":10219156,"status":0,"text":"上海国际会展中心","lng":121.3019642,"lat":31.1898951,"filterType":0},{"value":4189959,"status":0,"text":"东方绿舟景区","lng":121.0105373,"lat":31.1090123,"filterType":0},{"value":23185706,"status":0,"text":"城隍庙旅游区","lng":121.4913904,"lat":31.22672,"filterType":0},{"value":6680655,"status":0,"text":"上海中心大厦","lng":121.5054257,"lat":31.2335156,"filterType":0},{"value":4189942,"status":0,"text":"淮海路","lng":121.4696844,"lat":31.2187711,"filterType":0},{"value":2379863,"status":0,"text":"太阳岛旅游度假区","lng":121.0729888,"lat":31.0366765,"filterType":0}],"title":"景点"},"zones":{"list":[{"content":"35.2%","occupancy":"35.2%旅客选择","text":"迪士尼度假区","status":0,"value":13775,"lng":121.66833,"lat":31.141367,"filterType":0},{"content":"9.4%","occupancy":"9.4%旅客选择","text":"人民广场地区","status":0,"value":28,"lng":121.47379,"lat":31.235197,"filterType":0},{"content":"8.0%","occupancy":"8.0%旅客选择","text":"静安寺/南京西路","status":0,"value":16,"lng":121.44535,"lat":31.223452,"filterType":0},{"content":"7.3%","occupancy":"7.3%旅客选择","text":"虹桥地区","status":0,"value":4,"lng":121.40103,"lat":31.201885,"filterType":0},{"content":"7.2%","occupancy":"7.2%旅客选择","text":"上海火车站地区","status":0,"value":19,"lng":121.45522,"lat":31.248682,"filterType":0},{"content":"6.0%","occupancy":"6.0%旅客选择","text":"外滩核心区","status":0,"value":118,"lng":121.48942,"lat":31.23915,"filterType":0},{"content":"5.9%","occupancy":"5.9%旅客选择","text":"新国际博览中心/世博园","status":0,"value":379,"lng":121.566734,"lat":31.208963,"filterType":0},{"content":"3.5%","occupancy":"3.5%旅客选择","text":"徐家汇地区","status":0,"value":7,"lng":121.4383,"lat":31.192663,"filterType":0},{"content":"2.6%","occupancy":"2.6%旅客选择","text":"浦东陆家嘴金融贸易区","status":0,"value":22,"lng":121.50583,"lat":31.235254,"filterType":0},{"content":"2.2%","occupancy":"2.2%旅客选择","text":"中山公园商业区","status":0,"value":762,"lng":121.42032,"lat":31.22094,"filterType":0},{"content":"1.9%","occupancy":"1.9%旅客选择","text":"上海火车南站地区","status":0,"value":363,"lng":121.42949,"lat":31.153305,"filterType":0},{"content":"1.5%","occupancy":"1.5%旅客选择","text":"豫园地区","status":0,"value":983,"lng":121.492294,"lat":31.226807,"filterType":0},{"content":"1.0%","occupancy":"1.0%旅客选择","text":"淮海路/新天地地区","status":0,"value":14,"lng":121.47357,"lat":31.223528,"filterType":0},{"content":"1.0%","occupancy":"1.0%旅客选择","text":"北外滩地区","status":0,"value":369,"lng":121.498184,"lat":31.247873,"filterType":0},{"text":"长寿路商业区","status":0,"value":981,"lng":121.43735,"lat":31.23953,"filterType":0},{"text":"浦东金桥地区","status":0,"value":359,"lng":121.57948,"lat":31.25634,"filterType":0},{"text":"滴水湖临港地区","status":0,"value":2878,"lng":121.93725,"lat":30.89087,"filterType":0},{"text":"打浦桥地区","status":0,"value":988,"lng":121.467735,"lat":31.205563,"filterType":0},{"text":"崇明岛/长兴岛/横沙岛","status":0,"value":1052,"lng":121.396645,"lat":31.626125,"filterType":0},{"text":"衡山路地区","status":0,"value":989,"lng":121.44664,"lat":31.205551,"filterType":0},{"text":"浦江镇地区","status":0,"value":1013,"lng":121.50858,"lat":31.083754,"filterType":0},{"text":"金山城市沙滩地区","status":0,"value":991,"lng":121.35093,"lat":30.710747,"filterType":0},{"text":"四川北路商业区","status":0,"value":26,"lng":121.4808,"lat":31.271315,"filterType":0},{"text":"顾村公园地区","status":0,"value":994,"lng":121.38509,"lat":31.34769,"filterType":0},{"text":"长风公园地区","status":0,"value":986,"lng":121.39983,"lat":31.227432,"filterType":0},{"text":"嘉定新城","status":0,"value":846,"lng":121.225174,"lat":31.337336,"filterType":0},{"text":"佘山/松江大学城","status":0,"value":841,"lng":121.22081,"lat":31.037323,"filterType":0},{"text":"浦东外高桥地区","status":0,"value":358,"lng":121.59414,"lat":31.335155,"filterType":0},{"text":"江湾/五角场商业区","status":0,"value":368,"lng":121.512985,"lat":31.300919,"filterType":0},{"text":"前滩","status":0,"value":81914174,"lng":121.4882,"lat":31.158302,"filterType":0},{"text":"虹桥机场/国家会展中心","status":0,"value":687,"lng":121.33209,"lat":31.193201,"filterType":0},{"text":"虹桥枢纽周边区","status":0,"value":13812,"lng":121.23491,"lat":31.162664,"filterType":0},{"text":"七宝古镇","status":0,"value":842,"lng":121.3537,"lat":31.154041,"filterType":0},{"text":"大宁国际商业区","status":0,"value":366,"lng":121.45135,"lat":31.278809,"filterType":0},{"text":"浦东张江地区","status":0,"value":360,"lng":121.608116,"lat":31.194023,"filterType":0},{"text":"周浦康桥地区","status":0,"value":13784,"lng":121.581665,"lat":31.12003,"filterType":0},{"text":"浦东机场核心区","status":0,"value":466,"lng":121.80965,"lat":31.156584,"filterType":0},{"text":"吴淞口国际邮轮港","status":0,"value":871,"lng":121.48247,"lat":31.403646,"filterType":0},{"text":"光大会展中心/漕河泾地区","status":0,"value":987,"lng":121.42891,"lat":31.167122,"filterType":0},{"text":"青浦朱家角/东方绿舟","status":0,"value":872,"lng":121.060646,"lat":31.108816,"filterType":0},{"text":"金山枫泾古镇地区","status":0,"value":2876,"lng":121.01496,"lat":30.884094,"filterType":0},{"text":"南汇/野生动物园","status":0,"value":843,"lng":121.74948,"lat":31.048182,"filterType":0},{"text":"莘庄工业区","status":0,"value":10907,"lng":121.37826,"lat":31.107798,"filterType":0},{"text":"奉贤开发区","status":0,"value":874,"lng":121.45895,"lat":30.902805,"filterType":0},{"text":"交大/闵行经济开发区","status":0,"value":1106,"lng":121.425476,"lat":31.028246,"filterType":0}],"title":"商业区"},"features":{"list":[{"value":"1150","status":0,"text":"亲子酒店","filterType":0},{"value":"771","status":0,"text":"电竞酒店","filterType":0},{"value":"647","status":0,"text":"情侣约会","filterType":0},{"value":"1198","status":0,"text":"迷人江景","filterType":0},{"value":"643","status":0,"text":"窗外好景","filterType":0},{"value":"102","status":0,"text":"网红泳池","filterType":0},{"value":"646","status":0,"text":"温泉泡汤","filterType":0},{"value":"112","status":0,"text":"设计师酒店","filterType":0},{"value":"696","status":0,"text":"动人夜景","filterType":0},{"value":"1187","status":0,"text":"浪漫之旅","filterType":0},{"value":"644","status":0,"text":"历史名宅","filterType":0},{"value":"652","status":0,"text":"迷人海景","filterType":0},{"value":"15","status":0,"text":"园林建筑","filterType":0},{"value":"673","status":0,"text":"湖畔美居","filterType":0},{"value":"1196","status":0,"text":"田园农庄","filterType":0},{"value":"1151","status":0,"text":"露营","filterType":0},{"value":"619","status":0,"text":"拍照出片","filterType":0},{"value":"612","status":0,"text":"美食酒店","filterType":0},{"value":"704","status":0,"text":"小而美","filterType":0}],"title":"特色主题","isHot":true},"categorys":{"list":[{"value":"eyJmaWx0ZXJJZCI6IjF8OTk5OTk5OTkiLCJ0eXBlIjoiMSIsInZhbHVlIjoiOTk5OTk5OTkiLCJzdWJUeXBlIjoiMiIsImNoaWxkVmFsdWUiOiIiLCJwcm9wZXJ0eVZhbHVlIjoiIn0=","status":0,"text":"钟点房","filterType":1},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR180OTciLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjQ5NyIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"度假村","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR180OTkiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjQ5OSIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"旅馆","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MDMiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUwMyIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"家庭旅馆","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MDUiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUwNSIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"酒店公寓","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MDYiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUwNiIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"客栈","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MDciLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUwNyIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"别墅","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MDkiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUwOSIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"农家乐","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MTAiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUxMCIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"民宿","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MTMiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUxMyIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"公寓","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MTQiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUxNCIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"度假屋","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MTciLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUxNyIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"乡村民宿","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MTkiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUxOSIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"青年旅馆","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MjAiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUyMCIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"胶囊旅馆","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MjEiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUyMSIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"特色住宿","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MjMiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUyMyIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"露营地","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR181MjQiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjUyNCIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"木屋","filterType":0},{"value":"eyJmaWx0ZXJJZCI6Ijc1fFRBR180OTUiLCJ0eXBlIjoiNzUiLCJ2YWx1ZSI6IjQ5NSIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"酒店","filterType":0}],"title":"住宿类型","isHot":true},"amenties":{"list":[{"value":"656001","status":0,"text":"免费停车","filterType":0},{"value":"124","status":0,"text":"允许携带宠物","filterType":0},{"value":"105","status":0,"text":"接送服务","filterType":0},{"value":"6050001","status":0,"text":"室内泳池","filterType":0},{"value":"656","status":0,"text":"停车场","filterType":0},{"value":"6050002","status":0,"text":"室外泳池","filterType":0},{"value":"42","status":0,"text":"健身房","filterType":0},{"value":"362","status":0,"text":"洗衣房","filterType":0},{"value":"681","status":0,"text":"充电桩","filterType":0},{"value":"60","status":0,"text":"穿梭机场班车","filterType":0},{"value":"198","status":0,"text":"厨房","filterType":0},{"value":"6","status":0,"text":"会议设施","filterType":0},{"value":"24","status":0,"text":"棋牌室","filterType":0},{"value":"65","status":0,"text":"SPA","filterType":0},{"value":"15","status":0,"text":"洗衣服务","filterType":0},{"value":"97","status":0,"text":"行李寄存","filterType":0},{"value":"142","status":0,"text":"吸烟区","filterType":0},{"value":"147","status":0,"text":"餐厅","filterType":0},{"value":"110","status":0,"text":"电梯","filterType":0},{"value":"5","status":0,"text":"酒吧","filterType":0},{"value":"140","status":0,"text":"24小时前台","filterType":0},{"value":"8","status":0,"text":"商务中心","filterType":0},{"value":"19","status":0,"text":"无障碍客房","filterType":0},{"value":"98","status":0,"text":"叫醒服务","filterType":0},{"value":"149","status":0,"text":"代客泊车","filterType":0},{"value":"264001","status":0,"text":"免费WiFi上网","filterType":0},{"value":"655001","status":0,"text":"免费有线宽带","filterType":0}],"title":"酒店设施","isHot":true},"airportTrainstations":{"list":[{"value":1274799,"status":0,"text":"浦东国际机场","lng":121.8086851,"lat":31.1511517,"type":"AIRPORT","filterType":0},{"value":1646717,"status":0,"text":"上海虹桥站","lng":121.320876,"lat":31.194237,"type":"TRAINSTATION","filterType":0},{"value":1274819,"status":0,"text":"虹桥国际机场","lng":121.3403651,"lat":31.1971709,"type":"AIRPORT","filterType":0},{"value":1974396,"status":0,"text":"上海站","lng":121.455148,"lat":31.248732,"type":"TRAINSTATION","filterType":0},{"value":2467534,"status":0,"text":"上海南站","lng":121.429489,"lat":31.153304,"type":"TRAINSTATION","filterType":0},{"value":2467541,"status":0,"text":"上海西站","lng":121.402728,"lat":31.262721,"type":"TRAINSTATION","filterType":0},{"value":2467539,"status":0,"text":"松江南站","lng":121.229999,"lat":30.983384,"type":"TRAINSTATION","filterType":0},{"value":2467545,"status":0,"text":"金山北站","lng":121.089579,"lat":30.894218,"type":"TRAINSTATION","filterType":0},{"value":416882,"status":0,"text":"松江站","lng":121.227757,"lat":30.9999,"type":"TRAINSTATION","filterType":0},{"value":2467671,"status":0,"text":"安亭北站","lng":121.158305,"lat":31.31446,"type":"TRAINSTATION","filterType":0},{"value":27238285,"status":0,"text":"金山卫站","lng":121.3636152,"lat":30.728141,"type":"TRAINSTATION","filterType":0},{"value":413398,"status":0,"text":"南翔北站","lng":121.309254,"lat":31.281559,"type":"TRAINSTATION","filterType":0},{"value":27219033,"status":0,"text":"安亭西站","lng":121.1562718,"lat":31.3116178,"type":"TRAINSTATION","filterType":0},{"value":27242033,"status":0,"text":"芦潮港站","lng":121.8509545,"lat":30.8851246,"type":"TRAINSTATION","filterType":0},{"value":2467537,"status":0,"text":"海湾站","lng":121.548122,"lat":30.861826,"type":"TRAINSTATION","filterType":0}],"title":"机场车站"},"brands":{"list":[{"text":"华美达","status":0,"value":"2|1","type":"BRAND","filterType":0},{"text":"豪生","status":0,"value":"2|2","type":"BRAND","filterType":0},{"text":"诺富特","status":0,"value":"2|5","type":"BRAND","filterType":0},{"text":"索菲特","status":0,"value":"2|6","type":"BRAND","filterType":0},{"text":"铂尔曼","status":0,"value":"2|7","type":"BRAND","filterType":0},{"text":"希尔顿","status":0,"value":"2|10","type":"BRAND","filterType":0},{"text":"康莱德","status":0,"value":"2|11","type":"BRAND","filterType":0},{"text":"JW万豪","status":0,"value":"2|16","type":"BRAND","filterType":0},{"text":"丽思卡尔顿","status":0,"value":"2|17","type":"BRAND","filterType":0},{"text":"万豪","status":0,"value":"2|18","type":"BRAND","filterType":0},{"text":"万丽","status":0,"value":"2|19","type":"BRAND","filterType":0},{"text":"万怡","status":0,"value":"2|20","type":"BRAND","filterType":0},{"text":"假日","status":0,"value":"2|21","type":"BRAND","filterType":0},{"text":"智选假日","status":0,"value":"2|22","type":"BRAND","filterType":0},{"text":"皇冠假日酒店及度假村","status":0,"value":"2|23","type":"BRAND","filterType":0},{"text":"洲际酒店及度假村","status":0,"value":"2|24","type":"BRAND","filterType":0},{"text":"君悦","status":0,"value":"2|25","type":"BRAND","filterType":0},{"text":"凯悦酒店","status":0,"value":"2|26","type":"BRAND","filterType":0},{"text":"柏悦","status":0,"value":"2|27","type":"BRAND","filterType":0},{"text":"温德姆","status":0,"value":"2|28","type":"BRAND","filterType":0},{"text":"希尔顿逸林","status":0,"value":"2|32","type":"BRAND","filterType":0},{"text":"香格里拉","status":0,"value":"2|35","type":"BRAND","filterType":0},{"text":"美爵","status":0,"value":"2|37","type":"BRAND","filterType":0},{"text":"华尔道夫","status":0,"value":"2|41","type":"BRAND","filterType":0},{"text":"英迪格","status":0,"value":"2|42","type":"BRAND","filterType":0},{"text":"汉庭","status":0,"value":"2|48","type":"BRAND","filterType":0},{"text":"全季","status":0,"value":"2|49","type":"BRAND","filterType":0},{"text":"嘉里","status":0,"value":"2|55","type":"BRAND","filterType":0},{"text":"安达仕","status":0,"value":"2|56","type":"BRAND","filterType":0},{"text":"丽笙","status":0,"value":"2|70","type":"BRAND","filterType":0},{"text":"朗廷酒店及度假酒店","status":0,"value":"2|75","type":"BRAND","filterType":0},{"text":"千禧","status":0,"value":"2|77","type":"BRAND","filterType":0},{"text":"盛捷","status":0,"value":"2|82","type":"BRAND","filterType":0},{"text":"雅诗阁","status":0,"value":"2|83","type":"BRAND","filterType":0},{"text":"馨乐庭","status":0,"value":"2|101","type":"BRAND","filterType":0},{"text":"海友","status":0,"value":"2|105","type":"BRAND","filterType":0},{"text":"如家","status":0,"value":"2|110","type":"BRAND","filterType":0},{"text":"和颐","status":0,"value":"2|111","type":"BRAND","filterType":0},{"text":"希尔顿花园酒店","status":0,"value":"2|119","type":"BRAND","filterType":0},{"text":"希尔顿欢朋酒店","status":0,"value":"2|120","type":"BRAND","filterType":0},{"text":"艾迪逊","status":0,"value":"2|126","type":"BRAND","filterType":0},{"text":"君澜大饭店","status":0,"value":"2|134","type":"BRAND","filterType":0},{"text":"维景","status":0,"value":"2|135","type":"BRAND","filterType":0},{"text":"金陵","status":0,"value":"2|136","type":"BRAND","filterType":0},{"text":"锦江","status":0,"value":"2|138","type":"BRAND","filterType":0},{"text":"君澜度假酒店","status":0,"value":"2|143","type":"BRAND","filterType":0},{"text":"大仓","status":0,"value":"2|154","type":"BRAND","filterType":0},{"text":"衡山","status":0,"value":"2|158","type":"BRAND","filterType":0},{"text":"布丁","status":0,"value":"2|160","type":"BRAND","filterType":0},{"text":"卓美亚","status":0,"value":"2|161","type":"BRAND","filterType":0},{"text":"半岛","status":0,"value":"2|162","type":"BRAND","filterType":0},{"text":"文华东方","status":0,"value":"2|165","type":"BRAND","filterType":0},{"text":"凯宾斯基","status":0,"value":"2|166","type":"BRAND","filterType":0},{"text":"格林豪泰","status":0,"value":"2|168","type":"BRAND","filterType":0},{"text":"中南海滨","status":0,"value":"2|171","type":"BRAND","filterType":0},{"text":"星河湾","status":0,"value":"2|176","type":"BRAND","filterType":0},{"text":"易佰","status":0,"value":"2|187","type":"BRAND","filterType":0},{"text":"锐思特","status":0,"value":"2|188","type":"BRAND","filterType":0},{"text":"清沐","status":0,"value":"2|348","type":"BRAND","filterType":0},{"text":"中油阳光","status":0,"value":"2|352","type":"BRAND","filterType":0},{"text":"格兰云天","status":0,"value":"2|355","type":"BRAND","filterType":0},{"text":"尊茂","status":0,"value":"2|358","type":"BRAND","filterType":0},{"text":"漫心","status":0,"value":"2|362","type":"BRAND","filterType":0},{"text":"日航","status":0,"value":"2|363","type":"BRAND","filterType":0},{"text":"美高梅","status":0,"value":"2|366","type":"BRAND","filterType":0},{"text":"迪士尼","status":0,"value":"2|367","type":"BRAND","filterType":0},{"text":"邦臣","status":0,"value":"2|375","type":"BRAND","filterType":0},{"text":"富豪","status":0,"value":"2|377","type":"BRAND","filterType":0},{"text":"宝格丽","status":0,"value":"2|380","type":"BRAND","filterType":0},{"text":"99旅馆","status":0,"value":"2|390","type":"BRAND","filterType":0},{"text":"城市便捷","status":0,"value":"2|397","type":"BRAND","filterType":0},{"text":"尚客优","status":0,"value":"2|436","type":"BRAND","filterType":0},{"text":"骏怡","status":0,"value":"2|437","type":"BRAND","filterType":0},{"text":"佰翔","status":0,"value":"2|439","type":"BRAND","filterType":0},{"text":"远洲","status":0,"value":"2|441","type":"BRAND","filterType":0},{"text":"凯莱酒店","status":0,"value":"2|503","type":"BRAND","filterType":0},{"text":"安缦","status":0,"value":"2|582","type":"BRAND","filterType":0},{"text":"海逸","status":0,"value":"2|583","type":"BRAND","filterType":0},{"text":"辉盛阁","status":0,"value":"2|584","type":"BRAND","filterType":0},{"text":"名致","status":0,"value":"2|589","type":"BRAND","filterType":0},{"text":"锦江都城","status":0,"value":"2|593","type":"BRAND","filterType":0},{"text":"MOXY","status":0,"value":"2|600","type":"BRAND","filterType":0},{"text":"禧玥","status":0,"value":"2|602","type":"BRAND","filterType":0},{"text":"美利亚","status":0,"value":"2|618","type":"BRAND","filterType":0},{"text":"华邑酒店及度假村","status":0,"value":"2|619","type":"BRAND","filterType":0},{"text":"亚朵","status":0,"value":"2|631","type":"BRAND","filterType":0},{"text":"智尚","status":0,"value":"2|641","type":"BRAND","filterType":0},{"text":"怡莱","status":0,"value":"2|664","type":"BRAND","filterType":0},{"text":"星程","status":0,"value":"2|694","type":"BRAND","filterType":0},{"text":"Radisson Blu","status":0,"value":"2|707","type":"BRAND","filterType":0},{"text":"丽笙精选","status":0,"value":"2|708","type":"BRAND","filterType":0},{"text":"如家精选","status":0,"value":"2|756","type":"BRAND","filterType":0},{"text":"康得思","status":0,"value":"2|768","type":"BRAND","filterType":0},{"text":"德尔塔","status":0,"value":"2|770","type":"BRAND","filterType":0},{"text":"万达瑞华","status":0,"value":"2|776","type":"BRAND","filterType":0},{"text":"隐居","status":0,"value":"2|806","type":"BRAND","filterType":0},{"text":"精途","status":0,"value":"2|808","type":"BRAND","filterType":0},{"text":"宜尚","status":0,"value":"2|810","type":"BRAND","filterType":0},{"text":"粤海国际","status":0,"value":"2|830","type":"BRAND","filterType":0},{"text":"开元名都","status":0,"value":"2|835","type":"BRAND","filterType":0},{"text":"99优选","status":0,"value":"2|843","type":"BRAND","filterType":0},{"text":"派柏","status":0,"value":"2|861","type":"BRAND","filterType":0},{"text":"睿柏","status":0,"value":"2|862","type":"BRAND","filterType":0},{"text":"素柏","status":0,"value":"2|863","type":"BRAND","filterType":0},{"text":"都市花园","status":0,"value":"2|864","type":"BRAND","filterType":0},{"text":"雅阁","status":0,"value":"2|873","type":"BRAND","filterType":0},{"text":"格林东方","status":0,"value":"2|884","type":"BRAND","filterType":0},{"text":"驿居","status":0,"value":"2|897","type":"BRAND","filterType":0},{"text":"华驿易居","status":0,"value":"2|898","type":"BRAND","filterType":0},{"text":"华驿酒店","status":0,"value":"2|899","type":"BRAND","filterType":0},{"text":"华驿精选","status":0,"value":"2|900","type":"BRAND","filterType":0},{"text":"如家商旅","status":0,"value":"2|912","type":"BRAND","filterType":0},{"text":"开元名庭","status":0,"value":"2|930","type":"BRAND","filterType":0},{"text":"云上四季","status":0,"value":"2|933","type":"BRAND","filterType":0},{"text":"花筑","status":0,"value":"2|948","type":"BRAND","filterType":0},{"text":"凯悦嘉轩","status":0,"value":"2|961","type":"BRAND","filterType":0},{"text":"凯悦嘉寓","status":0,"value":"2|962","type":"BRAND","filterType":0},{"text":"柏曼","status":0,"value":"2|968","type":"BRAND","filterType":0},{"text":"格盟","status":0,"value":"2|1015","type":"BRAND","filterType":0},{"text":"青皮树","status":0,"value":"2|1016","type":"BRAND","filterType":0},{"text":"YUNIK","status":0,"value":"2|1025","type":"BRAND","filterType":0},{"text":"费尔蒙","status":0,"value":"2|1034","type":"BRAND","filterType":0},{"text":"瑞士","status":0,"value":"2|1036","type":"BRAND","filterType":0},{"text":"欢墅","status":0,"value":"2|1037","type":"BRAND","filterType":0},{"text":"宝丽嘉","status":0,"value":"2|1052","type":"BRAND","filterType":0},{"text":"璞富腾","status":0,"value":"2|1061","type":"BRAND","filterType":0},{"text":"万枫","status":0,"value":"2|1087","type":"BRAND","filterType":0},{"text":"CitiGO","status":0,"value":"2|1093","type":"BRAND","filterType":0},{"text":"君亭酒店","status":0,"value":"2|1112","type":"BRAND","filterType":0},{"text":"时光漫步","status":0,"value":"2|1113","type":"BRAND","filterType":0},{"text":"贝壳","status":0,"value":"2|1122","type":"BRAND","filterType":0},{"text":"Q加·舒适","status":0,"value":"2|1134","type":"BRAND","filterType":0},{"text":"宜必思","status":0,"value":"2|1137","type":"BRAND","filterType":0},{"text":"宜必思尚品","status":0,"value":"2|1139","type":"BRAND","filterType":0},{"text":"莫泰","status":0,"value":"2|1147","type":"BRAND","filterType":0},{"text":"开元·颐居","status":0,"value":"2|1148","type":"BRAND","filterType":0},{"text":"汉庭优佳","status":0,"value":"2|1149","type":"BRAND","filterType":0},{"text":"海上凤凰","status":0,"value":"2|1154","type":"BRAND","filterType":0},{"text":"万信","status":0,"value":"2|1155","type":"BRAND","filterType":0},{"text":"万信慧选","status":0,"value":"2|1157","type":"BRAND","filterType":0},{"text":"W酒店","status":0,"value":"2|1160","type":"BRAND","filterType":0},{"text":"艾美","status":0,"value":"2|1161","type":"BRAND","filterType":0},{"text":"福朋","status":0,"value":"2|1162","type":"BRAND","filterType":0},{"text":"豪华精选","status":0,"value":"2|1163","type":"BRAND","filterType":0},{"text":"瑞吉","status":0,"value":"2|1164","type":"BRAND","filterType":0},{"text":"威斯汀","status":0,"value":"2|1165","type":"BRAND","filterType":0},{"text":"喜来登","status":0,"value":"2|1166","type":"BRAND","filterType":0},{"text":"雅乐轩","status":0,"value":"2|1167","type":"BRAND","filterType":0},{"text":"臻品之选","status":0,"value":"2|1169","type":"BRAND","filterType":0},{"text":"柏丽艾尚","status":0,"value":"2|1182","type":"BRAND","filterType":0},{"text":"格美","status":0,"value":"2|1183","type":"BRAND","filterType":0},{"text":"格菲","status":0,"value":"2|1184","type":"BRAND","filterType":0},{"text":"格雅","status":0,"value":"2|1185","type":"BRAND","filterType":0},{"text":"璞隐","status":0,"value":"2|1187","type":"BRAND","filterType":0},{"text":"扉缦","status":0,"value":"2|1188","type":"BRAND","filterType":0},{"text":"悦榕庄","status":0,"value":"2|1190","type":"BRAND","filterType":0},{"text":"H酒店","status":0,"value":"2|1193","type":"BRAND","filterType":0},{"text":"途客中国","status":0,"value":"2|1197","type":"BRAND","filterType":0},{"text":"尚客优精选","status":0,"value":"2|1202","type":"BRAND","filterType":0},{"text":"骏怡精选","status":0,"value":"2|1203","type":"BRAND","filterType":0},{"text":"兰欧","status":0,"value":"2|1204","type":"BRAND","filterType":0},{"text":"丽呈","status":0,"value":"2|1208","type":"BRAND","filterType":0},{"text":"丽晶","status":0,"value":"2|1214","type":"BRAND","filterType":0},{"text":"有家民宿","status":0,"value":"2|1216","type":"BRAND","filterType":0},{"text":"木莲庄","status":0,"value":"2|1226","type":"BRAND","filterType":0},{"text":"居舍系列","status":0,"value":"2|1234","type":"BRAND","filterType":0},{"text":"榴莲小星","status":0,"value":"2|1236","type":"BRAND","filterType":0},{"text":"逸衡酒店","status":0,"value":"2|1262","type":"BRAND","filterType":0},{"text":"金普顿","status":0,"value":"2|1267","type":"BRAND","filterType":0},{"text":"丽筠","status":0,"value":"2|1278","type":"BRAND","filterType":0},{"text":"曙光薇酒店","status":0,"value":"2|1288","type":"BRAND","filterType":0},{"text":"速8","status":0,"value":"2|1304","type":"BRAND","filterType":0},{"text":"秋果","status":0,"value":"2|1308","type":"BRAND","filterType":0},{"text":"嘉佩乐","status":0,"value":"2|1312","type":"BRAND","filterType":0},{"text":"青季","status":0,"value":"2|1323","type":"BRAND","filterType":0},{"text":"格林公寓","status":0,"value":"2|1335","type":"BRAND","filterType":0},{"text":"布丁严选","status":0,"value":"2|1352","type":"BRAND","filterType":0},{"text":"布丁精选","status":0,"value":"2|1353","type":"BRAND","filterType":0},{"text":"花间堂","status":0,"value":"2|1361","type":"BRAND","filterType":0},{"text":"AA连锁酒店","status":0,"value":"2|1363","type":"BRAND","filterType":0},{"text":"OYO酒店","status":0,"value":"2|1375","type":"BRAND","filterType":0},{"text":"城家高级公寓","status":0,"value":"2|1398","type":"BRAND","filterType":0},{"text":"怡莱精品","status":0,"value":"2|1426","type":"BRAND","filterType":0},{"text":"丽呈别院","status":0,"value":"2|1428","type":"BRAND","filterType":0},{"text":"丽呈睿轩","status":0,"value":"2|1429","type":"BRAND","filterType":0},{"text":"丽呈東谷","status":0,"value":"2|1430","type":"BRAND","filterType":0},{"text":"诗柏","status":0,"value":"2|1435","type":"BRAND","filterType":0},{"text":"宜尚PLUS","status":0,"value":"2|1479","type":"BRAND","filterType":0},{"text":"美仑","status":0,"value":"2|1510","type":"BRAND","filterType":0},{"text":"桔子水晶","status":0,"value":"2|1541","type":"BRAND","filterType":0},{"text":"桔子酒店","status":0,"value":"2|1542","type":"BRAND","filterType":0},{"text":"建国铂萃","status":0,"value":"2|1561","type":"BRAND","filterType":0},{"text":"铂瑞酒店","status":0,"value":"2|1563","type":"BRAND","filterType":0},{"text":"铂骊Q酒店","status":0,"value":"2|1564","type":"BRAND","filterType":0},{"text":"铂骊酒店","status":0,"value":"2|1565","type":"BRAND","filterType":0},{"text":"铂派酒店","status":0,"value":"2|1566","type":"BRAND","filterType":0},{"text":"艾扉","status":0,"value":"2|1575","type":"BRAND","filterType":0},{"text":"有戏电影酒店","status":0,"value":"2|1577","type":"BRAND","filterType":0},{"text":"美居","status":0,"value":"2|1584","type":"BRAND","filterType":0},{"text":"万达美华","status":0,"value":"2|1591","type":"BRAND","filterType":0},{"text":"绿地酒店","status":0,"value":"2|1593","type":"BRAND","filterType":0},{"text":"逸米酒店","status":0,"value":"2|1626","type":"BRAND","filterType":0},{"text":"你好","status":0,"value":"2|1630","type":"BRAND","filterType":0},{"text":"7天","status":0,"value":"2|1638","type":"BRAND","filterType":0},{"text":"IU酒店","status":0,"value":"2|1640","type":"BRAND","filterType":0},{"text":"潮漫","status":0,"value":"2|1642","type":"BRAND","filterType":0},{"text":"麗枫","status":0,"value":"2|1644","type":"BRAND","filterType":0},{"text":"派酒店","status":0,"value":"2|1645","type":"BRAND","filterType":0},{"text":"希岸","status":0,"value":"2|1647","type":"BRAND","filterType":0},{"text":"希岸·轻雅","status":0,"value":"2|1648","type":"BRAND","filterType":0},{"text":"喆啡","status":0,"value":"2|1649","type":"BRAND","filterType":0},{"text":"7天优品","status":0,"value":"2|1650","type":"BRAND","filterType":0},{"text":"凯里亚德","status":0,"value":"2|1652","type":"BRAND","filterType":0},{"text":"康铂","status":0,"value":"2|1653","type":"BRAND","filterType":0},{"text":"丽柏酒店","status":0,"value":"2|1654","type":"BRAND","filterType":0},{"text":"欧暇·地中海","status":0,"value":"2|1655","type":"BRAND","filterType":0},{"text":"白玉兰","status":0,"value":"2|1656","type":"BRAND","filterType":0},{"text":"百时快捷","status":0,"value":"2|1657","type":"BRAND","filterType":0},{"text":"锦江之星","status":0,"value":"2|1659","type":"BRAND","filterType":0},{"text":"锦江之星品尚","status":0,"value":"2|1660","type":"BRAND","filterType":0},{"text":"维也纳智好","status":0,"value":"2|1661","type":"BRAND","filterType":0},{"text":"维也纳国际","status":0,"value":"2|1662","type":"BRAND","filterType":0},{"text":"维也纳3好","status":0,"value":"2|1663","type":"BRAND","filterType":0},{"text":"维也纳","status":0,"value":"2|1664","type":"BRAND","filterType":0},{"text":"钻石度假村集团","status":0,"value":"2|1677","type":"BRAND","filterType":0},{"text":"檀程","status":0,"value":"2|1679","type":"BRAND","filterType":0},{"text":"逸扉酒店","status":0,"value":"2|1684","type":"BRAND","filterType":0},{"text":"爱电竞","status":0,"value":"2|1685","type":"BRAND","filterType":0},{"text":"lyf","status":0,"value":"2|1694","type":"BRAND","filterType":0},{"text":"郁锦香","status":0,"value":"2|1713","type":"BRAND","filterType":0},{"text":"胜高国际酒店","status":0,"value":"2|1715","type":"BRAND","filterType":0},{"text":"城家公寓","status":0,"value":"2|1785","type":"BRAND","filterType":0},{"text":"融旅饭店","status":0,"value":"2|1794","type":"BRAND","filterType":0},{"text":"睿景","status":0,"value":"2|1857","type":"BRAND","filterType":0},{"text":"万达悦华","status":0,"value":"2|1862","type":"BRAND","filterType":0},{"text":"丽怡酒店","status":0,"value":"2|1863","type":"BRAND","filterType":0},{"text":"丽芮酒店","status":0,"value":"2|1864","type":"BRAND","filterType":0},{"text":"花筑奢","status":0,"value":"2|1870","type":"BRAND","filterType":0},{"text":"等逅","status":0,"value":"2|1875","type":"BRAND","filterType":0},{"text":"昆仑","status":0,"value":"2|1922","type":"BRAND","filterType":0},{"text":"艺悦酒店 · 精选","status":0,"value":"2|1974","type":"BRAND","filterType":0},{"text":"艺悦酒店","status":0,"value":"2|1975","type":"BRAND","filterType":0},{"text":"同派","status":0,"value":"2|2066","type":"BRAND","filterType":0},{"text":"璞硯","status":0,"value":"2|2180","type":"BRAND","filterType":0},{"text":"城际酒店","status":0,"value":"2|2194","type":"BRAND","filterType":0},{"text":"沃德","status":0,"value":"2|2247","type":"BRAND","filterType":0},{"text":"base佰舍服务式公寓","status":0,"value":"2|2314","type":"BRAND","filterType":0},{"text":"嘉虹","status":0,"value":"2|2381","type":"BRAND","filterType":0},{"text":"J酒店","status":0,"value":"2|2453","type":"BRAND","filterType":0},{"text":"云居酒店","status":0,"value":"2|2477","type":"BRAND","filterType":0},{"text":"宋品","status":0,"value":"2|2480","type":"BRAND","filterType":0},{"text":"云和夜泊","status":0,"value":"2|2498","type":"BRAND","filterType":0},{"text":"唯庭","status":0,"value":"2|2527","type":"BRAND","filterType":0},{"text":"维纳斯国际","status":0,"value":"2|2546","type":"BRAND","filterType":0},{"text":"随易住","status":0,"value":"2|2584","type":"BRAND","filterType":0},{"text":"万信至格酒店","status":0,"value":"2|2590","type":"BRAND","filterType":0},{"text":"睿选尚品","status":0,"value":"2|2670","type":"BRAND","filterType":0},{"text":"轻住酒店","status":0,"value":"2|2942","type":"BRAND","filterType":0},{"text":"格雷斯","status":0,"value":"2|2948","type":"BRAND","filterType":0},{"text":"苏宁雅悦酒店","status":0,"value":"2|2956","type":"BRAND","filterType":0},{"text":"格林电竞酒店","status":0,"value":"2|2982","type":"BRAND","filterType":0},{"text":"格丽酒店","status":0,"value":"2|2983","type":"BRAND","filterType":0},{"text":"美仑美奂","status":0,"value":"2|3019","type":"BRAND","filterType":0},{"text":"寓约电竞","status":0,"value":"2|3029","type":"BRAND","filterType":0},{"text":"清沐精选酒店","status":0,"value":"2|3066","type":"BRAND","filterType":0},{"text":"艺选安來","status":0,"value":"2|3165","type":"BRAND","filterType":0},{"text":"艺龙安悦","status":0,"value":"2|3500","type":"BRAND","filterType":0},{"text":"网鱼电竞酒店","status":0,"value":"2|3563","type":"BRAND","filterType":0},{"text":"云绯酒店","status":0,"value":"2|3615","type":"BRAND","filterType":0},{"text":"pagoda君亭设计酒店","status":0,"value":"2|3662","type":"BRAND","filterType":0},{"text":"瑞贝庭公寓酒店","status":0,"value":"2|3666","type":"BRAND","filterType":0},{"text":"MAXMA美玥酒店","status":0,"value":"2|3725","type":"BRAND","filterType":0},{"text":"奥克伍德","status":0,"value":"2|3726","type":"BRAND","filterType":0},{"text":"雅辰缇酒店","status":0,"value":"2|3828","type":"BRAND","filterType":0},{"text":"雅辰尚酒店","status":0,"value":"2|3829","type":"BRAND","filterType":0},{"text":"雅辰悦居酒店","status":0,"value":"2|3830","type":"BRAND","filterType":0},{"text":"雅辰酒店及度假村","status":0,"value":"2|3831","type":"BRAND","filterType":0},{"text":"云睿@酒店","status":0,"value":"2|3837","type":"BRAND","filterType":0},{"text":"城市之家","status":0,"value":"2|3844","type":"BRAND","filterType":0},{"text":"瑰宝酒店","status":0,"value":"2|3920","type":"BRAND","filterType":0},{"text":"云睿酒店","status":0,"value":"2|3924","type":"BRAND","filterType":0},{"text":"陶瑞","status":0,"value":"2|3932","type":"BRAND","filterType":0},{"text":"铂金万澳","status":0,"value":"2|3951","type":"BRAND","filterType":0},{"text":"舜地三和园","status":0,"value":"2|3960","type":"BRAND","filterType":0},{"text":"凯莱悦享酒店","status":0,"value":"2|4022","type":"BRAND","filterType":0},{"text":"艺选酒店","status":0,"value":"2|4062","type":"BRAND","filterType":0},{"text":"美豪雅致酒店","status":0,"value":"2|4063","type":"BRAND","filterType":0},{"text":"美豪酒店","status":0,"value":"2|4064","type":"BRAND","filterType":0},{"text":"美豪丽致酒店","status":0,"value":"2|4066","type":"BRAND","filterType":0},{"text":"美丽豪酒店","status":0,"value":"2|4067","type":"BRAND","filterType":0},{"text":"美程酒店","status":0,"value":"2|4070","type":"BRAND","filterType":0},{"text":"美程里酒店","status":0,"value":"2|4071","type":"BRAND","filterType":0},{"text":"艺龙玺程国际酒店","status":0,"value":"2|4072","type":"BRAND","filterType":0},{"text":"艺龙酒店","status":0,"value":"2|4073","type":"BRAND","filterType":0},{"text":"嘉途","status":0,"value":"2|4085","type":"BRAND","filterType":0},{"text":"曼居","status":0,"value":"2|4094","type":"BRAND","filterType":0}],"title":"品牌","isHot":true},"priceFilter":{"priceBarMax":2000,"priceBarStep":100,"priceBarMin":0,"priceHigh":-1,"priceLow":0,"title":"价格范围（¥）","filterType":1,"list":[]},"stars":{"type":"Star","title":"钻级","filterType":0,"list":[{"text":"","status":false,"value":5},{"text":"","status":false,"value":4},{"text":"","status":false,"value":3},{"text":"","status":false,"value":2}]},"priceTypes":{"list":[{"text":"每间每晚价格（不含税费）","status":0,"value":0,"filterType":0},{"text":"每间每晚价格（含税费）","status":0,"value":2,"filterType":0},{"text":"总价（含税费）","status":0,"value":1,"filterType":0}],"removeDispatch":null},"rates":{"list":[{"status":0,"value":6,"text":"؜4.8分以上"},{"status":0,"value":4,"text":"4.5分以上"},{"status":0,"value":3,"text":"4.0分以上"}],"title":"评分","filterType":0,"isHot":true},"bedTypes":{"list":[{"text":"双床房","status":0,"value":2,"filterType":1},{"text":"大床房","status":0,"value":1,"filterType":1},{"text":"三床房","status":0,"value":6,"filterType":1},{"text":"多床房","status":0,"value":5,"filterType":1},{"text":"单人床房","status":0,"value":4,"filterType":1},{"text":"特大床房","status":0,"value":3,"filterType":1}],"title":"房型","isHot":true},"payTypes":{"list":[{"text":"在线付款","status":0,"value":2,"filterType":1},{"text":"到店付款","status":0,"value":1,"filterType":1}],"title":"支付方式","isHot":true},"breakfasts":{"list":[{"text":"含早餐","status":0,"value":1,"filterType":1},{"text":"单份早餐","status":0,"value":2,"filterType":1},{"text":"双份早餐","status":0,"value":3,"filterType":1}],"title":"早餐","isHot":true},"quickFilter":{"list":[{"text":"含早餐","status":0,"value":1,"code":"breakfasts_1"},{"text":"大床房","status":0,"value":2,"code":"bedTypes_1"},{"text":"双床房","status":0,"value":3,"code":"bedTypes_2"}],"title":"常用筛选项"},"promotion":{"list":[{"value":"eyJmaWx0ZXJJZCI6IjY1fDI5NCIsInR5cGUiOiI2NSIsInZhbHVlIjoiMjk0Iiwic3ViVHlwZSI6IjIiLCJjaGlsZFZhbHVlIjoiIiwicHJvcGVydHlWYWx1ZSI6IiJ9","status":0,"text":"错峰专享","filterType":1},{"value":"eyJmaWx0ZXJJZCI6IjY1fDQ0OSIsInR5cGUiOiI2NSIsInZhbHVlIjoiNDQ5Iiwic3ViVHlwZSI6IjIiLCJjaGlsZFZhbHVlIjoiIiwicHJvcGVydHlWYWx1ZSI6IiJ9","status":0,"text":"品牌首单","filterType":1},{"value":"eyJmaWx0ZXJJZCI6IjY1fDE0IiwidHlwZSI6IjY1IiwidmFsdWUiOiIxNCIsInN1YlR5cGUiOiIyIiwiY2hpbGRWYWx1ZSI6IiIsInByb3BlcnR5VmFsdWUiOiIifQ==","status":0,"text":"超级周末","filterType":1},{"value":"eyJmaWx0ZXJJZCI6IjY1fDI5OSIsInR5cGUiOiI2NSIsInZhbHVlIjoiMjk5Iiwic3ViVHlwZSI6IjIiLCJjaGlsZFZhbHVlIjoiIiwicHJvcGVydHlWYWx1ZSI6IiJ9","status":0,"text":"节日专享","filterType":1},{"value":"eyJmaWx0ZXJJZCI6IjY1fDMwMCIsInR5cGUiOiI2NSIsInZhbHVlIjoiMzAwIiwic3ViVHlwZSI6IjIiLCJjaGlsZFZhbHVlIjoiIiwicHJvcGVydHlWYWx1ZSI6IiJ9","status":0,"text":"十亿豪补","filterType":1},{"value":"eyJmaWx0ZXJJZCI6IjY1fDI0MiIsInR5cGUiOiI2NSIsInZhbHVlIjoiMjQyIiwic3ViVHlwZSI6IjIiLCJjaGlsZFZhbHVlIjoiIiwicHJvcGVydHlWYWx1ZSI6IiJ9","status":0,"text":"超值返现","filterType":1},{"value":"eyJmaWx0ZXJJZCI6IjY1fDQ0MyIsInR5cGUiOiI2NSIsInZhbHVlIjoiNDQzIiwic3ViVHlwZSI6IjIiLCJjaGlsZFZhbHVlIjoiMzIiLCJwcm9wZXJ0eVZhbHVlIjoiIn0=","status":0,"text":"限时抢购","filterType":1}],"title":"优惠促销","isHot":true},"rateCount":{"list":[{"value":"7|500","status":0,"text":"500条以上","filterType":0},{"value":"6|200","status":0,"text":"200条以上","filterType":0},{"value":"5|100","status":0,"text":"100条以上","filterType":0}],"title":"点评数量","isHot":true},"ctripService":{"list":[{"value":"5","status":0,"text":"立即确认","filterType":1},{"value":"10","status":0,"text":"免费取消","filterType":1},{"value":"2","status":0,"text":"可订","filterType":1}],"title":"携程服务","isHot":true},"allBrands":{"list":[{"list":[{"value":"2|1","status":0,"text":"华美达","filterType":0,"type":"BRAND"},{"value":"2|2","status":0,"text":"豪生","filterType":0,"type":"BRAND"},{"value":"2|5","status":0,"text":"诺富特","filterType":0,"type":"BRAND"},{"value":"2|6","status":0,"text":"索菲特","filterType":0,"type":"BRAND"},{"value":"2|7","status":0,"text":"铂尔曼","filterType":0,"type":"BRAND"},{"value":"2|10","status":0,"text":"希尔顿","filterType":0,"type":"BRAND"},{"value":"2|11","status":0,"text":"康莱德","filterType":0,"type":"BRAND"},{"value":"2|16","status":0,"text":"JW万豪","filterType":0,"type":"BRAND"},{"value":"2|17","status":0,"text":"丽思卡尔顿","filterType":0,"type":"BRAND"},{"value":"2|18","status":0,"text":"万豪","filterType":0,"type":"BRAND"},{"value":"2|19","status":0,"text":"万丽","filterType":0,"type":"BRAND"},{"value":"2|20","status":0,"text":"万怡","filterType":0,"type":"BRAND"},{"value":"2|21","status":0,"text":"假日","filterType":0,"type":"BRAND"},{"value":"2|22","status":0,"text":"智选假日","filterType":0,"type":"BRAND"},{"value":"2|23","status":0,"text":"皇冠假日酒店及度假村","filterType":0,"type":"BRAND"},{"value":"2|24","status":0,"text":"洲际酒店及度假村","filterType":0,"type":"BRAND"},{"value":"2|25","status":0,"text":"君悦","filterType":0,"type":"BRAND"},{"value":"2|26","status":0,"text":"凯悦酒店","filterType":0,"type":"BRAND"},{"value":"2|27","status":0,"text":"柏悦","filterType":0,"type":"BRAND"},{"value":"2|28","status":0,"text":"温德姆","filterType":0,"type":"BRAND"},{"value":"2|32","status":0,"text":"希尔顿逸林","filterType":0,"type":"BRAND"},{"value":"2|35","status":0,"text":"香格里拉","filterType":0,"type":"BRAND"},{"value":"2|37","status":0,"text":"美爵","filterType":0,"type":"BRAND"},{"value":"2|41","status":0,"text":"华尔道夫","filterType":0,"type":"BRAND"},{"value":"2|42","status":0,"text":"英迪格","filterType":0,"type":"BRAND"},{"value":"2|48","status":0,"text":"汉庭","filterType":0,"type":"BRAND"},{"value":"2|49","status":0,"text":"全季","filterType":0,"type":"BRAND"},{"value":"2|55","status":0,"text":"嘉里","filterType":0,"type":"BRAND"},{"value":"2|56","status":0,"text":"安达仕","filterType":0,"type":"BRAND"},{"value":"2|70","status":0,"text":"丽笙","filterType":0,"type":"BRAND"},{"value":"2|75","status":0,"text":"朗廷酒店及度假酒店","filterType":0,"type":"BRAND"},{"value":"2|77","status":0,"text":"千禧","filterType":0,"type":"BRAND"},{"value":"2|82","status":0,"text":"盛捷","filterType":0,"type":"BRAND"},{"value":"2|83","status":0,"text":"雅诗阁","filterType":0,"type":"BRAND"},{"value":"2|101","status":0,"text":"馨乐庭","filterType":0,"type":"BRAND"},{"value":"2|105","status":0,"text":"海友","filterType":0,"type":"BRAND"},{"value":"2|110","status":0,"text":"如家","filterType":0,"type":"BRAND"},{"value":"2|111","status":0,"text":"和颐","filterType":0,"type":"BRAND"},{"value":"2|119","status":0,"text":"希尔顿花园酒店","filterType":0,"type":"BRAND"},{"value":"2|120","status":0,"text":"希尔顿欢朋酒店","filterType":0,"type":"BRAND"},{"value":"2|126","status":0,"text":"艾迪逊","filterType":0,"type":"BRAND"},{"value":"2|134","status":0,"text":"君澜大饭店","filterType":0,"type":"BRAND"},{"value":"2|135","status":0,"text":"维景","filterType":0,"type":"BRAND"},{"value":"2|136","status":0,"text":"金陵","filterType":0,"type":"BRAND"},{"value":"2|138","status":0,"text":"锦江","filterType":0,"type":"BRAND"},{"value":"2|143","status":0,"text":"君澜度假酒店","filterType":0,"type":"BRAND"},{"value":"2|154","status":0,"text":"大仓","filterType":0,"type":"BRAND"},{"value":"2|158","status":0,"text":"衡山","filterType":0,"type":"BRAND"},{"value":"2|160","status":0,"text":"布丁","filterType":0,"type":"BRAND"},{"value":"2|161","status":0,"text":"卓美亚","filterType":0,"type":"BRAND"},{"value":"2|162","status":0,"text":"半岛","filterType":0,"type":"BRAND"},{"value":"2|165","status":0,"text":"文华东方","filterType":0,"type":"BRAND"},{"value":"2|166","status":0,"text":"凯宾斯基","filterType":0,"type":"BRAND"},{"value":"2|168","status":0,"text":"格林豪泰","filterType":0,"type":"BRAND"},{"value":"2|171","status":0,"text":"中南海滨","filterType":0,"type":"BRAND"},{"value":"2|176","status":0,"text":"星河湾","filterType":0,"type":"BRAND"},{"value":"2|187","status":0,"text":"易佰","filterType":0,"type":"BRAND"},{"value":"2|188","status":0,"text":"锐思特","filterType":0,"type":"BRAND"},{"value":"2|348","status":0,"text":"清沐","filterType":0,"type":"BRAND"},{"value":"2|352","status":0,"text":"中油阳光","filterType":0,"type":"BRAND"},{"value":"2|355","status":0,"text":"格兰云天","filterType":0,"type":"BRAND"},{"value":"2|358","status":0,"text":"尊茂","filterType":0,"type":"BRAND"},{"value":"2|362","status":0,"text":"漫心","filterType":0,"type":"BRAND"},{"value":"2|363","status":0,"text":"日航","filterType":0,"type":"BRAND"},{"value":"2|366","status":0,"text":"美高梅","filterType":0,"type":"BRAND"},{"value":"2|367","status":0,"text":"迪士尼","filterType":0,"type":"BRAND"},{"value":"2|375","status":0,"text":"邦臣","filterType":0,"type":"BRAND"},{"value":"2|377","status":0,"text":"富豪","filterType":0,"type":"BRAND"},{"value":"2|380","status":0,"text":"宝格丽","filterType":0,"type":"BRAND"},{"value":"2|390","status":0,"text":"99旅馆","filterType":0,"type":"BRAND"},{"value":"2|397","status":0,"text":"城市便捷","filterType":0,"type":"BRAND"},{"value":"2|436","status":0,"text":"尚客优","filterType":0,"type":"BRAND"},{"value":"2|437","status":0,"text":"骏怡","filterType":0,"type":"BRAND"},{"value":"2|439","status":0,"text":"佰翔","filterType":0,"type":"BRAND"},{"value":"2|441","status":0,"text":"远洲","filterType":0,"type":"BRAND"},{"value":"2|503","status":0,"text":"凯莱酒店","filterType":0,"type":"BRAND"},{"value":"2|582","status":0,"text":"安缦","filterType":0,"type":"BRAND"},{"value":"2|583","status":0,"text":"海逸","filterType":0,"type":"BRAND"},{"value":"2|584","status":0,"text":"辉盛阁","filterType":0,"type":"BRAND"},{"value":"2|589","status":0,"text":"名致","filterType":0,"type":"BRAND"},{"value":"2|593","status":0,"text":"锦江都城","filterType":0,"type":"BRAND"},{"value":"2|600","status":0,"text":"MOXY","filterType":0,"type":"BRAND"},{"value":"2|602","status":0,"text":"禧玥","filterType":0,"type":"BRAND"},{"value":"2|618","status":0,"text":"美利亚","filterType":0,"type":"BRAND"},{"value":"2|619","status":0,"text":"华邑酒店及度假村","filterType":0,"type":"BRAND"},{"value":"2|631","status":0,"text":"亚朵","filterType":0,"type":"BRAND"},{"value":"2|641","status":0,"text":"智尚","filterType":0,"type":"BRAND"},{"value":"2|664","status":0,"text":"怡莱","filterType":0,"type":"BRAND"},{"value":"2|694","status":0,"text":"星程","filterType":0,"type":"BRAND"},{"value":"2|707","status":0,"text":"Radisson Blu","filterType":0,"type":"BRAND"},{"value":"2|708","status":0,"text":"丽笙精选","filterType":0,"type":"BRAND"},{"value":"2|756","status":0,"text":"如家精选","filterType":0,"type":"BRAND"},{"value":"2|768","status":0,"text":"康得思","filterType":0,"type":"BRAND"},{"value":"2|770","status":0,"text":"德尔塔","filterType":0,"type":"BRAND"},{"value":"2|776","status":0,"text":"万达瑞华","filterType":0,"type":"BRAND"},{"value":"2|806","status":0,"text":"隐居","filterType":0,"type":"BRAND"},{"value":"2|808","status":0,"text":"精途","filterType":0,"type":"BRAND"},{"value":"2|810","status":0,"text":"宜尚","filterType":0,"type":"BRAND"},{"value":"2|830","status":0,"text":"粤海国际","filterType":0,"type":"BRAND"},{"value":"2|835","status":0,"text":"开元名都","filterType":0,"type":"BRAND"},{"value":"2|843","status":0,"text":"99优选","filterType":0,"type":"BRAND"},{"value":"2|861","status":0,"text":"派柏","filterType":0,"type":"BRAND"},{"value":"2|862","status":0,"text":"睿柏","filterType":0,"type":"BRAND"},{"value":"2|863","status":0,"text":"素柏","filterType":0,"type":"BRAND"},{"value":"2|864","status":0,"text":"都市花园","filterType":0,"type":"BRAND"},{"value":"2|873","status":0,"text":"雅阁","filterType":0,"type":"BRAND"},{"value":"2|884","status":0,"text":"格林东方","filterType":0,"type":"BRAND"},{"value":"2|897","status":0,"text":"驿居","filterType":0,"type":"BRAND"},{"value":"2|898","status":0,"text":"华驿易居","filterType":0,"type":"BRAND"},{"value":"2|899","status":0,"text":"华驿酒店","filterType":0,"type":"BRAND"},{"value":"2|900","status":0,"text":"华驿精选","filterType":0,"type":"BRAND"},{"value":"2|912","status":0,"text":"如家商旅","filterType":0,"type":"BRAND"},{"value":"2|930","status":0,"text":"开元名庭","filterType":0,"type":"BRAND"},{"value":"2|933","status":0,"text":"云上四季","filterType":0,"type":"BRAND"},{"value":"2|948","status":0,"text":"花筑","filterType":0,"type":"BRAND"},{"value":"2|961","status":0,"text":"凯悦嘉轩","filterType":0,"type":"BRAND"},{"value":"2|962","status":0,"text":"凯悦嘉寓","filterType":0,"type":"BRAND"},{"value":"2|968","status":0,"text":"柏曼","filterType":0,"type":"BRAND"},{"value":"2|1015","status":0,"text":"格盟","filterType":0,"type":"BRAND"},{"value":"2|1016","status":0,"text":"青皮树","filterType":0,"type":"BRAND"},{"value":"2|1025","status":0,"text":"YUNIK","filterType":0,"type":"BRAND"},{"value":"2|1034","status":0,"text":"费尔蒙","filterType":0,"type":"BRAND"},{"value":"2|1036","status":0,"text":"瑞士","filterType":0,"type":"BRAND"},{"value":"2|1037","status":0,"text":"欢墅","filterType":0,"type":"BRAND"},{"value":"2|1052","status":0,"text":"宝丽嘉","filterType":0,"type":"BRAND"},{"value":"2|1061","status":0,"text":"璞富腾","filterType":0,"type":"BRAND"},{"value":"2|1087","status":0,"text":"万枫","filterType":0,"type":"BRAND"},{"value":"2|1093","status":0,"text":"CitiGO","filterType":0,"type":"BRAND"},{"value":"2|1112","status":0,"text":"君亭酒店","filterType":0,"type":"BRAND"},{"value":"2|1113","status":0,"text":"时光漫步","filterType":0,"type":"BRAND"},{"value":"2|1122","status":0,"text":"贝壳","filterType":0,"type":"BRAND"},{"value":"2|1134","status":0,"text":"Q加·舒适","filterType":0,"type":"BRAND"},{"value":"2|1137","status":0,"text":"宜必思","filterType":0,"type":"BRAND"},{"value":"2|1139","status":0,"text":"宜必思尚品","filterType":0,"type":"BRAND"},{"value":"2|1147","status":0,"text":"莫泰","filterType":0,"type":"BRAND"},{"value":"2|1148","status":0,"text":"开元·颐居","filterType":0,"type":"BRAND"},{"value":"2|1149","status":0,"text":"汉庭优佳","filterType":0,"type":"BRAND"},{"value":"2|1154","status":0,"text":"海上凤凰","filterType":0,"type":"BRAND"},{"value":"2|1155","status":0,"text":"万信","filterType":0,"type":"BRAND"},{"value":"2|1157","status":0,"text":"万信慧选","filterType":0,"type":"BRAND"},{"value":"2|1160","status":0,"text":"W酒店","filterType":0,"type":"BRAND"},{"value":"2|1161","status":0,"text":"艾美","filterType":0,"type":"BRAND"},{"value":"2|1162","status":0,"text":"福朋","filterType":0,"type":"BRAND"},{"value":"2|1163","status":0,"text":"豪华精选","filterType":0,"type":"BRAND"},{"value":"2|1164","status":0,"text":"瑞吉","filterType":0,"type":"BRAND"},{"value":"2|1165","status":0,"text":"威斯汀","filterType":0,"type":"BRAND"},{"value":"2|1166","status":0,"text":"喜来登","filterType":0,"type":"BRAND"},{"value":"2|1167","status":0,"text":"雅乐轩","filterType":0,"type":"BRAND"},{"value":"2|1169","status":0,"text":"臻品之选","filterType":0,"type":"BRAND"},{"value":"2|1182","status":0,"text":"柏丽艾尚","filterType":0,"type":"BRAND"},{"value":"2|1183","status":0,"text":"格美","filterType":0,"type":"BRAND"},{"value":"2|1184","status":0,"text":"格菲","filterType":0,"type":"BRAND"},{"value":"2|1185","status":0,"text":"格雅","filterType":0,"type":"BRAND"},{"value":"2|1187","status":0,"text":"璞隐","filterType":0,"type":"BRAND"},{"value":"2|1188","status":0,"text":"扉缦","filterType":0,"type":"BRAND"},{"value":"2|1190","status":0,"text":"悦榕庄","filterType":0,"type":"BRAND"},{"value":"2|1193","status":0,"text":"H酒店","filterType":0,"type":"BRAND"},{"value":"2|1197","status":0,"text":"途客中国","filterType":0,"type":"BRAND"},{"value":"2|1202","status":0,"text":"尚客优精选","filterType":0,"type":"BRAND"},{"value":"2|1203","status":0,"text":"骏怡精选","filterType":0,"type":"BRAND"},{"value":"2|1204","status":0,"text":"兰欧","filterType":0,"type":"BRAND"},{"value":"2|1208","status":0,"text":"丽呈","filterType":0,"type":"BRAND"},{"value":"2|1214","status":0,"text":"丽晶","filterType":0,"type":"BRAND"},{"value":"2|1216","status":0,"text":"有家民宿","filterType":0,"type":"BRAND"},{"value":"2|1226","status":0,"text":"木莲庄","filterType":0,"type":"BRAND"},{"value":"2|1234","status":0,"text":"居舍系列","filterType":0,"type":"BRAND"},{"value":"2|1236","status":0,"text":"榴莲小星","filterType":0,"type":"BRAND"},{"value":"2|1262","status":0,"text":"逸衡酒店","filterType":0,"type":"BRAND"},{"value":"2|1267","status":0,"text":"金普顿","filterType":0,"type":"BRAND"},{"value":"2|1278","status":0,"text":"丽筠","filterType":0,"type":"BRAND"},{"value":"2|1288","status":0,"text":"曙光薇酒店","filterType":0,"type":"BRAND"},{"value":"2|1304","status":0,"text":"速8","filterType":0,"type":"BRAND"},{"value":"2|1308","status":0,"text":"秋果","filterType":0,"type":"BRAND"},{"value":"2|1312","status":0,"text":"嘉佩乐","filterType":0,"type":"BRAND"},{"value":"2|1323","status":0,"text":"青季","filterType":0,"type":"BRAND"},{"value":"2|1335","status":0,"text":"格林公寓","filterType":0,"type":"BRAND"},{"value":"2|1352","status":0,"text":"布丁严选","filterType":0,"type":"BRAND"},{"value":"2|1353","status":0,"text":"布丁精选","filterType":0,"type":"BRAND"},{"value":"2|1361","status":0,"text":"花间堂","filterType":0,"type":"BRAND"},{"value":"2|1363","status":0,"text":"AA连锁酒店","filterType":0,"type":"BRAND"},{"value":"2|1375","status":0,"text":"OYO酒店","filterType":0,"type":"BRAND"},{"value":"2|1398","status":0,"text":"城家高级公寓","filterType":0,"type":"BRAND"},{"value":"2|1426","status":0,"text":"怡莱精品","filterType":0,"type":"BRAND"},{"value":"2|1428","status":0,"text":"丽呈别院","filterType":0,"type":"BRAND"},{"value":"2|1429","status":0,"text":"丽呈睿轩","filterType":0,"type":"BRAND"},{"value":"2|1430","status":0,"text":"丽呈東谷","filterType":0,"type":"BRAND"},{"value":"2|1435","status":0,"text":"诗柏","filterType":0,"type":"BRAND"},{"value":"2|1479","status":0,"text":"宜尚PLUS","filterType":0,"type":"BRAND"},{"value":"2|1510","status":0,"text":"美仑","filterType":0,"type":"BRAND"},{"value":"2|1541","status":0,"text":"桔子水晶","filterType":0,"type":"BRAND"},{"value":"2|1542","status":0,"text":"桔子酒店","filterType":0,"type":"BRAND"},{"value":"2|1561","status":0,"text":"建国铂萃","filterType":0,"type":"BRAND"},{"value":"2|1563","status":0,"text":"铂瑞酒店","filterType":0,"type":"BRAND"},{"value":"2|1564","status":0,"text":"铂骊Q酒店","filterType":0,"type":"BRAND"},{"value":"2|1565","status":0,"text":"铂骊酒店","filterType":0,"type":"BRAND"},{"value":"2|1566","status":0,"text":"铂派酒店","filterType":0,"type":"BRAND"},{"value":"2|1575","status":0,"text":"艾扉","filterType":0,"type":"BRAND"},{"value":"2|1577","status":0,"text":"有戏电影酒店","filterType":0,"type":"BRAND"},{"value":"2|1584","status":0,"text":"美居","filterType":0,"type":"BRAND"},{"value":"2|1591","status":0,"text":"万达美华","filterType":0,"type":"BRAND"},{"value":"2|1593","status":0,"text":"绿地酒店","filterType":0,"type":"BRAND"},{"value":"2|1626","status":0,"text":"逸米酒店","filterType":0,"type":"BRAND"},{"value":"2|1630","status":0,"text":"你好","filterType":0,"type":"BRAND"},{"value":"2|1638","status":0,"text":"7天","filterType":0,"type":"BRAND"},{"value":"2|1640","status":0,"text":"IU酒店","filterType":0,"type":"BRAND"},{"value":"2|1642","status":0,"text":"潮漫","filterType":0,"type":"BRAND"},{"value":"2|1644","status":0,"text":"麗枫","filterType":0,"type":"BRAND"},{"value":"2|1645","status":0,"text":"派酒店","filterType":0,"type":"BRAND"},{"value":"2|1647","status":0,"text":"希岸","filterType":0,"type":"BRAND"},{"value":"2|1648","status":0,"text":"希岸·轻雅","filterType":0,"type":"BRAND"},{"value":"2|1649","status":0,"text":"喆啡","filterType":0,"type":"BRAND"},{"value":"2|1650","status":0,"text":"7天优品","filterType":0,"type":"BRAND"},{"value":"2|1652","status":0,"text":"凯里亚德","filterType":0,"type":"BRAND"},{"value":"2|1653","status":0,"text":"康铂","filterType":0,"type":"BRAND"},{"value":"2|1654","status":0,"text":"丽柏酒店","filterType":0,"type":"BRAND"},{"value":"2|1655","status":0,"text":"欧暇·地中海","filterType":0,"type":"BRAND"},{"value":"2|1656","status":0,"text":"白玉兰","filterType":0,"type":"BRAND"},{"value":"2|1657","status":0,"text":"百时快捷","filterType":0,"type":"BRAND"},{"value":"2|1659","status":0,"text":"锦江之星","filterType":0,"type":"BRAND"},{"value":"2|1660","status":0,"text":"锦江之星品尚","filterType":0,"type":"BRAND"},{"value":"2|1661","status":0,"text":"维也纳智好","filterType":0,"type":"BRAND"},{"value":"2|1662","status":0,"text":"维也纳国际","filterType":0,"type":"BRAND"},{"value":"2|1663","status":0,"text":"维也纳3好","filterType":0,"type":"BRAND"},{"value":"2|1664","status":0,"text":"维也纳","filterType":0,"type":"BRAND"},{"value":"2|1677","status":0,"text":"钻石度假村集团","filterType":0,"type":"BRAND"},{"value":"2|1679","status":0,"text":"檀程","filterType":0,"type":"BRAND"},{"value":"2|1684","status":0,"text":"逸扉酒店","filterType":0,"type":"BRAND"},{"value":"2|1685","status":0,"text":"爱电竞","filterType":0,"type":"BRAND"},{"value":"2|1694","status":0,"text":"lyf","filterType":0,"type":"BRAND"},{"value":"2|1713","status":0,"text":"郁锦香","filterType":0,"type":"BRAND"},{"value":"2|1715","status":0,"text":"胜高国际酒店","filterType":0,"type":"BRAND"},{"value":"2|1785","status":0,"text":"城家公寓","filterType":0,"type":"BRAND"},{"value":"2|1794","status":0,"text":"融旅饭店","filterType":0,"type":"BRAND"},{"value":"2|1857","status":0,"text":"睿景","filterType":0,"type":"BRAND"},{"value":"2|1862","status":0,"text":"万达悦华","filterType":0,"type":"BRAND"},{"value":"2|1863","status":0,"text":"丽怡酒店","filterType":0,"type":"BRAND"},{"value":"2|1864","status":0,"text":"丽芮酒店","filterType":0,"type":"BRAND"},{"value":"2|1870","status":0,"text":"花筑奢","filterType":0,"type":"BRAND"},{"value":"2|1875","status":0,"text":"等逅","filterType":0,"type":"BRAND"},{"value":"2|1922","status":0,"text":"昆仑","filterType":0,"type":"BRAND"},{"value":"2|1974","status":0,"text":"艺悦酒店 · 精选","filterType":0,"type":"BRAND"},{"value":"2|1975","status":0,"text":"艺悦酒店","filterType":0,"type":"BRAND"},{"value":"2|2066","status":0,"text":"同派","filterType":0,"type":"BRAND"},{"value":"2|2180","status":0,"text":"璞硯","filterType":0,"type":"BRAND"},{"value":"2|2194","status":0,"text":"城际酒店","filterType":0,"type":"BRAND"},{"value":"2|2247","status":0,"text":"沃德","filterType":0,"type":"BRAND"},{"value":"2|2314","status":0,"text":"base佰舍服务式公寓","filterType":0,"type":"BRAND"},{"value":"2|2381","status":0,"text":"嘉虹","filterType":0,"type":"BRAND"},{"value":"2|2453","status":0,"text":"J酒店","filterType":0,"type":"BRAND"},{"value":"2|2477","status":0,"text":"云居酒店","filterType":0,"type":"BRAND"},{"value":"2|2480","status":0,"text":"宋品","filterType":0,"type":"BRAND"},{"value":"2|2498","status":0,"text":"云和夜泊","filterType":0,"type":"BRAND"},{"value":"2|2527","status":0,"text":"唯庭","filterType":0,"type":"BRAND"},{"value":"2|2546","status":0,"text":"维纳斯国际","filterType":0,"type":"BRAND"},{"value":"2|2584","status":0,"text":"随易住","filterType":0,"type":"BRAND"},{"value":"2|2590","status":0,"text":"万信至格酒店","filterType":0,"type":"BRAND"},{"value":"2|2670","status":0,"text":"睿选尚品","filterType":0,"type":"BRAND"},{"value":"2|2942","status":0,"text":"轻住酒店","filterType":0,"type":"BRAND"},{"value":"2|2948","status":0,"text":"格雷斯","filterType":0,"type":"BRAND"},{"value":"2|2956","status":0,"text":"苏宁雅悦酒店","filterType":0,"type":"BRAND"},{"value":"2|2982","status":0,"text":"格林电竞酒店","filterType":0,"type":"BRAND"},{"value":"2|2983","status":0,"text":"格丽酒店","filterType":0,"type":"BRAND"},{"value":"2|3019","status":0,"text":"美仑美奂","filterType":0,"type":"BRAND"},{"value":"2|3029","status":0,"text":"寓约电竞","filterType":0,"type":"BRAND"},{"value":"2|3066","status":0,"text":"清沐精选酒店","filterType":0,"type":"BRAND"},{"value":"2|3165","status":0,"text":"艺选安來","filterType":0,"type":"BRAND"},{"value":"2|3500","status":0,"text":"艺龙安悦","filterType":0,"type":"BRAND"},{"value":"2|3563","status":0,"text":"网鱼电竞酒店","filterType":0,"type":"BRAND"},{"value":"2|3615","status":0,"text":"云绯酒店","filterType":0,"type":"BRAND"},{"value":"2|3662","status":0,"text":"pagoda君亭设计酒店","filterType":0,"type":"BRAND"},{"value":"2|3666","status":0,"text":"瑞贝庭公寓酒店","filterType":0,"type":"BRAND"},{"value":"2|3725","status":0,"text":"MAXMA美玥酒店","filterType":0,"type":"BRAND"},{"value":"2|3726","status":0,"text":"奥克伍德","filterType":0,"type":"BRAND"},{"value":"2|3828","status":0,"text":"雅辰缇酒店","filterType":0,"type":"BRAND"},{"value":"2|3829","status":0,"text":"雅辰尚酒店","filterType":0,"type":"BRAND"},{"value":"2|3830","status":0,"text":"雅辰悦居酒店","filterType":0,"type":"BRAND"},{"value":"2|3831","status":0,"text":"雅辰酒店及度假村","filterType":0,"type":"BRAND"},{"value":"2|3837","status":0,"text":"云睿@酒店","filterType":0,"type":"BRAND"},{"value":"2|3844","status":0,"text":"城市之家","filterType":0,"type":"BRAND"},{"value":"2|3920","status":0,"text":"瑰宝酒店","filterType":0,"type":"BRAND"},{"value":"2|3924","status":0,"text":"云睿酒店","filterType":0,"type":"BRAND"},{"value":"2|3932","status":0,"text":"陶瑞","filterType":0,"type":"BRAND"},{"value":"2|3951","status":0,"text":"铂金万澳","filterType":0,"type":"BRAND"},{"value":"2|3960","status":0,"text":"舜地三和园","filterType":0,"type":"BRAND"},{"value":"2|4022","status":0,"text":"凯莱悦享酒店","filterType":0,"type":"BRAND"},{"value":"2|4062","status":0,"text":"艺选酒店","filterType":0,"type":"BRAND"},{"value":"2|4063","status":0,"text":"美豪雅致酒店","filterType":0,"type":"BRAND"},{"value":"2|4064","status":0,"text":"美豪酒店","filterType":0,"type":"BRAND"},{"value":"2|4066","status":0,"text":"美豪丽致酒店","filterType":0,"type":"BRAND"},{"value":"2|4067","status":0,"text":"美丽豪酒店","filterType":0,"type":"BRAND"},{"value":"2|4070","status":0,"text":"美程酒店","filterType":0,"type":"BRAND"},{"value":"2|4071","status":0,"text":"美程里酒店","filterType":0,"type":"BRAND"},{"value":"2|4072","status":0,"text":"艺龙玺程国际酒店","filterType":0,"type":"BRAND"},{"value":"2|4073","status":0,"text":"艺龙酒店","filterType":0,"type":"BRAND"},{"value":"2|4085","status":0,"text":"嘉途","filterType":0,"type":"BRAND"},{"value":"2|4094","status":0,"text":"曼居","filterType":0,"type":"BRAND"}],"title":"全部品牌","isHot":false}],"title":"品牌","isHot":true},"priceQuickFilters":{"list":[{"text":"150以下","value":1,"status":0,"range":{"low":0,"high":150}},{"text":"150-300","value":2,"status":0,"range":{"low":150,"high":300}},{"text":"300-450","value":3,"status":0,"range":{"low":300,"high":450}},{"text":"450-600","value":4,"status":0,"range":{"low":450,"high":600}},{"text":"600以上","value":5,"status":0,"range":{"low":600,"high":-1}}]},"applicablePeople":{"list":[{"value":"76|4","status":0,"text":"外宾适用","filterType":1},{"value":"76|3","status":0,"text":"台湾客人适用","filterType":1},{"value":"76|1","status":0,"text":"香港客人适用","filterType":1},{"value":"76|2","status":0,"text":"澳门客人适用","filterType":1}],"title":"适用人群","isHot":true},"hotPoi":{"list":[{"text":"外滩","filterId":"50|50|4189898","type":"50","value":"31.2377705|121.4906033|外滩|4189898|2","subType":"2","lng":121.4906033,"lat":31.2377705,"status":0,"filterType":0},{"text":"迪士尼度假区","filterId":"50|8|13775","type":"8","value":"13775|31.141367|121.66833|2","subType":"2","lng":121.66833,"lat":31.141367,"status":0,"filterType":0},{"text":"浦东国际机场","filterId":"50|50|1274799","type":"50","value":"31.1511517|121.8086851|浦东国际机场|1274799|2","subType":"2","lng":121.8086851,"lat":31.1511517,"status":0,"filterType":0},{"text":"上海虹桥站","filterId":"50|50|1646717","type":"50","value":"31.194237|121.320876|上海虹桥站|1646717|2","subType":"2","lng":121.320876,"lat":31.194237,"status":0,"filterType":0},{"text":"浦东新区","filterId":"50|9|119","type":"9","value":"119|31.22157517|121.5442809|2","subType":"2","lng":121.5442809,"lat":31.22157517,"status":0,"filterType":0},{"text":"南京路步行街","filterId":"50|50|4190189","type":"50","value":"31.2374731|121.4841186|南京路步行街|4190189|2","subType":"2","lng":121.4841186,"lat":31.2374731,"status":0,"filterType":0},{"text":"静安区","filterId":"50|9|112","type":"9","value":"112|31.22757697|121.44720806|2","subType":"2","lng":121.44720806,"lat":31.22757697,"status":0,"filterType":0},{"text":"人民广场","filterId":"50|50|4190012","type":"50","value":"31.2296694|121.4761616|人民广场|4190012|2","subType":"2","lng":121.4761616,"lat":31.2296694,"status":0,"filterType":0},{"text":"静安寺/南京西路","filterId":"50|8|16","type":"8","value":"16|31.223452|121.44535|2","subType":"2","lng":121.44535,"lat":31.223452,"status":0,"filterType":0},{"text":"虹桥地区","filterId":"50|8|4","type":"8","value":"4|31.201885|121.40103|2","subType":"2","lng":121.40103,"lat":31.201885,"status":0,"filterType":0},{"text":"上海站","filterId":"50|50|1974396","type":"50","value":"31.248732|121.455148|上海站|1974396|2","subType":"2","lng":121.455148,"lat":31.248732,"status":0,"filterType":0},{"text":"虹桥国际机场","filterId":"50|50|1274819","type":"50","value":"31.1971709|121.3403651|虹桥国际机场|1274819|2","subType":"2","lng":121.3403651,"lat":31.1971709,"status":0,"filterType":0},{"text":"徐汇区","filterId":"50|9|113","type":"9","value":"113|31.18860078|121.43655264|2","subType":"2","lng":121.43655264,"lat":31.18860078,"status":0,"filterType":0},{"text":"陆家嘴","filterId":"50|50|15096486","type":"50","value":"31.2290097|121.5243898|陆家嘴|15096486|2","subType":"2","lng":121.5243898,"lat":31.2290097,"status":0,"filterType":0},{"text":"外滩核心区","filterId":"50|8|118","type":"8","value":"118|31.23915|121.48942|2","subType":"2","lng":121.48942,"lat":31.23915,"status":0,"filterType":0},{"text":"上海新国际博览中心","filterId":"50|50|4190023","type":"50","value":"31.2103481|121.5680613|上海新国际博览中心|4190023|2","subType":"2","lng":121.5680613,"lat":31.2103481,"status":0,"filterType":0},{"text":"崇明区","filterId":"50|9|134","type":"9","value":"134|31.62340316|121.39733753|2","subType":"2","lng":121.39733753,"lat":31.62340316,"status":0,"filterType":0},{"text":"上海体育场","filterId":"50|50|4189961","type":"50","value":"31.1812806|121.4418106|上海体育场|4189961|2","subType":"2","lng":121.4418106,"lat":31.1812806,"status":0,"filterType":0},{"text":"松江区","filterId":"50|9|125","type":"9","value":"125|31.03258384|121.22764347|2","subType":"2","lng":121.22764347,"lat":31.03258384,"status":0,"filterType":0},{"text":"国家会展中心","filterId":"50|50|4558399","type":"50","value":"31.1900005|121.3021469|国家会展中心|4558399|2","subType":"2","lng":121.3021469,"lat":31.1900005,"status":0,"filterType":0},{"text":"黄浦区","filterId":"50|9|115","type":"9","value":"115|31.23162171|121.48461159|2","subType":"2","lng":121.48461159,"lat":31.23162171,"status":0,"filterType":0},{"text":"滴水湖","filterId":"50|50|4189952","type":"50","value":"30.892537|121.941732|滴水湖|4189952|2","subType":"2","lng":121.941732,"lat":30.892537,"status":0,"filterType":0},{"text":"东方明珠","filterId":"50|50|4189897","type":"50","value":"31.2397773|121.4997392|东方明珠|4189897|2","subType":"2","lng":121.4997392,"lat":31.2397773,"status":0,"filterType":0},{"text":"闵行区","filterId":"50|9|122","type":"9","value":"122|31.11287047|121.3817619|2","subType":"2","lng":121.3817619,"lat":31.11287047,"status":0,"filterType":0},{"text":"上海海昌海洋公园","filterId":"50|50|10747267","type":"50","value":"30.9147018|121.9043587|上海海昌海洋公园|10747267|2","subType":"2","lng":121.9043587,"lat":30.9147018,"status":0,"filterType":0},{"text":"青浦区","filterId":"50|9|128","type":"9","value":"128|31.15069158|121.12400732|2","subType":"2","lng":121.12400732,"lat":31.15069158,"status":0,"filterType":0},{"text":"浦东陆家嘴金融贸易区","filterId":"50|8|22","type":"8","value":"22|31.235254|121.50583|2","subType":"2","lng":121.50583,"lat":31.235254,"status":0,"filterType":0},{"text":"梅赛德斯奔驰文化中心","filterId":"50|50|4248649","type":"50","value":"31.1887145|121.4932871|梅赛德斯奔驰文化中心|4248649|2","subType":"2","lng":121.4932871,"lat":31.1887145,"status":0,"filterType":0},{"text":"嘉定区","filterId":"50|9|123","type":"9","value":"123|31.37571839|121.26564555|2","subType":"2","lng":121.26564555,"lat":31.37571839,"status":0,"filterType":0}],"title":"热门筛选"}},"sortInfo":{"list":[{"text":"欢迎度排序","status":1,"value":"1"},{"text":"智能排序","status":0,"value":"9"},{"text":"价格","list":[{"text":"价格（由低到高）","status":0,"value":"3"},{"text":"价格（由高到低）","status":0,"value":"4"}],"status":0},{"text":"星级","list":[{"text":"星级（由高到低）","status":0,"value":"14"}],"status":0},{"text":"评分 高→低","status":0,"value":"2"},{"text":"距离（由近到远）","status":0,"value":"5"}]},"filterCondition":{"star":[],"rate":0,"breakfast":[],"bookable":[],"zone":[],"landmark":[],"metro":[],"airportTrainstation":[],"location":[],"brand":[],"feature":[],"category":[],"amenty":[],"discount":[],"cityId":[],"payType":[],"bookPolicy":[],"bedType":[],"priceRange":{"highPrice":-1,"lowPrice":0,"curr":"CNY"},"priceType":"","promotion":[],"rateCount":[],"hotArea":[],"ctripService":[],"applicablePeople":[],"hotPoi":[],"covid":[]},"searchCondition":{"sortType":"","adult":1,"child":0,"age":"","pageNo":1,"optionType":"City","optionId":2,"lat":0,"destination":"上海","keyword":"","cityName":"上海","lng":0,"cityId":2,"checkIn":"2023-09-26","checkOut":"2023-09-27","roomNum":1,"mapType":"","travelPurpose":0,"countryId":1,"url":"http://hotels.ctrip.com/hotels/list?countryId=1\u0026city=2\u0026checkin=2023/09/26\u0026checkout=2023/09/27\u0026optionId=2\u0026optionType=City\u0026directSearch=0\u0026display=%E4%B8%8A%E6%B5%B7\u0026crn=1\u0026adult=1\u0026children=0\u0026searchBoxArg=t\u0026travelPurpose=0\u0026ctm_ref=ix_sb_dl\u0026domestic=1\u0026","pageSize":10,"timeOffset":28800,"radius":0,"directSearch":0,"signInHotelId":0,"signInType":0},"mapInfo":{"url":"//api.map.baidu.com/api?v=2.0\u0026ak=eikVTDrvMvVnPldFlh44DWdUAKpq1xfL\u0026s=1","type":"gd","poiList":[{"title":"市中心","lat":31.230416,"lng":121.473701}]},"GtmData":"{\\"productSDate\\":\\"2023-09-26\\",\\"productEDate\\":\\"2023-09-27\\",\\"productCity\\":\\"2\\",\\"productCName\\":\\"Shanghai\\",\\"productType\\":\\"Domestics Hotels\\",\\"productCategory\\":\\"Dome\\"}","crumbs":[{"text":"酒店预订","url":"/hotels/homepage"},{"text":"上海酒店"}],"seoInfo":{"cityEName":"shanghai"},"newSortInfo":{"list":[{"status":1,"value":"1","text":"欢迎度排序"},{"status":0,"value":"3","text":"价格（由低到高）"},{"status":0,"value":"4","text":"价格（由高到低）"},{"status":0,"value":"5","text":"距离（由近到远）"},{"status":0,"value":"6","text":"好评优先"},{"status":0,"value":"9","text":"智能排序"},{"status":0,"value":"14","text":"星级（由高到低）"}]},"seoMapInfo":[],"P":"29253506538","traceLogId":"be43760a-3184-442f-b776-9738fec3663f1695694844975","canonicalUrl":"https://hotels.ctrip.com/hotels/shanghai-hotels-list-2/","tt":1695694845244,"listdatetime":"2023-09-26%2010:20:45","isHotelListCsrPattern":true,"firstPageList":{"isOversea":false,"isEnd":false,"traceId":0,"disableSsr":true,"P":"29253506538","traceLogId":"087419d4-4ed1-4b69-a6e5-ae5e03baea2f1695694845258"},"Qid":"399332134141","hotelCount":0},"translate":{"common_sure":"确认","common_cancel":"取消","common_networkError":"网络连接失败，请检查网络设置。","error_parameter":"系统出错，请稍后再试","key.hotel.detail.page.map.poi":"交通及景点","key.hotel.detail.page.map.hotel":"附近的酒店","key.hotel.online.nearby.hotel.area.poi":"%1$s | %2$s","key.hotel.detail.page.map.traffic":"交通","key.hotel.detail.page.map.scenic":"景点","key.hotel.detail.page.map.shopping":"购物","key.hotel.detail.page.map.food":"美食","key.hotel.detail.page.map.noresult":"抱歉，暂未找到酒店周边的推荐信息","key.hotel.online.homepage.child.age":"儿童年龄（以入住当天计算）","key.hotel.online.homepage.search.japan.tab1":"","key.hotel.online.homepage.search.japan.tab2":"","key.hotel.online.homepage.search.japan.tab3":"","key.hotel.online.assist.search":"按钮：查询酒店","key.hotel.list.page.search.keywords.current.province":"当前省份的查询结果","key.hotel.list.page.search.keywords.current.province.error":"抱歉，当前省份无法查询到“%1$s”。","key.hotel.list.page.search.keywords.current.area":"当前区域的查询结果","key.hotel.list.page.search.keywords.current.area.error":"抱歉，当前区域无法查询到“%1$s”。","key.hotel.list.page.search.keywords.current.city":"当前城市的查询结果","key.hotel.list.page.search.keywords.current.city.error":"抱歉，当前城市无法查询到“%1$s”。","key.hotel.list.page.search.keywords.other.province":"其他省份的查询结果","key.hotel.list.page.search.keywords.other.city.error":"抱歉，无法为您查询到“%1$s”。","key.hotel.list.page.search.keywords.other.area":"其他区域的查询结果","key.hotel.list.page.search.keywords.other.city":"其他城市的查询结果","key.hotel.online.calendar.date.text":"今天|明天|后天","key.hotel.list.page.search.keywords":"关键词（选填）","key.hotel.list.page.search.keywords.content":"机场、火车站、酒店名称或区域","key.hotel.online.homepage.recent.search.no.result":"抱歉，沒有「%1$s」的相关搜索結果。","key.hotel.online.homepage.destination.input.error":"请提供目的地或酒店名称","key.hotel.online.homepage.destination":"目的地/酒店名称","key.hotel.online.homepage.destination.input":"城市、机场、区域、地标或酒店名称","key.hotel.online.homepage.recent.search":"最近搜索记录","key.hotel.search.clearhistory":"清除历史","key.hotel.online.homepage.searchbox.rooms":"%1$s间","key.hotel.online.homepage.searchbox.rooms.pluralsuffix.few":"","key.hotel.online.homepage.searchbox.rooms.pluralsuffix.many":"","key.hotel.online.homepage.searchbox.rooms.pluralsuffix.other":"%1$s间","key.hotel.online.homepage.searchbox.guests":"%1$s位","key.hotel.online.homepage.searchbox.guests.pluralsuffix.few":"","key.hotel.online.homepage.searchbox.guests.pluralsuffix.many":"","key.hotel.online.homepage.searchbox.guests.pluralsuffix.other":"%1$s位","key.hotel.online.homepage.checkin":"入住时间","key.hotel.online.homepage.checkout":"退房时间","key.hotel.common.night":"%1$s晚","key.hotel.common.night.pluralsuffix.few":"","key.hotel.common.night.pluralsuffix.many":"","key.hotel.common.night.pluralsuffix.other":"%1$s nights","calendar_local_time":"入住和退房时间均为酒店当地时间。","key.hotel.online.homepage.rooms.guests":"房间及住客","key.hotel.search.aria.roomNum":"间","key.hotel.online.homepage.rooms":"房间","key.hotel.online.homepage.adult":"成人","key.hotel.online.homepage.adult.year":"18岁及以上","key.hotel.online.homepage.child":"儿童","key.hotel.online.homepage.child.year":"0-17岁","key.hotel.online.homepage.rooms.guests.done":"确定","ppc_hotel_poi_city_title":"{cityName} Hotels - Where to stay in {cityName} | Trip.com","ppc_hotel_poi_city_keywords":"{cityName} hotels, hotels in {cityName}, {cityName}, hotels, cheap hotels, accommodations, book hotel, hotel reservations, Trip.com","ppc_hotel_poi_city_description":"Trip.com offers cheap hotels in {cityName} with discounted price. Book the cheapest {cityName} hotels and hostels with real guest reviews and ratings plus world class customer service!","ppc_hotel_hotelname_description":"Search for {hotelName}? Choose room type, read guest reviews, compare hotel price, and book the best hotel room with Trip.com!","ppc_hotel_hotelname_keywords":"{hotelName}, book hotel, hotel reservation, hotel room, hotel price, Trip.com","ppc_hotel_hotelname_title":"{hotelName}, Hotel reviews and Room rates","key.hotel.list.page.bigmap":"查看大地图","key.hotel.map.bmap.center":"市中心","key.hotel.detail.member.price.log.in":"{0}Sign In{/0} or {0}Register{/0} to access member-only rates","key.hotel.online.assist.backTop":"按钮：回顶部","key.hotel.online.assist.gotoIm":"链接：客服","key.hotel.filter.location":"位置区域","key.hotel.filter.starnprice":"星级价格","key.hotel.filter.touristchoose":"旅客选择","key.hotel.filter.seniorfilter":"高级筛选","key.hotel.list.page.filter.clear.all":"清除","key.hotel.list.page.filter.clear.apply":"显示结果","key.hotel.filter.more":"更多","key.hotel.filter.close":"收起","key.hotel.list.page.soldout.fold.online":"More Sold Out Hotels","key.hotel.list.page.soldout.unfold.online":"Less Sold Out Hotels","key.hotel.list.compensate.part.match":"以下酒店满足您的部分要求","key.hotel.list.compensate.maybe.match":"您可能喜欢的酒店","key.hotel.compensate.more.recommend":"更多推荐酒店","resx.onlinehotelresource.list_searchmorehotels":"正在搜索更多酒店","resx.onlinehotelresource.list_seemorehotels":"搜索更多酒店","resx.onlinehotelresource.list_searchdone":"无更多搜索结果","key.hotel.list.page.filter":"筛选","key.hotel.list.page.map":"地图","key.hotel.coupon.promotion.fail":"领取失败，请再次尝试","key.hotel.coupon.promotion.success":"领取成功","key.hotel.coupon.promotion.partialfail":"部分券领取失败，请再次尝试","key.hotel.coupon.promotion.getAll":"一键领取","key.hotel.coupon.promotion.name":"优惠券","key.hotel.online.assist.lingquan":"领券","key.hotel.coupon.promotion.received":"已领取","key.hotel.coupon.promotion.get":"领取","key.hotel.price.tips.yuanqi":"元起","ranked_by_integrated_sort":"结果根据点评分数与点评条数综合排序。","key.hotel.list.page.cma.sort.explanation.title":"","key.hotel.list.page.cma.sort.explanation.title.online":" ","key.hotel.list.page.cma.sort.explanation.detail1.online":" ","key.hotel.list.page.cma.sort.explanation.detail2.online":" ","key.hotel.listpage.hothotel":"热门酒店","key.hotel.listpage.recommand":"达人推荐","key.hotel.listpage.quality":"品质认证","key.hotel.list.page.search.hotels.no.result":"沒有找到匹配的酒店","key.hotel.detailpage.no.image.tip":"暂无图片","key.hotel.list.page.show.map":"查看地图","resx.onlinehotelresource.hotel_roomdata_breakfast_include_v2":"含早餐","resx.onlinehotelresource.labeltext_hotel_freecancelation":"免费取消","resx.onlinehotelresource.text_twinbed":"2张床","resx.onlinehotelresource.text_doublebedsize":"1张双人床","key.hotel.filter.single.bed":"单人床","key.hotel.filter.multiple.beds":"多床","resx.onlinehotelresource.hotel_detail_instant_confirmation_v2":"立即确认","resx.onlinehotelresource.text_payathotel":"到店付","resx.onlinehotelresource.v3_hotel_detail_roomdetail_payment_prepaynow":"在线付","key.hotel.detail.room.type.free.meal":"免费餐食","key.hotel.detail.room.type.free.breakfast":"免费早餐","resx.onlinehotelresource.hotel_reviews_label_noreview_v2":"暂无评分","key.hotel.online.currency.cny":"￥","key.hotel.list.card.ad":"广告","key.hotel.list.page.prime.hotel":"优享会酒店","key.hotel.online.assist.hotelPic":"酒店图片","key.hotel.price.tip.qi":"起","key.hotel.list.compensate.viewdetail":"查看详情","key.hotel.listpage.price.taxinfo.explain.txt":"*小数点向上取整展示","key.hotel.filter.quickcheckin":"闪住","key.hotel.list.page.sign.in.trip.member.title":"Become a Trip.com member and","key.hotel.list.page.sign.in.trip.member.title.save.up":"save up to 30%!","key.hotel.list.page.sign.in.trip.member.content1":"What's more:","key.hotel.list.page.sign.in.trip.member.content2":"Access exclusive member-only rates","key.hotel.list.page.sign.in.trip.member.content3":"Gold and Platinum Members earn extra Trip Coins after check-out","key.hotel.list.page.sign.in.trip.member.content4":"Members have the chance to enjoy rewards like free breakfast and late check-out","key.hotel.list.page.sign.in.trip.member.button":"Join Now","key.hotel.online.cbanner.href.seemore":"查看详情","key.hotel.coupon.promotion.money":"元","key.hotel.coupon.promotion.discount":"折","key.hotel.coupon.promotion.nowget":"立即领取","key.hotel.online.detail.seo.from.price":"From %1$s","key.hotel.detail.room.pricerange.start":"￥150以下","key.hotel.detail.room.pricerange.end":"￥2000以上","key.hotel.detail.room.pricerange.title":"价格范围","key.hotel.list.page.sign.in.ctrip.B":"限时体验免费升级会员，增享更多权益和优惠","key.hotel.list.page.sign.in.ctrip.login.B":"查看资格","key.hotel.list.page.sign.in.ctrip":"登录后可享更多立减、返现优惠","key.hotel.list.page.sign.in.ctrip.login":"登录","key.hotel.list.page.wanted.hotels.description":"你已选择热门日期！","key.hotel.list.page.bookable.hotels.description":"查看其他有空房的酒店吧！","key.hotel.list.page.bookable.button":"查看可预定的酒店","view_bookable_only":"只查看可预定的酒店","key.hotel.landing.page.trustpilot":"TrustScore 8.1/10 {0} based on 3,866 reviews on {1}","key.hotel.landing.page.why.book":"Service You Can Trust","key.hotel.landing.page.trustpilot.score":"8.1/10","key.hotel.landing.page.nasdaq":"Trip.com, a Ctrip company (NASDAQ: CTRP)","key.hotel.online.symbol.comma":"，","key.hotel.online.searchlist.star1":"二星(钻)级及以下","key.hotel.online.searchlist.star2":"三星(钻)级","key.hotel.online.searchlist.star3":"四星(钻)级","key.hotel.online.searchlist.star4":"五星(钻)级","key.hotel.online.searchlist.diamond1":"二钻及以下/经济","key.hotel.online.searchlist.diamond2":"三钻/舒适","key.hotel.online.searchlist.diamond3":"四钻/高档","key.hotel.online.searchlist.diamond4":"五钻/豪华","key.hotel.list.page.search.hotels.no.result.try":"请更改筛选选项后重试","key.hotel.list.page.search.hotels.no.result.clear.all":"清除筛选项","key.hotel.list.page.search.hotels.no.result.hotel":"未找到酒店","key.hotel.online.assist.more":"更多","key.hotel.listpage.hotelcard.review":"点评","key.hotel.online.homepage.viewed.hotels":"查看过的酒店","key.hotel.navigation.bar.powered.by":"技术提供：","key.hotel.online.presale.download.app.1.title":"想获取更多酒店超值优惠及积分？立即免費下载携程App！","key.hotel.online.presale.download.app.1.button":"立即获取","key.hotel.online.presale.download.app.2.title":"更多优惠及积分，尽在携程App","key.hotel.online.presale.download.app.2.note":"输入电话号码以接收免費下载App的短信","key.hotel.list.map.show.on.map":"在地图上展示","key.hotel.filter.free.fruits":"免费兑水果","key.hotel.filter.before.checkin":"免费兑提前入住","key.hotel.filter.free.breakfast":"免费兑早餐","key.hotel.filter.free.cancel":"免费兑取消权益","key.hotel.filter.delay.check-out":"免费兑延迟退房","key.hotel.filter.free.better.room":"免费兑升房","key.hotel.filter.all.equity":"全部权益","key.hotel.filter.hourroom":"钟点房","key.hotel.user.reward.try.again.later":"稍后再试","key.hotel.user.reward.check":"立刻查看会员优惠酒店"},"cargo":{"locale":"zh-CN","site":"CN","currency":"CNY"},"localization":{"currency":{"GBP":{"default":"£"},"RUB":{"default":"RUB","RU-RU":"руб"},"AUD":{"default":"AU$"},"CAD":{"default":"CAD"},"THB":{"default":"THB","TH-TH":"บาท"},"BRL":{"default":"BRL"},"INR":{"default":"INR"},"PLN":{"default":"PLN"},"MYR":{"default":"MYR","MS-MY":"RM","EN-MY":"RM"},"IDR":{"default":"IDR","ID-ID":"Rp"},"PHP":{"default":"PHP"},"NZD":{"default":"NZD"},"CHF":{"default":"CHF"},"TRY":{"default":"TRY"},"CNY":{"default":"CNY"},"TWD":{"default":"TWD","ZH-HK":"NT$","ZH-TW":"NT$"},"HKD":{"default":"HK$"},"SGD":{"default":"SGD"},"KRW":{"default":"₩","KO-KR":"원"},"JPY":{"default":"JPY","JA-JP":"円"},"EUR":{"default":"€"},"USD":{"default":"US$","EN-US":"$"},"VND":{"default":"VND"}},"number":{"DE-DE":{"point":",","thousand":"."},"ES-ES":{"point":",","thousand":"."},"FR-FR":{"point":",","thousand":" "},"RU-RU":{"point":",","thousand":" "},"IT-IT":{"point":",","thousand":"."},"ID-ID":{"point":",","thousand":"."},"VI-VN":{"point":",","thousand":"."}},"order":{"ZH-CN":"{0}{1}","DE-DE":"{1} {0}","FR-FR":"{1} {0}","ES-ES":"{1} {0}","IT-IT":"{1} {0}","ZH-HK":"{0}{1}","ID-ID":"{0}{1}","JA-JP":"{0}{1}","KO-KR":"{0}{1}","MS-MY":"{0}{1}","TL-PH":"{0}{1}","RU-RU":"{1} {0}","ZH-SG":"{0}{1}","TH-TH":"{0}{1}","ZH-TW":"{0}{1}","VI-VN":"{1} {0}","JA-JP-JPY":"{1}{0}","KO-KR-KRW":"{1}{0}","default":"{0} {1}"}},"cobranding":{"CobrandValueConfig":[{"aid":1031505,"sid":1656419,"pic":"easybooking","locale":["en_sg"],"content":"partner_ship","pageid":[]},{"aid":1031505,"sid":1656425,"pic":"easybooking","locale":["ms_my","en_my"],"content":"partner_ship","pageid":[]},{"aid":297634,"sid":1834183,"pic":"cathayunitedbank","locale":["zh_tw"],"content":"partner_ship","pageid":[]}],"CobrandKeyConfig":[1031505,297634]},"appDownloadSide":{"SidebarHideAll":{"10320668150":["6107","854457"],"10320668148":["6107","854457"],"10320668147":["6107","854457"],"10320668268":["6107","854457"]},"SidebarHidePop":{"10320668150":["3625","4778","15214","12607","292713","296732","310733","679967","310725","719103","771553","860660","868830","898878","909051","2539","3204","774014","786545","754754","109070","893153","1064647","870102"],"10320668148":["3625","4778","15214","12607","292713","296732","310733","679967","310725","719103","771553","860660","868830","898878","909051","2539","3204","774014","786545","754754","109070","893153","1064647","870102"],"10320668147":["3625","4778","15214","12607","292713","296732","310733","679967","310725","719103","771553","860660","868830","898878","909051","2539","3204","774014","786545","754754","109070","893153","1064647","870102"],"10320668268":["3625","4778","15214","12607","292713","296732","310733","679967","310725","719103","771553","860660","868830","898878","909051","2539","3204","774014","786545","754754","109070","893153","1064647","870102"]}},"callControllerJava":{},"async":"https://ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/listPage/async.2ba58fc316dbdfa2d460.js","source":[{"url":"https://webresource.c-ctrip.com/ares2/basebiz/cusersdk_base/~1.1.5/default/loginsdk.js?expires=1d","index":2}],"pageName":"listPage","abResults":"","swtor":"/hotels/sw.js","swtorSwitch":false,"initParams":null,"pageId":"102002","cma":"","brgSite":"","pixelConfig":{"3625":"Ctripta","4778":"Trivago","12607":"skyscnr","15214":"NEW_GOOGLE_HPA","310725":{"789742":"LineTravel","1413596":"LineTravel","tag":"CustomerAmount"},"340177":"EQS","664610":"LinkPrice"},"hideAppDownBlackList":[],"headFootConfig":{"head":{"simple":false,"showHeadline":true,"showFootLine":true,"showCurrencySelector":true,"showLanguageSelector":true,"showLocaleSelector":true,"showServiceChat":true,"channel":"hotels"},"foot":{"simple":false,"showHeadline":true,"showFootLine":true,"showCurrencySelector":true,"showLanguageSelector":true,"showLocaleSelector":true,"showServiceChat":true,"channel":"hotels"},"sideBar":{"channel":"hotels","showServiceChat":true}},"uip":"114.247.68.216","ajaxTimeOut":0,"ajaxRetryTimes":0,"ajaxTimeOutLast":40000,"bookPageCallbackUrl":"/hotels/vieworder","useNewOnline":false,"needLoginLayer":true,"bookPageNewEditionSwitch":true,"bmapZoom":13,"showListRoomMapSwitch":1,"showReview":true,"enableCoupon":true,"enableJumpCT":true,"enableKenanForList":true,"enableKenanForDetail":true,"enableKenanForBook":true,"enableKenanForOrder":true,"kenanSDK":"https://webresource.c-ctrip.com/ares2/flight/coffeebean_ares/3.6.2/default/main.js?expires=5m","notFoundHotels":"56600436,73684749,73684742,73754860,73754835,73754804,52622506,56699700,73754824,73684772,73684761,73684767,73684775,73684741,73684746,73684801,73684796,17323501,17323499,5374759,13323392,6744584,1707421,89110,6817537,2084279,54792977,41649414","isNewTemplate":true,"albumImgRorW":"W","enableDoubleRatePlan":"T","enableHotelCompensate":true,"enableSuspendBus":true,"enableMapOfCompensateList":false,"enableNewPriceList":true,"enableBookNewPriceList":true};
    __webpack_public_path__="//ws-s.tripcdn.cn/modules/hotel/hotel-ctrip-online/";
    function loadScriptA() {
    var element = document.createDocumentFragment(''); 
    for (var i=0; i<scriptTags.length; i++) {var src=scriptTags[i];
        if(src){
            var tag = document.createElement('script');
                tag.type = 'text/javascript';
                tag.src = src;
                tag.crossOrigin = 'anonymous';
                tag.async = false;
                element.appendChild(tag);
        }
    };document.body.appendChild(element)};
    document.addEventListener(document.addEventListener ? 'DOMContentLoaded' : 'onreadystatechange', loadScriptA);
    </script><script type="text/javascript">
            (function(config, s) {
                window.$cbconfig = config;
                s = document.createElement('script');
                s.async = 1;
                s.src = 'https://webresource.c-ctrip.com/ares2/flight/coffeebean_ares/3.6.2/default/main.js?expires=5m';
                document.getElementsByTagName('head')[0].appendChild(s);
            })({
                source: 'hotel_online_list',
                code: 'hotel_online',
                ext: '0bf544a5-1607-4bce-8d17-435a160d87d6',
            });
            window.pageTraceId = '0bf544a5-1607-4bce-8d17-435a160d87d6'
        </script></body></html>`,{
    // url: "https://www.jetblue.com/booking/flights?from=JFK&to=STT&depart=2023-09-14&return=2023-09-16&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false",
    url: "https://www.jetblue.com",
    // window.location，document.URL
    // referrer: "https://www.jetblue.com/booking/flights?from=JFK&to=STT&depart=2023-09-14&return=2023-09-16&isMultiCity=false&noOfRoute=1&lang=en&adults=1&children=0&infants=0&sharedMarket=false&roundTripFaresFlag=false&usePoints=false",
    referrer: "https://www.jetblue.com/",
    origin: 'https://www.jetblue.com',
    // document.referrer
    contentType: "text/html",
    // document.contentType
    userAgent: ENV.navigatorparams.useragent,
    // userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    // UA
    includeNodeLocations: false // 保留由HTML解析器生成的位置信息，允许使用nodeLocation()方法

});
window = dom.window;
window.ENV = ENV;

window.onbeforeinput = null;
window.onselectionchange = null;
window.onsecuritypolicyviolation = null;
window._random = _random
_defin = Object.defineProperty;
Object.defineProperty = function (p, v, d) {
    // console.log('define',  v, d)
    if (v === 'positionalSignals') {
        // d.value[10][1] = [22,28,65,7,61,113,10,145,65,102,164,225]
        // d.value[38][1] = [22,28,65,7,164,142,31,235,153]
        // d.valu

        debugger;
        if (Array.isArray(d.value) && d.value.length === 60) {
            let res = [];
            d.value.forEach((e, i) => {
                if (e && e.length == 2) {
                    res.push(i + '==' + e[1].length + '=>')
                    res.push(e[1] + '')
                } else {
                    res.push(i + '==0=>iii')
                }

            })
            console.log([].slice.call(res).join('iii'))
        }
    }
    if (v === 'outerArgs') {
        // debugger;
        d.value = undefined;
    }
    if (v === 'stack' && Object.keys(d).length === 1) {
        debugger;
        d.get = undefined
        // throw TypeError('asdasd')
    }
    if ((v === 'c' || v === 'd' || v === 'b') && d.value === false) {
        d.value = true;
        // debugger;
    }

    return _defin(p, v, d)
}

_join = Array.prototype.join;
Array.prototype.join = function (s) {
    if (this[0] === '1001'){
    console.log('join', this, s)

        debugger;
    }
    if (this[0] === '{"foo\\u0000bar":42}') {
        return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[\x00\x00�\x00\x00]\x00" is not valid JSON`
    }
    return _join.call(this, s)
}
_getOwnPropertyNames = Object.getOwnPropertyNames;
Object.getOwnPropertyNames = function (a) {
    let res = _getOwnPropertyNames(a);
    // console.log('get', a,  res)
    if (res.length >= 180 && res.indexOf('EventCounts') > -1) {
        console.log('getWindow')
        res = ["Object", "Function", "Array", "Number", "parseFloat", "parseInt", "Infinity", "NaN", "undefined", "Boolean", "String", "Symbol", "Date", "Promise", "RegExp", "Error", "AggregateError", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "globalThis", "JSON", "Math", "Intl", "ArrayBuffer", "Atomics", "Uint8Array", "Int8Array", "Uint16Array", "Int16Array", "Uint32Array", "Int32Array", "Float32Array", "Float64Array", "Uint8ClampedArray", "BigUint64Array", "BigInt64Array", "DataView", "Map", "BigInt", "Set", "WeakMap", "WeakSet", "Proxy", "Reflect", "FinalizationRegistry", "WeakRef", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape", "eval", "isFinite", "isNaN", "console", "Option", "Image", "Audio", "webkitURL", "webkitRTCPeerConnection", "webkitMediaStream", "WebKitMutationObserver", "WebKitCSSMatrix", "XSLTProcessor", "XPathResult", "XPathExpression", "XPathEvaluator", "XMLSerializer", "XMLHttpRequestUpload", "XMLHttpRequestEventTarget", "XMLHttpRequest", "XMLDocument", "WritableStreamDefaultWriter", "WritableStreamDefaultController", "WritableStream", "Worker", "Window", "WheelEvent", "WebSocket", "WebGLVertexArrayObject", "WebGLUniformLocation", "WebGLTransformFeedback", "WebGLTexture", "WebGLSync", "WebGLShaderPrecisionFormat", "WebGLShader", "WebGLSampler", "WebGLRenderingContext", "WebGLRenderbuffer", "WebGLQuery", "WebGLProgram", "WebGLFramebuffer", "WebGLContextEvent", "WebGLBuffer", "WebGLActiveInfo", "WebGL2RenderingContext", "WaveShaperNode", "VisualViewport", "VirtualKeyboardGeometryChangeEvent", "ValidityState", "VTTCue", "UserActivation", "URLSearchParams", "URLPattern", "URL", "UIEvent", "TrustedTypePolicyFactory", "TrustedTypePolicy", "TrustedScriptURL", "TrustedScript", "TrustedHTML", "TreeWalker", "TransitionEvent", "TransformStreamDefaultController", "TransformStream", "TrackEvent", "TouchList", "TouchEvent", "Touch", "TimeRanges", "TextTrackList", "TextTrackCueList", "TextTrackCue", "TextTrack", "TextMetrics", "TextEvent", "TextEncoderStream", "TextEncoder", "TextDecoderStream", "TextDecoder", "Text", "TaskSignal", "TaskPriorityChangeEvent", "TaskController", "TaskAttributionTiming", "SyncManager", "SubmitEvent", "StyleSheetList", "StyleSheet", "StylePropertyMapReadOnly", "StylePropertyMap", "StorageEvent", "Storage", "StereoPannerNode", "StaticRange", "SourceBufferList", "SourceBuffer", "ShadowRoot", "Selection", "SecurityPolicyViolationEvent", "ScriptProcessorNode", "ScreenOrientation", "Screen", "Scheduling", "Scheduler", "SVGViewElement", "SVGUseElement", "SVGUnitTypes", "SVGTransformList", "SVGTransform", "SVGTitleElement", "SVGTextPositioningElement", "SVGTextPathElement", "SVGTextElement", "SVGTextContentElement", "SVGTSpanElement", "SVGSymbolElement", "SVGSwitchElement", "SVGStyleElement", "SVGStringList", "SVGStopElement", "SVGSetElement", "SVGScriptElement", "SVGSVGElement", "SVGRectElement", "SVGRect", "SVGRadialGradientElement", "SVGPreserveAspectRatio", "SVGPolylineElement", "SVGPolygonElement", "SVGPointList", "SVGPoint", "SVGPatternElement", "SVGPathElement", "SVGNumberList", "SVGNumber", "SVGMetadataElement", "SVGMatrix", "SVGMaskElement", "SVGMarkerElement", "SVGMPathElement", "SVGLinearGradientElement", "SVGLineElement", "SVGLengthList", "SVGLength", "SVGImageElement", "SVGGraphicsElement", "SVGGradientElement", "SVGGeometryElement", "SVGGElement", "SVGForeignObjectElement", "SVGFilterElement", "SVGFETurbulenceElement", "SVGFETileElement", "SVGFESpotLightElement", "SVGFESpecularLightingElement", "SVGFEPointLightElement", "SVGFEOffsetElement", "SVGFEMorphologyElement", "SVGFEMergeNodeElement", "SVGFEMergeElement", "SVGFEImageElement", "SVGFEGaussianBlurElement", "SVGFEFuncRElement", "SVGFEFuncGElement", "SVGFEFuncBElement", "SVGFEFuncAElement", "SVGFEFloodElement", "SVGFEDropShadowElement", "SVGFEDistantLightElement", "SVGFEDisplacementMapElement", "SVGFEDiffuseLightingElement", "SVGFEConvolveMatrixElement", "SVGFECompositeElement", "SVGFEComponentTransferElement", "SVGFEColorMatrixElement", "SVGFEBlendElement", "SVGEllipseElement", "SVGElement", "SVGDescElement", "SVGDefsElement", "SVGComponentTransferFunctionElement", "SVGClipPathElement", "SVGCircleElement", "SVGAnimationElement", "SVGAnimatedTransformList", "SVGAnimatedString", "SVGAnimatedRect", "SVGAnimatedPreserveAspectRatio", "SVGAnimatedNumberList", "SVGAnimatedNumber", "SVGAnimatedLengthList", "SVGAnimatedLength", "SVGAnimatedInteger", "SVGAnimatedEnumeration", "SVGAnimatedBoolean", "SVGAnimatedAngle", "SVGAnimateTransformElement", "SVGAnimateMotionElement", "SVGAnimateElement", "SVGAngle", "SVGAElement", "Response", "ResizeObserverSize", "ResizeObserverEntry", "ResizeObserver", "Request", "ReportingObserver", "ReadableStreamDefaultReader", "ReadableStreamDefaultController", "ReadableStreamBYOBRequest", "ReadableStreamBYOBReader", "ReadableStream", "ReadableByteStreamController", "Range", "RadioNodeList", "RTCTrackEvent", "RTCStatsReport", "RTCSessionDescription", "RTCSctpTransport", "RTCRtpTransceiver", "RTCRtpSender", "RTCRtpReceiver", "RTCPeerConnectionIceEvent", "RTCPeerConnectionIceErrorEvent", "RTCPeerConnection", "RTCIceTransport", "RTCIceCandidate", "RTCErrorEvent", "RTCError", "RTCEncodedVideoFrame", "RTCEncodedAudioFrame", "RTCDtlsTransport", "RTCDataChannelEvent", "RTCDataChannel", "RTCDTMFToneChangeEvent", "RTCDTMFSender", "RTCCertificate", "PromiseRejectionEvent", "ProgressEvent", "Profiler", "ProcessingInstruction", "PopStateEvent", "PointerEvent", "PluginArray", "Plugin", "PictureInPictureWindow", "PictureInPictureEvent", "PeriodicWave", "PerformanceTiming", "PerformanceServerTiming", "PerformanceResourceTiming", "PerformancePaintTiming", "PerformanceObserverEntryList", "PerformanceObserver", "PerformanceNavigationTiming", "PerformanceNavigation", "PerformanceMeasure", "PerformanceMark", "PerformanceLongTaskTiming", "PerformanceEventTiming", "PerformanceEntry", "PerformanceElementTiming", "Performance", "Path2D", "PannerNode", "PageTransitionEvent", "OverconstrainedError", "OscillatorNode", "OffscreenCanvasRenderingContext2D", "OffscreenCanvas", "OfflineAudioContext", "OfflineAudioCompletionEvent", "NodeList", "NodeIterator", "NodeFilter", "Node", "NetworkInformation", "Navigator", "NavigationTransition", "NavigationHistoryEntry", "NavigationDestination", "NavigationCurrentEntryChangeEvent", "Navigation", "NavigateEvent", "NamedNodeMap", "MutationRecord", "MutationObserver", "MouseEvent", "MimeTypeArray", "MimeType", "MessagePort", "MessageEvent", "MessageChannel", "MediaStreamTrackProcessor", "MediaStreamTrackGenerator", "MediaStreamTrackEvent", "MediaStreamTrack", "MediaStreamEvent", "MediaStreamAudioSourceNode", "MediaStreamAudioDestinationNode", "MediaStream", "MediaSourceHandle", "MediaSource", "MediaRecorder", "MediaQueryListEvent", "MediaQueryList", "MediaList", "MediaError", "MediaEncryptedEvent", "MediaElementAudioSourceNode", "MediaCapabilities", "Location", "LayoutShiftAttribution", "LayoutShift", "LargestContentfulPaint", "KeyframeEffect", "KeyboardEvent", "IntersectionObserverEntry", "IntersectionObserver", "InputEvent", "InputDeviceInfo", "InputDeviceCapabilities", "ImageData", "ImageCapture", "ImageBitmapRenderingContext", "ImageBitmap", "IdleDeadline", "IIRFilterNode", "IDBVersionChangeEvent", "IDBTransaction", "IDBRequest", "IDBOpenDBRequest", "IDBObjectStore", "IDBKeyRange", "IDBIndex", "IDBFactory", "IDBDatabase", "IDBCursorWithValue", "IDBCursor", "History", "Headers", "HashChangeEvent", "HTMLVideoElement", "HTMLUnknownElement", "HTMLUListElement", "HTMLTrackElement", "HTMLTitleElement", "HTMLTimeElement", "HTMLTextAreaElement", "HTMLTemplateElement", "HTMLTableSectionElement", "HTMLTableRowElement", "HTMLTableElement", "HTMLTableColElement", "HTMLTableCellElement", "HTMLTableCaptionElement", "HTMLStyleElement", "HTMLSpanElement", "HTMLSourceElement", "HTMLSlotElement", "HTMLSelectElement", "HTMLScriptElement", "HTMLQuoteElement", "HTMLProgressElement", "HTMLPreElement", "HTMLPictureElement", "HTMLParamElement", "HTMLParagraphElement", "HTMLOutputElement", "HTMLOptionsCollection", "HTMLOptionElement", "HTMLOptGroupElement", "HTMLObjectElement", "HTMLOListElement", "HTMLModElement", "HTMLMeterElement", "HTMLMetaElement", "HTMLMenuElement", "HTMLMediaElement", "HTMLMarqueeElement", "HTMLMapElement", "HTMLLinkElement", "HTMLLegendElement", "HTMLLabelElement", "HTMLLIElement", "HTMLInputElement", "HTMLImageElement", "HTMLIFrameElement", "HTMLHtmlElement", "HTMLHeadingElement", "HTMLHeadElement", "HTMLHRElement", "HTMLFrameSetElement", "HTMLFrameElement", "HTMLFormElement", "HTMLFormControlsCollection", "HTMLFontElement", "HTMLFieldSetElement", "HTMLEmbedElement", "HTMLElement", "HTMLDocument", "HTMLDivElement", "HTMLDirectoryElement", "HTMLDialogElement", "HTMLDetailsElement", "HTMLDataListElement", "HTMLDataElement", "HTMLDListElement", "HTMLCollection", "HTMLCanvasElement", "HTMLButtonElement", "HTMLBodyElement", "HTMLBaseElement", "HTMLBRElement", "HTMLAudioElement", "HTMLAreaElement", "HTMLAnchorElement", "HTMLAllCollection", "GeolocationPositionError", "GeolocationPosition", "GeolocationCoordinates", "Geolocation", "GamepadHapticActuator", "GamepadEvent", "GamepadButton", "Gamepad", "GainNode", "FormDataEvent", "FormData", "FontFaceSetLoadEvent", "FontFace", "FocusEvent", "FileReader", "FileList", "File", "FeaturePolicy", "External", "EventTarget", "EventSource", "EventCounts", "Event", "ErrorEvent", "ElementInternals", "Element", "DynamicsCompressorNode", "DragEvent", "DocumentType", "DocumentFragment", "Document", "DelayNode", "DecompressionStream", "DataTransferItemList", "DataTransferItem", "DataTransfer", "DOMTokenList", "DOMStringMap", "DOMStringList", "DOMRectReadOnly", "DOMRectList", "DOMRect", "DOMQuad", "DOMPointReadOnly", "DOMPoint", "DOMParser", "DOMMatrixReadOnly", "DOMMatrix", "DOMImplementation", "DOMException", "DOMError", "CustomStateSet", "CustomEvent", "CustomElementRegistry", "Crypto", "CountQueuingStrategy", "ConvolverNode", "ConstantSourceNode", "CompressionStream", "CompositionEvent", "Comment", "CloseEvent", "ClipboardEvent", "CharacterData", "ChannelSplitterNode", "ChannelMergerNode", "CanvasRenderingContext2D", "CanvasPattern", "CanvasGradient", "CanvasCaptureMediaStreamTrack", "CSSVariableReferenceValue", "CSSUnparsedValue", "CSSUnitValue", "CSSTranslate", "CSSTransformValue", "CSSTransformComponent", "CSSSupportsRule", "CSSStyleValue", "CSSStyleSheet", "CSSStyleRule", "CSSStyleDeclaration", "CSSSkewY", "CSSSkewX", "CSSSkew", "CSSScale", "CSSRuleList", "CSSRule", "CSSRotate", "CSSPropertyRule", "CSSPositionValue", "CSSPerspective", "CSSPageRule", "CSSNumericValue", "CSSNumericArray", "CSSNamespaceRule", "CSSMediaRule", "CSSMatrixComponent", "CSSMathValue", "CSSMathSum", "CSSMathProduct", "CSSMathNegate", "CSSMathMin", "CSSMathMax", "CSSMathInvert", "CSSMathClamp", "CSSLayerStatementRule", "CSSLayerBlockRule", "CSSKeywordValue", "CSSKeyframesRule", "CSSKeyframeRule", "CSSImportRule", "CSSImageValue", "CSSGroupingRule", "CSSFontPaletteValuesRule", "CSSFontFaceRule", "CSSCounterStyleRule", "CSSContainerRule", "CSSConditionRule", "CSS", "CDATASection", "ByteLengthQueuingStrategy", "BroadcastChannel", "BlobEvent", "Blob", "BiquadFilterNode", "BeforeUnloadEvent", "BeforeInstallPromptEvent", "BaseAudioContext", "BarProp", "AudioWorkletNode", "AudioSinkInfo", "AudioScheduledSourceNode", "AudioProcessingEvent", "AudioParamMap", "AudioParam", "AudioNode", "AudioListener", "AudioDestinationNode", "AudioContext", "AudioBufferSourceNode", "AudioBuffer", "Attr", "AnimationEvent", "AnimationEffect", "Animation", "AnalyserNode", "AbstractRange", "AbortSignal", "AbortController", "window", "self", "document", "name", "location", "customElements", "history", "navigation", "locationbar", "menubar", "personalbar", "scrollbars", "statusbar", "toolbar", "status", "closed", "frames", "length", "top", "opener", "parent", "frameElement", "navigator", "origin", "external", "screen", "innerWidth", "innerHeight", "scrollX", "pageXOffset", "scrollY", "pageYOffset", "visualViewport", "screenX", "screenY", "outerWidth", "outerHeight", "devicePixelRatio", "event", "clientInformation", "offscreenBuffering", "screenLeft", "screenTop", "styleMedia", "onsearch", "isSecureContext", "trustedTypes", "performance", "onappinstalled", "onbeforeinstallprompt", "crypto", "indexedDB", "sessionStorage", "localStorage", "onbeforexrselect", "onabort", "onbeforeinput", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextlost", "oncontextmenu", "oncontextrestored", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onformdata", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onsecuritypolicyviolation", "onseeked", "onseeking", "onselect", "onslotchange", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "onwebkitanimationend", "onwebkitanimationiteration", "onwebkitanimationstart", "onwebkittransitionend", "onwheel", "onauxclick", "ongotpointercapture", "onlostpointercapture", "onpointerdown", "onpointermove", "onpointerrawupdate", "onpointerup", "onpointercancel", "onpointerover", "onpointerout", "onpointerenter", "onpointerleave", "onselectstart", "onselectionchange", "onanimationend", "onanimationiteration", "onanimationstart", "ontransitionrun", "ontransitionstart", "ontransitionend", "ontransitioncancel", "onafterprint", "onbeforeprint", "onbeforeunload", "onhashchange", "onlanguagechange", "onmessage", "onmessageerror", "onoffline", "ononline", "onpagehide", "onpageshow", "onpopstate", "onrejectionhandled", "onstorage", "onunhandledrejection", "onunload", "crossOriginIsolated", "scheduler", "alert", "atob", "blur", "btoa", "cancelAnimationFrame", "cancelIdleCallback", "captureEvents", "clearInterval", "clearTimeout", "close", "confirm", "createImageBitmap", "fetch", "find", "focus", "getComputedStyle", "getSelection", "matchMedia", "moveBy", "moveTo", "open", "postMessage", "print", "prompt", "queueMicrotask", "releaseEvents", "reportError", "requestAnimationFrame", "requestIdleCallback", "resizeBy", "resizeTo", "scroll", "scrollBy", "scrollTo", "setInterval", "setTimeout", "stop", "structuredClone", "webkitCancelAnimationFrame", "webkitRequestAnimationFrame", "chrome", "WebAssembly", "credentialless", "fence", "caches", "cookieStore", "ondevicemotion", "ondeviceorientation", "ondeviceorientationabsolute", "launchQueue", "sharedStorage", "onbeforematch", "onbeforetoggle", "AbsoluteOrientationSensor", "Accelerometer", "AudioWorklet", "BatteryManager", "Cache", "CacheStorage", "Clipboard", "ClipboardItem", "CookieChangeEvent", "CookieStore", "CookieStoreManager", "Credential", "CredentialsContainer", "CryptoKey", "DeviceMotionEvent", "DeviceMotionEventAcceleration", "DeviceMotionEventRotationRate", "DeviceOrientationEvent", "FederatedCredential", "GravitySensor", "Gyroscope", "Keyboard", "KeyboardLayoutMap", "LinearAccelerationSensor", "Lock", "LockManager", "MIDIAccess", "MIDIConnectionEvent", "MIDIInput", "MIDIInputMap", "MIDIMessageEvent", "MIDIOutput", "MIDIOutputMap", "MIDIPort", "MediaDeviceInfo", "MediaDevices", "MediaKeyMessageEvent", "MediaKeySession", "MediaKeyStatusMap", "MediaKeySystemAccess", "MediaKeys", "NavigationPreloadManager", "NavigatorManagedData", "OrientationSensor", "PasswordCredential", "RelativeOrientationSensor", "Sanitizer", "ScreenDetailed", "ScreenDetails", "Sensor", "SensorErrorEvent", "ServiceWorker", "ServiceWorkerContainer", "ServiceWorkerRegistration", "StorageManager", "SubtleCrypto", "VirtualKeyboard", "WebTransport", "WebTransportBidirectionalStream", "WebTransportDatagramDuplexStream", "WebTransportError", "Worklet", "XRDOMOverlayState", "XRLayer", "XRWebGLBinding", "AudioData", "EncodedAudioChunk", "EncodedVideoChunk", "ImageTrack", "ImageTrackList", "VideoColorSpace", "VideoFrame", "AudioDecoder", "AudioEncoder", "ImageDecoder", "VideoDecoder", "VideoEncoder", "AuthenticatorAssertionResponse", "AuthenticatorAttestationResponse", "AuthenticatorResponse", "PublicKeyCredential", "BarcodeDetector", "Bluetooth", "BluetoothCharacteristicProperties", "BluetoothDevice", "BluetoothRemoteGATTCharacteristic", "BluetoothRemoteGATTDescriptor", "BluetoothRemoteGATTServer", "BluetoothRemoteGATTService", "CaptureController", "EyeDropper", "Fence", "FencedFrameConfig", "HTMLFencedFrameElement", "FileSystemDirectoryHandle", "FileSystemFileHandle", "FileSystemHandle", "FileSystemWritableFileStream", "FontData", "FragmentDirective", "GPU", "GPUAdapter", "GPUAdapterInfo", "GPUBindGroup", "GPUBindGroupLayout", "GPUBuffer", "GPUBufferUsage", "GPUCanvasContext", "GPUColorWrite", "GPUCommandBuffer", "GPUCommandEncoder", "GPUCompilationInfo", "GPUCompilationMessage", "GPUComputePassEncoder", "GPUComputePipeline", "GPUDevice", "GPUDeviceLostInfo", "GPUError", "GPUExternalTexture", "GPUInternalError", "GPUMapMode", "GPUOutOfMemoryError", "GPUPipelineError", "GPUPipelineLayout", "GPUQuerySet", "GPUQueue", "GPURenderBundle", "GPURenderBundleEncoder", "GPURenderPassEncoder", "GPURenderPipeline", "GPUSampler", "GPUShaderModule", "GPUShaderStage", "GPUSupportedFeatures", "GPUSupportedLimits", "GPUTexture", "GPUTextureUsage", "GPUTextureView", "GPUUncapturedErrorEvent", "GPUValidationError", "WGSLLanguageFeatures", "HID", "HIDConnectionEvent", "HIDDevice", "HIDInputReportEvent", "IdentityCredential", "IdleDetector", "LaunchParams", "LaunchQueue", "OTPCredential", "PaymentAddress", "PaymentRequest", "PaymentResponse", "PaymentMethodChangeEvent", "Presentation", "PresentationAvailability", "PresentationConnection", "PresentationConnectionAvailableEvent", "PresentationConnectionCloseEvent", "PresentationConnectionList", "PresentationReceiver", "PresentationRequest", "Serial", "SerialPort", "SharedStorage", "SharedStorageWorklet", "ToggleEvent", "USB", "USBAlternateInterface", "USBConfiguration", "USBConnectionEvent", "USBDevice", "USBEndpoint", "USBInTransferResult", "USBInterface", "USBIsochronousInTransferPacket", "USBIsochronousInTransferResult", "USBIsochronousOutTransferPacket", "USBIsochronousOutTransferResult", "USBOutTransferResult", "WakeLock", "WakeLockSentinel", "WindowControlsOverlay", "WindowControlsOverlayGeometryChangeEvent", "XRAnchor", "XRAnchorSet", "XRBoundedReferenceSpace", "XRCPUDepthInformation", "XRCamera", "XRDepthInformation", "XRFrame", "XRHitTestResult", "XRHitTestSource", "XRInputSource", "XRInputSourceArray", "XRInputSourceEvent", "XRInputSourcesChangeEvent", "XRLightEstimate", "XRLightProbe", "XRPose", "XRRay", "XRReferenceSpace", "XRReferenceSpaceEvent", "XRRenderState", "XRRigidTransform", "XRSession", "XRSessionEvent", "XRSpace", "XRSystem", "XRTransientInputHitTestResult", "XRTransientInputHitTestSource", "XRView", "XRViewerPose", "XRViewport", "XRWebGLDepthInformation", "XRWebGLLayer", "getScreenDetails", "queryLocalFonts", "showDirectoryPicker", "showOpenFilePicker", "showSaveFilePicker", "originAgentCluster", "speechSynthesis", "oncontentvisibilityautostatechange", "onscrollend", "AnimationPlaybackEvent", "AnimationTimeline", "CSSAnimation", "CSSTransition", "DocumentTimeline", "BackgroundFetchManager", "BackgroundFetchRecord", "BackgroundFetchRegistration", "BluetoothUUID", "BrowserCaptureMediaStreamTrack", "CropTarget", "ContentVisibilityAutoStateChangeEvent", "DelegatedInkTrailPresenter", "Ink", "Highlight", "HighlightRegistry", "MathMLElement", "MediaMetadata", "MediaSession", "MutationEvent", "NavigatorUAData", "Notification", "PaymentManager", "PaymentRequestUpdateEvent", "PeriodicSyncManager", "PermissionStatus", "Permissions", "PushManager", "PushSubscription", "PushSubscriptionOptions", "RemotePlayback", "ScrollTimeline", "ViewTimeline", "SharedWorker", "SpeechSynthesisErrorEvent", "SpeechSynthesisEvent", "SpeechSynthesisUtterance", "VideoPlaybackQuality", "ViewTransition", "VisibilityStateEntry", "webkitSpeechGrammar", "webkitSpeechGrammarList", "webkitSpeechRecognition", "webkitSpeechRecognitionError", "webkitSpeechRecognitionEvent", "openDatabase", "webkitRequestFileSystem", "webkitResolveLocalFileSystemURL", "times", "_print", "stackTrace", "con3", "con4", "idx"];
    }
    return res;

}


window.URL.createObjectURL = function () {
    console.log('createObjectURL', arguments)

    return proxy({
        blob: arguments[0],
        href: 'https://www.jetblue.com/',
        origin: 'https://www.jetblue.com/',
        protocol: 'https',


    }, 'URL')
}
let metrics = ENV.fontsres;
let textRandom = 1;

class TextMetrics {
    constructor(text, context, font) {
        this._text = text
        this._font = font
        this._context = context
        // this._TextMetrics = context.measureText(text)
        try {
            metrics = window.ENV.fontsres
            if (metrics[this._font][this._text]) {
                this._TextMetrics = metrics[this._font][this._text]
            } else {
                if (metrics[this._font.replace(' serif', ' sans-serif')][this._text]) {
                    this._TextMetrics = metrics[this._font.replace('serif', 'sans-serif')][this._text]

                } else {
                    this._TextMetrics = {
                        "width": 132.39996337890625 * _random(),
                        "actualboundingboxascent": -4.299999237060547 * _random(),
                        "actualboundingboxleft": -1.600000023841858 * _random(),
                        "actualboundingboxright": 129.59996032714844 * _random(),
                        "fontboundingboxascent": parseInt(10 * _random()),
                        "actualboundingboxdescent": 49.95000076293945 * _random()
                    }
                }
            }
        } catch (e) {
            console.log('_TextMetrics', this._text, this._font)
            this._TextMetrics = {
                width: 180.55
            }
        }
    }

    get width() {
        let res = this._TextMetrics.width;
        if (res.toString().indexOf('.') !== -1) {
            res = res * textRandom;
        } else {
            res = parseInt(res * textRandom);
        }
        if (this._text === '0-_{w.') {
            // debugger
        }
        return res;
    }

    get actualBoundingBoxAscent() {
        let res = this._TextMetrics.actualboundingboxascent;
        if (res.toString().indexOf('.') !== -1) {
            res = res * textRandom;
        } else {
            res = parseInt(res * textRandom);
        }
        return res;

    }

    get actualBoundingBoxDescent() {
        let res = this._TextMetrics.actualboundingboxdescent;
        if (res.toString().indexOf('.') !== -1) {
            res = res * textRandom;
        } else {
            res = parseInt(res * textRandom);
        }
        // console.log(this._TextMetrics.actualBoundingBoxDescent, res)
        return res;

    }

    get actualBoundingBoxLeft() {
        let res = this._TextMetrics.actualboundingboxleft;
        if (res.toString().indexOf('.') !== -1) {
            res = res * textRandom;
        } else {
            res = parseInt(res * textRandom);
        }
        return res;

    }

    get actualBoundingBoxRight() {
        let res = this._TextMetrics.actualboundingboxright;
        if (res.toString().indexOf('.') !== -1) {
            res = res * textRandom;
        } else {
            res = parseInt(res * textRandom);
        }
        return res;

    }
}

class OffscreenCanvasRenderingContext2D {

    imageDatas = {
        "18,90,1,1": [214, 122, 6, 255],
        "38,77,1,1": [255, 255, 255, 255],
        "48,28,1,1": [0, 0, 0, 0],
        "94,23,1,1": [0, 0, 0, 0],
        "26,46,1,1": [253, 243, 245, 255],
        "47,23,1,1": [0, 0, 0, 0],
        "37,17,1,1": [0, 0, 0, 255],
        "62,28,1,1": [204, 131, 217, 255]
    }
    imageData = ENV.imgsres['94px sans-serif']

    constructor(w, h, context) {
        console.log('OffscreenCanvasRenderingContext2D.new', w, h)
        this.width = w;
        this.height = h;
        if (context) {
            this._context = context

        } else {
            this._context = Canvas.createCanvas(w, h).getContext('2d')

        }
    }

    set font(f) {
        console.log('OffscreenCanvasRenderingContext2D.font', f)
        this._font = f;
        this._context.font = f;
    }

    measureText(text) {
        console.log('OffscreenCanvasRenderingContext2D.measureText1', text)
        this._text = text;
        window.fonts.push({
            font: this._font,
            text: text
        })
        let res = new TextMetrics(text, this._context, this._font);
        // return proxy(res, 'TextMetrics')
        return res;
    }

    get canvas() {
        console.log('CanvasRenderingContext2D22.canvas.get')
    }

    get globalAlpha() {
        console.log('CanvasRenderingContext2D22.globalAlpha.get')
    }

    set globalAlpha(args) {
        console.log('CanvasRenderingContext2D22.globalAlpha.set', args)
    }

    get globalCompositeOperation() {
        console.log('CanvasRenderingContext2D22.globalCompositeOperation.get')
    }

    set globalCompositeOperation(args) {
        console.log('CanvasRenderingContext2D22.globalCompositeOperation.set', args)
    }

    get filter() {
        console.log('CanvasRenderingContext2D22.filter.get')
    }

    set filter(args) {
        console.log('CanvasRenderingContext2D22.filter.set', args)
    }

    get imageSmoothingEnabled() {
        console.log('CanvasRenderingContext2D22.imageSmoothingEnabled.get')
    }

    set imageSmoothingEnabled(args) {
        console.log('CanvasRenderingContext2D22.imageSmoothingEnabled.set', args)
    }

    get imageSmoothingQuality() {
        console.log('CanvasRenderingContext2D22.imageSmoothingQuality.get')
    }

    set imageSmoothingQuality(args) {
        console.log('CanvasRenderingContext2D22.imageSmoothingQuality.set', args)
    }

    get strokeStyle() {
        console.log('CanvasRenderingContext2D22.strokeStyle.get')
    }

    set strokeStyle(args) {
        console.log('CanvasRenderingContext2D22.strokeStyle.set', args)
        return this._context.strokeStyle = args
    }

    get fillStyle() {
        console.log('CanvasRenderingContext2D22.fillStyle.get')
    }

    set fillStyle(args) {
        console.log('CanvasRenderingContext2D22.fillStyle.set', args)
        this._context.canvas.fillStyle = args

    }

    get shadowOffsetX() {
        console.log('CanvasRenderingContext2D22.shadowOffsetX.get')
    }

    set shadowOffsetX(args) {
        console.log('CanvasRenderingContext2D22.shadowOffsetX.set', args)
        this._context.shadowOffsetX = args
    }

    get shadowOffsetY() {
        console.log('CanvasRenderingContext2D22.shadowOffsetY.get')
    }

    set shadowOffsetY(args) {
        console.log('CanvasRenderingContext2D22.shadowOffsetY.set', args)
        this._context.shadowOffsetY = args

    }

    get shadowBlur() {
        console.log('CanvasRenderingContext2D22.shadowBlur.get')
    }

    set shadowBlur(args) {
        console.log('CanvasRenderingContext2D22.shadowBlur.set', args)
        this._context.shadowBlur = args

    }

    get shadowColor() {
        console.log('CanvasRenderingContext2D22.shadowColor.get')

    }

    set shadowColor(args) {
        console.log('CanvasRenderingContext2D22.shadowColor.set', args)
        this._context.shadowColor = args

    }

    get lineWidth() {
        console.log('CanvasRenderingContext2D22.lineWidth.get')
    }

    set lineWidth(args) {
        console.log('CanvasRenderingContext2D22.lineWidth.set', args)
        this._context.lineWidth = args;
    }

    get lineCap() {
        console.log('CanvasRenderingContext2D22.lineCap.get')
    }

    set lineCap(args) {
        console.log('CanvasRenderingContext2D22.lineCap.set', args)
    }

    get lineJoin() {
        console.log('CanvasRenderingContext2D22.lineJoin.get')
    }

    set lineJoin(args) {
        console.log('CanvasRenderingContext2D22.lineJoin.set', args)
    }

    get miterLimit() {
        console.log('CanvasRenderingContext2D22.miterLimit.get')
    }

    set miterLimit(args) {
        console.log('CanvasRenderingContext2D22.miterLimit.set', args)
    }

    get lineDashOffset() {
        console.log('CanvasRenderingContext2D22.lineDashOffset.get')
    }

    set lineDashOffset(args) {
        console.log('CanvasRenderingContext2D22.lineDashOffset.set', args)
    }

    get font() {
        console.log('CanvasRenderingContext2D22.font.get')
        return this._context.font;
    }

    get textAlign() {
        console.log('CanvasRenderingContext2D22.textAlign.get')
    }

    set textAlign(args) {
        console.log('CanvasRenderingContext2D22.textAlign.set', args)
    }

    get textBaseline() {
        console.log('CanvasRenderingContext2D22.textBaseline.get')
        return this._context.textBaseline
    }

    set textBaseline(args) {
        console.log('CanvasRenderingContext2D22.textBaseline.set', args)
        this._context.textBaseline = args
    }

    get direction() {
        console.log('CanvasRenderingContext2D22.direction.get')
        return this._context.direction;
    }

    set direction(args) {
        console.log('CanvasRenderingContext2D22.direction.set', args)
        this._context.direction = args

    }

    get fontKerning() {
        console.log('CanvasRenderingContext2D22.fontKerning.get')
    }

    set fontKerning(args) {
        console.log('CanvasRenderingContext2D22.fontKerning.set', args)
    }

    get fontStretch() {
        console.log('CanvasRenderingContext2D22.fontStretch.get')
    }

    set fontStretch(args) {
        console.log('CanvasRenderingContext2D22.fontStretch.set', args)
    }

    get fontVariantCaps() {
        console.log('CanvasRenderingContext2D22.fontVariantCaps.get')
    }

    set fontVariantCaps(args) {
        console.log('CanvasRenderingContext2D22.fontVariantCaps.set', args)
    }

    get letterSpacing() {
        console.log('CanvasRenderingContext2D22.letterSpacing.get')
    }

    set letterSpacing(args) {
        console.log('CanvasRenderingContext2D22.letterSpacing.set', args)
    }

    get textRendering() {
        console.log('CanvasRenderingContext2D22.textRendering.get')
    }

    set textRendering(args) {
        console.log('CanvasRenderingContext2D22.textRendering.set', args)
    }

    get wordSpacing() {
        console.log('CanvasRenderingContext2D22.wordSpacing.get')
    }

    set wordSpacing(args) {
        console.log('CanvasRenderingContext2D22.wordSpacing.set', args)
    }

    clip() {
        console.log('CanvasRenderingContext2D22.clip')
    }

    createConicGradient() {
        console.log('CanvasRenderingContext2D22.createConicGradient')
    }

    createImageData() {
        console.log('CanvasRenderingContext2D22.createImageData')
    }

    createLinearGradient() {
        console.log('CanvasRenderingContext2D22.createLinearGradient')

        return this._context.createLinearGradient(...arguments)
    }

    createPattern() {
        console.log('CanvasRenderingContext2D22.createPattern')
    }

    createRadialGradient() {
        console.log('CanvasRenderingContext2D22.createRadialGradient')
    }

    drawFocusIfNeeded() {
        console.log('CanvasRenderingContext2D22.drawFocusIfNeeded')
    }

    drawImage() {
        console.log('CanvasRenderingContext2D22.drawImage')
        this._context.drawImage(...arguments)
    }

    fill() {
        console.log('CanvasRenderingContext2D22.fill')
    }

    fillText() {
        console.log('CanvasRenderingContext2D22.fillText', ...arguments)
        this._context.fillText(...arguments)
        this._fillText = [arguments[0], arguments[1], arguments[2]]
    }

    getContextAttributes() {
        console.log('CanvasRenderingContext2D22.getContextAttributes')
    }

    getImageData() {
        let t = _random();

        let res = this._context.getImageData(...arguments)
        window.imageDatas.push({
            font: this._context.font,
            fillStyle: this._context.fillStyle,
            fillText: this._fillText,
            imageData: [arguments[0], arguments[1], arguments[2], arguments[3]]
        })
        let tdata = this.imageDatas[[arguments[0], arguments[1], arguments[2], arguments[3]] + ''];
        if (tdata) {
            res.data[0] = parseInt(tdata[0] * t)
            res.data[1] = parseInt(tdata[1] * t)
            res.data[2] = parseInt(tdata[2] * t)
            res.data[3] = parseInt(tdata[3] * t)
        }
        console.log('CanvasRenderingContext2D22.getImageData', ...arguments, res)

        return res
    }

    getLineDash() {
        console.log('CanvasRenderingContext2D22.getLineDash')
    }

    getTransform() {
        console.log('CanvasRenderingContext2D22.getTransform')
    }

    isContextLost() {
        console.log('CanvasRenderingContext2D22.isContextLost')
    }

    isPointInPath() {
        console.log('CanvasRenderingContext2D22.isPointInPath')
    }

    isPointInStroke() {
        console.log('CanvasRenderingContext2D22.isPointInStroke')
    }

    putImageData() {
        console.log('CanvasRenderingContext2D22.putImageData')
    }

    reset() {
        console.log('CanvasRenderingContext2D22.reset')
    }

    roundRect() {
        console.log('CanvasRenderingContext2D22.roundRect')
    }

    save() {
        console.log('CanvasRenderingContext2D22.save')
    }

    scale() {
        console.log('CanvasRenderingContext2D22.scale')
    }

    setLineDash() {
        console.log('CanvasRenderingContext2D22.setLineDash')
    }

    setTransform() {
        console.log('CanvasRenderingContext2D22.setTransform')
    }

    stroke() {
        console.log('CanvasRenderingContext2D22.stroke')
        this._context.stroke()
    }

    strokeText() {
        console.log('CanvasRenderingContext2D22.strokeText')
    }

    transform() {
        console.log('CanvasRenderingContext2D22.transform')
    }

    translate() {
        console.log('CanvasRenderingContext2D22.translate')
    }

    arc() {
        console.log('CanvasRenderingContext2D22.arc')
        return this._context.arc(...arguments)
    }

    arcTo() {
        console.log('CanvasRenderingContext2D22.arcTo')
    }

    beginPath() {
        console.log('CanvasRenderingContext2D22.beginPath')
        return this._context.beginPath()
    }

    bezierCurveTo() {
        console.log('CanvasRenderingContext2D22.bezierCurveTo')
    }

    clearRect() {
        console.log('CanvasRenderingContext2D22.clearRect')
    }

    closePath() {
        console.log('CanvasRenderingContext2D22.closePath')
        return this._context.closePath(...arguments)

    }

    ellipse() {
        console.log('CanvasRenderingContext2D22.ellipse')
    }

    fillRect() {
        console.log('CanvasRenderingContext2D22.fillRect')
        return this._context.fillRect(...arguments)
    }

    lineTo() {
        console.log('CanvasRenderingContext2D22.lineTo')
        return this._context.lineTo(...arguments)

    }

    moveTo() {
        console.log('CanvasRenderingContext2D22.moveTo')
        return this._context.moveTo(...arguments)
    }

    quadraticCurveTo() {
        console.log('CanvasRenderingContext2D22.quadraticCurveTo')
    }

    rect() {
        console.log('CanvasRenderingContext2D22.rect')
    }

    resetTransform() {
        console.log('CanvasRenderingContext2D22.resetTransform')
    }

    restore() {
        console.log('CanvasRenderingContext2D22.restore')
    }

    rotate() {
        console.log('CanvasRenderingContext2D22.rotate')
    }

    strokeRect() {
        console.log('CanvasRenderingContext2D22.strokeRect')
    }


}

Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, {
    canvas: {enumerable: true},
    globalAlpha: {enumerable: true},
    globalCompositeOperation: {enumerable: true},
    filter: {enumerable: true},
    imageSmoothingEnabled: {enumerable: true},
    imageSmoothingQuality: {enumerable: true},
    strokeStyle: {enumerable: true},
    fillStyle: {enumerable: true},
    shadowOffsetX: {enumerable: true},
    shadowOffsetY: {enumerable: true},
    shadowBlur: {enumerable: true},
    shadowColor: {enumerable: true},
    lineWidth: {enumerable: true},
    lineCap: {enumerable: true},
    lineJoin: {enumerable: true},
    miterLimit: {enumerable: true},
    lineDashOffset: {enumerable: true},
    font: {enumerable: true},
    textAlign: {enumerable: true},
    textBaseline: {enumerable: true},
    direction: {enumerable: true},
    fontKerning: {enumerable: true},
    fontStretch: {enumerable: true},
    fontVariantCaps: {enumerable: true},
    letterSpacing: {enumerable: true},
    textRendering: {enumerable: true},
    wordSpacing: {enumerable: true},
    clip: {enumerable: true},
    createConicGradient: {enumerable: true},
    createImageData: {enumerable: true},
    createLinearGradient: {enumerable: true},
    createPattern: {enumerable: true},
    createRadialGradient: {enumerable: true},
    drawFocusIfNeeded: {enumerable: true},
    drawImage: {enumerable: true},
    fill: {enumerable: true},
    fillText: {enumerable: true},
    getContextAttributes: {enumerable: true},
    getImageData: {enumerable: true},
    getLineDash: {enumerable: true},
    getTransform: {enumerable: true},
    isContextLost: {enumerable: true},
    isPointInPath: {enumerable: true},
    isPointInStroke: {enumerable: true},
    measureText: {enumerable: true},
    putImageData: {enumerable: true},
    reset: {enumerable: true},
    roundRect: {enumerable: true},
    save: {enumerable: true},
    scale: {enumerable: true},
    setLineDash: {enumerable: true},
    setTransform: {enumerable: true},
    stroke: {enumerable: true},
    strokeText: {enumerable: true},
    transform: {enumerable: true},
    translate: {enumerable: true},
    arc: {enumerable: true},
    arcTo: {enumerable: true},
    beginPath: {enumerable: true},
    bezierCurveTo: {enumerable: true},
    clearRect: {enumerable: true},
    closePath: {enumerable: true},
    ellipse: {enumerable: true},
    fillRect: {enumerable: true},
    lineTo: {enumerable: true},
    moveTo: {enumerable: true},
    quadraticCurveTo: {enumerable: true},
    rect: {enumerable: true},
    resetTransform: {enumerable: true},
    restore: {enumerable: true},
    rotate: {enumerable: true},
    strokeRect: {enumerable: true},
    [Symbol.toStringTag]: {value: "CanvasRenderingContext2D", configurable: true}

})


let r = {}
Object.keys(Object.getOwnPropertyDescriptors(OffscreenCanvasRenderingContext2D.prototype)).forEach(e => {
    r[e] = {}
    if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['value']) {
        r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['value'])
    }

    if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['get']) {
        r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['get'], undefined, 'get ')
    }
    if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['set']) {
        r[e]['set'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['set'], undefined, 'set ')
    }
    r[e]['enumerable'] = true
})
Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, r)

window.OffscreenCanvasRenderingContext2D = v_saf(OffscreenCanvasRenderingContext2D)
window.CanvasRenderingContext2D = v_saf(OffscreenCanvasRenderingContext2D)

window.CSSCounterStyleRule = v_saf(function CSSCounterStyleRule() {
})

function randInt(min, max) {
    return Math.round(Math.random() * (max - min) + min)
}

let initTime = Date.now()
var addit = randInt(1500, 10000)
window.requestAnimationFrame = function requestAnimationFrame(cb) {
    addit += randInt(20, 100);
    cb(Date.now() - initTime + addit + parseFloat(Math.random().toFixed(2)))
}
window.cancelAnimationFrame = function cancelAnimationFrame() {
}
if (sid === '8ffdff7b995c8ad51d902ff0') {
    window.ENV.screenparams.height = 1080
    window.ENV.screenparams.width = 1920
    window.ENV.screenparams.availheight = 1055
    window.ENV.screenparams.availwidth = 1920
    window.ENV.screenparams.pixeldepth = 24
    window.ENV.screenparams.colordepth = 24
}

window.URLSearchParams = v_saf(URLSearchParams)
window.DOMException = v_saf(DOMException)
// fingerprint.screen.availWidth =parseInt((_random()*100+900) / 1000 * 1920);
// fingerprint.screen.availHeight = parseInt((_random()*100+900) / 1000 * 1080);
// fingerprint.screen.width = fingerprint.screen.availWidth ;
// fingerprint.screen.height = fingerprint.screen.availHeight ;
window.screenX = ENV.windowparams.screenx;
window.screenY = ENV.windowparams.screeny;
window.devicePixelRatio = ENV.windowparams.devicepixelratio;
window.isSecureContext = true
window.innerWidth = ENV.windowparams.innerwidth;
window.outerWidth = ENV.windowparams.outerwidth;
window.innerHeight = ENV.windowparams.innerheight;
window.outerHeight = ENV.windowparams.outerheight;
window.pageYOffset = ENV.windowparams.pageyoffset;
window.screenLeft = 0;
window.screenTop = parseInt(Math.random() * 10 + 20);
window.saffunc = v_saf
window.Notification = v_saf(function Notification() {
})
window.requestAnimationFrame = v_saf(function requestAnimationFrame() {
})
window.frameElement = null;
window.Function = Function;
window.event = undefined;
if (sid === '8ffdff7b995c8ad51d902ff0') {
// {"innerHeight":853,"innerWidth":1920,"outerHeight":970,"outerWidth":1920,"screenX":null,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
//     {"innerHeight":938,"innerWidth":1920,"outerHeight":1055,"outerWidth":1920,"screenX":null,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
// {"innerHeight":null,"innerWidth":1920,"outerHeight":1055,"outerWidth":1920,"screenX":1728,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}

    window.innerHeight = null
    window.innerWidth = 1920
    window.outerHeight = 1055
    window.outerWidth = 1920
    window.screenX = 1728
    window.screenY = 25
    window.devicePixelRatio = 1
}

window.CSS = proxy({
    supports: function () {
        print('CSS.supports', arguments)
        return true;
    }
}, 'CSS')


window._eventListenerss = {}

// 补充环境

class App {
    constructor() {
    }

    getDetails() {
        console.log('App.getDetails')
    }

    getIsInstalled() {
        console.log('App.getIsInstalled')
        return false
    }

    installState() {
        console.log('App.installState')

    }

    runningState() {
        console.log('App.runningState')
    }

    InstallState() {
        console.log('App.InstallState')
        return {
            "DISABLED": "disabled",
            "INSTALLED": "installed",
            "NOT_INSTALLED": "not_installed"
        }
    }

    RunningState() {
        console.log('App.RunningState')
        return {
            "CANNOT_RUN": "cannot_run",
            "READY_TO_RUN": "ready_to_run",
            "RUNNING": "running"
        }
    }


}

Object.defineProperties(App.prototype, {
    isInstalled: {enumerable: true},
    getDetails: {enumerable: true},
    getIsInstalled: {enumerable: true},
    installState: {enumerable: true},
    runningState: {enumerable: true},
    InstallState: {enumerable: true},
    RunningState: {enumerable: true},

    [Symbol.toStringTag]: {value: "app", configurable: true}
});
window.chrome = {
    app: proxy(new App(), 'chrome.app'),
    csi: function () {
        return {
            "startE": Date.now(),
            "onloadT": Date.now() - parseInt(Math.random() * 10000 + 15000),
            "pageT": parseInt(Math.random() * 10000 + 15000),
            "tran": 15
        }
    },
    loadTimes: function () {
        return {
            "requestTime": Date.now() / 1000,
            "startLoadTime": Date.now() / 1000,
            "commitLoadTime": Date.now() / 1000,
            "finishDocumentLoadTime": Date.now() / 1000,
            "finishLoadTime": Date.now() / 1000,
            "firstPaintTime": Date.now() / 1000,
            "firstPaintAfterLoadTime": 0,
            "navigationType": "Other",
            "wasFetchedViaSpdy": true,
            "wasNpnNegotiated": true,
            "npnNegotiatedProtocol": "h2",
            "wasAlternateProtocolAvailable": false,
            "connectionInfo": "h2"
        }
    }

}

window.Animation = v_saf(function Animation() {
})
window.DOMMatrixReadOnly = v_saf(function DOMMatrixReadOnly() {
})
window.DOMPoint = v_saf(function DOMPoint() {
})
window.DOMPointReadOnly = v_saf(function DOMPointReadOnly() {
})
window.IntersectionObserver = v_saf(function IntersectionObserver() {
})
window.MediaStream = v_saf(function MediaStream() {
})
window.MessageChannel = v_saf(function MessageChannel() {
})
window.Path2D = v_saf(function Path2D() {
})
window.PerformanceObserver = v_saf(function PerformanceObserver() {
})
window.ReadableStream = v_saf(function ReadableStream() {
})
window.TextDecoderStream = v_saf(function TextDecoderStream() {
})
window.TextEncoderStream = v_saf(function TextEncoderStream() {
})
window.TransformStream = v_saf(function TransformStream() {
})

window.onssage = function () {
    console.log('onssage', arguments)
}
// class Worker {
//     constructor(w) {
//         console.log('newWorker', w)
//         this.jsCode = w.blob.jsCode
//     }
//
//
//     set onmessage(args) {
//         console.log('set onmessage', args)
//     }
//
//     postMessage(arg) {
//         arg = {
//             data:arg
//         }
//         let js =  (this.jsCode[0] + '\n' + `onmessage(${JSON.stringify(arg)})`).replaceAll('postMessage', 'window.onssage').replaceAll('var', 'let').replaceAll('function getWebGL', 'let getWebGL = function').replaceAll('OffscreenCanvas', 'window.OffscreenCanvas').replaceAll('let getWebGL = function(c){let graphicsLib=null;try{graphicsLib=c.getContext(\'webgl\')||c.getContext(\'experimental-webgl\');}catch(ignored){}return graphicsLib;}', '')
//         js = 'getWebGL = function(c){let graphicsLib=null;try{graphicsLib=c.getContext(\'webgl\')||c.getContext(\'experimental-webgl\');}catch(ignored){}return graphicsLib;}\n' + js
//         console.log('Worker.postMessage', arg)
//
//     }
//
//     terminate() {
//
//     }
// }

// Worker.prototype = proxy(Worker.prototype, 'Worker.proto')
window.Worker = proxy(v_saf(Worker), 'Worker')

class OffscreenCanvas {
    width = 0;
    height = 0;
    _canvas = null;

    constructor(w, h) {
        console.log('OffscreenCanvas new', w, h)
        this.width = w;
        this.height = h;
        this._canvas = Canvas.createCanvas(w, h)
    }

    getContext(type) {

        let res = this._canvas.getContext(type)
        if (type === 'webgl') {
            let t = proxy(new window.WebGLRenderingContext(), 'offCanvas.webgl')

            return t
        }
        // return proxy(res, 'newContext')
        console.log('OffscreenCanvas getContext', type, res)
        if (type == '2d') {
            res = new OffscreenCanvasRenderingContext2D();
        }
        return res;

    }
}

window.OffscreenCanvas = proxy(OffscreenCanvas, 'OffscreenCanvas')

class RTCSessionDescription {

}

getRanHex = size => {
    let result = [];
    let hexRef = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];

    for (let n = 0; n < size; n++) {
        result.push(hexRef[Math.floor(_random() * 16)].toUpperCase() + hexRef[Math.floor(_random() * 16)].toUpperCase());
    }
    return result;
}
Object.defineProperties(RTCSessionDescription.prototype, {
    sdp: {
        get: v_saf(function get() {
            let t1 = parseInt(Math.random() * (9145445486224659982 / 2) + 9145445486224659982 / 1.2)
            let hex = getRanHex(32).join(':');
            let res = `v=0
o=- ${t1} 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:Pz1P
a=ice-pwd:2RkyfgKRyILQtDZZ5mluUlPS
a=ice-options:trickle
a=fingerprint:sha-256 ${hex}
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144`
            print("  [*] RTCSessionDescription -> sdp[get]", res);

            return res;

        })
    },
    type: {
        get: v_saf(function get() {
            print("  [*] RTCSessionDescription -> type[get]", "offer");
            return "offer"
        })
    },
    [Symbol.toStringTag]: {value: "RTCSessionDescription", writable: false, enumerable: false, configurable: true},

})

class RTCDataChannel {
    constructor(label) {
        this._label = label
    }
}

Object.defineProperties(RTCDataChannel.prototype, {
    onopen: {
        set(args) {
            console.log('RTCDataChannel.onopen', args)
        }
    },

    onmessage: {
        set(args) {
            console.log('RTCDataChannel.onmessage', args)
        }
    }
})

class RTCPeerConnectionIceEvent {
    constructor() {

    }
}

let t1 = parseInt(_random() * 2430043322 / 2 + 1430043322);
let t2 = parseInt(_random() * 2430043322 / 2 + 1430043322);
let t3 = parseInt(_random() * 5000 + 60199);
let ip = `192.168.${parseInt(_random() * 150 + 1)}.${parseInt(_random() * 150 + 1)}`
var candidateGetTimes = 0;
Object.defineProperties(RTCPeerConnectionIceEvent.prototype, {
    candidate: {
        get: function () {

            let res = `candidate:${t1} 1 udp ${t2} ${guid()}.local ${t3} typ host generation 0 ufrag MiWK network-cost 999`
            res = `candidate:${t1} 1 udp ${t2} ${ip} ${t3} typ host generation 0 ufrag 5M7j network-id 1`
            // res = `candidate:${t1} 1 tcp ${t2} ${ip} 9 typ host tcptype active generation 0 ufrag ZZHV network-id 1`
            // res = 'candidate:2594513701 1 udp 2122260223 192.168.50.235 54336 typ host generation 0 ufrag 5M7j network-id 1 '
            // res = 'candidate:1678768049 1 tcp 1518280447 192.168.50.235 9 typ host tcptype active generation 0 ufrag 5M7j network-id 1 '

            console.log('RTCPeerConnectionIceEvent.candidate.get', res)

            let rrr = proxy(new RTCIceCandidate(
                ip, res, "rtp", t1, t2, t3, 'tcp', null, null, 0, "0", 'active', 'host', '5M7j'
            ), 'candidate[new]');
            candidateGetTimes++
            if (candidateGetTimes > 3) {
                rrr.candidate = null
                // return null
            }
            return rrr;


        },
        enumerable: true, configurable: true
    },
    type: {
        value: 'icecandidate'
    },
    isTrusted: {
        value: true,
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnectionIceEvent", writable: false, enumerable: false, configurable: true},

})

let RTCIceCandidate = v_saf(function RTCIceCandidate(address, candidate, component, foundation, port, priority, protocol, relatedAddress, relatedPort, sdpMid, sdpMLineIndex, tcpType, type, usernameFragment) {
    this._address = address;
    this._candidate = candidate;
    this._component = component;
    this._foundation = foundation;
    this._port = port;
    this._priority = priority;
    this._protocol = protocol;
    this._relatedAddress = relatedAddress;
    this._relatedPort = relatedPort;
    this._sdpMLineIndex = sdpMLineIndex;
    this._sdpMid = sdpMid;
    this._tcpType = tcpType;
    this._type = type;
    this._usernameFragment = usernameFragment;
})


Object.defineProperties(RTCIceCandidate.prototype, {
    address: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.address[get]')
            return this._address
        }
    },
    candidate: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.candidate[get]')
            return this._candidate
        },
        set: function (arg) {
            this._candidate = arg
        }
    },
    component: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.component[get]')
            return this._component
        }
    },
    foundation: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.foundation[get]')
            return this._foundation
        }
    },
    port: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.port[get]')
            return this._port
        }
    },
    priority: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.priority[get]')
            return this._priority
        }
    },
    protocol: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.protocol[get]')
            return this._protocol
        }
    },
    relatedAddress: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.relatedAddress[get]')
            return this._relatedAddress
        }
    },
    relatedPort: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.relatedPort[get]')
            return this._relatedPort
        }
    },
    sdpMLineIndex: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.sdpMLineIndex[get]')
            return this._sdpMLineIndex
        }
    },
    sdpMid: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.sdpMid[get]')
            return this._sdpMid
        }
    },
    tcpType: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.tcpType[get]')
            return this._tcpType
        }
    },
    type: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.type[get]')
            return this._type
        }
    },
    usernameFragment: {
        enumerable: true, configurable: true,
        get: function () {
            console.log('RTCIceCandidate.usernameFragment[get]')
            return this._usernameFragment
        }
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnection", writable: true, enumerable: false, configurable: true},


})

function guid() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = _random() * 16 | 0,
            v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}


class RTCPeerConnection {
    constructor(args) {
        console.log('RTCPeerConnection.new', args)

    }
}

Object.defineProperties(RTCPeerConnection.prototype, {
    localDescription: {
        value: {
            get: v_saf(function get() {
                print('get localDescription')
                return this._publicDescription
            }),
            set: function (arg) {
                this._publicDescription = arg
            }
        }
    },
    onicecandidate: {
        set() {
            print("  [*] RTCPeerConnection -> onicecandidate[set]", [].slice.call(arguments));
            this._onicecandidate = arguments[0]
        }
    },

    createDataChannel: {
        value: v_saf(function createDataChannel(label, option) {
            print("  [*] RTCPeerConnection -> createDataChannel[func]", [].slice.call(arguments));
            let res = new RTCDataChannel(label);
            return proxy(res, 'dataChannel')
        })
    },
    createOffer: {
        value: v_saf(function createOffer() {
            print("  [*] RTCPeerConnection -> createOffer[func]", [].slice.call(arguments));
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                print('RTCPeerConnection createOffer', resolve, reject);
                let res = new RTCSessionDescription()
                // resolve(proxy(res, 'newRTCSessionDescription'))
                resolve({
                    then: function (arg1, arg2) {
                        arg1(proxy(res, 'newRTCSessionDescription'))
                        arg2(proxy(res, 'newRTCSessionDescription'))
                    }
                })
            })
            return p;
            // return {
            //     then: function (func, func2) {
            //         v_console_log("  [*] RTCPeerConnection -> createOffer[func] then", [].slice.call(arguments));
            //         func2(v_new(RTCSessionDescription));
            //         func(v_new(RTCSessionDescription));
            //         return func(v_new(RTCSessionDescription));
            //     }, catch: function () {
            //     }
            // }
        })
    },
    setLocalDescription: {
        value: v_saf(function setLocalDescription() {
            var _this = this;
            print("  [*] RTCPeerConnection -> setLocalDescription[func]", [].slice.call(arguments));
            _this._onicecandidate(new RTCPeerConnectionIceEvent())
            this.localDescription = arguments[0]
            _this._onicecandidate(this.localDescription)
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                // let res = this.setLocalDescription(v_new(RTCSessionDescription))
                // console.log('RTCPeerConnection create',res);
                _this._onicecandidate(new RTCPeerConnectionIceEvent())

                print("  [*] RTCPeerConnection -> setLocalDescription[func] then", [].slice.call(arguments));
                // window.debug = true
                resolve(new RTCSessionDescription())
                // return res
            })
            return p;
        }),
        enumerable: true,
        configurable: true
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnection", writable: false, enumerable: false, configurable: true},
})

window.RTCPeerConnection = proxy(RTCPeerConnection, 'RTCPeerConnection')
window.webkitRTCPeerConnection = RTCPeerConnection
window.AuthenticatorResponse = v_saf(function AuthenticatorResponse() {
    console.log('AuthenticatorResponse.call')

})
window.MutationObserver = v_saf(function MutationObserver() {
    console.log('MutationObserver.new', arguments)
    this._func = arguments[0]
})
Object.defineProperties(window.MutationObserver.prototype, {
    observe: {
        value: function () {
            console.log('MutationObserver.observe', arguments)
            this._func()
        }
    },
    disconnect: {
        value: function () {
            console.log('MutationObserver.disconnect', arguments)
        }
    }

})
window.WebKitMutationObserver = window.MutationObserver

window.Notification = v_saf(function Notification() {
    console.log('Notification', arguments)

})
window.SharedWorker = v_saf(function SharedWorker() {
    console.log('SharedWorker', arguments)

})
window.event = v_saf(function event() {
    console.log('event', arguments)

})
window.frameElement = null
window.PushManager = v_saf(function PushManager() {
    console.log('PushManager', arguments)

})
window.requestAnimationFrame = v_saf(function requestAnimationFrame() {
    console.log('requestAnimationFrame', arguments)

})
window.webkitRequestAnimationFrame = v_saf(function webkitRequestAnimationFrame() {
    console.log('webkitRequestAnimationFrame', arguments)

})
window.webkitResolveLocalFileSystemURL = v_saf(function webkitResolveLocalFileSystemURL() {
    console.log('webkitResolveLocalFileSystemURL', arguments)

})
window.BluetoothUUID = v_saf(function BluetoothUUID() {
    console.log('BluetoothUUID', arguments)

})


window.PublicKeyCredential = v_saf(function PublicKeyCredential() {
    console.log('PublicKeyCredential', arguments)

})
window.AuthenticatorAttestationResponse = v_saf(function AuthenticatorAttestationResponse() {
    console.log('AuthenticatorAttestationResponse', arguments)

})
window.AuthenticatorAssertionResponse = v_saf(function AuthenticatorAssertionResponse() {
    console.log('AuthenticatorAssertionResponse', arguments)
})


window.SubmitEvent = v_saf(function SubmitEvent() {
})
var v_new_toggle = true
MediaQueryList = v_saf(function MediaQueryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
let medias = [];
let mediaRes = {
    "(any-hover: hover)": true,
    "(any-hover: hover)": true,
    "(any-hover: none)": false,
    "(any-hover: none)": false,
    "(any-pointer: coarse)": false,
    "(any-pointer: coarse)": false,
    "(any-pointer: fine)": true,
    "(any-pointer: fine)": true,
    "(any-pointer: none)": false,
    "(any-pointer: none)": false,
    "(color-gamut: p3)": false,
    "(color-gamut: p3)": false,
    "(color-gamut: rec2020)": false,
    "(color-gamut: rec2020)": false,
    "(color-gamut: srgb)": true,
    "(color-gamut: srgb)": true,
    "(display-mode: browser)": true,
    "(display-mode: browser)": true,
    "(display-mode: fullscreen)": false,
    "(display-mode: fullscreen)": false,
    "(display-mode: minimal-ui)": false,
    "(display-mode: minimal-ui)": false,
    "(display-mode: standalone)": false,
    "(display-mode: standalone)": false,
    "(forced-colors: active)": false,
    "(forced-colors: active)": false,
    "(forced-colors: none)": true,
    "(forced-colors: none)": true,
    "(grid: 0)": true,
    "(grid: 0)": true,
    "(grid: 1)": false,
    "(grid: 1)": false,
    "(hover: hover)": true,
    "(hover: hover)": true,
    "(hover: none)": false,
    "(hover: none)": false,
    "(inverted-colors: inverted)": false,
    "(inverted-colors: inverted)": false,
    "(inverted-colors: none)": false,
    "(inverted-colors: none)": false,
    "(light-level: dim)": false,
    "(light-level: dim)": false,
    "(light-level: normal)": false,
    "(light-level: normal)": false,
    "(light-level: washed)": false,
    "(light-level: washed)": false,
    "(max-aspect-ratio: 1/1)": true,
    "(max-aspect-ratio: 1/1)": false,
    "(max-aspect-ratio: 10/1)": true,
    "(max-aspect-ratio: 100663295/67108864)": true,
    "(max-aspect-ratio: 101/2)": true,
    "(max-aspect-ratio: 1023/512)": true,
    "(max-aspect-ratio: 10239/8192)": true,
    "(max-aspect-ratio: 103079215103/68719476736)": true,
    "(max-aspect-ratio: 104447/2048)": true,
    "(max-aspect-ratio: 1048575/524288)": true,
    "(max-aspect-ratio: 10485759/8388608)": true,
    "(max-aspect-ratio: 105553116266495/70368744177664)": true,
    "(max-aspect-ratio: 106954751/2097152)": true,
    "(max-aspect-ratio: 1071/1024)": true,
    "(max-aspect-ratio: 1073741823/536870912)": true,
    "(max-aspect-ratio: 10737418239/8589934592)": true,
    "(max-aspect-ratio: 1087/1024)": true,
    "(max-aspect-ratio: 109521666047/2147483648)": true,
    "(max-aspect-ratio: 1097727/1048576)": true,
    "(max-aspect-ratio: 1099511627775/549755813888)": true,
    "(max-aspect-ratio: 10995116277759/8796093022208)": true,
    "(max-aspect-ratio: 11/1)": true,
    "(max-aspect-ratio: 11/8)": true,
    "(max-aspect-ratio: 1114111/1048576)": true,
    "(max-aspect-ratio: 112150186033151/2199023255552)": true,
    "(max-aspect-ratio: 1124073471/1073741824)": true,
    "(max-aspect-ratio: 1125899906842623/562949953421312)": true,
    "(max-aspect-ratio: 1140850687/1073741824)": true,
    "(max-aspect-ratio: 1151/1024)": true,
    "(max-aspect-ratio: 1151051235327/1099511627776)": true,
    "(max-aspect-ratio: 1168231104511/1099511627776)": true,
    "(max-aspect-ratio: 1178676464975871/1125899906842624)": true,
    "(max-aspect-ratio: 1179647/1048576)": true,
    "(max-aspect-ratio: 1196268651020287/1125899906842624)": true,
    "(max-aspect-ratio: 12/1)": true,
    "(max-aspect-ratio: 1207959551/1073741824)": true,
    "(max-aspect-ratio: 12287/8192)": true,
    "(max-aspect-ratio: 1236950581247/1099511627776)": true,
    "(max-aspect-ratio: 12582911/8388608)": true,
    "(max-aspect-ratio: 1266637395197951/1125899906842624)": true,
    "(max-aspect-ratio: 127/64)": true,
    "(max-aspect-ratio: 1279/1024)": true,
    "(max-aspect-ratio: 12884901887/8589934592)": true,
    "(max-aspect-ratio: 13/1)": true,
    "(max-aspect-ratio: 13055/256)": true,
    "(max-aspect-ratio: 131071/65536)": true,
    "(max-aspect-ratio: 1310719/1048576)": true,
    "(max-aspect-ratio: 13194139533311/8796093022208)": true,
    "(max-aspect-ratio: 133/128)": true,
    "(max-aspect-ratio: 13369343/262144)": true,
    "(max-aspect-ratio: 134217727/67108864)": true,
    "(max-aspect-ratio: 1342177279/1073741824)": true,
    "(max-aspect-ratio: 135/128)": true,
    "(max-aspect-ratio: 13690208255/268435456)": true,
    "(max-aspect-ratio: 137215/131072)": true,
    "(max-aspect-ratio: 137438953471/68719476736)": true,
    "(max-aspect-ratio: 1374389534719/1099511627776)": true,
    "(max-aspect-ratio: 139263/131072)": true,
    "(max-aspect-ratio: 14/1)": true,
    "(max-aspect-ratio: 14018773254143/274877906944)": true,
    "(max-aspect-ratio: 140509183/134217728)": true,
    "(max-aspect-ratio: 140737488355327/70368744177664)": true,
    "(max-aspect-ratio: 1407374883553279/1125899906842624)": true,
    "(max-aspect-ratio: 142606335/134217728)": true,
    "(max-aspect-ratio: 143/128)": true,
    "(max-aspect-ratio: 143881404415/137438953472)": true,
    "(max-aspect-ratio: 146028888063/137438953472)": true,
    "(max-aspect-ratio: 147334558121983/140737488355328)": true,
    "(max-aspect-ratio: 147455/131072)": true,
    "(max-aspect-ratio: 149533581377535/140737488355328)": true,
    "(max-aspect-ratio: 15/1)": true,
    "(max-aspect-ratio: 15/8)": true,
    "(max-aspect-ratio: 150994943/134217728)": true,
    "(max-aspect-ratio: 1535/1024)": true,
    "(max-aspect-ratio: 154618822655/137438953472)": true,
    "(max-aspect-ratio: 1572863/1048576)": true,
    "(max-aspect-ratio: 158329674399743/140737488355328)": true,
    "(max-aspect-ratio: 159/128)": true,
    "(max-aspect-ratio: 16/1)": true,
    "(max-aspect-ratio: 1610612735/1073741824)": true,
    "(max-aspect-ratio: 1631/32)": true,
    "(max-aspect-ratio: 16383/8192)": true,
    "(max-aspect-ratio: 163839/131072)": true,
    "(max-aspect-ratio: 1649267441663/1099511627776)": true,
    "(max-aspect-ratio: 1671167/32768)": true,
    "(max-aspect-ratio: 16777215/8388608)": true,
    "(max-aspect-ratio: 167772159/134217728)": true,
    "(max-aspect-ratio: 1688849860263935/1125899906842624)": true,
    "(max-aspect-ratio: 17/1)": true,
    "(max-aspect-ratio: 17/16)": true,
    "(max-aspect-ratio: 17/16)": true,
    "(max-aspect-ratio: 1711276031/33554432)": true,
    "(max-aspect-ratio: 17151/16384)": true,
    "(max-aspect-ratio: 17179869183/8589934592)": true,
    "(max-aspect-ratio: 171798691839/137438953472)": true,
    "(max-aspect-ratio: 17407/16384)": true,
    "(max-aspect-ratio: 1752346656767/34359738368)": true,
    "(max-aspect-ratio: 17563647/16777216)": true,
    "(max-aspect-ratio: 17592186044415/8796093022208)": true,
    "(max-aspect-ratio: 175921860444159/140737488355328)": true,
    "(max-aspect-ratio: 17825791/16777216)": true,
    "(max-aspect-ratio: 1794402976530431/35184372088832)": true,
    "(max-aspect-ratio: 17985175551/17179869184)": true,
    "(max-aspect-ratio: 18/1)": true,
    "(max-aspect-ratio: 18253611007/17179869184)": true,
    "(max-aspect-ratio: 18416819765247/17592186044416)": true,
    "(max-aspect-ratio: 18431/16384)": true,
    "(max-aspect-ratio: 18691697672191/17592186044416)": true,
    "(max-aspect-ratio: 18874367/16777216)": true,
    "(max-aspect-ratio: 19/1)": true,
    "(max-aspect-ratio: 19/16)": true,
    "(max-aspect-ratio: 191/128)": true,
    "(max-aspect-ratio: 19327352831/17179869184)": true,
    "(max-aspect-ratio: 196607/131072)": true,
    "(max-aspect-ratio: 19791209299967/17592186044416)": true,
    "(max-aspect-ratio: 2/1)": true,
    "(max-aspect-ratio: 2/1)": true,
    "(max-aspect-ratio: 20/1)": true,
    "(max-aspect-ratio: 201326591/134217728)": true,
    "(max-aspect-ratio: 203/4)": true,
    "(max-aspect-ratio: 2047/1024)": true,
    "(max-aspect-ratio: 20479/16384)": true,
    "(max-aspect-ratio: 206158430207/137438953472)": true,
    "(max-aspect-ratio: 208895/4096)": true,
    "(max-aspect-ratio: 2097151/1048576)": true,
    "(max-aspect-ratio: 20971519/16777216)": true,
    "(max-aspect-ratio: 21/1)": true,
    "(max-aspect-ratio: 211106232532991/140737488355328)": true,
    "(max-aspect-ratio: 213909503/4194304)": true,
    "(max-aspect-ratio: 2143/2048)": true,
    "(max-aspect-ratio: 2147483647/1073741824)": true,
    "(max-aspect-ratio: 21474836479/17179869184)": true,
    "(max-aspect-ratio: 2175/2048)": true,
    "(max-aspect-ratio: 219043332095/4294967296)": true,
    "(max-aspect-ratio: 2195455/2097152)": true,
    "(max-aspect-ratio: 2199023255551/1099511627776)": true,
    "(max-aspect-ratio: 21990232555519/17592186044416)": true,
    "(max-aspect-ratio: 22/1)": true,
    "(max-aspect-ratio: 2228223/2097152)": true,
    "(max-aspect-ratio: 224300372066303/4398046511104)": true,
    "(max-aspect-ratio: 2248146943/2147483648)": true,
    "(max-aspect-ratio: 2251799813685247/1125899906842624)": true,
    "(max-aspect-ratio: 2281701375/2147483648)": true,
    "(max-aspect-ratio: 23/1)": true,
    "(max-aspect-ratio: 23/16)": true,
    "(max-aspect-ratio: 2302102470655/2199023255552)": true,
    "(max-aspect-ratio: 2303/2048)": true,
    "(max-aspect-ratio: 2336462209023/2199023255552)": true,
    "(max-aspect-ratio: 2359295/2097152)": true,
    "(max-aspect-ratio: 24/1)": true,
    "(max-aspect-ratio: 2415919103/2147483648)": true,
    "(max-aspect-ratio: 24575/16384)": true,
    "(max-aspect-ratio: 2473901162495/2199023255552)": true,
    "(max-aspect-ratio: 25/1)": true,
    "(max-aspect-ratio: 25165823/16777216)": true,
    "(max-aspect-ratio: 255/128)": true,
    "(max-aspect-ratio: 2559/2048)": true,
    "(max-aspect-ratio: 25769803775/17179869184)": true,
    "(max-aspect-ratio: 26/1)": true,
    "(max-aspect-ratio: 26111/512)": true,
    "(max-aspect-ratio: 262143/131072)": true,
    "(max-aspect-ratio: 2621439/2097152)": true,
    "(max-aspect-ratio: 26388279066623/17592186044416)": true,
    "(max-aspect-ratio: 267/256)": true,
    "(max-aspect-ratio: 26738687/524288)": true,
    "(max-aspect-ratio: 268435455/134217728)": true,
    "(max-aspect-ratio: 2684354559/2147483648)": true,
    "(max-aspect-ratio: 27/1)": true,
    "(max-aspect-ratio: 271/256)": true,
    "(max-aspect-ratio: 27380416511/536870912)": true,
    "(max-aspect-ratio: 274431/262144)": true,
    "(max-aspect-ratio: 274877906943/137438953472)": true,
    "(max-aspect-ratio: 2748779069439/2199023255552)": true,
    "(max-aspect-ratio: 278527/262144)": true,
    "(max-aspect-ratio: 28/1)": true,
    "(max-aspect-ratio: 28037546508287/549755813888)": true,
    "(max-aspect-ratio: 281018367/268435456)": true,
    "(max-aspect-ratio: 281474976710655/140737488355328)": true,
    "(max-aspect-ratio: 285212671/268435456)": true,
    "(max-aspect-ratio: 287/256)": true,
    "(max-aspect-ratio: 287762808831/274877906944)": true,
    "(max-aspect-ratio: 29/1)": true,
    "(max-aspect-ratio: 292057776127/274877906944)": true,
    "(max-aspect-ratio: 294669116243967/281474976710656)": true,
    "(max-aspect-ratio: 294911/262144)": true,
    "(max-aspect-ratio: 299067162755071/281474976710656)": true,
    "(max-aspect-ratio: 3/1)": true,
    "(max-aspect-ratio: 3/2)": true,
    "(max-aspect-ratio: 3/2)": true,
    "(max-aspect-ratio: 30/1)": true,
    "(max-aspect-ratio: 301989887/268435456)": true,
    "(max-aspect-ratio: 3071/2048)": true,
    "(max-aspect-ratio: 309237645311/274877906944)": true,
    "(max-aspect-ratio: 31/1)": true,
    "(max-aspect-ratio: 31/16)": true,
    "(max-aspect-ratio: 3145727/2097152)": true,
    "(max-aspect-ratio: 316659348799487/281474976710656)": true,
    "(max-aspect-ratio: 319/256)": true,
    "(max-aspect-ratio: 32/1)": true,
    "(max-aspect-ratio: 3221225471/2147483648)": true,
    "(max-aspect-ratio: 3263/64)": true,
    "(max-aspect-ratio: 32767/16384)": true,
    "(max-aspect-ratio: 327679/262144)": true,
    "(max-aspect-ratio: 3298534883327/2199023255552)": true,
    "(max-aspect-ratio: 33/1)": true,
    "(max-aspect-ratio: 33/32)": true,
    "(max-aspect-ratio: 33/32)": false,
    "(max-aspect-ratio: 3342335/65536)": true,
    "(max-aspect-ratio: 33554431/16777216)": true,
    "(max-aspect-ratio: 335544319/268435456)": true,
    "(max-aspect-ratio: 34/1)": true,
    "(max-aspect-ratio: 3422552063/67108864)": true,
    "(max-aspect-ratio: 34303/32768)": true,
    "(max-aspect-ratio: 34359738367/17179869184)": true,
    "(max-aspect-ratio: 343597383679/274877906944)": true,
    "(max-aspect-ratio: 34815/32768)": true,
    "(max-aspect-ratio: 35/1)": true,
    "(max-aspect-ratio: 35/32)": true,
    "(max-aspect-ratio: 3504693313535/68719476736)": true,
    "(max-aspect-ratio: 35127295/33554432)": true,
    "(max-aspect-ratio: 35184372088831/17592186044416)": true,
    "(max-aspect-ratio: 351843720888319/281474976710656)": true,
    "(max-aspect-ratio: 35651583/33554432)": true,
    "(max-aspect-ratio: 3588805953060863/70368744177664)": true,
    "(max-aspect-ratio: 35970351103/34359738368)": true,
    "(max-aspect-ratio: 36/1)": true,
    "(max-aspect-ratio: 36507222015/34359738368)": true,
    "(max-aspect-ratio: 36833639530495/35184372088832)": true,
    "(max-aspect-ratio: 36863/32768)": true,
    "(max-aspect-ratio: 37/1)": true,
    "(max-aspect-ratio: 37383395344383/35184372088832)": true,
    "(max-aspect-ratio: 37748735/33554432)": true,
    "(max-aspect-ratio: 38/1)": true,
    "(max-aspect-ratio: 383/256)": true,
    "(max-aspect-ratio: 38654705663/34359738368)": true,
    "(max-aspect-ratio: 39/1)": true,
    "(max-aspect-ratio: 39/32)": true,
    "(max-aspect-ratio: 393215/262144)": true,
    "(max-aspect-ratio: 39582418599935/35184372088832)": true,
    "(max-aspect-ratio: 4/1)": true,
    "(max-aspect-ratio: 40/1)": true,
    "(max-aspect-ratio: 402653183/268435456)": true,
    "(max-aspect-ratio: 407/8)": true,
    "(max-aspect-ratio: 4095/2048)": true,
    "(max-aspect-ratio: 40959/32768)": true,
    "(max-aspect-ratio: 41/1)": true,
    "(max-aspect-ratio: 412316860415/274877906944)": true,
    "(max-aspect-ratio: 417791/8192)": true,
    "(max-aspect-ratio: 4194303/2097152)": true,
    "(max-aspect-ratio: 41943039/33554432)": true,
    "(max-aspect-ratio: 42/1)": true,
    "(max-aspect-ratio: 422212465065983/281474976710656)": true,
    "(max-aspect-ratio: 427819007/8388608)": true,
    "(max-aspect-ratio: 4287/4096)": true,
    "(max-aspect-ratio: 4294967295/2147483648)": true,
    "(max-aspect-ratio: 42949672959/34359738368)": true,
    "(max-aspect-ratio: 43/1)": true,
    "(max-aspect-ratio: 4351/4096)": true,
    "(max-aspect-ratio: 438086664191/8589934592)": true,
    "(max-aspect-ratio: 4390911/4194304)": true,
    "(max-aspect-ratio: 4398046511103/2199023255552)": true,
    "(max-aspect-ratio: 43980465111039/35184372088832)": true,
    "(max-aspect-ratio: 44/1)": true,
    "(max-aspect-ratio: 4456447/4194304)": true,
    "(max-aspect-ratio: 448600744132607/8796093022208)": true,
    "(max-aspect-ratio: 4496293887/4294967296)": true,
    "(max-aspect-ratio: 45/1)": true,
    "(max-aspect-ratio: 4563402751/4294967296)": true,
    "(max-aspect-ratio: 46/1)": true,
    "(max-aspect-ratio: 4604204941311/4398046511104)": true,
    "(max-aspect-ratio: 4607/4096)": true,
    "(max-aspect-ratio: 4672924418047/4398046511104)": true,
    "(max-aspect-ratio: 47/1)": true,
    "(max-aspect-ratio: 47/32)": true,
    "(max-aspect-ratio: 4718591/4194304)": true,
    "(max-aspect-ratio: 48/1)": true,
    "(max-aspect-ratio: 4831838207/4294967296)": true,
    "(max-aspect-ratio: 49/1)": true,
    "(max-aspect-ratio: 49151/32768)": true,
    "(max-aspect-ratio: 4947802324991/4398046511104)": true,
    "(max-aspect-ratio: 5/1)": true,
    "(max-aspect-ratio: 5/4)": true,
    "(max-aspect-ratio: 5/4)": true,
    "(max-aspect-ratio: 50/1)": true,
    "(max-aspect-ratio: 50331647/33554432)": true,
    "(max-aspect-ratio: 51/1)": true,
    "(max-aspect-ratio: 511/256)": true,
    "(max-aspect-ratio: 5119/4096)": true,
    "(max-aspect-ratio: 51539607551/34359738368)": true,
    "(max-aspect-ratio: 52223/1024)": true,
    "(max-aspect-ratio: 524287/262144)": true,
    "(max-aspect-ratio: 5242879/4194304)": true,
    "(max-aspect-ratio: 52776558133247/35184372088832)": true,
    "(max-aspect-ratio: 53477375/1048576)": true,
    "(max-aspect-ratio: 535/512)": true,
    "(max-aspect-ratio: 536870911/268435456)": true,
    "(max-aspect-ratio: 5368709119/4294967296)": true,
    "(max-aspect-ratio: 543/512)": true,
    "(max-aspect-ratio: 54760833023/1073741824)": true,
    "(max-aspect-ratio: 548863/524288)": true,
    "(max-aspect-ratio: 549755813887/274877906944)": true,
    "(max-aspect-ratio: 5497558138879/4398046511104)": true,
    "(max-aspect-ratio: 557055/524288)": true,
    "(max-aspect-ratio: 56075093016575/1099511627776)": true,
    "(max-aspect-ratio: 562036735/536870912)": true,
    "(max-aspect-ratio: 562949953421311/281474976710656)": true,
    "(max-aspect-ratio: 570425343/536870912)": true,
    "(max-aspect-ratio: 575/512)": true,
    "(max-aspect-ratio: 575525617663/549755813888)": true,
    "(max-aspect-ratio: 584115552255/549755813888)": true,
    "(max-aspect-ratio: 589338232487935/562949953421312)": true,
    "(max-aspect-ratio: 589823/524288)": true,
    "(max-aspect-ratio: 598134325510143/562949953421312)": true,
    "(max-aspect-ratio: 6/1)": true,
    "(max-aspect-ratio: 603979775/536870912)": true,
    "(max-aspect-ratio: 6143/4096)": true,
    "(max-aspect-ratio: 618475290623/549755813888)": true,
    "(max-aspect-ratio: 6291455/4194304)": true,
    "(max-aspect-ratio: 63/32)": true,
    "(max-aspect-ratio: 633318697598975/562949953421312)": true,
    "(max-aspect-ratio: 639/512)": true,
    "(max-aspect-ratio: 6442450943/4294967296)": true,
    "(max-aspect-ratio: 6527/128)": true,
    "(max-aspect-ratio: 65535/32768)": true,
    "(max-aspect-ratio: 655359/524288)": true,
    "(max-aspect-ratio: 6597069766655/4398046511104)": true,
    "(max-aspect-ratio: 6684671/131072)": true,
    "(max-aspect-ratio: 67/64)": true,
    "(max-aspect-ratio: 67/64)": true,
    "(max-aspect-ratio: 67108863/33554432)": true,
    "(max-aspect-ratio: 671088639/536870912)": true,
    "(max-aspect-ratio: 6845104127/134217728)": true,
    "(max-aspect-ratio: 68607/65536)": true,
    "(max-aspect-ratio: 68719476735/34359738368)": true,
    "(max-aspect-ratio: 687194767359/549755813888)": true,
    "(max-aspect-ratio: 69631/65536)": true,
    "(max-aspect-ratio: 7/1)": true,
    "(max-aspect-ratio: 7/4)": true,
    "(max-aspect-ratio: 7009386627071/137438953472)": true,
    "(max-aspect-ratio: 70254591/67108864)": true,
    "(max-aspect-ratio: 70368744177663/35184372088832)": true,
    "(max-aspect-ratio: 703687441776639/562949953421312)": true,
    "(max-aspect-ratio: 71/64)": true,
    "(max-aspect-ratio: 71303167/67108864)": true,
    "(max-aspect-ratio: 7177611906121727/140737488355328)": true,
    "(max-aspect-ratio: 71940702207/68719476736)": true,
    "(max-aspect-ratio: 73014444031/68719476736)": true,
    "(max-aspect-ratio: 73667279060991/70368744177664)": true,
    "(max-aspect-ratio: 73727/65536)": true,
    "(max-aspect-ratio: 74766790688767/70368744177664)": true,
    "(max-aspect-ratio: 75497471/67108864)": true,
    "(max-aspect-ratio: 767/512)": true,
    "(max-aspect-ratio: 77309411327/68719476736)": true,
    "(max-aspect-ratio: 786431/524288)": true,
    "(max-aspect-ratio: 79/64)": true,
    "(max-aspect-ratio: 79164837199871/70368744177664)": true,
    "(max-aspect-ratio: 8/1)": true,
    "(max-aspect-ratio: 805306367/536870912)": true,
    "(max-aspect-ratio: 815/16)": true,
    "(max-aspect-ratio: 8191/4096)": true,
    "(max-aspect-ratio: 81919/65536)": true,
    "(max-aspect-ratio: 824633720831/549755813888)": true,
    "(max-aspect-ratio: 835583/16384)": true,
    "(max-aspect-ratio: 8388607/4194304)": true,
    "(max-aspect-ratio: 83886079/67108864)": true,
    "(max-aspect-ratio: 844424930131967/562949953421312)": true,
    "(max-aspect-ratio: 855638015/16777216)": true,
    "(max-aspect-ratio: 8575/8192)": true,
    "(max-aspect-ratio: 8589934591/4294967296)": true,
    "(max-aspect-ratio: 85899345919/68719476736)": true,
    "(max-aspect-ratio: 8703/8192)": true,
    "(max-aspect-ratio: 876173328383/17179869184)": true,
    "(max-aspect-ratio: 8781823/8388608)": true,
    "(max-aspect-ratio: 8796093022207/4398046511104)": true,
    "(max-aspect-ratio: 87960930222079/70368744177664)": true,
    "(max-aspect-ratio: 8912895/8388608)": true,
    "(max-aspect-ratio: 897201488265215/17592186044416)": true,
    "(max-aspect-ratio: 8992587775/8589934592)": true,
    "(max-aspect-ratio: 9/1)": true,
    "(max-aspect-ratio: 9/8)": true,
    "(max-aspect-ratio: 9/8)": true,
    "(max-aspect-ratio: 9126805503/8589934592)": true,
    "(max-aspect-ratio: 9208409882623/8796093022208)": true,
    "(max-aspect-ratio: 9215/8192)": true,
    "(max-aspect-ratio: 9345848836095/8796093022208)": true,
    "(max-aspect-ratio: 9437183/8388608)": true,
    "(max-aspect-ratio: 95/64)": true,
    "(max-aspect-ratio: 9663676415/8589934592)": true,
    "(max-aspect-ratio: 98303/65536)": true,
    "(max-aspect-ratio: 9895604649983/8796093022208)": true,
    "(max-color-index: 0)": true,
    "(max-color-index: 0)": true,
    "(max-color-index: 1)": true,
    "(max-color-index: 1)": true,
    "(max-color-index: 1000)": true,
    "(max-color-index: 1000)": true,
    "(max-color-index: 125)": true,
    "(max-color-index: 125)": true,
    "(max-color-index: 15)": true,
    "(max-color-index: 15)": true,
    "(max-color-index: 250)": true,
    "(max-color-index: 250)": true,
    "(max-color-index: 3)": true,
    "(max-color-index: 3)": true,
    "(max-color-index: 31)": true,
    "(max-color-index: 31)": true,
    "(max-color-index: 500)": true,
    "(max-color-index: 500)": true,
    "(max-color-index: 62)": true,
    "(max-color-index: 62)": true,
    "(max-color-index: 7)": true,
    "(max-color-index: 7)": true,
    "(max-color: 4)": false,
    "(max-color: 4)": false,
    "(max-color: 6)": false,
    "(max-color: 6)": false,
    "(max-color: 7)": false,
    "(max-color: 7)": false,
    "(max-color: 8)": true,
    "(max-color: 8)": true,
    "(max-height: 10066329600px)": true,
    "(max-height: 10307921510400px)": true,
    "(max-height: 1050px)": true,
    "(max-height: 10555311626649600px)": true,
    "(max-height: 1125px)": true,
    "(max-height: 1163px)": true,
    "(max-height: 1182px)": true,
    "(max-height: 1191px)": true,
    "(max-height: 1196px)": true,
    "(max-height: 1198px)": true,
    "(max-height: 1199px)": true,
    "(max-height: 1200px)": true,
    "(max-height: 1200px)": true,
    "(max-height: 1228800px)": true,
    "(max-height: 1258291200px)": true,
    "(max-height: 1288490188800px)": true,
    "(max-height: 1319413953331200px)": true,
    "(max-height: 153600px)": true,
    "(max-height: 157286400px)": true,
    "(max-height: 161061273600px)": true,
    "(max-height: 164926744166400px)": true,
    "(max-height: 168884986026393600px)": true,
    "(max-height: 19200px)": true,
    "(max-height: 19660800px)": true,
    "(max-height: 20132659200px)": true,
    "(max-height: 20615843020800px)": true,
    "(max-height: 21110623253299200px)": true,
    "(max-height: 2400px)": true,
    "(max-height: 2457600px)": true,
    "(max-height: 2516582400px)": true,
    "(max-height: 2576980377600px)": true,
    "(max-height: 2638827906662400px)": true,
    "(max-height: 307200px)": true,
    "(max-height: 314572800px)": true,
    "(max-height: 322122547200px)": true,
    "(max-height: 329853488332800px)": true,
    "(max-height: 337769972052787200px)": true,
    "(max-height: 38400px)": true,
    "(max-height: 39321600px)": true,
    "(max-height: 40265318400px)": true,
    "(max-height: 41231686041600px)": true,
    "(max-height: 42221246506598400px)": true,
    "(max-height: 4800px)": true,
    "(max-height: 4915200px)": true,
    "(max-height: 5033164800px)": true,
    "(max-height: 506654958079180800px)": true,
    "(max-height: 5153960755200px)": true,
    "(max-height: 5277655813324800px)": true,
    "(max-height: 591097451092377600px)": true,
    "(max-height: 600px)": false,
    "(max-height: 600px)": false,
    "(max-height: 614400px)": true,
    "(max-height: 629145600px)": true,
    "(max-height: 633318697598976000px)": true,
    "(max-height: 644245094400px)": true,
    "(max-height: 654429320852275200px)": true,
    "(max-height: 659706976665600px)": true,
    "(max-height: 664984632478924800px)": true,
    "(max-height: 670262288292249600px)": true,
    "(max-height: 672901116198912000px)": true,
    "(max-height: 674220530152243200px)": true,
    "(max-height: 674880237128908800px)": true,
    "(max-height: 675210090617241600px)": true,
    "(max-height: 675375017361408000px)": true,
    "(max-height: 675457480733491200px)": true,
    "(max-height: 675498712419532800px)": true,
    "(max-height: 675519328262553600px)": true,
    "(max-height: 675529636184064000px)": true,
    "(max-height: 675534790144819200px)": true,
    "(max-height: 675537367125196800px)": true,
    "(max-height: 675538655615385600px)": true,
    "(max-height: 675539299860480000px)": true,
    "(max-height: 675539621983027200px)": true,
    "(max-height: 675539783044300800px)": true,
    "(max-height: 675539863574937600px)": true,
    "(max-height: 675539903840256000px)": true,
    "(max-height: 675539923972915200px)": true,
    "(max-height: 675539934039244800px)": true,
    "(max-height: 675539939072409600px)": true,
    "(max-height: 675539941588992000px)": true,
    "(max-height: 675539942847283200px)": true,
    "(max-height: 675539943476428800px)": true,
    "(max-height: 675539943791001600px)": true,
    "(max-height: 675539943948288000px)": true,
    "(max-height: 675539944026931200px)": true,
    "(max-height: 675539944066252800px)": true,
    "(max-height: 675539944085913600px)": true,
    "(max-height: 675539944095744000px)": true,
    "(max-height: 675539944100659200px)": true,
    "(max-height: 675539944103116800px)": true,
    "(max-height: 675539944104345600px)": true,
    "(max-height: 675539944104960000px)": true,
    "(max-height: 675539944105267200px)": true,
    "(max-height: 675539944105420800px)": true,
    "(max-height: 675539944105497600px)": true,
    "(max-height: 675539944105536000px)": true,
    "(max-height: 675539944105555200px)": true,
    "(max-height: 675539944105564800px)": true,
    "(max-height: 675539944105569500px)": true,
    "(max-height: 675539944105572000px)": true,
    "(max-height: 675539944105573100px)": true,
    "(max-height: 675539944105573800px)": true,
    "(max-height: 675539944105574100px)": true,
    "(max-height: 675539944105574400px)": true,
    "(max-height: 750px)": false,
    "(max-height: 750px)": false,
    "(max-height: 76800px)": true,
    "(max-height: 78643200px)": true,
    "(max-height: 80530636800px)": true,
    "(max-height: 82463372083200px)": true,
    "(max-height: 825px)": false,
    "(max-height: 825px)": false,
    "(max-height: 84442493013196800px)": true,
    "(max-height: 863px)": true,
    "(max-height: 863px)": false,
    "(max-height: 882px)": true,
    "(max-height: 882px)": false,
    "(max-height: 887px)": true,
    "(max-height: 887px)": false,
    "(max-height: 889px)": true,
    "(max-height: 889px)": false,
    "(max-height: 890px)": true,
    "(max-height: 890px)": false,
    "(max-height: 891px)": true,
    "(max-height: 891px)": true,
    "(max-height: 896px)": true,
    "(max-height: 898px)": true,
    "(max-height: 899px)": true,
    "(max-height: 900px)": true,
    "(max-height: 900px)": true,
    "(max-height: 9600px)": true,
    "(max-height: 9830400px)": true,
    "(max-monochrome: 0)": true,
    "(max-monochrome: 0)": true,
    "(max-monochrome: 1)": true,
    "(max-monochrome: 1)": true,
    "(max-resolution: 100663296dpi)": true,
    "(max-resolution: 103079215104dpi)": true,
    "(max-resolution: 105553116266496dpi)": true,
    "(max-resolution: 12288dpi)": true,
    "(max-resolution: 12582912dpi)": true,
    "(max-resolution: 12884901888dpi)": true,
    "(max-resolution: 13194139533312dpi)": true,
    "(max-resolution: 13510798882111488dpi)": true,
    "(max-resolution: 1536dpi)": true,
    "(max-resolution: 1572864dpi)": true,
    "(max-resolution: 1610612736dpi)": true,
    "(max-resolution: 1649267441664dpi)": true,
    "(max-resolution: 1688849860263936dpi)": true,
    "(max-resolution: 192dpi)": true,
    "(max-resolution: 196608dpi)": true,
    "(max-resolution: 201326592dpi)": true,
    "(max-resolution: 20266198323167230dpi)": true,
    "(max-resolution: 206158430208dpi)": true,
    "(max-resolution: 211106232532992dpi)": true,
    "(max-resolution: 23643898043695104dpi)": true,
    "(max-resolution: 24576dpi)": true,
    "(max-resolution: 24dpi)": false,
    "(max-resolution: 24dpi)": false,
    "(max-resolution: 25165824dpi)": true,
    "(max-resolution: 25332747903959040dpi)": true,
    "(max-resolution: 25769803776dpi)": true,
    "(max-resolution: 26177172834091010dpi)": true,
    "(max-resolution: 26388279066624dpi)": true,
    "(max-resolution: 26599385299156990dpi)": true,
    "(max-resolution: 26810491531689984dpi)": true,
    "(max-resolution: 26916044647956480dpi)": true,
    "(max-resolution: 26968821206089730dpi)": true,
    "(max-resolution: 26995209485156350dpi)": true,
    "(max-resolution: 27008403624689664dpi)": true,
    "(max-resolution: 27015000694456320dpi)": true,
    "(max-resolution: 27018299229339650dpi)": true,
    "(max-resolution: 27019948496781310dpi)": true,
    "(max-resolution: 27020773130502144dpi)": true,
    "(max-resolution: 27021185447362560dpi)": true,
    "(max-resolution: 27021391605792770dpi)": true,
    "(max-resolution: 27021494685007870dpi)": true,
    "(max-resolution: 27021546224615424dpi)": true,
    "(max-resolution: 27021571994419200dpi)": true,
    "(max-resolution: 27021584879321090dpi)": true,
    "(max-resolution: 27021591321772030dpi)": true,
    "(max-resolution: 27021594542997504dpi)": true,
    "(max-resolution: 27021596153610240dpi)": true,
    "(max-resolution: 27021596958916610dpi)": true,
    "(max-resolution: 27021597361569790dpi)": true,
    "(max-resolution: 27021597562896384dpi)": true,
    "(max-resolution: 27021597663559680dpi)": true,
    "(max-resolution: 27021597713891330dpi)": true,
    "(max-resolution: 27021597739057150dpi)": true,
    "(max-resolution: 27021597751640064dpi)": true,
    "(max-resolution: 27021597757931520dpi)": true,
    "(max-resolution: 27021597761077250dpi)": true,
    "(max-resolution: 27021597762650110dpi)": true,
    "(max-resolution: 27021597763436544dpi)": true,
    "(max-resolution: 27021597763829760dpi)": true,
    "(max-resolution: 27021597764026370dpi)": true,
    "(max-resolution: 27021597764124670dpi)": true,
    "(max-resolution: 27021597764173824dpi)": true,
    "(max-resolution: 27021597764198400dpi)": true,
    "(max-resolution: 27021597764210690dpi)": true,
    "(max-resolution: 27021597764216830dpi)": true,
    "(max-resolution: 27021597764219904dpi)": true,
    "(max-resolution: 27021597764221440dpi)": true,
    "(max-resolution: 27021597764222210dpi)": true,
    "(max-resolution: 27021597764222590dpi)": true,
    "(max-resolution: 27021597764222784dpi)": true,
    "(max-resolution: 27021597764222880dpi)": true,
    "(max-resolution: 27021597764222930dpi)": true,
    "(max-resolution: 27021597764222950dpi)": true,
    "(max-resolution: 27021597764222964dpi)": true,
    "(max-resolution: 27021597764222976dpi)": true,
    "(max-resolution: 3072dpi)": true,
    "(max-resolution: 3145728dpi)": true,
    "(max-resolution: 3221225472dpi)": true,
    "(max-resolution: 3298534883328dpi)": true,
    "(max-resolution: 3377699720527872dpi)": true,
    "(max-resolution: 384dpi)": true,
    "(max-resolution: 393216dpi)": true,
    "(max-resolution: 402653184dpi)": true,
    "(max-resolution: 412316860416dpi)": true,
    "(max-resolution: 422212465065984dpi)": true,
    "(max-resolution: 48dpi)": false,
    '(max-resolution: 48dpi)': false,
    "(max-resolution: 49152dpi)": true,
    "(max-resolution: 50331648dpi)": true,
    "(max-resolution: 51539607552dpi)": true,
    "(max-resolution: 52776558133248dpi)": true,
    "(max-resolution: 6144dpi)": true,
    "(max-resolution: 6291456dpi)": true,
    "(max-resolution: 6442450944dpi)": true,
    "(max-resolution: 6597069766656dpi)": true,
    "(max-resolution: 6755399441055744dpi)": true,
    "(max-resolution: 72dpi)": false,
    "(max-resolution: 72dpi)": false,
    "(max-resolution: 768dpi)": true,
    "(max-resolution: 786432dpi)": true,
    "(max-resolution: 805306368dpi)": true,
    "(max-resolution: 824633720832dpi)": true,
    "(max-resolution: 844424930131968dpi)": true,
    "(max-resolution: 84dpi)": false,
    "(max-resolution: 84dpi)": false,
    "(max-resolution: 90dpi)": false,
    "(max-resolution: 90dpi)": false,
    "(max-resolution: 93dpi)": false,
    "(max-resolution: 93dpi)": false,
    "(max-resolution: 95dpi)": false,
    "(max-resolution: 95dpi)": false,
    "(max-resolution: 96dpi)": true,
    "(max-resolution: 96dpi)": true,
    "(max-resolution: 98304dpi)": true,
    "(max-width: 10066329600px)": true,
    "(max-width: 1013px)": true,
    "(max-width: 10307921510400px)": true,
    "(max-width: 1032px)": true,
    "(max-width: 1041px)": true,
    "(max-width: 1046px)": true,
    "(max-width: 1048px)": true,
    "(max-width: 1049px)": true,
    "(max-width: 1050px)": true,
    "(max-width: 1050px)": true,
    "(max-width: 10555311626649600px)": true,
    "(max-width: 1125px)": true,
    "(max-width: 1163px)": true,
    "(max-width: 1182px)": true,
    "(max-width: 1191px)": true,
    "(max-width: 1196px)": true,
    "(max-width: 1198px)": true,
    "(max-width: 1199px)": true,
    "(max-width: 1200px)": true,
    "(max-width: 1200px)": true,
    "(max-width: 1228800px)": true,
    "(max-width: 1258291200px)": true,
    "(max-width: 1288490188800px)": true,
    "(max-width: 1319413953331200px)": true,
    "(max-width: 153600px)": true,
    "(max-width: 157286400px)": true,
    "(max-width: 161061273600px)": true,
    "(max-width: 164926744166400px)": true,
    "(max-width: 168884986026393600px)": true,
    "(max-width: 19200px)": true,
    "(max-width: 19660800px)": true,
    "(max-width: 20132659200px)": true,
    "(max-width: 20615843020800px)": true,
    "(max-width: 21110623253299200px)": true,
    "(max-width: 2400px)": true,
    "(max-width: 2457600px)": true,
    "(max-width: 2516582400px)": true,
    "(max-width: 2576980377600px)": true,
    "(max-width: 2638827906662400px)": true,
    "(max-width: 307200px)": true,
    "(max-width: 314572800px)": true,
    "(max-width: 322122547200px)": true,
    "(max-width: 329853488332800px)": true,
    "(max-width: 337769972052787200px)": true,
    "(max-width: 38400px)": true,
    "(max-width: 39321600px)": true,
    "(max-width: 40265318400px)": true,
    "(max-width: 41231686041600px)": true,
    "(max-width: 42221246506598400px)": true,
    "(max-width: 4800px)": true,
    "(max-width: 4915200px)": true,
    "(max-width: 5033164800px)": true,
    "(max-width: 506654958079180800px)": true,
    "(max-width: 5153960755200px)": true,
    "(max-width: 5277655813324800px)": true,
    "(max-width: 591097451092377600px)": true,
    "(max-width: 600px)": false,
    "(max-width: 600px)": false,
    "(max-width: 614400px)": true,
    "(max-width: 629145600px)": true,
    "(max-width: 633318697598976000px)": true,
    "(max-width: 644245094400px)": true,
    "(max-width: 654429320852275200px)": true,
    "(max-width: 659706976665600px)": true,
    "(max-width: 664984632478924800px)": true,
    "(max-width: 670262288292249600px)": true,
    "(max-width: 672901116198912000px)": true,
    "(max-width: 674220530152243200px)": true,
    "(max-width: 674880237128908800px)": true,
    "(max-width: 675210090617241600px)": true,
    "(max-width: 675375017361408000px)": true,
    "(max-width: 675457480733491200px)": true,
    "(max-width: 675498712419532800px)": true,
    "(max-width: 675519328262553600px)": true,
    "(max-width: 675529636184064000px)": true,
    "(max-width: 675534790144819200px)": true,
    "(max-width: 675537367125196800px)": true,
    "(max-width: 675538655615385600px)": true,
    "(max-width: 675539299860480000px)": true,
    "(max-width: 675539621983027200px)": true,
    "(max-width: 675539783044300800px)": true,
    "(max-width: 675539863574937600px)": true,
    "(max-width: 675539903840256000px)": true,
    "(max-width: 675539923972915200px)": true,
    "(max-width: 675539934039244800px)": true,
    "(max-width: 675539939072409600px)": true,
    "(max-width: 675539941588992000px)": true,
    "(max-width: 675539942847283200px)": true,
    "(max-width: 675539943476428800px)": true,
    "(max-width: 675539943791001600px)": true,
    "(max-width: 675539943948288000px)": true,
    "(max-width: 675539944026931200px)": true,
    "(max-width: 675539944066252800px)": true,
    "(max-width: 675539944085913600px)": true,
    "(max-width: 675539944095744000px)": true,
    "(max-width: 675539944100659200px)": true,
    "(max-width: 675539944103116800px)": true,
    "(max-width: 675539944104345600px)": true,
    "(max-width: 675539944104960000px)": true,
    "(max-width: 675539944105267200px)": true,
    "(max-width: 675539944105420800px)": true,
    "(max-width: 675539944105497600px)": true,
    "(max-width: 675539944105536000px)": true,
    "(max-width: 675539944105555200px)": true,
    "(max-width: 675539944105564800px)": true,
    "(max-width: 675539944105569500px)": true,
    "(max-width: 675539944105572000px)": true,
    "(max-width: 675539944105573100px)": true,
    "(max-width: 675539944105573800px)": true,
    "(max-width: 675539944105574100px)": true,
    "(max-width: 675539944105574400px)": true,
    "(max-width: 76800px)": true,
    "(max-width: 78643200px)": true,
    "(max-width: 80530636800px)": true,
    "(max-width: 82463372083200px)": true,
    "(max-width: 84442493013196800px)": true,
    "(max-width: 900px)": true,
    "(max-width: 900px)": false,
    "(max-width: 919px)": true,
    "(max-width: 919px)": false,
    "(max-width: 929px)": true,
    "(max-width: 929px)": false,
    "(max-width: 932px)": true,
    "(max-width: 933px)": true,
    "(max-width: 934px)": true,
    "(max-width: 934px)": true,
    "(max-width: 936px)": true,
    "(max-width: 937px)": true,
    "(max-width: 938px)": true,
    "(max-width: 938px)": true,
    "(max-width: 957px)": true,
    "(max-width: 9600px)": true,
    "(max-width: 966px)": true,
    "(max-width: 971px)": true,
    "(max-width: 973px)": true,
    "(max-width: 974px)": true,
    "(max-width: 975px)": true,
    "(max-width: 975px)": true,
    "(max-width: 9830400px)": true,
    "(min-resolution: 0.0001dpi)": true,
    "(min-resolution: 0.0001dpi)": true,
    "(orientation: landscape)": false,
    "(orientation: landscape)": true,
    "(orientation: portrait)": true,
    "(orientation: portrait)": false,
    "(overflow-block: none)": false,
    "(overflow-block: none)": false,
    "(overflow-block: optional-paged)": false,
    "(overflow-block: optional-paged)": false,
    "(overflow-block: paged)": false,
    "(overflow-block: paged)": false,
    "(overflow-block: scroll)": true,
    "(overflow-block: scroll)": false,
    "(overflow-inline: none)": false,
    "(overflow-inline: none)": false,
    "(overflow-inline: scroll)": true,
    "(overflow-inline: scroll)": false,
    "(pointer: coarse)": false,
    "(pointer: coarse)": false,
    "(pointer: fine)": true,
    "(pointer: fine)": true,
    "(pointer: none)": false,
    "(pointer: none)": false,
    "(prefers-color-scheme: dark)": true,
    "(prefers-color-scheme: dark)": true,
    "(prefers-color-scheme: light)": false,
    "(prefers-color-scheme: light)": false,
    "(prefers-color-scheme: no-preference)": false,
    "(prefers-color-scheme: no-preference)": false,
    "(prefers-contrast: high)": false,
    "(prefers-contrast: high)": false,
    "(prefers-contrast: low)": false,
    "(prefers-contrast: low)": false,
    "(prefers-contrast: no-preference)": true,
    "(prefers-contrast: no-preference)": true,
    "(prefers-reduced-motion: no-preference)": true,
    "(prefers-reduced-motion: no-preference)": true,
    "(prefers-reduced-motion: reduce)": false,
    "(prefers-reduced-motion: reduce)": false,
    "(prefers-reduced-transparency: no-preference)": false,
    "(prefers-reduced-transparency: no-preference)": false,
    "(prefers-reduced-transparency: reduce)": false,
    "(prefers-reduced-transparency: reduce)": false,
    "(q: 1)": false,
    "(q: 1)": false,
    "(scan: interlace)": false,
    "(scan: interlace)": false,
    "(scan: progressive)": false,
    "(scan: progressive)": false,
    "(scripting: enabled)": false,
    "(scripting: enabled)": false,
    "(scripting: initial-only)": false,
    "(scripting: initial-only)": false,
    "(scripting: none)": false,
    "(scripting: none)": false,
    "(update: fast)": true,
    "(update: fast)": false,
    "(update: none)": false,
    "(update: none)": false,
    "(update: slow)": false,
    "(update: slow)": false
}


v_console_log = console.log
Object.defineProperties(MediaQueryList.prototype, {
    addListener: {
        addListener() {
            v_console_log("  [*] MediaQueryList -> addListener[get]", {});
            return {}
        }
    },
    removeListener: {
        removeListener() {
            v_console_log("  [*] MediaQueryList -> removeListener[get]", {});
            return {}
        }
    },
    // matches: {"value":0,"writable":true,"enumerable":true,"configurable":false},
    matches: {
        get() {
            medias.push(this.type[0]);
            let t = mediaRes[this.type[0]];
            if (t === undefined) {
                t = false;
            }
            // if (_random() > 0.5){
            //     t = true
            // }else {
            //     t = false;
            // }
            v_console_log("  [*] MediaQueryList -> matches[get]", this.type[0], t);

            return t;
        }
    },

    media: {"value": 1, "writable": true, "enumerable": true, "configurable": false},
    onchange: {"value": 2, "writable": true, "enumerable": true, "configurable": false},
})
window.matchMedia = function matchMedia(type) {
    let t = new MediaQueryList()
    t.type = arguments
    return t;
}
window.structuredClone = v_saf(function structuredClone() {
    throw TypeError("Uncaught DOMException: Failed to execute 'structuredClone' on 'Window'")
})
// window.window = window
print = console.log

// console.log = function () {}
document = window.document;
XMLHttpRequest = window.XMLHttpRequest
dispatchEvent = window.dispatchEvent
_console = console.log
global = window
window.global = window


var WebGLRenderingContext = class WebGLRenderingContext {
    constructor(aaa) {
        console.log('new WebGLRenderingContext', aaa)
    }

    createBuffer() {
        v_console_log('  [*] WebGLRenderingContext -> createBuffer[func]');
        return v_new(WebGLBuffer)
    }

    bindBuffer(target, buffer) {
        v_console_log('  [*] WebGLRenderingContext -> bindBuffer[func]', target, buffer);
        return v_new(WebGLBuffer)
    }

    getAttribLocation(program, name) {
        v_console_log('  [*] WebGLRenderingContext -> getAttribLocation[func]', program, name);
        switch (name) {
            case 'aPosition':
                return 0;
            case 'aColor':
                return 1;
        }
    }

    vertexAttribPointer(index, size, type, normalized, stride, offset) {
        v_console_log('  [*] WebGLRenderingContext -> vertexAttribPointer[func]', index, size, type, normalized, stride, offset);
    }

    enableVertexAttribArray(index) {
        v_console_log('  [*] WebGLRenderingContext -> enableVertexAttribArray[func]', index);
    }

    useProgram(index) {
        v_console_log('  [*] WebGLRenderingContext -> useProgram[func]', index);
    }

    getUniformLocation(program, name) {
        v_console_log('  [*] WebGLRenderingContext -> getUniformLocation[func]', program, name);
        return proxy({}, 'getUniformLocation')
    }

    uniform4fv(program, name) {
        v_console_log('  [*] WebGLRenderingContext -> uniform4fv[func]', program, name);
    }

    drawArrays(mode, first, count) {
        v_console_log('  [*] WebGLRenderingContext -> drawArrays[func]', mode, first, count);
    }

    readPixels(x, y, width, height, format, type, pixels) {
        for (let i = 0; i < pixels.length - 1; i++) {
            pixels.fill(parseInt(Math.random() * 210 + 10), i, i + 1)
        }
        v_console_log('  [*] WebGLRenderingContext -> readPixels[func]', x, y, width, height, format, type, pixels)
    }

    bufferData(target, size, srcData, usage, srcOffSet, length) {
        v_console_log('  [*] WebGLRenderingContext -> bufferData[func]', target, size, srcData, usage, srcOffSet, length);
        return v_new(WebGLBuffer)
    }

    createProgram() {
        v_console_log('  [*] WebGLRenderingContext -> createProgram[func]');
        return v_new(WebGLProgram)
    }

    createShader(a) {
        v_console_log('  [*] WebGLRenderingContext -> createShader[func]', a);
        return v_new(WebGLShader)
    }

    shaderSource(shader, originalSource) {
        v_console_log('  [*] WebGLRenderingContext -> shaderSource[func]', shader, originalSource);
        this._originalSource = originalSource;
    }

    compileShader(shader) {
        v_console_log('  [*] WebGLRenderingContext -> compileShader[func]', shader);
        // this._originalSource = originalSource;
    }

    getShaderParameter(shader, pname) {
        v_console_log('  [*] WebGLRenderingContext -> getShaderParameter[func]', shader, pname);
        switch (pname) {
            case 35713:
                return true;
                break;
        }
    }

    attachShader(program, shader) {
        v_console_log('  [*] WebGLRenderingContext -> attachShader[func]', program, shader);

    }

    linkProgram(program, shader) {
        v_console_log('  [*] WebGLRenderingContext -> linkProgram[func]', program, shader);

    }

    getProgramParameter(program, pname) {
        v_console_log('  [*] WebGLRenderingContext -> getProgramParameter[func]', program, pname);
        if (pname === 35714) {
            return true;
        }

    }

    getSupportedExtensions() {
        // window.debug = true;
        v_console_log('  [*] WebGLRenderingContext -> getSupportedExtensions[func]')
        return [
            "ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float", "EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
            "EXT_shader_texture_lod", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB",
            "KHR_parallel_shader_compile", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear",
            "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_compressed_texture_s3tc",
            "WEBKIT_WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders",
            "WEBGL_depth_texture", "WEBKIT_WEBGL_depth_texture", "WEBGL_draw_buffers", "WEBGL_lose_context", "WEBKIT_WEBGL_lose_context", "WEBGL_multi_draw",
        ]
    }

    getExtension(key) {
        v_console_log('  [*] WebGLRenderingContext -> getExtension[func]:', key)

        class WebGLDebugRendererInfo {
            get UNMASKED_VENDOR_WEBGL() {
                return 37445
            }

            get UNMASKED_RENDERER_WEBGL() {
                return 37446
            }
        }

        class EXTTextureFilterAnisotropic {
        }

        Object.defineProperties(EXTTextureFilterAnisotropic.prototype, {
            MAX_TEXTURE_MAX_ANISOTROPY_EXT: {
                value: 34047
            }
        })

        class WebGLLoseContext {
            loseContext() {
            }

            restoreContext() {
            }
        }

        if (key === "WEBKIT_EXT_texture_filter_anisotropic") {
            var r = null
        }
        if (key === "MOZ_EXT_texture_filter_anisotropic") {
            var r = null
        }
        if (key == 'WEBGL_debug_renderer_info') {
            var r = new WebGLDebugRendererInfo
        }
        if (key == 'EXT_texture_filter_anisotropic') {
            var r = new EXTTextureFilterAnisotropic
        }
        if (key == 'WEBGL_lose_context') {
            var r = new WebGLLoseContext
        }

        return r
    }

    getParameter(key) {
        v_console_log('  [*] WebGLRenderingContext -> getParameter[func]1:', key)
        let res;
        let _toggle = {
            3413: 8,
            3412: 8,
            3411: 8,
            3410: 8,
            3414: 24,
            35661: 32,
            34076: 16384,
            36349: 1024,
            34024: 16384,
            34930: 16,
            3379: 16384,
            36348: 31,
            34921: 16,
            35660: 16,
            36347: 1024,
            7937: 'WebKit WebGL',
            35724: 'WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)',
            3415: 0,
            7936: 'WebKit',
            7938: 'WebGL 1.0 (OpenGL ES 2.0 Chromium)',
            37445: 'Google Inc.',
            // 37446: 'ANGLE (Apple, Apple M1 Max, OpenGL 4.1)',
            34047: 16
        }
        _toggle = window.ENV.glres;
        if (_toggle[key]) {
            res = _toggle[key]

        } else {

            if (key == 33902) {
                res = new Float32Array([1, 1])
            }
            if (key == 33901) {
                res = new Float32Array([1, 64])
            }
            if (key == 3386) {
                res = new Int32Array([16384, 16384])
            }
            if (key === 3415) {
                res = 0
            }

        }
        v_console_log('  [*] WebGLRenderingContext -> getParameter[func]2:', key, res)

        return res;
    }

    getContextAttributes() {
        v_console_log('  [*] WebGLRenderingContext -> getContextAttributes[func]')
        return {
            alpha: true,
            antialias: true,
            depth: true,
            desynchronized: false,
            failIfMajorPerformanceCaveat: false,
            powerPreference: "default",
            premultipliedAlpha: true,
            preserveDrawingBuffer: false,
            stencil: false,
            xrCompatible: false,
        }
    }

    getShaderPrecisionFormat(a, b) {
        v_console_log('  [*] WebGLRenderingContext -> getShaderPrecisionFormat[func]', a, b)

        function WebGLShaderPrecisionFormat() {
        }

        var r1 = v_new(WebGLShaderPrecisionFormat)
        r1.rangeMin = 127
        r1.rangeMax = 127
        r1.precision = 23
        var r2 = v_new(WebGLShaderPrecisionFormat)
        r2.rangeMin = 31
        r2.rangeMax = 30
        r2.precision = 0
        if (a == 35633 && b == 36338) {
            return r1
        }
        if (a == 35633 && b == 36337) {
            return r1
        }
        if (a == 35633 && b == 36336) {
            return r1
        }
        if (a == 35633 && b == 36341) {
            return r2
        }
        if (a == 35633 && b == 36340) {
            return r2
        }
        if (a == 35633 && b == 36339) {
            return r2
        }
        if (a == 35632 && b == 36338) {
            return r1
        }
        if (a == 35632 && b == 36337) {
            return r1
        }
        if (a == 35632 && b == 36336) {
            return r1
        }
        if (a == 35632 && b == 36341) {
            return r2
        }
        if (a == 35632 && b == 36340) {
            return r2
        }
        if (a == 35632 && b == 36339) {
            return r2
        }
        throw Error('getShaderPrecisionFormat')
    }
}
Object.defineProperties(WebGLRenderingContext.prototype, {
    canvas: {writable: undefined, enumerable: true, configurable: true},
    drawingBufferWidth: {writable: undefined, enumerable: true, configurable: true},
    drawingBufferHeight: {writable: undefined, enumerable: true, configurable: true},
    drawingBufferColorSpace: {writable: undefined, enumerable: true, configurable: true},
    unpackColorSpace: {writable: undefined, enumerable: true, configurable: true},
    DEPTH_BUFFER_BIT: {value: 256, writable: false, enumerable: true, configurable: false},
    STENCIL_BUFFER_BIT: {value: 1024, writable: false, enumerable: true, configurable: false},
    COLOR_BUFFER_BIT: {value: 16384, writable: false, enumerable: true, configurable: false},
    POINTS: {writable: false, enumerable: true, configurable: false},
    LINES: {value: 1, writable: false, enumerable: true, configurable: false},
    LINE_LOOP: {value: 2, writable: false, enumerable: true, configurable: false},
    LINE_STRIP: {value: 3, writable: false, enumerable: true, configurable: false},
    TRIANGLES: {value: 4, writable: false, enumerable: true, configurable: false},
    TRIANGLE_STRIP: {value: 5, writable: false, enumerable: true, configurable: false},
    TRIANGLE_FAN: {value: 6, writable: false, enumerable: true, configurable: false},
    ZERO: {writable: false, enumerable: true, configurable: false},
    ONE: {value: 1, writable: false, enumerable: true, configurable: false},
    SRC_COLOR: {value: 768, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_SRC_COLOR: {value: 769, writable: false, enumerable: true, configurable: false},
    SRC_ALPHA: {value: 770, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_SRC_ALPHA: {value: 771, writable: false, enumerable: true, configurable: false},
    DST_ALPHA: {value: 772, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_DST_ALPHA: {value: 773, writable: false, enumerable: true, configurable: false},
    DST_COLOR: {value: 774, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_DST_COLOR: {value: 775, writable: false, enumerable: true, configurable: false},
    SRC_ALPHA_SATURATE: {value: 776, writable: false, enumerable: true, configurable: false},
    FUNC_ADD: {value: 32774, writable: false, enumerable: true, configurable: false},
    BLEND_EQUATION: {value: 32777, writable: false, enumerable: true, configurable: false},
    BLEND_EQUATION_RGB: {value: 32777, writable: false, enumerable: true, configurable: false},
    BLEND_EQUATION_ALPHA: {value: 34877, writable: false, enumerable: true, configurable: false},
    FUNC_SUBTRACT: {value: 32778, writable: false, enumerable: true, configurable: false},
    FUNC_REVERSE_SUBTRACT: {value: 32779, writable: false, enumerable: true, configurable: false},
    BLEND_DST_RGB: {value: 32968, writable: false, enumerable: true, configurable: false},
    BLEND_SRC_RGB: {value: 32969, writable: false, enumerable: true, configurable: false},
    BLEND_DST_ALPHA: {value: 32970, writable: false, enumerable: true, configurable: false},
    BLEND_SRC_ALPHA: {value: 32971, writable: false, enumerable: true, configurable: false},
    CONSTANT_COLOR: {value: 32769, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_CONSTANT_COLOR: {value: 32770, writable: false, enumerable: true, configurable: false},
    CONSTANT_ALPHA: {value: 32771, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_CONSTANT_ALPHA: {value: 32772, writable: false, enumerable: true, configurable: false},
    BLEND_COLOR: {value: 32773, writable: false, enumerable: true, configurable: false},
    ARRAY_BUFFER: {value: 34962, writable: false, enumerable: true, configurable: false},
    ELEMENT_ARRAY_BUFFER: {value: 34963, writable: false, enumerable: true, configurable: false},
    ARRAY_BUFFER_BINDING: {value: 34964, writable: false, enumerable: true, configurable: false},
    ELEMENT_ARRAY_BUFFER_BINDING: {
        value: 34965,
        writable: false,
        enumerable: true,
        configurable: false
    },
    STREAM_DRAW: {value: 35040, writable: false, enumerable: true, configurable: false},
    STATIC_DRAW: {value: 35044, writable: false, enumerable: true, configurable: false},
    DYNAMIC_DRAW: {value: 35048, writable: false, enumerable: true, configurable: false},
    BUFFER_SIZE: {value: 34660, writable: false, enumerable: true, configurable: false},
    BUFFER_USAGE: {value: 34661, writable: false, enumerable: true, configurable: false},
    CURRENT_VERTEX_ATTRIB: {value: 34342, writable: false, enumerable: true, configurable: false},
    FRONT: {value: 1028, writable: false, enumerable: true, configurable: false},
    BACK: {value: 1029, writable: false, enumerable: true, configurable: false},
    FRONT_AND_BACK: {value: 1032, writable: false, enumerable: true, configurable: false},
    TEXTURE_2D: {value: 3553, writable: false, enumerable: true, configurable: false},
    CULL_FACE: {value: 2884, writable: false, enumerable: true, configurable: false},
    BLEND: {value: 3042, writable: false, enumerable: true, configurable: false},
    DITHER: {value: 3024, writable: false, enumerable: true, configurable: false},
    STENCIL_TEST: {value: 2960, writable: false, enumerable: true, configurable: false},
    DEPTH_TEST: {value: 2929, writable: false, enumerable: true, configurable: false},
    SCISSOR_TEST: {value: 3089, writable: false, enumerable: true, configurable: false},
    POLYGON_OFFSET_FILL: {value: 32823, writable: false, enumerable: true, configurable: false},
    SAMPLE_ALPHA_TO_COVERAGE: {value: 32926, writable: false, enumerable: true, configurable: false},
    SAMPLE_COVERAGE: {value: 32928, writable: false, enumerable: true, configurable: false},
    NO_ERROR: {writable: false, enumerable: true, configurable: false},
    INVALID_ENUM: {value: 1280, writable: false, enumerable: true, configurable: false},
    INVALID_VALUE: {value: 1281, writable: false, enumerable: true, configurable: false},
    INVALID_OPERATION: {value: 1282, writable: false, enumerable: true, configurable: false},
    OUT_OF_MEMORY: {value: 1285, writable: false, enumerable: true, configurable: false},
    CW: {value: 2304, writable: false, enumerable: true, configurable: false},
    CCW: {value: 2305, writable: false, enumerable: true, configurable: false},
    LINE_WIDTH: {value: 2849, writable: false, enumerable: true, configurable: false},
    ALIASED_POINT_SIZE_RANGE: {value: 33901, writable: false, enumerable: true, configurable: false},
    ALIASED_LINE_WIDTH_RANGE: {value: 33902, writable: false, enumerable: true, configurable: false},
    CULL_FACE_MODE: {value: 2885, writable: false, enumerable: true, configurable: false},
    FRONT_FACE: {value: 2886, writable: false, enumerable: true, configurable: false},
    DEPTH_RANGE: {value: 2928, writable: false, enumerable: true, configurable: false},
    DEPTH_WRITEMASK: {value: 2930, writable: false, enumerable: true, configurable: false},
    DEPTH_CLEAR_VALUE: {value: 2931, writable: false, enumerable: true, configurable: false},
    DEPTH_FUNC: {value: 2932, writable: false, enumerable: true, configurable: false},
    STENCIL_CLEAR_VALUE: {value: 2961, writable: false, enumerable: true, configurable: false},
    STENCIL_FUNC: {value: 2962, writable: false, enumerable: true, configurable: false},
    STENCIL_FAIL: {value: 2964, writable: false, enumerable: true, configurable: false},
    STENCIL_PASS_DEPTH_FAIL: {value: 2965, writable: false, enumerable: true, configurable: false},
    STENCIL_PASS_DEPTH_PASS: {value: 2966, writable: false, enumerable: true, configurable: false},
    STENCIL_REF: {value: 2967, writable: false, enumerable: true, configurable: false},
    STENCIL_VALUE_MASK: {value: 2963, writable: false, enumerable: true, configurable: false},
    STENCIL_WRITEMASK: {value: 2968, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_FUNC: {value: 34816, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_FAIL: {value: 34817, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_PASS_DEPTH_FAIL: {
        value: 34818,
        writable: false,
        enumerable: true,
        configurable: false
    },
    STENCIL_BACK_PASS_DEPTH_PASS: {
        value: 34819,
        writable: false,
        enumerable: true,
        configurable: false
    },
    STENCIL_BACK_REF: {value: 36003, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_VALUE_MASK: {value: 36004, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_WRITEMASK: {value: 36005, writable: false, enumerable: true, configurable: false},
    VIEWPORT: {value: 2978, writable: false, enumerable: true, configurable: false},
    SCISSOR_BOX: {value: 3088, writable: false, enumerable: true, configurable: false},
    COLOR_CLEAR_VALUE: {value: 3106, writable: false, enumerable: true, configurable: false},
    COLOR_WRITEMASK: {value: 3107, writable: false, enumerable: true, configurable: false},
    UNPACK_ALIGNMENT: {value: 3317, writable: false, enumerable: true, configurable: false},
    PACK_ALIGNMENT: {value: 3333, writable: false, enumerable: true, configurable: false},
    MAX_TEXTURE_SIZE: {value: 3379, writable: false, enumerable: true, configurable: false},
    MAX_VIEWPORT_DIMS: {value: 3386, writable: false, enumerable: true, configurable: false},
    SUBPIXEL_BITS: {value: 3408, writable: false, enumerable: true, configurable: false},
    RED_BITS: {value: 3410, writable: false, enumerable: true, configurable: false},
    GREEN_BITS: {value: 3411, writable: false, enumerable: true, configurable: false},
    BLUE_BITS: {value: 3412, writable: false, enumerable: true, configurable: false},
    ALPHA_BITS: {value: 3413, writable: false, enumerable: true, configurable: false},
    DEPTH_BITS: {value: 3414, writable: false, enumerable: true, configurable: false},
    STENCIL_BITS: {value: 3415, writable: false, enumerable: true, configurable: false},
    POLYGON_OFFSET_UNITS: {value: 10752, writable: false, enumerable: true, configurable: false},
    POLYGON_OFFSET_FACTOR: {value: 32824, writable: false, enumerable: true, configurable: false},
    TEXTURE_BINDING_2D: {value: 32873, writable: false, enumerable: true, configurable: false},
    SAMPLE_BUFFERS: {value: 32936, writable: false, enumerable: true, configurable: false},
    SAMPLES: {value: 32937, writable: false, enumerable: true, configurable: false},
    SAMPLE_COVERAGE_VALUE: {value: 32938, writable: false, enumerable: true, configurable: false},
    SAMPLE_COVERAGE_INVERT: {value: 32939, writable: false, enumerable: true, configurable: false},
    COMPRESSED_TEXTURE_FORMATS: {value: 34467, writable: false, enumerable: true, configurable: false},
    DONT_CARE: {value: 4352, writable: false, enumerable: true, configurable: false},
    FASTEST: {value: 4353, writable: false, enumerable: true, configurable: false},
    NICEST: {value: 4354, writable: false, enumerable: true, configurable: false},
    GENERATE_MIPMAP_HINT: {value: 33170, writable: false, enumerable: true, configurable: false},
    BYTE: {value: 5120, writable: false, enumerable: true, configurable: false},
    UNSIGNED_BYTE: {value: 5121, writable: false, enumerable: true, configurable: false},
    SHORT: {value: 5122, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT: {value: 5123, writable: false, enumerable: true, configurable: false},
    INT: {value: 5124, writable: false, enumerable: true, configurable: false},
    UNSIGNED_INT: {value: 5125, writable: false, enumerable: true, configurable: false},
    FLOAT: {value: 5126, writable: false, enumerable: true, configurable: false},
    DEPTH_COMPONENT: {value: 6402, writable: false, enumerable: true, configurable: false},
    ALPHA: {value: 6406, writable: false, enumerable: true, configurable: false},
    RGB: {value: 6407, writable: false, enumerable: true, configurable: false},
    RGBA: {value: 6408, writable: false, enumerable: true, configurable: false},
    LUMINANCE: {value: 6409, writable: false, enumerable: true, configurable: false},
    LUMINANCE_ALPHA: {value: 6410, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT_4_4_4_4: {value: 32819, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT_5_5_5_1: {value: 32820, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT_5_6_5: {value: 33635, writable: false, enumerable: true, configurable: false},
    FRAGMENT_SHADER: {value: 35632, writable: false, enumerable: true, configurable: false},
    VERTEX_SHADER: {value: 35633, writable: false, enumerable: true, configurable: false},
    MAX_VERTEX_ATTRIBS: {value: 34921, writable: false, enumerable: true, configurable: false},
    MAX_VERTEX_UNIFORM_VECTORS: {value: 36347, writable: false, enumerable: true, configurable: false},
    MAX_VARYING_VECTORS: {value: 36348, writable: false, enumerable: true, configurable: false},
    MAX_COMBINED_TEXTURE_IMAGE_UNITS: {
        value: 35661,
        writable: false,
        enumerable: true,
        configurable: false
    },
    MAX_VERTEX_TEXTURE_IMAGE_UNITS: {
        value: 35660,
        writable: false,
        enumerable: true,
        configurable: false
    },
    MAX_TEXTURE_IMAGE_UNITS: {value: 34930, writable: false, enumerable: true, configurable: false},
    MAX_FRAGMENT_UNIFORM_VECTORS: {
        value: 36349,
        writable: false,
        enumerable: true,
        configurable: false
    },
    SHADER_TYPE: {value: 35663, writable: false, enumerable: true, configurable: false},
    DELETE_STATUS: {value: 35712, writable: false, enumerable: true, configurable: false},
    LINK_STATUS: {value: 35714, writable: false, enumerable: true, configurable: false},
    VALIDATE_STATUS: {value: 35715, writable: false, enumerable: true, configurable: false},
    ATTACHED_SHADERS: {value: 35717, writable: false, enumerable: true, configurable: false},
    ACTIVE_UNIFORMS: {value: 35718, writable: false, enumerable: true, configurable: false},
    ACTIVE_ATTRIBUTES: {value: 35721, writable: false, enumerable: true, configurable: false},
    SHADING_LANGUAGE_VERSION: {value: 35724, writable: false, enumerable: true, configurable: false},
    CURRENT_PROGRAM: {value: 35725, writable: false, enumerable: true, configurable: false},
    NEVER: {value: 512, writable: false, enumerable: true, configurable: false},
    LESS: {value: 513, writable: false, enumerable: true, configurable: false},
    EQUAL: {value: 514, writable: false, enumerable: true, configurable: false},
    LEQUAL: {value: 515, writable: false, enumerable: true, configurable: false},
    GREATER: {value: 516, writable: false, enumerable: true, configurable: false},
    NOTEQUAL: {value: 517, writable: false, enumerable: true, configurable: false},
    GEQUAL: {value: 518, writable: false, enumerable: true, configurable: false},
    ALWAYS: {value: 519, writable: false, enumerable: true, configurable: false},
    KEEP: {value: 7680, writable: false, enumerable: true, configurable: false},
    REPLACE: {value: 7681, writable: false, enumerable: true, configurable: false},
    INCR: {value: 7682, writable: false, enumerable: true, configurable: false},
    DECR: {value: 7683, writable: false, enumerable: true, configurable: false},
    INVERT: {value: 5386, writable: false, enumerable: true, configurable: false},
    INCR_WRAP: {value: 34055, writable: false, enumerable: true, configurable: false},
    DECR_WRAP: {value: 34056, writable: false, enumerable: true, configurable: false},
    VENDOR: {value: 7936, writable: false, enumerable: true, configurable: false},
    RENDERER: {value: 7937, writable: false, enumerable: true, configurable: false},
    VERSION: {value: 7938, writable: false, enumerable: true, configurable: false},
    NEAREST: {value: 9728, writable: false, enumerable: true, configurable: false},
    LINEAR: {value: 9729, writable: false, enumerable: true, configurable: false},
    NEAREST_MIPMAP_NEAREST: {value: 9984, writable: false, enumerable: true, configurable: false},
    LINEAR_MIPMAP_NEAREST: {value: 9985, writable: false, enumerable: true, configurable: false},
    NEAREST_MIPMAP_LINEAR: {value: 9986, writable: false, enumerable: true, configurable: false},
    LINEAR_MIPMAP_LINEAR: {value: 9987, writable: false, enumerable: true, configurable: false},
    TEXTURE_MAG_FILTER: {value: 10240, writable: false, enumerable: true, configurable: false},
    TEXTURE_MIN_FILTER: {value: 10241, writable: false, enumerable: true, configurable: false},
    TEXTURE_WRAP_S: {value: 10242, writable: false, enumerable: true, configurable: false},
    TEXTURE_WRAP_T: {value: 10243, writable: false, enumerable: true, configurable: false},
    TEXTURE: {value: 5890, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP: {value: 34067, writable: false, enumerable: true, configurable: false},
    TEXTURE_BINDING_CUBE_MAP: {value: 34068, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_POSITIVE_X: {value: 34069, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_NEGATIVE_X: {value: 34070, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_POSITIVE_Y: {value: 34071, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_NEGATIVE_Y: {value: 34072, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_POSITIVE_Z: {value: 34073, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_NEGATIVE_Z: {value: 34074, writable: false, enumerable: true, configurable: false},
    MAX_CUBE_MAP_TEXTURE_SIZE: {value: 34076, writable: false, enumerable: true, configurable: false},
    TEXTURE0: {value: 33984, writable: false, enumerable: true, configurable: false},
    TEXTURE1: {value: 33985, writable: false, enumerable: true, configurable: false},
    TEXTURE2: {value: 33986, writable: false, enumerable: true, configurable: false},
    TEXTURE3: {value: 33987, writable: false, enumerable: true, configurable: false},
    TEXTURE4: {value: 33988, writable: false, enumerable: true, configurable: false},
    TEXTURE5: {value: 33989, writable: false, enumerable: true, configurable: false},
    TEXTURE6: {value: 33990, writable: false, enumerable: true, configurable: false},
    TEXTURE7: {value: 33991, writable: false, enumerable: true, configurable: false},
    TEXTURE8: {value: 33992, writable: false, enumerable: true, configurable: false},
    TEXTURE9: {value: 33993, writable: false, enumerable: true, configurable: false},
    TEXTURE10: {value: 33994, writable: false, enumerable: true, configurable: false},
    TEXTURE11: {value: 33995, writable: false, enumerable: true, configurable: false},
    TEXTURE12: {value: 33996, writable: false, enumerable: true, configurable: false},
    TEXTURE13: {value: 33997, writable: false, enumerable: true, configurable: false},
    TEXTURE14: {value: 33998, writable: false, enumerable: true, configurable: false},
    TEXTURE15: {value: 33999, writable: false, enumerable: true, configurable: false},
    TEXTURE16: {value: 34000, writable: false, enumerable: true, configurable: false},
    TEXTURE17: {value: 34001, writable: false, enumerable: true, configurable: false},
    TEXTURE18: {value: 34002, writable: false, enumerable: true, configurable: false},
    TEXTURE19: {value: 34003, writable: false, enumerable: true, configurable: false},
    TEXTURE20: {value: 34004, writable: false, enumerable: true, configurable: false},
    TEXTURE21: {value: 34005, writable: false, enumerable: true, configurable: false},
    TEXTURE22: {value: 34006, writable: false, enumerable: true, configurable: false},
    TEXTURE23: {value: 34007, writable: false, enumerable: true, configurable: false},
    TEXTURE24: {value: 34008, writable: false, enumerable: true, configurable: false},
    TEXTURE25: {value: 34009, writable: false, enumerable: true, configurable: false},
    TEXTURE26: {value: 34010, writable: false, enumerable: true, configurable: false},
    TEXTURE27: {value: 34011, writable: false, enumerable: true, configurable: false},
    TEXTURE28: {value: 34012, writable: false, enumerable: true, configurable: false},
    TEXTURE29: {value: 34013, writable: false, enumerable: true, configurable: false},
    TEXTURE30: {value: 34014, writable: false, enumerable: true, configurable: false},
    TEXTURE31: {value: 34015, writable: false, enumerable: true, configurable: false},
    ACTIVE_TEXTURE: {value: 34016, writable: false, enumerable: true, configurable: false},
    REPEAT: {value: 10497, writable: false, enumerable: true, configurable: false},
    CLAMP_TO_EDGE: {value: 33071, writable: false, enumerable: true, configurable: false},
    MIRRORED_REPEAT: {value: 33648, writable: false, enumerable: true, configurable: false},
    FLOAT_VEC2: {value: 35664, writable: false, enumerable: true, configurable: false},
    FLOAT_VEC3: {value: 35665, writable: false, enumerable: true, configurable: false},
    FLOAT_VEC4: {value: 35666, writable: false, enumerable: true, configurable: false},
    INT_VEC2: {value: 35667, writable: false, enumerable: true, configurable: false},
    INT_VEC3: {value: 35668, writable: false, enumerable: true, configurable: false},
    INT_VEC4: {value: 35669, writable: false, enumerable: true, configurable: false},
    BOOL: {value: 35670, writable: false, enumerable: true, configurable: false},
    BOOL_VEC2: {value: 35671, writable: false, enumerable: true, configurable: false},
    BOOL_VEC3: {value: 35672, writable: false, enumerable: true, configurable: false},
    BOOL_VEC4: {value: 35673, writable: false, enumerable: true, configurable: false},
    FLOAT_MAT2: {value: 35674, writable: false, enumerable: true, configurable: false},
    FLOAT_MAT3: {value: 35675, writable: false, enumerable: true, configurable: false},
    FLOAT_MAT4: {value: 35676, writable: false, enumerable: true, configurable: false},
    SAMPLER_2D: {value: 35678, writable: false, enumerable: true, configurable: false},
    SAMPLER_CUBE: {value: 35680, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_ENABLED: {value: 34338, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_SIZE: {value: 34339, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_STRIDE: {value: 34340, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_TYPE: {value: 34341, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_NORMALIZED: {
        value: 34922,
        writable: false,
        enumerable: true,
        configurable: false
    },
    VERTEX_ATTRIB_ARRAY_POINTER: {value: 34373, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: {
        value: 34975,
        writable: false,
        enumerable: true,
        configurable: false
    },
    IMPLEMENTATION_COLOR_READ_TYPE: {
        value: 35738,
        writable: false,
        enumerable: true,
        configurable: false
    },
    IMPLEMENTATION_COLOR_READ_FORMAT: {
        value: 35739,
        writable: false,
        enumerable: true,
        configurable: false
    },
    COMPILE_STATUS: {value: 35713, writable: false, enumerable: true, configurable: false},
    LOW_FLOAT: {value: 36336, writable: false, enumerable: true, configurable: false},
    MEDIUM_FLOAT: {value: 36337, writable: false, enumerable: true, configurable: false},
    HIGH_FLOAT: {value: 36338, writable: false, enumerable: true, configurable: false},
    LOW_INT: {value: 36339, writable: false, enumerable: true, configurable: false},
    MEDIUM_INT: {value: 36340, writable: false, enumerable: true, configurable: false},
    HIGH_INT: {value: 36341, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER: {value: 36160, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER: {value: 36161, writable: false, enumerable: true, configurable: false},
    RGBA4: {value: 32854, writable: false, enumerable: true, configurable: false},
    RGB5_A1: {value: 32855, writable: false, enumerable: true, configurable: false},
    RGB565: {value: 36194, writable: false, enumerable: true, configurable: false},
    DEPTH_COMPONENT16: {value: 33189, writable: false, enumerable: true, configurable: false},
    STENCIL_INDEX8: {value: 36168, writable: false, enumerable: true, configurable: false},
    DEPTH_STENCIL: {value: 34041, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_WIDTH: {value: 36162, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_HEIGHT: {value: 36163, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_INTERNAL_FORMAT: {
        value: 36164,
        writable: false,
        enumerable: true,
        configurable: false
    },
    RENDERBUFFER_RED_SIZE: {value: 36176, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_GREEN_SIZE: {value: 36177, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_BLUE_SIZE: {value: 36178, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_ALPHA_SIZE: {value: 36179, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_DEPTH_SIZE: {value: 36180, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_STENCIL_SIZE: {value: 36181, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: {
        value: 36048,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: {
        value: 36049,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: {
        value: 36050,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: {
        value: 36051,
        writable: false,
        enumerable: true,
        configurable: false
    },
    COLOR_ATTACHMENT0: {value: 36064, writable: false, enumerable: true, configurable: false},
    DEPTH_ATTACHMENT: {value: 36096, writable: false, enumerable: true, configurable: false},
    STENCIL_ATTACHMENT: {value: 36128, writable: false, enumerable: true, configurable: false},
    DEPTH_STENCIL_ATTACHMENT: {value: 33306, writable: false, enumerable: true, configurable: false},
    NONE: {writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_COMPLETE: {value: 36053, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_INCOMPLETE_ATTACHMENT: {
        value: 36054,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: {
        value: 36055,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_INCOMPLETE_DIMENSIONS: {
        value: 36057,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_UNSUPPORTED: {value: 36061, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_BINDING: {value: 36006, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_BINDING: {value: 36007, writable: false, enumerable: true, configurable: false},
    MAX_RENDERBUFFER_SIZE: {value: 34024, writable: false, enumerable: true, configurable: false},
    INVALID_FRAMEBUFFER_OPERATION: {
        value: 1286,
        writable: false,
        enumerable: true,
        configurable: false
    },
    UNPACK_FLIP_Y_WEBGL: {value: 37440, writable: false, enumerable: true, configurable: false},
    UNPACK_PREMULTIPLY_ALPHA_WEBGL: {
        value: 37441,
        writable: false,
        enumerable: true,
        configurable: false
    },
    CONTEXT_LOST_WEBGL: {value: 37442, writable: false, enumerable: true, configurable: false},
    UNPACK_COLORSPACE_CONVERSION_WEBGL: {
        value: 37443,
        writable: false,
        enumerable: true,
        configurable: false
    },
    BROWSER_DEFAULT_WEBGL: {value: 37444, writable: false, enumerable: true, configurable: false},
    activeTexture: {writable: true, enumerable: true, configurable: true},
    attachShader: {writable: true, enumerable: true, configurable: true},
    bindAttribLocation: {writable: true, enumerable: true, configurable: true},
    bindRenderbuffer: {writable: true, enumerable: true, configurable: true},
    blendColor: {writable: true, enumerable: true, configurable: true},
    blendEquation: {writable: true, enumerable: true, configurable: true},
    blendEquationSeparate: {writable: true, enumerable: true, configurable: true},
    blendFunc: {writable: true, enumerable: true, configurable: true},
    blendFuncSeparate: {writable: true, enumerable: true, configurable: true},
    bufferData: {writable: true, enumerable: true, configurable: true},
    bufferSubData: {writable: true, enumerable: true, configurable: true},
    checkFramebufferStatus: {writable: true, enumerable: true, configurable: true},
    compileShader: {writable: true, enumerable: true, configurable: true},
    compressedTexImage2D: {writable: true, enumerable: true, configurable: true},
    compressedTexSubImage2D: {writable: true, enumerable: true, configurable: true},
    copyTexImage2D: {writable: true, enumerable: true, configurable: true},
    copyTexSubImage2D: {writable: true, enumerable: true, configurable: true},
    createBuffer: {writable: true, enumerable: true, configurable: true},
    createFramebuffer: {writable: true, enumerable: true, configurable: true},
    createProgram: {writable: true, enumerable: true, configurable: true},
    createRenderbuffer: {writable: true, enumerable: true, configurable: true},
    createShader: {writable: true, enumerable: true, configurable: true},
    createTexture: {writable: true, enumerable: true, configurable: true},
    cullFace: {writable: true, enumerable: true, configurable: true},
    deleteBuffer: {writable: true, enumerable: true, configurable: true},
    deleteFramebuffer: {writable: true, enumerable: true, configurable: true},
    deleteProgram: {writable: true, enumerable: true, configurable: true},
    deleteRenderbuffer: {writable: true, enumerable: true, configurable: true},
    deleteShader: {writable: true, enumerable: true, configurable: true},
    deleteTexture: {writable: true, enumerable: true, configurable: true},
    depthFunc: {writable: true, enumerable: true, configurable: true},
    depthMask: {writable: true, enumerable: true, configurable: true},
    depthRange: {writable: true, enumerable: true, configurable: true},
    detachShader: {writable: true, enumerable: true, configurable: true},
    disable: {writable: true, enumerable: true, configurable: true},
    enable: {writable: true, enumerable: true, configurable: true},
    finish: {writable: true, enumerable: true, configurable: true},
    flush: {writable: true, enumerable: true, configurable: true},
    framebufferRenderbuffer: {writable: true, enumerable: true, configurable: true},
    framebufferTexture2D: {writable: true, enumerable: true, configurable: true},
    frontFace: {writable: true, enumerable: true, configurable: true},
    generateMipmap: {writable: true, enumerable: true, configurable: true},
    getActiveAttrib: {writable: true, enumerable: true, configurable: true},
    getActiveUniform: {writable: true, enumerable: true, configurable: true},
    getAttachedShaders: {writable: true, enumerable: true, configurable: true},
    getAttribLocation: {writable: true, enumerable: true, configurable: true},
    getBufferParameter: {writable: true, enumerable: true, configurable: true},
    getContextAttributes: {writable: true, enumerable: true, configurable: true},
    getError: {writable: true, enumerable: true, configurable: true},
    getExtension: {writable: true, enumerable: true, configurable: true},
    getFramebufferAttachmentParameter: {writable: true, enumerable: true, configurable: true},
    getParameter: {writable: true, enumerable: true, configurable: true},
    getProgramInfoLog: {writable: true, enumerable: true, configurable: true},
    getProgramParameter: {writable: true, enumerable: true, configurable: true},
    getRenderbufferParameter: {writable: true, enumerable: true, configurable: true},
    getShaderInfoLog: {writable: true, enumerable: true, configurable: true},
    getShaderParameter: {writable: true, enumerable: true, configurable: true},
    getShaderPrecisionFormat: {writable: true, enumerable: true, configurable: true},
    getShaderSource: {writable: true, enumerable: true, configurable: true},
    getSupportedExtensions: {writable: true, enumerable: true, configurable: true},
    getTexParameter: {writable: true, enumerable: true, configurable: true},
    getUniform: {writable: true, enumerable: true, configurable: true},
    getUniformLocation: {writable: true, enumerable: true, configurable: true},
    getVertexAttrib: {writable: true, enumerable: true, configurable: true},
    getVertexAttribOffset: {writable: true, enumerable: true, configurable: true},
    hint: {writable: true, enumerable: true, configurable: true},
    isBuffer: {writable: true, enumerable: true, configurable: true},
    isContextLost: {writable: true, enumerable: true, configurable: true},
    isEnabled: {writable: true, enumerable: true, configurable: true},
    isFramebuffer: {writable: true, enumerable: true, configurable: true},
    isProgram: {writable: true, enumerable: true, configurable: true},
    isRenderbuffer: {writable: true, enumerable: true, configurable: true},
    isShader: {writable: true, enumerable: true, configurable: true},
    isTexture: {writable: true, enumerable: true, configurable: true},
    lineWidth: {writable: true, enumerable: true, configurable: true},
    linkProgram: {writable: true, enumerable: true, configurable: true},
    pixelStorei: {writable: true, enumerable: true, configurable: true},
    polygonOffset: {writable: true, enumerable: true, configurable: true},
    readPixels: {writable: true, enumerable: true, configurable: true},
    renderbufferStorage: {writable: true, enumerable: true, configurable: true},
    sampleCoverage: {writable: true, enumerable: true, configurable: true},
    shaderSource: {writable: true, enumerable: true, configurable: true},
    stencilFunc: {writable: true, enumerable: true, configurable: true},
    stencilFuncSeparate: {writable: true, enumerable: true, configurable: true},
    stencilMask: {writable: true, enumerable: true, configurable: true},
    stencilMaskSeparate: {writable: true, enumerable: true, configurable: true},
    stencilOp: {writable: true, enumerable: true, configurable: true},
    stencilOpSeparate: {writable: true, enumerable: true, configurable: true},
    texImage2D: {writable: true, enumerable: true, configurable: true},
    texParameterf: {writable: true, enumerable: true, configurable: true},
    texParameteri: {writable: true, enumerable: true, configurable: true},
    texSubImage2D: {writable: true, enumerable: true, configurable: true},
    useProgram: {writable: true, enumerable: true, configurable: true},
    validateProgram: {writable: true, enumerable: true, configurable: true},
    bindBuffer: {writable: true, enumerable: true, configurable: true},
    bindFramebuffer: {writable: true, enumerable: true, configurable: true},
    bindTexture: {writable: true, enumerable: true, configurable: true},
    clear: {writable: true, enumerable: true, configurable: true},
    clearColor: {writable: true, enumerable: true, configurable: true},
    clearDepth: {writable: true, enumerable: true, configurable: true},
    clearStencil: {writable: true, enumerable: true, configurable: true},
    colorMask: {writable: true, enumerable: true, configurable: true},
    disableVertexAttribArray: {writable: true, enumerable: true, configurable: true},
    drawArrays: {writable: true, enumerable: true, configurable: true},
    drawElements: {writable: true, enumerable: true, configurable: true},
    enableVertexAttribArray: {writable: true, enumerable: true, configurable: true},
    scissor: {writable: true, enumerable: true, configurable: true},
    uniform1f: {writable: true, enumerable: true, configurable: true},
    uniform1fv: {writable: true, enumerable: true, configurable: true},
    uniform1i: {writable: true, enumerable: true, configurable: true},
    uniform1iv: {writable: true, enumerable: true, configurable: true},
    uniform2f: {writable: true, enumerable: true, configurable: true},
    uniform2fv: {writable: true, enumerable: true, configurable: true},
    uniform2i: {writable: true, enumerable: true, configurable: true},
    uniform2iv: {writable: true, enumerable: true, configurable: true},
    uniform3f: {writable: true, enumerable: true, configurable: true},
    uniform3fv: {writable: true, enumerable: true, configurable: true},
    uniform3i: {writable: true, enumerable: true, configurable: true},
    uniform3iv: {writable: true, enumerable: true, configurable: true},
    uniform4f: {writable: true, enumerable: true, configurable: true},
    uniform4fv: {writable: true, enumerable: true, configurable: true},
    uniform4i: {writable: true, enumerable: true, configurable: true},
    uniform4iv: {writable: true, enumerable: true, configurable: true},
    uniformMatrix2fv: {writable: true, enumerable: true, configurable: true},
    uniformMatrix3fv: {writable: true, enumerable: true, configurable: true},
    uniformMatrix4fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib1f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib1fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib2f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib2fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib3f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib3fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib4f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib4fv: {writable: true, enumerable: true, configurable: true},
    vertexAttribPointer: {writable: true, enumerable: true, configurable: true},
    viewport: {writable: true, enumerable: true, configurable: true},
    constructor: {writable: true, enumerable: false, configurable: true},
    makeXRCompatible: {writable: true, enumerable: true, configurable: true},
    [Symbol.toStringTag]: {
        value: "WebGLRenderingContext",
        writable: false,
        enumerable: false,
        configurable: true
    },
})

window.WebGLRenderingContext = WebGLRenderingContext


var idx = 0
// crypto.getRandomValues = function (a) {
//     console.log(a)
//
//     for (var i = 0; i < a.length; i++) {
//         a.fill(10000, i, i + 1)
//     }
// }
crypto = v_saf(function Crypto(){

})

Object.defineProperties(crypto,{
    subtle: {
        value: v_saf(function SubtleCrypto(){})
    },
    getRandomValues: {
        value: function(){
            var e=arguments[0];
            if (!_process.argv[3]){
                return e.map(function(x, i){return e[i]=1073712824});
            }
            return e.map(function(x, i){return e[i]= parseInt(10737128244 * Math.random())});
        }
    }
})
window.crypto = crypto;

_setTimeout = setTimeout
timesIds = 0;

window.setTimeout = function setTimeout(func, delay) {
    // console.log(func, delay)
    // if (delay==0)func()
    try {
        // console.log(func)
        if (delay == 0 && timeout) {
            _setTimeout.call(this, func, delay)
        }
        // func()
    } catch (e) {
    }
    // _setTimeout.call(this, func, 1)
    timesIds++;
    return timesIds;
};

window.setInterval = function (func, delay) {
    // console.log('setInterval',delay,  func)
    try {
        // func()
    } catch (e) {
    }
};


var events = {}
// function dispatchEvent(event) {
//     _console2('dispatchEvent', event)
//     if (event && event.type in events) {
//         events[event.type](event)
//     }
//     try {
//         event.instrumented = v_saf(function instrumented() {
//             v_console_log(" instrumented  call")
//         })
//         event.detail.exchange(event)
//     } catch (e) {
//
//     }
//     return true
//
// }


// var _stringify = JSON.stringify;
// JSON.stringify = v_saf(function () {
//     let res = _stringify.apply(this, arguments);
//
//     console.log('_stringify', arguments, res)
//
//     return res;
//
// })
// window.JSON.stringify = JSON.stringify;
_console2 = function () {
}

var times = 0;
var stackTrace = {};
let arggs = [];
window.videos = [];
window.fonts = [];
window.imageDatas = [];
let con3 = console.log
let con4 = console.log;
con3 = function () {
}
con4 = function () {
};


// setTimeout(() => {
//     if (randomEvent) {
//         let randomT1 = parseInt(Math.random() * 300 + 100);
//         randomT1 = 1;
//         const from = {x: parseInt(Math.random() * 500 + 500), y: parseInt(Math.random() * 500 + 500)}
//         const to = {x: parseInt(Math.random() * 500 + 500), y: parseInt(Math.random() * 500 + 500)}
//
//         const route = path(from, to, {
//             moveSpeed: _random() * 20 + 10
//         })
//         for (let p of route) {
//             let t = new window.MouseEvent('mousemove');
//             let x = parseInt(p.x);
//             let y = parseInt(p.y);
//             t.initMouseEvent('mousemove', true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null)
//
//             t.isTrusted = true;
//             t = proxy(t, 'MouseEvent')
//
//             dispatchEvent(t)
//
//         }
//         let randomT = parseInt(Math.random() * 50 + 20);
//         for (let i = 0; i < randomT; i++) {
//             let t = new window.KeyboardEvent('keydown');
//             let keyStr = "J8QoS9q62O4cnMVvkemfCdXE_-l3abjzRiHAP7uwFLZB0Ir=pKGxN5sgtYTWDy1hU";
//
//             let key = keyStr[parseInt(Math.random() * keyStr.length)]
//             console.log('initKeyboard', key)
//             t.initKeyboardEvent('keydown', true, true, window.document.body, key)
//             t = proxy(t, 'KeyboardEvent')
//
//             dispatchEvent(t)
//         }
//     }
//
//
//     var xhr = new XMLHttpRequest();
//     xhr.open('POST', "https://jbrest.jetblue.com/lfs-rwb/outboundLFS", false);
//     xhr.send("{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-04-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}")
//     xhr.setRequestHeader('user-agent', ENV.navigatorparams.useragent)
//     print(JSON.stringify(xhr.headers))
//     // print(JSON.stringify(window.imageDatas))
//     // print(JSON.stringify(medias))
//     // print(candidateGetTimes)
//     console.log(window.signature)
//     console.log(window.signature())
//     _process.exit(0)
// }, 1000)
;
;
;

// debug = true;



(function() {
    function GreatHorn() {
        var _bot_2b604 = 2147483647
          , _bot_4a80 = 1
          , _bot_c368a = 0
          , _bot_89c7a = !!_bot_4a80
          , _bot_8519c = !!_bot_c368a;
        return function(_bot_1874d, _bot_eb0b, _bot_71ac) {
            var _bot_64357 = []
              , _bot_a20b = []
              , _bot_70b54 = {}
              , _bot_ed82e = {
                _bot_ba523: _bot_1874d
            }
              , _bot_9a5c6 = {};
            var decode = function(j) {
                if (!j) {
                    return ""
                }
                var n = function(e) {
                    var f = []
                      , t = e.length;
                    var u = 0;
                    for (var u = 0; u < t; u++) {
                        var w = e.charCodeAt(u);
                        if (((w >> 7) & 255) == 0) {
                            f.push(e.charAt(u))
                        } else {
                            if (((w >> 5) & 255) == 6) {
                                var b = e.charCodeAt(++u);
                                var a = (w & 31) << 6;
                                var c = b & 63;
                                var v = a | c;
                                f.push(String.fromCharCode(v))
                            } else {
                                if (((w >> 4) & 255) == 14) {
                                    var b = e.charCodeAt(++u);
                                    var d = e.charCodeAt(++u);
                                    var a = (w << 4) | ((b >> 2) & 15);
                                    var c = ((b & 3) << 6) | (d & 63);
                                    var v = ((a & 255) << 8) | c;
                                    f.push(String.fromCharCode(v))
                                }
                            }
                        }
                    }
                    return f.join("")
                };
                var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");
                var p = j.length;
                var l = 0;
                var m = [];
                while (l < p) {
                    var s = k.indexOf(j.charAt(l++));
                    var r = k.indexOf(j.charAt(l++));
                    var q = k.indexOf(j.charAt(l++));
                    var o = k.indexOf(j.charAt(l++));
                    var i = (s << 2) | (r >> 4);
                    var h = ((r & 15) << 4) | (q >> 2);
                    var g = ((q & 3) << 6) | o;
                    m.push(String.fromCharCode(i));
                    if (q != 64) {
                        m.push(String.fromCharCode(h))
                    }
                    if (o != 64) {
                        m.push(String.fromCharCode(g))
                    }
                }
                return n(m.join(""))
            };
            var _bot_06983 = function(_bot_24d35, _bot_79e82, _bot_ea4b1, _bot_1e860) {
                return {
                    _bot_b8121: _bot_24d35,
                    _bot_d2700: _bot_79e82,
                    _bot_2017: _bot_ea4b1,
                    _bot_5ba23: _bot_1e860
                };
            };
            var _bot_d54d2 = function(_bot_1e860) {
                return _bot_1e860._bot_5ba23 ? _bot_1e860._bot_d2700[_bot_1e860._bot_2017] : _bot_1e860._bot_b8121;
            };
            var _bot_0472e3 = function(_bot_0751, _bot_6733c) {
                return _bot_6733c.hasOwnProperty(_bot_0751) ? _bot_89c7a : _bot_8519c;
            };
            var _bot_0472e2 = function(_bot_0751, _bot_6733c) {
                if (_bot_0472e3(_bot_0751, _bot_6733c)) {
                    return _bot_06983(_bot_c368a, _bot_6733c, _bot_0751, _bot_4a80);
                }
                var _bot_7a48a;
                if (_bot_6733c._bot_9523) {
                    _bot_7a48a = _bot_0472e2(_bot_0751, _bot_6733c._bot_9523);
                    if (_bot_7a48a) {
                        return _bot_7a48a;
                    }
                }
                if (_bot_6733c._bot_e075) {
                    _bot_7a48a = _bot_0472e2(_bot_0751, _bot_6733c._bot_e075);
                    if (_bot_7a48a) {
                        return _bot_7a48a;
                    }
                }
                return _bot_8519c;
            };
            var _bot_0472e = function(_bot_0751) {
                var _bot_7a48a = _bot_0472e2(_bot_0751, _bot_70b54);
                if (_bot_7a48a) {
                    return _bot_7a48a;
                }
                return _bot_06983(_bot_c368a, _bot_70b54, _bot_0751, _bot_4a80);
            };
            var _bot_a8759 = function() {
                _bot_70b54 = (_bot_70b54._bot_e075) ? _bot_70b54._bot_e075 : _bot_70b54;
            };
            var _bot_d3c65 = function(_bot_ecbb8) {
                _bot_70b54 = {
                    _bot_e075: _bot_70b54,
                    _bot_9523: _bot_ecbb8
                };
            };
            var _bot_e4975 = function(_bot_820e0, _bot_bd770) {
                return _bot_9a5c6[_bot_820e0] = _bot_bd770;
            };
            var _bot_6157 = function(_bot_820e0) {
                return _bot_9a5c6[_bot_820e0];
            };
            var _bot_0cba3 = [_bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a), _bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a), _bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a), _bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a), _bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a)];
            var _bot_0e650 = [_bot_71ac, function _bot_30d18(_bot_ea4b1) {
                return _bot_0cba3[_bot_ea4b1];
            }
            , function(_bot_ea4b1) {
                return _bot_06983(_bot_c368a, _bot_ed82e._bot_20748, _bot_ea4b1, _bot_4a80);
            }
            , function(_bot_ea4b1) {
                return _bot_0472e(_bot_ea4b1);
            }
            , function(_bot_ea4b1) {
                return _bot_06983(_bot_c368a, _bot_1874d, _bot_eb0b.d[_bot_ea4b1], _bot_4a80);
            }
            , function(_bot_ea4b1) {
                return _bot_06983(_bot_ed82e._bot_ba523, _bot_c368a, _bot_c368a, _bot_c368a);
            }
            , function(_bot_ea4b1) {
                return _bot_06983(_bot_c368a, _bot_eb0b.d, _bot_ea4b1, _bot_4a80);
            }
            , function(_bot_ea4b1) {
                return _bot_06983(_bot_ed82e._bot_20748, _bot_71ac, _bot_71ac, _bot_c368a);
            }
            , function(_bot_ea4b1) {
                return _bot_06983(_bot_c368a, _bot_9a5c6, _bot_ea4b1, _bot_c368a)
            }
            ];
            var _bot_4952 = function(_bot_abdb5, _bot_ea4b1) {
                return _bot_0e650[_bot_abdb5] ? _bot_0e650[_bot_abdb5](_bot_ea4b1) : _bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a);
            };
            var _bot_41c6a = function(_bot_abdb5, _bot_ea4b1) {
                return _bot_d54d2(_bot_4952(_bot_abdb5, _bot_ea4b1));
            };
            var _bot_ac54 = function(_bot_24d35, _bot_79e82, _bot_ea4b1, _bot_1e860) {
                _bot_0cba3[_bot_c368a] = _bot_06983(_bot_24d35, _bot_79e82, _bot_ea4b1, _bot_1e860)
            };
            var _bot_946a1 = function(_bot_e8db) {
                var _bot_6a1e1 = _bot_c368a;
                while (_bot_6a1e1 < _bot_e8db.length) {
                    var _bot_4980a = _bot_e8db[_bot_6a1e1];
                    var _bot_14300 = _bot_0512[_bot_4980a[_bot_c368a]];
                    _bot_6a1e1 = _bot_14300(_bot_4980a[1], _bot_4980a[2], _bot_4980a[3], _bot_4980a[4], _bot_6a1e1, _bot_0c8c, _bot_e8db);
                }
            };
            var _bot_3eed = function(_bot_3e51, _bot_1e053, _bot_4980a, _bot_e8db) {
                var _bot_8861 = _bot_d54d2(_bot_3e51);
                var _bot_9dbe = _bot_d54d2(_bot_1e053);
                if (_bot_8861 == 2147483647) {
                    return _bot_4980a;
                }
                while (_bot_8861 < _bot_9dbe) {
                    var x = _bot_e8db[_bot_8861];
                    var _bot_14300 = _bot_0512[x[_bot_c368a]];
                    _bot_8861 = _bot_14300(x[1], x[2], x[3], x[4], _bot_8861, _bot_0c8c, _bot_e8db);
                }
                return _bot_8861;
            };
            var _bot_dda0b = function(_bot_6621, _bot_e8db) {
                var _bot_28cb8 = _bot_64357.splice(_bot_64357.length - 6, 6);
                var _bot_00868 = _bot_28cb8[4]._bot_b8121 != 2147483647;
                try {
                    _bot_6621 = _bot_3eed(_bot_28cb8[0], _bot_28cb8[1], _bot_6621, _bot_e8db);
                } catch (e) {
                    _bot_0cba3[2] = _bot_06983(e, _bot_c368a, _bot_c368a, _bot_c368a);
                    var _bot_6a1e1 = _bot_d54d2(_bot_0cba3[3]) + 1;
                    _bot_64357.splice(_bot_6a1e1, _bot_64357.length - _bot_6a1e1);
                    _bot_d3c65();
                    _bot_6621 = _bot_3eed(_bot_28cb8[2], _bot_28cb8[3], _bot_6621, _bot_e8db);
                    _bot_a8759();
                    _bot_0cba3[2] = _bot_06983(_bot_c368a, _bot_c368a, _bot_c368a, _bot_c368a);
                } finally {
                    _bot_6621 = _bot_3eed(_bot_28cb8[4], _bot_28cb8[5], _bot_6621, _bot_e8db);
                }
                return _bot_28cb8[5]._bot_b8121 > _bot_6621 ? _bot_28cb8[5]._bot_b8121 : _bot_6621;
            };
            var _bot_0c8c = decode(_bot_eb0b.b).split('').reduce(function(_bot_4a2d8, _bot_4980a) {
                if ((!_bot_4a2d8.length) || _bot_4a2d8[_bot_4a2d8.length - _bot_4a80].length == 5) {
                    _bot_4a2d8.push([]);
                }
                _bot_4a2d8[_bot_4a2d8.length - _bot_4a80].push(-_bot_4a80 * 1 + _bot_4980a.charCodeAt());
                return _bot_4a2d8;
            }, []);
            var _bot_0512 = [function(p0, p1, p2, p3, p4, p5, p6) {
                var _bot_47473 = _bot_41c6a(p0, p1);
                _bot_ac54(_bot_64357.splice(_bot_64357.length - _bot_47473, _bot_47473).map(_bot_d54d2), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_a8759();
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_0cba3[0] = _bot_64357[_bot_64357.length - 1];
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var argc = _bot_41c6a(p0, p1);
                if (_bot_64357.length < argc) {
                    return ++p4;
                }
                var args = _bot_64357.splice(_bot_64357.length - argc, argc).map(_bot_d54d2);
                var ref = _bot_64357.pop();
                var func = _bot_d54d2(ref);
                args.unshift(null);
                _bot_ac54(new (Function.prototype.bind.apply(func, args)), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_d3c65(null);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) ^ _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) - _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var ref = _bot_4952(p0, p1);
                var val = _bot_41c6a(p0, p1) - 1;
                ref._bot_d2700[ref._bot_2017] = val;
                _bot_ac54(val, _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                debugger ;return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) >> _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) >>> _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var ref = _bot_4952(p0, p1);
                _bot_ac54(delete ref._bot_d2700[ref._bot_2017], _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var ref = _bot_4952(p0, p1);
                var val = _bot_41c6a(p0, p1) + 1;
                ref._bot_d2700[ref._bot_2017] = val;
                _bot_ac54(val, _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return _bot_2b604;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) & _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var argc = _bot_41c6a(p0, p1);
                if (_bot_64357.length < argc) {
                    return ++p4;
                }
                var args = _bot_64357.splice(_bot_64357.length - argc, argc).map(_bot_d54d2);
                var ref = _bot_64357.pop();
                var func = _bot_d54d2(ref);
                _bot_ac54(func.apply(typeof ref._bot_d2700 == "undefined" ? _bot_1874d : ref._bot_d2700, args), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_d3c65(_bot_ed82e._bot_9523);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var a = _bot_41c6a(p0, p1);
                var b = _bot_41c6a(p2, p3);
                var c = _bot_0c8c.slice(a, b + 1);
                var d = _bot_70b54;
                _bot_ac54(function() {
                    _bot_ed82e = {
                        _bot_ba523: this || _bot_1874d,
                        _bot_d7612: _bot_ed82e,
                        _bot_20748: arguments,
                        _bot_9523: d
                    };
                    _bot_946a1(c);
                    _bot_ed82e = _bot_ed82e._bot_d7612;
                    return _bot_d54d2(_bot_0cba3[0]);
                }, _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_a8759();
                _bot_ac54(_bot_71ac, _bot_71ac, _bot_71ac, 0, 0);
                return Infinity;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) == _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return (!_bot_d54d2(_bot_0cba3[0])) ? _bot_41c6a(p0, p1) : ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) !== _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) != _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1)instanceof _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var name = _bot_41c6a(p0, p1);
                var val = {};
                _bot_ac54(_bot_e4975(name, val), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(+_bot_41c6a(p0, p1), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) * _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) < _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(!_bot_41c6a(p0, p1), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_0cba3[4] = _bot_a20b[_bot_a20b.length - 1];
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(typeof _bot_41c6a(p0, p1), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) << _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_0cba3[3] = _bot_06983(_bot_64357.length, 0, 0, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54({}, _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_0cba3[1] = _bot_64357.pop();
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_64357.push(_bot_0cba3[0]);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var ref = _bot_4952(p0, p1);
                var val = _bot_41c6a(p2, p3);
                _bot_ac54(ref._bot_d2700[ref._bot_2017] = val, _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return _bot_41c6a(p0, p1);
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) <= _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return _bot_dda0b(p4, p6);
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) | _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) === _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return _bot_d54d2(_bot_0cba3[0]) ? _bot_41c6a(p0, p1) : ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(~_bot_41c6a(p0, p1), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_70b54[p1] = undefined;
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var ref = _bot_4952(p0, p1);
                var val = _bot_41c6a(p0, p1);
                _bot_ac54(val++, _bot_71ac, _bot_71ac, 0);
                ref._bot_d2700[ref._bot_2017] = val;
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) && _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(-_bot_41c6a(p0, p1), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(0, _bot_d54d2(_bot_4952(p0, p1)), _bot_41c6a(p2, p3), 1);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) + _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_a8759();
                return Infinity;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) || _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) % _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) >= _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) / _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_a20b.push(_bot_0cba3[0]);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                throw _bot_64357.pop();
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_0cba3[4] = _bot_a20b.pop();
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var name = _bot_41c6a(p0, p1);
                _bot_ac54(_bot_6157(name), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                _bot_ac54(_bot_41c6a(p0, p1) > _bot_41c6a(p2, p3), _bot_71ac, _bot_71ac, 0);
                return ++p4;
            }
            , function(p0, p1, p2, p3, p4, p5, p6) {
                var ref = _bot_4952(p0, p1);
                var val = _bot_41c6a(p0, p1);
                _bot_ac54(val--, _bot_71ac, _bot_71ac, 0);
                ref._bot_d2700[ref._bot_2017] = val;
                return ++p4;
            }
            ];
            return _bot_946a1(_bot_0c8c);
        }
        ;
    }
    ;GreatHorn()(window, {
        "b": " ",
        "d": ["Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "$", "_", "[", "]", 3216, 3336, 3339, 3486, 3489, 3635, 3638, 3818, 3821, 3980, 3983, 4192, 4195, 4345, 4348, 4446, 4449, 4631, 4634, 4761, 4764, 4894, 4897, 5039, 5042, 5176, 5179, 5307, 5310, 6619, 1246, 2813, 0, 2816, 2841, 2844, 2955, 2958, 3028, 3031, 3077, 3080, 3129, 3132, 3144, 1, "self", "-", 2, "", 99991, "\\", "+", "|", "*", "/", ".", "?", 3, 18, 20, 21, 22, 24, 33, 35, 41, 43, 45, 48, 54, 57, 61, 15, 55, 50, 19, 23, 26, 12, 14, 16, 51, 52, 4, 32, 13, 53, 47, 27, 28, 44, 5, 30, 29, 17, 34, 42, 49, 64, 1466, 926, 951, 976, 1001, 1051, 11, 1076, 1101, 1126, 1180, 1205, 1230, 1255, 1280, 1305, 1330, 8, 1364, 1442, 1393, 7, 1417, 882, 1541, 1525, 1526, 1498, 3147, 3175, 3178, 3197, "=", ";", 67, 13131, 46, 2147483647, 3200, 3213, false, 98, 106, 10, 117, 118, 125, 133, 144, 145, 124, 132, 76, 123, 119, 82, 143, 158, 166, 148, 177, 178, 137, 136, 81, 156, 157, 187, 195, 73, 175, 173, 186, 206, 6, 207, 128, 85, 127, 91, true, 147, 84, 62, 95, 9, 96, 160, 168, 159, 63, 153, 155, " ", 36, 179, 180, 105, 113, 104, 100, 70, 108, 116, 97, 120, 139, 140, 112, 131, 114, "{", "}", 126, 1287, 1295, 176, 203, 232, 259, 288, 318, 358, 396, 433, 478, 519, 558, 595, 631, 670, 705, 743, 781, 808, 829, 874, 880, 925, 971, 1014, 1042, 1079, 1039, 1128, 1116, 1124, 1083, 1144, 1198, 1237, 1286, 1306, 1307]
    });
}
)();



console.log(window.signature())