{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/module.js","webpack:///./resources/assets/js/main_b.js","webpack:///(webpack)/buildin/global.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","webpackPolyfill","deprecate","paths","children","Date","isLeapYear","year","getFullYear","getDayOfYear","mn","getMonth","dn","getDate","dayOfYear","shouldIgnoreEvent","conf","isCross","localStorage","chartMovable","dpr","ctx","dpi","window","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","lastTime","vendors","x","requestAnimationFrame","cancelAnimationFrame","callback","element","currTime","getTime","timeToCall","Math","max","id","round3dTime","$_3d_format","offset","getTimezoneOffset","subDays","res","floor","String","fromCharCode","charCodeAt","Sf","WD","JV","oZ","Pw","eg","tf","hT","aN","Ob","RR","xN","Pf","kF","FM","vy","Vi","La","Rm","sv","Iz","NX","SC","Uv","vo","kP","jx","MA","uz","KV","Ay","kV","jh","xw","dT","jO","US","FF","Pm","We","VM","cY","Fx","Zi","Nn","vU","WN","NO","Ow","mq","qo","Lq","PU","JQ","JU","Lm","ks","VQ","ON","Ib","YR","Xf","OC","yQ","pS","xm","IP","bJ","YJ","Qe","vd","we","Sg","ad","Rk","pb","AB","OJ","FC","MD","EC","EX","Sa","rL","OY","mS","Eo","qL","Yp","MI","Yn","GO","aC","Yk","fr","Yi","wt","IM","Yf","mU","kd","AH","cZ","Yv","XZ","QD","JY","vw","XV","Xi","XT","mi","XQ","zK","Ux","bc","OK","OG","RI","zd","eH","MU","PL","De","Vt","LT","zy","jl","BV","PA","IW","zF","BZ","Qx","Ru","hU","IE","Xr","dL","Xp","Tw","Ed","QE","SQ","gM","TY","Wz","YG","mJ","Xd","Xc","sZ","Di","oH","WY","RH","Np","Bu","Qf","XM","NN","Qm","Ta","WP","Qy","Li","DU","WL","ko","Tu","WI","WH","bO","Id","rq","Ac","kH","tX","TL","vE","UW","Mh","bw","QL","Wu","Om","BH","Oz","pG","pB","Rj","Ro","Nf","Rd","Rx","vY","Bt","WB","sp","Wf","QN","zA","hj","uO","uT","ty","Ma","Yr","ow","WO","bT","OX","RP","VR","PX","TA","VO","VN","la","tL","Ry","Ui","VI","CU","Rq","Tg","Ff","nr","Xl","hK","VA","LN","uy","rZ","dV","Pz","Fm","SG","Vs","UO","Ku","FR","xU","qQ","xH","AA","Ug","Vj","WE","fX","Vg","ZD","Ve","GL","Wy","mr","Va","bF","TI","fO","Bf","RM","oj","di","XO","UR","AG","vL","hw","Qq","Ze","XP","fj","Wi","ht","FV","RT","WK","UE","UD","Vm","XN","RA","Jq","Oi","jF","er","Cx","BC","Ut","Us","Vz","Uq","Up","dO","LM","my","ZI","Uk","Uj","Tn","Ym","rC","wi","Xu","nU","ur","TD","FK","YE","Zr","UC","TV","SK","TT","TS","Hp","oS","Bk","TO","FH","TM","so","wg","ZJ","Lk","kC","ZF","QP","Gg","Nj","PQ","Ye","Wm","nG","Zs","Vl","Nq","ED","vG","kn","Za","bS","MK","fK","UN","Iu","OO","Zq","No","cy","nH","Th","Gl","Tf","Te","Oy","Fg","ho","uI","XS","XR","ZV","VB","ot","Vn","Dp","SS","Sy","kf","Gp","SO","yz","RF","SL","tT","Re","Ns","hy","Ja","pj","gb","Mm","Qb","qI","UB","Sz","Mg","ka","Dk","Mx","Su","Lg","Qj","uo","Yd","pf","Hj","Ak","cU","cj","cS","SB","bh","HB","HS","LS","am","sC","hM","Uu","Fl","PG","tK","RX","XY","XF","FL","ZH","RS","rF","nt","Qa","TQ","RN","HX","RL","mM","kY","GX","OM","Ml","Px","RE","mu","RC","su","NG","aH","Yx","sm","an","Rv","YU","Dr","Rs","Sl","ZT","iM","DT","Rn","Tt","Av","WS","Ue","AL","Md","hR","QH","UV","OQ","Rc","Ww","EJ","Wt","QO","sN","uj","th","QU","ef","Pn","Sm","QQ","tz","QR","hX","Ls","Me","Wn","Zf","QI","hG","BA","cG","yT","lI","dE","Mb","HM","Rg","Hc","Ll","LL","Qv","hm","WV","OZ","Qr","hI","QY","hQ","Qn","OT","NM","Pa","Sw","QX","Qh","fD","Pg","ih","cX","Du","VY","NS","zN","co","GC","MS","Ky","Tm","MF","Ok","km","NV","ma","PO","UA","PM","Ra","oI","BO","YN","PH","VL","Zd","PE","Tl","oE","ep","OV","Yo","VP","zs","SH","DB","gB","Tp","Ps","Pr","oT","Pp","tr","PZ","aE","Pl","RJ","LB","TP","Nt","SX","ZP","Pe","LC","Qc","PV","To","MP","fC","Uc","ab","jj","Oj","SA","XW","gC","Pu","$user_id","eZ","Wc","OD","OL","Pt","SF","KG","QZ","jW","xt","Mk","Fi","lB","CK","OA","kI","cQ","wR","Ri","Zh","UL","Yb","NJ","zj","ir","UP","Oo","LO","Zl","Dl","DS","KJ","gg","aU","ni","Of","ou","DJ","GG","br","ZE","Hn","Td","VV","ud","dZ","Bm","NT","Lu","Xo","RK","VT","MW","UZ","YT","NL","Zv","oR","oU","bN","ZC","Xs","EA","MV","Xa","bQ","UM","Nz","rK","Nx","Nw","PB","YC","MM","SJ","wV","ZN","se","NF","vs","YF","gE","YQ","VW","XB","Et","JG","hr","em","NR","TX","SW","CQ","qx","tE","MX","LY","TK","CM","CA","TZ","PT","jk","NP","ut","Oe","EU","Fr","cg","MJ","ch","jg","sb","TC","iG","ZM","VX","KU","GS","ag","HF","YM","mY","DA","Mu","Os","wz","IZ","fJ","fG","Ss","Py","Lv","lU","Nu","BU","LA","UX","Xg","vn","SR","Po","Vk","cr","Mi","Sv","UI","kX","Vc","QM","gs","Gi","oB","qf","at","cx","Ho","hY","wj","Qd","Rf","WJ","LI","Rt","TB","PY","LE","MO","UT","CN","UH","Wq","Ly","av","dN","wr","PI","Uh","PN","lw","ju","Lp","cR","Ln","VJ","Nm","eU","Lj","im","Lh","ku","ob","Le","MC","Um","Lb","VZ","pv","YV","YL","UQ","uB","xs","bM","MN","KR","Nd","qF","KO","LG","Ao","KL","KK","vS","Kl","Uw","Lz","KF","KE","u","h","v","b","F","y","w","T","V","k","S","M","_","I","X","J","P","H","B","O","R","N","L","U","W","Q","Y","D","K","z","q","et","rt","lt","st","ct","ft","dt","pt","vt","bt","gt","mt","Ft","yt","kt","Mt","_t","It","Xt","Zt","Jt","Ht","Ot","Lt","Ct","Yt","Dt","zt","Gt","qt","te","ee","oe","ie","ue","le","ae","ce","fe","de","pe","ve","be","ge","me","Fe","xe","ye","$e","Se","_e","Ie","He","Be","Ee","Ae","Ke","ze","je","qe","rr","or","lr","ar","sr","dr","vr","gr","xr","yr","$r","Tr","Vr","kr","Sr","_r","Ir","Jr","Hr","Br","Or","Nr","Lr","Wr","Cr","Ar","Kr","zr","jr","Gr","to","eo","ro","oo","io","lo","calcPrecision","performanceSettings","simplified_orderbook_hints","enable_tradelog_animation","enable_orderbook_animation","enable_orderbook_color_animation","immediate_execution","sharp_lines","ao","slice","indexOf","$","resize","width","css","outerWidth","left","addClass","removeClass","a","showing","hiding","f","keyup","evt","click","$is_mobile","target","tagName","toLowerCase","is","test","navigator","userAgent","hover","statuses","console","log","time","timeEnd","request","cb","pop","nonce","getNonce","XDomainRequest","param","open","onload","parseJSON","responseText","onerror","ontimeout","onprogress","send","ajax","url","type","dataType","data","done","fail","push_cbs","shift_cbs","shift","unshift","actions","channel","running","global","replace","dead","now","parseInt","ws","WebSocket","onopen","onsocketopen","document","hidden","onmessage","err","message","onclose","close","ondead","retryInterval","min","G","j","it","splice","result","A","Z","E","abs","tt","g","C","sqrt","parseFloat","toFixed","toPrecision","compare","group","ceil","insert","find","type_str","price_int","total_volume_int","collection","item","isRightHandOrderbook","price","amount","trade_type","height","fillAndStroke","undefined","fillStyle","strokeStyle","fillRect","strokeRect","beginPath","moveTo","lineTo","stroke","dx","fillText","text","textAlign","keep","barIndex","openPrice","closePrice","barWidth","rectX","rectYFrom","rectYTo","pow","save","clip","restore","fill","getImageData","canvas","putImageData","Color","rgba","options","count","total","parent","next","prev","multimap","insert_value_","rebuild_","insert_node_","find_node_","has","replace_value","get_node_","set_min_","set_max_","inc_total_","dec_total_","clean_node_","delete_node_","delete_value_","indexOf_","slice_","atom","size","find_all","flatten","dump","stdout","write","delete_if","split","$is_zh","toString","$conf","tid","date","ncLength","candleTime","round","$theme_dark","Background","Border","Link","Cross","Colors","ShapeColors","Shape","ShapeHint","AxisCursorBg","AxisCursorFg","OHLC","$theme_light","$theme_dark2","JSON","parse","stringify","textBaseline","font","measureText","1","2","params","timestamps","exp","outerHeight","top","match","setMinutes","getMinutes","ok","error","reason","lastPosX","lastPosY","isDragging","handleDrag","ev","elem","parents","offsetLeft","offsetTop","posX","deltaX","posY","deltaY","style","isFinal","hide","eventWrapper","mc","Hammer","add","Pan","direction","DIRECTION_ALL","threshold","contains","trigger","show","created","focus","tabs","fadeOut","serializeArray","fadeIn","append","unbind","action","location","href","method","submit","html","email","is_premium","expires_on","attr","address","val","display_name","username","change","orders","info","created_at","old_expires_on","remark","tx_hash","years_str","months_str","days_str","join","mode_name","ip","logined_ip","remove","sessions","removeCookie","path","encodeURIComponent","load","$p","call_api","$is_flutter_view","AudioContext","webkitAudioContext","mozAudioContext","oAudioContext","msAudioContext","Worker","Blob","queues","buzz","sound","formats","$t","St","Kt","ne","re","ke","Xe","Je","Ne","Ge","pr","Fr2","Fr3","Rr","Er","Ur","qr","no","po","bo","go","xo","yo","$o","wo","Vo","So","Mo","Io","Jo","Bo","Lo","Uo","Wo","Do","Ko","zo","jo","ei","ii","ui","li","ai","si","ci","fi","hi","xi","yi","$i","Ti","ki","Si","_i","Ii","Ji","Pi","Hi","Bi","Ei","Ni","Ci","Qi","Ai","Ki","ji","qi","tu","ru","iu","uu","lu","au","cu","fu","hu","du","pu","vu","bu","Fu","yu","$u","Vu","kuHeight","_u","Hu","Ou","Eu","Cu","Qu","Au","Yu","zu","Gu","qu","nl","el","ol","ul","ll","al","obj","prefix","scaleGraph","lockCross","HeatmapCanvas","redrawCross","redrawMain","redrawShapes","redrawHeatmap","DrawingsStore","set","drawing","keys","getKeys","subid","updated_at","symbol","$symbol","setItem","getItem","removeItem","getRaw","getAll","drawChartInfo","cl","hl","cookieName","cookieValue","saveConfig","cookieParams","expires","wildcardDomain","domain","cookie","dl","pl","Measurer","start","stop","ml","clearRect","getContext","ctxDpr","canvasWidth","canvasHeight","setTransform","ql","Il","xl","yl","wl","kl","old_l_html","old_yu_html","_l","sa","ca","fa","ha","da","pa","va","ba","ga","Fa","isCrosshairInfoVisibleForMobile","$is_desktop_mode","setSeconds","lineWidth","substr","market","line_style","trim","Bl","Ol","Rl","price_currency","El","reverse","changed_at","Nl","last","$c_usdcny","Ul","Wl","asks","bids","Infinity","Heatmap","sdepth","Ql","step","$step","forceUpdate","stepChange","is_simple","$ssl","$host","Yl","Al","$sid","zl","createElement","setAttribute","innerHTML","tx","tx_style","oa","useAnimation","changeColorAnimation","divsClasses","emptyEl","sort","ob_amount","clone","before","ob_price","getElementsByClassName","ra","ta","precision","notation","format","ea","amount_str","price_str","found_at","divInfo","ua","$script_loaded","sessionStorage","rm","$theme_name","support","cors","gasks","gbids","$debug","prepend","childNodes","removeChild","60","180","300","900","1800","3600","7200","14400","21600","43200","86400","259200","604800","price_mas","labels","volume_mas","bbands","pids","fn","sar","macd","colors","stoch_rsi","axis","rsi","dmi","kdj","cmf","obv","bid_ratio","userLanguage","language","depth_hint","sidebar","$hsymbol","recreateDepth","$init_price","vl","$disable_volume","handleDrawingGet","handleDrawingReplace","handleDrawingsGetAll","localData","handleDrawingDelete","heatmapArguments","requestHeatmapVar","requestCrossVar","requestMainVar","requestShapesVar","frameRedrawRequest","rafLoop","draw","requestFrameRedraw","event","eventX","eventY","center","pageX","originalEvent","touches","pageY","actualBarSize","fl","alert","stick_style","ctrlKey","shiftKey","refreshLoop","stats","update","canClearChartInfo","clearChartInfo","touchEnd","touchStart","forceMove","button","eventPhase","canAddMoreAlerts","FlutterFunctions","alertSide","updateAlert","sendCantAddMoreAlerts","delta","body","addEventListener","touch","mouseX","mouseY","rect","getBoundingClientRect","right","bottom","mouseout","mousewheel","contextmenu","getElementById","lastPinchValue","enable","scale","world_draw_main","Qt","At","jt","he","Ce","Mr","fo","mo","Fo","isDrawing","$load_time","resetIsDrawing","mainBottomPadding","heatmapsEnabled","$heatmap_settings","combined","calcLows","calcHighs","index","heatmapsRange","vtTo","AtTo","vtI","AtI","nCounter","nId","sliceLimit","n1","n2","n3","volumeStrokeStyle","drawData","runDrawData","nCb","bars","dd","barConfig","styleEqStrokeStyle","linePath","arc","closePath","cond","key_cond","key_text","over","textFontObjects","numbersFontObjects","textContent","textX","textWidth","tfo","toTfo","nfo","toNfo","drawXAxisLabels","useSimplifiedHints","priceLevels","setPriceLevels","priceText","leftPadding","Jl","reload","FrP","initPopupDragging","default_params","USD","EUR","GBP","CNY","JPY","AUD","CAD","BTC","LTC","disableAnimations","insertBefore","appendChild","isNaN","click_base_currency","click_quote_currency","hasClass","which","keyCodes","depth","$test","since","return","webSocketsHosts","wsI","wsTo","$ws_servers","taskQueue","updateRefreshTimer","trades","ticker","random","windowTabbedOut","immediateExecution","immediateTradesLength","callPrecisionCb","recalcPrecisionVariables","handleTrades","arg","Cl","errorPopup","errorPopupVisible","checkLocalStorageUpdates","refreshPage","keydown","debounce","wait","timeoutId","signalFlutter","play","loop","getSeconds","aa","popupSelector","container","cacheKey","default_performance_settings","$default_performance_settings","each","input","prop","Function"],"mappings":"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","file":"/js/main_b.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","Date.prototype.isLeapYear = function() {\n    var year = this.getFullYear();\n    if((year & 3) != 0) return false;\n    return ((year % 100) != 0 || (year % 400) == 0);\n};\n\nDate.prototype.getDayOfYear = function() {\n    var dayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];\n    var mn = this.getMonth();\n    var dn = this.getDate();\n    var dayOfYear = dayCount[mn] + dn;\n    if(mn > 1 && this.isLeapYear()) dayOfYear++;\n    return dayOfYear;\n};\n\n// not a very good idea to call localStorage that often\nvar shouldIgnoreEvent = function(conf) {\n//    window.Measurer('shouldIgnoreEvent').start();\n\n    var isCross = localStorage.mode && localStorage.mode === 'cross';\n    var chartMovable = conf['chart_touch_movement'] === '\"on\"' || conf['chart_touch_movement'] === 'on';\n\n//    window.Measurer('shouldIgnoreEvent').stop();\n\n    return !isCross || !chartMovable;\n};\n\nvar dpr = function(ctx) {\n    var dpi = window.devicePixelRatio || 1;\n    var backingStoreRatio = 1;\n\n    if(dpi < 1) {\n        return 1;\n    }\n\n    if(ctx) {\n        backingStoreRatio = (\n            ctx.webkitBackingStorePixelRatio ||\n            ctx.mozBackingStorePixelRatio ||\n            ctx.msBackingStorePixelRatio ||\n            ctx.oBackingStorePixelRatio ||\n            ctx.backingStorePixelRatio || 1\n        );\n    }\n\n    return dpi / backingStoreRatio;\n};\n\nwindow.dpr = dpr;\n\n// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n(function() {\n    var lastTime = 0;\n    var vendors = ['ms', 'moz', 'webkit', 'o'];\n    for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n        window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n        window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n            || window[vendors[x]+'CancelRequestAnimationFrame'];\n    }\n\n    if (!window.requestAnimationFrame)\n        window.requestAnimationFrame = function(callback, element) {\n            var currTime = new Date().getTime();\n            var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n            var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n                timeToCall);\n            lastTime = currTime + timeToCall;\n            return id;\n        };\n\n    if (!window.cancelAnimationFrame)\n        window.cancelAnimationFrame = function(id) {\n            clearTimeout(id);\n        };\n}());\n\nvar round3dTime = function(t) {\n    if (window.$_3d_format !== \"tv\") {\n        return t - t % 259200;\n    }\n\n    // here is an issue: new Date() is using LOCAL time\n    var offset = (new Date()).getTimezoneOffset();\n    var date = new Date(t * 1000 + offset * 60 * 1000);\n    var subDays = (date.getDayOfYear() - 1) % 3;\n\n    // console.log(t, subDays);\n\n    var res = Math.floor((\n        t - (subDays * 24 * 60 * 60 * 1000)\n    ) / 1000);\n\n    return res - res % 86400;\n};\n\n(function() {\n    var n = function(n) {\n            var t, e, r, o, i;\n            for (r = \"\", e = o = 0, i = n.length; i > o; e = ++o) t = n[e], r += String.fromCharCode(102 ^ t.charCodeAt(0));\n            return r\n        },\n        t = {\n            Sf: n(\"\u0014\u0001\u0004\u0007NTVVJTVVJTVVJVHPO\"),\n            WD: n(\"\u0016\u0007\u0015\u0015\u0016\t\u0014\u00129\\n\t\u0001\t\u0013\u0012\"),\n            JV: n(\"@\"),\n            oZ: n(\"J\"),\n            Pw: n(\"E\u0004\u0003\\x00\t\u0014\u00039\u0012\u0014\u0007\u0002\u0003\u0015\"),\n            eg: n(\"E\\b\t\u0012\u000f\\x00\u001fFH\u000f\\b\\b\u0003\u0014\"),\n            tf: n(\"H\u0010\"),\n            hT: n(\"\\n\u0003\\b\u0001\u0012\u000e\"),\n            aN: n(\"3\\b\\r\\b\t\u0011\\bF#\u0014\u0014\t\u0014\"),\n            Ob: n(\"$\u000f\u0012\u0015\u0012\u0007\u000b\u0016\"),\n            RR: n(\"\u0014\u0003\u0017\u0013\u0003\u0015\u0012F\\x00\u0007\u000f\\n\u0003\u0002H\"),\n            xN: n(\"\\n\u000f\\b\u00032\t\"),\n            Pf: n(\"\u0015\u0005\u0007\\n\u0003\"),\n            kF: n(\"\u0014\u0001\u0004\u0007NVJVJWT^JVH^O\"),\n            FM: n('EV\"^P  '),\n            vy: n(\"\u0014\u0012\u0015F\t\\r\"),\n            Vi: n(\"\u0002\u0003\u0016\u0012\u000e\"),\n            La: n(\"5\u000e\u0007\u0016\u0003%\t\\n\t\u0014\u0015\"),\n            Rm: n(\"\u000e\t\u000b\u0003\"),\n            sv: n(\",\u0007\\bF \u0003\u0004F+\u0007\u0014F'\u0016\u0014F+\u0007\u001fF,\u0013\\bF,\u0013\\nF'\u0013\u0001F5\u0003\u0016F)\u0005\u0012F(\t\u0010F\\\"\u0003\u0005\"),\n            Iz: n(\"F\"),\n            NX: n(\"\u0004\u0007\u00141\u000f\u0002\u0012\u000e\"),\n            SC: n(\"\u0014\u0001\u0004\u0007NPRJTSSJPRJVHUO\"),\n            Uv: n(\"\\x00\u0003\u0012\u0005\u000eF\u0002\u0003\u0016\u0012\u000eF\\x00\u0007\u000f\\n\u0003\u0002\"),\n            vo: n(\"\u0001\u0003\u0012 \u0013\\n\\n?\u0003\u0007\u0014\"),\n            kP: n(\"\u0001\u0003\u001232%\"),\n            jx: n(\"仙\"),\n            MA: n(\"E\\n\t\u0007\u0002\u000f\\b\u0001\"),\n            uz: n(\"\u0001\u0003\u0012+\u000f\\b\u0013\u0012\u0003\u0015\"),\n            KV: n(\"H\u0002\u000f\u0007\\n\t\u0001\\\\\u0010\u000f\u0015\u000f\u0004\\n\u0003\"),\n            Ay: n(\"Z\u0002\u0002XZ\u0015\u0016\u0007\\bF\u0015\u0012\u001f\\n\u0003[D\u0005\t\\n\t\u0014\\\\\"),\n            kV: n(\"@\u0015\u000f\u001c\u0003[Q\"),\n            jh: n(\"\u0001\u0003\u00122\u000f\u000b\u0003\u001c\t\\b\u0003)\\x00\\x00\u0015\u0003\u0012\"),\n            xw: n(\"U\u0002\"),\n            dT: n(\">%.'(!#\"),\n            jO: n(\"\\x00\u0007\u000f\\n\u0003\u0002FTJFE\u001d\u0014H\u0003\u0014\u0014\t\u0014\u001bFE\u001d\u0014H\u0014\u0003\u0015\u0013\\n\u0012\u001bFE\u001d\u0010\u001bE\u001d,5)(H\u0015\u0012\u0014\u000f\\b\u0001\u000f\\x00\u001fN\u0014O\u001b\"),\n            US: n('E \"^ VV'),\n            FF: n(\"\u0015\u0003\u0015\u0015\u000f\t\\b\u0015\"),\n            Pm: n(\"E\u0016\u0014\u000f\u0005\u0003\"),\n            We: n(\"ZI\u0002\u0002XZI\u0002\\nX\"),\n            VM: n(\"\u0004\t\\n\u0002FWT\u0016\u001eF\"),\n            cY: n(\"BW\"),\n            Fx: n(\"F\u000f\u0015F\\b\t\u0012F\u000f\\b\u0012\u0003\u0001\u0003\u0014H\"),\n            Zi: n(\"\u0014\u0001\u0004\u0007NTSSJTSSJWT^JVH^O\"),\n            Nn: n(\"N\"),\n            vU: n(\"\u0014\u0001\u0004\u0007NTSSJWT^JWT^JVH^O\"),\n            WN: n(\"\u0004\u0003\u0001\u000f\\b6\u0007\u0012\u000e\"),\n            NO: n(\"\u0011\u000f\u0002\u0012\u000e\"),\n            Ow: n('M\"/'),\n            mq: n(\"\u0014\u0001\u0004\u0007NW_PJTSSJW_PJVH^O\"),\n            qo: n(\"\u0014\u0001\u0004\u0007NVJVJVJVH^O\"),\n            Lq: n('\")!#'),\n            PU: n(\"\u0002\u0014\u0007\u00119\\x00\u000e\\n\u000f\\b\u0003\"),\n            JQ: n(\"\u0014\u0001\u0004\u0007NWT^JVJVJVH^O\"),\n            JU: n(\"\u0014\u0001\u0004\u0007NVJWT^JWT^JVH^O\"),\n            Lm: n(\"'\u0014\u0014\t\u0011F2\u0003\u001e\u0012\"),\n            ks: n(\"\u0014\u0001\u0004\u0007NWT^JVJWT^JVH^O\"),\n            VQ: n(\"F\u0007\u0015\\r\u0015F\u0007\\b\u0002F\"),\n            ON: n(\"E\\x00\t\t\u0012\u0003\u0014\"),\n            Ib: n(\"\u0002\u000f\u0010\\\\\\x00\u000f\u0014\u0015\u0012\"),\n            YR: n(\"2?6#JF6)/(25JF)4\\\"#4JF'>/5JF )4+3*'JF52'235JF> />JF$*)%-9*/+/2JF52#6JF5('6JF2.#+#l6'42/'*JF /(/5.#\\\"l*/(#'4JF*)!JF$/*)!l*/(#JF0*/(#JF.*/(#JF 0*/(#JF .*/(#JF '4%JF  '(JF .*/(##>JF */(#JF  '(%JF%)*)4\"),\n            Xf: n(\"7\u0013\t\u0012\u0003N\"),\n            OC: n(\"EV^%\"),\n            yQ: n(\"\u0015\u0002\u0003\u0016\u0012\u000e\"),\n            pS: n(\"WVV\u0016\u001e\"),\n            xm: n(\"\u000b\u0007\u0014\u0001\u000f\\bK\u0012\t\u0016\"),\n            IP: n(\"Z\u0004\u0014XF \u0014\t\u000bF\"),\n            bJ: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\t\\rX\"),\n            YJ: n(\"F\u0015\u0013\u0005\u0005\u0003\u0015\u0015\\x00\u0013\\n\\n\u001fHZI\u0002\u000f\u0010X\"),\n            Qe: n(\"%\t\\b\u0015\t\\n\u0007\u0015JF+\t\\b\t\u0015\u0016\u0007\u0005\u0003\"),\n            vd: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\t\\rX*\t\u0007\u0002\u000f\\b\u0001HHHZI\u0002\u000f\u0010X\"),\n            we: n(\"F\u0004\u000f\u0002\u0015\"),\n            Sg: n(\"\u0014\u0001\u0004\u0007NTSSJPRJPRJVHTO\"),\n            ad: n(\"\u0016\u0014\t\\x00\u000f\\n\u0003\"),\n            Rk: n(\"\\n\t\u0001\t\u0013\u0012\"),\n            pb: n(\"\u0014\u0003\u000b\t\u0010\u0003F\"),\n            AB: n(\"Z\u0012\u0014XZ\u0012\u0002X\"),\n            OJ: n(\"ZI\u0012\u0002XZ\u0012\u0002X#\u001e\u0012\u0003\\b\u0002F\u0016\u0014\u0003\u000b\u000f\u0013\u000b\"),\n            FC: n(\"'F\u0014\u0003\u0005\t\u0010\u0003\u0014\u001fF\u000b\u0007\u000f\\nF\u000e\u0007\u0015F\u0004\u0003\u0003\\bF\u0015\u0003\\b\u0012F\u0012\tZ\u0004\u0014X\"),\n            MD: n(\"!\u0014\u0003\u0003\\bF'\\n\u0007\u0014\u000b\"),\n            EC: n(\"\u0015\u0014\u0005\"),\n            EX: n(\"\u000e\t\u0013\u0014\"),\n            Sa: n(\"\\n\u000f\u0012\u0003\u0005\t\u000f\\b\"),\n            rL: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\t\\rX?\t\u0013F\u0002\t\\bA\u0012F\u000e\u0007\u0010\u0003F\u0007\\b\u001fF\t\u0014\u0002\u0003\u0014F\u001f\u0003\u0012HZI\u0002\u000f\u0010X\"),\n            OY: n(\"W\u000e\"),\n            mS: n(\"FZ\u0015\u0016\u0007\\bF\u0015\u0012\u001f\\n\u0003[D\u0005\t\\n\t\u0014\\\\EPPPDXZ\u0015\u000b\u0007\\n\\nXN\"),\n            Eo: n(\"\u0005\u000b\\x009\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            qL: n(\"F\\n\u0003\\x00\u0012OZI\u0015\u000b\u0007\\n\\nXZI\u0015\u0016\u0007\\bX\"),\n            Yp: n(\"3\u0016\u0001\u0014\u0007\u0002\u0003F\u0012\tF\u0016\u0014\u0003\u000b\u000f\u0013\u000bF\u0007\u0005\u0005\t\u0013\\b\u0012H\"),\n            MI: n(\"+\u000f\\b\t\u0014F'\u0014\u0014\t\u0011\"),\n            Yn: n(\"Y\u0007\u000b\t\u0013\\b\u0012[\"),\n            GO: n(\"\u0007\u0015\\r\u0015\"),\n            aC: n(\"EUP \"),\n            Yk: n(\"%\u000e\u0007\\b\u0001\u0003F\"),\n            fr: n(\"F\u000f\u0015F\u0014\u0003\u000b\t\u0010\u0003\u0002H\"),\n            Yi: n(\"%\\n\u000f\u0005\\rF\u0004\u0013\u0012\u0012\t\\bF\u0007\u0001\u0007\u000f\\bF\u0012\tF\u0016\u0003\u0014\\x00\t\u0014\u000bF\u0012\u000e\u0003F\u0007\u0005\u0012\u000f\t\\bH\"),\n            wt: n(\"*\t\u0007\u0002\u000f\\b\u0001HHH\"),\n            IM: n('Z\u0004\u0014IXZ\u000eX\"\u0014\u0007\u0011\u000f\\b\u0001FZI\u000eX3\\b\u0002\u0003\\n\u0003\u0012\u0003N'),\n            Yf: n(\"FKF\"),\n            mU: n(\"⇶F\"),\n            kd: n(\"FIF\"),\n            AH: n(\"ZI\u0002\u0002X\"),\n            cZ: n(\"\u0005\t\u000b\u0016\u0007\u0014\u0003\"),\n            Yv: n(\"./52\"),\n            XZ: n(\"%\t\u000b\u0016\u0007\u0012\u000f\u0004\\n\u0003F\u0003\u0014\u0014\t\u0014HF\"),\n            QD: n(\"I\u0002\u000f\\x00\\x00\u000f\u0005\u0013\\n\u0012\u001fY\u0005\t\u000f\\b9\\b\u0007\u000b\u0003[\"),\n            JY: n('K\"/'),\n            vw: n(\"\u0001\u0003\u0012.\t\u0013\u0014\u0015\"),\n            XV: n(\"'\u0013\u0002\u000f\t%\t\\b\u0012\u0003\u001e\u0012\"),\n            Xi: n(\"\u0015\u001f\u000b\u000b\"),\n            XT: n(\"\u0005\u0014\u0003\u0007\u0012\u0003)\u0015\u0005\u000f\\n\\n\u0007\u0012\t\u0014\"),\n            mi: n(\"\u0003\u0014\u0014\t\u0014\"),\n            XQ: n(\"\t\u0001\u0001\"),\n            zK: n(\"E $_'__\"),\n            Ux: n(\"E#UW'W%\"),\n            bc: n(\"H\t\"),\n            OK: n(\"\u0011\t\u0014\\n\u0002\"),\n            OG: n(\"+'%\\\"\"),\n            RI: n(\"H\t\\r\"),\n            zd: n(\"9\u0007\u0010\u0001\"),\n            eH: n(\"\u000e\u0014\u0003\\x00\"),\n            MU: n(\"W\u000b\"),\n            PL: n(\"\u0010\u0007\\n\u0013\u0003\"),\n            De: n(\"\u000b\u0007\u0005\u00029\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            Vt: \"mousemove touchmove touchstart\",\n            LT: n(\"E\u0015\u0003\u0012\u0012\u000f\\b\u00019\u0012\u001cF\\n\u000f=\u0010\u0007\\n\u0013\u0003[\u0013\u0012\u0005;\"),\n            zy: n(\"\u0012\t\u0016\"),\n            jl: n(\"\u0007\u001e\u000f\u0015\"),\n            BV: n(\"\"),\n            PA: n(\"E\u0007\u0015\u0015\u000f\u0015\u0012\"),\n            IW: n(\"\u000f\u0012\u0003\u000b\"),\n            zF: n(\"1\u0003\u00041\t\u0014\\r\u0003\u0014\"),\n            BZ: n(\"\u000f\\b\u0002\u0003\u001e)\\x00\"),\n            Qx: n(\"\u000e\u0003\u000f\u0001\u000e\u0012\"),\n            Ru: n(\"\u0015\u0013\u0004\u000b\u000f\u0012\"),\n            hU: n(\"\u000e\u0012\u0012\u0016E\u001dB\u0015\u0015\\n\u001b\\\\IIE\u001d\u000e\t\u0015\u0012\u001bIE\u001d\u0016\u0007\u0012\u000e\u001b\"),\n            IE: n(\"E\u0005\u0007\\b\u0010\u0007\u00159\u000b\u0007\u000f\\b\"),\n            Xr: n(\"F\u0005\\n\u0007\u0015\u00159\\b\u0007\u000b\u0003[D\"),\n            dL: n(\"ZI\u0002\u000f\u0010XFZ\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[D\u0016F\"),\n            Xp: n(\"Z\u0002\u000f\u0010\"),\n            Tw: n(\"IX\"),\n            Ed: n(\"\\n\t\u0011\"),\n            QE: n(\"NM\"),\n            SQ: n(\"E%%WRWR\"),\n            gM: n(\"E\u0015\u0003\u0012\u0012\u000f\\b\u00019\u0012\u001cF\\n\u000f=\u0010\u0007\\n\u0013\u0003[\\n\t\u0005\u0007\\n;\"),\n            TY: n(\"\u0014\u0003\u0007\\n\u0012\u000f\u000b\u0003F\u0007\u0005\u0012\u000f\u0010\u0003F\u0007\u0012F\"),\n            \"if\": n(\"\u0007\\n\u0007\u0014\u000b\"),\n            Wz: n(\"5\u0003\\n\\nFZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u001f\u0003\\n\\n\t\u0011X\"),\n            YG: n(\"E  V\"),\n            mJ: n(\"\u001a\"),\n            Xd: n(\"B\u0005\t\\b\\x00\"),\n            Xc: n(\"\u0005\t\\b\\x00\\\\\"),\n            sZ: n(\"H\u0002\u000f\u0014\u0003\u0005\u00129\u0007\u0002\u0002\u0014\u0003\u0015\u0015\"),\n            Di: n(\"%\u0014\t\u0015\u0015F\u000f\u0015F\u0013\\b\\n\t\u0005\\r\u0003\u0002H\"),\n            oH: n(\"\u000b\u000f\\b\"),\n            WY: n(\"\u0010\t\\n\u0013\u000b\u00039\u0005\u0013\u0014\u0014\u0003\\b\u0005\u001f\"),\n            RH: n(\"Z\u0002\u000f\u0010XZ\u0007X\"),\n            Np: n(\"$\t\u0014\u0002\u0003\u0014\"),\n            Bu: n(\"E\u000b\u0007\u0014\\r\u0003\u00129\"),\n            Qf: n(\"'\u0014\u000f\u0007\\nJF\u0015\u0007\\b\u0015\"),\n            XM: n(\"\t\"),\n            NN: n(\"E\u000b\u0007\u0014\\r\u0003\u0012\"),\n            Qm: n(\"\u0015\u0012\u000f\u0005\\r9\u0015\u0012\u001f\\n\u0003\"),\n            Ta: n(\"C\"),\n            WP: n(\"\\n\u0007\u0004\u0003\\n\u0015\"),\n            Qy: n(\"9\u0005\t\u0015\u0012\"),\n            Li: n(\"DX\"),\n            DU: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\\n\t\u0001\u000f\\b\"),\n            WL: n(\"Z\u0002\\nX\"),\n            ko: n(\"ZI\u0002\\nX\"),\n            Tu: n(\"\u000b\u0013\\n\u0012\u000f\u000b\u0007\u0016\"),\n            WI: n(\"ZI\u0002\u000f\u0010X\"),\n            WH: n(\"WT\u0016\u001eF\"),\n            bO: n(\"\u0014\u0001\u0004\u0007NTSSJTSSJVJVH^O\"),\n            Id: n(\"\u0005\t\\b\\b\u0003\u0005\u0012\"),\n            rq: n(\"\u0007\u0016\u0016\\n\u001fF\u0015\u0002\u0003\u0016\u0012\u000e\"),\n            Ac: n(\"ZI\u0015\u0016\u0007\\bXF\"),\n            kH: n(\"F\u0011\u000f\\n\\nF\u0005\t\u0015\u0012FZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0001\u0014\u0003\u0003\\bX\"),\n            tX: n(\"F\u0007\\b\u0002F\u0016\u0014\u000f\u0005\u0003F\u0011\u000f\\n\\nF\u0014\u0003\u0007\u0005\u000eFZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0001\u0014\u0003\u0003\\bX\"),\n            TL: n(\"\u0002\u000f\u0015\u0005\t\\b\\b\u0003\u0005\u0012\"),\n            vE: n(\"\u0007\u0004\u0015\"),\n            UW: n(\"\u0002\u000f\u0010\"),\n            Mh: n(\"\u0007\u0015\\r\"),\n            bw: n(\"E\u0005\\n\u0003\u0007\u00149\u000e\u000f\u0001\u000e9\u0016\u0014\u000f\u0005\u0003\"),\n            QL: n(\"Z\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u000bXKZI\u0015\u0016\u0007\\bX\"),\n            Wu: n(\"Z\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u000bXMZI\u0015\u0016\u0007\\bX\"),\n            Om: n(\")$0\"),\n            BH: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\u0015\u0003\u0005\u0013\u0014\u000f\u0012\u001fFH\u0007\u0005\u0005\t\u0013\\b\u00129\\b\u0007\u000b\u0003\"),\n            Oz: n(\"\u0014\u0015\u000f9\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            pG: n(\"F\u0012\tF\"),\n            pB: n(\"H\u0015\u001f\u000b\u0004\t\\n9\"),\n            Rj: n(\"%.'(!#\\\\F\"),\n            Ro: n(\"\u0016\u0007\u0015\u0015\u0016\t\u0014\u00129\u0014\u0003\u0005\t\u0010\u0003\u0014\u001f9\u000b\u0007\u000f\\n\"),\n            Nf: n(\"\u0005\u000e\u0007\u0014\u00129\u0014\u0007\\b\u0001\u0003\"),\n            Rd: n(\"\u0002\u000b\u000f\"),\n            Rx: n(\"\u000b\u0007\u0014\\r\u0003\u0012\"),\n            vY: n(\"\\b\t\\b\u0003\"),\n            Bt: n(\"\u0001\u0003\u0012+\t\\b\u0012\u000e\"),\n            WB: n(\"Z\u0002\u0002X\"),\n            sp: n(\"\u0007\u000b\t\u0013\\b\u0012\"),\n            Wf: n(\"Z\u0002\\nXZ\u0002\u0002X)  5#2\\\\F\"),\n            QN: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\u0015\u0003\u0005\u0013\u0014\u000f\u0012\u001f\"),\n            zA: n(\"\u000b\u000f\u0002\u0002\\n\u0003\"),\n            hj: n(\"\u0005\u0007\\b\u0002\\n\u00039\u0015\u0012\u000f\u0005\\r9\u000e\\n\u0005\"),\n            uO: n(\"\\n\u0003\\x00\u0012\"),\n            uT: n(\")\\\\F\"),\n            ty: n(\"\u0014\u000f\u0001\u000e\u0012\"),\n            Ma: n(\".\u000f\u0002\u0003F74F%\t\u0002\u0003\"),\n            Yr: n(\"F\u0002\u0007\u001f\"),\n            ow: n('E\" ^\\'\" '),\n            WO: n(\"%\\\\F\"),\n            bT: n(\"F'\u0014\u0014\t\u0011\"),\n            OX: n(\"T\u000e\"),\n            RP: n(\"H\u0012\u0007\u0004\\n\u000f\u0015\u0012\"),\n            VR: n(\"\u0007\u001e\u000f\u00159\u000b\u000f\\b\"),\n            PX: n(\"\u0002\u0014\u0007\u00119\\n\u000f\\b\u0003\"),\n            TA: n(\"\\n\t\t\u00169\u0013\\b\u0012\u000f\\n9\u0015\u0013\u0005\u0005\u0003\u0015\u0015\\\\\u0003\u0014\u0014\t\u0014\"),\n            VO: n(\"\u0014\u0003\\x00\u0014\u0003\u0015\u000eF\\n\u000f\u000b\u000f\u0012F\"),\n            VN: n(\"\u0005\u0003\\b\u0012\u0003\u0014\"),\n            la: n(\"Z\u0012\u0007\u0004\\n\u0003F\u0005\\n\u0007\u0015\u0015[\u0015WX\"),\n            tL: n(\"\u0004\u0004\u0007\\b\u0002\u00159\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            Ry: n(\"\u0016\u0014\u0003\u000b\u000f\u0013\u000b\"),\n            Ui: n(\"\u0012\u000f\u0005\\r\u0003\u0014\\\\F\"),\n            VI: n(\"0\t\\n\u0013\u000b\u0003F\u000f\u0015F\u0002\u000f\u0015\u0007\u0004\\n\u0003\u0002F\\x00\t\u0014F%\t\u000f\\b\u0004\u0007\u0015\u0003H\"),\n            CU: n(\"F\u0002\t\u0003\u0015\\bA\u0012F\u0005\t\\b\u0012\u0007\u000f\\bF\u0004\u000f\u0002I\u0007\u0015\\rF\u000f\\b\\x00\tH\"),\n            Rq: n(\"\u000f\\b\u0016\u0013\u0012=\\b\u0007\u000b\u0003[\u0014\u0003\u0005\t\u0010\u0003\u00149\u0016\u0007\u0015\u0015\u0011\t\u0014\u0002;\"),\n            Tg: n(\"\u0013\\b\u000f\u00129\\r\"),\n            Ff: n(\"\"),\n            nr: n(\"WV\u0016\u001eF%\t\\b\u0015\t\\n\u0007\u0015JF+\t\\b\t\u0015\u0016\u0007\u0005\u0003\"),\n            Xl: n(\"\\\\F\"),\n            hK: n(\"\u0014\u0001\u0004\u0007NTSSJTSSJTSSJVH^O\"),\n            VA: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0012\u0003\u001e\u0012X\"),\n            LN: n(\"Å\"),\n            uy: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0012\u0003\u001e\u0012X*\t\u0007\u0002\u000f\\b\u0001HHHZI\u0002\u000f\u0010X\"),\n            rZ: n(\"\u0007\u0007\u0005\"),\n            dV: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0003\u0014\u0014\t\u0014X*\t\u0007\u0002F\u000e\u000f\u0015\u0012\t\u0014\u001fF\\x00\u0007\u000f\\n\u0003\u0002XZI\u0002\u000f\u0010X\"),\n            Pz: n(\"E\u0016\u0003\u0014\u000f\t\u0002\u0015\"),\n            Fm: n(\"E\u0016\u00059\u0012\t9\u0004\u0011\"),\n            SG: n(\"IZI\u0015\u0016\u0007\\bX\"),\n            Vs: \"/ticker\",\n            UO: n(\"E\"),\n            Ku: n(\"'\\\">4\"),\n            FR: n(\"4\u0003\u0002F \u000f\\n\\n\"),\n            xU: n(\"F\u0002\u0003\u0016\u0012\u000e\"),\n            qQ: n(\"\u0005\t\\n\t\u0014\u0015\"),\n            xH: n(\"F\u0004\u0013\u0012\u0012\t\\b\"),\n            AA: n(\"ZI\u0015\u0016\u0007\\bXZI\u0002\u0002X\"),\n            Ug: n(\"\u0007\u001e\u000f\u00159\u000b\u0007\u001e\"),\n            Vj: n(\"\u0015\u0011\u000f\u0012\u0005\u000eF\\x00\u0007\u000f\\n\u0003\u0002F\"),\n            WE: n(\"$\u0013\u001fFZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u001f\u0003\\n\\n\t\u0011X\"),\n            fX: n(\"E\u0015\\n\t\u00129\u000e\u0007\u0015\u000e9\u0014\u0007\u0012\u0003\"),\n            Vg: n(\"I\u0016\u0003\u0014\u000f\t\u0002\"),\n            ZD: n('\u0001\u0003\u0012\"\u0007\u0012\u0003'),\n            Ve: n(\"\u000f\\b\u0016\u0013\u0012=\\b\u0007\u000b\u0003[\"),\n            GL: n(\";\"),\n            Wy: n(\"F\u0011\u000f\\n\\nF\u0014\u0003\u0005\u0003\u000f\u0010\u0003FZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0014\u0003\u0002X\"),\n            mr: n(\"\u000f\\b\u0002\u000f\u0005\u0007\u0012\t\u0014\\\\\"),\n            Va: n(\"Z\u0001XB@ZI\u0001X\"),\n            bF: n(\"0\\\\F\"),\n            TI: n(\"9\u0007\u0010\u00019\u0016\"),\n            fO: n(\"ZI\u0001X\"),\n            Bf: n(\"\u0007\u0005\u0012\u000f\u0010\u0003\"),\n            RM: n(\"ZI\u0012\u0007\u0004\\n\u0003X\"),\n            oj: n(\"\u0007\u0015\u0015\u000f\u0015\u0012\"),\n            di: n(\"\u0014\t\u0011\"),\n            XO: n(\"FKF$\u000f\u0012\u0005\t\u000f\\b1\u000f\u0015\u0002\t\u000b\"),\n            UR: n(\"Z\u0002\u000f\u0010X\"),\n            AG: n(\"\u000b\u000f\\b\\\\F\"),\n            vL: n(\"'+6*/23\\\"#\\\\F\"),\n            hw: n(\"E\u0004\u000f\u0002\"),\n            Qq: n(\"%B\"),\n            Ze: n(\"\u0014\u0001\u0004\u0007NTSSJW_PJW_PJVH^O\"),\n            XP: n(\"\u000b\u0016U\"),\n            fj: n(\"9\u0014\u0003\u0007\u0005\u000e\"),\n            Wi: n(\"*# 2+)52\"),\n            ht: n(\"\"),\n            FV: n(\"\u0016\t\u0015\u000f\u0012\u000f\t\\b\"),\n            RT: n(\"5\u000e\u0007\u0016\u0003.\u000f\\b\u0012\"),\n            WK: n(\"9\u0005\t\u0015\u00129\u0016\"),\n            UE: n(\"E\u0002\\n\u00019\"),\n            UD: n(\"H\\n\u000f\\b\\r9\"),\n            Vm: n(\"\\n\t\u0007\u0002F\"),\n            XN: n(\"E\u000b\t\u0002\u00039\"),\n            RA: n(\"\\n\t\u0001\u000f\\b\"),\n            Jq: n(\"\u0014\u0003\u0012\u0014\u001fF\u0007\\x00\u0012\u0003\u0014FSF\u0015\u0003\u0005\t\\b\u0002\u0015\"),\n            Oi: n(\"HZ\u0004\u0014X\"),\n            jF: n(\"EUUU\"),\n            er: n(\"@\u0015\u000f\u0002[\"),\n            Cx: n(\"!#2\"),\n            BC: n(\"!\u0014\u0003\u0003\\bF \u000f\\n\\n\"),\n            Ut: n(\"\u0011\u0007\u000f\u0012F\u0005\u001f\u0005\\n\u0003\"),\n            Us: n(\"\u0001\u0003\u0012F\u000e\u000f\u0015\u0012\t\u0014\u001fF\u0012\u0014\u0007\u0002\u0003\u0015\"),\n            Vz: n(\"\u0011\u0007\u0014\\b\u000f\\b\u0001\"),\n            Uq: n(\"\\x00\u0007\u000f\\n\u0003\u0002JF\"),\n            Up: n(\"\\x00\t\u0013\\b\u0002F\"),\n            dO: n(\"5/!\"),\n            LM: n(\"Ã\"),\n            my: n(\"ZI\u0007XFZ\u0001XZI\u0001XZI\u0002\u000f\u0010X\"),\n            ZI: n(\"\u0011\u0015\"),\n            Uk: n(\"Y\u0015\u001f\u000b\u0004\t\\n[\"),\n            Uj: n(\"\u0012\u0014\u0007\u0002\u0003\u0015\\\\F\"),\n            Tn: n(\"\u0002\"),\n            Ym: n(\"@\\n\u0007\u0004\u0003\\n[$\u000f\u0012\u0005\t\u000f\\b1\u000f\u0015\u0002\t\u000b\"),\n            rC: n(\"KKKKKK\"),\n            wi: n(\"\u0005\u0007\u0005\u000e\u0003\u0002F\u0012\u001e\u0003\u0015F\\n\u0003\\b\u0001\u0012\u000e\\\\F\"),\n            Xu: n(\"Z\u0002\u000f\u0010F\u0015\u0012\u001f\\n\u0003[D\u000b\u0007\u0014\u0001\u000f\\b\\\\P\u0016\u001eDXlZ\u0002\u000f\u0010X5\t\u0014\u0014\u001fJF\u001f\t\u0013\u0014F\u0004\u0014\t\u0011\u0015\u0003\u0014F\u0002\t\u0003\u0015\\bA\u0012F\u0015\u0013\u0016\u0016\t\u0014\u0012F$\u000f\u0012\u0005\t\u000f\\b1\u000f\u0015\u0002\t\u000bHZI\u0002\u000f\u0010XlZ\u0002\\nXloZ\u0002\u0012X+\u000f\\b\u000f\u000b\u0013\u000bF\u0014\u0003\u0017\u0013\u000f\u0014\u0003\u000b\u0003\\b\u0012\u0015\\\\ZI\u0002\u0012XloZ\u0002\u0002X/#F_MJF%\u000e\u0014\t\u000b\u0003JF \u000f\u0014\u0003\\x00\t\u001eF\t\u0014F\t\u0012\u000e\u0003\u0014F\u000b\t\u0002\u0003\u0014\\bF\u0004\u0014\t\u0011\u0015\u0003\u0014HZI\u0002\u0002XloZ\u0002\u0012X4\u0003\u0005\t\u000b\u000b\u0007\\b\u0003\u0002F\u0014\u0003\u0017\u0013\u000f\u0014\u0003\u000b\u0003\\b\u0012\u0015\\\\ZI\u0002\u0012XloZ\u0002\u0002X/#FWVMJF%\u000e\u0014\t\u000b\u0003JF \u000f\u0014\u0003\\x00\t\u001eF\t\u0014F\t\u0012\u000e\u0003\u0014F\u000b\t\u0002\u0003\u0014\\bF\u0004\u0014\t\u0011\u0015\u0003\u0014HZI\u0002\u0002XloZ\u0002\u0012X4\u0003\u000b\u0007\u0014\\r\u0015\\\\ZI\u0002\u0012XloZ\u0002\u0002X/#F_F\u0011\t\\bA\u0012F\u0015\u0013\u0016\u0016\t\u0014\u0012F4\u0003\u0007\\n\u0012\u000f\u000b\u0003F\u000b\t\u0002\u0003ZI\u0002\u0002XlZI\u0002\u000f\u0010X\"),\n            nU: n(\"\u0015\t\u0014\u0012\u0003\u0002F\u0012\u001e\u0003\u0015F\\n\u0003\\b\u0001\u0012\u000e\\\\F\"),\n            ur: n(\"\u0002\u0003\u0016\u0012\u000eF\u0005\u0007\u0005\u000e\u0003F\\n\u0003\\b\u0001\u0012\u000eF\"),\n            TD: n(\"H\u0012\"),\n            FK: n(\"\u0002\u0003\u0016\u0012\u000eF\u0004\u000f\u0002F\\n\u0003\\b\u0001\u0012\u000eF\"),\n            YE: n(\"Z\u0004\u0014IX2\u001e\\\\FZ\u0007F\u000e\u0014\u0003\\x00[II\u0004\\n\t\u0005\\r\u0005\u000e\u0007\u000f\\bH\u000f\\b\\x00\tI\u0012\u001eI\"),\n            Zr: n(\"KKF52'235FKK\"),\n            UC: n(\"\\\\\\x00\u000f\u0014\u0015\u0012\"),\n            TV: n(\"E\u0007\\n\u0007\u0014\u000b9\u000e\u000f\u0001\u000e9\u0016\u0014\u000f\u0005\u0003\"),\n            SK: n(\"\u0014\u0001\u0004\u0007NTSSJTSSJTSSJVHRO\"),\n            TT: n(\"E\u0007\\n\u0007\u0014\u000b9\\n\t\u00119\u0016\u0014\u000f\u0005\u0003\"),\n            TS: n(\"\u000e\u000f\u0001\u000e\"),\n            Hp: n(\"E ^V\"),\n            oS: n(\"4\u0003\u0005\u0003\u000f\u0010\u0003\"),\n            Bk: n(\"Y\\n\u0007\u0004\u0003\\n[$\u000f\u0012\u0005\t\u000f\\b1\u000f\u0015\u0002\t\u000b\"),\n            TO: n(\"\u0005\"),\n            FH: n(\"'\\\">\"),\n            TM: n(\"\u0012\u0014\u0007\u0002\u0003\u0015\\\\\"),\n            so: n(\"H\tF\\n\u000f=\u0010[\u0017\u0013\t\u0012\u0003;\"),\n            wg: n(\"F⇴\"),\n            ZJ: n(\"\u0002\u0014\t\u0016\u0002\t\u0011\\bK\u000e\t\u0010\u0003\u0014\"),\n            Lk: n(\"H\u0002\u0014\t\u0016\u0002\t\u0011\\bK\u0002\u0007\u0012\u0007\"),\n            kC: n(\"\u0012\u000f\u0005\\r\u0003\u00149\u0001\u0014\u0003\u0003\\b\"),\n            ZF: n(\"E\u0005\\n\t\u0015\u00039\u0017\u0014\"),\n            QP: n(\"\u0014\u0012F\u0003\u0014\u0014\t\u0014\"),\n            Gg: n(\"\t\u0004\\f\u0003\u0005\u0012\"),\n            Nj: n(\"5\u0012\u000f\u0005\\rF*\u000f\\b\u0003\"),\n            PQ: n(\"4\u0003\u0002F5\u0012\u0014\t\\r\u0003\"),\n            Ye: n(\"FC\"),\n            Wm: n(\"\u0015\u001f\u0015\u0012\u0003\u000b\"),\n            nG: \"mousedown touchstart\",\n            Zs: n(\"\\n\u000f\\b\u0003\"),\n            Vl: n(\"\\b\u0013\u000b\u0004\u0003\u0014\"),\n            Nq: n(\"%\u0014\t\u0015\u0015\"),\n            ED: n(\"V\"),\n            vG: n(\"\u000e\u000f\u0002\u00039\u0005\u0013\u0014\u0015\t\u0014\"),\n            kn: n(\"E\u0002\\n\u00019\u0003\u0015\u0012\u000f\u000b\u0007\u0012\u00039\u0012\u0014\u0007\u0002\u000f\\b\u0001\"),\n            Za: n(\"$\u0007\u0005\\r\u0001\u0014\t\u0013\\b\u0002F+\u0007\u0015\\r\"),\n            bS: n(\"\u000b\u000f\\b\u0013\u0012\u0003\"),\n            MK: n(\"!\u0014\u0003\u0003\\b\"),\n            fK: n(\"\u0007\u0013\u0012\t\"),\n            UN: n(\"\u0003\u0014\u0014\t\u0014JF\u000e\u000f\u0015\u0012\t\u0014\u001fF\u0002\u0007\u0012\u0007F\u000f\u0015F\u0003\u000b\u0016\u0012\u001f\"),\n            Iu: n(\"EVVV\"),\n            OO: n(\"\u0004\u000f\u0012\u0005\t\u000f\\b\"),\n            Zq: n(\"\u000b\"),\n            No: n(\"\u0015\"),\n            cy: n(\"9\u0014\u0003\u0007\u0005\u000e9\u0016\"),\n            nH: n(\"\u0013\\b\u000f\u00129\u000b\"),\n            Th: n(\"乡\"),\n            Gl: n(\"*\t\u0007\u0002F\u0007\\n\\n\t\u0011\u0003\u0002F\u000f\u0016F\\n\u000f\u0015\u0012F\\x00\u0007\u000f\\n\u0003\u0002H\"),\n            Tf: n(\"$\"),\n            Te: n(\"\u0013\\b\u000f\u00129\u0004\"),\n            Oy: n(\"FH\u0012\u0007\u0004\\n\u0003\"),\n            Fg: n(\"-\"),\n            ho: n(\"\u0013\u0012\u0005\"),\n            uI: n(\"\u0014\u0001\u0004\u0007NTSSJTSSJVJWO\"),\n            XS: n(\"EVVVVVV\"),\n            XR: n(\"I\u0007\u0015\u0015\u0003\u0012\u0015I\"),\n            ZV: n(\"\u0016\u0007\u0014\u0015\u0003F\\f\u0015\t\\bF\\x00\u0007\u000f\\n\u0003\u0002\"),\n            VB: n(\"%\t\\n\t\u0014\u0015\"),\n            ot: n(\"\u0014\u0003\u0012\u0013\u0014\\b\"),\n            Vn: n(\"\u000e\u0012\u000b\\n\"),\n            Dp: n(\"E PU\"),\n            SS: n(\"ER_%VRU\"),\n            Sy: n(\"'\u001e\u000f\u0015F2\u0003\u001e\u0012\"),\n            kf: n(\"CF\"),\n            Gp: n(\"E\u0012\u00149\u0012\u0016\\n\"),\n            SO: n(\"E      \"),\n            yz: n(\"/6F\"),\n            RF: n(\"\u0014\u0001\u0004\u0007NVJTVRJVJVHPO\"),\n            SL: n(\"\u0014\u0001\u0004\u0007NTVRJVJVJVHPO\"),\n            tT: n(\"\\n\u0012\u0005\"),\n            Re: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\t\\rX*\t\u0001\t\u0013\u0012F\u0015\u0013\u0005\u0005\u0003\u0015\u0015\\x00\u0013\\nHZI\u0002\u000f\u0010X\"),\n            Ns: n(\"E'P%##U\"),\n            hy: n(\"Y\"),\n            Ja: n(\"WV\u0016\u001eF'\u0014\u000f\u0007\\nJF5\u0007\\b\u0015\"),\n            pj: n(\"EW Q^$R\"),\n            gb: n(\"E$T\\\" ^'\"),\n            Mm: n(\"EPUU\"),\n            Qb: n(\"\u000e\u001f\u0016\u0014\t\\b\"),\n            qI: n(\"\u0014\u0001\u0004\u0007NTSSJPRJPRJVHUO\"),\n            UB: n(\"\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            Sz: n(\"\u0014\u0001\u0004\u0007NTSSJTSSJTSSJVHPO\"),\n            Mg: n(\"\\x00\u0013\\b\u0005\u0012\u000f\t\\b\"),\n            ka: n('\")1('),\n            Dk: n(\"\u0014\u0001\u0004\u0007NVJTVRJVJVH^O\"),\n            Mx: n(\"\u0007\u0004\u0015\t\\n\u0013\u0012\u0003\"),\n            Su: n(\"\u0014\u0001\u0004\u0007NTSSJFTSSJFTSSJFVH^O\"),\n            Lg: n(\"5\u0003\\n\\n\"),\n            Qj: n(\"\\x00\t\\b\u0012\"),\n            uo: n(\"E\u0015\u0003\u0012\u0012\u000f\\b\u0001\u0015\"),\n            Yd: n(\"EUU'VT%\"),\n            pf: n(\"F\u0007\\b\u0002F\u0016\u0014\u000f\u0005\u0003F\u0011\u000f\\n\\nF\u0014\u0003\u0007\u0005\u000eFZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0014\u0003\u0002X\"),\n            Hj: n(\"I\"),\n            Ak: n(\"\u0015\u0012\t\u0005\u000e9\u0014\u0015\u000f9\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            cU: n(\"\u0012\u000f\u000b\u00039\u001c\t\\b\u0003\"),\n            cj: n(\"4\u0003\u0007\\n\u0012\u000f\u000b\u0003\"),\n            cS: n(\"H\\n\u000f\\b\\r9\u000e\t\u000b\u0003F\u0015\u0016\u0007\\b\"),\n            SB: n(\"EVV_S#U\"),\n            bh: n(\"\u0002\t\u000b\"),\n            HB: n(\"H\u0005\\n\t\u0015\u0003\"),\n            HS: n(\"\u0002BW\"),\n            LS: n(\"Z\u000fF\u0005\\n\u0007\u0015\u0015[\\x00\u0007K\u0007\u0014\u0014\t\u0011K\u0013\u0016X\"),\n            am: n(\"H\u0002\u0014\t\u0016\u0002\t\u0011\\b\"),\n            sC: n(\"\u0014\u0001\u0004\u0007NVJVJTSSJVH^O\"),\n            hM: n(\"\u0014\u0001\u0004\u0007NTSSJWT^JVJWO\"),\n            Uu: n(\"I\u0015\u0002\u0003\u0016\u0012\u000eY\u0015\u001f\u000b\u0004\t\\n[\"),\n            Fl: n(\"+\u0007\u000f\\bF2\u0003\u001e\u0012\"),\n            PG: n(\"E\u000e\u0003\u0007\u0002\u0003\u00149\t\u0013\u0012\u0003\u0014\"),\n            tK: n(\"E\u0015\\n\t\u00129\u0002\u000f\\x00\\x00\u000f\u0005\u0013\\n\u0012\u001f\"),\n            RX: n(\"E\u0015\\n\t\u00129\u0003\u0015\u0012\u000f\u000b\u0007\u0012\u0003\u0002\"),\n            XY: n(\"F\u000f\u0015F\\b\t\u0012F\u0015\u0013\u0016\u0016\t\u0014\u0012\u0003\u0002H\"),\n            XF: n(\"WW\u0016\u001e\"),\n            FL: n(\"5\u000e\u0007\u0016\u0003\"),\n            ZH: n(\"\u0014\u0001\u0004\u0007NSWJWPVJRRJVH^O\"),\n            RS: n(\"6)52\"),\n            rF: n(\".\\\\F\"),\n            nt: n(\"\u0002\u0014\u0007\u00119\\x00\\x00\u0007\\b\"),\n            Qa: n(\"\u000b\u0014\u0015\u0016\u0003\u0007\\r\u0003\u0014\"),\n            TQ: n(\"NE\u001d\u0016\u0014\u0003\u0005\u000f\u0015\u000f\t\\b\u001bO\"),\n            RN: \"mouseup touchend\",\n            HX: n(\"\t\\b\u0015\u0003\\n\u0003\u0005\u0012\u0015\u0012\u0007\u0014\u0012\"),\n            RL: n(\"\u0015\u0003\\n\u0003\u0005\u0012\u0003\u0002\"),\n            mM: n(\"\u0005\u0014\u0003\u0007\u0012\u0003!\u0007\u000f\\b\"),\n            kY: n(\"H\u0014\u0012\"),\n            GX: n(\"I\u0012\u0014\u0007\u0002\u0003\u0015\"),\n            OM: n(\"\u0005\u000e\u0007\\b\u0001\u0003\"),\n            Ml: n(\"\u0004\u0013\u0012\u0012\t\\b\"),\n            Px: n(\"E\u0002\u0003\u0016\u0012\u000e\"),\n            RE: n(\"\u000f\\b\u0016\u0013\u0012\\\\\u0010\u000f\u0015\u000f\u0004\\n\u0003\\\\\\x00\u000f\u0014\u0015\u0012\"),\n            mu: n(\"\\\\\u0007\\n\u0007\u0014\u000b\\\\\u000e\u000f\u0001\u000e\"),\n            RC: n(\"\u0014\u0003\u0015\u000f\u001c\u0003\"),\n            su: n(\"\u0015\u0003\u0005\t\\b\u0002\"),\n            NG: n(\"\u0007\"),\n            aH: n(\"\u0014\u0003\u0001\u000f\u0015\u0012\u0003\u0014\"),\n            Yx: n(\"ZI\u0012\u0002XZI\u0012\u0014X\"),\n            sm: n(\"\u0016\u0014\u000f\u0010\u0007\u0005\u001f9\u0016\t\\n\u000f\u0005\u001f\"),\n            an: n(\"\\x00\t\u0014\u000b\"),\n            Rv: n(\"\u000f\\b\u0016\u0013\u0012=\u0012\u001f\u0016\u0003[\u0015\u0013\u0004\u000b\u000f\u0012;\"),\n            YU: n(\"5'4\"),\n            Dr: n(\"F\u0005\t\u0013\\b\u0012\\\\F\"),\n            Rs: n(\"4\u0003\u0001\u000f\u0015\u0012\u0003\u0014\"),\n            Sl: n(\"\u0014\u0001\u0004\u0007NVJVJVJVHRO\"),\n            ZT: n('\u0001\u0003\u0012\"\u0007\u001f'),\n            iM: n(\"M\"),\n            DT: n(\"S\u000b\"),\n            Rn: n(\"\u0013\u0005\u0016\"),\n            Tt: n(\"\u0002\u0007\u001f\"),\n            Av: n(\"\u000e\u000f\u0015\u0012\t\u0014\u001f\"),\n            WS: n(\"\\n\u000f\\b\u00039\u0015\u0012\u001f\\n\u0003\"),\n            Ue: n(\"JF\\x00\u000f\u0014\u0015\u0012F\u000f\u0015F\"),\n            AL: n(\"\u0015\u0011\u000f\u0012\u0005\u000eF\u0012\tF\"),\n            Md: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\u000e\u000f\u0015\u0012\t\u0014\u001f\"),\n            hR: n(\"\u0013\u0015\u0003\u00149\u000e\u000f\u0015\u0012\t\u0014\u001f\"),\n            QH: n(\"\u001f\u0003\u0007\u0014\u0015\"),\n            UV: n(\"\u000b\t\\b\u0012\u000e\u0015\"),\n            OQ: n(\"\u0002\u0007\u001f\u0015\"),\n            Rc: n(\"9\u0015\u0012\u0014\"),\n            Ww: n(\"2\u000e\u0003F\u0007\u0010\u0003\u0014\u0007\u0001\u0003F\u0016\u0014\u000f\u0005\u0003F\t\\x00F\u0005\t\u0015\u0012F\u0007\\b\u0002F\u0014\u0003\u0005\u0003\u000f\u0010\u0003F\u000f\u0015FZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0001\u0014\u0003\u001fX\"),\n            EJ: n(\"\u0005\u0007\\n\u0005F\u0002\u0003\u0016\u0012\u000e\"),\n            Wt: n(\"WT\u0016\u001eF \t\\b\u0012'\u0011\u0003\u0015\t\u000b\u0003\"),\n            QO: n(\"\u0014\u0012F\t\\r\"),\n            sN: n(\"H\u0017\u0014\"),\n            uj: n(\"E\u0005\\n\u0003\u0007\u00149\\n\t\u00119\u0016\u0014\u000f\u0005\u0003\"),\n            th: n(\"Z\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0003\u0016\u0014\u000f\u0005\u0003X\"),\n            QU: n(\"\u0002\u0007\u0012\u0007\"),\n            ef: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\u0015\u0003\u0005\u0013\u0014\u000f\u0012\u001fFH\u0002\u000f\u0015\u0016\\n\u0007\u001f9\\b\u0007\u000b\u0003\"),\n            Pn: n(\"E\u0007\u0015\\r\u0015F\u0002\u000f\u0010\"),\n            Sm: n(\"\u0014\u0001\u0004\u0007NTTQJTPJT^JVH^O\"),\n            QQ: n(\"\u0005\\n\u0007\u0015\u0015\"),\n            tz: n(\"\\x00\u000f\\n\\n\u0003\u0002\"),\n            QR: n(\"E%%%%VV\"),\n            hX: n(\"#\u001e\u0016\u000f\u0014\u0003\u0015F\t\\bF\"),\n            Ls: n(\"\u000b\t\u0002\u0003\"),\n            Me: n(\"H\u0005\t\\b\\x00\"),\n            Wn: n(\"\u0014\u0012\u0015F\u0003\u0014\u0014\t\u0014\"),\n            Zf: n(\"\u0014\u0001\u0004\u0007NWT^JWT^JTSSJVH^O\"),\n            QI: n(\"\u000f\\b\u0016\u0013\u0012=\u0012\u001f\u0016\u0003[\u0016\u0007\u0015\u0015\u0011\t\u0014\u0002;\"),\n            hG: n(\"\\x00\u0014\t\u000b\"),\n            BA: n(\"E\u0017\u0014\"),\n            cG: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\u0015\u0003\u0015\u0015\u000f\t\\b\u0015\"),\n            yT: n(\"\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0014\u0003\u0016\\n\u0007\u0005\u0003\"),\n            lI: n(\"\\\"'2#\\\\F\"),\n            dE: n(\"\u0015\u0003\u0015\u0015\u000f\t\\b9\u0001\u0003\u00129\u0007\\n\\n\"),\n            Mb: n(\"\u0015\u001f\u0015\u0012\u0003\u000b\\\\\u0001\u0007\u00161\u000f\u0002\u0012\u000e\"),\n            HM: n(\"\u0007\\b\u0005\u0003\u0015\u0012\t\u0014)\u0014\u000f\u0001\u000f\\b\u0015\"),\n            Rg: n(\"\u0007\u0016\u0016\\n\u001fF\"),\n            Hc: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\\n\t\u0001\t\u0013\u0012\"),\n            Ll: n(\"E\t\u0014\u0002\u0003\u0014\u0004\t\t\\rFH\t\u0014\u0002\u0003\u0014\u0004\t\t\\r\"),\n            LL: n(\"'B\"),\n            Qv: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0003\u0014\u0014\t\u0014X\"),\n            hm: n(\"\t\u00049\u0010\u0007\\n\u0013\u0003\u0015\"),\n            WV: n(\"(\u0003\u0003\u0002F\\n\t\u0001\u000f\\bF\\x00\u000f\u0014\u0015\u0012H\"),\n            OZ: \"Welcome to BitcoinWisdom.io\",\n            Qr: n(\"\u0003\u0015\u0012\u000f\u000b\u0007\u0012\u00039\u0012\u0014\u0007\u0002\u000f\\b\u0001\"),\n            hI: n(\"\u0002\u0014\u0007\u0011\"),\n            QY: n(\"H\u0007\u0002\u0002\u0014\u0003\u0015\u0015\"),\n            hQ: n(\"F\u000b\u0007\u001e\\\\F\"),\n            Qn: n(\"\u000f\u000b\u0001\"),\n            OT: n(\"๙\"),\n            NM: n(\"H\u0005\t\\b\u00029\\b\u0016\"),\n            Pa: n(\"WS\u000b\"),\n            Sw: n(\"E__V V \"),\n            QX: n(\"\u0010\"),\n            Qh: n(\"\u0002\u0003\\x00\u0007\u0013\\n\u0012\"),\n            fD: n(\"\u0016\u0007\u0014\u0003\\b\u0012\u0015\"),\n            Pg: n(\"T\u0002\"),\n            ih: n(\"H\"),\n            cX: n(\"H\u000f\\b\\b\u0003\u0014\"),\n            Du: n(\"F32%\"),\n            VY: n(\"\u000b\u0007\u000f\\b9\\n\u000f\\b\u0003\u0015\"),\n            NS: n(\"\u0012\u000e\u0003\u000b\u0003\"),\n            zN: n(\"E\\n\t\u0007\u0002\u000f\\b\u0001FH\u000f\\b\\b\u0003\u0014\"),\n            co: n(\"\u0015\u0003\u0005\u0013\u0014\u000f\u0012\u001f\"),\n            GC: n(\"45/\"),\n            MS: n(\"\u0005\u0007\\b\u0002\\n\u00039\u0015\u0012\u000f\u0005\\r\"),\n            Ky: n(\"\u0004\u000f\u0002\"),\n            Tm: n(\"\u000e\"),\n            MF: n(\".\u000f\u0001\u000e\\n\u000f\u0001\u000e\u0012F2\u0003\u001e\u0012\"),\n            Ok: n(\"$/\\\"4'2/)\"),\n            km: n(\"\u0002\u0014\u0007\u00119\\x00\\x00\u0007\\b\u0005\"),\n            NV: n(\"\u0001\u0007\u00161\u000f\u0002\u0012\u000e\"),\n            ma: n(\"H\\x00\u0014\t\u000b\"),\n            PO: n(\"!\u0014\u0003\u0003\\bF5\u0012\u0014\t\\r\u0003\"),\n            UA: n(\"\u0007=\u000b\t\u0002\u0003[\"),\n            PM: n(\"\u0002\u0007\u0014\\r\"),\n            Ra: n(\"\u0012\"),\n            oI: n(\"\\n\u000f\u0001\u000e\u0012\"),\n            BO: n(\"\u0015\u0003\u0015\u0015\u000f\t\\b\"),\n            YN: n(\"\u0014\u0001\u0004\u0007NWT^JWT^JVJVH^O\"),\n            PH: n(\"E\u0015\u000f\u0002\u0003\u0004\u0007\u00149\t\u0013\u0012\u0003\u0014\"),\n            VL: n(\"\u0002\u0014\u0007\u0011F\"),\n            Zd: n(\"\u0014\u0001\u0004\u0007NW_PJW_PJTSSJVH^O\"),\n            PE: n(\"E\\n\u0003\\x00\u0012\u0004\u0007\u00149\t\u0013\u0012\u0003\u0014\"),\n            Tl: n(\"*\t\u0001\u000f\\b\"),\n            oE: n(\"\u0013\u0015\u0003\u00149\u0005\u000e\u0007\\b\u0001\u00039\u0016\u0007\u0015\u0015\u0011\t\u0014\u0002\"),\n            ep: n(\"E\u0002\u0007\u0012\u0003\"),\n            OV: n(\"E\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0015\u0012\u0007\u0012\u0013\u0015\"),\n            Yo: n(\"\u0004\u000f\u0012\u0005\t\u000f\\b\\\\\"),\n            VP: n(\"\u0014\u0003\u0015\u0003\u0012F\u0016\u0003\u0007\\rF\u0012\tF\"),\n            zs: n(\"\u0004\u000f\u00029\u0014\u0007\u0012\u000f\t\"),\n            SH: n('E \"$ P '),\n            DB: n(\"\u0014\u0001\u0004\u0007NWVJWVJWVJVH^O\"),\n            gB: n(\"F\u0012\u0014\u0007\u0002\u0003\"),\n            Tp: n(\"\u0015F\u0007\u0001\t\"),\n            Ps: n(\"E\u000b\u0007\u0014\\r\u0003\u0012\u0015\"),\n            Pr: n(\"E\u0005\u000e\u0007\u0014\u00129\u000f\\b\\x00\t\"),\n            oT: n(\"E\u000f\\b\u0002\u000f\u0005\u0007\u0012\t\u00149\u000f\\b\\x00\t\"),\n            Pp: n(\"E\u000b\u0007\u000f\\b9\u000f\\b\u0002\u000f\u0005\u0007\u0012\t\u00149\u000f\\b\\x00\t\"),\n            tr: n(\"EV'V'V'\"),\n            PZ: n(\"\u0012\u0007\u0004\\n\u0003F\u0012\u0004\t\u0002\u001f\"),\n            aE: n(\"E\u0004\u000f\u0002\u0015F\u0002\u000f\u0010\"),\n            Pl: n(\"E\u0001\u0007\u0015\\r\u0015F\u0002\u000f\u0010\"),\n            RJ: n(\"E\u0001\u0004\u000f\u0002\u0015F\u0002\u000f\u0010\"),\n            LB: n(\"EP%P\"),\n            TP: n(\"?\t\u0013\u0014F\u0002\u0003\u0010\u000f\u0005\u0003A\u0015F\u0012\u000f\u000b\u0003F\u000f\u0015F\u001dB\u0012\u000f\u000b\u00039\\x00\u000f\u001e\u001bF\u0015\u0003\u0005\t\\b\u0002\u0015F\u0002\u000f\\x00\\x00\u0003\u0014\u0003\\b\u0012F\\x00\u0014\t\u000bF\u0015\u0003\u0014\u0010\u0003\u0014Hl2\u000e\u0003F\u0005\u000e\u0007\u0014\u0012\u0015F\u0011\u000f\\n\\nF\u000e\u0007\u0010\u0003F\u000f\u0015\u0015\u0013\u0003F\u0012\tF\\x00\u000f\\n\\nF\\b\u0003\u0011\u0003\u0015\u0012F\u0003\u000b\u0016\u0012\u001fF\u0005\u0007\\b\u0002\\n\u0003\u0015\u0012\u000f\u0005\\r\u0015H\"),\n            Nt: n(\"E\u0005\u0007\\b\u0010\u0007\u00159\u0015\u000e\u0007\u0016\u0003\u0015\"),\n            SX: n(\"E%%%\"),\n            ZP: n(\"\u000b\t\u0010\u00032\t\"),\n            Pe: n(\"#\u0010\u0007\"),\n            LC: n(\"\u0005\t\\n\t\u0014\"),\n            Qc: n(\"U\u000b\"),\n            PV: n(\"\u0002\u0014\u0007\u00119\u000e\\n\u000f\\b\u0003\"),\n            To: n(\"F\u0007\u0001\t\"),\n            MP: n(\"!\u0014\u0003\u0003\\bF'\u0014\u0003\u0007\"),\n            fC: n(\"\u0014\u0001\u0004\u0007NVJVJVJVHPO\"),\n            Uc: n(\"\\n\u0007\u0015\u0012F\u0012\u000f\u0002\\\\F\"),\n            ab: n(\"R\u000e\"),\n            jj: n(\"\u0002\u0014\u0007\u00119\\x00\\n\u000f\\b\u0003\"),\n            Oj: n(\"WT\u000e\"),\n            SA: n(\"\u0014\u0001\u0004\u0007NTVRJTVRJTVRJVHPO\"),\n            XW: n(\"$\\n\t\u0004\"),\n            gC: n(\"\u0016\u0014\u000f\u0005\u00039\u000b\u00079\u0005\u001f\u0005\\n\u0003\u0015\"),\n            Pu: \"/api/user/\" + window.$user_id + \"/\",\n            eZ: n(\"\u0010\t\\n\u0013\u000b\u00039\u000b\u00079\u0005\u001f\u0005\\n\u0003\u0015\"),\n            Wc: n(\"%\u0014\t\u0015\u0015F\u000f\u0015F\\n\t\u0005\\r\u0003\u0002H\"),\n            OD: n('+/\"\"*#'),\n            OL: n(\"36\"),\n            Pt: n(\"H\\n\u000f\\b\\r9\\n\t\u0001\t\u0013\u0012\"),\n            SF: n(\"E\\x00\t\t\u0012\u0003\u00149\t\u0013\u0012\u0003\u0014\"),\n            KG: n(\"E\u0005\t\u000b\u00169\u0015\u0012\u0007\u0012\u0013\u0015\"),\n            QZ: n(\"H\u0016\u0014\u0003\u000b\u000f\u0013\u000b\"),\n            jW: n(\"W\u0002\"),\n            xt: n(\"F\u0015\u0013\u0005\u0005\u0003\u0015\u0015\\x00\u0013\\n\\n\u001fH\"),\n            Mk: n(\"\u0004\u0007\u0002\"),\n            Fi: n(\"F\u0012\u0007\u0014\u0001\u0003\u0012[9\u0004\\n\u0007\\b\\rX\"),\n            lB: n(\"\u0015\u0012\u0014\u000f\\b\u0001\"),\n            CK: n(\"52)%.45/\"),\n            OA: n(\"+'\"),\n            kI: n(\"\u0015\u001f\u0015\u0012\u0003\u000b\\\\\u0015\u0012\u0003\u0016\"),\n            cQ: n(\"\u0001\u0003\u00125\u0003\u0005\t\\b\u0002\u0015\"),\n            wR: n(\"\u0002\u000b\u000f9\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            Ri: n(\"\t\u000e\\n\u0005\"),\n            Zh: n(\"\u0014\u0001\u0004\u0007NTSSJWT^JTSSJVH^O\"),\n            UL: n(\"H\\n\u000f\\b\\r9\u0003\u0015\u0012\u000f\u000b\u0007\u0012\u00039\u0012\u0014\u0007\u0002\u000f\\b\u0001\\\\\\x00\u000f\u0014\u0015\u0012\"),\n            Yb: n(\"I\u0017\u0014Y\u0002\u0007\u0012\u0007[\"),\n            NJ: n(\"E\u0001\u0007\u0015\\r\u0015\"),\n            zj: n(\"$\u0007\u0015\u0003N\"),\n            ir: n(\",\"),\n            UP: n(\"\t\u0014\u0002\u0003\u0014\u0004\t\t\\r9\u0016\u0014\u0003\u0005\u000f\u0015\u000f\t\\b9\u000f\\b\u0012\"),\n            Oo: n(\"%+ \"),\n            LO: n(\"\t\u0004\u00109\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            Zl: \"$1<g>$2</g>\",\n            Dl: n(\"\u0004\u000f\u00029\u0014\u0007\u0012\u000f\t9\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            DS: n(\"UV\u000b\"),\n            KJ: n(\"E\u0005\u000e\u0007\\b\u0001\u0003\"),\n            gg: n(\"\u001c\u000e\"),\n            aU: n(\"H\u0014\u0012\u0015\"),\n            ni: n(\"$2%\"),\n            Of: n(\"H\tF\\n\u000f=\u0010[\u0004\u0007\u0015\u0003;\"),\n            ou: n(\"l\"),\n            DJ: n(\"5'2)5./\"),\n            GG: \"Coinbase\",\n            br: n(\"K\"),\n            ZE: n(\"+\u0012H!\t\u001e\"),\n            Hn: n(\"\u0015\u001f\u0015\u0012\u0003\u000b\\\\\u0004\u0007\u00141\u000f\u0002\u0012\u000e\"),\n            Td: n(\"+\"),\n            VV: n(\"\u0016\u000f\u0002\u0015\"),\n            ud: n(\"\u0015\u0012\u0003\u0016\"),\n            dZ: n(\"F\u000b\u000f\u0015\u0015\u0003\u0002F\u0012\u0014\u0007\u0002\u0003\"),\n            Bm: n(\"\u0002\u0003\u0010\u000f\u0002\"),\n            NT: n(\"\u0015\u000f\u0002\"),\n            Lu: n(\"P\u000e\"),\n            Xo: n(\"E\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0014\u0003\u0005\t\u0010\u0003\u0014\"),\n            RK: n(\"H\u0003\u0014\u0014\t\u0014\"),\n            VT: n(\"\u000f\\b\u0002\u000f\u0005\u0007\u0012\t\u0014\"),\n            MW: n(\"\u0005\u000b\\x00\"),\n            UZ: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\u000e\t\u000b\u0003\"),\n            YT: n(\"\\\\II\"),\n            NL: n(\"E\u0007\u0015\\r\u0015\"),\n            Zv: n(\"\u0001\u0003\u0012\"),\n            oR: n(\"\u0007\u0005\u0005\t\u0013\\b\u00129\u000f\\b\\x00\t\"),\n            oU: n(\"\u0004\u0007\u0015\u0003\"),\n            bN: n(\"E\u0002\u0014\u0007\u0011\u000f\\b\u0001\u0015\"),\n            ZC: n(\"\u0001\u0003\u0012?\u0003\u0007\u0014\"),\n            Xs: n(\"\u000e\u0012\u0012\u0016E\u001dB\u0015\u0015\\n\u001b\\\\IIE\u001d\u0002\u0003\u0005\u000f\u0002\u0003\u00029\u000e\t\u0015\u0012\u001bIE\u001d\u0016\u0007\u0012\u000e\u001b\"),\n            EA: n(\"\\\\\u0007\\n\u0007\u0014\u000b\\\\\\n\t\u0011\"),\n            MV: n(\"\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0001\u0003\u00129\u0007\\n\\n\"),\n            Xa: n(\"D\"),\n            bQ: n(\"\u0013\\b\u0002\u0003\\x00\u000f\\b\u0003\u0002\"),\n            UM: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0014\t\u0011XZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0016\u0014\u000f\u0005\u0003XZI\u0015\u0016\u0007\\bXFZ\u0015\u0016\u0007\\bF\u0005\\n\u0007\u0015\u0015[\u0007\u000b\t\u0013\\b\u0012XZI\u0015\u0016\u0007\\bXZI\u0002\u000f\u0010X\"),\n            Nz: n(\"\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0002\u0003\\n\u0003\u0012\u0003\"),\n            rK: n(\"\u0001\u0003\u0012F\u000e\u000f\u0015\u0012\t\u0014\u001fF\u0002\u0007\u0012\u0007F\\x00\u0014\t\u000bF\u0015\u0003\u0014\u0010\u0003\u0014F\\x00\t\u0014F\"),\n            Nx: n(\"E\u0002\u0014\u0007\u0011\u000f\\b\u00019\\b\u0003\u0011\"),\n            Nw: n(\"E\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0002\u0003\\n\u0003\u0012\u0003\"),\n            PB: n(\"\u0014\u0001\u0004\u0007NPRJTSSJPRJVHTO\"),\n            YC: n(\"HHHZI\u0007X\"),\n            MM: n(\"\u0014\"),\n            SJ: n(\"\u0002\u0003\u0016\u0012\u000eF\u0007\u0015\\rF\\n\u0003\\b\u0001\u0012\u000eF\"),\n            wV: n(\"/\\b\u000f\u0012\u000f\u0007\\n\u000f\u001c\u0003F \u0013\\n\\n5\u001f\\b\u0005F5\u001f\u0015\u0012\u0003\u000b\"),\n            ZN: n(\"E\u0002\\n\u00019\u0007\\n\u0007\u0014\u000b\"),\n            se: n(\";F\"),\n            NF: n(\"\u0001\"),\n            vs: n(\"\u0004\t\u0012\u0012\t\u000b\"),\n            YF: n(\"⇾\"),\n            gE: n(\"⇱\"),\n            YQ: n(\"⇴\"),\n            VW: n('\"'),\n            XB: n(\"\\n\t\u0005\u0007\u0012\u000f\t\\b\"),\n            Et: n(\"Z\u0004X4\u0003\u0007\\n\u0012\u000f\u000b\u0003F5\u001f\u0015\u0012\u0003\u000bF\t\\b\\n\u001fF\u0011\t\u0014\\r\u0015F\t\\bF/#FWVMJF\u0005\u000e\u0014\t\u000b\u0003JF  ZI\u0004X\"),\n            JG: n(\"\u0016\u000b\u0007\u001e\"),\n            hr: n(\"Z\u0004\u0014IX\"),\n            em: n(\"\u0015\u0012\u0014\t\\r\u0003\"),\n            NR: n(\"\u0005\t\\b\\x00\"),\n            TX: n(\"\u000b\u0007\u0005\u0002\"),\n            SW: n(\"$\u0007\u0005\\r\u0001\u0014\t\u0013\\b\u0002\"),\n            CQ: n(\"\u0015\u0012\t\u0005\u000e9\u0014\u0015\u000f\"),\n            qx: n(\"\\r\u0002\\f\"),\n            tE: n(\"\t\u0014\u0002\u0003\u0014\u0004\t\t\\r9\u0016\u0014\u0003\u0005\u000f\u0015\u000f\t\\b\"),\n            MX: n(\"\u0014\u0015\u000f\"),\n            LY: n(\"\u000e\u0012\u0012\u0016\"),\n            TK: n(\"*\t\u0007\u0002F\\x00\u0007\u000f\\n\u0003\u0002H\"),\n            CM: n(\"+\u000f\\b\t\u0014F2\u0003\u001e\u0012\"),\n            CA: n(\"E\u0005\u0007\\b\u0010\u0007\u00159\u0005\u0014\t\u0015\u0015\"),\n            TZ: n(\"O\"),\n            PT: n(\"\u0002\u0014\u0007\u00119\\x00\u000e\\n\u000f\\b\u0003\u0003\u001e\"),\n            jk: n(\").*%\"),\n            NP: n(\"\\n\t\u0005\\r\u0003\u0002\"),\n            ut: n(\"4\u0003\u0002F'\u0014\u0003\u0007\"),\n            Oe: n(\"\u0015\u0007\u0014\"),\n            EU: n(\"JF\"),\n            Fr: n(\"\u0002\u0014\u0007\u00119\u0002\u0003\u0016\u0012\u000e9\u000e\u000f\\b\u0012\u0015\"),\n            cg: n(\"\u0014\u0001\u0004\u0007NVJWT^JVJVH^O\"),\n            MJ: n(\"4\u0003\u0002\"),\n            ch: n(\"5\u0013\\bF+\t\\bF2\u0013\u0003F1\u0003\u0002F2\u000e\u0013F \u0014\u000fF5\u0007\u0012\"),\n            jg: n(\"\u0012\u0003\u001e\u0012\"),\n            sb: n(\"\u0016\u000f\\b\u0001\"),\n            TC: n(\"\\\\\"),\n            iG: n(\"(\t\u0011\"),\n            ZM: n(\"\\n\u000f\\b\u00031\u000f\u0002\u0012\u000e\"),\n            VX: n(\"4\u0003\u0002F'\\n\u0007\u0014\u000b\"),\n            KU: n(\"\\r\u0003\u001f\u0013\u0016\"),\n            GS: n(\"E\u0005\\n\u0003\u0007\u00149\u0007\\n\\n\"),\n            ag: n(\"H\u0005\t\\b\u00029\u0016\"),\n            HF: n(\"E\\b\t\u0012\u000f\\x00\u001f\"),\n            YM: n(\"H\u0005\t\\b\u0012\u0003\\b\u00129\"),\n            mY: n(\"\u0015\u0013\u0005\u0005\u0003\u0015\u0015\"),\n            DA: n(\"I\u0002\u0003\u0016\u0012\u000eY\u0015\u001f\u000b\u0004\t\\n[\"),\n            Mu: n(\"\u0012\u000f\u0005\\r\u0003\u00149\u0014\u0003\u0002\"),\n            Os: n(\"\\r\u0002\\f9\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            wz: n(\"\u0001\u0014\u0003\u001f\"),\n            IZ: n(\"\u0014\u0003\u0002\"),\n            fJ: n(\"\u0001\u0014\u0003\u0003\\b\"),\n            fG: n(\"\u0004\u0007\u0005\\r\u0001\u0014\t\u0013\\b\u0002K\u0005\t\\n\t\u0014\"),\n            Ss: n(\"EUPU\"),\n            Py: n(\"E\u0012\u0014\u0007\u0002\u0003\u0015\"),\n            Lv: n(\"\u0014\u0003\u000b\t\u0010\u0003\"),\n            lU: n(\"'\u001e\u000f\u0015F$\u0007\u0005\\r\u0001\u0014\t\u0013\\b\u0002\"),\n            Nu: n(\"\\n\u000f\\b\u00039\t\"),\n            BU: n(\"\\b\t\u0014\u000b\u0007\\n\"),\n            LA: n(\"E PP\"),\n            UX: \"<div class=text>Load failed, retry after 5 seconds.</div><dl class=\\\"reason\\\"><dt>Probable Reason</dt><dd>BitcoinWisdom is temporary down</dd><dd>Domain is not bitcoinwisdom.io</dd><dd>Network issue</dd><dl>\",\n            Xg: n(\"\u0016\u0007\u0015\u0015\u0016\t\u0014\u0012\"),\n            vn: n(\"\u0015\u000f\u000b\u0016\\n\u0003\"),\n            SR: n(\"E\u0015\u0011\u000f\u0012\u0005\u000e9\u0012\u000e\u0003\u000b\u0003\"),\n            Po: n(\"E\u0002\\n\u00019\u0003\u0015\u0012\u000f\u000b\u0007\u0012\u00039\u0012\u0014\u0007\u0002\u000f\\b\u0001FH\u0007\u000b\t\u0013\\b\u0012\"),\n            Vk: n(\"E\u0015\u000e\t\u00119\u0017\u0014\"),\n            cr: n(\"5\u000e\t\u0011F74F%\t\u0002\u0003\"),\n            Mi: n(\"\u0001\t\t\u0002\"),\n            Sv: n(\"\u0014\u0001\u0004\u0007NTVRJVJVJVH^O\"),\n            UI: n(\"=\"),\n            kX: n(\"\u0005\u0014\t\u0015\u0015\"),\n            Vc: n(\"\u0005\\b\u001f\"),\n            QM: n(\"\u0016\u0014\u000f\u0005\u00039\u000b\u0007\u0015\"),\n            gs: n(\"E\u000f\\b\u0002\u000f\u0005\u0007\u0012\t\u00149\"),\n            Gi: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0012X\"),\n            oB: n(\"\u000f\\b\u000e\u0003\u0014\u000f\u0012\"),\n            qf: n(\"Z\u000fF\u0005\\n\u0007\u0015\u0015[\\x00\u0007K\u0007\u0014\u0014\t\u0011K\u0002\t\u0011\\bX\"),\n            at: n(\"\u0002\u0003\u0016\u0012\u000e9\u0014\u0007\\b\u0001\u0003\"),\n            cx: n(\"B\"),\n            Ho: n(\"⃊\"),\n            hY: n(\"E\\b\u0007\u0010\"),\n            wj: n(\"E\u0007\u0015\\r\"),\n            Qd: n(\"E\\b\t\u0011\"),\n            Rf: n(\"E\u0011\u0014\u0007\u0016\u0016\u0003\u0014\"),\n            WJ: n(\"Z\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u000f\\b\\b\u0003\u0014X\"),\n            LI: n(\"\\b\u0003\u0011\"),\n            Rt: n(\"\\x00\u0007\u0015\u0012\"),\n            TB: n(\"\\f\u0015\t\\b\"),\n            PY: n(\"\u0001\u0004\u000f\u0002\u0015\"),\n            LE: n(\"\u0001\u0007\u0015\\r\u0015\"),\n            MO: n(\"E\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0005\\n\t\\b\u0003\"),\n            UT: n(\"ZI\u0002\u000f\u0010XFZ\u0002\u000f\u0010F\u0005\\n\u0007\u0015\u0015[\u0010X\"),\n            CN: n(\"\u0002\u0014\u0007\u0011\u000f\\b\u00019\u0001\u0003\u0012\"),\n            UH: n(\"E___\"),\n            Wq: n(\"*\\\\F\"),\n            Ly: n(\"H\u0016\u0014\u000f\u0005\u0003\"),\n            av: n(\"H\u0007\u000b\t\u0013\\b\u0012\"),\n            dN: n(\"Z\u000eXB@ZI\u000eX\"),\n            wr: n(\"I\\f\u0015I\u000f\\b\u0012\u0003\u0014\u0010\u0007\\nH\\f\u0015\"),\n            PI: n(\"E\u000b\u0007\u000f\\b\"),\n            Uh: n(\"E\u0005\\n\t\u0015\u00039\u0007\u0002\"),\n            PN: n(\"H\u0013\\b\u000f\u0012\\\\\\x00\u000f\u0014\u0015\u0012\"),\n            lw: n(\"H\u0013\\b\u000f\u0012\"),\n            ju: n(\"\u0014\u0001\u0004\u0007NVJFVJFVJFVH^O\"),\n            Lp: n(\"H\u0012\t9\u0005\t\u0015\u0012\"),\n            cR: n(\"H\u0012\t\"),\n            Ln: n(\"%\t\u0015\u0012\"),\n            VJ: n(\"⇶\"),\n            Nm: n(\"EPPP\"),\n            eU: n(\"H\u000b\t\u0002\u0003\"),\n            Lj: n(\"$\u0013\u001f\"),\n            im: n(\"H\u0012\t9\u0012\u0003\u001e\u0012\"),\n            Lh: n(\"H\\x00\u0014\t\u000b9\u0012\u0003\u001e\u0012\"),\n            ku: n(\"EU_'VUU\"),\n            ob: n(\"5\u0016\u0003\\b\u0002\"),\n            Le: n(\"2\t4\u0003\u0005\u0003\u000f\u0010\u0003\"),\n            MC: n(\"\u0012\t\"),\n            Um: n(\"/\\b\u000f\u0012\u000f\u0007\\n\u000f\u001c\u0003F4\u0003\u0007\\nK\u0012\u000f\u000b\u0003F5\u001f\u0015\u0012\u0003\u000b\"),\n            Lb: n(\"\t\u0013\u0012F\t\\x00F\t\u0014\u0002\u0003\u0014\u0004\t\t\\r\"),\n            VZ: n(\"H\u0007\u0013\u0012\t9\u0002\u0014\u0007\u0011\"),\n            pv: n(\"\u000f\\b\u0016\u0013\u0012\\\\\\x00\u000f\u0014\u0015\u0012\"),\n            YV: n(\"\u0007H\u000b\t\u0002\u0003\"),\n            YL: n(\"\u0016\u0007\u0015\u0015\u0016\t\u0014\u00129\"),\n            UQ: n(\"\\r\u0003\u001f\u0002\t\u0011\\b\"),\n            uB: n(\"\u0015\u0003\u0015\u0015\u000f\t\\b9\u0014\u0003\u000b\t\u0010\u00039\u000f\u0016\"),\n            xs: n(\"Z\u0001X\"),\n            bM: n('\"\u0003\u0016\u0012\u000e'),\n            MN: n(\"\u0015\u0007\u00149\u0016\u0007\u0014\u0007\u000b\u0015\"),\n            KR: n(\"@\u0016[W\"),\n            Nd: n(\"\\n\t\u0001\u0007\u0014\u000f\u0012\u000e\u000b\u000f\u0005\"),\n            qF: n(\"\u000b\u0003\u0002\u000f\u0013\u000b\"),\n            KO: n(\" \u0013\\n\\n5\u001f\\b\u0005\"),\n            LG: n(\"\u0004\u000f\u0002\u0015\"),\n            Ao: n(\"\u0004\u0011\u0015\u000f\u0002\"),\n            KL: n(\"\u0002\u0016\"),\n            KK: n(\"E\u0014\u0003\u0007\\n\u0012\u000f\u000b\u00039\u0003\u0014\u0014\t\u0014\"),\n            vS: n('/\\b\u000f\u0012\u000f\u0007\\n\u000f\u001c\u0003F\"\u0003\u0016\u0012\u000eF\"\u000f\u0001\u0001\u0003\u0014'),\n            Kl: n(\"\u0002\u0003\\n\u0003\u0012\u0003\"),\n            Uw: n(\"+'C\"),\n            Lz: n(\"\\x00\\b\"),\n            KF: n(\"E\u0005\t\\b\\b\u0003\u0005\u0012\u000f\t\\b\"),\n            KE: n(\"E\u000e\u0003\\n\u00169\u0005\t\\b\\b\u0003\u0005\u0012\u000f\t\\b\")\n        };\n    (function() {\n        var performanceSettings = {\n            simplified_orderbook_hints: false,\n            enable_tradelog_animation: true,\n            enable_orderbook_animation: true,\n            enable_orderbook_color_animation: true,\n            immediate_execution: false,\n            sharp_lines: true,\n        };\n        var n, e, r, o, i, u, l, a, s, c, f, h, d, p, v, b, g, m, F, x, y, w, T, V, k, S, M, _, I, X, Z, J, P, H, B, O, R, E, N, L, U, W, C, Q, A, Y, D, K, z, j, G, q, nt, tt, et, rt, ot, it, ut, lt, at, st, ct, ft, ht, dt, pt, vt, bt, gt, mt, Ft, xt, yt, $t, wt, Tt, Vt, kt, St, Mt, _t, It, Xt, Zt, Jt, Pt, Ht, Bt, Ot, Rt, Et, Nt, Lt, Ut, Wt, Ct, Qt, At, Yt, Dt, Kt, zt, jt, Gt, qt, ne, te, ee, re, oe, ie, ue, le, ae, se, ce, fe, he, de, pe, ve, be, ge, me, Fe, xe, ye, $e, we, Te, Ve, ke, Se, Me, _e, Ie, Xe, Ze, Je, Pe, He, Be, Oe, Re, Ee, Ne, Le, Ue, We, Ce, Qe, Ae, Ye, De, Ke, ze, je, Ge, qe, nr, tr, er, rr, or, ir, ur, lr, ar, sr, cr, fr, hr, dr, pr, vr, br, gr, mr, Fr, xr, yr, $r, wr, Tr, Vr, kr, Sr, Mr, _r, Ir, Xr, Zr, Jr, Pr, Hr, Br, Or, Rr, Er, Nr, Lr, Ur, Wr, Cr, Qr, Ar, Yr, Dr, Kr, zr, jr, Gr, qr, no, to, eo, ro, oo, io, uo, lo, ao = [].slice,\n            so = {}.hasOwnProperty,\n            co = [].indexOf || function(n) {\n                for (var t = 0, e = this.length; e > t; t++)\n                    if (t in this && this[t] === n) return t;\n                return -1\n            };\n        var calcPrecision;\n        ! function() {\n            var n, e, r, o, i;\n\n            $(function() {\n                function resize() {\n                    var u = $(this);\n                    var e = $(\".dropdown-data\", this);\n\n                    if (e.width() < u.width()) {\n                        (u.width() - e.width()) / 2;\n                        e.css('min-width', u.width());\n                    }\n\n                    var l = 0.5 * (u.outerWidth() - e.outerWidth());\n                    var i = u.offset().left + u.outerWidth() - $(window).width();\n\n                    if (i > l) {\n                        l = i;\n                    }\n\n                    var o = u.offset().left + u.outerWidth() - e.outerWidth();\n                    if (l > o) {\n                        l = o;\n                    }\n\n                    e.css(\"right\", l);\n                }\n\n                function u() {\n                    var u = $(this);\n\n                    u.addClass(\"dropdown-hover\");\n                    resize.call(this);\n\n                    return (n = this);\n                }\n\n                function l() {\n                    $(this).removeClass(\"dropdown-hover\");\n\n                    return (n = null);\n                }\n\n                function a() {\n                    var t = this;\n                    e = true;\n\n                    if (n) {\n                        l.call(n);\n                        u.call(this);\n\n                        return;\n                    } else if (this.showing) {\n                        return;\n                    } else {\n                        this.showing = true;\n\n                        return setTimeout(function() {\n                            if (e) {\n                                if (n) {\n                                    l.call(n);\n                                }\n\n                                u.call(t);\n                            }\n\n                            return (t.showing = false);\n                        }, 80);\n                    }\n                }\n\n                function s() {\n                    var n = this;\n                    e = false;\n\n                    if (this.hiding) {\n                        return;\n                    } else {\n                        this.hiding = true;\n\n                        return setTimeout(function() {\n                            if (!e) {\n                                l.call(n);\n                            }\n\n                            return (n.hiding = false);\n                        }, 80);\n                    }\n                }\n\n                e = false;\n                n = null;\n\n                var h = $('.dropdown');\n                var c = 0;\n\n                for (var f = h.length; f > c; c++) {\n                    r = h[c];\n\n                    o = function() {\n                        var n = this;\n\n                        $('.t input', this).keyup(function(evt) {\n                            return u.call(n);\n                        });\n\n                        $('.t textarea', this).keyup(function(evt) {\n                            return u.call(n);\n                        });\n\n                        return $('.t', this).click(function(evt) {\n                            if (\n                                !window.$is_mobile &&\n                                (evt.target.tagName.toLowerCase() === 'input' ||\n                                    evt.target.tagName.toLowerCase() === 'textarea')\n                            ) {\n                                return;\n                            }\n\n                            if ($('.dropdown-data', n).is(':visible')) {\n                                return l.call(n);\n                            } else {\n                                return u.call(n);\n                            }\n                        });\n                    };\n\n                    var forceResize = function() {\n                        return $(this).on('forceResize', function() {\n                            resize.call(this);\n                        });\n                    };\n\n                    o.call(r);\n                    forceResize.call(r);\n                }\n\n                window.$is_mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n                    navigator.userAgent\n                );\n\n                if (window.$is_mobile) {\n                    return;\n                } else {\n                    return $('.dropdown').hover(\n                        function() {\n                            return a.call(this);\n                        },\n                        function() {\n                            return s.call(this);\n                        }\n                    );\n                }\n            });\n        }(),\n        Jr = ye = Kr = me = Xr = Vt = ue = Lr = wr = m = rr = Zr = h = F = pt = Tr = je = Ge = qe = kr = null,\n            // Ajax init\n            function() {\n                var n, e;\n                return me = function(n, t) {\n                    var e, r, o;\n                    return o = !1, r = n, e = function() {\n                        function e() {\n                            r > 0 ? Kr(16, function() {\n                                e(r -= 16)\n                            }) : i()\n                        }\n\n                        function i() {\n                            return t(), o = !1\n                        }\n\n                        return r = n, o ? !0 : (o = !0, e(), void 0)\n                    }\n                },\n                me.statuses = {},\n                Jr = function() {\n                    return console.log.apply(console, arguments)\n                },\n                ye = function() {\n                    return console.log.apply(console, [new Date].concat(ao.call(arguments)))\n                },\n                Kr = function(n, t) {\n                    return setTimeout(t, n)\n                },\n                Vt = function() {\n                    var n;\n                    var i;\n\n                    var r = arguments[0];\n                    var o =\n                        3 <= arguments.length\n                            ? ao.call(arguments, 1, (i = arguments.length - 1))\n                            : ((i = 1), []);\n\n                    var e = arguments[i++];\n                    var a = [];\n                    var u = 0;\n\n                    for (var l = e.length; l > u; u++) {\n                        n = e[u];\n\n                        if (typeof n === \"object\" && n.length) {\n                            a.push(r.apply(null, ao.call(o).concat(ao.call(n))));\n                        } else {\n                            a.push(r.apply(null, ao.call(o).concat([n])));\n                        }\n                    }\n\n                    return a;\n                },\n                Lr = function(n, e) {\n                    if (e == null) {\n                        e = 'world';\n                    }\n\n                    if (typeof console !== t.bQ && console !== null ? console.time : void 0) {\n                        console.time(e);\n                        n();\n                        return console.timeEnd(e);\n                    } else {\n                        return n();\n                    }\n                },\n                wr = function(n) {\n                    return n[n.length - 1]\n                },\n                Tr = function(n) {\n                    var t;\n                    return null != (t = wr(n)) ? t : {}\n                },\n                ue = function(n) {\n                    var t;\n                    var r;\n\n                    if (n.length) {\n                        return n.slice(0);\n                    }\n\n                    var e = {};\n\n                    for (t in n) {\n                        if (n.hasOwnProperty(t)) {\n                            r = n[t];\n                            e[t] = r;\n                        }\n                    }\n\n                    return e;\n                },\n                n = 0,\n                m = function(t) {\n                    var e, r;\n                    var o = [];\n\n                    e = r = 0;\n\n                    for (; t >= 0 ? t > r : r > t; t >= 0 ? ++r : --r) {\n                        o.push(n++);\n                    }\n\n                    return o;\n                },\n                rr = function() {\n                    var o, request;\n\n                    var n = 1 <= arguments.length ? ao.call(arguments, 0) : [];\n                    var cb = n.pop();\n\n                    var i = n[0];\n                    var r = n[1];\n\n                    if (r == null) {\n                        r = {};\n                    }\n\n                    if (i[i.length - 1] !== \"?\" && !r.hasOwnProperty('nonce')) {\n                        r.nonce = window.getNonce();\n                    }\n\n                    if (typeof XDomainRequest !== t.bQ && XDomainRequest !== null) {\n                        i = i.indexOf(\"?\") === -1 ? i + \"?\" + $.param(r) : i + t.JV + $.param(r);\n                        request = new XDomainRequest();\n\n                        request.open(\"GET\", i);\n\n                        request.onload = function() {\n                            r = $.parseJSON(request.responseText);\n\n                            if (r) {\n                                return cb(null, r);\n                            } else {\n                                return cb(new Error(\"parse json failed\"), null);\n                            }\n                        };\n\n                        request.onerror = function() {\n                            return cb(\"error\", null);\n                        };\n\n                        request.ontimeout = function() {};\n                        request.onprogress = function() {};\n                        request.timeout = 60000;\n                        request.send();\n\n                        return request;\n                    } else {\n                        o = $.ajax({ url: i, type: \"GET\", dataType: \"json\", timeout: 60000, data: r });\n\n                        o.done(function(n) {\n                            return cb(null, n);\n                        });\n\n                        return o.fail(function(n, r, o) {\n                            if (r === \"error\") {\n                                r = \"\";\n                            }\n                            var i = o || r || \"\";\n                            return cb(new Error(i), null);\n                        });\n                    }\n                },\n                Zr = function(n) {\n                    var t;\n                    return t = function() {\n                        function t(t) {\n                            return t ? n(o) : r.apply(null, e)\n                        }\n                        var e, r, o, i, u;\n                        i = arguments[0], e = 3 <= arguments.length ? ao.call(arguments, 1, u = arguments.length - 1) : (u = 1, []), r = arguments[u++], i.apply(null, ao.call(e).concat([function() {\n                            t((o = arguments[0], e = 2 <= arguments.length ? ao.call(arguments, 1) : [], o))\n                        }]))\n                    }\n                },\n                h = function() {\n                    function n() {\n                        this.push_cbs = [], this.args = [], this.shift_cbs = []\n                    }\n                    var t;\n                    return n.prototype.push = function() {\n                        var n, t, e, r;\n                        return n = 2 <= arguments.length ? ao.call(arguments, 0, r = arguments.length - 1) : (r = 0, []), t = arguments[r++], (e = this.shift_cbs.shift()) ? this.process(n, e, t) : (this.push_cbs.push(t), this.args.push(n))\n                    }, n.prototype.unshift = function() {\n                        var n, t, e, r;\n                        return n = 2 <= arguments.length ? ao.call(arguments, 0, r = arguments.length - 1) : (r = 0, []), t = arguments[r++], (e = this.shift_cbs.shift()) ? this.process(n, e, t) : (this.push_cbs.unshift(t), this.args.unshift(n))\n                    }, n.prototype.shift = function(n) {\n                        var t, e;\n                        return (e = this.push_cbs.shift()) ? (t = this.args.shift(), this.process(t, n, e)) : this.shift_cbs.push(n)\n                    }, t = 0, n.prototype.process = function(n, e, r) {\n                        function o() {\n                            return r(), e.apply(null, n)\n                        }\n                        100 === ++t ? (t = 0, Kr(0, function() {\n                            o()\n                        })) : o()\n                    }, n\n                }(),\n                e = {},\n                je = function() {\n                    var n, t, r, o, i;\n                    return o = arguments[0], n = 3 <= arguments.length ? ao.call(arguments, 1, i = arguments.length - 1) : (i = 1, []), t = arguments[i++], (r = e[o]) ? r.channel.push(n, t) : void 0\n                },\n                Ge = function() {\n                    var n, t, r, o, i;\n                    return o = arguments[0], n = 3 <= arguments.length ? ao.call(arguments, 1, i = arguments.length - 1) : (i = 1, []), t = arguments[i++], (r = e[o]) ? r.channel.unshift(n, t) : void 0\n                },\n                qe = function(n, t) {\n                    var r;\n                    return (r = e[n]) ? r.actions.push(t) : (r = e[n] = {\n                        actions: [t],\n                        channel: new h,\n                        running: !1\n                    }, function() {\n                        function n() {\n                            r.channel.shift(function() {\n                                function i() {\n                                    a++, u()\n                                }\n\n                                function u() {\n                                    s > a ? (t = c[a], t.apply(null, ao.call(e).concat([function(n) {\n                                        i(n)\n                                    }]))) : l()\n                                }\n\n                                function l() {\n                                    n(o)\n                                }\n                                var a, s, c;\n                                e = arguments[0], c = r.actions, a = 0, s = c.length, u()\n                            })\n                        }\n                        var e, o = this;\n                        n()\n                    }())\n                },\n                kr = function() {\n                    function n() {\n                        o(i, function() {\n                            return r()\n                        })\n                    }\n                    var e, r, o, i, u, l;\n                    return e = 3 <= arguments.length ? ao.call(arguments, 0, l = arguments.length - 2) : (l = 0, []), o = arguments[l++], r = arguments[l++], u = 2000, i = Zr(function(e) {\n                        je(t.TA, e, u, function() {\n                            Kr(u, function() {\n                                return u += 2000, u > 20000 && (u = 20000), n()\n                            })\n                        })\n                    }), n()\n                },\n                F = Xr, pt = rr, Jr = Jr, ye = ye, Kr = Kr, me = me, Xr = Xr, Vt = Vt, ue = ue, Lr = Lr, wr = wr, m = m, rr = rr, Zr = Zr, h = h, F = F, pt = pt, Tr = Tr, je = je, Ge = Ge, qe = qe, kr = kr, Xr = function() {\n                    var n, e, r, o, i, u;\n                    if (1 === arguments.length) Xr(\"\", arguments[0]);\n                    else {\n                        if (i = arguments[0], r = arguments[1], u = typeof window !== t.bQ && null !== window ? window : global)\n                            for (o in r) so.call(r, o) && (e = r[o], u[i + o] = e);\n                        if (n = typeof module !== t.bQ && null !== module ? module.exports : void 0)\n                            for (o in r) so.call(r, o) && (e = r[o], n[o.replace(/^_/, \"\")] = e)\n                    }\n                    return this\n                }\n            }(),\n            er = null,\n            // WebSocket init\n            function() {\n                er = function(n, e) {\n                    var r, i;\n\n                    if (typeof n === \"string\") {\n                        n = [n];\n                    }\n\n                    var o = 0;\n\n                    (i = function() {\n                        function i() {\n                            if (s.dead) {\n                                u();\n                            } else {\n                                if (\n                                    l <\n                                    Date.now() - (e.timeout != null ? e.timeout : (e.timeout = 20000))\n                                ) {\n                                    r(s);\n\n                                    return u();\n                                }\n\n                                if (a > 30) {\n                                    s.send(\"ping\");\n                                    a = 0;\n                                }\n\n                                ++a;\n\n                                Kr(1000, function(n) {\n                                    i(n);\n                                });\n                            }\n                        }\n\n                        function u() {\n                            return null;\n                        }\n\n                        var l;\n                        var s;\n                        var c = n[parseInt(o / 2) % n.length];\n\n                        window.ws = s = new WebSocket(c);\n\n                        s.id = Date.now();\n                        s.dead = false;\n\n                        l = Date.now();\n\n                        s.onopen = function(n) {\n                            o = 0;\n\n                            if (window.onsocketopen) {\n                                window.onsocketopen(s);\n                            }\n\n                            if ('hidden' in document) {\n                                s.send(document.hidden ? \"inactive\" : \"active\");\n                            }\n\n                            if (typeof e.onopen === \"function\") {\n                                return e.onopen(s, n);\n                            }\n                        };\n\n                        s.onmessage = function(n) {\n                            var err;\n\n                            if (s && !s.dead) {\n                                l = Date.now();\n\n                                try {\n                                    if (typeof e.onmessage === \"function\") {\n                                        return e.onmessage(s, n);\n                                    }\n\n                                    return;\n                                } catch (i) {\n                                    err = i;\n\n                                    if (typeof e.onerror === \"function\") {\n                                        e.onerror(s, err.message);\n                                    }\n\n                                    return r(s);\n                                }\n                            }\n                        };\n\n                        s.onclose = function() {\n                            return r(s);\n                        };\n\n                        s.onerror = function(n) {\n                            o++;\n\n                            if (typeof e.onerror === \"function\") {\n                                e.onerror(s, n);\n                            }\n\n                            return r(s);\n                        };\n\n                        var a = 0;\n\n                        i();\n                    })();\n\n                    r = function(n) {\n                        if (!(n != null ? n.dead : 0)) {\n                            n.dead = true;\n                            n.close();\n\n                            if (typeof e.ondead === 'function') {\n                                e.ondead();\n                            }\n\n                            var retryInterval = Math.min(5000, 1000 + 2000 * o);\n\n                            Kr(retryInterval, function() {\n                                return i();\n                            });\n                        }\n                    };\n                };\n\n                er = er;\n            }(),\n            r = n = e = null, zt = re = At = jt = Gt = oe = te = qt = St = Zt = Pt = Ht = Lt = Jt = It = Ot = Rt = Xt = _t = Et = Nt = Ut = Bt = Wt = Ct = Mt = Dt = ne = Yt = Qt = Kt = ee = null,\n            function() {\n                function o(n) {\n                    var t;\n\n                    if (n == null) {\n                        n = [];\n                    }\n\n                    var result = {};\n                    result[q] = [];\n\n                    var o = 0;\n\n                    for (var i = n.length; i > o; o++) {\n                        t = n[o];\n\n                        result[q][t] = [];\n                    }\n\n                    result[j] = [];\n                    result[G] = [];\n\n                    return result;\n                }\n\n                function i(n) {\n                    var t;\n                    var o = n[q];\n                    var e = 0;\n                    for (var r = o.length; r > e; e++) {\n                        t = o[e];\n                        t.shift();\n                    }\n                    return n;\n                }\n\n                function u(n) {\n                    var t;\n\n                    if ((t = n[q][0]) == null) {\n                        return;\n                    } else {\n                        return t.length;\n                    }\n                }\n\n                function l(n) {\n                    var e = n[q];\n\n                    var t = e.length;\n                    e[t] = [];\n\n                    return [t, e[t]];\n                }\n\n                function a(n, t) {\n                    function e(n) {\n                        i.push(n);\n                        return [n, u[n]];\n                    }\n\n                    function r() {\n                        var e = V(n, i);\n                        o[e](0);\n                        return c(n, t, e);\n                    }\n\n                    var u = n[q];\n                    var o = n[G];\n                    var i = [];\n\n                    return [e, r];\n                }\n\n                function s(n, t, e) {\n                    var r;\n                    ((r = n[j])[t] != null ? (r = n[j])[t] : (r[t] = [])).push(e);\n                    return e;\n                }\n\n                function c(n, t, e) {\n                    var r;\n                    var u = [];\n                    var o = 0;\n\n                    for (var i = t.length; i > o; o++) {\n                        r = t[o];\n\n                        s(n, r, e);\n\n                        u.push(e);\n                    }\n\n                    return u;\n                }\n\n                function f(n, t, e) {\n                    s(n, t, e);\n                    n[G][e](0);\n                    return e;\n                }\n\n                function h(n, t, e) {\n                    var r;\n                    var o;\n                    var i = (function() {\n                        var n = [];\n                        for (r in e) {\n                            if (so.call(e, r)) {\n                                o = e[r];\n                                n.push([r, o]);\n                            }\n                        }\n                        return n;\n                    })();\n                    return ot(n, t, i);\n                }\n                function d(n, t, e) {\n                    var r;\n                    var o;\n                    var i = (function() {\n                        var n = [];\n                        for (r in e) {\n                            if (so.call(e, r)) {\n                                o = e[r];\n                                n.push([r, o]);\n                            }\n                        }\n                        return n;\n                    })();\n                    return lt(n, t, i);\n                }\n                function p(n) {\n                    return function() {\n                        var t, r, o, u, l, a;\n\n                        if (arguments[2].length) {\n                            r = arguments[0];\n                            a = arguments[1];\n                            l = arguments[2];\n                            o = arguments[3];\n                        } else {\n                            r = arguments[0];\n                            a = arguments[1];\n                            t = arguments[2];\n                            u = arguments[3];\n                            o = arguments[4];\n                            l = [[t, u]];\n                        }\n\n                        e = (function() {\n                            var i;\n                            var s = [];\n                            var e = 0;\n                            for (var o = l.length; o > e; e++) {\n                                i = l[e];\n                                t = i[0];\n                                u = i[1];\n                                n(r, a, t, u);\n                                s.push(t);\n                            }\n                            return s;\n                        })();\n\n                        var i = {};\n\n                        if (o == null) {\n                            o = true;\n                        }\n\n                        if (o) {\n                            for (t in e) {\n                                if (!i[t] && o && r[j][t] && a >= 0) {\n                                    v(r, r[j][t], a);\n                                }\n                                i[t] = true;\n                            }\n                        }\n\n                        return e;\n                    };\n                }\n\n                function v(n, e, r) {\n                    var o, u, l;\n\n                    var i = n[G];\n\n                    if (typeof e === t.Vl) {\n                        i[e].call(this, r);\n                    } else {\n                        u = 0;\n                        for (l = e.length; l > u; u++) {\n                            o = e[u];\n                            v(n, o, r);\n                        }\n                    }\n\n                    return this;\n                }\n\n                function b(n, e) {\n                    var r;\n                    var o = n[q];\n\n                    if (typeof e === t.Vl) {\n                        return o[e];\n                    }\n\n                    var l = [];\n                    var i = 0;\n\n                    for (var u = e.length; u > i; i++) {\n                        r = e[i];\n                        if (!o[r]) {\n                            o[r] = [];\n                        }\n                        l.push(o[r]);\n                    }\n\n                    return l;\n                }\n\n                function g(n, t, e) {\n                    var l;\n                    var r = Yt(n, e);\n                    var u = {};\n                    var i = (l = 0);\n\n                    for (var a = e.length; a > l; i = ++l) {\n                        e[i];\n                        u[e[i]] = r[i][t];\n                    }\n\n                    return u;\n                }\n\n                function F(n, t) {\n                    var o = n[G];\n                    var i = l(n);\n\n                    var e = i[0];\n                    var r = i[1];\n\n                    o[e] = function(e) {\n                        return y(n, e, function(n) {\n                            return (r[n] = t(n) || 0);\n                        });\n                    };\n\n                    return e;\n                }\n\n                function x(n, t, e) {\n                    var r = n[q];\n\n                    return F(n, function(n) {\n                        var o;\n                        if ((o = r[t][n - e]) == null) {\n                            return r[t][n];\n                        } else {\n                            return o;\n                        }\n                    });\n                }\n\n                function y(n, t, e) {\n                    var i;\n                    var o = n[q];\n                    var r = (i = t);\n\n                    for (var u = o[0].length; u >= t ? u > i : i > u; r = u >= t ? ++i : --i) {\n                        e(r);\n                    }\n\n                    return null;\n                }\n\n                function $(n, t, e) {\n                    var i = n[q];\n                    var u = i[t];\n                    var r = F(n, function(n) {\n                        if (n === 0) {\n                            return u[n];\n                        } else if (e > n) {\n                            return (o[n - 1] * n + u[n]) / (n + 1);\n                        } else {\n                            return (o[n - 1] * e - u[n - e] + u[n]) / e;\n                        }\n                    });\n                    var o = i[r];\n                    return r;\n                }\n\n                function w(n, t, e) {\n                    var i = n[q];\n                    var u = i[t];\n                    var r = F(n, function(n) {\n                        if (n === 0) {\n                            return u[n];\n                        } else if (e > n) {\n                            return o[n - 1] + u[n];\n                        } else {\n                            return o[n - 1] - u[n - e] + u[n];\n                        }\n                    });\n                    var o = i[r];\n                    return r;\n                }\n\n                function T(n, t, e) {\n                    var r = n[q];\n                    var o = r[t];\n                    return F(n, function(n) {\n                        var u = n + 1;\n                        var l = Math.max(u - e, 0);\n                        var c = r[t].slice(l, u);\n                        var s = 0;\n                        var f = 0;\n                        for (var d = c.length; d > f; f++) {\n                            o = c[f];\n                            s += o;\n                        }\n                        var i = s / c.length;\n                        s = 0;\n                        var h = 0;\n                        for (var p = c.length; p > h; h++) {\n                            o = c[h];\n                            s += (o - i) * (o - i);\n                        }\n                        var a = s / c.length;\n                        return Math.sqrt(a);\n                    });\n                }\n\n                function V(n, t) {\n                    n[q];\n                    var o = n[G];\n                    var u = l(n);\n                    var e = u[0];\n                    u[1];\n                    o[e] = function(e) {\n                        return v(n, t, e);\n                    };\n                    return e;\n                }\n\n                function k(n, t, e) {\n                    var i = n[q];\n                    var u = i[t];\n                    var r = F(n, function(n) {\n                        if (n === 0) {\n                            return u[n];\n                        } else {\n                            return (2 * u[n] + (e - 1) * o[n - 1]) / (e + 1);\n                        }\n                    });\n                    var o = i[r];\n                    return r;\n                }\n\n                function S(n, t, e, r) {\n                    var u = n[q];\n                    var l = u[t];\n                    var o = F(n, function(n) {\n                        if (n === 0) {\n                            return l[n];\n                        } else {\n                            return (r * l[n] + (e - r) * i[n - 1]) / e;\n                        }\n                    });\n                    var i = u[o];\n                    return o;\n                }\n\n                function M(n, t, e) {\n                    var r = n[q];\n                    var o = r[t];\n                    return F(n, function(n) {\n                        var r = Math.max(n - e + 1, 0);\n                        var t = n + 1;\n                        return Math.min.apply(Math, o.slice(r, t));\n                    });\n                }\n\n                function _(n, t, e) {\n                    var r = n[q];\n                    var o = r[t];\n                    return F(n, function(n) {\n                        var r = Math.max(n - e + 1, 0);\n                        var t = n + 1;\n                        return Math.max.apply(Math, o.slice(r, t));\n                    });\n                }\n\n                function I(n, t, e, r, o, i) {\n                    if (e == null) {\n                        e = 12;\n                    }\n                    if (r == null) {\n                        r = 26;\n                    }\n                    if (o == null) {\n                        o = 9;\n                    }\n                    if (i == null) {\n                        i = 2;\n                    }\n                    n[q];\n                    var y = a(n, [t]);\n                    var v = y[0];\n                    var h = y[1];\n                    var $ = v(k(n, t, e));\n                    $[0];\n                    var m = $[1];\n                    var w = v(k(n, t, r));\n                    w[0];\n                    var b = w[1];\n                    var T = v(\n                        F(n, function(n) {\n                            return m[n] - b[n];\n                        })\n                    );\n                    var c = T[0];\n                    var p = T[1];\n                    var V = v(k(n, c, o));\n                    var s = V[0];\n                    var d = V[1];\n                    var S = v(\n                        F(n, function(n) {\n                            return i * (p[n] - d[n]);\n                        })\n                    );\n                    var f = S[0];\n\n                    S[1];\n                    h();\n\n                    return [c, s, f];\n                }\n\n                function X(n, t, e, r, o, i) {\n                    if (e == null) {\n                        e = 14;\n                    }\n                    if (r == null) {\n                        r = 14;\n                    }\n                    if (o == null) {\n                        o = 3;\n                    }\n                    if (i == null) {\n                        i = 3;\n                    }\n                    var A = n[q];\n                    n[G];\n                    var Y = a(n, [t]);\n                    var B = Y[0];\n                    var J = Y[1];\n                    var Z = A[t];\n                    var et = B(x(n, t, 1));\n                    et[0];\n                    var E = et[1];\n                    var rt = B(\n                        F(n, function(n) {\n                            return Math.max(Z[n] - E[n], 0);\n                        })\n                    );\n                    var u = rt[0];\n                    rt[1];\n                    var ot = B(\n                        F(n, function(n) {\n                            return Math.abs(Z[n] - E[n]);\n                        })\n                    );\n                    var s = ot[0];\n                    ot[1];\n                    var it = B(S(n, u, e, 1));\n                    it[0];\n                    var k = it[1];\n                    var ut = B(S(n, s, e, 1));\n                    ut[0];\n                    var X = ut[1];\n                    var lt = B(\n                        F(n, function(n) {\n                            if (X[n] < 1e-12) {\n                                return 100;\n                            } else {\n                                return (k[n] / X[n]) * 100;\n                            }\n                        })\n                    );\n                    var T = lt[0];\n                    var Q = lt[1];\n                    var at = B(M(n, T, r));\n                    at[0];\n                    var N = at[1];\n                    var st = B(_(n, T, r));\n                    st[0];\n                    var O = st[1];\n                    var D = B(\n                        F(n, function(n) {\n                            return Q[n] - N[n];\n                        })\n                    );\n                    var m = D[0];\n                    D[1];\n                    var K = B(\n                        F(n, function(n) {\n                            return O[n] - N[n];\n                        })\n                    );\n                    var w = K[0];\n                    K[1];\n                    var z = B($(n, m, o));\n                    z[0];\n                    var L = z[1];\n                    var j = B($(n, w, o));\n                    j[0];\n                    var W = j[1];\n                    var nt = B(\n                        F(n, function(n) {\n                            if (W[n] < 1e-12) {\n                                return 100;\n                            } else {\n                                return (L[n] / W[n]) * 100;\n                            }\n                        })\n                    );\n                    var p = nt[0];\n                    nt[1];\n                    var tt = B($(n, p, i));\n                    var h = tt[0];\n                    tt[1];\n                    J();\n                    return [p, h];\n                }\n\n                function Z(n, t, e) {\n                    var l = t[0];\n                    var w = n[q];\n                    n[G];\n                    var T = a(n, t);\n                    var m = T[0];\n                    var b = T[1];\n                    var v = w[l];\n                    var V = m(x(n, l, 1));\n                    V[0];\n                    var y = V[1];\n                    var k = m(\n                        F(n, function(n) {\n                            return Math.max(v[n] - y[n], 0);\n                        })\n                    );\n                    var r = k[0];\n                    k[1];\n                    var M = m(\n                        F(n, function(n) {\n                            return Math.abs(v[n] - y[n]);\n                        })\n                    );\n                    var i = M[0];\n                    M[1];\n                    var _ = m(S(n, r, e, 1));\n                    _[0];\n                    var h = _[1];\n                    var I = m(S(n, i, e, 1));\n                    I[0];\n                    var p = I[1];\n                    var X = m(\n                        F(n, function(n) {\n                            if (p[n] === 0) {\n                                return 100;\n                            } else {\n                                return (h[n] / p[n]) * 100;\n                            }\n                        })\n                    );\n                    var c = X[0];\n                    X[1];\n                    b();\n                    return [c];\n                }\n\n                function J(n, t, e, r, o) {\n                    var s = t[0];\n                    var d = t[1];\n                    var i = t[2];\n                    if (e == null) {\n                        e = 9;\n                    }\n                    if (r == null) {\n                        r = 3;\n                    }\n                    if (o == null) {\n                        o = 3;\n                    }\n                    var X = n[q];\n                    n[G];\n                    var Z = a(n, arguments[1]);\n                    var x = Z[0];\n                    var b = Z[1];\n                    X[d];\n                    var v = X[i];\n                    X[s];\n                    var J = x(M(n, d, e));\n                    J[0];\n                    var V = J[1];\n                    var P = x(_(n, s, e));\n                    P[0];\n                    var y = P[1];\n                    var H = x(\n                        F(n, function(n) {\n                            if (y[n] - V[n] < 1e-8) {\n                                return 100;\n                            } else {\n                                return ((v[n] - V[n]) / (y[n] - V[n])) * 100;\n                            }\n                        })\n                    );\n                    var p = H[0];\n                    H[1];\n                    var B = x(S(n, p, r, 1));\n                    var f = B[0];\n                    var T = B[1];\n                    var O = x(S(n, f, o, 1));\n                    var u = O[0];\n                    var g = O[1];\n                    var R = x(\n                        F(n, function(n) {\n                            return 3 * T[n] - 2 * g[n];\n                        })\n                    );\n                    var c = R[0];\n                    R[1];\n                    b();\n                    return [f, u, c];\n                }\n\n                function P(n, t, e) {\n                    if (e == null) {\n                        e = 20;\n                    }\n\n                    var i = t[0];\n                    var u = t[1];\n                    var r = t[2];\n                    var f = t[3];\n                    var x = n[q];\n                    n[G];\n                    var y = a(n, t);\n                    var v = y[0];\n                    var d = y[1];\n                    var $ = v(\n                        F(n, function(n) {\n                            var e = x[i][n];\n                            var o = x[u][n];\n                            var t = x[r][n];\n                            var l = x[f][n];\n                            if (e === o) {\n                                return 0;\n                            } else {\n                                return ([t - o - (e - t)] / (e - o)) * l;\n                            }\n                        })\n                    );\n                    var l = $[0];\n                    $[1];\n                    var T = v(w(n, l, e));\n                    var s = T[0];\n                    T[1];\n                    var V = v(w(n, f, e));\n                    var c = V[0];\n                    V[1];\n                    var k = v(\n                        F(n, function(n) {\n                            return x[s][n] / x[c][n];\n                        })\n                    );\n                    var o = k[0];\n                    k[1];\n                    d();\n                    return [o];\n                }\n\n                function H(n, t) {\n                    var e = t[0];\n                    var i = t[1];\n\n                    var f = n[q];\n                    var h = a(n, t);\n\n                    var l = h[0];\n                    var u = h[1];\n\n                    var d = l(x(n, e, 1));\n\n                    d[0];\n\n                    var c = d[1];\n\n                    var p = l(\n                        F(n, function(n) {\n                            var r;\n                            var t = (r = s[n - 1]) != null ? r : 0;\n                            if (f[e][n] > c[n]) {\n                                return t + f[i][n];\n                            } else if (f[e][n] < c[n]) {\n                                return t - f[i][n];\n                            } else {\n                                return t;\n                            }\n                        })\n                    );\n\n                    var r = p[0];\n                    var s = p[1];\n\n                    u();\n                    return [r];\n                }\n\n                // calculate SAR\n                function B(n, t, e, r, o) {\n                    if (e == null) {\n                        e = 0.02;\n                    }\n\n                    if (r == null) {\n                        r = 0.2;\n                    }\n\n                    if (o == null) {\n                        o = 4;\n                    }\n\n                    var u = t[0]; // 5\n                    var s = t[1]; // 6\n                    //var i = t[2]; // 4\n\n                    var w = n[q];\n                    var T = a(n, t);\n\n                    var b = T[0];\n                    var d = T[1];\n\n                    var g = w[u];\n                    var x = w[s];\n\n                    //w[i];\n\n                    var v = [e];\n                    var p = [1];\n\n                    var V = b(M(n, s, o));\n                    var k = b(_(n, u, o));\n\n                    //V[0];\n                    //k[0];\n\n                    var y = V[1];\n                    var m = k[1];\n\n                    var S = b(\n                        F(n, function(n) {\n                            var o;\n                            if (n === 0) {\n                                return x[n];\n                            }\n                            var t = v[n - 1];\n                            p[n] = p[n - 1];\n                            if (p[n]) {\n                                o = $[n - 1] + t * (g[n] - $[n - 1]);\n\n                                v[n] = m[n] > m[n - 1] ? Math.min(t + e, r) : t;\n\n                                if (x[n] < o) {\n                                    p[n] = 0;\n                                    v[n] = e;\n                                    return m[n];\n                                }\n                            } else if (\n                                ((o = $[n - 1] + t * (x[n] - $[n - 1])),\n                                    (v[n] = y[n] < y[n - 1] ? Math.min(t + e, r) : t),\n                                g[n] > o)\n                            ) {\n                                p[n] = 1;\n                                v[n] = e;\n                                return y[n];\n                            }\n                            return o;\n                        })\n                    );\n\n                    var f = S[0];\n                    var $ = S[1];\n\n                    d();\n\n                    return [f];\n                }\n\n                function O(n, t, e) {\n                    if (e == null) {\n                        e = 20;\n                    }\n                    var r = t[0];\n                    n[q];\n                    var b = a(n, t);\n                    var f = b[0];\n                    var s = b[1];\n                    var g = f($(n, r, e));\n                    var u = g[0];\n                    var h = g[1];\n                    var m = f(T(n, r, e));\n                    m[0];\n                    var d = m[1];\n                    var x = f(\n                        F(n, function(n) {\n                            return h[n] + 2 * d[n];\n                        })\n                    );\n                    var l = x[0];\n                    x[1];\n                    var y = f(\n                        F(n, function(n) {\n                            return h[n] - 2 * d[n];\n                        })\n                    );\n                    var o = y[0];\n                    y[1];\n                    s();\n                    return [u, o, l];\n                }\n                function R(n, t, e, r) {\n                    var d = t[0];\n                    var v = t[1];\n                    var l = t[2];\n                    var E = n[q];\n                    var U = a(n, t);\n                    var Z = U[0];\n                    var k = U[1];\n                    var V = E[l];\n                    var J = E[d];\n                    var H = E[v];\n                    var D = Z(\n                        F(n, function(n) {\n                            return J[n] - J[n - 1];\n                        })\n                    );\n                    var p = D[0];\n                    var P = D[1];\n                    var K = Z(\n                        F(n, function(n) {\n                            return H[n - 1] - H[n];\n                        })\n                    );\n                    var b = K[0];\n                    var B = K[1];\n                    var z = Z(\n                        F(n, function(n) {\n                            if (P[n] > 0 && P[n] > B[n]) {\n                                return P[n];\n                            } else {\n                                return 0;\n                            }\n                        })\n                    );\n                    var h = z[0];\n                    var X = z[1];\n                    var j = Z(\n                        F(n, function(n) {\n                            if (B[n] > 0 && B[n] > P[n]) {\n                                return B[n];\n                            } else {\n                                return 0;\n                            }\n                        })\n                    );\n                    var c = j[0];\n                    var _ = j[1];\n                    var G = Z(\n                        F(n, function(n) {\n                            var e;\n                            var t = (e = V[n - 1]) != null ? e : V[n];\n                            return Math.max(J[n] - H[n], Math.abs(J[n] - t), Math.abs(H[n] - t));\n                        })\n                    );\n\n                    var y = G[0];\n                    var L = G[1];\n\n                    var nt = Z(S(n, h, e, 1));\n\n                    var f = nt[0];\n                    var I = nt[1];\n\n                    var tt = Z(S(n, c, e, 1));\n\n                    var s = tt[0];\n                    var M = tt[1];\n\n                    var et = Z(S(n, y, e, 1));\n\n                    var x = et[0];\n                    var N = et[1];\n\n                    var W = Z(\n                        F(n, function(n) {\n                            return (100 * I[n]) / N[n];\n                        })\n                    );\n\n                    var m = W[0];\n                    var R = W[1];\n\n                    var C = Z(\n                        F(n, function(n) {\n                            return (100 * M[n]) / N[n];\n                        })\n                    );\n\n                    var g = C[0];\n                    var O = C[1];\n\n                    var Q = Z(\n                        F(n, function(n) {\n                            return (Math.abs(O[n] - R[n]) / (O[n] + R[n])) * 100;\n                        })\n                    );\n\n                    var u = Q[0];\n                    var w = Q[1];\n\n                    var A = Z(S(n, u, r, 1));\n\n                    var o = A[0];\n                    var $ = A[1];\n\n                    var Y = Z(\n                        F(n, function(n) {\n                            var t = $[n - r] || $[n];\n                            return ($[n] + t) / 2;\n                        })\n                    );\n\n                    var i = Y[0];\n                    var T = Y[1];\n\n                    k();\n\n                    return [m, g, o, i];\n                }\n                function E(n, t) {\n                    var f;\n\n                    var i = t[0];\n                    var r = t[1];\n                    var o = t[2];\n                    var e = t[3];\n\n                    var d = n[q];\n                    var c = n[G];\n                    var b = l(n);\n\n                    var u = b[0];\n                    var a = b[1];\n\n                    c[u] = function(t) {\n                        return y(n, t, function(n) {\n                            a[n] = parseFloat(((d[r][n] + d[o][n] + d[e][n]) / 3).toFixed(8));\n                            return a[n];\n                        });\n                    };\n                    c[u](0);\n\n                    var g = arguments[1];\n                    var p = 0;\n\n                    for (var v = g.length; v > p; p++) {\n                        f = g[p];\n                        s(n, f, u);\n                    }\n\n                    return [u];\n                }\n\n                function N(n, t) {\n                    var f;\n                    var i = t[0];\n                    var r = t[1];\n                    var o = t[2];\n                    var e = t[3];\n\n                    var d = n[q];\n                    var c = n[G];\n                    var b = l(n);\n\n                    var u = b[0];\n                    var a = b[1];\n\n                    c[u] = function(t) {\n                        return y(n, t, function(n) {\n                            a[n] = parseFloat(((d[r][n] + d[o][n]) / 2).toFixed(8));\n                            return a[n];\n                        });\n                    };\n                    c[u](0);\n\n                    var g = arguments[1];\n                    var p = 0;\n\n                    for (var v = g.length; v > p; p++) {\n                        f = g[p];\n                        s(n, f, u);\n                    }\n\n                    return [u];\n                }\n                function L(n, t) {\n                    var r = t[0];\n                    var o = t[1];\n                    var e = t[2];\n\n                    var f = n[q];\n                    var a = n[G];\n\n                    var h = l(n);\n                    var i = h[0];\n                    var u = h[1];\n\n                    a[i] = function(t) {\n                        return y(n, t, function(n) {\n                            u[n] =\n                                f[o][n] === 0\n                                    ? f[e][n]\n                                    : parseFloat((f[r][n] / f[o][n]).toPrecision(5));\n                            return u[n];\n                        });\n                    };\n                    a[i](0);\n\n                    c(n, t, i);\n\n                    return [i];\n                }\n                function U(n, t, e) {\n                    function r(n) {\n                        b.push(n);\n                        return [n, g[n]];\n                    }\n\n                    if (e == null) {\n                        e = 3;\n                    }\n\n                    var o = t[0];\n                    var i = t[1];\n\n                    var g = n[q];\n                    var d = n[G];\n\n                    var b = [];\n                    var m = r(\n                        F(n, function(n) {\n                            if (g[o][n] === g[i][n]) {\n                                return 0.5;\n                            } else {\n                                return g[i][n] / (g[i][n] + g[o][n]);\n                            }\n                        })\n                    );\n\n                    var u = m[0];\n                    m[1];\n                    var x = r($(n, u, e));\n                    var a = x[0];\n                    x[1];\n                    var y = l(n);\n                    var f = y[0];\n                    y[1];\n                    d[f] = function(t) {\n                        return v(n, b, t);\n                    };\n                    d[f](0);\n                    c(n, t, f);\n                    return [a];\n                }\n                function W(n, t) {\n                    return f(n, t, $.apply(null, arguments));\n                }\n                function C(n, t) {\n                    return f(n, t, k.apply(null, arguments));\n                }\n                function Q(n, t) {\n                    return f(n, t, S.apply(null, arguments));\n                }\n                function A(n, t) {\n                    return f(n, t, w.apply(null, arguments));\n                }\n                function Y(n, t) {\n                    var o = n[q];\n                    var i = l(n);\n                    var e = i[0];\n                    i[1];\n                    o[e] = t;\n                    return e;\n                }\n\n                function D() {\n                    var n;\n                    var i;\n                    var r = arguments[0];\n                    var o =\n                        3 <= arguments.length\n                            ? ao.call(arguments, 1, (i = arguments.length - 1))\n                            : ((i = 1), []);\n                    var e = arguments[i++];\n                    var a = [];\n                    var u = 0;\n                    for (var l = e.length; l > u; u++) {\n                        n = e[u];\n                        if (typeof n === \"object\" && n.length) {\n                            a.push(r.apply(null, ao.call(o).concat(ao.call(n))));\n                        } else {\n                            a.push(r.apply(null, ao.call(o).concat([n])));\n                        }\n                    }\n                    return a;\n                }\n\n                function K() {\n                    return D.apply(null, [b].concat(ao.call(arguments)));\n                }\n\n                function z(n, t, e, r) {\n                    var o = b(n, r);\n                    return o.slice(t, +e + 1 || 9e9);\n                }\n\n                var it = m(3);\n\n                var q = it[0];\n                var j = it[1];\n                var G = it[2];\n\n                r = q;\n                n = j;\n                e = G;\n\n                var lt = p(function(n, t, e, r) {\n                    return (n[q][e][t] = r);\n                });\n\n                p(function(n, t, e) {\n                    return n[q][e].push(t);\n                });\n\n                var ot = p(function(n, t, e, r) {\n                    return n[q][e].splice(t, 0, r);\n                });\n\n                var rt = p(function(n, t, e) {\n                    return n[q][e].splice(t, 1);\n                });\n\n                zt = o;\n                re = lt;\n                At = rt;\n                jt = ot;\n                Gt = h;\n                oe = d;\n                te = i;\n                qt = u;\n                St = Y;\n                Zt = C;\n                Pt = W;\n                Ht = I;\n                Lt = X;\n                Jt = J;\n                It = P;\n                Ot = H;\n                Rt = Z;\n                Xt = R;\n                _t = O;\n                Et = B;\n                Nt = Q;\n                Ut = A;\n                Bt = N;\n                Wt = E;\n                Ct = L;\n                Mt = U;\n                Dt = g;\n                ne = lt;\n                Yt = b;\n                Qt = D;\n                Kt = K;\n\n                return (ee = z);\n            }(),\n            Se = Xe = Ie = ke = Me = Ve = $e = we = Te = _e = null, d = v = p = b = null,\n            // storing trades\n            function() {\n                function n(n, t) {\n                    return n[0] - t[0]\n                }\n\n                function e(n) {\n                    var t = { group: n };\n\n                    r(t);\n\n                    return t;\n                }\n\n                function r(t) {\n                    t[g] = new dt({ compare: n });\n                    t[x] = new dt({ compare: n });\n                    t[F] = new dt({ compare: n });\n                    t[y] = new dt({ compare: n });\n\n                    return t;\n                }\n\n                function o(n, t, e) {\n                    switch (t) {\n                        case x:\n                            return Math.floor(e[0] / n.group + 1e-12) * n.group;\n                        case g:\n                            return Math.ceil(e[0] / n.group - 1e-12) * n.group\n                    }\n                }\n\n                function i(n, t, e) {\n                    var r;\n                    var i;\n\n                    n[t].insert(e);\n\n                    if (e[1]) {\n                        e = [o(n, t, e), e[1]];\n                        i = t === x ? y : F;\n\n                        if ((r = n[i].find(e))) {\n                            r[1] += e[1];\n\n                            return (r[2] += e[1] * e[0]);\n                        } else {\n                            r = e;\n                            r[2] = e[1] * e[0];\n\n                            return n[i].insert(r);\n                        }\n                    } else {\n                        return;\n                    }\n                }\n\n                function u(n, e, r) {\n                    var i;\n                    var u;\n\n                    if (r && (n[e][\"delete\"](r), r[1])) {\n                        r = [o(n, e, r), r[1]];\n                        u = e === x ? y : F;\n                        i = n[u].find(r);\n\n                        if (i && ((i[1] -= r[1]), (i[2] -= r[1] * r[0]), i[1] < 1e-12)) {\n                            return n[u][\"delete\"](i);\n                        } else {\n                            return;\n                        }\n                    }\n                }\n\n                function l(n, e) {\n                    var r;\n\n                    var p = e.type_str;\n                    var f = e.price_int;\n                    var h = e.total_volume_int;\n                    var o = e.now;\n                    var d = p === \"bid\" ? x : g;\n                    var s = n[d];\n                    var v = parseInt(h);\n                    var c = parseInt(f);\n                    var l = [c, v, o];\n                    var a = s.find([c]);\n\n                    u(n, d, a);\n\n                    if (v) {\n                        i(n, d, l);\n                    }\n\n                    if (d === x) {\n                        while ((r = n[g].get(0)) && r[0] <= c) {\n                            u(n, g, r);\n                        }\n                    } else {\n                        while ((r = n[x].get(-1)) && r[0] >= c) {\n                            u(n, x, r);\n                        }\n                    }\n\n                    return n;\n                }\n\n                function a(collection, item, isRightHandOrderbook) {\n                    var price = item[0];\n                    var amount = item[1];\n                    var side = item[2];\n\n                    var h = side === 'bid' ? x : g;\n\n                    var c = collection[h];\n\n                    var a = [price, amount];\n\n                    if (isRightHandOrderbook == null) {\n                        isRightHandOrderbook = true;\n                    }\n\n                    var l, s = c.find([price]);\n\n                    u(collection, h, s);\n\n                    if (amount) {\n                        i(collection, h, a);\n                    }\n\n                    if (!isRightHandOrderbook) {\n                        return collection;\n                    }\n\n                    if (h === x) {\n                        while ((l = collection[g].get(0)) && l[0] <= price) {\n                            u(collection, g, l);\n                        }\n                    } else {\n                        while ((l = collection[x].get(-1)) && l[0] >= price) {\n                            u(collection, x, l);\n                        }\n                    }\n\n                    return collection;\n                }\n\n                function s(n, e) {\n                    var o;\n                    var c;\n\n                    if(!e) {\n                        return;\n                    }\n\n                    var a = e.price;\n                    var r = e.amount;\n                    var s = e.trade_type;\n\n                    if (s === \"bid\") {\n                        c = g;\n                        for (n[c]; r > 1e-12 && (o = n[g].get(0)) && o[0] <= a; ) {\n                            if (o[1] > r) {\n                                u(n, c, o);\n\n                                o[1] = o[1] - r;\n\n                                i(n, c, o);\n                                break;\n                            }\n\n                            u(n, g, o);\n\n                            r -= o[1];\n                        }\n                    } else {\n                        for (c = x; r > 1e-12 && (o = n[x].get(-1)) && o[0] >= a; ) {\n                            if (o[1] > r) {\n                                u(n, c, o);\n\n                                o[1] = o[1] - r;\n\n                                i(n, c, o);\n                                break;\n                            }\n\n                            u(n, x, o);\n\n                            r -= o[1];\n                        }\n                    }\n                    return n;\n                }\n\n                function c(n, t) {\n                    var o;\n\n                    for (var e = 0; (o = n[g].get(0)) && o[0] < t; ) {\n                        ++e;\n                        u(n, g, o);\n                    }\n\n                    for (var r = 0; (o = n[x].get(-1)) && o[0] > t; ) {\n                        ++r;\n                        u(n, x, o);\n                    }\n\n                    return [e, r];\n                }\n\n                function f(n, t, e, r) {\n                    var a;\n                    var o = 0;\n                    var i = 0;\n                    var s = 0;\n                    var c = 0;\n\n                    for (var l = 0; (a = n[g].at(l)) && a[0] <= e; ) {\n                        if (a[3] >= r) {\n                            ++l;\n                            ++s;\n                        } else {\n                            ++o;\n                            u(n, g, a);\n                        }\n                    }\n\n                    for (l = -1; (a = n[x].at(l)) && a[0] >= t; ) {\n                        if (a[3] >= r) {\n                            --l;\n                            ++c;\n                        } else {\n                            ++i;\n                            u(n, x, a);\n                        }\n                    }\n\n                    return [o, i, s, c];\n                }\n\n\n                function h(n) {\n                    var t = n[g];\n                    var r = n[x];\n\n                    t.slice(-11, -1);\n\n                    return r.slice(0, 10);\n                }\n\n                var g, F, x, y, $, w, T, V, k, S;\n\n                k = m(4);\n\n                x = k[0];\n                g = k[1];\n                y = k[2];\n                F = k[3];\n\n                S = [0, 1, 2, 3];\n\n                $ = S[0];\n                V = S[1];\n                T = S[2];\n                w = S[3];\n\n                Se = e;\n                Xe = l;\n                Ie = a;\n                ke = h;\n                Me = i;\n                Ve = u;\n                $e = c;\n                we = f;\n                Te = r;\n                _e = s;\n\n                d = g;\n                v = x;\n                p = F;\n                b = y;\n\n                return b;\n            }(),\n\n            Ae = Ke = De = Ne = Ee = ze = We = null, Ze = Je = null, He = Pe = Oe = Re = Be = Le = Ue = Ce = Ye = Qe = null,\n            // draw functions\n            function() {\n                // draw a volume candle\n                function n(n, t, e, o, i, u, fillAndStroke) {\n                    var s = eo(t, o, i);\n\n                    var l = s[0];\n                    var a = s[1];\n\n                    if (a > e) {\n                        return r(n, l, e, u, a - e, fillAndStroke);\n                    } else {\n                        return r(n, l, a, u, e - a, fillAndStroke);\n                    }\n                }\n\n                // draw a main candle: candle_stick and candle_stick_hlc\n                function e(ctx, evt, barIndex, openPrice, closePrice, barWidth, fillAndStroke) {\n                    var rectX, rectYFrom, rectYTo;\n\n                    rectX = ro(evt, barIndex);\n                    rectYFrom = oo(evt, openPrice);\n                    rectYTo = oo(evt, closePrice);\n\n                    return r(ctx, rectX, rectYTo, barWidth, rectYFrom - rectYTo, fillAndStroke)\n                }\n\n                // draw a rectangle\n                // fixme: slow\n                function r(ctx, x, y, width, height, fillAndStroke) {\n                //    window.CumulativeMeasurer('rectangle').start();\n\n                    if(height < 0) {\n                        y += height;\n                        height = -height;\n                    }\n\n                    if(height === 0) {\n                        height = 1;\n                    }\n\n                /*    if(fillAndStroke === undefined) {\n                        debugger;\n                    }*/\n\n                    if(fillAndStroke === undefined ? ctx.fillStyle === ctx.strokeStyle : fillAndStroke) {\n                        ctx.fillRect(x, y, width, height);\n                    } else if(height > 1) {\n                        ctx.fillRect(x, y, width, height);\n                        ctx.strokeRect(x + .5, y + .5, width - 1, height - 1);\n                    } else if(height === 1) {\n                        ctx.beginPath();\n                        ctx.moveTo(x, y + .5);\n                        ctx.lineTo(x + width, y + .5);\n                        ctx.stroke();\n                    }\n\n                //    window.CumulativeMeasurer('rectangle').stop();\n                }\n\n                function o(n) {\n                    var t, e, r, o;\n\n                    if (k.length !== 0) {\n                        t = n.getImageData(0, 0, n.canvas.width, n.canvas.height);\n                        r = 0;\n\n                        for (o = k.length; o > r; r++) {\n                            e = k[r];\n                            e(t);\n                        }\n\n                        n.putImageData(t, 0, 0);\n\n                        k = [];\n\n                        return this;\n                    }\n                }\n\n\n                // draw lines\n                // fixme: slow\n                function i(ctx, e, r, o) {\n                    var u, l, a, s, c, f, h, d, p, v, b, g, m, F, x, y, $, w;\n\n                    if (r.length) {\n                        d = null;\n\n                        ctx.beginPath();\n\n                        a = e[Ft];\n                        s = F = 0;\n\n                        for ($ = r.length; $ > F; s = ++F) {\n                            c = r[s];\n                            w = eo(e, s, c);\n\n                            u = w[0];\n                            l = w[1];\n\n                            if (o) {\n                                u += o - 0.5;\n                            }\n\n                            l += 0.5;\n\n                            if (!(c > a.y + a.h) && !(c < a.y) && performanceSettings.sharp_lines) {\n                                if (d == null) {\n                                    ctx.moveTo(u, l);\n                                    ctx.lineTo(u + 1, l);\n                                } else {\n                                    v = u - d;\n                                    b = l - p;\n\n                                    if (Math.abs(v) < Math.abs(b)) {\n                                        for (f = x = 0; b >= 0 ? b >= x : x >= b; f = b >= 0 ? ++x : --x) {\n                                            g = (d + (v * f) / b) >> 0;\n                                            m = p + f;\n                                            ctx.moveTo(g, m);\n                                            ctx.lineTo(g + 1, m);\n                                        }\n                                    } else if (Math.abs(v) < 1024) {\n                                        for (f = y = 0; v >= 0 ? v >= y : y >= v; f = v >= 0 ? ++y : --y) {\n                                            g = d + f;\n                                            m = (p + (b * f) / v) >> 0;\n                                            ctx.moveTo(g, m + 0.5);\n                                            ctx.lineTo(g + 1, m + 0.5);\n                                        }\n                                    }\n                                }\n                            } else {\n                                if (d == null) {\n                                    ctx.moveTo(u, l);\n                                }\n\n                                ctx.lineTo(u + 1, l);\n                            }\n\n                            d = u;\n                            p = l;\n                        }\n\n                        ctx.stroke();\n\n                        return this;\n                    }\n                }\n\n                function u(n, t, e, r) {\n                    var o;\n                    return o = $.Color(n.strokeStyle).rgba(), t = ue(t), k.push(function(n) {\n                        var i, u, l, a, s, f, h;\n                        for (l = s = 0, f = e.length; f > s; l = ++s) a = e[l], null != a && (h = eo(t, l, a), i = h[0], u = h[1], r && (i += r), i >>= 0, u >>= 0, c(n, i, u, o));\n                        return this\n                    })\n                }\n\n                function l(n, e, r) {\n                    var o;\n                    return o = $.Color(n.strokeStyle).rgba(), e = ue(e), k.push(function(n) {\n                        var e, i, u, l, a, c, f;\n                        for (a = 0, c = r.length; c > a; a++) f = r[a], e = f[0], i = f[1], e >>= 0, i >>= 0, typeof l !== t.bQ && null !== l && s(n, u, l, e, i, o), u = e, l = i;\n                        return this\n                    })\n                }\n\n                function a(n, t, e, r, o) {\n                    var i, u;\n                    return null == o && (o = 1), u = n.width, i = n.height, Jr = e * u + t << 2, n.data[Jr++] = r[0], n.data[Jr++] = r[1], n.data[Jr++] = r[2], n.data[Jr++] = 255 * r[3] * o\n                }\n\n                function s(n, t, e, r, o, i) {\n                    var u, l, s, c, f, h, d;\n                    for (u = Math.abs(r - t), f = r > t ? 1 : -1, l = Math.abs(o - e), h = o > e ? 1 : -1, c = (null != (d = u > l) ? d : {\n                        dx: -l\n                    }) / 2;;) {\n                        if (a(n, t, e, i), t === r && e === o) break;\n                        s = c, s > -u && (c -= l, t += f), l > s && (c += u, e += h)\n                    }\n                    return this\n                }\n\n                function c(n, t, e, r) {\n                    return a(n, t, e, r, .8), a(n, t + 1, e, r, .8), a(n, t - 1, e, r, .8), a(n, t, e + 1, r, .8), a(n, t, e - 1, r, .8)\n                }\n\n                function f(n, t, e, r, o) {\n                    return n.beginPath(), n.moveTo(t, e), n.lineTo(t, e - o), n.lineTo(t + .866 * o, e - .5 * o), n.fill()\n                }\n\n                function h(n, t, e, r, o) {\n                    return n.beginPath(), n.moveTo(t, e), n.lineTo(t, e - o), n.lineTo(t - .866 * o, e - .5 * o), n.fill()\n                }\n\n                // draw a candle wick\n                function d(n, t, e, r, o, i) {\n                    var u = ro(t, e);\n                    var l = oo(t, r);\n                    var a = oo(t, o);\n\n                    if (i) {\n                        u += i;\n                    }\n\n                //    n.beginPath();\n\n                    n.moveTo(u + 0.5, a);\n                    n.lineTo(u + 0.5, l);\n\n                //    return n.stroke();\n                }\n\n\n                function p(n, t, e, r) {\n                    return n.beginPath(), n.moveTo(e, t), n.lineTo(r, t), n.stroke()\n                }\n\n                function v(n, t, e, r) {\n                    return n.beginPath(), n.moveTo(t, e), n.lineTo(t, r), n.stroke()\n                }\n\n                function b(n, t, e) {\n                    var o;\n                    var i;\n                    var l;\n                    var r = ue(t[mt]);\n                    var u = ue(t[Ft]);\n\n                    t = lo(r, u);\n\n                    var a = e(r, u);\n                    var s = 0;\n\n                    for (var c = a.length; c > s; s++) {\n                        l = a[s];\n                        i = oo(t, l);\n                        o = r.w;\n\n                        n.fillText(l, o - 8, i + 0.5);\n                        p(n, i + 0.5, r.w - 4, r.w);\n                    }\n\n                    return null;\n                }\n\n                function g(n, t) {\n                    return b(n, t, function(n, t) {\n                        var e, r, o, i, u, l, a;\n                        for (r = Math.floor(n.h / 32), u = t.h / r, i = t.y, a = [], e = l = 0; r >= 0 ? r >= l : l >= r; e = r >= 0 ? ++l : --l) o = i + e * u, a.push(parseFloat(o.toPrecision(5)));\n                        return a\n                    })\n                }\n\n                function m(n, t) {\n                    b(n, t, function(n, t) {\n                        var e;\n                        var r;\n                        var s;\n                        var o = Math.abs(n.h / 32);\n                        var l = t.h / o;\n\n                        var c = (function() {\n                            var o = [1, 2, 5];\n                            var i = [];\n                            var n = 0;\n\n                            for (var t = o.length; t > n; n++) {\n                                e = o[n];\n                                r = l / e;\n                                s = Math.ceil(Math.log(r) / Math.log(10)).toFixed(2);\n                                s = Math.pow(10, s);\n                                s = e * s;\n                                i.push(s);\n                            }\n                            return i;\n                        })();\n\n                        var a = Math.min.apply(Math, c);\n\n                        var i = Math.ceil(t.y / a) * a;\n\n                        for (var u = []; i < t.y + t.h; ) {\n                            u.push(parseFloat(i.toPrecision(5)));\n                            i += a;\n                        }\n\n                        return u;\n                    });\n\n                    return null;\n                }\n\n                function F(n, e, r, o) {\n                    var u, l, c, f, d, v;\n\n                    if (!r.text && !r.hr) {\n                        r.text = true;\n                        r.hr = true;\n                    }\n\n                    e = Gr(e);\n\n                    var i = e[mt];\n                    var a = e[Ft];\n                    var h = o(i, a);\n\n                    n.textAlign = t.VN;\n\n                    var s = Math.max.apply(Math, h);\n\n                    if (1e6 > s) {\n                        s = 0;\n                    }\n\n                    var d = 0;\n\n                    for (var v = h.length; v > d; d++) {\n                        c = h[d];\n                        l = oo(e, c);\n                        u = i.x;\n                        f = r.keep ? c : mr(c);\n\n                        if (r.text) {\n                            n.fillText(f, u + 50, l + 0.5);\n                        }\n\n                        if (r.hr) {\n                            p(n, l + 0.5, u, u + 6);\n                            p(n, l + 0.5, u + i.w - 6, u + i.w);\n                        }\n                    }\n                    n.textAlign = t.uO;\n                    return null;\n                }\n\n                function x(n, t, e) {\n                    if (e == null) {\n                        e = {};\n                    }\n\n                    return F(n, t, e, function(n, t) {\n                        var o;\n                        var l;\n\n                        var r = Math.floor(n.h / 32);\n                        var u = t.h / r;\n                        var i = t.y;\n                        var a = [];\n\n                        for (var e = (l = 0); r >= 0 ? r >= l : l >= r; e = r >= 0 ? ++l : --l) {\n                            o = i + e * u;\n                            a.push(parseFloat(o.toPrecision(5)));\n                        }\n\n                        return a;\n                    });\n                }\n\n                function y(n, t, e, r) {\n                    if (r == null) {\n                        r = {};\n                    }\n\n                    return F(n, t, r, function() {\n                        return e;\n                    });\n                }\n\n                // this draws Y axis for chart and all indicators\n                function w(n, t, e) {\n                    if (e == null) {\n                        e = {};\n                    }\n\n                    var u = [];\n\n                    F(n, t, e, function(n, t) {\n                        var e, r, s, c;\n\n                        var o = Math.abs(n.h / 32);\n                        var l = t.h / o;\n\n                        c = (function() {\n                            var o = [1, 2, 5];\n                            var i = [];\n                            var n = 0;\n\n                            for (var t = o.length; t > n; n++) {\n                                e = o[n];\n\n                                r = l / e;\n\n                                s = Math.ceil(Math.log(r) / Math.log(10)).toFixed(2);\n                                s = Math.pow(10, s);\n                                s = e * s;\n\n                                i.push(s);\n                            }\n\n                            return i;\n                        })();\n\n                        var a = Math.min.apply(Math, c);\n                        var i = Math.ceil(t.y / a) * a;\n\n                        for (; i < t.y + t.h; ) {\n                            u.push(parseFloat(i.toPrecision(5)));\n                            i += a;\n                        }\n\n                        return u;\n                    });\n\n                    return u;\n                }\n\n                function T(n, t) {\n                    var e;\n\n                    n.save();\n                    n.beginPath();\n\n                    e = ue(t[mt]);\n\n                    e.y += 8;\n                    e.h -= 16;\n\n                    n.moveTo(e.x, e.y);\n                    n.lineTo(e.x + e.w, e.y);\n                    n.lineTo(e.x + e.w, e.y + e.h);\n                    n.lineTo(e.x, e.y + e.h);\n\n                    return n.clip()\n                }\n\n                function V(n, t, e) {\n                    n.save();\n\n                    e();\n\n                    return n.restore();\n                }\n\n                var k;\n                return k = [], Ae = i, Ke = n, De = e, Ne = r, Ee = p, ze = d, We = v, Ze = g, Je = m, He = x, Pe = w, Oe = T, Re = V, Be = y, Le = h, Ue = f, Ce = o, Ye = l, Qe = u\n            }(), dt = null,\n            // some structure for holding trades and maybe other data. CUSTOM\n            function() {\n                var n;\n                return n = function() {\n                    function n(n) {\n                        this.options = n != null ? n : {};\n                        this.id = ++u;\n                        this.min = 0;\n                        this.max = 0;\n                        this.count = 0;\n                        this.type = i;\n                        this.total = 0;\n                        this.parent = null;\n                        this.children = [];\n                        this.next = null;\n                        this.prev = null;\n\n                        this.compare = this.options[\"compare\"];\n                        this.multimap = this.options[\"multimap\"];\n\n                        if (this.compare == null) {\n                            this.compare = function(n, t) {\n                                return n - t;\n                            };\n                        }\n                    }\n\n                    var e, r, o, i, u;\n                    return e = 8, r = e << 1, o = 0, i = 1, u = 0, n.prototype.insert_value_ = function(n) {\n                        var t, e, r, o, i, u, l;\n                        for (e = this.count, t = this.children, r = l = 0; e >= 0 ? e > l : l > e; r = e >= 0 ? ++l : --l) {\n                            if (u = t[r], i = this.compare(u, n), 0 === i) {\n                                if (this.multimap) break;\n                                return\n                            }\n                            if (i > 0) break\n                        }\n                        if (0 === r)\n                            for (this.min = n, o = this;\n                                 (o = o.parent) && this.compare(o.min, n) > 0;) o.min = n;\n                        if (r === e)\n                            for (this.max = n, o = this;\n                                 (o = o.parent) && this.compare(o.max, n) < 0;) o.max = n;\n                        for (this.children.splice(r, 0, n), this.count += 1, o = this; o;) o.total += 1, o = o.parent;\n                        return this.rebuild_(), this\n                    }, n.prototype.insert_node_ = function(n, t) {\n                        var e, r, o;\n                        for (e = this.count, r = o = 0;\n                             (e >= 0 ? e > o : o > e) && this.children[r].min !== n; r = e >= 0 ? ++o : --o);\n                        return t.parent = this, this.count += 1, this.children.splice(r + 1, 0, t), this.rebuild_()\n                    }, n.prototype.find_node_ = function(n) {\n                        var t, e, r, i, u;\n                        for (i = this; i.type === o;) {\n                            if (t = i.children, e = i.count, this.compare(n, t[0].min) <= 0) r = 0;\n                            else if (this.compare(n, t[e - 1].max) >= 0) r = e - 1;\n                            else\n                                for (r = u = 0;\n                                     (e >= 0 ? e > u : u > e) && !(this.compare(t[r].max, n) >= 0); r = e >= 0 ? ++u : --u);\n                            i = t[r]\n                        }\n                        return i\n                    }, n.prototype.has = function(n) {\n                        var t;\n                        return t = this.find_node_(n), -1 !== t.children.indexOf(n)\n                    }, n.prototype.replace_value = function(n) {\n                        var t, e, r, o, i, u;\n                        for (r = this.find_node_(n), t = r.children, e = i = 0, u = t.length; u > i; e = ++i) o = t[e], 0 === this.compare(o, n) && (t[e] = n);\n                        return this\n                    }, n.prototype.get_node_ = function(n) {\n                        var t, e, r, i, u;\n                        if (r = this, n >= this.total) return [null, null];\n                        if (0 > n) return [null, null];\n                        for (; r.type === o;)\n                            for (e = r.children, i = 0, u = e.length; u > i; i++) {\n                                if (t = e[i], !(n >= t.total)) {\n                                    r = t;\n                                    break\n                                }\n                                n -= t.total\n                            }\n                        return [r, n]\n                    }, n.prototype.set_min_ = function(n) {\n                        var t, e;\n                        for (e = this, t = this.min; e && 0 === this.compare(e.min, t);) e.min = n, e = e.parent;\n                        return this\n                    }, n.prototype.set_max_ = function(n) {\n                        var t, e;\n                        for (e = this, t = this.max; e && 0 === this.compare(e.max, t);) e.max = n, e = e.parent;\n                        return this\n                    }, n.prototype.inc_total_ = function() {\n                        var n;\n                        for (n = this; n;) n.total += 1, n = n.parent;\n                        return this\n                    }, n.prototype.dec_total_ = function() {\n                        var n;\n                        for (n = this; n;) n.total -= 1, n = n.parent;\n                        return this\n                    }, n.prototype.clean_node_ = function() {\n                        var n, t;\n                        return this.parent ? (this.parent.delete_node_(this), this.type === i ? (null != (n = this.prev) && (n.next = this.next), null != (t = this.next) ? t.prev = this.prev : void 0) : void 0) : this.type = i\n                    }, n.prototype.delete_node_ = function(n) {\n                        var t;\n                        return t = this.children.indexOf(n), this.children.splice(t, 1), this.count -= 1, 0 === this.count ? this.clean_node_() : (0 === t && this.set_min_(this.children[0].min), t === this.count ? this.set_max_(this.children[this.count - 1].max) : void 0)\n                    }, n.prototype.delete_value_ = function(n) {\n                        var t, e;\n                        return t = this.children, e = this.indexOf_(n), -1 !== e && (t.splice(e, 1), this.count -= 1, this.dec_total_(), 0 === this.count ? this.clean_node_() : (0 === e && this.set_min_(t[0]), e === this.count && this.set_max_(t[this.count - 1]))), this\n                    }, n.prototype.rebuild_ = function() {\n                        var n, t, u;\n                        if (!(this.count < r)) return null != this.parent ? (t = this.slice_(e, r - 1), t.parent = this.parent, this.count = e, this.total = this.total - t.total, this.children.splice(e, e), this.max = this.type === i ? this.children[e - 1] : this.children[e - 1].max, this.parent.insert_node_(this.min, t), this.type === i && (this.next && (this.next.prev = t), t.next = this.next, this.next = t)) : (n = this.slice_(0, e - 1), u = this.slice_(e, r - 1), n.parent = this, u.parent = this, n.next = u, u.prev = n, this.count = 2, this.children = [n, u], this.type = o), this\n                    }, n.prototype.slice_ = function(t, e) {\n                        var r, o, u, l, a, s, c, f;\n                        if (u = e - t + 1, l = new n(this.options), l.count = u, l.type = this.type, o = this.children, this.type === i) l.min = o[t], l.max = o[e], l.children = o.slice(t, +e + 1 || 9e9), l.total = u;\n                        else {\n                            for (l.min = o[t].min, l.max = o[e].max, l.children = o.slice(t, +e + 1 || 9e9), a = 0, f = l.children, s = 0, c = f.length; c > s; s++) r = f[s], r.parent = l, a += r.total;\n                            l.total = a\n                        }\n                        return l\n                    }, n.prototype.atom = function() {\n                        var n;\n                        for (n = this; n.type === o;) n = n.children[0];\n                        return n\n                    }, n.prototype.indexOf_ = function(n) {\n                        var t, e, r, o, i, u;\n                        for (u = this.children, t = o = 0, i = u.length; i > o; t = ++o) {\n                            if (r = u[t], e = this.compare(r, n), 0 === e) return t;\n                            if (e > 0) return -1\n                        }\n                        return -1\n                    }, n.prototype.insert = function(n) {\n                        var t;\n                        return t = this.find_node_(n), t.insert_value_(n), this\n                    }, n.prototype[\"delete\"] = function(n) {\n                        var t;\n                        return t = this.find_node_(n), t.delete_value_(n)\n                    }, n.prototype.replace = function(n) {\n                        return this[\"delete\"](n), this.insert(n)\n                    }, n.prototype.get = function(n) {\n                        var t, e, r;\n                        return 0 > n && (n += this.size()), r = this.get_node_(n), t = r[0], e = r[1], t ? t.children[e] : null\n                    }, n.prototype.at = function(n) {\n                        var t, e, r;\n                        return 0 > n && (n += this.size()), r = this.get_node_(n), t = r[0], e = r[1], t ? t.children[e] : null\n                    }, n.prototype.find = function(n) {\n                        return this.find_all(n)[0]\n                    }, n.prototype.find_all = function(n) {\n                        var t, e, r, o, i, u, l;\n                        if (o = [], t = this.find_node_(n), this.compare(n, t.min) < 0) return [];\n                        if (this.compare(n, t.max) > 0) return [];\n                        for (l = t.children, i = 0, u = l.length; u > i; i++)\n                            if (r = l[i], e = this.compare(r, n), 0 === e) o.push(r);\n                            else if (e > 0) break;\n                        return o\n                    }, n.prototype.slice = function(n, t) {\n                        var e, r, o, i, u;\n                        if (null == t && (t = this.total - 1), 0 > n && (n += this.total), 0 > t && (t += this.total), 0 > n && (n = 0), t >= this.total && (t = this.total - 1), u = this.get_node_(n), r = u[0], i = u[1], !r) return [];\n                        for (o = t - n + 1, e = []; o && r;) i < r.count ? (e.push(r.children[i++]), --o) : (r = r.next, i = 0);\n                        return e\n                    }, n.prototype.flatten = function() {\n                        var n, t, e, r, o, i;\n                        for (r = [], o = this.atom(); o;) {\n                            for (t = o.count, n = o.children, e = i = 0; t >= 0 ? t > i : i > t; e = t >= 0 ? ++i : --i) r.push(n[e]);\n                            o = o.next\n                        }\n                        return r\n                    }, n.prototype.dump = function(n) {\n                        var e, r, o, u, l, a, s;\n                        for (null == n && (n = 0), o = process.stdout, e = u = 0, s = this.count; s >= 0 ? s > u : u > s; e = s >= 0 ? ++u : --u)\n                            if (this.type === i) {\n                                for (r = l = 0; n >= 0 ? n > l : l > n; r = n >= 0 ? ++l : --l) o.write(t.Iz);\n                                o.write(this.children[e] + t.Iz)\n                            } else this.children[e].dump(n + 1);\n                        for (r = a = 0; n >= 0 ? n > a : a > n; r = n >= 0 ? ++a : --a) o.write(t.Iz);\n                        return o.write(t.AG + this.min + t.hQ + this.max + t.Dr + this.count + t.Hj + this.total + t.ou), this\n                    }, n.prototype.delete_if = function() {}, n.prototype.size = function() {\n                        return this.total\n                    }, n\n                }(),\n                dt = n,\n                null != Xr && (dt = dt),\n                typeof module !== t.bQ && null !== module ? module.exports = dt : void 0\n            }(), dr = pr = vr = or = ir = ur = lr = xr = yr = ar = sr = cr = hr = mr = fr = gr = Fr = br = null, g = null, tr = Fe = $r = null,\n            // time-related functions\n            function() {\n                function n(n) {\n                    var e;\n                    return e = Fe[\"getHours\"](n)\n                }\n\n                function e(n) {\n                    var e;\n                    return e = Fe[\"getMinutes\"](n), \"\" + e + t.oH\n                }\n\n                function r(n) {\n                    return x[Fe[\"getMonth\"](n)]\n                }\n\n                function o(n) {\n                    var r = Fe[\"getMonth\"](n);\n                    var e = Fe[\"getDate\"](n);\n\n                    return \"\" + x[r] + t.Iz + e;\n                }\n\n                function i(n, e) {\n                    if (e == null) {\n                        e = false;\n                    }\n\n                    if (e) {\n                        return Fe[\"getHours\"](n) + t.TC + tr(Fe[\"getMinutes\"](n));\n                    } else {\n                        return Fe[\"getHours\"](n) + t.TC + Fe[\"getMinutes\"](n);\n                    }\n                }\n\n                function u(n) {\n                    return tr(Fe[\"getHours\"](n)) + t.TC + tr(Fe[\"getMinutes\"](n)) + t.TC + tr(Fe[\"getSeconds\"](n));\n                }\n\n                function l(n) {\n                    var e = Fe[\"getFullYear\"](n);\n                    var u = tr(Fe[\"getMonth\"](n) + 1);\n                    var r = tr(Fe[\"getDate\"](n));\n                    var o = tr(Fe[\"getHours\"](n));\n                    var i = tr(Fe[\"getMinutes\"](n));\n\n                    return \"\" + e + t.br + u + t.br + r + t.Iz + o + t.TC + i;\n                }\n\n                function a(n) {\n                    return y[Fe[\"getDay\"](n)]\n                }\n\n                function s(n, e) {\n                    var r, o, i, u, a, s;\n\n                    if (e >= 86400) {\n                        r = Fe[\"getFullYear\"](n);\n\n                        a = tr(Fe[\"getMonth\"](n) + 1);\n                        o = tr(Fe[\"getDate\"](n));\n\n                        tr(Fe[\"getHours\"](n));\n                        tr(Fe[\"getMinutes\"](n));\n\n                        s = y[Fe[\"getDay\"](n)];\n\n                        return \"\" + r + t.br + a + t.br + o + t.EU + s + t.ih;\n                    } else {\n                        return l(n);\n                    }\n                }\n\n                function c(n) {\n                    var r = Fe[\"getFullYear\"](n);\n                    var l = Fe[\"getMonth\"](n) + 1;\n                    var o = Fe[\"getDate\"](n);\n\n                    var i = tr(Fe[\"getHours\"](n));\n                    var u = tr(Fe[\"getMinutes\"](n));\n                    var a = tr(Fe[\"getSeconds\"](n));\n\n                    var s = y[Fe[\"getDay\"](n)];\n                    var e = x[Fe[\"getMonth\"](n)];\n\n                    return \"\" + s + t.EU + o + t.Iz + e + t.Iz + i + t.TC + u + t.TC + a;\n                }\n\n                function f(n) {\n                    var e, r, o, u, s;\n\n                    var i = [\n                        [86400, 86400, \"day\"],\n                        [3600, 3600, \"hour\"],\n                        [60, 60, \"minute\"],\n                        [0, 1, \"second\"]\n                    ];\n\n                    var l = 0;\n\n                    for (var a = i.length; a > l; l++) {\n                        s = i[l];\n\n                        e = s[0];\n                        r = s[1];\n                        o = s[2];\n\n                        if (n >= e) {\n                            u = parseFloat((n / r).toFixed(1));\n                            if (u > 1) {\n                                return u + t.Iz + o + t.Tp;\n                            } else {\n                                return u + t.Iz + o + t.To;\n                            }\n                        }\n                    }\n\n                    return null;\n                }\n\n                function h(n) {\n                    var e, r, o, i, u, l, a, s;\n                    for (i = [\n                        [86400, 86400, t.Tn],\n                        [3600, 3600, t.Tm],\n                        [60, 60, t.Zq],\n                        [0, 1, t.No]\n                    ], l = 0, a = i.length; a > l; l++)\n                        if (s = i[l], e = s[0], r = s[1], o = s[2], n >= e) return u = parseFloat((n / r).toFixed(1)), u > 1 ? u + \"\" + o + t.To : u + \"\" + o + t.To;\n                    return null\n                }\n\n                function d(n) {\n                    var e, r, o, i, u, l, a, s;\n                    for (i = [\n                        [86400, 86400, t.Tn],\n                        [3600, 3600, t.Tm],\n                        [60, 60, t.Zq],\n                        [0, 1, t.No]\n                    ], l = 0, a = i.length; a > l; l++)\n                        if (s = i[l], e = s[0], r = s[1], o = s[2], Math.abs(n) >= e) return u = (n / r).toFixed(1), u + o;\n                    return null\n                }\n\n                function p(n, e) {\n                    var r, o, i, u, l, a, s, c;\n                    if (null == e && (e = !0), 1000 > n) return parseFloat(n.toPrecision(3));\n                    if (1e7 > n) return parseInt(n);\n                    for (window.$is_zh ? (l = [\n                        [1e8, t.jx, t.nH],\n                        [10000, t.Th, t.Tg],\n                        [1, \"\", \"\"]\n                    ], i = 4) : (l = [\n                        [1e9, t.Tf, t.Te],\n                        [1e6, t.Td, t.nH],\n                        [1000, t.Fg, t.Tg],\n                        [1, \"\", \"\"]\n                    ], i = 3), a = 0, s = l.length; s > a; a++)\n                        if (c = l[a], o = c[0], u = c[1], r = c[2], n >= o) {\n                            n /= o;\n                            break\n                        } return n = n.toPrecision(i), e && (n = parseFloat(n)), n + u\n                }\n\n                function v(n) {\n                    return n > 10000 || !n ? parseInt(n) : parseFloat(n.toPrecision(4))\n                }\n\n                function b(n) {\n                    return n >= 0 ? t.iM + (100 * n).toFixed(2) + t.Ta : (100 * n).toFixed(2) + t.Ta\n                }\n\n                function m(n) {\n                    return n = parseFloat(n.toPrecision(12)), n >= 0 ? t.iM + n : n\n                }\n\n                function F(n) {\n                    return parseFloat(n.toPrecision(4)).toFixed(12).replace(/(\\..*?)[0]*$/g, t.cY)\n                }\n\n                var x, y, $, w, T, V, k;\n\n                x = \"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \");\n                y = \"Sun Mon Tue Wed Thu Fri Sat\".split(\" \");\n\n                Fe = {};\n                k = [\n                    'getDate',\n                    'getYear',\n                    'getFullYear',\n                    'getMonth',\n                    'getDay',\n                    'getHours',\n                    'getMinutes',\n                    'getSeconds'\n                ];\n\n                w = function(n) {\n                    var e = n.replace(\"get\", \"getUTC\");\n\n                    return (Fe[n] = function(t) {\n                        if ($r()) {\n                            return t[e]();\n                        } else {\n                            return t[n]();\n                        }\n                    });\n                };\n\n                T = 0;\n\n                for (V = k.length; V > T; T++) {\n                    $ = k[T];\n                    w($);\n                }\n\n                return Fe[\"getTimezoneOffset\"] = function(n) {\n                    return $r() ? 0 : n.getTimezoneOffset()\n                }, tr = function(n) {\n                    return n = n.toString(), 1 === n.length ? \"0\" + n : n\n                }, $r = function() {\n                    return (typeof $conf !== t.bQ && null !== $conf ? $conf[\"time_zone\"] : void 0) === \"utc\"\n                }, dr = n, pr = e, vr = r, or = o, ir = l, ur = s, lr = c, xr = i, yr = u, ar = f, sr = h, cr = d, hr = a, mr = p, fr = v, gr = b, Fr = m, br = F, g = y, tr = tr, Fe = Fe, $r = $r\n            }(), _r = Ir = Sr = Mr = null,\n            // min / max value of series\n            function() {\n                function n(t, e) {\n                    var r;\n\n                    if (t[0] && t[0].length) {\n                        t = (function() {\n                            var u = [];\n                            var o = 0;\n\n                            for (var i = t.length; i > o; o++) {\n                                r = t[o];\n\n                                u.push(n(r, e));\n                            }\n\n                            return u;\n                        })();\n\n                        return n(t, e);\n                    } else {\n                        return e.apply(null, t);\n                    }\n                }\n\n                function t(t) {\n                    return n(t, Math.max);\n                }\n\n                function e(t) {\n                    return n(t, Math.min);\n                }\n\n                function r(n) {\n                    var e;\n\n                    var r = (function() {\n                        var i = [];\n                        var t = 0;\n\n                        for (o = n.length; o > t; t++) {\n                            r = n[t];\n\n                            i.push(\n                                (function() {\n                                    var o = [];\n                                    var n = 0;\n\n                                    for (var t = r.length; t > n; n++) {\n                                        e = r[n];\n                                        o.push(Math.abs(e));\n                                    }\n\n                                    return o;\n                                })()\n                            );\n                        }\n\n                        return i;\n                    })();\n\n                    return t(r);\n                }\n\n                return _r = Ir = Sr = null, _r = t, Ir = e, Sr = r, Mr = n\n            }(), w = _ = Z = null, J = S = _ = X = T = M = I = H = V = k = x = y = P = null, Er = Hr = Br = Nr = Rr = Pr = Or = null, nr = xe = null,\n            // handling trades\n            function() {\n                // returns the main candles object\n                function n() {\n                    var t = {};\n                    var n = zt(d);\n\n                    t[c] = n;\n                    t[$] = 0;\n\n                    // $ is step, in seconds\n\n                    return t;\n                }\n\n                function t(n, t) {\n                    var l;\n\n                    var u = {};\n                    var i = n[c][r][b];\n                    var o = (l = i != null ? i[i.length - 1] : void 0) != null ? l : 0;\n\n                    if (o >= t.tid) {\n                        return;\n                    } else {\n                        u[ft] = t.tid;\n                        u[ct] = t.date;\n                        u[st] = t.price;\n                        u[lt] = t.amount;\n                        u[ht] = t.trade_type;\n                        return e(n, u);\n                    }\n                }\n\n                /* here real-time trades are rounded */\n                function e(n, t) {\n                    var r;\n                    var o;\n                    var x;\n\n                    var e = n[c];\n\n                    while(qt(e) > 3600) {\n                        te(e);\n                    }\n\n                    t = ue(t);\n\n                    if (n[$] === 604800) {\n                        r = t[ct];\n                        x = r + 259200 - ((r + 259200) % n[$]) - 259200;\n                        t[ct] = x;\n                    } else if (n[$] === 259200) {\n                        t[ct] = round3dTime(t[ct]);\n                    } else {\n                        t[ct] = t[ct] - (t[ct] % n[$]);\n                    }\n\n                    var k = u(n, t[ct]);\n\n                    // some boolean\n                    var i = k[0];\n                    // l is candles array size?\n                    var l = k[1];\n\n                    // updating candle is DONE HERE\n                    if (i) {\n                        m = Dt(e, l, d);\n\n                        // m[p] = m[1] is candle's first trade id?\n                        // m[b] = m[2] is candle's  last trade id?\n                        // m[v] = m[5] is candle's  low price?\n                        // m[g] = m[6] is candle's high price?\n                        // m[f]        is candle's close price\n\n                        // t[ft] is trade id\n                        // t[st] is trade price\n                        // t[ht] is trade side\n                        // t[lt] is trade volume\n\n                        if(m[R]) {\n                            // if candle has newer trade id?\n                            if(m[p] > t[ft]) {\n                                m[F] = t[st];\n                                m[p] = t[ft];\n                            }\n\n                            // if candles's last id is lower?\n                            if(m[b] < t[ft]) {\n                                m[f] = t[st];\n                                m[b] = t[ft];\n                            }\n\n                            if(m[v] < t[st]) {\n                                m[v] = t[st];\n                            }\n\n                            if(m[g] > t[st]) {\n                                m[g] = t[st];\n                            }\n                        } else {\n                        //    console.log('before', m);\n\n                            m[p] = t[ft];\n                            m[b] = t[ft];\n\n                            m[F] = t[st];\n                            m[f] = t[st];\n                            m[v] = t[st];\n                            m[g] = t[st];\n\n                        //    console.log('after', m);\n                        }\n\n                        m[R] += t[lt];\n\n                        // update data for ask / bid ratio\n                        switch (t[ht]) {\n                            case 'ask':\n                                m[a] += t[lt];\n                                break;\n                            case 'bid':\n                                m[s] += t[lt];\n                        }\n\n                        m[O] += t[lt] * t[st];\n\n                        return oe(e, l, m);\n                    }\n\n                    // generate empty candle\n\n                    var m = {};\n                    m[B] = t[ct];\n\n                    var S = [p, b];\n                    var y = 0;\n\n                    for (var T = S.length; T > y; y++) {\n                        o = S[y];\n                        m[o] = t[ft];\n                    }\n\n                    var M = [F, f, v, g];\n                    var w = 0;\n\n                    for (var V = M.length; V > w; w++) {\n                        o = M[w];\n                        m[o] = t[st];\n                    }\n\n                    m[R] = t[lt];\n                    m[h] = new Date(1000 * m[B]);\n                    m[s] = 0;\n                    m[a] = 0;\n\n                    switch (t[ht]) {\n                        case 'ask':\n                            m[a] = t[lt];\n                            break;\n\n                        case 'bid':\n                            m[s] = t[lt];\n                            break;\n                    }\n\n                    m[O] = t[st] * t[lt];\n\n                //    console.log('generating empty candle', m);\n\n                    return Gt(e, l, m);\n                }\n\n                function o(t, e) {\n                    var o, l, a, s, d, x, y, w, T;\n\n                    var i = n();\n                    var r = i[c];\n                    var u = (a = 0);\n\n                    for (var m = e.length; m > a; u = ++a) {\n                        l = e[u];\n                        l = ue(l);\n                        l[B] = parseInt(l[B]);\n\n                        w = [F, f, v, g];\n                        s = 0;\n\n                        for (x = w.length; x > s; s++) {\n                            o = w[s];\n                            l[o] = parseFloat(l[o]);\n                        }\n\n                        T = [B, p, b];\n                        d = 0;\n\n                        for (y = T.length; y > d; d++) {\n                            o = T[d];\n                            l[o] = parseInt(l[o]);\n                        }\n\n                        l[R] = parseFloat(l[R]);\n                        l[h] = new Date(1000 * l[B]);\n\n                    //    console.log('o', l[B]);\n\n                        Gt(r, u, l);\n                    }\n\n                    i[$] = parseInt(t);\n\n                    return i;\n                }\n\n                function i(n) {\n                    var e = {};\n                    var t = zt();\n\n                    t[r] = n[c][r].slice(0, d.length);\n                    e[c] = t;\n                    e[$] = n[$];\n\n                    return e;\n                }\n\n                function u(n, t) {\n                    var o;\n                    var e = n[c];\n\n                    if (!(o = Yt(e, B))) {\n                        return [false, 0];\n                    }\n\n                    var r = o.length;\n\n                    for (; r--; ) {\n                        if (!(o[r] > t)) {\n                            if (o[r] < t) {\n                                break;\n                            }\n\n                            return [true, r];\n                        }\n                    }\n                    return [false, r + 1];\n                }\n\n                // generate and handle a trade\n                // containing data about the last candle's price and id\n                function l(n) {\n                    var ncLength = qt(n[c]);\n\n                    // get last candle with params d\n                    var t = Dt(n[c], ncLength - 1, d);\n\n                    // init new trade\n                    var r = {};\n\n                    var candleTime = t[B];\n\n                    var now = parseInt(Date.now() / 1000);\n\n                    // do not add zero-trade to already existing candle\n                    if(candleTime > now) {\n                        return;\n                    }\n\n                    // trade time\n                    r[ct] = now;\n\n                    // trade id\n                    r[ft] = t[b];\n\n                    // trade price\n                    r[st] = t[f];\n\n                    // volume\n                    r[lt] = 0;\n\n                    // handle trade\n                    return e(n, r);\n                }\n\n                var a, s, c, f, h, d, p, v, b, g, F, $, B, O, R, E, N;\n\n                return E = m(3),\n                    c = E[0], b = E[1], $ = E[2],\n                    w = c, _ = b, Z = $,\n                    N = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n                    B = N[0], p = N[1], b = N[2], F = N[3], f = N[4], v = N[5], g = N[6], R = N[7], a = N[8], s = N[9], O = N[10], h = N[11],\n                    d = N,\n                    J = B,\n                    S = p,\n                    _ = b,\n                    X = F,\n                    T = f,\n                    M = v,\n                    I = g,\n                    H = R,\n                    V = h,\n                    k = d,\n                    x = a,\n                    y = s,\n                    P = O,\n                    xe = function(n, t) /* here empty candles are generated (maybe) */ {\n                        if (t === 604800) {\n                            return n + 259200 - ((n + 259200) % t) - 259200;\n                        } else if (t === 259200) {\n                            return round3dTime(n);\n                        } else {\n                            return n - (n % t);\n                        }\n                    },\n                    nr = function(n, t) {\n                        var e, r, o, i, u, l, a, s;\n                        for (u = [], i = xe(parseInt(Date.now() / 1000), t) - 900 * t, o = xe(parseInt(Date.now() / 1000), t), a = 0, s = n.length; s > a; a++)\n                            if (e = n[a], !(e[J] < i)) {\n                                for (; r && e[J] - r[J] > t;) l = [], l[J] = r[J] + t, l[S] = r[_], l[_] = r[_], l[X] = r[T], l[M] = r[T], l[I] = r[T], l[T] = r[T], l[x] = 0, l[y] = 0, l[H] = 0, l[P] = 0, l[V] = l[J], u.push(l), r = l;\n                                u.push(e), r = e\n                            } for (e && e[J] < i && (e[J] = i); e && e[J] < o;) l = [], l[J] = e[J] + t, l[S] = e[_], l[_] = e[_], l[X] = e[T], l[M] = e[T], l[I] = e[T], l[T] = e[T], l[x] = 0, l[y] = 0, l[H] = 0, l[P] = 0, l[V] = l[J], u.push(l), e = l;\n                        return u\n                    },\n                    Er = n,\n                    Hr = e,\n                    Br = o,\n                    Nr = i,\n                    Rr = u,\n                    Pr = t,\n                    Or = l,\n                    nr = nr,\n                    xe = xe\n            }(), ft = st = lt = ct = at = ht = null, jr = zr = null,\n            // trade object\n            function() {\n                function n(n) {\n                    var t = {};\n\n                    t[u] = parseInt(n.tid);\n                    t[o] = parseFloat(n.price);\n                    t[e] = parseFloat(n.amount);\n                    t[i] = parseInt(n.date);\n                    t[r] = Date.now();\n                    t[l] = n.trade_type;\n\n                    return t;\n                }\n\n                function t(n) {\n                    var t = {};\n\n                    t[u] = parseInt(n.tid);\n                    t[o] = parseFloat(n.price);\n                    t[e] = parseFloat(n.amount);\n                    t[i] = parseInt(n.date);\n                    t[r] = Date.now();\n                    t[l] = n.trade_type;\n\n                    return t;\n                }\n\n                var a = m(7);\n\n                var u = a[0];\n                var o = a[1];\n                var e = a[2];\n                var i = a[3];\n                var r = a[4];\n                var l = a[5];\n\n                ft = u;\n                st = o;\n                lt = e;\n                ct = i;\n                at = r;\n                ht = l;\n\n                jr = n;\n                zr = t;\n\n                return t;\n            }(),\n            lo = no = to = qr = ro = oo = eo = io = Gr = uo = null, mt = Ft = $t = wt = xt = yt = gt = vt = bt = null,\n            function() {\n                function n(n, t, e) {\n                    var r = {};\n\n                    if(e == null) {\n                        e = !1;\n                    }\n\n                    r[p] = ue(n);\n                    r[v] = ue(t);\n                    r[f] = e ? g : b;\n                    r[h] = 0;\n                    r[wt] = null;\n\n                    return r;\n                }\n\n                // probably gets candle using event\n                function t(n) {\n                    var t = {};\n\n                    t[p] = ue(n[p]);\n                    t[v] = ue(n[v]);\n                    t[f] = n[f];\n                    t[h] = n[h];\n                    t[wt] = n[wt]\n\n                    return t;\n                }\n\n                function e(n, t) {\n                    var e = n[p];\n                    var r = n[v];\n\n                    return (t - r.x) / r.w * e.w + e.x\n                }\n\n                function r(n, t) {\n                    var o, i, u, l;\n\n                    var e = n[p];\n                    var r = n[v];\n\n                    if (n[f] === g) {\n                        l = r.y;\n                        u = r.y + r.h;\n\n                        i = 0;\n\n                        o = Math.log(u / l);\n                        t = Math.log(t / l);\n\n                        return ((t - i) / o) * e.h + e.y;\n                    } else {\n                        return ((t - r.y) / r.h) * e.h + e.y;\n                    }\n                }\n\n                function o(n, t, o) {\n                    return [e(n, t), r(n, o)]\n                }\n\n                function i(n, t) {\n                    return Math.round(e(n, t))\n                }\n\n                function u(n, t) {\n                    return Math.round(r(n, t))\n                }\n\n                function l(n, t, e) {\n                    return [i(n, t), u(n, e)]\n                }\n\n                function a(n, t) {\n                    return Math.round(e(n, t)) + .5\n                }\n\n                function s(n, t) {\n                    return Math.round(r(n, t)) + .5\n                }\n\n                function c(n, t, e) {\n                    return [a(n, t), s(n, e)]\n                }\n\n                var $ = m(8);\n                var p = $[0];\n                var v = $[1];\n                var F = $[2];\n                var x = $[3];\n                var f = $[4];\n                var h = $[5];\n\n                var w = m(3);\n                var b = w[0];\n                var g = w[1];\n                var d = w[2];\n\n                lo = n;\n                no = a;\n                to = s;\n                qr = c;\n                ro = i;\n                oo = u;\n                eo = l;\n                io = o;\n                Gr = t;\n                uo = r;\n\n                mt = p;\n                Ft = v;\n                $t = F;\n                wt = x;\n                xt = b;\n                yt = g;\n                gt = d;\n                vt = f;\n\n                return (bt = h);\n            }(),\n            // themes\n            function() {\n                window.$theme_dark = {\n                    Background: t.XS,\n                    'Background Mask': t.ju,\n                    'Main Text': t.SX,\n                    'Minor Text': t.jF,\n                    'Highlight Text': t.YG,\n                    Border: t.jF,\n                    Link: t.aC,\n                    'Activated Link': t.Dp,\n                    'Green Stroke': t.SS,\n                    'Green Fill': t.ku,\n                    'Red Stroke': t.SQ,\n                    'Red Fill': t.Sw,\n                    'Axis Background': t.ju,\n                    'Axis Key Text': t.SO,\n                    'Axis Text': t.UH,\n                    'Green Arrow': t.RF,\n                    'Red Arrow': t.SL,\n                    'Arrow Text': t.bO,\n                    Cross: t.SK,\n                    'Stick Line': t.QR,\n                    Colors: [t.Ns, t.SH, t.ow, t.pj, t.gb, t.zK],\n                    ShapeColors: [t.hK, t.Zi, t.Zh, t.vU, t.Zf, t.Ze, t.Zd, t.mq],\n                    'Green Area': t.SC,\n                    'Red Area': t.qI,\n                    'Minor Arrow': t.SA,\n                    Shape: t.hK,\n                    ShapeHint: t.Sz,\n                    AxisCursorBg: t.DB,\n                    AxisCursorFg: t.hK,\n                    'Alarm Line': t.uI,\n                    'Green Alarm': t.Dk,\n                    'Red Alarm': t.Sv,\n                    OHLC: '#6CC'\n                };\n\n                window.$theme_light = {\n                    Background: t.SO,\n                    'Background Mask': t.Su,\n                    'Main Text': t.jF,\n                    'Minor Text': t.SX,\n                    'Highlight Text': t.Iu,\n                    Border: t.SX,\n                    Link: t.FM,\n                    'Activated Link': t.Hp,\n                    'Green Stroke': t.Yd,\n                    'Green Fill': t.Yd,\n                    'Red Stroke': t.Ux,\n                    'Red Fill': t.Ux,\n                    'Axis Background': t.Su,\n                    'Axis Key Text': t.jF,\n                    'Axis Text': t.Nm,\n                    'Green Arrow': t.ZH,\n                    'Red Arrow': t.Sm,\n                    'Arrow Text': t.Iu,\n                    Cross: t.Sl,\n                    'Stick Line': t.OC,\n                    Colors: [t.SB, t.US, t.ow, t.pj, t.gb, t.zK],\n                    ShapeColors: [t.qo, t.kF, t.cg, t.JQ, t.JU, t.YN, t.ks],\n                    'Green Area': t.PB,\n                    'Red Area': t.Sg,\n                    'Minor Arrow': t.Sf,\n                    Shape: t.qo,\n                    ShapeHint: t.fC,\n                    AxisCursorBg: t.sC,\n                    AxisCursorFg: t.hK,\n                    'Alarm Line': t.hM,\n                    'Green Alarm': t.ZH,\n                    'Red Alarm': t.Sm,\n                    OHLC: '#399'\n                };\n\n                window.$theme_dark2 = JSON.parse(JSON.stringify($theme_dark));\n            }(),\n            q = ot = j = D = it = Y = A = U = E = tt = G = C = N = ut = O = et = nt = rt = K = z = B = W = Q = L = R = null, Ar = Ur = Yr = Wr = Cr = Qr = null,\n            // draw shapes related closure\n            function() {\n                // something candle related\n                function n(n, t, e) {\n                    if (t == null) {\n                        t = [];\n                    }\n\n                    if (e == null) {\n                        e = Z;\n                    }\n\n                    var r = {};\n\n                    r[ht] = n;\n                    r[lt] = t;\n                    r[g] = e;\n                    r[st] = H;\n                    r[at] = false;\n\n                    if (n === X) {\n                        r[at] = true;\n                    }\n\n                    return r;\n                }\n                function e(n, e, r, o, i, u) {\n                    e.textAlign = t.uO;\n                    e.textBaseline = 'bottom';\n                    e.font = t.nr;\n\n                    var l = e.measureText(u).width;\n\n                    e.fillStyle = n[ft][t.Za];\n                    e.fillRect(r.x, i - 1 - 4 - 10, l + 8, 14);\n                    e.fillStyle = n[ft][t.FL];\n\n                    return e.fillText(u, r.x + 4, i - 1 - 2);\n                }\n\n                function r() {}\n\n\n                /**\n                 * draw line function\n                 *\n                 * @param params line params\n                 * @param canvas canvas context\n                 * @param evt some object with coordinates and canvas size\n                 * @param timestamps visible timestamps\n                 * @returns {f}\n                 */\n                function o(params, canvas, evt, timestamps) {\n                    var i, u, l, a, s, c, f, h, d, p, v, b, m, x, y, $, w, T, V, k, S, M, _;\n\n                    w = params[lt];\n\n                    T = w[0]; // starting point [timestamp, price]\n                    V = w[1]; // ending point [timestamp, price]\n\n                    f = T[0];\n                    p = T[1];\n\n                    h = V[0];\n                    v = V[1];\n\n                    canvas.beginPath();\n\n                    i = evt[mt];\n\n                    b = i.y;\n                    m = i.y + i.h;\n\n                    if (h === f) {\n                        for (i = evt[mt], a = y = 0, k = params[F];\n                             (k >= 0 ? k >= y : y >= k) && (null != timestamps[a] ? c = timestamps[a] : c += params[ct], c !== f); a = k >= 0 ? ++y : --y);\n                        S = io(evt, a, p),\n                            u = S[0],\n                            l = S[1],\n                            f === h && p === v ?\n                                (canvas.moveTo(0, l), canvas.lineTo(i.w, l)) :\n                                (canvas.moveTo(u + params[pt] + .5, i.y), canvas.lineTo(u + params[pt] + .5, i.y + i.h))\n                    } else\n                        for (\n                            params[g] === J &&\n                            (p = Math.log(p), v = Math.log(v)),\n                                s = (v - p) / (h - f),\n                                c = 0,\n                                x = [],\n                                a = $ = 0,\n                                M = params[F];\n                            M >= 0 ? M >= $ : $ >= M; a = M >= 0 ? ++$ : --$)\n                            null != timestamps[a] ? c = timestamps[a] : c += params[ct], d = s * (c - f) + p,\n                            params[g] === J && (d = Math.exp(d)),\n                                _ = io(evt, a, d),\n                                //console.log(a, d, _),\n                                u = _[0],\n                                l = _[1],\n                                l > -10000 && l < 2 * i.y && l > m && b > l && canvas.lineTo(u + params[pt], l);\n\n                    return canvas.strokeStyle = params[ft][t.FL], canvas.stroke()\n                }\n\n                function i() {}\n\n                function u(n, r, o) {\n                    var f = n[lt][0];\n                    var a = f[0];\n                    var s = f[1];\n\n                    r.beginPath();\n\n                    var i = o[mt];\n                    var h = eo(o, a, s);\n                    var u = h[0];\n                    var l = h[1];\n\n                    Ee(r, l + 0.5, 0, i.w);\n                    r.strokeStyle = n[ft][t.RT];\n                    r.stroke();\n\n                    var c = \"\" + s.toPrecision(5);\n\n                    return e(n, r, i, u, l, c);\n                }\n\n\n                function l(n) {\n                    return function(e, r, o) {\n                        var i, u, l, a, s, c, f, h, d, p, v, b, g, m, F, x, y, $;\n                        for (x = e[lt], y = x[0], f = y[0], p = y[1], $ = x[1], h = $[0], v = $[1], i = o[mt], i = o[mt], b = i.y, g = i.y + i.h, a = m = 0, F = n.length; F > m; a = ++m) d = n[a], l = v - (v - p) * d, u = to(o, l), u > g && b > u && (r.beginPath(), r.moveTo(i.x, u), r.lineTo(i.x + i.w, u), r.strokeStyle = e[ft][t.RT], r.stroke(), r.textAlign = t.uO, r.textBaseline = \"bottom\", r.font = t.nr, s = \"\" + (100 * d).toFixed(1) + t.kf + l.toPrecision(5), c = r.measureText(s).width, r.fillStyle = e[ft][t.Za], r.fillRect(i.x, u - 1 - 4 - 10, c + 8, 14), r.fillStyle = e[ft][t.FL], r.fillText(s, i.x + 4, u - 1 - 2));\n                        return this\n                    }\n                }\n\n                function a() {}\n\n                function s() {}\n\n                function c() {}\n\n                function f(params, canvas, evt, timestamps) {\n                    var i, u, l, a, s, c, f, p, y, $, w, T, M, _, I, X, Z;\n\n                    var V = params[lt];\n\n                    var k = V[0];\n                    var S = V[1];\n\n                    var h = k[0];\n                    var v = k[1];\n\n                    var d = S[0];\n                    var b = S[1];\n\n                    i = evt[mt];\n\n                    var m = i.y;\n                    var x = i.y + i.h;\n\n                    if (d === h) {\n                        canvas.beginPath();\n\n                        i = evt[mt];\n                        s = y = 0;\n\n                        for (\n                            M = params[F];\n                            (M >= 0 ? M >= y : y >= M) &&\n                            (timestamps[s] != null ? (f = timestamps[s]) : (f += params[ct]),\n                            f !== h);\n                            s = M >= 0 ? ++y : --y\n                        ) {}\n\n                        _ = io(evt, s, v);\n\n                        u = _[0];\n                        l = _[1];\n\n                        canvas.moveTo(u + params[pt] + 0.5, l);\n\n                        if (b > v) {\n                            canvas.lineTo(u + params[pt] + 0.5, x);\n                        } else {\n                            canvas.lineTo(u + params[pt] + 0.5, m);\n                        }\n\n                        canvas.strokeStyle = params[ft][t.FL];\n                        canvas.stroke();\n                    } else {\n                        if (params[g] === J) {\n                            v = Math.log(v);\n                            b = Math.log(b);\n                        }\n\n                        f = 0;\n                        c = (b - v) / (d - h);\n                        I = [0.382, 0.5, 0.618, 1];\n                        a = $ = 0;\n\n                        for (T = I.length; T > $; a = ++$) {\n                            Jr = I[a];\n\n                            canvas.beginPath();\n\n                            s = w = 0;\n\n                            for (X = params[F]; X >= 0 ? X >= w : w >= X; s = X >= 0 ? ++w : --w) {\n                                if (timestamps[s] == null) {\n                                    f += params[ct];\n                                } else {\n                                    f = timestamps[s];\n                                }\n\n                                if ((!(d > h) || !(h > f)) && (!(h > d) || !(f > h))) {\n                                    p = Jr * c * (f - h) + v;\n\n                                    if (params[g] === J) {\n                                        p = Math.exp(p);\n                                    }\n\n                                    Z = io(evt, s, p);\n\n                                    u = Z[0];\n                                    l = Z[1];\n\n                                    if (l > -10000 && l < 2 * i.y && l > x && m > l) {\n                                        canvas.lineTo(u + params[pt], l);\n                                    }\n                                }\n                            }\n\n                            canvas.strokeStyle = params[ft][t.FL];\n                            canvas.stroke();\n                        }\n                    }\n                    return this;\n                }\n\n                function h(n, t, e, r) {\n                    // actually draw figure / shape on canvas\n\n                    // console.log(vt, n[ht], n[lt].length, vt[n[ht]][n[lt].length]);\n\n                    return vt[n[ht]][n[lt].length](n, t, e, r)\n                }\n\n                function d(n, t) {\n                    var e = n[lt];\n                    return e.push(t);\n                }\n\n                function p(n) {\n                    var e = n[lt];\n\n                    if (e.length === vt[n[ht]][t.Zq]) {\n                        n[st] = k;\n\n                        return true;\n                    } else {\n                        e.push(e[e.length - 1]);\n\n                        return false;\n                    }\n                }\n\n                function v(n, t) {\n                    var e = n[lt];\n\n                    if (e.length === 0) {\n                        e.push(t);\n                    } else {\n                        e.splice(-1, 1, t);\n                    }\n\n                    return n;\n                }\n\n                function b(n) {\n                    var t;\n\n                    var e = {};\n                    var i = [ht, lt, g];\n\n                    var r = 0;\n\n                    for (var o = i.length; o > r; r++) {\n                        t = i[r];\n\n                        e[t] = n[t];\n                    }\n\n                    return e;\n                }\n\n                var g, m, F, x, y, $, w, T, V, k, S, M, _, I, X, Z, J, P, H, lt, at, st, ct, ft, ht, dt, pt, vt, bt;\n                // [\"TYPE\", \"POINTS\", \"ORDER\", \"AXIS\", \"FORMULA\", \"STATUS\", \"XFIX\", \"BLOCK_LIMIT\", \"STEP\", \"SNAP\",\n                // \"THEME\", \"PARTIAL\", \"FINISHED\", \"LINEAR\", \"LOG\", \"BILOG\", \"LINE\", \"VLINE\", \"HLINE\", \"FVLINE\",\n                // \"FHLINE\", \"FARC\", \"FAN\", \"FHLINEEX\", \"FLINE\", \"FANC\", \"COLOR\"]\n\n                bt = t.YR.split(/[,\\s]+/);\n\n                ht = bt[0];\n                lt = bt[1];\n                P = bt[2];\n                g = bt[3];\n                M = bt[4];\n                st = bt[5];\n                pt = bt[6];\n                F = bt[7];\n                ct = bt[8];\n                at = bt[9];\n                ft = bt[10];\n                H = bt[11];\n                k = bt[12];\n                Z = bt[13];\n                J = bt[14];\n                m = bt[15];\n                X = bt[16];\n                dt = bt[17];\n                I = bt[18];\n                _ = bt[19];\n                T = bt[20];\n                y = bt[21];\n                $ = bt[22];\n                V = bt[23];\n                S = bt[24];\n                w = bt[25];\n                x = bt[26];\n\n                vt = {};\n\n                vt[X] = { 1: r, 2: o, m: 2 };\n\n                vt[S] = vt[X];\n\n                vt[dt] = { 1: i, m: 1 };\n                vt[I] = { 1: u, m: 1 };\n\n                vt[T] = {\n                    1: function() {},\n                    2: l([0, 0.236, 0.382, 0.5, 0.618, 0.786, 1]),\n                    m: 2\n                };\n\n                vt[V] = {\n                    1: function() {},\n                    2: l([0, 0.236, 0.382, 0.5, 0.618, 0.786, 1, 1.618, 2.618, 4.236]),\n                    m: 2\n                };\n\n                vt[_] = { 1: a, 2: s, m: 2 };\n                vt[$] = { 1: c, 2: f, m: 2 };\n\n                vt[w] = vt[$];\n\n                q = lt;\n                ot = ht;\n                j = P;\n                D = X;\n                it = dt;\n                Y = I;\n                A = _;\n                U = T;\n                E = y;\n                tt = st;\n                G = H;\n                C = k;\n                N = $;\n                ut = pt;\n                O = F;\n                et = ct;\n                nt = at;\n                rt = ft;\n                K = Z;\n                z = J;\n                B = g;\n                W = V;\n                Q = S;\n                L = w;\n                R = x;\n\n                Ar = n;\n                Ur = d;\n                Yr = v;\n                Wr = p;\n                Cr = h;\n                Qr = b;\n            }(),\n            function() {\n                var n, e = this;\n                $(function() {\n                    function r(n) {\n                        var o = n.outerWidth();\n                        var t = n.outerHeight();\n                        var r = ($(window).height() - t) / 3;\n                        var e = ($(window).width() - o) / 2;\n\n                        return n.css({ left: e, top: r });\n                    }\n\n                    function o(n) {\n                        var u, c;\n                        var r = c = 0;\n\n                        var o = n.match(/(\\d+)-(\\d+)-(\\d+) (\\d+):(\\d+):([\\d\\.]+)([\\+\\-]\\d+)/);\n\n                        for (var f = o.length; f > c; r = ++c) {\n                            u = o[r];\n                            o[r] = parseInt(u, 10);\n                        }\n\n                        var h = o;\n\n                        var s = h[0];\n                        var l = h[1];\n                        o = h[2];\n                        var t = h[3];\n                        var e = h[4];\n                        r = h[5];\n                        var i = h[6];\n                        var a = h[7];\n\n                        n = new Date(l, o - 1, t, e, r, i);\n                        n.setMinutes(n.getMinutes() - n.getTimezoneOffset() - 60 * a);\n\n                        return n;\n                    }\n\n                    function i(n, e, r) {\n                        var o = $.ajax({\n                            url: '/api/user/' + window.$user_id + '/' + n,\n                            type: 'POST',\n                            dataType: 'json',\n                            data: e\n                        });\n\n                        o.done(function(n) {\n                            if (n != null ? n.ok : void 0) {\n                                return r(n);\n                            } else if (n != null ? n.error : void 0) {\n                                return r(n);\n                            } else {\n                                return r({ error: 1, reason: 'Unknown error' });\n                            }\n                        });\n\n                        return o.fail(function(n, e, o) {\n                            if (e === \"error\") {\n                                e = \"\";\n                            }\n\n                            var i = o || e || \"request failed.\";\n                            return r({ error: 1, reason: i });\n                        });\n                    }\n\n                    // poor choice here, but to keep it simple\n                    // setting up a few vars to keep track of things.\n                    // at issue is these values need to be encapsulated\n                    // in some scope other than global.\n\n                    var lastPosX = 0;\n                    var lastPosY = 0;\n                    var isDragging = false;\n\n                    function handleDrag(ev) {\n                        // for convience, let's get a reference to our object\n                        var elem = $(ev.target).parents('.dialog')[0];\n\n                        // DRAG STARTED here,\n                        // let's snag the current position\n                        // and keep track of the fact that we're dragging\n                        if ( !isDragging ) {\n                            isDragging = true;\n\n                            lastPosX = elem.offsetLeft;\n                            lastPosY = elem.offsetTop;\n                        }\n\n                        // we simply need to determine where the x,y of this\n                        // object is relative to where it's \"last\" known position is\n                        // NOTE:\n                        //    deltaX and deltaY are cumulative\n                        // Thus we need to always calculate 'real x and y' relative\n                        // to the \"lastPosX/Y\"\n                        var posX = ev.deltaX + lastPosX;\n                        var posY = ev.deltaY + lastPosY;\n\n                        // move our element to that position\n                        elem.style.left = posX + \"px\";\n                        elem.style.top = posY + \"px\";\n\n                        // DRAG ENDED\n                        // this is where we simply forget we are dragging\n                        if (ev.isFinal) {\n                            isDragging = false;\n                        }\n                    }\n\n                    function s(n) {\n                        function e() {\n                            var n;\n                            var e = 0;\n\n                            for (var r = a.length; r > e; e++) {\n                                n = a[e];\n                                n.removeClass(\"selected\");\n                            }\n\n                            return i.hide();\n                        }\n\n                        var o, i, a, s, c, f, h, d;\n\n                        i = $(\"#dlg_\" + n.name)\n                        a = [];\n                        o = [];\n\n                        var eventWrapper = $(\".tablist\", i)[0];\n\n                        if(eventWrapper) {\n                            var mc = new Hammer(eventWrapper);\n\n                            mc.add(new Hammer.Pan({direction: Hammer.DIRECTION_ALL, threshold: 0}));\n                            mc.on(\"pan\", handleDrag);\n                        }\n\n                        d = n.tabs;\n\n                        c = function(n) {\n                            var u, l;\n\n                            a.push((l = $(\".link_\" + n)));\n                            o.push((u = $(\".content_\" + n, i)));\n\n                            return l.click(function() {\n                                var n;\n\n                                if (i.is(':visible') && u.is(':visible') && !$.contains(i[0], this)) {\n                                    e();\n\n                                    return false;\n                                }\n\n                                var s = 0;\n\n                                for (var f = o.length; f > s; s++) {\n                                    n = o[s];\n                                    n.hide();\n                                }\n\n                                var c = 0;\n\n                                for (var h = a.length; h > c; c++) {\n                                    n = a[c];\n                                    n.removeClass(\"selected\");\n                                }\n\n                                l.addClass(\"selected\");\n\n                                $(\".error\", u).hide();\n                                $(\".rt\", u).hide();\n                                $(\".ok\", u).hide();\n\n                                u.trigger(\"change\");\n\n                                u.show();\n                                i.show();\n\n                                if (!i.created) {\n                                    i.css(\"position\", \"absolute\");\n\n                                    r(i);\n\n                                    i.created = true;\n                                }\n\n                                $(\"input:visible:first\", u).focus();\n\n                                return false;\n                            });\n                        };\n\n\n                        for (f = 0, h = d.length; h > f; f++) {\n                            s = d[f];\n\n                            c(s);\n                        }\n\n                        $(\".close\", i).on(\"touchstart click\", function() {\n                            e();\n                        });\n\n                        $(window).on(\"resize\", function() {\n                            return r(i)\n                        });\n\n                        return i\n                    }\n\n                    return n = {},\n                    function() {\n                        var r;\n                        var n = { name: \"passport\", tabs: [t.RA, t.aH, t.Ry, t.sm] };\n                        var e = s(n);\n                        var a = [t.aH, t.RA];\n\n                        var o = function(n) {\n                            var r = $('.content_' + n, e);\n                            var o = $(t.an, r);\n                            $(t.Rv);\n                            var u = $('.error', r);\n                            return o.bind(t.Ru, function() {\n                                (function() {\n                                    var e;\n                                    var a;\n\n                                    u.fadeOut(t.Rt);\n\n                                    var l = o.serializeArray();\n\n                                    i(t.YL + n, l, function() {\n                                        a = arguments[0];\n                                        if (a.error) {\n                                            $('.error', r)\n                                                .text(a.reason)\n                                                .fadeIn(t.Rt);\n                                            return $(o[0][a.name]).focus();\n                                        } else {\n                                            e = n === t.aH ? t.Rs : t.Tl;\n                                            r.append(t.bJ + e + t.YJ);\n                                            o.hide();\n                                            return setTimeout(function() {\n                                                o.unbind(t.Ru);\n                                                o[0].action = window.location.href;\n                                                o[0].method = 'POST';\n                                                return o.submit();\n                                            }, 400);\n                                        }\n                                    });\n                                })();\n                                return false;\n                            });\n                        };\n\n                        var u = 0;\n\n                        for (var l = a.length; l > u; u++) {\n                            r = a[u];\n                            o(r);\n                        }\n\n                        return $(\"input[name=recover_password]\").click(function() {\n                            var n = $(t.DU);\n                            var e = $(t.an, n);\n                            return (function() {\n                                var r;\n                                i(t.Ro, e.serializeArray(), function() {\n                                    r = arguments[0];\n                                    if (r.error) {\n                                        $('.error', n)\n                                            .text(r.reason)\n                                            .fadeIn(t.Rt);\n                                        return $(e[0][r.name]).focus();\n                                    } else {\n                                        return $('.error', n)\n                                            .html('')\n                                            .append($(t.bJ).html(t.FC + r.email + t.ih))\n                                            .fadeIn(t.Rt);\n                                    }\n                                });\n                            })();\n                        });\n                    }(),\n                    function() {\n                        function n() {\n                            var n, e, r, u, a, s, c, f, h;\n                            i(t.oR, {}, function() {\n                                var i, d, p;\n                                if (c = arguments[0], !c.error) {\n                                    for (c.is_premium === t.Ra ? (r = ir(o(c.expires_on)), u = ((o(c.expires_on).getTime() - Date.now()) / 86400 / 1000).toFixed(0), f = u > 1 ? t.No : \"\", $(t.QZ, l).html(t.hX + r + t.mS + u + t.Yr + f + t.qL)) : $(t.QZ, l).html(t.Yp), n = $(t.QY, l), p = $(t.sZ), i = 0, d = p.length; d > i; i++) a = p[i], s = $(a), e = s.attr(t.sp), h = t.Yo + c.address + t.Yn + e + t.Ym, h = t.Yo + c.address + t.Bk, s.attr(t.eH, h);\n                                    return n.html(\"\" + c.address), $(\".qr\", l).attr(\"data\", $(t.sZ).attr(t.eH)), $(t.ef).val(c.display_name), $(t.BH).text(c.username)\n                                }\n                            })\n                        }\n\n                        function e(n, e, r) {\n                            return e.error ? n.attr(t.QQ, t.QP).text(e.reason).fadeIn(t.Rt) : n.attr(t.QQ, t.QO).text(r).hide().fadeIn(t.Rt)\n                        }\n\n                        function r(n, e) {\n                            var r;\n                            return r = 0,\n                                function(o) {\n                                    var i;\n                                    return r++, r >= n ? o() : (i = t.Yi, e.show().text(i), setTimeout(function() {\n                                        return r = 0, e.text() === i ? e.hide().text(\"\") : void 0\n                                    }, 2000))\n                                }\n                        }\n                        var u, l;\n                        return u = {\n                            name: t.Rn,\n                            tabs: [t.Rm, t.Ry, t.Av, t.Rk, t.co, t.FF]\n                        }, l = s(u), $(t.Md, l).change(function() {\n                            var n, e, r;\n                            e = $(this), e.html(t.vd), i(t.hR, {}, function() {\n                                var i, u, l, a, s, c, f, h, d;\n                                return r = arguments[0], r.error ? e.html(t.dV) : (n = function() {\n                                    var n, e, p, v, b, g, m;\n                                    for (b = r.orders, m = [], n = 0, p = b.length; p > n; n++) switch (f = b[n], a = f.info, i = ir(o(f.created_at)), u = ir(o(a.expires_on)), c = ir(o(a.old_expires_on)), a.type) {\n                                        case \"premium\":\n                                        case \"premium_direct\":\n                                            for (g = [t.QH, t.UV, t.OQ], e = 0, v = g.length; v > e; e++) l = g[e], s = a[l], s ? (d = s > 1 ? t.No : \"\", a[l + t.Rc] = s >= 10000 ? t.Iz + parseInt(s) + t.Iz + l.slice(0, -1) + d : t.Iz + parseFloat(s.toPrecision(4)) + t.Iz + l.slice(0, -1) + d) : a[l + t.Rc] = \"\";\n                                            h = \"\", a.remark && (h += t.hr + a.remark), a.tx_hash && (h += t.YE + a.tx_hash + t.Fi + a.tx_hash.slice(0, 25) + t.YC), m.push(t.AB + i + t.OJ + a.years_str + a.months_str + a.days_str + t.IP + c + t.pG + u + h + t.Yx);\n                                            break;\n                                        default:\n                                            m.push(void 0)\n                                    }\n                                    return m\n                                }(), n.length ? e.html(t.la + n.join(\"\") + t.RM) : e.html(t.rL))\n                            })\n                        }), $(t.UZ, l).change(n), n(),\n                            function() {\n                                var n, e;\n                                return n = $(t.QN, l), e = $(t.an, n), e.bind(t.Ru, function() {\n                                    var n = this;\n                                    return function() {\n                                        var e, r, o;\n                                        e = $(t.aU, n), e.fadeOut(t.Rt), r = $(n).serializeArray(), i(t.oE, r, function() {\n                                            return o = arguments[0], o.error ? e.attr(t.QQ, t.Wn).text(o.reason).fadeIn(t.Rt) : (e.attr(t.QQ, t.vy).text(t.Yk + o.mode_name + t.xt).fadeIn(t.Rt), $(t.QI).val(\"\")), (null != o ? o.mode_name : void 0) === t.ad ? $(t.cS).text(o.display_name) : void 0\n                                        })\n                                    }(), !1\n                                })\n                            }(),\n                            function() {\n                                var n, o, u, a, s, c;\n                                return n = $(t.cG, l), a = $(t.Gp, n).val(), u = $(t.PZ, n), o = $(\".rt\", n), s = 0, c = r(2, o), n.change(function() {\n                                    var n, r, l = this;\n                                    u.html(\"\"), o.text(\"Loading...\").show(), i(t.dE, {}, function() {\n                                        var s, c, f, h;\n                                        if (n = arguments[0], n.error) e(o, n, t.Gl);\n                                        else\n                                            for (o.text(\"\").fadeOut(), h = n.sessions, s = function(n) {\n                                                var r, l;\n                                                return r = a.replace(/\\[(.*)\\]/g, function(e, r) {\n                                                    var o;\n                                                    return o = n[r], n[r] || t.Yf\n                                                }), l = $(r), u.append(l), $(t.Ml, l).click(function() {\n                                                    var r;\n                                                    i(t.uB, {\n                                                        ip: n.logined_ip\n                                                    }, function() {\n                                                        return r = arguments[0], e(o, r, t.yz + n.logined_ip + t.fr), r.error ? void 0 : l.remove()\n                                                    })\n                                                })\n                                            }, c = 0, f = h.length; f > c; c++) r = h[c], s(r);\n                                        return l\n                                    })\n                                })\n                            }(), $(t.Pt).click(function() {\n                            var n, e;\n                            n = $(t.Hc), n.css(t.Qx, \"auto\"), i(t.WD, {}, function() {\n                                return e = arguments[0], e.error ? n.html($(t.Qv).text(e.reason).show()) : (n.html(t.Re), $.removeCookie(t.Ao, {\n                                    path: \"/\"\n                                }), window.location.href = window.location.href)\n                            })\n                        })\n                    }(),\n                    function() {\n                        var n = { name: 'assist', tabs: ['alarm'] };\n                        return s(n);\n                    }(),\n                    function() {\n                        var n = { name: 'estimate_trading', tabs: ['estimate_trading'] };\n                        return s(n);\n                    }(),\n                    function() {\n                        var n = { name: 'draw', tabs: ['draw'] };\n                        return s(n);\n                    }(),\n                    function() {\n                        var n = { name: 'warning', tabs: ['warning'] };\n                        return s(n);\n                    }(),\n                    function() {\n                        var n = { name: 'alarm', tabs: ['alarm'] };\n                        return s(n);\n                    }(),\n                    function() {\n                        var n = { name: 'aggregated_heatmap_widget', tabs: ['aggregated_heatmap_widget'] };\n                        return s(n);\n                    }(),\n                    $(\".qr\").hover(\n                        function() {\n                            var r = $(\"#qr\");\n                            var i = $(this).offset();\n                            var e = i.left;\n                            var o = i.top;\n\n                            var n = $(this).attr(\"data\");\n\n                            $(\"img\", r)\n                                .hide()\n                                .attr(t.EC, t.Yb + encodeURIComponent(n) + t.kV)\n                                .load(function() {\n                                    var t = $(this);\n\n                                    var i = t.width();\n                                    var n = t.height();\n\n                                    r.css({ left: e - i - 24, top: o - n / 2 });\n\n                                    return t.show();\n                                });\n                            return r.show();\n                        },\n                        function() {\n                            return $(\"#qr\").hide();\n                        }\n                    ),\n                    window.$p ? $(\".cond_np\").hide() : $(\".cond_p\").hide(), e\n                })\n            }(),\n            // window.call_api\n            function() {\n                window.call_api = function(n, e, r) {\n                    if(window.$is_flutter_view) {\n                        return;\n                    }\n\n                    var o = $.ajax({\n                        url: '/api/user/' + window.$user_id + '/' + n,\n                        type: 'POST',\n                        dataType: 'json',\n                        data: e\n                    });\n\n                    o.done(function(n) {\n                        if (n && n.ok) {\n                            return r(n);\n                        } else if (n && n.error) {\n                            return r(n);\n                        } else {\n                            return r({ error: 1, reason: 'Unknown error' });\n                        }\n                    });\n\n                    return o.fail(function(n, e, o) {\n                        if (e === 'error') {\n                            e = '';\n                        }\n\n                        var i = o || e || 'request failed.';\n\n                        return r({\n                            error: 1,\n                            reason: i\n                        });\n                    });\n                };\n            }(),\n            pe = ie = null,\n            function() {\n                if (window.AudioContext == null) {\n                    window.AudioContext =\n                        window.webkitAudioContext ||\n                        window.mozAudioContext ||\n                        window.oAudioContext ||\n                        window.msAudioContext;\n                }\n\n                pe = function(n) {\n                    return new Error(\"Compatibility error: \" + n + \" is not supported.\");\n                };\n\n                ie = function() {\n                    if (typeof Worker === \"undefined\" || Worker === null) {\n                        return pe(\"WebWorker\");\n                    } else if (typeof Blob === \"undefined\" || Blob === null) {\n                        return pe(\"Blob\");\n                    } else if (typeof AudioContext === \"undefined\" || AudioContext === null) {\n                        return pe(\"AudioContext\");\n                    } else {\n                        return null;\n                    }\n                };\n\n                pe = pe;\n                ie = ie;\n            }(),\n            Tt = null,\n            function() {\n                var n;\n                var e;\n\n                if (ie()) {\n                    Tt = null;\n                } else {\n                    n = null;\n\n                    e = function() {\n                        var e;\n\n                        if (!n) {\n                            n = new Worker(\"/js/interval.js\");\n                            e = [];\n\n                            return (n.onmessage = function() {\n                                var n;\n                                var r;\n                                var i;\n                                var u;\n                                var o = e.length;\n\n                                for (var t = (i = 0); o >= 0 ? o > i : i > o; o >= 0 ? ++i : --i) {\n                                    u = e.shift();\n\n                                    r = u[0];\n                                    n = u[1];\n\n                                    r -= 16;\n\n                                    if (r > 0) {\n                                        e.push([r, n]);\n                                    } else {\n                                        n();\n                                    }\n                                }\n                                return null;\n                            });\n                        }\n                    };\n\n                    Tt = function(n, t) {\n                        e();\n                        return queues.push([n, t]);\n                    };\n                }\n\n                Tt = Tt;\n            }(),\n            kt = null,\n            function() {\n                kt = function(n) {\n                    return new buzz.sound(\"/assets/\" + n, { formats: [\"ogg\", \"mp3\", \"aac\"] });\n                };\n\n                kt = kt;\n            }(),\n            be = ge = ve = null,\n            a = c = f = s = null,\n            function() {\n                function n() {\n                    var n, r, o, u, l, a;\n                    for (n = {}, null == n[h] && (n[h] = {}), a = $(t.Me), o = function(r) {\n                        var o, u, l, a, s, c;\n                        for (u = $(r), l = $(t.bc, u), c = [], a = 0, s = l.length; s > a; a++) o = l[a], c.push(function(r) {\n                            var o, u, l, a, s, c, f, d, p, v;\n                            for (l = $(r), s = l.attr(t.XM), a = $(\".v\", l), n[s] = null, o = null != (f = n[h])[s] ? (f = n[h])[s] : f[s] = {}, o[t.hm] = a, d = function(r) {\n                                var i, u, l;\n                                return u = $(r), l = u.attr(t.QX), o[l] = u, i = u.attr(t.Qh), (i || !o[t.Qh]) && (o[t.Qh] = u), $(r).click(function() {\n                                    return e(n, s, l)\n                                })\n                            }, p = 0, v = a.length; v > p; p++) u = a[p], d(u);\n                            return o[t.Qh] && e(n, s, o[t.Qh].attr(t.QX)), c = l.attr(t.fD), c ? i(n, l, c) : void 0\n                        }(o));\n                        return c\n                    }, u = 0, l = a.length; l > u; u++) r = a[u], o(r);\n                    return n\n                }\n\n                function e(n, e, r) {\n                    var o, i, a, s, c, f, d, p, v, b, g, m, F, x;\n                    if (s = null != (v = n[h]) ? null != (b = v[e]) ? b[t.hm] : void 0 : void 0, s && (s.removeClass(\"active\"), a = null != (g = n[h]) ? null != (m = g[e]) ? m[r] : void 0 : void 0)) {\n                        if (a.addClass(\"active\"), n[e] = r, i = null != (F = n[l]) ? F[e] : void 0)\n                            for (c = 0, d = i.length; d > c; c++) o = i[c], typeof o === t.Mg && o(r);\n                        if (null != n[u])\n                            for (x = n[u], f = 0, p = x.length; p > f; f++) o = x[f], typeof o === t.Mg && o(e, r);\n                        return n\n                    }\n                }\n\n                function r(n, t) {\n                    switch (arguments.length) {\n                        case 2:\n                            n = arguments[0];\n                            t = arguments[1];\n                            if (n[u] == null) {\n                                n[u] = [];\n                            }\n                            n[u].push(t);\n                            break;\n                        case 3:\n                            o.apply(null, arguments);\n                    }\n                    return n;\n                }\n\n                function o(n, t, e) {\n                    var r;\n                    return null == n[l] && (n[l] = {}), null == (r = n[l])[t] && (r[t] = []), n[l][t].push(e), n\n                }\n\n                function i(n, e, o) {\n                    var i, u, l, a, s, c, f;\n                    for (e.hide(), o = o.split(t.mJ), i = {}, s = 0, c = o.length; c > s; s++) u = o[s], f = u.split(t.TC), l = f[0], a = f[1], null == i[l] && (i[l] = []), i[l].push(a);\n                    return r(n, l, function(n) {\n                        return co.call(i[l], n) >= 0 ? e.show() : e.hide()\n                    }), this\n                }\n                var u, l, h, d, p;\n                return p = m(4), u = p[0], h = p[1], d = p[2], l = p[3], be = n, ge = e, ve = r, a = u, c = h, f = d, s = l\n            }(), Vr = null, Dr = null,\n            function() {\n                var n, e, a, s, f, h, g, F, S, Z, E, C, A, j, G, tt, it, dt, pt, $t, Tt, St, Nt, Ut, Wt, Qt, At, Kt, zt, jt, Gt, qt, ne, te, re, oe, ie, se, he, pe, xe, ye, we, Ve, ke, Me, Xe, Ze, Je, Oe, Ne, Le, Ue, Ce, Qe, Ye, je, Ge, qe, tr, ur, pr, Fr, Fr2, Fr3, Tr, kr, Mr, Xr, Zr, Pr, Rr, Er, Ur, qr, no, to, io, fo, ho, po, vo, bo, go, mo, Fo, xo, yo, $o, wo, To, Vo, ko, So, Mo, _o, Io, Xo, Zo, Jo, Po, Ho, Bo, Oo, Ro, Eo, No, Lo, Uo, Wo, Co, Qo, Ao, Yo, Do, Ko, zo, jo, Go, qo, ni, ti, ei, ri, oi, ii, ui, li, ai, si, ci, fi, hi, di, pi, vi, bi, gi, mi, Fi, xi, yi, $i, wi, Ti, Vi, ki, Si, Mi, _i, Ii, Xi, Zi, Ji, Pi, Hi, Bi, Oi, Ri, Ei, Ni, Li, Ui, Wi, Ci, Qi, Ai, Yi, Di, Ki, zi, ji, Gi, qi, nu, tu, eu, ru, ou, iu, uu, lu, au, su, cu, fu, hu, du, pu, vu, bu, gu, mu, Fu, xu, yu, $u, wu, Tu, Vu, ku, kuHeight, Su, Mu, _u, Iu, Xu, Zu, Ju, Pu, Hu, Bu, Ou, Ru, Eu, Nu, Lu, Wu, Cu, Qu, Au, Yu, Du, Ku, zu, ju, Gu, qu, nl, tl, el, rl, ol, il, ul, ll, al, sl;\n\n                var DrawingsStore = function() {\n                    const obj = {};\n\n                    var prefix = \"drawing_\";\n\n                    obj.set = function(key, drawing) {\n                        var keys = obj.getKeys();\n\n                        // new entry\n                        if(!key) {\n                            key = 'local_' + (keys.length + 1);\n                        }\n\n                        var value = {\n                            ok: 1,\n                            data: {\n                                drawing: drawing,\n                                subid: (keys.length + 1),\n                                id: key,\n                                updated_at: (+new Date()) / 1000,\n                                symbol: window.$symbol\n                            }\n                        };\n\n                        localStorage.setItem(prefix + key, JSON.stringify(value));\n\n                        return value;\n                    }\n\n                    obj.has = function(key) {\n                        return localStorage.getItem(prefix + key) !== null;\n                    }\n\n                    obj.get = function(key) {\n                        var item = localStorage.getItem(prefix + key);\n\n                        if(!item) {\n                            return null;\n                        }\n\n                        return JSON.parse(item);\n                    }\n\n                    obj.delete = function(key) {\n                        return localStorage.removeItem(prefix + key);\n                    }\n\n                    obj.getRaw = function(key) {\n                        var item = localStorage.getItem(key);\n\n                        if(!item) {\n                            return null;\n                        }\n\n                        return JSON.parse(item);\n                    }\n\n                    obj.getKeys = function() {\n                        var res = [];\n\n                        for (var key in localStorage) {\n                            if(key.indexOf(prefix) >= 0) {\n                                res.push(key);\n                            }\n                        }\n\n                        return res;\n                    }\n\n                    obj.getAll = function(symbol) {\n                        var res = {\n                            ok: 1,\n                            data: []\n                        };\n\n                        var keys = obj.getKeys();\n\n                        for(var key in keys) {\n                            var item = obj.getRaw(keys[key]);\n\n                            if(item && item.data && item.data.symbol === symbol) {\n                                res.data.push(item.data);\n                            }\n                        }\n\n                        return res;\n                    }\n\n                    return obj;\n                }();\n\n                var scaleGraph;\n                var lockCross;\n                var autoScale = true;\n                var drawChartInfo = false\n\n                var HeatmapCanvas;\n\n                var redrawCross, redrawMain, redrawShapes, redrawHeatmap;\n\n                $(function() {\n                    function cl() {\n                        var n = new Date();\n                        if ($r()) {\n                            return pr.text(lr(n) + \" UTC\");\n                        } else {\n                            return pr.text(lr(n));\n                        }\n                    }\n\n                    function fl(n) {\n                        return Ge[n]\n                    }\n\n                    function hl(cookieName, cookieValue, saveConfig) {\n                        if (saveConfig == null) {\n                            saveConfig = {};\n                        }\n\n                        var cookieParams = {};\n\n                        cookieParams.path = '/';\n\n                        if(saveConfig.mode !== 'session') {\n                            cookieParams.expires = 3650;\n                        }\n\n                        if(saveConfig.wildcardDomain) {\n                            cookieParams.domain = '.bitcoinwisdom.io';\n                        }\n\n                        return $.cookie(cookieName, cookieValue, o);\n                    }\n\n                    function dl(n, t) {\n                        return n > t\n                    }\n\n                    // measure run time?\n                    function pl(n, t) {\n                        var r = Date.now();\n                        window.Measurer(n).start();\n                        t();\n                        window.Measurer(n).stop();\n\n                        return Date.now() - r;\n                    }\n\n                    function vl(n, t) {\n                        var e, r, o, i, u, l;\n                        for (o = null, r = i = 8; i >= -8; r = --i) {\n                            for (u = 0, l = n.length; l > u; u++)\n                                if (e = n[u], ol = parseFloat((e * Math.pow(10, r)).toPrecision(8)), !(ol / $init_price > t)) {\n                                    o = ol;\n                                    break\n                                } if (o) break\n                        }\n                        return null == o && (o = 1e-8), o\n                    }\n\n                    function bl() {\n                        lockCross = true;\n\n                        Ol(\"Cross is locked.\");\n\n                        return Iu.addClass(\"locked\");\n                    }\n\n                    function gl() {\n                        lockCross = false;\n\n                        Ol(\"Cross is unlocked.\");\n\n                        return Iu.removeClass(\"locked\");\n                    }\n\n/*                    function bl() {\n                        autoScale = true;\n\n                        Ol(\"Auto-scaling enabled.\");\n                    }\n\n                    function gl() {\n                        autoScale = false;\n\n                        Ol(\"Auto-scaling disabled.\");\n                    }*/\n\n                    /**\n                     * Clear canvas\n                     *\n                     * @param n\n                     */\n                    function ml(n, width, height) {\n                        var preserveTransform = false;\n\n                        if (preserveTransform) {\n                            n.save();\n                            n.setTransform(1, 0, 0, 1, 0, 0);\n                        }\n\n                        if(!width) {\n                            width = n.canvas.width;\n                        }\n\n                        if(!height) {\n                            height = n.canvas.height;\n                        }\n\n/*\n                        switch(n.canvas.id) {\n                            case \"canvas_shapes\":\n                                n.canvas.width = n.canvas.width;\n                            default:\n                                n.clearRect(0, 0, n.canvas.width, n.canvas.height);\n                                break;\n                        }\n*/\n                        n.clearRect(0, 0, width, height);\n\n                        if (preserveTransform) {\n                            n.restore();\n                        }\n                    }\n\n                    function Fl() {\n                        var n, e, r, o, i, u, l, a, s;\n\n                        var c = [Oi, Bi, Ri, HeatmapCanvas];\n\n                        Si = Eu.width() - Ou.width() - Mu.width();\n                        ki = Eu.height() - ku.height() - (Vu.is(\":visible\") ? Vu.height() : 0);\n\n                        ki -= ki % 2;\n                        Si -= Si % 2;\n\n                        if (Oi.width !== Si || Oi.height !== ki) {\n                            yu.css(\"width\", Si - 8);\n                            Iu.height(ki);\n\n                            for (a = 0, s = c.length; a < s; a++) {\n                                e = c[a];\n\n                                if(!e) {\n                                    continue;\n                                }\n\n                                var ctx;\n\n                                if(e !== HeatmapCanvas) {\n                                    ctx = e.getContext('2d');\n                                }\n\n                                // var rect = e.getBoundingClientRect();\n\n                                var ctxDpr = dpr(ctx);\n\n                                var canvasWidth = Math.ceil(Si * ctxDpr);\n                                var canvasHeight = Math.ceil(ki * ctxDpr);\n\n                                e.width = canvasWidth;\n                                e.height = canvasHeight;\n\n                                $(e).css(\"width\", canvasWidth / ctxDpr);\n                                $(e).css(\"height\", canvasHeight / ctxDpr);\n\n                                if(ctx) {\n                                    ctx.setTransform(ctxDpr, 0, 0, ctxDpr, 0, 0);\n                                //    ctx.scale(ctxDpr, ctxDpr);\n                                }\n                            }\n                        }\n\n                        if (g == null) {\n                            g = Fu.outerHeight(true);\n                        }\n\n                        o = g + 26 - ki;\n\n                        // console.log('orderbook debug', g, ki, o);\n\n                        if (o > 0) {\n                            i = 15 - Math.ceil(o / 26);\n\n                            if (i < 2) {\n                                i = 2;\n                            }\n                        } else {\n                            i = 15;\n                        }\n\n                        // console.log('orderbook lines', i);\n\n                        u = 13 * i;\n                        Ut = i;\n\n                        $t = false;\n\n                        ql();\n\n                        $t = true;\n\n                        $('#orderbook .orderbook').height(u);\n\n                        $(\"#asks\").css(\"margin-top\", 13 * (i - 15));\n                        $(\"#gasks\").css(\"margin-top\", 13 * (i - 15));\n\n                        l = ki - Fu.outerHeight(true);\n\n                        Ru.height(l);\n\n                        uu = Math.floor(ki / 6 - Rr);\n                        $i = Math.floor((Si - xi) / Ti);\n                        wi = Math.floor((Si - xi) / Ti);\n\n                        Su.css(\"bottom\", uu + 16);\n\n                        if (Er) {\n                            n = Er[w];\n                            r = Yt(n, T).length - 1;\n                            ho = r;\n\n                            if (Ci == null) {\n                                Ci = r - wi + 1;\n                            } else {\n                                Ci -= wi - Cu;\n                            }\n\n                            if (0 > Ci) {\n                                Ci = 0;\n                            }\n\n                            if (Ci + wi > r) {\n                                Ci = r - wi + 1;\n                            }\n\n                            Cu = wi;\n\n                            ul();\n                            Il();\n\n                            return true;\n                        } else {\n                            return;\n                        }\n                    }\n\n                    function xl() {\n                        if (Mi[\"volume_currency\"] === \"base\") {\n                            if (Bo !== H) return Oo = j, Bo = H, au = !0\n                        } else if (Bo !== P) return Oo = C, Bo = P, au = !0\n                    }\n\n                    // clear \"cross\" canvas\n                    function yl() {\n                        return ml(_i)\n                    }\n\n                    // clear shapes canvas\n                    function $l() {\n                        return ml(Xi)\n                    }\n\n                    // wl draws price label on sidebar\n                    function wl(n, e, r, o, i, u) {\n                        var l, a;\n                        return l = r + .5, a = o, null == i && (i = n.measureText(e).width),\n                            n.beginPath(),\n                            n.textBaseline = \"middle\",\n                            u === t.MM ? (n.moveTo(l, a), n.lineTo(l - 5, a + 10.5),\n                            n.lineTo(l - 5 - i - 6 - 5, a + 10.5),\n                            n.lineTo(l - 5 - i - 6 - 5, a - 10.5),\n                            n.lineTo(l - 5, a - 10.5),\n                            n.lineTo(l, a),\n                            n.fill(),\n                            n.stroke(),\n                            n.fillStyle = Jo[t.Sy],\n\n                            n.fillText(e, l - 5 - 3 - i, a)) : (\n                                n.moveTo(l, a),\n                                n.lineTo(l + 5, a + 10.5),\n                                n.lineTo(l + 5 + i + 6 + 5, a + 10.5),\n                                n.lineTo(l + 5 + i + 6 + 5, a - 10.5),\n                                n.lineTo(l + 5, a - 10.5),\n                                n.lineTo(l, a),\n                                n.fill(),\n                                n.stroke(),\n                                n.fillStyle = Jo[t.Sy], n.fillText(e, l + 5 + 3, a)\n                            )\n                    }\n\n                    function Tl(n, e, r, o, i) {\n                        var u, l, a;\n                        return l = r, a = o, u = 18,\n                        null == i && (i = n.measureText(e).width),\n                            i % 2 === 0 && (i += 1),\n                            i += 6,\n                            n.fillStyle = Jo[t.Za],\n                            n.lineWidth = 1,\n                            n.textBaseline = \"middle\",\n                            n.textAlign = t.VN,\n                            n.fillRect(l - i / 2 - .5, a - u / 2, i + 1, u),\n                            n.beginPath(),\n                            n.moveTo(l - i / 2, a - u / 2),\n                            n.lineTo(l - i / 2, a + u / 2),\n                            n.moveTo(l + i / 2 + 1, a - u / 2),\n                            n.lineTo(l + i / 2 + 1, a + u / 2),\n                            n.stroke(),\n                            n.fillStyle = Jo[t.Sy],\n                            n.fillText(e, l, a)\n                    }\n\n                    // fixme: bit slow\n                    function Vl(n, t) {\n                        var e;\n\n                        if (t == null) {\n                            t = false;\n                        }\n\n                        if (n == null) {\n                            return 0;\n                        } else if (wo > 1e7 && ((n *= 1e8), !t)) {\n                            return (n = parseInt(n));\n                        } else if (n > 10000) {\n                            return n.toFixed(0);\n                        } else {\n                            e = n > 100 ? 5 : 4;\n                            return n.toPrecision(e);\n                        }\n                    }\n\n                    function kl(n, t) {\n                        var e;\n                        return null == t && (t = !0), n > 10000 ? n = Math.round(n) : e = n > 100 ? 5 : 4, t ? mr(n) : n.toPrecision(e)\n                    }\n\n                    function Sl(n) {\n                        return n.toPrecision(5)\n                    }\n\n                    function Ml(n, t) {\n                        var e, r, o, i, u, l, a, s, c;\n\n                        switch (r = n[mt], o = n[Ft], n[vt]) {\n                            case xt:\n                                l = (t - r.y) / r.h * o.h + o.y;\n                                break;\n                            case yt:\n                                s = o.y;\n                                a = o.y + o.h;\n                                u = 0;\n                                i = Math.log(a / s);\n                                c = (t - r.y) / r.h * i + u;\n                                l = Math.exp(c) * s;\n                                break;\n                            case gt:\n                                e = n[bt]\n                        }\n                        return l\n                    }\n\n                    var old_l_html, old_yu_html;\n\n                    // fixme: optimize html()\n                    function _l(n, e) {\n                        var r;\n                        var o;\n                        var i;\n                        var l;\n                        var s;\n                        var c;\n                        var f;\n                        var h;\n                        var d;\n                        var p;\n                        var a = \"\";\n                        var u = Er[e];\n\n                        if (u != null ? u.length : void 0) {\n                            r = Er[w];\n                            d = Dt(r, Ci + Wi, u);\n                            h = ie[e];\n\n                            f = h[\"labels\"];\n\n                            i = (p = h[t.qQ]) != null ? p : Jo[t.VB];\n\n                            c = (function() {\n                                var n;\n                                var r = [];\n\n                                l = n = 0;\n\n                                for (var e = f.length; e > n; l = ++n) {\n                                    s = f[l];\n                                    o = i[l];\n\n                                    r.push(\"<dd><span style=\\\"color:\" + o + \"\\\">\" + s + \": \" + fr(d[u[l]]) + \"</span></dd>\");\n                                }\n\n                                return r;\n                            })();\n\n                            a = t.WL + c.join(\"\") + \"</dl>\";\n                        }\n\n                        if(old_l_html !== a) {\n                            old_l_html = a;\n\n                            return n.html(\"<div class=inner>\" + a + \"</div>\");\n                        }\n                    }\n\n                    let isCrosshairInfoVisibleForMobile = false;\n\n                    // draw canvas_cross\n                    function Il() {\n                        var e, o, u, a, s, c, f, d, p, v, b, g, m, F, x, y, $, _, Z, B, O, R, E, N, L, U, W, C, Q, A, Y, D, K, z, G, q, nt, tt, et, rt, ot, it, ut;\n\n                        if(Er) {\n                            R = _i;\n                            c = Er[w];\n\n                            N = Au > Si - xi;\n\n                            if(N) {\n                                v = Au;\n                                b = Yu\n                            } else {\n                                v = Ji;\n                                b = Pi;\n                            }\n\n                            e = Mi[\"stick_style\"];\n                        }\n\n                        if (Er && null != v) {\n                            window.Measurer('crosshair').start();\n                            window.Measurer('crosshair-1').start();\n\n                            yl();\n\n                            if (Ye === ui) {\n                                if(!window.$is_mobile || window.$is_desktop_mode || Ni || isCrosshairInfoVisibleForMobile) {\n                                    R.strokeStyle = Jo[t.Nq];\n                                    Ee(R, b + 0.5, 0, Si);\n                                    We(R, v + 0.5, 0, ki);\n                                }\n                            }\n\n                            ol = Dt(c, Ci + Wi, ao.call(k).concat([Er[mi]]));\n\n                            if (Xe) {\n                                x = function(n) {\n                                    var r, o, i, u, l, s;\n                                    var e = n[Ft];\n\n                                    if (n[vt] === yt) {\n                                        u = e.y;\n                                        i = e.y + e.h;\n                                        o = 0;\n                                        r = Math.log(i / u);\n                                        s = ((b - p.y) / p.h) * r + o;\n                                        l = Math.exp(s) * u;\n                                    } else {\n                                        l = ((b - p.y) / p.h) * e.h + e.y;\n                                    }\n\n                                    var price = n === Xe ? Vl(l) : kl(l);\n\n                                    h = parseFloat(price);\n                                    R.font = Math.floor(12) + 'px ' + qe;\n                                    R.fillStyle = Jo[t.Sy];\n                                    R.textAlign = t.uO;\n\n                                    var c = R.measureText(price).width;\n                                    c += c % 2;\n\n                                    var f = Math.floor(Si - xi + (xi - c - 8) / 2);\n                                    var d = b;\n\n                                    R.strokeStyle = Jo[t.Nq];\n                                    R.fillStyle = Jo[t.Za];\n\n                                    if(!window.$is_mobile || window.$is_desktop_mode || Ni || isCrosshairInfoVisibleForMobile) {\n                                        if (N) {\n                                            return wl(R, price, Si - xi - 3, d, c, t.MM);\n                                        } else {\n                                            return wl(R, price, f, d, c);\n                                        }\n                                    }\n                                };\n\n                                ot = [Xe, Me, Ro];\n                                q = 0;\n\n                                for (nt = ot.length; nt > q; q++) {\n                                    K = ot[q];\n                                    if (K) {\n                                        p = K[mt];\n                                        if (p.y + p.h < b && b < p.y) {\n                                            x(K);\n                                        }\n                                    }\n                                }\n\n                                R.strokeStyle = Jo[t.Nq];\n                                R.fillStyle = Jo[t.Za];\n                                R.fillStyle = t.bO;\n\n                                if (ol[V]) {\n                                    g = ol[V];\n                                } else {\n                                    B = Dt(c, Ui, k);\n                                    g = new Date(B[V]);\n                                    g.setSeconds(Io * (Wi - (Ui - Ci)));\n                                }\n\n                                Y = 3600 > Io ? xr(g, true) : 86400 > Io ? Fe[\"getHours\"](g) : or(g);\n                                R.font = Math.floor(12) + 'px ' + qe;\n                                R.strokeStyle = Jo[t.Np];\n                                Tl(R, Y, v, ki - 7);\n                            }\n\n                            window.Measurer('crosshair-1').stop();\n                            window.Measurer('crosshair-2').start();\n\n                            if (Ni) {\n                                Ci = Li - Wi;\n                            }\n\n                            _ = wr(c[r][T]) * wo;\n                            p = Xe[mt];\n\n                            C =\n                                Pi < p.y\n                                    ? t.EU + gr(h / _ - 1) + t.kd + gr(_ / h - 1) + t.EU + br(h - _)\n                                    : '';\n\n                            if(!window.$is_mobile || window.$is_desktop_mode || drawChartInfo) {\n                                isCrosshairInfoVisibleForMobile = true;\n\n                                if (\n                                    (n != null ? ((it = n[zo]) != null ? it.length : void 0) : void 0) &&\n                                    N &&\n                                    So\n                                ) {\n                                    o = n;\n                                    y = xi - (Si - v) - 8;\n                                    Y = '';\n\n                                    if ((s = o[zo][y])) {\n                                        Z = xe[st];\n\n                                        if (o[Yo][y]) {\n                                            Jr = (100 * (o[Ko][y] / Z - 1)).toFixed(2) + t.Ta;\n                                            Jr = t.QE + Jr + t.TZ;\n                                            Y +=\n                                                t.WE +\n                                                kl(o[qo][y]) +\n                                                t.Ac +\n                                                j +\n                                                t.kH +\n                                                kl(o[Yo][y]) +\n                                                t.Ac +\n                                                Pr +\n                                                t.tX +\n                                                Vl(o[Ko][y]) +\n                                                t.Ac +\n                                                Jr +\n                                                t.Oi;\n                                        }\n\n                                        if (o[Do][y]) {\n                                            Jr = (100 * (o[jo][y] / Z - 1)).toFixed(2) + t.Ta;\n                                            Jr = t.Nn + Jr + t.TZ;\n                                            Y +=\n                                                t.Wz +\n                                                kl(o[qo][y]) +\n                                                t.Ac +\n                                                j +\n                                                t.Wy +\n                                                kl(o[Do][y]) +\n                                                t.Ac +\n                                                Pr +\n                                                t.pf +\n                                                Vl(o[jo][y]) +\n                                                t.Ac +\n                                                Jr +\n                                                t.Oi;\n                                        }\n\n                                        Y += t.Ww + Vl(o[zo][y], true) + t.Ac + vo + t.ih;\n                                    }\n\n                                    if (Y !== old_yu_html) {\n                                        old_yu_html = Y;\n                                        yu.html('<div class=inner>' + Y + '</div>');\n                                    }\n\n                                    Su.html('');\n                                } else if ($i >= Wi) {\n                                    Y = '';\n                                    $ = '';\n\n                                    if (ol[T] == null) {\n                                        B = Dt(c, Ui, k);\n\n                                        if (B[V] != null) {\n                                            g = new Date(B[V]);\n                                            g.setSeconds(Io * (Wi - (Ui - Ci)));\n                                            Y = t.lI + ir(g) + t.Iz + hr(g);\n                                        }\n\n                                        u = t.Wf + cr(g.getTime() / 1000 - Date.now() / 1000) + C + t.We;\n                                        Y += u;\n\n                                        _l(Su, null);\n                                    } else {\n                                        Q = Dt(c, Ci + Wi - 1, k);\n                                        L = Q[T] != null ? ol[T] / Q[T] - 1 : 0;\n                                        L = 100 * L;\n                                        L = L.toFixed(2);\n\n                                        if (L[0] === t.br) {\n                                            L = t.QL + L.substr(1);\n                                            G = t.YF;\n                                        } else if (L > 0) {\n                                            L = t.Wu + L;\n                                            G = t.gE;\n                                        } else {\n                                            L = t.Wu + L;\n                                            G = t.YQ;\n                                        }\n\n                                        G = '';\n\n                                        Y = [\n                                            t.lI + ir(ol[V]) + t.Iz + hr(ol[V]),\n                                            t.uT + Vl(ol[X]),\n                                            t.rF + Vl(ol[M]),\n                                            t.Wq + Vl(ol[I]),\n                                            t.WO + Vl(ol[T]),\n                                            t.Rj + L + t.Ye,\n                                            t.vL + (((ol[M] - ol[I]) / ol[I]) * 100).toFixed(2) + t.Ye,\n                                            t.bF + mr(ol[Bo] > 1e-11 ? ol[Bo] : 0)\n                                        ];\n\n                                        if ((d = Mi.market != null && Mi.market !== 'none')) {\n                                            ut = S[i];\n                                            for (A in ut) {\n                                                if (so.call(ut, A)) {\n                                                    a = ut[A];\n                                                    if (\n                                                        (c = a != null ? ((et = a[Io]) != null ? et[w] : void 0) : void 0)\n                                                    ) {\n                                                        D = Yt(c, J);\n                                                        if (Mi.line_style) {\n                                                            z =\n                                                                (rt = S[l][A]) != null\n                                                                    ? rt[(tt = Io + t.TC + mi)] != null\n                                                                    ? rt[(tt = Io + t.TC + mi)]\n                                                                    : (rt[tt] = Ct(c, [P, H, T]))\n                                                                    : void 0;\n                                                            f = Yt(c, z)[0];\n                                                            o = ol[Er[mi]];\n                                                        } else {\n                                                            f = Yt(c, T);\n                                                            o = ol[T];\n                                                        }\n                                                        U = (ol[J] - D[0]) / Io;\n                                                        W = f[U];\n                                                        E = S[t.Wi] ? o / W / S[t.Wi] - 1 : o / W - 1;\n                                                        Y = (\n                                                            t.lI +\n                                                            ir(ol[V]) +\n                                                            t.ou +\n                                                            $symbol +\n                                                            t.Xl +\n                                                            Vl(o) +\n                                                            t.ou +\n                                                            A +\n                                                            t.Xl +\n                                                            Vl(W)\n                                                        ).split(t.ou);\n                                                    }\n                                                }\n                                            }\n                                        }\n\n                                        F = (function () {\n                                            var r = [];\n                                            var n = 0;\n                                            for (var e = Y.length; e > n; n++) {\n                                                m = Y[n];\n                                                r.push(t.WB + m.trim() + t.AH);\n                                            }\n                                            return r;\n                                        })();\n\n                                        Y = t.WL + F.join('') + '</dl>';\n                                        u = t.Wf + cr(ol[J] - Date.now() / 1000) + C + t.We;\n                                        Y += u;\n\n                                        O = Mi[t.VT];\n\n                                        _l(Su, O);\n                                    }\n\n                                    if (Y !== old_yu_html) {\n                                        old_yu_html = Y;\n                                        yu.html('<div class=inner>' + Y + '</div>');\n                                    }\n                                }\n\n                                drawChartInfo = false;\n                            }\n\n                            window.Measurer('crosshair-2').stop();\n                            window.Measurer('crosshair').stop();\n\n                            return 0\n                        }\n                    }\n\n                    // arrow pointing at high / low point of candle\n                    function Xl(n, e, r, o, i) {\n                        var s;\n                        var c = eo(e, r, o);\n\n                        var l = c[0];\n                        var a = c[1];\n\n                        n.fillStyle = Jo['Main Text'];\n                        n.font = '' + re + ' ' + qe;\n                        n.textBaseline = \"middle\";\n\n                        var u = e[mt];\n\n                        o = parseFloat(Vl(o));\n\n                        if (l < u.x + u.w / 2) {\n                            s = t.mU + o;\n                            n.textAlign = \"left\";\n                            l += 3;\n                        } else {\n                            s = o + t.wg;\n                            l -= 3;\n                            n.textAlign = \"right\";\n                        }\n\n                        return n.fillText(s, l + i, a);\n                    }\n\n\n                    // draw shapes function\n                    function Zl() {\n                        window.Measurer('shapes').start();\n\n                        var n, e;\n\n                        $l();\n\n                        Xi.strokeStyle = Jo[t.FL];\n                        Xi.lineWidth = 1;\n\n                        if (Ye !== ui && To && (e = To[q]) && (n = e[e.length - 1])) {\n                            Re(Xi, Xe, function() {\n                                var o = Xi;\n                                var i = n;\n                                var u = eo(Xe, Wi, i[1]);\n                                var e = u[0];\n                                var r = u[1];\n                                o.fillStyle = Jo[t.RT];\n                                return o.fillRect(e - 2 + al, r - 2, 5, 5);\n                            });\n                        }\n\n                        if (Po && Mo) {\n                            Re(Xi, Xe, function() {\n                                var e;\n                                var r;\n                                var n = (r = 0);\n                                for (var o = Vo.length; o > r; n = ++r) {\n                                    e = Vo[n];\n                                    e[ut] = al;\n                                    e[O] = $i;\n                                    e[et] = parseInt(Io);\n                                    e[rt] = Jo;\n                                    e[R] = Jo[t.La][n] || Jo[t.FL];\n                                    Cr(e, Xi, Xe, Po);\n                                }\n                                return this;\n                            });\n                        }\n\n                        window.Measurer('shapes').stop();\n\n                        return 0;\n                    }\n\n\n                    function Jl(n, t, e) {\n                        n.beginPath();\n                        n.moveTo(t, e);\n\n                        n.lineTo(t + 6, e + 3);\n                        n.lineTo(t + 6, e - 3);\n\n                        return n.fill();\n                    }\n\n                    function Pl(n) {\n                        if (n == null) {\n                            n = \"Loading...\";\n                        }\n\n                        Ve++;\n\n                        $(\".inner\", _u).html(t.VA + n + t.WI);\n\n                        if (Ve) {\n                            return _u.show();\n                        } else {\n                            return;\n                        }\n                    }\n\n                    function Hl() {\n                        Ve++;\n\n                        $(\".inner\", _u).html(t.UX);\n\n                        if (Ve) {\n                            return _u.show();\n                        } else {\n                            return;\n                        }\n                    }\n\n                    function Bl() {\n                        Kr(0, function() {\n                            Ve--;\n\n                            if (Ve) {\n                                return;\n                            } else {\n                                return _u.hide();\n                            }\n                        })\n                    }\n\n                    function Ol(n) {\n                        var e;\n\n                        $(\"#notify .inner\").text(n);\n\n                        fu = 1500;\n\n                        ru(hu);\n\n                        if (hu) {\n                            return;\n                        } else {\n                            hu = true;\n\n                            Pu.fadeIn(t.Rt);\n\n                            (e = function() {\n                                fu -= 16;\n\n                                if (0 > fu) {\n                                    Pu.fadeOut();\n                                    return (hu = false);\n                                } else {\n                                    return setTimeout(e, 16);\n                                }\n                            })();\n\n                            return this;\n                        }\n                    }\n\n                    // handles only realtime trades?\n                    function Rl(n, t) {\n                        var e, o, i, u;\n\n                        if (t == null) {\n                            t = false;\n                        }\n\n                        i = null;\n\n                        var r = 0;\n                        var l = 0;\n\n                        for (var a = n.length; a > l; l++) {\n                            e = n[l];\n\n                            if (e.price_currency === tr) {\n                                e.tid = parseInt(e.tid);\n\n                                i = e.tid;\n\n                                if (Fi[e.tid] || e.tid <= ye || Fi[1]) {\n                                    continue;\n                                }\n\n                                u = jr(e);\n\n                                for (Gu in Ur) {\n                                    if(Ur.hasOwnProperty(Gu)) {\n                                        o = Ur[Gu];\n\n                                        Hr(o, u);\n                                    }\n                                }\n\n                                // always false acc. to this script?\n                                if (t) {\n                                    $e(tt, e.price);\n                                }\n\n                                Fi[i] = u;\n\n                                Vi.push(u);\n                                // add trade to trade log?\n                                el.push(ue(u));\n\n                                // fixme: another hard limit?\n                                while (el.length > 200) {\n                                    el.shift();\n                                }\n\n                                ++r;\n                            }\n                        }\n\n                        return [i, r];\n                    }\n\n                    function El(n) {\n                        var u, e, o, l;\n\n                        var r = (function() {\n                            var o = n.reverse();\n                            var i = [];\n                            var t = 0;\n                            var to = o.length;\n\n                            for (; t < to; t++) {\n                                e = o[t];\n\n                                if(!e || !e.price) {\n                                    continue;\n                                }\n\n                                e.price = e.price;\n                                e.amount = e.amount;\n                                e.price_currency = tr;\n\n                                i.push(e);\n                            }\n\n                            return i;\n                        })();\n\n                        var i = { \"result\": \"success\", \"return\": r };\n                        r = i.return;\n\n                        if (r.length === 0) {\n                            return;\n                        } else {\n                            l = Rl(r);\n\n                            u = l[0];\n                            o = l[1];\n\n                            if (o > 0) {\n                                ur[0].changed_at = 0;\n                                return (su = true);\n                            } else {\n                                return;\n                            }\n                        }\n                    }\n\n                    function Nl(n, e) {\n                        var r, o, i;\n                        var l = Ho[n];\n\n                        if (\n                            (l != null ? l.tid : void 0) > e.tid ||\n                            ((i = $('[data-market-price-slug=' + n + ']')), i.length === 0)\n                        ) {\n                            return;\n                        } else {\n                            parseFloat(i.text());\n\n                            r = parseFloat(e.last);\n\n                            o = n.indexOf(\"cny\") !== -1 ?\n                                \"<span class=eprice>\" + (r / window.$c_usdcny).toFixed(2) + \"/</span>\" + r.toString() :\n                                r.toString();\n\n                            i.html(o);\n\n                            return (Ho[n] = e);\n                        }\n                    }\n\n\n                    // actual precising function\n                    function Ll(n, t) {\n                        var e = Math.floor(Math.log(n) / Math.log(10));\n\n                        Sl = 5 * Math.pow(10, e - t) - 1e-12;\n\n                        return (n + Sl).toPrecision(t);\n                    }\n\n                    function Ul(n, t) {\n                        var e = Math.floor(Math.log(n) / Math.log(10));\n\n                        Sl = 5 * Math.pow(10, e - t) - 1e-12;\n\n                        return (n - Sl).toPrecision(t);\n                    }\n\n                    // initial sdepth handler\n                    function Wl(n) {\n                        var e, r, o, i, u, l, a, s, c, f, h, d, p, v, b;\n\n                        if(!n || !n.return) {\n                            return;\n                        }\n\n                        ru.d(\"apply sdepth\");\n\n                        v = n.return;\n\n                        e = v.asks;\n                        r = v.bids;\n                        l = v.now;\n\n                        if (e.length < Ut) {\n                            $e(tt, Infinity);\n                        } else if (e.length) {\n                            o = e[e.length - 1][0];\n\n                            $e(tt, o);\n                        }\n\n                        if (r.length < Ut) {\n                            $e(tt, -Infinity);\n                        } else if (r.length) {\n                            i = r[r.length - 1][0];\n                            $e(tt, i);\n                        }\n\n                        a = [['ask', e], ['bid', r]];\n                        f = 0;\n\n                        for (d = a.length; d > f; f++) {\n                            b = a[f];\n\n                            u = b[0];\n                            c = b[1];\n\n                            h = 0;\n\n                            for (p = c.length; p > h; h++) {\n                                ol = c[h];\n                                ol[2] = u;\n\n                                Ie(tt, ol, false);\n                            }\n                        }\n\n                        // do not reset fresh timer for empty sdepth\n                        if(p > 0) {\n                            na();\n                        }\n\n                        At = l;\n                        au = true;\n\n                        if(window.Heatmap && tt && tt[3] && tt[4]) {\n                            window.Heatmap.sdepth([tt[3].flatten(), tt[4].flatten()]);\n                        }\n\n                        return true;\n                    }\n\n                    // depth handler. maybe?\n                    function Cl(n) {\n                        var e, r, o, i, u, l, a, s, c, f, h, d, p, v, b, g, m, F, x, y;\n\n                        if(!n || !n.return) {\n                            return;\n                        }\n\n                        x = n.return;\n\n                        e = x.asks;\n                        r = x.bids;\n                        h = x.time;\n                        a = x.now;\n\n/*                      o = JSON.stringify(n.return);\n\n                        if (c !== o) {\n                            c = o;\n                        }*/\n\n                        s = [[\"ask\", e], [\"bid\", r]];\n\n                        Te(tt);\n\n                        p = 0;\n\n                        for (g = s.length; g > p; p++) {\n                            y = s[p];\n\n                            l = y[0];\n                            d = y[1];\n\n                            v = 0;\n\n                            for (m = d.length; m > v; v++) {\n                                ol = d[v];\n                                ol[2] = l;\n\n                                Ie(tt, ol);\n                            }\n                        }\n\n                        u = 0;\n                        i = parseInt(h);\n                        Le = i;\n\n                        while((ol = it[0]) && parseInt(ol[3]) < i) {\n                            ++u;\n                            it.shift();\n                        }\n\n                        ru.d(\"remove \" + u + \" depth\");\n\n                        F = it.length;\n\n                        for (b = 0; b < F; b++) {\n                            ol = it[b];\n\n                            Ie(tt, ol);\n                        }\n\n                        ru.d(\"apply \" + it.length + \" depth\" );\n                        ru.d(\"load \" + e.length + \" asks and \" + r.length + \" bids\");\n\n                        At = a;\n                        au = true;\n\n                        return true;\n                    }\n\n                    function Ql(step, cb) {\n                        window.$step = step;\n\n                        if(window.Heatmap && window.Heatmap.forceUpdate) {\n                            window.Heatmap.stepChange();\n                            window.Heatmap.forceUpdate();\n                        }\n\n                        function r(r) {\n                            function a() {\n                                function r() {\n                                    d++;\n\n                                    a();\n                                }\n\n                                function a() {\n                                    if (p > d) {\n                                        l = h[d];\n\n                                        ae(S, l, step, function() {\n                                            o = arguments[0];\n                                            r((cu = true));\n                                        });\n                                    } else {\n                                        s();\n                                    }\n                                }\n\n                                function s() {\n                                    cb(null);\n                                }\n\n                                var c;\n                                Io = step;\n\n                                Ku(\"system:step\", Io);\n\n                                Er = u;\n                                Ci = null;\n                                Ui = null;\n                                Ne = -100000000;\n                                Qe = 1e8;\n\n                                Fl();\n\n                                var f = S[i];\n\n                                h = (function() {\n                                    var n = [];\n\n                                    for (c in f) {\n                                        if (f.hasOwnProperty(c)) {\n                                            n.push(c);\n                                        }\n                                    }\n\n                                    return n;\n                                })();\n\n                                var d = 0;\n                                var p = h.length;\n\n                                a();\n                            }\n\n                            if (r) {\n                                ru(\"switch failed \" + o.message);\n\n                                return cb(o, u);\n                            } else {\n                                a();\n\n                                return;\n                            }\n                        }\n\n                        var o, u, l;\n\n                        step = parseInt(step),\n\n                        Al(step, $sid, function() {\n                            r((o = arguments[0], u = arguments[1], o))\n                        })\n                    }\n\n                    function Al(n, e, r) {\n                        function o() {\n                            return r(null, l);\n                        }\n\n                        var i, u, l, data;\n\n                        ru(\"switch to \" + qu[n]);\n\n                        if (Ur[n] && !Ur[n].is_simple) {\n                            requestAnimationFrame(function() {\n                                l = Ur[n];\n                                to = n;\n                                qr = no[n];\n                                o();\n                            });\n                        } else {\n                            ru(\"get history data from server for \" + qu[n]);\n\n                            data = {\n                                step: n,\n                                symbol: $symbol.toLowerCase(),\n                                '3d_format': window.$_3d_format\n                            };\n\n                            Pl();\n\n                            if (!to && 180 > Si / Ti) {\n                                data[\"mode\"] = \"simple\";\n                            }\n\n                            rr(t.LY + $ssl + t.YT + $host + t.Vg, data, function() {\n                                u = arguments[0];\n                                i = arguments[1];\n\n                                Bl();\n\n                                if (u) {\n                                    return r(u);\n                                } else if (i) {\n                                    i = nr(i, n);\n\n                                    to = n;\n                                    qr = no[n] = i;\n\n                                    Yl();\n\n                                    l = Ur[n];\n                                    l.is_simple = data[\"mode\"] === \"simple\";\n\n                                    o();\n\n                                    return;\n                                } else {\n                                    return r(new Error(\"error, history data is empty\"));\n                                }\n                            });\n                        }\n                    }\n\n                    function Yl(n) {\n                        var r;\n                        var o;\n                        var i;\n\n                        if (n == null) {\n                            n = true;\n                        }\n\n                        Gu = to;\n\n                        if (n) {\n                            r = qr;\n\n                            o = Br(Gu, r);\n                        } else {\n                            o = Ur[Gu];\n                        }\n\n                        var t = o[w];\n\n                        o[ei] = wr(Yt(t, _));\n\n                        var u = 0;\n\n                        for (var l = Vi.length; l > u; u++) {\n                            i = Vi[u];\n\n                            if (i[ft] > o[ei]) {\n                                Hr(o, i);\n                            }\n                        }\n\n                        Er = Ur[Gu] = o;\n\n                        return (cu = true);\n                    }\n\n                    function Dl(n) {\n                        return ye = n\n                    }\n\n                    function Kl(n) {\n                        return n.toString().replace(/\\.\\d+/, t.Va)\n                    }\n\n                    function zl(n) {\n                        var e, r, i, u;\n\n                        if (a) {\n                            if (1e-8 > n) {\n                                i = [\"0\", null];\n\n                                r = i[0];\n                                e = i[1];\n                            } else {\n                                u = parseFloat(n.toPrecision(7))\n                                    .toString()\n                                    .substr(0, 7)\n                                    .split(t.ih);\n\n                                r = u[0];\n                                e = u[1];\n                            }\n                            e = e != null ? t.ih + e : \"\";\n                        } else {\n                            r = \"\";\n                            e = '?';\n                        }\n\n                        return \"\" + r + t.xs + e + t.fO;\n                    }\n\n                    function jl(n, e) {\n                        if (e == null) {\n                            e = 'green';\n                        }\n\n                        // ? was in sources\n                        // if (e === 'green') {}\n\n                        var a = Bo === H ? zl(n[lt]) : zl(n[lt] * n[st]);\n                        var i = document.createElement('div');\n\n                        i.setAttribute('class', 'row');\n\n                        var o = yr(new Date(1000 * n[ct]));\n                        var u = n[st];\n\n                        if(wo > 1e7) {\n                            l = Math.round(1e8 * u);\n                        } else {\n                            l = parseFloat(n[st].toPrecision(8).substr(0, 10));\n                        }\n\n                        i.innerHTML = t.Gi + o + t.dL + e + t.Li + l + t.UT + a + t.WI;\n\n                        i.tx = n;\n                        i.tx_style = e;\n\n                        return i;\n                    }\n\n                    // write trades to the log div\n                    function Gl() {\n                        var n, e, r, o, i, u, l, a, s, c, f, h, p, b, g, m;\n\n                        window.Measurer('trade-log').start();\n\n                        el.sort(function (n, t) {\n                            return n[ft] - t[ft]\n                        })\n\n                        r = Ei;\n                        u = Ei.childNodes.length;\n\n                        i = tt[d].at(0);\n                        o = tt[v].at(-1);\n\n                        var inserted = 0;\n                        c = i != null && o != null && r.childNodes.length > 10;\n                        f = 0;\n\n                        var disableAnimations = !performanceSettings.enable_tradelog_animation;\n\n                        for (p = el.length; p > f; f++) {\n                            for (p = el.length; p > f; f++) {\n                                s = el[f];\n                                g = r.childNodes;\n                                h = 0;\n                                for (b = g.length; b > h && ((n = g[h]), !(n.tx[ft] <= s[ft])); h++) {}\n                            }\n\n                            if (s[ht] === 'bid') {\n                                a = 'green';\n                            } else if (s[ht] === 'ask') {\n                                a = 'red';\n                            } else if (n) {\n                                if (c) {\n                                    l = (i[0] + o[0]) / 2;\n\n                                    if (s[st] < l) {\n                                        a = 'red';\n                                        s[ht] = 'bid';\n                                    } else {\n                                        a = 'green';\n                                        s[ht] = 'ask';\n                                    }\n                                } else {\n                                    a = n.tx[st] < s[st] ? 'green' : n.tx[st] > s[st] ? 'red' : n.tx_style;\n                                }\n                            } else {\n                                a = 'green';\n                            }\n\n                            if (s.count == null) {\n                                s.count = 1;\n                            }\n\n                            e = jl(s, a);\n\n                            var updateOldTrades = true;\n\n                            if ((n != null ? n.tx[ft] : void 0) < s[ft]) {\n                                if (s[ct] - n.tx[ct] <= 1 && n.tx[ht] === s[ht] && updateOldTrades) {\n                                    s[lt] += n.tx[lt];\n                                    s.count += n.tx.count;\n                                    e = jl(s, a);\n                                    n.innerHTML = e.innerHTML;\n                                    n.tx = e.tx;\n                                } else {\n                                    r.insertBefore(e, n);\n                                    if (u && !disableAnimations) {\n                                        (function(n) {\n                                            var e = $(n);\n                                            /*if (e && e[0] && e[0].animate !== undefined) {\n                                                e[0].animate(\n                                                    [\n                                                        { height: 0, background: '#333', offset: 0 },\n                                                        { height: '13px', offset: 0.5 },\n                                                        { background: '#333', offset: 1 }\n                                                    ],\n                                                    { easing: 'ease-in', duration: 1000 + Math.min(inserted, 20) * 20 }\n                                                );\n                                            } else {*/\n                                                e.addClass('animate');\n                                            //}\n                                            inserted++;\n                                            return e;\n                                        })(e);\n                                    }\n                                }\n                            } else {\n                                r.appendChild(e);\n                            }\n                        }\n\n                        while (r.childNodes.length > 150) {\n                            r.removeChild(r.childNodes[r.childNodes.length - 1]);\n                        }\n\n                        if ((xe = (m = r.childNodes[0]) != null ? m.tx : void 0)) {\n                            a = r.childNodes[0].tx_style;\n                            Bu.text(xe[st].toString()).attr(t.QQ, a);\n                            document.title = xe[st] + t.Iz + $hsymbol + t.XO;\n                            te = false;\n                        }\n\n                        el = [];\n                        cu = !0;\n\n                        window.Measurer('trade-log').stop();\n\n                        return this;\n                    }\n\n                    // orderbook table\n                    function ql() {\n                        var n, e, r, o, i, u, l, a, s, c, f, h, g, m, F, x, y, $, w, T, V, k, S, M, _, I, X, Z, J, P, B, O, R, E, N, L, U;\n\n                        window.Measurer('orderbook-table').start();\n                        window.Measurer('orderbook-table-1').start();\n\n                        x = tt;\n\n                        i = x[d];\n                        l = x[v];\n\n                        ol = Mi[\"orderbook_precision\"];\n\n                        V = function() {\n                            switch (ol) {\n                                case \"high\":\n                                    return 5;\n                                case \"medium\":\n                                    return 4;\n                                case \"low\":\n                                    return 3;\n                                default:\n                                    return 8\n                            }\n                        }();\n\n                        Mi[\"orderbook_precision_int\"] = V;\n\n                        if (8 === V) {\n                            i = i.slice(0, Ut - 1);\n                            l = l.slice(-Ut, -1);\n\n                            if(Bo !== H) {\n                                N = function () {\n                                    var n, t, e, r;\n                                    for (e = [i, l], r = [], n = 0, t = e.length; t > n; n++) T = e[n], r.push(function () {\n                                        var n, t, e;\n                                        for (e = [], n = 0, t = T.length; t > n; n++) w = T[n], e.push([w[0], w[0] * w[1]]);\n                                        return e\n                                    }());\n                                    return r\n                                }();\n\n                                i = N[0];\n                                l = N[1];\n                            };\n                        } else {\n                            for (g = 0, c = [], m = []; y = i.get(g++);)\n                                if (o = Bo === H ? [parseFloat(Ll(y[0], V)), y[1]] : [parseFloat(Ll(y[0], V)), y[0] * y[1]], c[0] === o[0]) c[1] += o[1];\n                                else if (m.push(o), c = o, m.length === Ut) break;\n                            for (i = m, g = 0, c = [], F = []; $ = l.get(- ++g);)\n                                if (u = Bo === H ? [parseFloat(Ul($[0], V)), $[1]] : [parseFloat(Ul($[0], V)), $[0] * $[1]], c[0] === u[0]) c[1] += u[1];\n                                else if (F.push(u), c = u, F.length === Ut) break;\n                            l = F.reverse()\n                        }\n\n                        for (r = [], X = 0, P = i.length; P > X; X++) L = i[X], k = L[0], n = L[1], r.push(parseFloat(n));\n                        for (Z = 0, B = l.length; B > Z; Z++) U = l[Z], k = U[0], n = U[1], r.push(parseFloat(n));\n\n                        window.Measurer('orderbook-table-1').stop();\n\n                        // r is array of amounts. why?\n\n                        f = Math.max.apply(Math, r),\n                        h = parseInt(f).toString().length,\n                        e = 5 - h,\n                    //    window.Measurer('orderbook-table-3').start(),\n                        oa(t.GO, i, e),\n                        oa(t.LG, l, e),\n                    //    window.Measurer('orderbook-table-3').stop(),\n                        a = x[p].slice(0, Ut - 1),\n                        s = x[b].slice(-Ut, -1),\n                        _ = [],\n                        S = 0;\n\n                        for (J = 0, O = a.length; O > J; J++) {\n                            o = a[J];\n                            S += Bo === H ? o[1] : o[2];\n                            _.push([o[0], S]);\n                        }\n\n                        for (I = [], M = 0, s.reverse(), E = 0, R = s.length; R > E; E++) u = s[E], M += Bo === H ? u[1] : u[2], I.push([u[0], M]);\n\n                        Ue = Math.max(S, M), I.reverse(),\n                    //    window.Measurer('orderbook-table-4').start(),\n                        oa(t.PY, I),\n                        oa(t.LE, _),\n                    //    window.Measurer('orderbook-table-4').stop(),\n                        _.length && (Je = _[_.length - 1][1]);\n\n                        window.Measurer('orderbook-table').stop();\n\n                        return I.length && (Oe = I[0][1]), null\n                    }\n\n                    function na() {\n                        ur[0].changed_at = 0;\n\n                        return ur.text(0);\n                    }\n\n                    function ta(n) {\n                        // bug\n                        // 0.00002605 is rendered as \"0.000026<g>0</g>\"\n                        var e;\n                        return e = wo > 1e7 ? Math.round(1e8 * n) + \"\" : n.toPrecision(9).substr(0, 9+(n<1?1:0)).replace(/(.[^.])(0+)$/, t.Zl)\n                    }\n\n                    // return price for sdepth\n                    function ea(n, e) {\n                        // console.log('es', n, e);\n\n                        var r, o,\n                            precision = 6,\n                            notation = \"\",\n                            format = \"$1$2\";\n\n                        if (1e-7 >= xo && Bo === H) return r = parseInt(n).toString();\n\n                        if (window.$is_zh && n >= 1e6) {\n                            n = parseFloat(n / 10000);\n                            notation = t.Th;\n                        } else if (n >= 1e6) {\n                            n = parseFloat(n / 1e6);\n                            notation = t.Td;\n                            precision = 5;\n                        } else if (n >= 1000) {\n                            n = parseFloat(n / 1000);\n                            notation = t.Fg;\n                            precision = 5;\n                        } else {\n                            format = t.Zl;\n                        }\n\n                        var res = (null != e ?\n                            (o = n.toFixed(e).substr(0, 7).replace(/(\\.[^.])(0+)$/, format), o = n.toFixed(e).substr(0, 7)) :\n                            o = n.toPrecision(precision).substr(0, precision).replace(/(\\.[^.])(0+)$/, format)) + notation;\n\n                        res = res.toString();\n\n                        if(notation) {\n                            return res;\n                        } else {\n                            return res.replace(/\\.\\d+/, t.Va);\n                        }\n                    }\n\n                    // what is this function?\n                    function ra(n) {\n                        if (window.$is_zh) {\n                            if (Ue >= 1e6) {\n                                return parseInt(n / 1e4) + t.Th;\n                            } else {\n                                return parseInt(n);\n                            }\n                        } else if (Ue >= 1e5) {\n                            return parseInt(n / 1e3) + t.Fg;\n                        } else {\n                            return parseInt(n);\n                        }\n                    }\n\n\n                    // this function is responsible for most of non-drawing CPU time\n                    function oa(n, e) {\n                        var r, o, i, u, l, a, c, f, h, p, v, b, g, m, F, x, y, w, T, V, k, S;\n\n                        var useAnimation = performanceSettings.enable_orderbook_animation && (!('hidden' in document) || !document.hidden);\n                        var changeColorAnimation = performanceSettings.enable_orderbook_color_animation;\n\n                        var divsClasses = [];\n                        var runTimer = false; // true || (n === \"asks\" || n === \"bids\");\n                        var runTimerId = 'orderbook-table-x-'+n;\n\n                        if(runTimer) {\n                            window.Measurer(runTimerId+'-0').start();\n                        }\n\n                        l = n[0] === \"g\";\n                        u = -1 !== n.indexOf(\"ask\");\n\n                        if(null == Zr[n]) {\n                            Zr[n] = {}\n                        }\n\n                        g = Zr[n];\n                        v = $(\"#\" + n + \" .table\");\n                        o = 1200;\n                        a = Date.now();\n                        c = [];\n\n                        var emptyEl = $(\"<div class=row><span class=price></span> <span class=amount></span></div>\");\n\n                        /*\n                        var divEl = document.createElement('div');\n                        divEl.classList.add(\"row\");\n                        var divElSpan1 = document.createElement('span');\n                        divElSpan1.classList.add(\"price\");\n                        var divElSpan2 = document.createElement('span');\n                        divElSpan2.classList.add(\"amount\");\n\n                        divEl.appendChild(divElSpan1);\n                        divEl.appendChild(divElSpan2);\n                        */\n\n                        for (h in g) {\n                            if(so.call(g, h)) {\n                                m = g[h];\n\n                                c.push(parseFloat(h));\n                            }\n                        }\n\n                        e.reverse();\n                        c.sort(function(n, t) {\n                            return t - n\n                        });\n\n                        f = Mi[\"orderbook_precision_int\"];\n                        F = -1;\n\n                        if(runTimer) {\n                            window.Measurer(runTimerId+'-0').stop();\n                        }\n\n                        // x is slowest here\n                        /* todo: round prices and feed new array */\n                        x = function (n, e) {\n                            var r, i, u, f, h, d, p, b, el;\n\n                            if(runTimer) {\n                                window.Measurer(runTimerId + '-start').start();\n                            }\n\n                            if (l) {\n                                h = (n * yo).toFixed($o);\n                                r = Math.round(e)\n                            } else {\n                                h = n.toPrecision(12);\n                                r = e\n                            }\n\n                            n = parseFloat(h);\n                            e = parseFloat(r);\n\n                            if(runTimer) {\n                                window.Measurer(runTimerId + '-start').stop();\n                            }\n\n                            // if html element exists\n                            if (g[n]) {\n                                if(runTimer) {\n                                    window.Measurer(runTimerId+'-gn').start();\n                                }\n\n                                el = g[n];\n\n                                // update volume\n                                // fixme: can be optimized\n                                if(changeColorAnimation && !l && e !== el.amount && s) {\n                                    if (e > el.amount) {\n                                        el.ob_amount.css(\"color\", \"#6C6\")\n                                    //    $(\"g\", el.ob_amount).css(\"color\", \"#6C6\")\n                                    //    el.ob_amount.addClass(\"green\");\n                                    } else if (e < el.amount) {\n                                        el.ob_amount.css(\"color\", \"#F66\");\n                                    //    $(\"g\", el.ob_amount).css(\"color\", \"#F66\")\n                                    //    el.ob_amount.addClass(\"red\");\n                                    }\n\n                                    // how is it not a memory leak?\n                                    setTimeout(function () {\n                                        requestAnimationFrame(function() {\n                                            return el.ob_amount.css(\"color\", \"inherit\")\n                                        //    return el.ob_amount.removeClass(\"red\").removeClass(\"green\")\n                                        })\n                                    }, o);\n                                };\n\n                                if(runTimer) {\n                                    window.Measurer(runTimerId+'-gn').stop();\n                                }\n                            } else {\n                                if(runTimer) {\n                                    window.Measurer(runTimerId+'-else').start();\n                                }\n\n                                el = emptyEl.clone();\n\n                                if(runTimer) {\n                                    window.Measurer(runTimerId + '-else-1').start();\n                                }\n\n                                // moved link_estimate_trading hover out of here\n\n                                u = !1;\n                                b = c.length;\n\n                                // find an element before which to insert the el\n                                for (p = 0; p < b; p++) {\n                                    f = c[p];\n\n                                    if (n > f) {\n                                        g[f].before(el);\n                                        u = !0;\n\n                                        break\n                                    }\n                                }\n\n                                if(!u) {\n                                    v.append(el);\n                                }\n\n                                if(c.length && $t && useAnimation) {\n                                    divsClasses.push({\n                                        \"addClass\": \"animated\",\n                                        \"element\": el\n                                    });\n                                }\n\n                                if(runTimer) {\n                                    window.Measurer(runTimerId + '-else-1').stop();\n                                    window.Measurer(runTimerId + '-else-2').start();\n                                }\n\n                                g[n] = el;\n\n                            //    el.ob_price = $(\".price\", el);\n                            //    el.ob_amount = $(\".amount\", el);\n\n                                el.ob_price = $(el[0].getElementsByClassName('price')[0]);\n                                el.ob_amount = $(el[0].getElementsByClassName('amount')[0]);\n\n                                if(runTimer) {\n                                    window.Measurer(runTimerId+'-else-2').stop();\n                                    window.Measurer(runTimerId+'-else').stop();\n                                }\n                            }\n\n                            if(runTimer) {\n                                window.Measurer(runTimerId+'-end').start();\n                            }\n\n                            if (l) {\n                                r = ra(e);\n                            } else {\n                                h = ta(n);\n                                r = ea(e);\n                            }\n\n                            if (F === parseInt(n)) {\n                                h = h.replace(/(\\d+)\\./, \"<h>$&</h>\")\n                            }\n\n                            if (el.amount_str !== r) {\n                                el.ob_amount.html(r);\n                                el.amount_str = r;\n                            }\n\n                            if (el.price_str !== h) {\n                                el.ob_price.html(h);\n                                el.price_str = h;\n                            }\n\n                            F = parseInt(n);\n\n                            el.price = n;\n                            el.amount = e;\n                            el.found_at = a;\n\n                            if(runTimer) {\n                                window.Measurer(runTimerId+'-end').stop();\n                            }\n\n                            return el;\n                        };\n\n                        y = function(n, e) {\n                            if(i > Ut + p) {\n                                e.remove();\n\n                                delete g[n];\n                            }\n\n                            if(e.found_at < a && Ut > i) {\n                                p++;\n\n                                //e.removeClass(\"new\");\n                                //e.addClass(\"remove\");\n\n                                delete g[n];\n\n                                if($t && useAnimation) {\n                                    divsClasses.push({\n                                        \"addClass\": \"remove\",\n                                        //    \"removeClass\": \"animated\",\n                                        \"element\": e\n                                    });\n\n                                    setTimeout(function() {\n                                        return e.remove()\n                                    }, 1300)\n\n/*\n                                    if($is_mobile) {\n                                        setTimeout(function() {\n                                            return e.remove()\n                                        }, 1.2 * o)\n                                    } else {\n                                        setTimeout(function () {\n                                            return e.slideUp(function () {\n                                                return e.remove()\n                                            })\n                                        }, 0.8 * o)\n                                    }\n                                    */\n                                } else {\n                                    e.remove()\n                                }\n                            } else {\n                                ++i;\n                            }\n                        };\n\n                        if(runTimer) {\n                            window.Measurer(runTimerId+'-1').start();\n                        //    window.Measurer(runTimerId+'-1-1').start();\n                        }\n\n                        var d = [];\n\n                        for (h in g) {\n                            if(so.call(g, h)) {\n                                b = g[h];\n                                d.push(parseFloat(h));\n                            }\n                        }\n\n                        d.sort(function(n, t) {\n                            return t - n;\n                        });\n\n                        if(u) {\n                            d.reverse();\n                        }\n\n                        if(runTimer) {\n                        //    window.Measurer(runTimerId+'-1-1').stop();\n                            window.Measurer(runTimerId+'-1-2').start();\n                        }\n\n                        for (i = w = 0, V = e.length; w < V; i = ++w) {\n                            S = e[i];\n\n                            h = S[0];\n                            r = S[1];\n\n                            x(h, r);\n                        }\n\n                        if(runTimer) {\n                            window.Measurer(runTimerId+'-1-2').stop();\n                            window.Measurer(runTimerId+'-1').stop();\n                        //    window.Measurer(runTimerId+'-2').start();\n                        }\n\n                        i = 0;\n                        d = [];\n\n                        for (h in g) {\n                            if(so.call(g, h)) {\n                                b = g[h];\n                                d.push(parseFloat(h));\n                            }\n                        }\n\n                        d.sort(function(n, t) {\n                            return t - n;\n                        });\n\n                        if(u) {\n                            d.reverse();\n                        }\n\n                        i = 0;\n                        p = 0;\n\n                        for (T = 0, k = d.length; k > T; T++) {\n                            h = d[T];\n                            b = g[h];\n\n                            y(h, b);\n                        }\n\n                        if(runTimer) {\n                        //    window.Measurer(runTimerId+'-2').stop();\n                        }\n\n                        for(i in divsClasses) {\n                            if(!divsClasses.hasOwnProperty(i)) {\n                                continue;\n                            }\n\n                            var divInfo = divsClasses[i];\n\n                            divInfo['element'].addClass(divInfo['addClass']);\n\n                            if(divInfo['removeClass']) {\n                                divInfo['element'].removeClass(divInfo['removeClass']);\n                            }\n                        }\n\n                        e.reverse();\n                        cu = !0;\n\n                        return this\n                    }\n\n                    function ia(n) {\n                        var e = $('#dlg_' + n);\n\n                        if (e.is(':visible')) {\n                            return e.hide();\n                        } else {\n                            $(\".link_\" + n + t.UC).click();\n                            return $(t.pv, e).focus();\n                        }\n                    }\n\n                    function ua(n, e) {\n                        if (e == null) {\n                            e = true;\n                        }\n\n                        $(\"a.mode\").removeClass(\"selected\");\n\n                        if (To) {\n                            To = null;\n                            Vo.pop();\n                            cu = true;\n                        }\n\n                        if (!e && G === n) {\n                            n = \"cross\";\n                        }\n\n                        var o = $(t.XN + n);\n                        o.addClass(\"selected\");\n\n                        var r = true;\n\n                        Ye = je[n];\n\n                        if (n === \"cross\") {\n                            r = false;\n                        } else {\n                            Mo = true;\n                            cu = true;\n                        }\n\n                        if (r) {\n                            Nu.removeClass(\"hide_cursor\");\n                        } else {\n                            Nu.addClass(\"hide_cursor\");\n                        }\n\n                        $(\"a[mode=\" + n + \"]\").addClass(\"selected\");\n\n                        ke.mode = G = n;\n\n                        return false;\n                    }\n\n                    function la() {\n                        function n(n) {\n                            if(n) {\n                                Hl();\n\n                                ru(\"retry after 5 seconds\");\n\n                                Kr(5000, function() {\n                                    la(Bl())\n                                })\n\n                                return void 0\n                            } else {\n                                we[Gu].addClass(\"selected\");\n\n                                po = we[Gu];\n\n                                if($(\"#dropdown-period-value\").length) {\n                                    $(\"#dropdown-period-value\").html(po.text());\n                                }\n\n                                return aa()\n                            }\n                        }\n                        Gu = parseInt(window.$step || Ku(\"system:step\") || 900),\n                        ru('la Ql'),\n                        Ql(Gu, function() {\n                            n((Qi = arguments[0], Qu = arguments[1], Qi))\n                        })\n                    }\n\n                    function aa() {\n                        function n(n) {\n                            var e, r, o = this;\n\n                            ru(\"get history trades\"),\n                            rr(\n                                t.LY + $ssl + t.YT + $host + \"/trades\", {\n                                    since: 0,\n                                    symbol: $symbol\n                                },\n                                function() {\n                                    Qi = arguments[0];\n                                    Qu = arguments[1];\n\n                                    if (Qi) {\n                                        ru(Qi);\n\n                                        return n();\n                                    }\n\n                                    var u = Qu.reverse();\n                                    var t = 0;\n\n                                    for (var i = u.length; i > t; t++) {\n                                        e = u[t];\n\n                                        if (e.tid <= ye) {\n                                            r = zr(e);\n                                            el.push(r);\n                                        }\n                                    }\n\n                                    su = true;\n                                    n(o);\n                                }\n                            )\n                        }\n\n                        Dl(wr(Yt(Er[w], _)));\n\n                        ru(\"Initialize Depth Digger\");\n\n                        se = true,\n                        function(n) {\n                             n = Vr(\"Depth\");\n                             return function() {\n                                function e() {\n                                    rr(o, function() {\n                                        function r() {\n                                            (null != Qu ? Qu.return : void 0) && ne.push({\n                                                type: \"depth\",\n                                                depth: Qu\n                                            }), bo && pe ? Kr(60000, function(n) {\n                                                e(n)\n                                            }) : Kr(No, function(n) {\n                                                e(n)\n                                            })\n                                        }\n                                        Qi = arguments[0], Qu = arguments[1], Qi ? (n(t.Uv), Kr(15000, function() {\n                                            return e()\n                                        })) : r()\n                                    })\n                                }\n                                var r, o, i;\n                                i = \"http\" + $ssl + \"://\" + 'depth-' + window.$host + t.DA + $symbol, o = i, r = \"\", e()\n                            }(), null\n                        }(ru),\n\n                        function() {\n                            function n() {\n                                function n() {\n                                    function i() {\n                                        function i() {\n                                            o = \"http\" + $ssl + \"://\" + 'depth-' + window.$host + \"/sdepth?symbol=\" + $symbol;\n                                            o += t.KR;\n\n                                            rr(o, function() {\n                                                function o() {\n                                                    function o() {\n                                                        function e() {\n                                                            if (r++ < Eo) {\n                                                                Kr(Lo, function(n) {\n                                                                    e(n);\n                                                                });\n                                                            } else {\n                                                                o();\n                                                            }\n                                                        }\n\n                                                        function o() {\n                                                            n(null);\n                                                        }\n\n                                                        if (window.$p) {\n                                                            Kr(Lo, function(t) {\n                                                                n(t);\n                                                            });\n                                                        } else {\n                                                            r = 0;\n\n                                                            ru('wait cycle' + Eo);\n\n                                                            e();\n                                                        }\n                                                    }\n\n                                                    e = 0;\n\n                                                    if (Qu && Qu.return) {\n                                                        ne.push({ type: 'sdepth', sdepth: Qu });\n                                                        o();\n                                                    } else {\n                                                        Kr(5000, function() {\n                                                            o();\n                                                        });\n                                                    }\n                                                }\n\n                                                Qi = arguments[0];\n                                                Qu = arguments[1];\n\n                                                if (Qi) {\n                                                    e++;\n\n                                                    Kr(5000 * e, function() {\n                                                        if (e > 3) {\n                                                            e = 3;\n                                                        }\n\n                                                        return n();\n                                                    });\n                                                } else {\n                                                    o();\n                                                }\n                                            })\n                                        }\n                                        oe ? Kr(1000, function() {\n                                            return n()\n                                        }) : i()\n                                    }\n                                    bo && pe ? Kr(1000, function() {\n                                        return n()\n                                    }) : i()\n                                }\n                                e = 0, n()\n                            }\n                            var e, r, o;\n                            bo ? Kr(5000, function() {\n                                n()\n                            }) : Kr(2000, function() {\n                                n()\n                            })\n                        }();\n\n                        if($test) {\n                            return void 0;\n                        }\n\n                        ru(\"Initialize FullSync System\"),\n                        tl = false,\n                        (rl = function(e) {\n                            var r, o, i, u, l;\n                            e = Vr(t.KO),\n                            n(function() {\n                                function n() {\n                                    r = \"\";\n\n                                    rr(t.LY + $ssl + t.YT + $host + \"/trades\", {\n                                        since: ye,\n                                        symbol: $symbol\n                                    }, function() {\n                                        function a() {\n                                            function a() {\n                                                function a() {\n                                                    var a = Rl(o);\n\n                                                    u = a[0];\n                                                    i = a[1];\n\n                                                    if (i > 0) {\n                                                        ur[0].changed_at = 0;\n\n                                                        if (bo) {\n                                                            e( \"found \" + i + \" missed trade\" + (i > 1 ? \"s\" : \"\") + r);\n                                                        } else {\n                                                            e( \"found \" + i + \" trade\" + (i > 1 ? \"s\" : \"\") + r);\n                                                        }\n                                                    }\n                                                    if (u) {\n                                                        for (Dl(u); (l = Vi[0]) && l[at] < Date.now() - 3e5; ) {\n                                                            delete Fi[l[ft]];\n                                                            Vi.shift();\n                                                        }\n                                                        su = true;\n                                                    }\n                                                    Kr(Uo, function(t) {\n                                                        n(t);\n                                                    });\n                                                }\n\n                                                var s;\n\n                                                o = (function() {\n                                                    var e = Qu.reverse();\n                                                    var r = [];\n                                                    var n = 0;\n                                                    for (var t = e.length; t > n; n++) {\n                                                        s = e[n];\n                                                        s.price = s.price;\n                                                        s.amount = s.amount;\n                                                        s.price_currency = tr;\n                                                        r.push(s);\n                                                    }\n                                                    return r;\n                                                })();\n\n                                                Qu = { result: 'success', return: o };\n\n                                                if (Qu.result !== 'success') {\n                                                    e(t.Uq + Qu.error);\n                                                }\n\n                                                o = Qu.return;\n\n                                                if (o.length === 0) {\n                                                    Kr(Uo, function() {\n                                                        return n();\n                                                    });\n                                                } else {\n                                                    a();\n                                                }\n                                            }\n\n                                            if (Qu != null ? Qu.reverse : void 0) {\n                                                a();\n                                            } else {\n                                                Kr(Uo, function() {\n                                                    return n();\n                                                });\n                                            }\n                                        }\n\n                                        Qi = arguments[0];\n                                        Qu = arguments[1];\n\n                                        if (Qi) {\n                                            Kr(Uo, function() {\n                                                return n();\n                                            });\n                                        } else {\n                                            a();\n                                        }\n                                    })\n                                }\n                                n()\n                            })\n                        })(ru),\n                        bo ? (\n                            ru(\"Initialize Real-time System\"),\n                            function(n) {\n                                n = Vr('Realtime');\n\n                                var e = window.$host.replace(/s(\\d)/, 'd$1').replace(/sp/, 'dp');\n                                var webSocketsHosts = [];\n\n                                for(var wsI = 0, wsTo = window.$ws_servers.length; wsI < wsTo; wsI++) {\n                                    webSocketsHosts.push('ws' + $ssl + '://' + window.$ws_servers[wsI] + '?symbol=' + window.$symbol);\n                                }\n\n                                window.taskQueue = ne;\n\n                                er(webSocketsHosts, {\n                                    onopen: function(n) {\n                                        S[u] = n;\n                                        return fe(S);\n                                    },\n                                    onmessage: function(e, r) {\n                                        function updateRefreshTimer() {\n                                            ur[0].changed_at = 0;\n                                        }\n\n                                        var i;\n                                        var u;\n                                        var l;\n                                        var a;\n                                        var s;\n                                        var c;\n                                        var f;\n                                        var h;\n                                        var d;\n\n                                        oe = true;\n                                        go = Date.now();\n\n                                        var o = JSON.parse(r.data);\n\n                                        if (!(c = o != null ? o.type : void 0)) {\n                                            i = o[0];\n\n                                            if(!i) {\n                                                return this;\n                                            }\n\n                                            switch (i[0]) {\n                                                case 'c':\n                                                    break;\n\n                                                case 's':\n                                                    c = o[1];\n                                                    d = c.split(':');\n\n                                                    c = d[0];\n                                                    u = d[1];\n\n                                                    switch (c) {\n                                                        case 'trades':\n                                                            l = u;\n                                                            s = o[2];\n                                                            f = 0;\n                                                            for (h = s.length; h > f; f++) {\n                                                                a = s[f];\n                                                                le(S, l, a);\n                                                            }\n                                                            cu = true;\n                                                    }\n                                            }\n\n                                            return this;\n                                        }\n\n                                        switch (c) {\n                                            case 'trades':\n                                                updateRefreshTimer();\n\n                                                n('trades: ' + o.trades.length);\n\n                                                ne.push(o);\n                                                break;\n                                            case 'ticker':\n                                                updateRefreshTimer();\n\n                                                n('ticker: ' + o.symbol + ' ' + o.ticker.last);\n\n                                                Nl(o.symbol, o.ticker);\n\n                                                break;\n                                            case 'sdepth':\n                                                updateRefreshTimer();\n\n                                                ne.push(o);\n\n                                                break;\n                                            case 'depth':\n                                                updateRefreshTimer();\n\n                                                ne.push(o);\n\n                                                break;\n\n                                            case 'ping':\n                                                n('ping');\n                                        }\n                                    },\n                                    onerror: function(t, e) {\n                                        return n(JSON.stringify(e));\n                                    },\n                                    ondead: function() {\n                                        return (S[u] = null);\n                                    },\n                                    timeout: 30 * 1000\n                                });\n                                return 0;\n                            }(ru)\n                        ) : ru(\"<b>Realtime System only works on IE 10+, Chrome, FF</b>\"),\n                        function() {\n                            $debug || Kr(120000 + 60000 * Math.random(), function() {\n                                return;\n\n                                // if window.location.href.indexOf('dom') === -1\n                                // blocks updating charts wtf\n\n                                return ol = (-1 === il[eu][Di].indexOf(Du)) >> 0, Fi[ol] = ol\n                            })\n                        }(),\n                        // Queued Tasks handler\n                        function() {\n                            var recalcPrecisionVariables = function(type, param) {\n                                if(!param) {\n                                    return;\n                                }\n\n                                let price = 0;\n\n                                switch(type) {\n                                    case \"trade\":\n                                        if(param.length > 0) {\n                                            price = param[0].price;\n                                        }\n                                        break;\n\n                                    case \"depth\":\n                                    case \"sdepth\":\n                                        if(param.return && param.return.asks && param.return.asks.length > 0) {\n                                            price = param.return.asks[0][0];\n                                        }\n                                        break;\n                                }\n\n                                if(price > 0) {\n                                    window.$init_price = price;\n\n                                    calcPrecision(true);\n                                }\n                            };\n\n                            function n() {\n                                // original behaviour:\n                                // drops more than 5 tasks\n                                // handles more than 20 trades trades instantly,\n                                // otherwise some weird random interval is applied\n\n                                // EXPLANATION:\n                                // Originally, BW has trades broadcasting interval of > 1s\n                                // In order to make UI more smooth, trades are handled with delay = 40 + 40 * random() ~= 60 on average\n                                // 60 * 20 trades ~= 1200 ms\n                                // Currently, BW has 400ms broadcasting interval, thus\n                                // the correct values should be 3x less\n\n                                // should not be a thing with 0-delay broadcast\n\n                                var windowTabbedOut = ('hidden' in document && document.hidden);\n                                var immediateExecution = performanceSettings.immediate_execution || windowTabbedOut;\n                                var tradesDelay = 40;\n\n                                function u() {\n                                    function handleTrades() {\n                                        if ((o = i.shift())) {\n                                            El([o]);\n\n                                            _e(tt, o);\n\n                                            au = true;\n\n                                            if(immediateExecution) {\n                                                handleTrades();\n                                            } else {\n                                                setTimeout(function(arg) {\n                                                    handleTrades(arg);\n                                                }, tradesDelay + tradesDelay * Math.random());\n                                            }\n                                        } else {\n                                            a();\n                                        }\n                                    }\n\n                                    function a() {\n                                        dt = true;\n                                        s(0);\n                                    }\n\n                                    function s() {\n                                        e = true;\n                                        u(0);\n                                    }\n\n                                    // Chrome is throttled to once A MINUTE\n                                    // https://developer.chrome.com/blog/timer-throttling-in-chrome-88/\n                                    var maxQueueLength = 100;\n\n                                    // todo: achieve this condition\n                                    // can be achieved with rate too high\n                                    // maybe on tab focus after inactivity?\n                                    while (ne.length > maxQueueLength) {\n                                        ne.shift();\n                                    }\n\n                                    r = ne.shift();\n\n                                    // console.log(Date.now(), ne.length, ne);\n\n                                    if (!r) {\n                                        return l();\n                                    }\n\n                                    var immediateTradesLength = immediateExecution ? 1 : Math.max(0, 8 - ne.length);\n\n                                    var callPrecisionCb = function (type, param) {\n                                        if(window.$init_price > 0) {\n                                            return;\n                                        }\n\n                                        recalcPrecisionVariables(type, param);\n                                    }\n\n                                    switch (r.type) {\n                                        case 'trades':\n                                            // ascending order\n                                            i = r.trades.reverse();\n\n                                            while(i.length > immediateTradesLength) {\n                                                o = i.shift();\n\n                                                if(o) {\n                                                    El([o]);\n\n                                                    _e(tt, o);\n                                                } else {\n                                                    console.error('empty o');\n                                                }\n                                            }\n\n                                            callPrecisionCb('trade', r.trades);\n\n                                            handleTrades();\n\n                                            break;\n                                        case 'sdepth':\n                                            t = r.sdepth;\n\n                                            callPrecisionCb('sdepth', r.sdepth);\n\n                                            Wl(r.sdepth);\n                                            s((dt = true));\n\n                                            break;\n                                        case 'depth':\n                                            callPrecisionCb('depth', r.depth);\n\n                                            Cl(r.depth);\n\n                                            if (t) {\n                                                Wl(t);\n                                            }\n\n                                            dt = true;\n                                            s(0);\n                                    }\n                                }\n\n                                function l() {\n                                    setTimeout(function(t) {\n                                        n(t);\n                                    }, 100);\n                                }\n\n                                u();\n                            }\n\n\n                            var t, e, r, o, i;\n\n                            t = null;\n\n                            n();\n                        }(),\n                        function() {\n                            var errorPopup = $(\"#error_popup\");\n                            var errorPopupVisible = false;\n\n                            function showInactivityPopup() {\n                                if(!errorPopupVisible) {\n                                    errorPopup.show();\n\n                                    errorPopupVisible = true;\n                                }\n                            }\n\n                            function hideInactivityPopup() {\n                                if(errorPopupVisible) {\n                                    errorPopup.hide();\n\n                                    errorPopupVisible = false;\n                                }\n                            }\n\n                            // update `Updated N seconds ago in the bottom`\n                            function n() {\n                                Kr(1000, function() {\n                                    var val = ur[0].changed_at++;\n\n                                    ur.text(val);\n\n                                    if(val > 61) {\n                                        showInactivityPopup();\n                                    } else  {\n                                        hideInactivityPopup();\n                                    }\n\n                                    if (bo) {\n                                        if (go < Date.now() - 10000 && pe) {\n                                            n($(\"#realtime_error\").fadeIn());\n                                        } else {\n                                            n($(\"#realtime_error\").fadeOut());\n                                        }\n                                    } else {\n                                        n();\n                                    }\n                                });\n                            }\n\n                            n();\n                        }(),\n                        mu.click(function() {\n                            try {\n                                ru(\"------\");\n\n                                if (Vi.length) {\n                                    ru(t.wi + Vi.length + t.Ue + yr(new Date(1000 * Vi[0][ct])));\n                                }\n\n                                ru(\"sorted txes length: \" + ju.length);\n                                ru(\"last tid: \" + ye + \" \" + yr(new Date(ye / 1000)));\n\n                                if (it.length) {\n                                    ru(t.ur + it.length + t.Ue + yr(new Date(parseInt(it[0].now) / 1000)));\n                                }\n\n                                ru(\"depth ask length \" + tt[d].size());\n                                ru(\"depth bid length \" + tt[v].size());\n                                ru(\"realtime active at \" + yr(new Date(go)));\n                                ru(\"-- STATUS --\");\n                            } catch (n) {\n                                Qi = n;\n                                ru(Qi.message);\n                            }\n                            return true;\n                        }),\n                        //ru('aa Ql'),\n                        //Ql(Io, function() {}),\n                        ve(Mi, function(n, e) {\n                            function r() {\n                                o(cu = !0)\n                            }\n\n                            function o() {\n                                return i\n                            }\n\n                            var i = this;\n\n                            switch (n) {\n                                case \"mode\":\n                                    o(cu = !0);\n                                    break;\n                                case \"market\":\n                                    de(S), e !== \"none\" ? ae(S, e, Io, function() {\n                                        r()\n                                    }) : r();\n                                    break;\n                                case \"theme\":\n                                    Ku(\"theme\", e);\n                                    hl(\"theme\", e);\n                                    o(window.location.reload());\n                                    break;\n                                case \"3d_format\":\n                                    if(window.$is_flutter_view) {\n                                        FlutterFunctions.checkLocalStorageUpdates();\n                                        o();\n                                        FlutterFunctions.refreshPage();\n                                    } else {\n                                        o(window.location.reload());\n                                    }\n                                    break;\n                                default:\n                                    o(cu = !0)\n                            }\n                        }),\n                        /* set alarm inputs */\n                        function() {\n                            function n() {\n                                o = parseFloat(pu.val());\n                                l = parseFloat(vu.val());\n                                a = parseFloat(Bu.text()) * wo;\n\n                                if (a) {\n                                    if (o && a > o) {\n                                        if (!Yi) {\n                                            cu = true;\n\n                                            if (e == null) {\n                                                e = kt('high');\n                                            }\n\n                                            Yi = true;\n\n                                            e.play().loop();\n                                        }\n                                    } else if (Yi) {\n                                        cu = true;\n\n                                        e.stop();\n\n                                        Yi = false;\n                                    }\n\n                                    if (l && l > a) {\n                                        if (!ou) {\n                                            cu = true;\n\n                                            if (i == null) {\n                                                i = kt('low');\n                                            }\n\n                                            ou = true;\n\n                                            i.play().loop();\n                                        }\n                                    } else if (ou) {\n                                        cu = true;\n\n                                        i.stop();\n\n                                        ou = false;\n                                    }\n                                }\n                                Kr(500, function(t) {\n                                    n(t);\n                                });\n                            }\n\n                            var e, r, o, i, u, l, a, s, c;\n\n                            e = null;\n                            i = null;\n                            r = '' + $symbol + ':alarm:high';\n                            u = '' + $symbol + ':alarm:low';\n\n                            pu.keydown(function() {\n                                return (cu = true);\n                            });\n\n                            vu.keydown(function() {\n                                return cu = !0\n                            });\n\n                            pu.keyup(function() {\n                                return Ku(r, $(this).val())\n                            });\n\n                            vu.keyup(function() {\n                                return Ku(u, $(this).val())\n                            });\n\n                            const debounce = (callback, wait) => {\n                                let timeoutId = null;\n\n                                return (...args) => {\n                                    window.clearTimeout(timeoutId);\n\n                                    timeoutId = window.setTimeout(() => {\n                                        callback.apply(null, args);\n                                    }, wait);\n                                };\n                            }\n\n                            const signalFlutter = function(alertSide, r) {\n                                if(!window.$is_flutter_view) {\n                                    return;\n                                }\n\n                                try {\n                                    window.FlutterFunctions.updateAlert(alertSide, r / wo);\n                                } catch (err) {\n                                    console.error(err);\n                                }\n                            }\n\n                            s = Ku(\"\" + $symbol + \":alarm:high\");\n                            c = Ku(\"\" + $symbol + \":alarm:low\");\n\n                            // high\n                            pu.on('input', debounce(function() {\n                                const price = Ku(\"\" + $symbol + \":alarm:high\");\n\n                                //alert(price);\n\n                                if(price) {\n                                    signalFlutter(\"high\", price);\n                                }\n                            }, 2500));\n\n                            // low\n                            vu.on('input', debounce(function() {\n                                const price = Ku(\"\" + $symbol + \":alarm:low\");\n\n                                if(price) {\n                                    signalFlutter(\"low\", price);\n                                }\n                            }, 2500));\n\n                            pu.val(null != s ? s : \"\");\n                            vu.val(null != c ? c : \"\");\n\n                            $(t.bw).click(function() {\n                                $(\"#alarm_high_price\").val(\"\");\n\n                                Ku.rm(r);\n\n                                signalFlutter(\"high\", 0);\n\n                                return cu = !0\n                            });\n\n                            $(t.uj).click(function() {\n                                $(\"#alarm_low_price\").val(\"\");\n\n                                Ku.rm(u);\n\n\n                                signalFlutter(\"low\", 0);\n\n                                return cu = !0\n                            });\n\n                            $(t.GS).click(function() {\n                                $(\"#alarm_high_price\").val(\"\");\n                                $(\"#alarm_low_price\").val(\"\");\n\n                                Ku.rm(r);\n                                Ku.rm(u);\n\n                                $(t.ZN).hide();\n\n                                signalFlutter(\"high\", 0);\n                                signalFlutter(\"low\", 0);\n\n                                return cu = !0\n                            });\n\n                            n()\n                        }(),\n                        function() {\n                            // this function adds empty candles\n                            // for each of cached interval\n                            function n() {\n                                for (Gu in Ur) {\n                                    if (Ur.hasOwnProperty(Gu)) {\n                                        e = Ur[Gu];\n\n                                        Or(e);\n                                    }\n                                }\n\n                                var o = S[i];\n\n                                for (r in o) {\n                                    if (o.hasOwnProperty(r)) {\n                                        t = o[r];\n\n                                        for (Gu in t) {\n                                            if (t.hasOwnProperty(Gu)) {\n                                                e = t[Gu];\n\n                                                Or(e);\n                                            }\n                                        }\n                                    }\n                                }\n\n                                cu = true;\n\n                                Kr(10 * 1000, function(t) {\n                                    n(t);\n                                });\n                            }\n\n                            var t, e, r;\n\n                            setTimeout(function() {\n                                n()\n                            }, (60 - new Date().getSeconds()) * 1000)\n                        }()\n\n                        return 0;\n                    }\n\n                    var sa, ca, fa, ha, da, pa, va, ba, ga, ma, Fa;\n\n                    window.$script_loaded = true;\n                    Fo = 'Arial, sans';\n                    qe = 'Consolas, Monospace';\n                    re = '11px';\n                    zu = null;\n\n                    if (window.localStorage == null) {\n                        window.localStorage = {};\n                    }\n\n                    if (window.sessionStorage == null) {\n                        window.sessionStorage = {};\n                    }\n\n                    (function() {\n                        function n() {\n                            function n(n) {\n                                delete sessionStorage[n];\n                                return delete localStorage[n];\n                            }\n                            function t() {\n                                var t;\n                                var r;\n                                var o;\n                                switch (arguments.length) {\n                                    case 1:\n                                        t = arguments[0];\n                                        try {\n                                            return JSON.parse(\n                                                (o = sessionStorage[t]) != null ? o : localStorage[t]\n                                            );\n                                        } catch (i) {\n                                            n(t);\n                                            return null;\n                                        }\n                                        break;\n                                    case 2:\n                                        t = arguments[0];\n                                        r = arguments[1];\n                                        delete sessionStorage[t];\n                                        return (e[t] = JSON.stringify(r));\n                                    case 3:\n                                        t = arguments[0];\n                                        r = arguments[1];\n                                        delete localStorage[t];\n                                        return (sessionStorage[t] = JSON.stringify(r));\n                                }\n                            }\n                            t.rm = function(t) {\n                                return n(t);\n                            };\n                            return t;\n                        }\n                        var e =\n                            typeof localStorage !== t.bQ && localStorage !== null ? localStorage : {};\n                        return (zu = n);\n                    })();\n\n                    Ku = zu();\n\n                    pr = $('#now');\n\n                    pr.click(function() {\n                        if ($r()) {\n                            return $('tr[o=time_zone] li[v=local]').click();\n                        } else {\n                            return $('tr[o=time_zone] li[v=utc]').click();\n                        }\n                    });\n\n                    ha = m(7);\n\n                    zo = ha[0];\n                    qo = ha[1];\n                    Ko = ha[2];\n                    jo = ha[3];\n                    Yo = ha[4];\n                    Do = ha[5];\n                    Go = ha[6];\n\n                    da = m(8);\n\n                    ui = da[0];\n                    di = da[1];\n                    si = da[2];\n                    li = da[3];\n                    ci = da[4];\n                    fi = da[5];\n                    ai = da[6];\n                    hi = da[7];\n\n                    Ge = {};\n                    je = {};\n\n                    (function() {\n                        var n;\n                        var e;\n                        var r;\n                        var l;\n\n                        var o = [\n                            [\"cross\", ui, null],\n                            [\"draw_line\", di, D],\n                            [\"draw_fline\", fi, Q],\n                            [\"draw_hline\", hi, Y],\n                            [\"draw_fhline\", si, U],\n                            [\"draw_fhlineex\", ci, W],\n                            [\"draw_ffan\", li, N],\n                            [\"draw_ffanc\", ai, L]\n                        ];\n\n                        var a = [];\n                        var i = 0;\n                        for (var u = o.length; u > i; i++) {\n                            l = o[i];\n                            e = l[0];\n                            n = l[1];\n                            r = l[2];\n                            Ge[n] = r;\n                            a.push((je[e] = n));\n                        }\n                        return a;\n                    })();\n\n                    Xo = window.$theme_dark;\n                    Zo = window.$theme_light;\n\n                    if (window.$theme_name === \"light\") {\n                        Jo = $theme_light;\n\n                        $(\"html\").attr(\"class\", \"light\");\n                    } else {\n                        Jo = $theme_dark;\n\n                        $(\"html\").attr(\"class\", \"dark\");\n                    }\n\n                    $.support.cors = true;\n\n                    il = window;\n                    Eu = $(window);\n\n                    eu = null;\n                    Di = null;\n                    Du = null;\n\n                    Iu = $('#main');\n                    Ou = $('#sidebar_outer');\n                    ku = $('#header_outer');\n                    kuHeight = ku.height();\n\n                    Vu = $('#footer_outer');\n                    Mu = $('#leftbar_outer');\n                    Ju = $(\"#nav\");\n                    Nu = $(\"#wrapper\");\n                    $u = $(\"#date\");\n                    mu = $(\"#assist\");\n                    Hu = $('#periods');\n                    Ru = $(\"#trades\");\n                    wu = $(\"#depth\");\n                    Fu = $(\"#before_trades\");\n                    gu = $(\"#ask\");\n                    xu = $(\"#bid\");\n                    Bu = $('#price');\n                    Zu = $('#markets');\n                    yu = $('#chart_info');\n                    Su = $(\"#indicator_info\");\n                    Xu = $('#main_indicator_info');\n                    bu = $(\"#dlg_estimate_trading .amount\");\n                    pu = $(\"#alarm_high_price\");\n                    vu = $(\"#alarm_low_price\");\n\n                    Yi = false;\n                    ou = false;\n\n                    Tu = {\n                        asks: $(\"#asks div\"),\n                        bids: $(\"#bids div\"),\n                        gasks: $(\"#gasks div\"),\n                        gbids: $(\"#gbids div\")\n                    };\n\n                    Ei = Ru[0];\n\n                    HeatmapCanvas = $('#canvas_heatmap')[0];\n                    Oi = $('#canvas_main')[0];\n                    Bi = $('#canvas_cross')[0];\n                    Ri = $('#canvas_shapes')[0];\n\n                    if (!Oi || !Oi.getContext) {\n                        Iu.html(\"<div style=\\\"margin:6px\\\">\" +\n                            \"<div>Sorry, your browser doesn't support BitcoinWisdom.</div>\" +\n                            \"<dl><dt>Minimum requirements:</dt>\" +\n                            \"<dd>IE 9+, Chrome, Firefox or other modern browser.</dd></dl>\" +\n                            \"</div>\");\n                        return;\n                    }\n\n                    Ii = Oi.getContext(\"2d\"),\n                    _i = Bi.getContext(\"2d\"),\n                    Xi = Ri.getContext(\"2d\"),\n                    nu = Mu.width(),\n                    qt = !0,\n                    qt = -1 === window.$theme_name.indexOf(\"filled\"),\n                    qt = !0,\n                    Mr = null,\n                    mo = null,\n                    function() {\n                        function n(n) {\n                            function e(e, r) {\n                                var o, i, u, l;\n                                if (null == r && (r = \"\"), $debug) {\n                                    if (r && (r = t.Xr + r + t.Xa), typeof e !== t.lB && (e = JSON.stringify(e)), i = yr(new Date), mu.prepend($(t.Xp + r + t.Tw).html(t.UI + i + (t.se + n + t.Xl) + e)), u = mu[0], o = u.childNodes, l = o.length, l > 100)\n                                        for (; l-- > 50;) u.removeChild(o[l]);\n                                    return this\n                                }\n                            }\n                            return e.d = function() {\n                                return $debug ? e.apply(null, arguments) : void 0\n                            }, e\n                        }\n                        return Vr = n\n                    }(),\n\n                    ru = Vr(\"Eva\"),\n                    ru(\"Welcome to BitcoinWisdom.io\"),\n\n                    qu = {\n                        60: \"1m\",\n                        180: \"3m\",\n                        300: \"5m\",\n                        900: \"15m\",\n                        1800: \"30m\",\n                        3600: \"1h\",\n                        7200: \"2h\",\n                        14400: \"4h\",\n                        21600: \"6h\",\n                        43200: \"12h\",\n                        86400: \"1d\",\n                        259200: \"3d\",\n                        604800: \"1w\",\n                    //    2628000: \"1M\",\n                    //    31536000: \"1y\"\n                    };\n                    nl = {};\n\n                    for (ji in qu) {\n                        if(qu.hasOwnProperty(ji)) {\n                            ol = qu[ji];\n                            nl[ol] = ji;\n                        }\n                    }\n\n                    we = {};\n                    po = null;\n                    pa = $(\".period\", Hu);\n\n                    for (ca = 0, fa = pa.length; ca < fa; ca++) {\n                        tu = pa[ca];\n                        tu = $(tu);\n\n                        if(Gu = nl[tu.text()]) {\n                            we[Gu] = tu,\n                            function (n, e) {\n                                return e.click(function () {\n                                    var r, o;\n\n                                    Ql(n, function () {\n                                        r = arguments[0];\n                                        o = arguments[1];\n\n                                        if(r) {\n                                            return void 0;\n                                        } else {\n                                            if(po) {\n                                                po.removeClass(\"selected\");\n                                            }\n\n                                            po = e;\n\n                                            we[n].addClass(\"selected\");\n\n                                            if($(\"#dropdown-period-value\").length) {\n                                                $(\"#dropdown-period-value\").html(po.text());\n                                            }\n\n                                            return !0\n                                        }\n                                    })\n                                })\n                            }(Gu, tu)\n                        };\n                    }\n\n                    Fi = {};\n                    Vi = [];\n                    ju = [];\n                    el = [];\n\n                    bo = window.WebSocket != null;\n                    go = Date.now();\n\n                    oe = false;\n\n                    va = m(12);\n                    ei = va[0];\n                    vi = va[1];\n                    pi = va[2];\n                    gi = va[3];\n                    oi = va[4];\n                    Ao = va[5];\n                    ri = va[6];\n                    bi = va[7];\n                    ni = va[8];\n                    ii = va[9];\n                    mi = va[10];\n                    Co = va[11];\n                    Qo = va[12];\n\n                    Ur = {};\n                    Er = null;\n\n                    tt = Se();\n\n                    it = [];\n                    Qt = null;\n                    Wt = null;\n                    At = 0;\n                    qr = null;\n                    to = null;\n                    no = {};\n                    Xr = false;\n                    Io = 60;\n                    Je = 0;\n                    Oe = 0;\n                    Le = 0;\n                    Lo = 3000;\n                    Eo = 1;\n                    No = 3e4;\n                    Uo = window.$p || 6e4;\n                    Wo = Date.now();\n                    Ut = 15;\n                    pt = 15;\n                    $t = true;\n                    Nt = null;\n                    Tt = 0;\n                    St = [];\n                    ne = [];\n                    Vo = [];\n                    ko = 0;\n                    To = null;\n                    Ye = ui;\n                    G = null;\n                    dt = false;\n\n                    $(window).on('mousemove touchmove', function() {\n                        Lo = 3000;\n                        return (Wo = Date.now());\n                    });\n\n                    kr = false;\n\n                    S = ce();\n\n                    S[o] = [Pl, Bl];\n\n                    (function() {\n                        function n() {\n                            Eo = 0.1 + (Date.now() - Wo) / 1000 / 10 / 60;\n                            Kr(500, function(t) {\n                                n(t);\n                            });\n                        }\n                        n();\n                    })();\n\n                    ie = {\n                        price_mas: {\n                            cookie: t.gC,\n                            params: [7, 30],\n                            labels: ['MA%', 'MA%', 'MA%', 'MA%']\n                        },\n                        volume_mas: {\n                            cookie: t.eZ,\n                            params: [5, 10, 20],\n                            labels: ['MA%', 'MA%', 'MA%']\n                        },\n                        bbands: {\n                            cookie: t.tL,\n                            params: [20],\n                            labels: [t.OD, t.OL, t.ka],\n                            pids: [T],\n                            fn: _t\n                        },\n                        sar: {\n                            cookie: 'sar_params',\n                            params: [0.02, 0.2, 4],\n                            labels: ['SAR'],\n                            pids: [M, I, T, P, H],\n                            fn: Et\n                        },\n                        macd: {\n                            cookie: 'macd_params',\n                            params: [12, 26, 9, 2],\n                            labels: ['MACD', 'SIG', 'HIST'],\n                            colors: [Jo[t.VB][0], Jo[t.VB][1], Jo['Main Text']],\n                            mode: ['MACD', [T]]\n                        },\n                        stoch_rsi: {\n                            cookie: t.Ak,\n                            params: [14, 14, 3, 3],\n                            labels: [t.CK, t.OA],\n                            axis: '100'\n                        },\n                        rsi: {\n                            cookie: t.Oz,\n                            params: [14],\n                            labels: [t.GC],\n                            pids: [T],\n                            axis: 'auto',\n                            fn: Rt\n                        },\n                        dmi: {\n                            cookie: t.wR,\n                            params: [14, 14],\n                            labels: [t.Ow, t.JY, t.FH, t.Ku],\n                            pids: [M, I, T],\n                            axis: 'auto',\n                            colors: [Jo[t.PO], Jo[t.PQ], Jo[t.VB][0], Jo[t.VB][1]],\n                            fn: Xt\n                        },\n                        kdj: {\n                            cookie: t.Os,\n                            params: [9, 3, 3],\n                            labels: [t.Fg, t.VW, t.ir],\n                            axis: 'custom'\n                        },\n                        cmf: {\n                            cookie: t.Eo,\n                            params: [20],\n                            labels: [t.Oo],\n                            pids: [M, I, T, H],\n                            axis: 'symm',\n                            fn: It\n                        },\n                        obv: {\n                            cookie: 'obv_params',\n                            params: [],\n                            labels: ['OBV'],\n                            pids: [T, H],\n                            axis: 'auto',\n                            fn: Ot\n                        },\n                        bid_ratio: { cookie: 'bid_ratio_params', params: [3], labels: ['BIDRATIO'] }\n                    };\n\n                    xe = null;\n                    h = null;\n                    ye = null;\n                    Xe = null;\n                    Me = null;\n                    Po = null;\n                    Ro = null;\n\n                    n = {};\n\n                    So = false;\n\n                    ur = $('#change');\n                    ur[0].changed_at = 0;\n\n                    Ue = 0;\n\n                    window.$is_mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n                        navigator.userAgent\n                    );\n\n                    window.$is_zh = (window.navigator.userLanguage || window.navigator.language).indexOf('zh') !== -1;\n\n                    Gt = {\n                        depth_hint: true,\n                        sidebar: true\n                    };\n\n                    ba = $hsymbol.match(/(.+) (.+)/);\n\n                    sl = ba[0];\n                    Ze = ba[1];\n                    E = ba[2];\n\n                    j = '';\n                    C = '';\n\n                    if ((iu = E.match(/(.+)\\/(.+)/))) {\n                        tr = iu[2];\n\n                        j = iu[1];\n                        C = iu[2];\n\n                        f = '' + iu[1] + iu[2];\n                        vo = '' + iu[2] + t.Hj + iu[1];\n                    } else if (E === t.dT) {\n                        tr = t.dT;\n                        f = t.dT;\n                        vo = t.dT;\n                        C = t.ni;\n                        j = t.dT;\n                    } else {\n                        tr = t.ni;\n                        f = t.ni;\n                        vo = t.ni;\n                        C = '';\n                        j = t.ni;\n                    }\n\n                    $(\".o li[v=base]\").text(t.zj + j + t.TZ);\n                    $(\".o li[v=quote]\").text(t.Xf + C + t.TZ);\n\n                    ru('' + tr + t.Iz + f + t.Iz + vo);\n\n                    xo = 1;\n                    $o = 0;\n                    yo = 1;\n                    wo = 1;\n\n                    ti = false;\n\n                    calcPrecision = function(recreateDepth) {\n                        var n = vl([5, 2, 1], 0.01);\n                        if (1e-7 >= n) {\n                            yo = 1e8;\n                            wo = 1e8;\n                        } else {\n                            yo = Math.pow(10, Math.ceil(Math.log(1 / n) / Math.log(10)));\n                            wo = 1;\n                        }\n                        $o = 0;\n                        if (1 > yo) {\n                            yo = 1;\n                        } else if (yo === 10) {\n                            yo = 1;\n                            $o = 1;\n                        } else if (yo === 100) {\n                            yo = 1;\n                            $o = 2;\n                        }\n                        xo = n;\n                        ru([xo, yo, $o, wo]);\n\n                        if(recreateDepth) {\n                            tt = Se(xo);\n                        }\n                    };\n\n                    if(window.$init_price > 0) {\n                        calcPrecision(false);\n                    }\n\n                    Pr = C;\n\n                    if (wo > 1e7) {\n                        C = t.DJ;\n                        f = '' + j + C;\n                        vo = '' + C + t.Hj + j;\n                    }\n\n                    tt = Se(xo);\n                    a = !window.$disable_volume || false;\n                    e = Ze !== t.Ob;\n                    jt = null;\n\n                    switch ($symbol) {\n                        case 'mtgoxbtcusd':\n                            jt = 500;\n                            break;\n                        case 'bitstampbtcusd':\n                            jt = 500;\n                            break;\n                        case 'btcchinabtccny':\n                        case 'huobibtccny':\n                            jt = 200;\n                            break;\n                        case 'btcebtcusd':\n                            jt = 200;\n                            break;\n                        case 'btceltcusd':\n                            jt = 5000;\n                            break;\n                        case 'btceltcbtc':\n                            jt = 5000;\n                            break;\n                        case 'okcoinltccny':\n                            jt = 5000;\n                    }\n\n                    pe = Ze === t.ZE,\n                    he = Ze === t.Ob,\n                    ki = null,\n                    Si = null,\n                    xi = window.$is_flutter_view ? 100 : 100, // right sidebar with depth chart width\n                    Rr = window.$is_mobile ? 6 : 8,\n                    yi = parseInt(null != (ga = Ku(\"system:barWidth\")) ? ga : 5),\n                    Ai = parseInt(null != (ma = Ku(\"system:gapWidth\")) ? ma : 3),\n                    al = (yi - 1) / 2,\n                    Hi = 0,\n                    Ti = yi + Ai,\n                    uu = null,\n                    $i = null,\n                    wi = null,\n                    Wu = null,\n                    Cu = null,\n                    Ji = null,\n                    Pi = null,\n                    Au = null,\n                    Yu = null,\n                    Ni = !1, cu = !1, su = !1, au = !1,\n                    eu = t.XB,\n                    Di = t.eH,\n                    Du = t.bh,\n                    Ci = null, Ui = null, Ne = null, Qe = null, Tr = null, ho = 0, Li = null, Wi = null,\n                    Mi = be(),\n                    window.$conf = Mi,\n                    (Zi = function() {\n                        var n, e, r, o, i, u, l, a, s, f, h;\n                        r = $.cookie(), o = function() {\n                            var n;\n                            n = [];\n                            for (ji in ie) so.call(ie, ji) && (u = ie[ji], n.push(u.cookie));\n                            return n\n                        }(), n = function() {\n                            var n, t;\n                            n = Mi[c], t = [];\n                            for (ji in n) so.call(n, ji) && (u = n[ji], t.push(ji));\n                            return t\n                        }(), a = [t.NX, t.ud, t.NV], e = [t.Ao, t.Bm, t.NT];\n                        for (ji in r)\n                            if (so.call(r, ji) && (ol = r[ji], l = null, ji !== \"theme\")) {\n                                if (co.call(n, ji) >= 0 && (l = t.NR), co.call(o, ji) >= 0) {\n                                    l = t.VT;\n                                    try {\n                                        ol = JSON.parse(ol)\n                                    } catch (d) {}\n                                }\n                                co.call(a, ji) >= 0 && (l = t.Wm), l && Ku(l + t.TC + ji, ol), ji.match(/^_/) || co.call(e, ji) >= 0 || $.removeCookie(ji, {\n                                    path: \"/\"\n                                })\n                            } for (f = 0, h = n.length; h > f; f++)\n                            if (i = n[f], s = Ku(t.Xc + i), null != s) try {\n                                ge(Mi, i, s)\n                            } catch (d) {\n                                Ku.rm(t.Xc + i)\n                            }\n                    })(),\n                        ve(Mi, function(n, e) {\n                            return Ku(t.Xc + n, e)\n                        }),\n                        function() {\n                            function n() {\n                                cl(), Kr(1000, function(t) {\n                                    n(t)\n                                })\n                            }\n                            n()\n                        }(),\n                        lockCross = false,\n                        g = null,\n                        F = null,\n                        zi = !1,\n                        Bo = H,\n                        Oo = j,\n                        function() {\n                            function n(n) {\n                                var e = n.d.updated_at;\n                                var t = (Date.now() / 1000 - e) << 0;\n\n                                e = parseInt(e);\n                                t = sr(t);\n\n                                return n.date.html(t);\n                            }\n\n                            function e(n) {\n                                if (d) {\n                                    d.removeClass(\"selected\");\n                                }\n\n                                d = $(t.NG, n);\n\n                                return d.addClass(\"selected\");\n                            }\n\n                            function r(r) {\n                                var o;\n                                var i;\n                                var a;\n                                var s;\n                                var u;\n                                var c;\n\n                                if ($user_id) {\n                                    o = r;\n\n                                    u = o.id;\n                                    a = o.subid;\n                                    s = o.symbol;\n                                    c = o.updated_at;\n\n                                    i = $(\"<div>\");\n                                    i.d = o;\n                                    i.html(t.RH + s + t.Iz + a + t.my);\n                                    i.date = $(\"g\", i);\n\n                                    n(i);\n\n                                    i.click(function() {\n                                        var handleDrawingGet = function(n) {\n                                            if (n.ok) {\n                                                o = n.data;\n                                                l = o.id;\n                                                Vo = JSON.parse(n.data.drawing);\n                                                To = null;\n                                                cu = true;\n\n                                                return e(i);\n                                            }\n                                        };\n\n                                        if(DrawingsStore.has(o.id)) {\n                                            var n = DrawingsStore.get(o.id);\n\n                                            handleDrawingGet(n);\n                                        } else {\n                                            call_api(\"drawing_get\", {id: o.id}, function () {\n                                                var n = arguments[0];\n\n                                                handleDrawingGet(n);\n                                            });\n                                        }\n                                    });\n\n                                    return i;\n                                }\n                            }\n\n                            function o(n) {\n                                var t;\n                                return t = r(n), s[n.id] = t, f.prepend(t)\n                            }\n\n                            function i() {\n                                var n, r, i, u;\n\n                                if(!$user_id) {\n                                    return;\n                                }\n\n                                r = (function() {\n                                    var e = [];\n                                    var n = 0;\n\n                                    for (var t = Vo.length; t > n; n++) {\n                                        u = Vo[n];\n                                        e.push(Qr(u));\n                                    }\n\n                                    return e;\n                                })();\n\n                                var handleDrawingReplace = function(i) {\n                                    if (i.ok) {\n                                        n = r = i.data;\n                                        l = n.id;\n\n                                        if (s[l]) {\n                                            return (s[l].d = n);\n                                        } else {\n                                            o(n);\n\n                                            return e(s[l]);\n                                        }\n                                    } else {\n                                        return;\n                                    }\n                                };\n\n                                // create new drawings locally\n                                if(!l || DrawingsStore.has(l)) {\n                                    var i = DrawingsStore.set(l, JSON.stringify(r));\n\n                                    handleDrawingReplace(i);\n                                } else {\n                                    call_api(\"drawing_replace\",\n                                        {\n                                            id: l,\n                                            symbol: window.$symbol,\n                                            drawing: JSON.stringify(r)\n                                        },\n                                        function() {\n                                            i = arguments[0];\n\n                                            handleDrawingReplace(i);\n                                        }\n                                    );\n                                }\n                            }\n\n                            function u(n) {\n                                s[n].remove();\n\n                                delete s[n];\n\n                                var e = $(\"div:first\", f).click();\n\n                                if (e.length === 0) {\n                                    Vo = [];\n                                    To = null;\n                                    l = 0;\n                                }\n\n                                cu = true;\n\n                                var handleDrawingDelete = function(i) {\n                                    if (e.length === 0) {\n                                        c();\n                                    }\n\n                                    cu = true;\n\n                                    return true;\n                                };\n\n                                if(DrawingsStore.has(n)) {\n                                    var i = DrawingsStore.delete(n);\n\n                                    handleDrawingDelete(i);\n                                } else {\n                                    call_api(\"drawing_delete\", { id: n }, function() {\n                                        handleDrawingDelete(arguments[0]);\n                                    });\n                                }\n\n                            }\n\n                            var l, a, s, c, f, h, d;\n\n                            l = null;\n                            s = {};\n                            f = $(\"#drawings\");\n                            d = null;\n\n                            (c = function() {\n                                var n, r, i;\n\n                                var u = this;\n\n                                var handleDrawingsGetAll = function(i) {\n                                    if (i.ok) {\n                                        var c = i.data.reverse();\n                                        var l = 0;\n\n                                        for (var a = c.length; a > l; l++) {\n                                            n = c[l];\n\n                                            o(n);\n\n                                            if (r.updated_at < n.updated_at) {\n                                                r = n;\n                                            }\n                                        }\n\n                                        if (r) {\n                                            s[r.id].click();\n                                        }\n                                    }\n                                };\n\n                                if ($user_id) {\n                                    r = null;\n\n                                    var localData = DrawingsStore.getAll(window.$symbol);\n\n                                    if(localData && localData.data.length) {\n                                        r = localData.data[0];\n                                    }\n\n                                    handleDrawingsGetAll(localData);\n\n                                    call_api(\"drawing_get_all\", { symbol: window.$symbol }, function(i) {\n                                        var i = arguments[0];\n\n                                        if (i.ok) {\n                                            if(!r || r.updated_at < n.updated_at) {\n                                                r = i.data[0];\n                                            }\n                                        }\n\n                                        handleDrawingsGetAll(i);\n\n                                        return u;\n                                    });\n\n                                    return;\n                                } else {\n                                    f.html(\"Need login first.\");\n                                    return;\n                                }\n                            })();\n\n                            $(t.MO).click(function() {\n                                l = 0;\n                                return i();\n                            });\n\n                            $(t.Nx).click(function() {\n                                l = 0;\n                                Vo = [];\n                                To = null;\n                                cu = true;\n                                i();\n                                return false;\n                            });\n\n                            a = [];\n\n                            $(t.Nw).click(function() {\n                                a.push(Vo);\n                                var n = s[l];\n                                if (n) {\n                                    u(l);\n                                    return $(t.Xo)\n                                        .html(t.IM + a.length + t.TZ)\n                                        .show();\n                                } else {\n                                    return;\n                                }\n                            });\n\n                            $(t.Xo).click(function() {\n                                l = 0;\n                                Vo = a.pop();\n                                $(t.Xo)\n                                    .html(t.IM + a.length + t.TZ)\n                                    .show();\n                                cu = true;\n                                i();\n                                if (a.length === 0) {\n                                    return $(this).hide();\n                                } else {\n                                    return;\n                                }\n                            });\n\n                            (h = function() {\n                                var t;\n                                for (ji in s) {\n                                    if (so.call(s, ji)) {\n                                        t = s[ji];\n                                        n(t);\n                                    }\n                                }\n                                Kr(1000, function() {\n                                    return h();\n                                });\n                            })();\n\n                            return (Dr = i)\n                        }(),\n                        function() {\n                            var heatmapArguments = [];\n\n                            var requestHeatmapVar = false;\n                            var requestCrossVar = false;\n                            var requestMainVar = false;\n                            var requestShapesVar = false;\n\n                            var frameRedrawRequest = false;\n\n                            function rafLoop() {\n                                if(!frameRedrawRequest) {\n                                    return;\n                                }\n\n                                if(requestMainVar) {\n                                    ul();\n\n                                    requestMainVar = false;\n                                }\n\n                                if(requestCrossVar) {\n                                    Il();\n\n                                    requestCrossVar = false;\n                                }\n\n                                if(requestHeatmapVar) {\n                                    window.Heatmap.draw(\n                                        heatmapArguments[0],\n                                        heatmapArguments[1],\n                                        heatmapArguments[2],\n                                        heatmapArguments[3],\n                                        heatmapArguments[4],\n                                        heatmapArguments[5],\n                                        heatmapArguments[6],\n                                        heatmapArguments[7]\n                                    );\n\n                                    requestHeatmapVar = false;\n                                }\n\n                                // shapes draw time is almost 12ms on mobile\n                                if(requestShapesVar) {\n                                    Zl();\n\n                                    requestShapesVar = false;\n                                }\n\n                                frameRedrawRequest = false;\n                            }\n\n                            /*\n59398.559999999634 \"request 1\"\n59398.699999999735 \"request 2\"\n\n59409.70499999912 59398.699999999735 \"frame 2\" 1581161940 <-- HOW IS THIS POSSIBLE?!\n59418.85999999977 59398.559999999634 \"frame 1\" 1581162060\n*/\n\n                            var requestTime, frameTimeout;\n\n                            function requestFrameRedraw() {\n                                if(frameRedrawRequest) {\n                                    return;\n                                }\n\n                                frameRedrawRequest = true;\n\n                                if('hidden' in document && document.hidden) {\n                                    setTimeout(function () {\n                                        rafLoop();\n                                    }, 1000);\n\n                                    return;\n                                } else {\n                                    window.requestAnimationFrame(rafLoop);\n                                }\n                            }\n\n                            redrawHeatmap = function(Xe, Po, To, Mo, Ti, Hi, Mi, D) {\n                                if(!('Heatmap' in window)) {\n                                    return;\n                                }\n\n                                heatmapArguments = [Xe, Po, To, Mo, Ti, Hi, Mi, D];\n\n                                requestHeatmapVar = true;\n                                requestFrameRedraw();\n                            };\n\n                            redrawCross = function() {\n                                requestCrossVar = true;\n                                requestFrameRedraw();\n                            };\n\n                            redrawMain = function() {\n                                requestMainVar = true;\n                                requestShapesVar = true;\n\n                                requestFrameRedraw();\n                            };\n\n                            redrawShapes = function() {\n                                requestShapesVar = true;\n                                requestFrameRedraw();\n                            };\n                        }(),\n                        function() {\n                            var o = false;\n\n                            // calculate distance maybe?\n                            // sets cursor\n                            function n(event) {\n                                // al & Hi - candles' width and gap\n\n                                // Ti - barSize (expected, px)\n                                // Hi - barSize (expected, px)\n\n                            //    var eventX = event.pageX;\n                            //    var eventY = event.pageX;\n\n                                var eventX, eventY;\n\n                                if(event.center) {\n                                    eventX = event.center.x;\n                                    eventY = event.center.y;\n                                } else {\n                                    if (!event.pageX && event.originalEvent && event.originalEvent.touches) {\n                                        event = event.originalEvent.touches.item(0);\n                                    }\n\n                                    eventX = event.pageX;\n                                    eventY = event.pageY;\n                                }\n\n                                var actualBarSize = Ti;\n\n                                var t = eventX;\n                                var e = eventY - kuHeight;\n\n                                Au = t;\n                                Yu = e;\n                                Wi = Math.floor((t - Hi) / Ti);\n                                t = Wi * actualBarSize + al + Hi;\n                                Ji = t;\n                                Pi = e;\n                                kr = eventX > Si - xi;\n                            }\n\n                            function e(event) {\n                                var r, i, u, l, a, s, c, f, h, d, p, v, b, g, m, F, x, y;\n\n                                o = true;\n\n                                if (!lockCross) {\n                                    n(event);\n\n                                    redrawCross();\n\n                                    if (Ni) {\n                                        redrawMain();\n                                    }\n                                }\n\n                                if (Xe) {\n                                    f = Er[w];\n                                }\n\n                                if (Ye === ui) {\n                                    return true;\n                                }\n\n                                if(!Xe || !Xe.hasOwnProperty(vt)) {\n                                    console.error(\"Xe error\");\n                                    return true;\n                                }\n\n                                window.Measurer('cursorEvent').start();\n\n                                if (!To) {\n                                    To = Ar(fl(Ye));\n\n                                    if(Vo.length > 50) {\n                                        alert(\"Maximum number of drawing (50) exceeded.\")\n                                    } else {\n                                        Vo.push(To);\n                                    }\n                                }\n\n                                switch (Xe[vt]) {\n                                    case yt:\n                                        To[B] = z;\n                                        break;\n\n                                    case xt:\n                                        To[B] = K;\n                                }\n\n                                p = Ml(Xe, Pi);\n\n                                if (Ui >= Ci + Wi) {\n                                    ol = Dt(f, Ci + Wi, k);\n\n                                    g = p;\n\n                                    a = ol[X];\n                                    u = ol[M];\n                                    l = ol[I];\n                                    i = ol[T];\n\n                                    c = [a, u, l, i];\n\n                                    r = Mi.stick_style;\n\n                                    if (r === 'line' || r === 'line_o') {\n                                        switch (Mi.line_style) {\n                                            case 'm':\n                                                v = Dt(f, Ci + Wi, Er[ii]);\n                                                c.push(v[Er[ii]]);\n                                                break;\n\n                                            case 'w':\n                                                v = Dt(f, Ci + Wi, Er[mi]);\n                                                c.push(v[Er[mi]]);\n                                        }\n                                    }\n\n                                    c = (function() {\n                                        var e = [];\n                                        var t = c.length;\n                                        for (var n = 0; n < t; n++) {\n                                            s = c[n];\n                                            e.push([s, Math.abs(s - p)]);\n                                        }\n                                        return e;\n                                    })();\n\n                                    c.sort(function(n, t) {\n                                        return n[1] - t[1];\n                                    });\n\n                                    p = c[0][0];\n\n                                    x = uo(Xe, p);\n\n                                    // ctrl\n                                    d = event != null ? event.ctrlKey : void 0;\n\n                                    if ((d || !To[nt]) && Math.abs(Pi - x) > 8) {\n                                        p = g;\n                                    }\n\n                                    F = [ol[J], p];\n                                } else {\n                                    b = Dt(f, Ui, k);\n\n                                    if (b[V] == null) {\n                                        return;\n                                    }\n\n                                    h = new Date(b[V]);\n                                    h.setSeconds(Io * (Wi - (Ui - Ci)));\n\n                                    F = [\n                                        parseInt(h.getTime() / 1000),\n                                        p\n                                    ];\n                                }\n\n                                // draw horizonal line (start y = end y)\n                                if (event && event.shiftKey) {\n                                    if (((y = To[ot]) === D || y === Q) && To[q].length) {\n                                        m = To[q][0];\n\n                                        F[1] = m[1];\n                                    }\n                                }\n\n                                Yr(To, F);\n\n                                window.Measurer('cursorEvent').stop();\n\n                                redrawShapes();\n\n                                return true;\n                            }\n\n                            // save drawing\n                            function r() {\n                                if (Xe && (To != null ? To[q].length : void 0) && Wr(To)) {\n                                    Dr();\n\n                                    return (To = null);\n                                } else {\n                                    return;\n                                }\n                            }\n\n                            function refreshLoop() {\n                                window.Measurer('frameTime').start();\n\n                                window.requestAnimationFrame(function() {\n                                    window.Measurer('frameTime').stop();\n\n                                    if (window.stats) {\n                                        window.stats.update();\n                                    }\n\n                                    refreshLoop();\n                                });\n                            }\n\n                            if (window.$debug && $is_mobile) {\n                                refreshLoop();\n                            }\n\n                            var canClearChartInfo = true;\n\n                            function clearChartInfo() {\n                                if(!canClearChartInfo) {\n                                    return;\n                                }\n\n                                isCrosshairInfoVisibleForMobile = false;\n\n                                if (!lockCross) {\n                                    Ji = null;\n                                    Au = null;\n\n                                    yu.html('');\n                                    Su.html('');\n\n                                    yl();\n                                }\n\n                                canClearChartInfo = !window.$is_mobile;\n\n                                return true;\n                            }\n\n                            function touchEnd(ev) {\n                                if (!o && Ye !== ui && Mo) {\n                                    r();\n                                }\n\n                                Ni = false;\n\n                                return true;\n                            };\n\n                            var touchStart = function(event, forceMove) {\n                                var r, i;\n\n                                // right click removes last drawn object\n                                if (event.button === 2 && Ye !== ui && Mo) {\n                                    if (To) {\n                                        if (To[q].length === 1) {\n                                            Vo.pop();\n                                        }\n\n                                        To = null;\n                                    }\n\n                                    Vo.pop();\n\n                                    Dr();\n\n                                    redrawShapes();\n                                }\n\n                                if (event.eventPhase === 3 || forceMove) {\n                                    Ni = true;\n                                    o = false;\n                                }\n\n                                n(event);\n\n                                Li = Ci + Wi;\n\n                                if (kr && Ye === ui) {\n                                    var canAddMoreAlerts = !window.$is_flutter_view || FlutterFunctions.canAddMoreAlerts;\n\n                                    ru([h, xe[st] * wo]);\n\n                                    r = h;\n\n                                    var alertSide = \"low\";\n\n                                    if (h > xe[st] * wo) {\n                                        alertSide = \"high\";\n\n                                        i = parseFloat(pu.val());\n\n                                        if (i === r) {\n                                            r = \"\";\n                                        }\n\n                                        if(r !== \"\" && !canAddMoreAlerts) {\n                                            if (window.$is_flutter_view) {\n                                                FlutterFunctions.sendCantAddMoreAlerts(alertSide, r / wo);\n                                            }\n                                        } else {\n                                            pu.val(r);\n\n                                            Ku(\"\" + $symbol + \":alarm:high\", r);\n\n                                            if (window.$is_flutter_view) {\n                                                try {\n                                                    window.FlutterFunctions.updateAlert(alertSide, r / wo);\n                                                } catch (err) {\n                                                    console.error(err);\n                                                }\n                                            }\n                                        }\n                                    } else {\n                                        i = parseFloat(vu.val());\n\n                                        if (i === r) {\n                                            r = \"\";\n                                        }\n\n                                        if(r !== \"\" && !canAddMoreAlerts) {\n                                            if (window.$is_flutter_view) {\n                                                FlutterFunctions.sendCantAddMoreAlerts(alertSide, r / wo);\n                                            }\n                                        } else {\n                                            vu.val(r);\n\n                                            Ku(\"\" + $symbol + \":alarm:low\", r);\n\n                                            if (window.$is_flutter_view) {\n                                                try {\n                                                    window.FlutterFunctions.updateAlert(alertSide, r / wo);\n                                                } catch (err) {\n                                                    console.error(err);\n                                                }\n                                            }\n                                        }\n                                    }\n\n                                    cu = true;\n                                }\n                            };\n\n                            scaleGraph = function(e, delta) {\n                                // todo: check for deltaX for touchpad\n                                var offset = e && e.hasOwnProperty('deltaY') ? e.deltaY : delta;\n\n                                if (offset > 0) {\n                                    yi += 2;\n                                } else {\n                                    yi -= 2;\n                                }\n\n                                if (yi < 3) {\n                                    yi = 1;\n                                }\n\n                                if (yi > 27) {\n                                    yi = 27;\n                                }\n\n                                Ai = Math.round(0.2 * yi);\n\n                                if (Ai < 3) {\n                                    Ai = 3;\n                                }\n\n                                if (yi === 3) {\n                                    Ai = 2;\n                                }\n\n                                if (yi === 1) {\n                                    Ai = 1;\n                                }\n\n                                Ti = yi + Ai;\n                                al = (yi - 1) / 2;\n\n                                Ku(\"system:barWidth\", yi);\n                                Ku(\"system:gapWidth\", Ai);\n\n                                Fl();\n\n                                return false;\n                            };\n\n                            if (!$is_mobile) {\n                                Nu.mouseout(clearChartInfo);\n                            } else {\n                                document.body.addEventListener('touchstart',function(e) {\n                                    var touch = e.touches[0];\n\n                                    mouseX = touch.pageX;\n                                    mouseY = touch.pageY;\n\n                                    var rect = Nu.get(0).getBoundingClientRect();\n\n                                    if(mouseX < rect.left || mouseX > rect.right || mouseY < rect.top || mouseY > rect.bottom) {\n                                        canClearChartInfo = true;\n                                        clearChartInfo();\n                                    }\n                                });\n                            }\n\n                            Nu.mousewheel(scaleGraph);\n\n                            Nu.contextmenu(function() {\n                                return false;\n                            });\n\n                            // double click on chart\n                            /*Nu.dblclick(function(evt) {\n                                if (!kr) {\n                                    if (evt.button === 0) {\n                                    //    if (autoScale) {\n                                        if (lockCross) {\n                                            gl();\n                                        } else {\n                                            bl();\n                                        }\n                                    }\n                                }\n\n                                return true;\n                            });*/\n\n                            if(window.$is_mobile && !window.$is_desktop_mode) {\n                                var element = document.getElementById('wrapper');\n                                var mc = new Hammer(element);\n\n                                var lastPinchValue = 1;\n                                mc.get('pinch').set({enable: true, threshold: 0});\n\n                                mc.on(\"pinch\", function (ev) {\n                                    if (Math.abs(1 - ev.scale) <= 0.1) {\n                                        lastPinchValue = 1;\n\n                                        return;\n                                    }\n\n                                    if (Math.abs(lastPinchValue - ev.scale) > 0.1) {\n                                        console.log(ev.scale);\n\n                                        if (ev.scale > lastPinchValue) {\n                                            scaleGraph(null, 1);\n                                        } else {\n                                            scaleGraph(null, -1);\n                                        }\n\n                                        lastPinchValue = ev.scale;\n                                    }\n                                });\n\n                                mc.get('pan').set({ enable: true, direction: Hammer.DIRECTION_ALL });\n                                mc.get('tap').set({ enable: true });\n\n                                mc.on(\"panstart\", function(ev) {\n                                //    console.log(ev.type);\n\n                                    touchStart(ev, true);\n                                });\n\n                                mc.on(\"panend\", function(ev) {\n                                //    console.log(ev.type);\n\n                                    touchEnd(ev);\n                                });\n\n                                mc.on(\"panmove\", function(ev) {\n                                //    console.log(ev.type);\n\n                                    clearChartInfo();\n\n                                    e(ev);\n                                });\n\n                                mc.on(\"tap\", function(ev) {\n                                //    console.log(ev.type);\n\n                                    drawChartInfo = true;\n                                    canClearChartInfo = true;\n\n                                    e(ev);\n\n                                    requestAnimationFrame(function() {\n                                        touchStart(ev, true);\n                                        touchEnd(ev);\n                                    })\n                                });\n                            } else {\n                                // actionStart\n                                Nu.bind(\"mousedown\", function(ev) {\n                                    touchStart(ev, false);\n                                });\n\n                                Nu.bind(\"touchstart\", function(ev) {\n                                    if (shouldIgnoreEvent(Mi)) return;\n\n                                    touchStart(ev, false);\n                                });\n\n                                // move\n                                Nu.bind(\"mousemove touchstart touchmove\", function(ev) {\n                                    return e(ev)\n                                });\n\n                                // actionEnd\n                                Eu.bind('mouseup', function(ev) {\n                                    return touchEnd(ev);\n                                });\n\n                                Eu.bind('touchend', function(ev) {\n                                    if (shouldIgnoreEvent(Mi)) return;\n\n                                    return touchEnd(ev);\n                                });\n                            }\n\n                            return false;\n                        }(),\n                        s = !0,\n                        ve(Mi, \"volume_currency\", function(n) {\n                            var e, r, o, i, u;\n                            if (n) {\n                                ru(n);\n                                if (n === \"base\") {\n                                    Oo = j;\n                                    Bo = H;\n                                } else {\n                                    Oo = C;\n                                    Bo = P;\n                                }\n\n                                s = false;\n\n                                setTimeout(function() {\n                                    return (s = true);\n                                }, 200);\n\n                                u = Ei.childNodes;\n\n                                o = 0;\n\n                                for (i = u.length; i > o; o++) {\n                                    e = u[o];\n                                    r = e.tx;\n                                    if (Bo === H) {\n                                        $(\".v\", e).html(zl(r[lt]));\n                                    } else {\n                                        $(\".v\", e).html(zl(r[st] * r[lt]));\n                                    }\n                                }\n\n                                au = true;\n\n                                return ae;\n                            }\n                        }),\n\n                    du = [], Lu = [],\n                    Gi = null,\n                    qi = null,\n                    Kt = null,\n\n                    ve(Mi, \"depth_range\", function() {\n                        return dt = !0\n                    }),\n\n                    window.world_draw_main = ul = function() {\n                        if (window.isDrawing && new Date() - window.$load_time > 10000) return;\n\n                        window.Measurer('draw_main').start();\n\n                        window.isDrawing = true;\n\n                        // check before comitting\n                        if (!window.resetIsDrawing) {\n                            window.resetIsDrawing = setTimeout(function() {\n                                window.isDrawing = false\n\n                                clearTimeout(window.resetIsDrawing);\n\n                                window.resetIsDrawing = null;\n                            }, 5000);\n                        }\n\n                        // reserve space for volume\n                        function r(n) {\n                            if (n == null) {\n                                n = Rr;\n                            }\n\n                            D.y = D.y + D.h - n - 1;\n\n                            bt.push(D.y);\n\n                            ge.strokeStyle = Jo[t.Np];\n\n                            Ee(ge, D.y + 0.5, 0, Si);\n\n                            return (D.y -= n);\n                        }\n\n                        function o(n1, n2, n3) {\n                            var e, r, o, i, l, a, s, c, f, h, d, p, key;\n\n                            s = U[0];\n\n                            var fillStyle, strokeStyle, volumeStrokeStyle;\n                            var drawData = {};\n\n                            fillStyle = Jo[t.SW];\n                            strokeStyle = Jo[t.PO];\n                            volumeStrokeStyle = Jo[t.PO];\n\n                            p = [];\n\n                            for (it = c = 0, f = U.length; c < f; it = ++c) {\n                                lt = U[it];\n\n                                switch (u) {\n                                    case \"candle_stick_hlc\":\n                                        a = (h = U[it - 1]) != null ? h : ye[it];\n                                        r = U[it];\n                                        o = a;\n                                        e = r;\n                                        break;\n\n                                    default:\n                                        a = ye[it],\n                                        r = U[it],\n                                        o = a,\n                                        e = r,\n                                        a === r && (\n                                            o = null != (d = ye[it - 1]) ? d : ye[it]\n                                        )\n                                }\n\n                                l = At[it];\n                                i = vt[it];\n\n                                if(e > o) {\n                                    fillStyle = Jo[t.BC];\n                                    strokeStyle = Jo[t.PO];\n                                } else if(o > e) {\n                                    fillStyle = Jo[t.FR];\n                                    strokeStyle = Jo[t.PQ];\n                                }\n\n                                if(qt && dl(e, o)) {\n                                    fillStyle = Jo[t.SW];\n                                }\n\n                                volumeStrokeStyle = strokeStyle;\n\n                                if (u === \"ohlc\") {\n                                    strokeStyle = Jo[\"OHLC\"];\n                                }\n\n                                key = \"fill_\" + fillStyle + \"_stroke_\" + strokeStyle + \"_volume_\" + volumeStrokeStyle;\n\n                                if(!drawData.hasOwnProperty(key)) {\n                                    drawData[key] = {\n                                        fillStyle: fillStyle,\n                                        strokeStyle: strokeStyle,\n                                        volumeStrokeStyle: volumeStrokeStyle,\n                                        data: []\n                                    }\n                                }\n\n                                drawData[key].data.push([\n                                    // index, open, close, low, high\n                                    it, a, r, l, i\n                                ])\n\n                                p.push(s = lt)\n                            }\n\n                            function runDrawData(nCb) {\n                                for(var j in bars) {\n                                    if(!drawData[key].data.hasOwnProperty(j)) {\n                                        continue;\n                                    }\n\n                                    var dd = drawData[key].data[j];\n\n                                    nCb(dd[0], dd[1], dd[2], dd[3], dd[4]);\n                                }\n                            }\n\n                            var usePath2D = false;\n\n                            for(key in drawData) {\n                                var barConfig = drawData[key];\n                                var bars = barConfig.data;\n\n                                ge.fillStyle = barConfig.fillStyle;\n                                ge.strokeStyle = barConfig.strokeStyle;\n\n                                var path;\n\n                                if(usePath2D && window.Path2D) {\n                                    path = new Path2D();\n                                } else {\n                                    path = ge;\n                                    path.beginPath();\n                                }\n\n                                const styleEqStrokeStyle = barConfig.fillStyle === barConfig.strokeStyle;\n\n                                runDrawData(function(it, a, r, l, i) {\n                                    n1(it, a, r, l, i, path, styleEqStrokeStyle);\n                                });\n\n                                if(usePath2D && window.Path2D) {\n                                    ge.stroke(path);\n                                } else {\n                                    ge.stroke();\n                                }\n\n                                runDrawData(function(it, a, r, l, i) {\n                                    n2(it, a, r, l, i, null, styleEqStrokeStyle);\n                                });\n\n                                ge.strokeStyle = barConfig.volumeStrokeStyle;\n\n                                runDrawData(function(it, a, r, l, i) {\n                                    n3(it, styleEqStrokeStyle);\n                                });\n                            }\n\n                            // p is array of closing prices\n\n                            return p\n                        }\n\n                        var u, l, s, c, f, h, p, b, g, m, F, $, k, _, Z, B, O, R, E, N, L, U, W, C, Q, A, Y, D, K, z, j, G, q, nt, et, rt, ot, it, ut, lt, at, ct, ft, ht, pt, vt, bt, gt, xt, yt, $t, kt, _t, It, Xt, Ot, Rt, Et, Ut, Wt, Qt, At, Dt, zt, jt, Gt, ne, te, oe, ue, le, ae, se, ce, fe, he, de, pe, ve, be, ge, me, ye, $e, we, Te, Ve, ke, Se, _e, Ie, Le, Ue, Ce, Ye, je, Ge, nr, tr, er, rr, ir, ur, lr, sr, cr, fr, hr, pr, br, gr, mr, Fr, yr, $r, Vr, kr, Mr, Xr, Zr, Jr, Pr, Hr, Br, Or, Nr, Lr, Ur, Wr, Cr, Qr, Ar, Yr, Dr, Kr, zr, jr, qr, no, to, io, uo, co, fo, po, vo, bo, go, mo, Fo, xo, yo, $o, To;\n\n                        if (Er) {\n                            window.Measurer('main-canvas').start();\n                            window.Measurer('main-canvas-p1').start();\n\n                            //    return ml(Ii); // clear main\n\n                            xl();\n                            F = $ = Er[w];\n                            u = Mi[\"stick_style\"];\n\n                            So = xe && Io < 3600 && Je && Oe && Mi[\"depth_range\"] !== \"none\";\n                            ge = Ii;\n\n                            ml(ge, ge.canvas.width, ge.canvas.height);\n\n                            ut = Yt($, T).length - 1;\n\n                            if (ut > ho && Ci && ho === Ci + $i - 1) {\n                                Ci += ut - ho;\n                                ho = ut;\n                            }\n\n                            if (Ci > ut) {\n                                Ci = ut;\n                            }\n\n                            if (0 > Ci) {\n                                Ci = 0;\n                            }\n\n                            Ui = Ci + $i - 1;\n\n                            if (Ui > ut) {\n                                Ui = ut;\n                            }\n\n                            s = parseFloat(pu.val());\n                            c = parseFloat(vu.val());\n\n                            Y = Mi[\"market\"] != null && Mi[\"market\"] !== \"none\";\n\n                            mr = [];\n\n                            pe = Mi[\"main_lines\"];\n                            $e = ie[pe];\n\n                            if (Y) {\n                                pe = \"none\";\n                                u = \"line\";\n                            }\n\n                            switch (pe) {\n                                case 'mas':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = (function () {\n                                            var e = ie.price_mas.params;\n                                            var r = [];\n                                            var n = 0;\n                                            for (var t = e.length; t > n; n++) {\n                                                G = e[n];\n                                                r.push(Pt(F, T, G));\n                                            }\n                                            return r;\n                                        })();\n                                    }\n                                    break;\n                                case 'emas':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = (function () {\n                                            var e = ie.price_mas.params;\n                                            var r = [];\n                                            var n = 0;\n                                            for (var t = e.length; t > n; n++) {\n                                                G = e[n];\n                                                r.push(Zt(F, T, G));\n                                            }\n                                            return r;\n                                        })();\n                                    }\n                                    break;\n                                case 'bbands':\n                                case 'sar':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = $e[t.Lz].apply($e, [F, $e[t.VV]].concat(ao.call($e[t.UB])));\n                                    }\n                                    break;\n                                case 'none':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = [];\n                                    }\n                            }\n\n                            switch (((Ie = Er[pe]), (pe = Mi[t.VT]))) {\n                                case 'macd':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = Ht.apply(null, [F, T].concat(ao.call(ie.macd.params)));\n                                    }\n                                    ne = Er[pe];\n                                    xo = Vt(ee, $, Ci, Ui, ne);\n                                    rt = xo[0];\n                                    et = xo[1];\n                                    zt = xo[2];\n                                    It = [rt, et];\n                                    pt = Sr([rt, et, zt]);\n                                    Xt = -pt;\n                                    _t = 2 * pt;\n                                    break;\n                                case 'stoch_rsi':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = Lt.apply(null, [F, T].concat(ao.call(ie.stoch_rsi.params)));\n                                    }\n                                    je = Er[pe];\n                                    yo = Vt(ee, $, Ci, Ui, je);\n                                    Ue = yo[0];\n                                    Le = yo[1];\n                                    It = [Ue, Le];\n                                    Xt = 0;\n                                    _t = 100;\n                                    break;\n                                case 'kdj':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = Jt.apply(null, [F, [M, I, T]].concat(ao.call(ie.kdj.params)));\n                                    }\n                                    Rt = Er[pe];\n                                    $o = Vt(ee, $, Ci, Ui, Rt);\n                                    ji = $o[0];\n                                    q = $o[1];\n                                    Ot = $o[2];\n                                    It = [ji, q, Ot];\n                                    ue = _r([ji, q, Ot, [100]]);\n                                    ce = Ir([ji, q, Ot, [0]]);\n                                    Xt = ce;\n                                    _t = ue - ce;\n                                    break;\n                                case 'bid_ratio':\n                                    if (Er[pe] == null) {\n                                        Er[pe] = Mt.apply(null, [F, [x, y]].concat(ao.call(ie.bid_ratio.params)));\n                                    }\n                                    g = Vt(ee, $, Ci, Ui, Er[pe]);\n                                    Xt = 0;\n                                    _t = 1;\n                                    ue = _r(g);\n                                    ce = Ir(g);\n                                    Xt = 0.5 - Math.max(0.5 - ce, ue - 0.5);\n                                    _t = 1 - 2 * Xt;\n                                    It = g;\n                                    break;\n                                case 'none':\n                                    break;\n                                default:\n                                    pe = Mi[t.VT];\n                                    $e = ie[pe];\n                                    Ve = $e[t.VV];\n\n                                    if (Er[pe] == null) {\n                                        Er[pe] = $e[t.Lz].apply($e, [F, Ve].concat(ao.call($e[\"params\"])));\n                                    }\n\n                                    Qt = Vt(ee, $, Ci, Ui, Er[pe]);\n\n                                    switch ($e[\"axis\"]) {\n                                        case 'symm':\n                                            pt = Sr(Qt);\n                                            Xt = -pt;\n                                            _t = 2 * pt;\n                                            break;\n                                        case '100':\n                                            Xt = 0;\n                                            _t = 100;\n                                            break;\n                                        case 'auto':\n                                            ce = Ir(Qt);\n                                            ue = _r(Qt);\n                                            Xt = ce;\n                                            _t = ue - ce;\n                                            break;\n                                        case 'custom':\n                                            ce = $e[t.VR](Qt);\n                                            ue = $e[t.Ug](Qt);\n                                            Xt = ce;\n                                            _t = ue - ce;\n                                    }\n                                    It = Qt;\n                            }\n\n                            to = Vt(ee, $, Ci, Ui, [Bo, X, T, M, I, V, J, x, y]);\n\n                            // $ is candles data?\n                            // Ci is probably first visible bar index\n                            // Ui is probably the last visible bar index\n\n                            // reason for diff time candles issue: all candles are init by the the time trade arrives, meaning\n                            // the open price is already set or\n                            // the close price is already set\n\n                            yr = to[0];\n                            // 1 is array of opening prices\n                            ye = to[1];\n                            // 2 is array of closing prices\n                            U = to[2];\n                            // 3 is array of highs prices\n                            vt = to[3];\n                            // 4 is array of lows prices\n                            At = to[4];\n                            // 5 is array of Date()\n                            nt = to[5];\n                            // 6 is array of unix timestamps\n                            ur = to[6];\n                            p = to[7];\n                            m = to[8];\n\n                            gr = Vt(ee, $, Ci, Ui, mr);\n                            // Ie is list of visible main indicator objects (lines, mainly)\n                            _e = Vt(ee, $, Ci, Ui, Ie);\n\n                            Po = ur;\n\n                            // get only visible candles\n                            ht = Math.floor((Si - xi) / Ti);\n                            yt = vt.slice(0, ht);\n                            $t = At.slice(0, ht);\n\n                            if (Er[mi] == null) {\n                                Er[mi] = Ct($, [P, H, T]);\n                            }\n\n                            Xr = Vt(ee, $, Ci, Ui, Er[mi])[0];\n\n                            if (u === \"line\" || u === \"line_o\") {\n                                switch (Mi[\"line_style\"]) {\n                                    case 'm':\n                                        if (Er[ii] == null) {\n                                            Er[ii] = Bt(F, [X, M, I, T]);\n                                        }\n                                        U = Vt(ee, $, Ci, Ui, Er[ii])[0];\n                                        break;\n                                    case 'w':\n                                        U = Xr;\n                                }\n                            }\n\n                            K = $i * Ti;\n                            Hi = Si - xi - wi * Ti;\n\n                            D = {x: Hi, y: ki, w: K, h: ki};\n                            ot = {x: 0, y: 0, w: $i, h: 0};\n\n                            bt = [];\n\n                            D.h = -16; // place for timestamp\n\n                            b = lo(D, ot);\n\n                            r(0);\n\n                            D.y -= Rr;\n                            D.h = -uu;\n\n                            if (Mi[t.VT] === \"none\") {\n                                Gt = null;\n                            } else {\n                                ot.y = Xt;\n                                ot.h = _t;\n                                Gt = lo(D, ot);\n                                r();\n                            }\n\n                            if (gr.length) {\n                                ot.y = 0;\n                                ot.h = _r([gr, yr]);\n                            } else {\n                                ot.y = 0;\n                                ot.h = _r([yr]);\n                            }\n\n                            Fr = lo(D, ot);\n\n                            Me = Gt;\n                            Ro = Fr;\n\n                            var mainBottomPadding = window.$is_mobile ? 0 : 8;\n                            var volumeTopPadding = Rr;\n\n                            r(volumeTopPadding);\n\n                            D.y -= mainBottomPadding; // main chart lower padding\n\n                        //    window.Measurer('calc-low-high').start();\n\n                            var heatmapsEnabled = (Mi['enable_heatmap'] === \"yes\") ||\n                                ('$heatmap_settings' in window && window.$heatmap_settings.combined);\n\n                            var calcLows = [];\n                            var calcHighs = [];\n\n                            if(heatmapsEnabled) {\n                                if (_e.length) {\n                                    calcHighs = [_e.slice(0), vt];\n                                    calcLows  = [_e.slice(0), At];\n                                } else {\n                                    calcHighs = [[], vt];\n                                    calcLows = [[], At];\n                                }\n                            } else {\n                                if (_e.length) {\n                                    calcHighs = [_e, vt];\n                                    calcLows  = [_e, At];\n                                } else {\n                                    calcHighs = [vt];\n                                    calcLows = [At];\n                                }\n                            }\n\n                            // can be optimized\n                            if(heatmapsEnabled) {\n                                var heatmapsRange = 0.03;\n\n                                if(Io <= 180) {\n                                    heatmapsRange /= 2;\n                                }\n\n                                var index;\n                                var vtTo = vt.length;\n                                var AtTo = At.length;\n\n                                index = calcHighs[0].length;\n                                calcHighs[0][index] = [];\n\n                                for(var vtI = 0; vtI < vtTo; vtI++) {\n                                    calcHighs[0][index].push(vt[vtI] * (1 + heatmapsRange));\n                                }\n\n                                index = calcLows[0].length;\n                                calcLows[0][index] = [];\n\n                                for(var AtI = 0; AtI < AtTo; AtI++) {\n                                    calcLows[0][index].push(At[AtI] * (1 - heatmapsRange));\n                                }\n                            }\n\n                        //    window.Measurer('calc-low-high').stop();\n\n                            // max value of all gt sub-arrays (candles and indicators)\n                            ue = _r(calcHighs);\n                            // min value of all visible candles and indicators\n                            ce = Ir(calcLows);\n\n                            calcHighs = null;\n                            calcLows = null;\n\n                            ir = wr(ur);\n                            ve = Date.now() / 1000;\n\n                            // ue and ce are equal to high / low visible prices\n\n                            ue = (1 + 0.01) * ue;\n                            ce = (1 - 0.01) * ce;\n\n                            while(ue && ue < vt[vt.length - 1]) {\n                                ue *= 1.01;\n                            }\n\n                            while(ce && ce > At[At.length - 1]) {\n                                ce *= .99;\n                            }\n\n                            if(dt) {\n                                pl(\"calc depth\", function() {\n                                    var nCounter = {\n                                        1: 0, 2: 0\n                                    };\n\n                                    function e(n, nId) {\n                                        var t;\n                                        var nIndex = nCounter[nId];\n                                        if ((t = n[nIndex])) {\n                                            nCounter[nId]++;\n                                            return [t[0], t[1]];\n                                        } else {\n                                            return null;\n                                        }\n                                    }\n\n                                    /*function e(n) {\n                                        var t;\n                                        if ((t = n.shift())) {\n                                            return [t[0], t[1]];\n                                        } else {\n                                            return null;\n                                        }\n                                    }*/\n\n                                    var l;\n                                    var s;\n                                    var f;\n                                    var b;\n                                    var F;\n                                    var y;\n                                    var T;\n                                    var V;\n                                    var k;\n                                    var S;\n                                    var J;\n                                    var P;\n                                    var H;\n                                    var O;\n                                    var E;\n                                    var N;\n                                    var U;\n                                    var W;\n\n                                    dt = false;\n                                    du = tt[d].flatten();\n                                    Lu = tt[v].flatten().reverse();\n\n                                    var sliceLimit = 800;\n\n                                    switch(Mi[\"depth_range\"]) {\n                                        case \"pmax\":\n                                            sliceLimit = 2500;\n                                            break;\n\n                                        case \"p2\":\n                                        case \"p5\":\n                                            sliceLimit = 1500;\n                                            break;\n                                    }\n\n                                    var c = du.slice(0, sliceLimit);\n                                    var g = Lu.slice(0, sliceLimit);\n                                    var $ = [];\n                                    var w = [];\n                                    var a = e(c, 1);\n\n                                    for (var p = e(g, 2); a && p; ) {\n                                        if (a[1] <= p[1]) {\n                                            if (a[1] > 1e-9) {\n                                                $.push([a[0], a[1]]);\n                                                w.push([p[0], a[1]]);\n                                            }\n                                            p[1] -= a[1];\n                                            a = e(c, 1);\n                                        } else if (p[1] <= a[1]) {\n                                            if (p[1] > 1e-9) {\n                                                $.push([a[0], p[1]]);\n                                                w.push([p[0], p[1]]);\n                                            }\n                                            a[1] -= p[1];\n                                            p = e(g, 2);\n                                        }\n                                    }\n\n                                    var I = 0;\n                                    var Z = 0;\n                                    var h = [];\n\n                                    f = 0;\n                                    Gi = null;\n                                    qi = null;\n\n                                    if (Mi[\"depth_range\"] === \"pmax\") {\n                                        S = 2;\n                                    } else if (Mi[\"depth_range\"] === \"none\") {\n                                        S = 1;\n                                    } else {\n                                        S = ((E = Mi[\"depth_range\"]) != null ? E.match(/\\d+/).toString() : void 0) >> 0;\n                                        S = S / 100 + 1;\n                                    }\n\n                                    if (Tr !== S) {\n                                        Ne = -100000000;\n                                        Qe = 1e8;\n                                        Tr = S;\n                                        Nt = null;\n                                        Tt = null;\n                                        St = [];\n                                    }\n\n                                    var m = false;\n                                    F = null;\n\n                                    var _ = (Date.now() / 1000) >> 0;\n                                    _ -= _ % 15;\n\n                                    if (((N = St[0]) != null ? N[0] : void 0) !== _) {\n                                        St.unshift([_, 0]);\n                                    }\n\n                                    if (St.length > 20) {\n                                        St.pop();\n                                        k = (function() {\n                                            var e = [];\n                                            var n = 0;\n                                            for (var t = St.length; t > n; n++) {\n                                                V = St[n];\n                                                e.push(V[1]);\n                                            }\n                                            return e;\n                                        })();\n                                        Tt = Math.max.apply(Math, k);\n                                        ru(t.VP + Tt);\n                                    }\n\n                                    var x = (P = 0);\n                                    for (\n                                        var L = $.length;\n                                        (L >= 0 ? L > P : P > L) &&\n                                        ((a = $[x]), (p = w[x]), a != null && p != null);\n                                        x = L >= 0 ? ++P : --P\n                                    ) {\n                                        J = a[1];\n                                        l = J;\n\n                                        Gi = a;\n                                        qi = p;\n\n                                        if (F != null && Z / 2 + l > F) {\n                                            l = F - Z / 2;\n                                            m = true;\n                                        }\n                                        U = [a, p];\n                                        H = 0;\n                                        for (O = U.length; O > H; H++) {\n                                            T = U[H];\n                                            I += T[0] * l;\n                                            Z += l;\n                                        }\n                                        f = I / Z;\n                                        h.push([f, l, a[0], p[0]]);\n                                        J -= l;\n                                        Wt = Z / 2;\n                                        if (F == null) {\n                                            if (\n                                                (a != null ? a[0] : void 0) > f * S ||\n                                                (p != null ? p[0] : void 0) < f / S\n                                            ) {\n                                                if (St[0][1] < Wt) {\n                                                    ru(\"refresh limit \" + _ + t.Iz + Wt.toPrecision(4));\n                                                    St[0][1] = Wt;\n                                                }\n                                                if (!(Tt > Wt)) {\n                                                    break;\n                                                }\n                                                F = Tt;\n                                            }\n                                        } else if (m) {\n                                            break;\n                                        }\n                                    }\n                                    Tt = Wt;\n                                    Nt = Wt;\n                                    n[zo] = [];\n                                    n[qo] = [];\n                                    n[Yo] = [];\n                                    n[Do] = [];\n                                    n[Ko] = [];\n                                    n[jo] = [];\n                                    Gu = Wt / (xi - 8);\n                                    Kt = Wt;\n                                    var M = 0;\n                                    var r = 0;\n                                    var o = 0;\n                                    var u = 0;\n                                    x = 0;\n                                    var C = [];\n                                    var B = 0;\n                                    for (R = h.length; R > B; B++) {\n                                        W = h[B];\n                                        f = W[0];\n                                        l = W[1];\n                                        s = W[2];\n                                        b = W[3];\n                                        C.push(\n                                            (function() {\n                                                var t;\n                                                var e;\n                                                var i;\n                                                var a;\n                                                var c;\n                                                var f;\n                                                var h;\n                                                var d;\n                                                for (var p = []; l > 1e-8; ) {\n                                                    y = Gu > M + l ? l : Gu - M;\n                                                    if ((t = n[Yo])[x] == null) {\n                                                        t[x] = (f = n[Yo][x - 1]) != null ? f : 0;\n                                                    }\n                                                    if ((e = n[Do])[x] == null) {\n                                                        e[x] = (h = n[Do][x - 1]) != null ? h : 0;\n                                                    }\n                                                    if ((i = n[qo])[x] == null) {\n                                                        i[x] = (d = n[qo][x - 1]) != null ? d : 0;\n                                                    }\n                                                    if ((a = n[Ko])[x] == null) {\n                                                        a[x] = s;\n                                                    }\n                                                    if ((c = n[jo])[x] == null) {\n                                                        c[x] = b;\n                                                    }\n                                                    r = n[Yo][x] += s * y;\n                                                    o = n[Do][x] += b * y;\n                                                    u = n[qo][x] += y;\n                                                    n[zo][x] = (r + o) / u / 2;\n                                                    M += y;\n                                                    l -= y;\n                                                    if (1e-8 > Gu - M) {\n                                                        M = 0;\n                                                        p.push(x++);\n                                                    } else {\n                                                        p.push(void 0);\n                                                    }\n                                                }\n                                                return p;\n                                            })()\n                                        );\n                                    }\n\n                                    //console.log(C)\n\n                                    return C;\n                                });\n                            } else {\n                                Wt = Kt;\n                            }\n\n                            at = ue;\n                            ct = ce;\n\n                            // chart min range depends on last (or first?) candle time?!\n                            if(ve - ir < 86400) {\n                                l = 1;\n                            } else if(ve - ir < 604800) {\n                                l = 1 - (ve - ir) / 86400 / 7;\n                            } else {\n                                l = 0;\n                            }\n\n                            if (Gi != null) {\n                                if (Gi[0] > ue) {\n                                    at = Gi[0];\n                                }\n                            }\n\n                            if (qi != null) {\n                                if (qi[0] < ce) {\n                                    ct = qi[0];\n                                }\n                            }\n\n                            // Ne & Qe are old values for at and ct accordingly\n                            if (Ne / at > 1.02) {\n                                Ne = at;\n                            }\n\n                            if (ct / Qe > 1.02) {\n                                Qe = ct; // it was bugged initially\n                            }\n\n                            if (So) {\n                                at = Math.max(at, Ne);\n                                ct = Math.min(ct, Qe);\n                            }\n\n                            // Xr is array of indicators prices? Maybe?\n                            // max element of Xr\n                            kr = Math.max.apply(Math, Xr);\n                            // min element of Xr\n                            Mr = Math.min.apply(Math, Xr);\n\n                            R = Mi[\"chart_range\"] === \"pmax\" ? 100 : 1.05;\n                            se = 1 + (kr / Mr - 1) / 3;\n\n                            if (R > se) {\n                                se = R;\n                            }\n\n                            B = kr * se;\n                            O = Mr / se;\n\n                            ue = ue * (1 - l) + at * l;\n                            ce = ce * (1 - l) + ct * l;\n\n                            // max price on graph\n                            ue = Math.min(B, ue);\n                            // min price on graph\n                            ce = Math.max(O, ce);\n\n                            if(!autoScale) {\n                                ue = 5900;\n                                ce = 5000;\n                            }\n\n                            // what's the point using old values?\n                            // maybe to have smooth scrolling\n                            if(Mi['enable_heatmap'] !== \"yes\" || true) {\n                                Ne = at;\n                                Qe = ct;\n                            }\n\n                            if ((iu = (io = Mi[\"chart_range\"]) != null ? io.match(/\\d+/) : void 0)) {\n                                Te = (iu[0] >> 0) / 100 + 1;\n                                ue = kr * Te;\n                                ce = Mr / Te;\n                            }\n\n                            // main chart top padding\n                            D.h = -D.y + Rr;\n\n                            if(!window.$is_mobile) {\n                                D.h += 12 + 12;\n                            }\n\n                            ot.y = ce;\n                            ot.h = ue - ce;\n\n                            oe = lo(D, ot, Mi[\"scale\"] === \"logarithmic\");\n\n                            if (wo > 1e7) {\n                                oe[wt] = 1e8;\n                            }\n\n                            Xe = oe;\n\n                            if (Gt) {\n                                hr = Gt;\n                                ol = Mi[t.VT];\n                                Qt = [];\n\n                                if (ol === \"macd\") {\n                                    tr = oo(hr, 0);\n                                    we = zt[0];\n                                    it = Jr = 0;\n                                    // fixme: slow due constant styles change\n                                    for (Br = zt.length; Br > Jr; it = ++Jr) {\n                                        lt = zt[it];\n\n                                        if (lt > 0) {\n                                            ge.fillStyle = Jo[t.BC];\n                                            ge.strokeStyle = Jo[t.PO];\n                                        } else {\n                                            ge.fillStyle = Jo[t.FR];\n                                            ge.strokeStyle = Jo[t.PQ];\n                                        }\n\n                                        if (dl(lt, we)) {\n                                            ge.fillStyle = Jo[t.SW];\n                                        }\n\n                                        Ke(ge, hr, tr, it, lt, yi);\n                                        we = lt;\n                                    }\n                                } else if (ol === t.CQ || ol === t.qx) {\n                                    Qt = [20, 80];\n                                } else if (ol !== \"dmi\") {\n                                    if (ol === \"rsi\") {\n                                        Qt = [30, 70];\n                                    } else if (ol === t.MW) {\n                                        Qt = [0];\n                                    } else if (ol === t.zs && e) {\n                                        tr = oo(hr, 0.5);\n                                        Ee(ge, tr + 0.5, 0, Si);\n                                    }\n                                }\n\n                                Pr = 0;\n\n                                for (Nr = Qt.length; Nr > Pr; Pr++) {\n                                    ol = Qt[Pr];\n                                    tr = oo(hr, ol);\n                                    D = hr[mt];\n                                    if (D.y > tr && tr > D.y + D.h) {\n                                        Ee(ge, tr + 0.5, 0, Si);\n                                    }\n                                }\n                            }\n\n                            window.Measurer('main-canvas-p1').stop();\n\n                            window.Measurer('main-canvas-p2').start();\n                            //window.Measurer('main-canvas-p2-1').start();\n\n                            if(a) {\n                                tr = oo(Fr, 0);\n                            }\n                            // slow part 1\n                            // volume\n                            //o(function(n) {\n                            //   return Ze !== \"Coinbase\" && yr[n] > 1e-11 ? Ke(ge, Fr, tr, n, yr[n], yi) : void 0\n                            //});\n\n                            //window.Measurer('main-canvas-p2-1').stop();\n                            window.Measurer('main-canvas-p2-2').start();\n\n                            // slow part 2\n                            Re(ge, oe, function () {\n                                return o(\n                                    function (n, e, r, o, i, linePath, fillAndStroke) {\n                                        if (u === \"ohlc\" || u === \"candle_stick\" || u === \"candle_stick_hlc\") {\n                                            ze(linePath, oe, n, o, i, al);\n                                        }\n                                    },\n                                    function (n, e, r, o, i, linePath, fillAndStroke) {\n                                        var l, a, res;\n\n                                        if (u === \"ohlc\" || u === \"candle_stick\" || u === \"candle_stick_hlc\") {\n                                            switch (u) {\n                                                case \"ohlc\":\n                                                    l = ro(oe, n);\n\n                                                    a = oo(oe, e);\n                                                    Ee(ge, a + .5, l - Ai / 2, l + al);\n\n                                                    a = oo(oe, r);\n                                                    return Ee(ge, a + .5, l + al, l + yi + Ai / 2);\n                                                case \"candle_stick\":\n                                                    return De(ge, oe, n, e, r, yi, fillAndStroke);\n                                                case \"candle_stick_hlc\":\n                                                    return De(ge, oe, n, e, r, yi, fillAndStroke);\n                                            }\n                                        }\n                                    },\n                                    function (n, fillAndStroke) {\n                                        // draw volume\n                                        if (yr[n] > 1e-11) {\n                                            Ke(ge, Fr, tr, n, yr[n], yi, fillAndStroke)\n                                        }\n                                    }\n                                );\n                            });\n\n                        /*    window.isDrawing = false\n\n                            return;*/\n\n                            window.Measurer('main-canvas-p2-2').stop();\n                            window.Measurer('main-canvas-p2-3').start();\n\n                            if (u === \"line\" || u === \"line_o\") {\n                                Re(ge, oe, function () {\n                                    var n, e, r, o, i, l, a, s, c, f, h, d, p, v, b, g, m, F, x;\n\n                                    if (!Y) {\n                                        ge.beginPath();\n                                        ge.fillStyle = Jo[t.MP];\n                                        h = eo(oe, 0, vt[0]);\n                                        n = h[0];\n                                        e = h[1];\n                                        ge.moveTo(n + al, e);\n                                        it = r = 0;\n                                        for (o = vt.length; o > r; it = ++r) {\n                                            lt = vt[it];\n                                            d = eo(oe, it, lt);\n                                            n = d[0];\n                                            e = d[1];\n                                            ge.lineTo(n + al, e);\n                                        }\n                                        for (\n                                            it = a = p = U.length - 1;\n                                            0 >= p ? 0 >= a : a >= 0;\n                                            it = 0 >= p ? ++a : --a\n                                        ) {\n                                            lt = U[it];\n                                            v = eo(oe, it, lt);\n                                            n = v[0];\n                                            e = v[1];\n                                            ge.lineTo(n + al, e);\n                                        }\n                                        ge.fill();\n                                        ge.beginPath();\n                                        ge.fillStyle = Jo[t.ut];\n                                        b = eo(oe, 0, At[0]);\n                                        n = b[0];\n                                        e = b[1];\n                                        ge.moveTo(n + al, e);\n                                        it = s = 0;\n                                        for (i = At.length; i > s; it = ++s) {\n                                            lt = At[it];\n                                            g = eo(oe, it, lt);\n                                            n = g[0];\n                                            e = g[1];\n                                            ge.lineTo(n + al, e);\n                                        }\n                                        for (\n                                            it = c = m = U.length - 1;\n                                            0 >= m ? 0 >= c : c >= 0;\n                                            it = 0 >= m ? ++c : --c\n                                        ) {\n                                            lt = U[it];\n                                            F = eo(oe, it, lt);\n                                            n = F[0];\n                                            e = F[1];\n                                            ge.lineTo(n + al, e);\n                                        }\n                                        ge.fill();\n                                    }\n\n                                    ge.lineWidth = yi === 1 ? 1.5 : 2;\n\n                                    if (Y) {\n                                        ge.lineWidth = 1;\n                                        ge.strokeStyle = Jo[t.VB][0];\n                                    } else {\n                                        ge.strokeStyle = Jo[t.Nj];\n                                    }\n\n                                    Ae(ge, oe, U, al + 0.5);\n\n                                    if (u === \"line_o\") {\n                                        ge.fillStyle = Jo[t.SW];\n                                        ge.strokeStyle = Jo[t.Nj];\n                                        it = f = 0;\n                                        for (l = U.length; l > f; it = ++f) {\n                                            lt = U[it];\n                                            x = eo(oe, it, lt);\n                                            n = x[0];\n                                            e = x[1];\n                                            ge.beginPath();\n                                            ge.arc(n + al + 0.5, e, ge.lineWidth, 0, 2 * Math.PI, true);\n                                            ge.closePath();\n                                            ge.fill();\n                                            ge.stroke();\n                                        }\n                                    }\n\n                                    ge.lineWidth = 1;\n                                    vt = U;\n\n                                    return (At = U);\n                                });\n                            }\n\n                            ge.lineWidth = 1;\n\n                            Z = [\n                                [oe, _e, true, Mi[\"main_lines\"]],\n                                [Fr, gr, true]\n                            ];\n\n                            if (Gt && (Mi[t.VT] !== t.zs || e)) {\n                                Z.unshift([Gt, It, true, Mi[t.VT]]);\n                            }\n\n                            Hr = 0;\n\n                            for (Lr = Z.length; Lr > Hr; Hr++) {\n                                uo = Z[Hr];\n\n                                hr = uo[0];\n                                Vr = uo[1];\n                                Ye = uo[2];\n                                pe = uo[3];\n\n                                if (Ye) {\n                                    if (pe === \"sar\") {\n                                        Ce = _e[0];\n                                        ge.strokeStyle = Jo[t.VB][0];\n                                        it = Dr = 0;\n\n                                        for (Ur = Ce.length; Ur > Dr; it = ++Dr) {\n                                            lt = Ce[it];\n                                            co = eo(hr, it, lt);\n                                            z = co[0];\n                                            j = co[1];\n                                            z += al + 0.5;\n                                            ge.beginPath();\n                                            Zr = yi / 2;\n\n                                            if (Zr > 3.5) {\n                                                Zr = 3.5;\n                                            }\n\n                                            // todo: try with arcTo?\n                                            ge.arc(z + 0.5, j, Zr, 0, 2 * Math.PI, true);\n                                            ge.stroke();\n                                        }\n\n                                    } else {\n                                        if ((fo = (po = ie[pe]) != null ? po[t.qQ] : void 0) != null) {\n                                            A = fo;\n                                        } else {\n                                            A = Jo[t.VB];\n                                        }\n\n                                        xt = Kr = 0;\n\n                                        for (Wr = Vr.length; Wr > Kr; xt = ++Kr) {\n                                            $r = Vr[xt];\n                                            ge.strokeStyle = A[xt];\n\n                                            // slowest call here\n                                            Ae(ge, hr, $r, al + 0.5);\n                                        }\n                                    }\n                                }\n                            }\n\n                            window.Measurer('main-canvas-p2-3').stop();\n                            window.Measurer('main-canvas-p2').stop();\n\n                            window.Measurer('main-canvas-p3').start();\n                            window.Measurer('main-canvas-p3-0').start();\n\n                            ge.lineWidth = 1;\n\n                            le = 0;\n                            ae = 0;\n                            xt = zr = 0;\n\n                            for (Cr = yt.length; Cr > zr; xt = ++zr) {\n                                ol = yt[xt];\n                                if (ol > le) {\n                                    le = ol;\n                                    ae = xt;\n                                }\n                            }\n\n                            fe = 1 / 0;\n                            he = 0;\n                            xt = jr = 0;\n\n                            for (Qr = $t.length; Qr > jr; xt = ++jr) {\n                                ol = $t[xt];\n                                if (fe > ol) {\n                                    fe = ol;\n                                    he = xt;\n                                }\n                            }\n\n                            // fixme: save up to 2ms: cache pointing arrows\n                            Re(ge, oe, function () {\n                                Xl(ge, oe, ae, le, al);\n\n                                return Xl(ge, oe, he, fe, al);\n                            });\n\n                            window.Measurer('main-canvas-p3-0').stop();\n\n                            window.Measurer('main-canvas-p3-1').start();\n\n                            function drawXAxisLabels() {\n                                function n(n, e) {\n                                    var r = 60 * Fe[\"getTimezoneOffset\"](n);\n                                    return (n.getTime() / 1000 - r) % e < Io;\n                                }\n\n                                var e, r, o, i, u, l, a, s, c, f, h, d, p, v, g, m, F, x, y, w, T;\n\n                                Gu = Io;\n\n                                o = null;\n                                i = null;\n                                e = null;\n                                r = null;\n\n                                s = {\n                                    60: {\n                                        cond: n,\n                                        key_cond: function(n) {\n                                            return Fe[\"getMinutes\"](n) === 0;\n                                        },\n                                        text: function(n) {\n                                            return xr(n);\n                                        },\n                                        key_text: function(n) {\n                                            return dr(n);\n                                        },\n                                        over: function(n) {\n                                            return or(n);\n                                        }\n                                    },\n                                    3600: {\n                                        cond: n,\n                                        key_cond: function(n) {\n                                            return Fe[\"getHours\"](n) === 0 && Fe[\"getDate\"](n) !== e;\n                                        },\n                                        text: function(n) {\n                                            return dr(n);\n                                        },\n                                        key_text: function(n) {\n                                            e = Fe[\"getDate\"](n);\n                                            return or(n);\n                                        },\n                                        over: function(n) {\n                                            return or(n);\n                                        }\n                                    },\n                                    86400: {\n                                        cond: n,\n                                        key_cond: function(n) {\n                                            return false;\n                                        },\n                                        text: function(n) {\n                                            return or(n);\n                                        },\n                                        key_text: function(n) {\n                                            return or(n);\n                                        },\n                                        over: function(n) {\n                                            return Fe[\"getFullYear\"](n);\n                                        }\n                                    },\n                                    604800: {\n                                        cond: function(n) {\n                                            return Fe[\"getDate\"](n) < 8 && Fe[\"getMonth\"](n) !== o;\n                                        },\n                                        key_cond: function(n) {\n                                            return Fe[\"getMonth\"](n) === 0 && Fe[\"getFullYear\"](n) !== i;\n                                        },\n                                        text: function(n) {\n                                            o = Fe[\"getMonth\"](n);\n                                            return vr(n);\n                                        },\n                                        key_text: function(n) {\n                                            i = Fe[\"getFullYear\"](n);\n                                            o = Fe[\"getMonth\"](n);\n                                            return Fe[\"getFullYear\"](n);\n                                        },\n                                        over: function(n) {\n                                            return Fe[\"getFullYear\"](n);\n                                        }\n                                    }\n                                };\n\n                                if (Gu >= 86400) {\n                                    a = 604800;\n                                    d = 604800;\n                                } else {\n                                    d = Gu * (80 / Ti);\n                                    if (1800 >= d) {\n                                        a = 60;\n                                        g = [10, 30];\n                                    } else if (28800 >= d) {\n                                        a = 3600;\n                                        g = [1, 2, 3, 6, 8];\n                                    } else if (1296000 >= d) {\n                                        a = 86400;\n                                        g = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];\n                                    } else {\n                                        a = 604800;\n                                        g = 1;\n                                    }\n                                    x = 0;\n                                    for (F = g.length; F > x; x++) {\n                                        xt = g[x];\n                                        if (a * xt > d) {\n                                            d = a * xt;\n                                            break;\n                                        }\n                                    }\n                                }\n\n                                D = b[mt];\n\n                                if ((l = s[a])) {\n                                    ge.strokeStyle = Jo[t.Np];\n                                    ge.textAlign = t.VN;\n                                    ge.textBaseline = \"middle\";\n\n                                    var textFontObjects = [];\n                                    var numbersFontObjects = [];\n\n                                    nt = Yt($, V);\n                                    f = null;\n                                    h = 0;\n                                    v = y = w = Ci - 1;\n\n                                    for (T = Ci + $i; T >= w ? T >= y : y >= T; v = T >= w ? ++y : --y) {\n                                        u = nt[v];\n\n                                        if (!u) {\n                                            if (!f) {\n                                                continue;\n                                            }\n                                            u = new Date(f);\n                                            u.setSeconds(Io);\n                                        }\n\n                                        xt = v - Ci;\n\n                                        if (l.cond(u, d)) {\n                                            if (l.key_cond(u)) {\n                                                m = l.key_text(u);\n                                                c = true;\n                                            } else {\n                                                m = l.text(u);\n                                                c = false;\n                                            }\n\n                                            z = Hi + xt * Ti + al + 0.5;\n\n                                            if (z > h + 30 || c) {\n                                                if(c) {\n                                                    textFontObjects.push([m, z, D.y + D.h]);\n                                                } else {\n                                                    numbersFontObjects.push([m, z, D.y + D.h]);\n                                                }\n\n                                                h = z;\n                                            }\n                                        }\n\n                                        f = u;\n                                    }\n\n                                    var tfo = 0,\n                                        toTfo = textFontObjects.length,\n                                        textContent, textX, textWidth;\n\n                                    if(toTfo) {\n                                        ge.fillStyle = Jo[t.Sy];\n                                        ge.font = t.VM + qe;\n\n                                        for(; tfo < toTfo; tfo++) {\n                                            textContent = textFontObjects[tfo][0];\n                                            textX = textFontObjects[tfo][1];\n                                            textWidth = textFontObjects[tfo][2];\n\n                                            We(ge, textX, textWidth, textWidth + 4);\n                                            ge.fillText(textContent, textX, textWidth + 8.5);\n                                        }\n                                    }\n\n                                    var nfo = 0, toNfo = numbersFontObjects.length;\n\n                                    if(toNfo) {\n                                        ge.fillStyle = Jo[t.Sy];\n                                        ge.font = \"\" + re + t.Iz + qe;\n\n                                        for(; nfo < toNfo; nfo++) {\n                                            textContent = numbersFontObjects[nfo][0];\n                                            textX = numbersFontObjects[nfo][1];\n                                            textWidth = numbersFontObjects[nfo][2];\n\n                                            We(ge, textX, textWidth, textWidth + 4);\n                                            ge.fillText(textContent, textX, textWidth + 8.5);\n                                        }\n                                    }\n\n                                    if (nt[Ci]) {\n                                        p = l.over(nt[Ci]);\n\n                                        return $u.text(p);\n                                    }\n                                }\n\n                            };\n\n                            //if(!window.$is_flutter_view) {\n                                drawXAxisLabels();\n                            //}\n\n                            window.Measurer('main-canvas-p3-1').stop();\n                            window.Measurer('main-canvas-p3-2').start();\n\n                            z = Si - xi;\n\n                            ge.strokeStyle = Jo[t.Np];\n                            ge.textAlign = t.uO;\n                            ge.textBaseline = \"middle\";\n                            ge.font = \"\" + re + t.Iz + qe;\n                        //    ge.fillStyle = Jo[t.lU];\n                        //    ge.fillRect(z, 0, z + xi, ki);\n                            ge.fillStyle = Jo[t.Sy];\n\n                            pr = a ? [Gt, oe, Fr] : [Gt, oe];\n\n                            //console.log(JSON.stringify(pr[2][17]), JSON.stringify(pr[2][18]))\n\n                            vo = function () {\n                                var n, t, e;\n                                for (e = [], t = 0, n = pr.length; n > t; t++) {\n                                    hr = pr[t];\n\n                                    if(hr) {\n                                        hr = Gr(hr);\n\n                                        hr[mt].w = xi;\n                                        hr[mt].x = z;\n\n                                        e.push(hr)\n                                    } else {\n                                        e.push(void 0);\n                                    }\n                                }\n                                return e\n                            }();\n\n                            jt = vo[0];\n                            te = vo[1];\n                            br = vo[2];\n\n                            // bottom date series (X axis)\n                            // up to 3ms\n                            for (qr = 0, Ar = bt.length; qr < Ar; qr++) {\n                                j = bt[qr];\n                                Ee(ge, j + .5, z, z + xi);\n                            }\n\n                            window.Measurer('main-canvas-p3-2').stop();\n                            window.Measurer('main-canvas-p3-3').start();\n\n                            Pe(ge, te, { hr: \"hr\" });\n\n                            sr = 0;\n                            cr = 0;\n\n                            if(So) {\n                                pl(\"draw_depth_hints\", function () {\n                                    var e, r, o, i;\n\n                                    ol = Gr(te);\n\n                                    ol[mt].x += 8;\n                                    ol[mt].w -= 8;\n                                    ol[Ft].x = 0;\n                                    ol[Ft].w = Wt;\n\n                                    o = ol[mt].x;\n                                    e = o + ol[mt].w;\n                                    r = ol[mt].y;\n                                    i = r + ol[mt].h;\n                                    Gu = Wt / ol[mt].w;\n\n                                    return Re(ge, ol, function () {\n                                        var u, l, a, s, c, f, h, d, p, v, b, g, m, F, x, y, $, w;\n\n                                        ge.lineWidth = 1;\n\n                                        c = [\n                                            [du, t.MK],\n                                            [Lu, t.MJ]\n                                        ];\n\n                                        window.Measurer('draw-depth').start();\n\n                                        var useSimplifiedHints = performanceSettings['simplified_orderbook_hints'];\n\n                                        for (b = 0, v = c.length; v > b; b++) {\n                                            g = c[b];\n\n                                            s = g[0];\n                                            u = g[1];\n\n                                            pl(\"draw \" + u, function () {\n                                                var n, l, a, c, f, h, d, p, v, b, g;\n\n                                                if(useSimplifiedHints) {\n                                                    if (u === \"Green\") {\n                                                        //    ge.strokeStyle = \"#00C900\";\n                                                        //    ge.strokeStyle = \"#14B514\";\n                                                        ge.strokeStyle = \"#129912\";\n                                                    } else if (u === \"Red\") {\n                                                        //    ge.strokeStyle = \"#CA0000\";\n                                                        //    ge.strokeStyle = \"#B61414\";\n                                                        ge.strokeStyle = \"#991111\";\n                                                    }\n                                                } else {\n                                                    ge.fillStyle = Jo[\"\" + u + t.bT];\n                                                    ge.strokeStyle = Jo[\"\" + u + t.bT];\n                                                }\n\n                                                h = Wt;\n                                                a = ol[mt].x;\n                                                b = [];\n\n                                                l = g = 0;\n                                                d = s.length;\n\n                                                if(useSimplifiedHints) {\n                                                    ge.beginPath();\n                                                }\n\n                                                while(d > g && !(h < 1e-8)) {\n                                                    c = s[l];\n\n                                                    if(c[1] < h) {\n                                                        n = c[1];\n                                                    } else {\n                                                        n = h;\n                                                    }\n\n                                                    f = c[0];\n\n                                                    p = eo(ol, Wt - h + n, f);\n\n                                                    //console.log(ol)\n                                                    //debugger\n\n                                                    z = p[0];\n                                                    j = p[1];\n\n                                                    if(a >= o && e >= a && i <= (v = j - 1) && r >= v) {\n                                                        if(useSimplifiedHints) {\n                                                            ge.moveTo(a, j - 1);\n                                                            ge.lineTo(z + 1, j - 1);\n\n                                                            ge.moveTo(a, j);\n                                                            ge.lineTo(z + 1, j);\n                                                        } else {\n                                                            ge.fillRect(a, j - 1, z - a + 1, 2);\n                                                        }\n\n                                                    }\n\n                                                    a = z;\n                                                    h -= n;\n                                                    l = ++g;\n\n                                                    b.push(void 0);\n                                                }\n\n                                                if(useSimplifiedHints) {\n                                                    ge.stroke()\n                                                }\n\n                                                return b\n                                            });\n                                        }\n\n                                        window.Measurer('draw-depth').stop();\n\n                                        h = Wt;\n                                        m = [zo];\n                                        y = [];\n\n                                        ge.lineWidth = 1.5;\n                                        ge.strokeStyle = Jo[t.MI];\n                                        ge.beginPath();\n\n                                        // bid/ask balance line\n                                        for ($ = 0, d = m.length; $ < d; $++) {\n                                            for (l = m[$], F = n[l], a = w = 0, p = F.length; p > w; a = ++w) {\n                                                f = F[a],\n                                                x = eo(ol, a * Gu, f),\n                                                z = x[0],\n                                                j = x[1],\n                                                0 === a && ge.moveTo(ol[mt].x, j),\n                                                z >= o && e >= z && j >= i && r >= j && ge.lineTo(z, j);\n                                            }\n\n                                            y.push()\n                                        }\n\n                                        ge.stroke()\n\n                                        return y\n                                    })\n                                })\n                            }\n\n                            if (Gt) switch (be = function (n) {\n                                var t, e, r, o, i, u;\n                                for (ot = Gt[Ft], r = ot.y, e = ot.y + ot.h, t = [], u = 0, i = n.length; i > u; u++) o = n[u], o >= r && e >= o && t.push(o);\n                                return t\n                            }, Mi[t.VT]) {\n                                case \"macd\":\n                                    He(ge, jt, {\n                                        keep: \"keep\"\n                                    });\n                                    break;\n                                case \"bid_ratio\":\n                                case \"cmf\":\n                                case \"obv\":\n                                    He(ge, jt, {\n                                        keep: \"keep\"\n                                    });\n                                    break;\n                                case \"dmi\":\n                                    Be(ge, jt, be([20, 50]), {\n                                        keep: \"keep\"\n                                    });\n                                    break;\n                                case \"rsi\":\n                                    Be(ge, jt, be([0, 30, 50, 70, 100]), {\n                                        keep: \"keep\"\n                                    });\n                                    break;\n                                default:\n                                    Be(ge, jt, be([0, 20, 50, 80, 100]), {\n                                        keep: \"keep\"\n                                    })\n                            }\n\n                            window.Measurer('main-canvas-p3-3').stop();\n                            window.Measurer('main-canvas-p3-4').start();\n\n                            de = Gr(te);\n\n                            if (wo > 1e7) {\n                                de[Ft].y *= 1e8;\n                                de[Ft].h *= 1e8;\n                            }\n\n                            window.Measurer('main-canvas-price-levels').start();\n\n                            // main chart y axis\n                            var priceLevels = Pe(ge, de, {text: 'pmax', keep: 'keep'});\n\n                            if(window.Heatmap && window.Heatmap.setPriceLevels) {\n                                window.Heatmap.setPriceLevels(priceLevels);\n                            }\n\n                            // volume y axis\n                            if (a) {\n                                Pe(ge, br);\n                            }\n\n                            window.Measurer('main-canvas-price-levels').stop();\n\n                            if (So || window.$is_flutter_view) {\n                                D = te[mt];\n\n                                (function () {\n                                    if(!xe || !xe[st]) {\n                                        return;\n                                    }\n\n                                    var r = xe[st];\n                                    j = oo(oe, r);\n                                    z = D.x;\n                                    ge.strokeStyle = Jo[t.Lm];\n                                    ge.fillStyle = Jo[t.Lm];\n\n                                    if(xe[st] && window.$is_flutter_view) {\n                                        Re(ge, br, function () {\n                                            const priceText = xe[st].toPrecision(5);\n                                            const leftPadding = xi / 2;\n\n                                            iu = ge.measureText(priceText);\n\n                                            ge.textBaseline = \"middle\";\n                                            ge.textAlign = \"center\";\n                                            //ge.font = ge.font.replace(/\\d+px/, \"10px\");\n                                            //ge.font = \"\" + re + t.Iz + qe;\n                                            ge.font = \"11px \" + qe;\n\n                                            // semi-transparent background\n                                            ge.fillStyle = Jo[t.Za];\n                                            // ge.fillRect(z + leftPadding, j - 6, iu.width, 10);\n                                            ge.fillRect(z + leftPadding - iu.width / 2, j - 6, iu.width, 10);\n\n                                            // price label\n                                            ge.fillStyle = Jo[t.Lm];\n                                            ge.fillText(priceText, z + leftPadding, j);\n                                        });\n                                    }\n\n                                    var u = te[mt];\n                                    var i = u.y;\n                                    pt = u.h;\n                                    var e = i + pt;\n                                    if (j >= e && i >= j) {\n                                        Jl(ge, z, j);\n                                    }\n                                    ge.fillStyle = Jo[t.MI];\n                                    j = oo(oe, sr / cr);\n                                })()\n\n                                // draw an arrow pointing ar current volume\n                                if (a && So) {\n                                    D = te[mt];\n\n                                    Re(ge, br, function () {\n                                        ge.font = \"\" + re + t.Iz + qe;\n                                        var n = wr(Yt($, Bo));\n                                        var e = eo(Fr, Ui - Ci + 1, n);\n                                        z = e[0];\n                                        j = e[1];\n                                        iu = ge.measureText(n.toFixed(5));\n                                        ge.fillStyle = Jo[t.Za];\n                                        ge.fillRect(D.x + 12, j - 6, iu.width, 12);\n                                        ge.fillStyle = Jo[t.MF];\n                                        ge.fillText(t.VJ, D.x, j);\n                                        return ge.fillText(kl(n, false), D.x + 12, j);\n                                    });\n                                }\n                            }\n\n                            if (!a) {\n                                D = Fr[mt];\n                                ge.textAlign = t.VN;\n                                ge.fillText('Volume is disabled.', Si / 2, D.y + D.h / 2);\n                            }\n\n                            if (Gt && Mi[t.VT] === t.zs && !e) {\n                                D = Gt[mt];\n                                ge.textAlign = t.VN;\n                                ge.fillText(\"\" + Ze + t.CU, Si / 2, D.y + D.h / 2);\n                            }\n\n                            D = b[mt];\n                            Et = Ui - Ci;\n                            $r = [[Et, nt[Ui]]];\n                            ge.font = t.Ja;\n                            no = 0;\n\n                            for (Yr = $r.length; Yr > no; no++) {\n                                bo = $r[no];\n                                xt = bo[0];\n                                q = bo[1];\n                                if (q) {\n                                    if (xt !== 0 || !(120 / Ti > Et)) {\n                                        z = D.x + D.w;\n                                        j = D.y + D.h + 8.5;\n                                        ge.strokeStyle = Jo[t.Np];\n                                        ge.fillStyle = Jo[t.Np];\n                                        ge.strokeStyle = Jo[t.Sy];\n                                        ge.fillStyle = Jo[t.Sy];\n                                        ge.beginPath();\n                                        ge.arc(z, j, 2, 0, 2 * Math.PI, true);\n                                        ge.closePath();\n                                        ge.fillStyle = Jo[t.Sy];\n                                        rr = Ci + xt === ut ? t.iG : ar(parseInt((wr(nt) - q) / 1000));\n                                        ge.textAlign = t.uO;\n                                        iu = ge.measureText(rr);\n                                        ge.fillText(rr, z + (xi - iu.width) / 2, j);\n                                    }\n                                }\n                            }\n\n                            window.Measurer('main-canvas-p3-4').stop();\n                            window.Measurer('main-canvas-p3-5').start();\n\n                            // console.log(Fr, te, b, Fr == te, te == b, Fr == b);\n\n                            // st: alerts are rendered here\n\n                            D = te[mt];\n                            ge.lineWidth = 1;\n\n                            f = [[s, Jo[t.MD], \"high\"], [c, Jo[t.VX], \"low\"]];\n\n                            To = 0;\n\n                            for (Or = f.length; Or > To; To++) {\n                                go = f[To];\n\n                                Se = go[0];\n                                Q = go[1];\n                                fr = go[2];\n\n                                if (Se) {\n                                    ge.fillStyle = ge.strokeStyle = Q;\n\n                                    j = oo(Xe, Se / wo) + 0.5;\n\n                                    if (D.y + D.h < j && j < D.y) {\n                                        ge.beginPath();\n\n                                        ge.font = \"12px FontAwesome\";\n                                        ge.textAlign = \"right\";\n                                        ge.textBaseline = \"middle\";\n\n                                        rr = '\\uf0a2';\n\n                                        if ((fr === \"high\" && Yi) || (fr === \"low\" && ou)) {\n                                            rr = '\\uf0f3';\n                                        }\n\n                                        ge.fillText(rr, D.x + D.w - 10, j);\n\n                                        Ee(ge, j, D.x + D.w - 6, D.x + D.w);\n                                    }\n                                }\n                            }\n\n                            // end: alerts are rendered here\n\n                            window.Measurer('main-canvas-p3-5').stop();\n                            window.Measurer('main-canvas-p3').stop();\n                            window.Measurer('main-canvas').stop();\n\n                            redrawHeatmap(Xe, Po, To, Mo, Ti, Hi, Mi, D);\n\n                            kt = 1;\n                            mo = S[i];\n\n                            for (er in mo)\n                                if (so.call(mo, er) && (h = mo[er], _ = null != h ? null != (Fo = h[Io]) ? Fo[w] : void 0 : void 0)) {\n                                    switch (ft = Math.round(nt[0].getTime() / 1000), lr = Yt(_, J), k = $, C = Yt(_, T), W = Yt(k, T), me = (ft - lr[0]) / Io, Mi[\"mode\"]) {\n                                        case \"absolute\":\n                                            Ut = null, $r = function () {\n                                                var n, t;\n                                                for (n = [], ke = t = Ci; Ui >= Ci ? Ui >= t : t >= Ui; ke = Ui >= Ci ? ++t : --t) E = C[ke + me], null == E ? n.push(null) : n.push(E);\n                                                return n\n                                            }();\n                                            break;\n                                        case \"relative\":\n                                            Ut = null, $r = function () {\n                                                var n, t;\n                                                for (n = [], ke = t = Ci; Ui >= Ci ? Ui >= t : t >= Ui; ke = Ui >= Ci ? ++t : --t) E = C[ke + me], null == E ? n.push(null) : (null == Ut && (Ut = U[ke - Ci] / E), n.push(E * Ut));\n                                                return n\n                                            }();\n                                            break;\n                                        case \"benchmark\":\n                                            Ut = null, Ge = 0, nr = 0, $r = function () {\n                                                var n, t;\n                                                for (n = [], ke = t = Ci; Ui >= Ci ? Ui >= t : t >= Ui; ke = Ui >= Ci ? ++t : --t) N = W[ke], L = C[ke + me], N && L ? (Ge += N, nr += L, n.push(L)) : n.push(null);\n                                                return n\n                                            }(), Ut = Ge / nr, $r = function () {\n                                                var n, t, e;\n                                                for (t = [], e = 0, n = $r.length; n > e; e++) E = $r[e], null != E ? t.push(E * Ut) : t.push(E);\n                                                return t\n                                            }()\n                                    }\n\n                                    S[t.Wi] = Ut,\n                                    ge.lineWidth = 1 === yi ? 1.5 : 2,\n                                    ge.lineWidth = 1,\n                                    ge.strokeStyle = Jo[t.VB][1],\n                                    Ae(ge, oe, $r, al + .5)\n                                }\n                            {\n                                window.isDrawing = false\n                            }\n\n                            //    Zl();\n\n                            window.Measurer('draw_main').stop();\n\n                            return;\n                        }\n                    };\n\n                    Mo = true;\n                    ll = me(150, function() {\n                        return Lr(Fl)\n                    });\n                    _u = $(\"#loading\");\n                    Ve = 0;\n                    Pu = $(\"#notify\");\n                    hu = false;\n                    Ho = {};\n\n                    var isCombinedHeatmap = ('$heatmap_settings' in window && window.$heatmap_settings.combined);\n\n                    if(isCombinedHeatmap) {\n                        $(\".symbol_combined_heatmap\").addClass(\"active\");\n                    } else {\n                        $(\".symbol_\" + window.$symbol).addClass(\"active\");\n                    }\n\n                    fu = 0,\n                    function() {\n                        var n;\n                        return n = 0,\n                            function() {\n                                function e() {\n                                    rr(t.LY + $ssl + t.YT + $host + '/ticker', {\n                                        nonce: 0\n                                    }, function() {\n                                        r = arguments[0];\n                                        l = arguments[1];\n\n                                    //    console.log(l, r);\n\n                                        if (l != null) {\n                                            u = l.now;\n                                            n = Date.now();\n\n                                            for (i in l) {\n                                                if (l.hasOwnProperty(i)) {\n                                                    o = l[i];\n\n                                                    Nl(i, o);\n\n                                                    if (u - o.date > 60) {\n                                                        $('.symbol_' + i).addClass(\"grey\");\n                                                    } else {\n                                                        $('.symbol_' + i).removeClass(\"grey\");\n                                                    }\n                                                }\n                                            }\n                                        }\n\n                                        Kr(20 * 1000, function(n) {\n                                            e(n);\n                                        });\n                                    });\n                                }\n\n                                var r, o, i, u, l;\n\n                                setTimeout(function() {\n                                    e();\n                                }, 500);\n                            }(),\n                            function() {\n                                var e;\n                                Kr(3000, function() {\n                                    function r() {\n                                        e = Date.now() - n;\n                                        if (e > 30000) {\n                                            $(\"#pc_to_bw\").attr(t.QQ, t.Mk);\n                                        } else if (e > 15000) {\n                                            $(\"#pc_to_bw\").attr(t.QQ, t.BU);\n                                        } else {\n                                            $(\"#pc_to_bw\").attr(t.QQ, t.Mi);\n                                        }\n                                        Kr(1000, function(n) {\n                                            r(n);\n                                        });\n                                    }\n\n                                    r();\n                                });\n                            }(), null\n                    }(),\n                    Eu.resize(function() {\n                        if(ku) {\n                            kuHeight = ku.height();\n                        }\n\n                        return lockCross && gl(), ll()\n                    }),\n\n                    mu.hover(function() {\n                        return mu.height(320)\n                    }, function() {\n                        return mu.height(32)\n                    }),\n\n                    /* desktop view */\n                    $(\".switch_desktop_version\").click(function() {\n                        var val = $(this).data('value');\n\n                        console.log(\"switch_desktop_version\", val);\n\n                        // set localStorage\n                        Ku(\"force_desktop\", val);\n\n                        // set cookie\n                        hl(\"force_desktop\", val, {\n                            wildcardDomain: true\n                        });\n\n                        setTimeout(function() {\n                            window.location.reload();\n                        }, 250);\n\n                        return true;\n                    }),\n\n                    /*  */\n                    $(\"#switch-theme a\").click(function() {\n                        var val = $(this).data('theme');\n\n                        // set localStorage\n                        Ku(\"theme\", val);\n\n                        // set cookie\n                        // hl(\"theme\", val);\n\n                        setTimeout(function () {\n                            window.location.reload();\n                        }, 250);\n\n                        return true;\n                    }),\n\n                    $(\"#close_ad\").click(function() {\n                        return Mu.hide(), nu = 0, Fl(), !0\n                    }),\n\n                    $('#show_qr').click(function() {\n                        var n = $('#qr');\n                        if (n.is(':visible')) {\n                            $(this).text(t.cr);\n                            n.hide();\n                        } else {\n                            $(this).text(t.Ma);\n                            n.show();\n                        }\n                        return true;\n                    }),\n\n                    $(\"#close_qr\").click(function() {\n                        $('#show_qr').text(t.cr);\n                        $('#qr').hide();\n                        return true;\n                    }),\n\n                    Fr = $(\"#indicators_settings\"),\n                    $(\"#btn_indicators_settings\").click(function() {\n                        if (Fr.is(':visible')) {\n                            Fr.hide();\n                        } else {\n                            Fr.show();\n\n                            $(\"#btn_indicators_settings\").parents('.dropdown').removeClass('dropdown-hover');\n                        }\n\n                        return true;\n                    }),\n                    $(\"#close_indicators_settings\").click(function() {\n                        if (Fr.is(':visible')) {\n                            Fr.hide();\n                        } else {\n                            Fr.show();\n                        }\n\n                        return true;\n                    });\n\n                    const FrP = $(\"#performance_settings\");\n                    $(\"#btn_performance_settings\").click(function() {\n                        if (FrP.is(':visible')) {\n                            FrP.hide();\n                        } else {\n                            FrP.show();\n\n                            $(\"#btn_performance_settings\").parents('.dropdown').removeClass('dropdown-hover');\n                        }\n\n                        return true;\n                    });\n                    $(\"#close_performance_settings\").click(function() {\n                        if (FrP.is(':visible')) {\n                            FrP.hide();\n                        } else {\n                            FrP.show();\n                        }\n\n                        return true;\n                    });\n\n                    Fr2 = $(\"#heatmap_settings\"),\n                    $(\"#btn_heatmap_settings\").click(function() {\n                        if (Fr2.is(':visible')) {\n                            Fr2.hide();\n                        } else {\n                            Fr2.show();\n\n                            $(\"#btn_heatmap_settings\").parents('.dropdown').removeClass('dropdown-hover');\n                        }\n\n                        return true;\n                    }),\n                    $(\"#close_heatmap_settings\").click(function() {\n                        if (Fr2.is(':visible')) {\n                            Fr2.hide();\n                        } else {\n                            Fr2.show();\n                        }\n\n                        return true;\n                    });\n\n                    Fr3 = $(\"#aggregated_heatmap_settings\"),\n                    $(\"#btn_aggregated_heatmap_settings\").click(function() {\n                        if (Fr3.is(':visible')) {\n                            Fr3.hide();\n                        } else {\n                            Fr3.show();\n\n                            $(\"#btn_aggregated_heatmap_settings\").parents('.dropdown').removeClass('dropdown-hover');\n                        }\n\n                        return true;\n                    }),\n                    $(\"#close_aggregated_heatmap_settings\").click(function() {\n                        if (Fr3.is(':visible')) {\n                            Fr3.hide();\n                        } else {\n                            Fr3.show();\n                        }\n\n                        return true;\n                    });\n\n                    function initPopupDragging(popupSelector) {\n                        var lastPosX = 0;\n                        var lastPosY = 0;\n                        var isDragging = false;\n\n                        function handleDrag(ev) {\n                            // for convience, let's get a reference to our object\n                            var elem = $(ev.target).parents('.popup')[0];\n\n                            // DRAG STARTED here,\n                            // let's snag the current position\n                            // and keep track of the fact that we're dragging\n                            if (!isDragging) {\n                                isDragging = true;\n\n                                lastPosX = elem.offsetLeft;\n                                lastPosY = elem.offsetTop;\n                            }\n\n                            // we simply need to determine where the x,y of this\n                            // object is relative to where it's \"last\" known position is\n                            // NOTE:\n                            //    deltaX and deltaY are cumulative\n                            // Thus we need to always calculate 'real x and y' relative\n                            // to the \"lastPosX/Y\"\n                            var posX = ev.deltaX + lastPosX;\n                            var posY = ev.deltaY + lastPosY;\n\n                            // move our element to that position\n                            elem.style.left = posX + \"px\";\n                            elem.style.top = posY + \"px\";\n\n                            // DRAG ENDED\n                            // this is where we simply forget we are dragging\n                            if (ev.isFinal) {\n                                isDragging = false;\n                            }\n                        }\n                        var eventWrapper = $(popupSelector);\n\n                        if(!eventWrapper.length) {\n                            return;\n                        }\n\n                        var mc = new Hammer(eventWrapper[0]);\n\n                        mc.add(new Hammer.Pan({direction: Hammer.DIRECTION_ALL, threshold: 0}));\n                        mc.on(\"pan\", handleDrag);\n                    }\n\n                    initPopupDragging('#heatmap_settings .drag');\n                    initPopupDragging('#indicators_settings .drag');\n\n/*\n                    var estimateHover = function() {\n                        return d.amount > 1000 ? bu.val(parseInt(d.amount)) :\n                            bu.val(parseFloat(d.amount.toPrecision(5))),\n                            Bo === H ? bu.click_base_currency() : bu.click_quote_currency(),\n                            bu.keyup()\n                    };\n\n                    d.hover(i);\n                    d.click(function() {\n                        return $(\".link_estimate_trading:first\").click(), i()\n                    });\n                   */\n\n                    sa = function(n, e) {\n                        function r() {\n                            var t, e, r, o, u, l;\n                            for (r = ie[n].params, l = [], t = o = 0, u = i.length; u > o; t = ++o) e = i[t], l.push($(e).val(r[t]));\n                            return l\n                        }\n                        var o, i, u;\n                        return e.default_params = e.params, o = e.cookie, i = $(t.Ve + n + t.GL), i.change(function() {\n                            var e, r, u, l, a, s;\n                            for (u = [], a = 0, s = i.length; s > a; a++) {\n                                if (e = i[a], ol = $(e).val(), !ol.match(/^\\d+$/)) {\n                                    if (n === t.QM && ol === \"\") continue;\n                                    return alert(ol + t.Fx), void 0\n                                }\n                                u.push(parseInt(ol))\n                            }\n                            Ku(t.mr + o, u), ie[n].params = u, r = to;\n                            for (Gu in Ur) so.call(Ur, Gu) && (l = Ur[Gu], to = Gu, Ur[Gu] = Nr(l), Yl(!1));\n                            return to = r, Er = Ur[r]\n                        }), $(t.gs + n + t.xH).click(function() {\n                            return ie[n].params = ie[n].default_params, r(), $(i[0]).change()\n                        }), u = Ku(t.mr + o), ie[n].params = u || ie[n].default_params || [], r()\n                    };\n\n                    for (lu in ie) so.call(ie, lu) && (Ki = ie[lu], sa(lu, Ki));\n                    te = !0,\n                    A = {\n                        USD: t.cx,\n                        EUR: t.Ho,\n                        GBP: t.LN,\n                        CNY: t.LM,\n                        JPY: t.LM,\n                        AUD: t.LL,\n                        CAD: t.Qq,\n                        BTC: \"₿\",\n                        LTC: \"Ł\"\n                    },\n                    _o = {},\n                    ve(Mi, \"time_zone\", function() {\n                        var n, e, r, o;\n\n                        var u = Ei.childNodes;\n\n                        for (var i = u.length; i > o; o++) {\n                            n = u[o];\n                            r = n.tx;\n                            e = yr(new Date(1000 * r[ct]));\n\n                            $(\".t\", n).text(e);\n                        }\n\n                        cl();\n\n                        return null;\n                    }),\n                    ve(Mi, \"orderbook_precision\", function() {\n                        $t = false;\n\n                        ql();\n\n                        $t = true;\n\n                        return true;\n                    }),\n                    Ce = null,\n                    io = {},\n                    zt = {},\n                    fo = {},\n                    Zr = {},\n                        // redraw charts every 80ms\n                        function() {\n                            var lastRequestTime = +new Date();\n\n                            function n() {\n                                if('hidden' in document && !document.hidden) {\n                                    redrawCross();\n                                    redrawMain();\n                                } else {\n                                    if(cu) {\n                                        Il();\n                                        ul();\n                                        cu = false;\n                                    }\n                                }\n\n                                Kr(80, function(t) {\n                                    n(t)\n                                })\n                            }\n\n                            n()\n                        }(),\n                        // run writeTrades\n                        function() {\n                            function n() {\n                                if(su) {\n                                //    requestAnimationFrame(function () {\n                                        Gl();\n                                        su = !1\n                                //    });\n                                }\n\n                                if(au) {\n                                    if(!('hidden' in document) || !document.hidden) {\n                                        requestAnimationFrame(function () {\n                                            ql();\n                                            au = !1\n                                        });\n                                    }\n                                }\n\n                                Kr(200, function(t) { // default value was 120\n                                    n(t)\n                                })\n                            }\n\n                            n()\n                        }(),\n                // FL IS THE FIRST COMMAND TO CALL FREEZE\n                        Fl(),\n                        function() {\n                            function n(n) {\n                                if (n >= 0) {\n                                    return t.iM + n.toFixed(2) + t.Ta;\n                                } else {\n                                    return n.toFixed(2) + t.Ta;\n                                }\n                            }\n\n                            function e(n, t) {\n                                t = t.toString();\n\n                                if (n.text() === t) {\n                                    return;\n                                } else {\n                                    return n.text(t);\n                                }\n                            }\n\n                            function r() {\n                                var r, i, a, c, f, h, p, b, g, m, F, x, y, w, T, k, M, _, I;\n\n                                var u = [[\"to\", d], [\"from\", v]];\n                                var V = 0;\n\n                                for (var S = u.length; S > V; V++) {\n                                    _ = u[V];\n                                    T = _[0];\n                                    i = _[1];\n\n                                    g = tt[i].flatten();\n\n                                    if (i === v) {\n                                        g.reverse();\n                                    }\n\n                                    x = parseFloat(bu.val());\n\n                                    F = x;\n\n                                    w = 0;\n                                    y = 0;\n\n                                    p = $(t.ih + T + t.fj, o);\n                                    a = $(t.ih + T + t.zd, o);\n                                    b = $(t.ih + T + t.cy, o);\n                                    c = $(t.ih + T + t.TI, o);\n                                    f = $(t.ih + T + t.Qy, o);\n                                    h = $(t.ih + T + t.WK, o);\n\n                                    h.html(l);\n\n                                    k = 0;\n\n                                    for (M = g.length; M > k; k++) {\n                                        I = g[k];\n                                        m = I[0];\n                                        r = I[1];\n                                        if (s === j) {\n                                            if (!(F > r)) {\n                                                w += m * F;\n                                                y += F;\n                                                break;\n                                            }\n                                            w += m * r;\n                                            y += r;\n                                            F -= r;\n                                        } else {\n                                            if (!(F > m * r)) {\n                                                w += F;\n                                                y += F / m;\n                                                break;\n                                            }\n                                            w += m * r;\n                                            y += r;\n                                            F -= m * r;\n                                        }\n                                    }\n                                    if (\n                                        xe &&\n                                        m &&\n                                        !isNaN(x) &&\n                                        ((s === j && Math.abs(y - x) < 0.000001) || Math.abs(w - x) < 0.000001)\n                                    ) {\n                                        e(p, m);\n                                        e(b, n((m / xe[st]) * 100 - 100));\n                                        e(a, parseFloat((w / y).toPrecision(6)));\n                                        e(c, n((w / y / xe[st]) * 100 - 100));\n\n                                        if (s === j) {\n                                            e(f, parseFloat(w.toPrecision(6)));\n                                        } else {\n                                            e(f, parseFloat(y.toPrecision(6)));\n                                        }\n                                    } else {\n                                        p.text(\"out of orderbook\");\n                                        a.text(\"out of orderbook\");\n                                        f.text(\"\");\n                                        h.text(\"\");\n                                        b.text(\"\");\n                                        c.text(\"\");\n                                    }\n                                }\n                                return true;\n                            }\n\n                            var u, s;\n                            var o = $('#dlg_estimate_trading');\n\n                            bu = $('.amount', o);\n\n                            bu.keyup(r);\n\n                            bu.click_base_currency = function() {\n                                return $(\".unit:first\", o).click();\n                            };\n\n                            bu.click_quote_currency = function() {\n                                return $($('.unit', o)[1]).click();\n                            };\n\n                            if (f.indexOf(t.ni) === -1) {\n                                if (j === \"DOGE\") {\n                                    bu.val(5e5);\n                                } else {\n                                    bu.val(100);\n                                }\n                            } else {\n                                bu.val(10);\n                            }\n\n                            s = j;\n\n                            var l = Pr;\n                            var c = $('.unit', o);\n\n                            var a = c[0];\n                            var i = c[1];\n\n                            $(a).text(j);\n                            $(i).text(Pr);\n\n                            $('.unit', o).click(function() {\n                                if (!$(this).hasClass(\"selected\")) {\n                                    return;\n                                }\n\n                                $('.unit', o).removeClass(\"selected\");\n                                $(this).addClass(\"selected\");\n\n                                s = $(this).text();\n\n                                var n = $(t.Lp, o).text();\n\n                                if (n !== \"\") {\n                                    $('.amount').val(parseFloat(parseFloat(n).toPrecision(5)));\n                                }\n\n                                if (s === j) {\n                                    l = Pr;\n\n                                    $(\".to\", o).text(\"Cost\");\n                                    $(\".from\", o).text(\"Receive\");\n                                    $(\".mode\", o).text(\"Buy\");\n                                    $(\".to_text\", o).text(\"Buy\");\n                                    $(\".from_text\", o).text(\"Sell\");\n                                } else {\n                                    l = j;\n\n                                    $(\".to\", o).text(\"Receive\");\n                                    $(\".from\", o).text(\"Sell\");\n                                    $(\".mode\", o).text(\"Sell\");\n                                    $(\".to_text\", o).text(\"Spend\");\n                                    $(\".from_text\", o).text(\"ToReceive\");\n                                }\n                                r();\n                            });\n\n                            (u = function() {\n                                r();\n                                return setTimeout(u, 1000);\n                            })();\n\n                            return 0;\n                        }();\n\n                        $(\".mode\").click(function() {\n                            return ua($(this).attr(\"mode\"))\n                        }),\n\n                        $(t.VZ).click(function() {});\n\n                        ke = window.localStorage;\n\n                        if (\n                            (Fa = ke != null ? ke.mode : void 0) === 'cross' ||\n                            Fa === 'draw_line' ||\n                            Fa === \"draw_fhline\" ||\n                            Fa === \"draw_fhlineex\" ||\n                            Fa === \"draw_ffan\" ||\n                            Fa === \"draw_fline\" ||\n                            Fa === \"draw_hline\"\n                        ) {\n                            ua(ke.mode);\n                        } else {\n                            ua('cross');\n                        }\n\n                        $(document).on('keydown', function(n) {\n                            var o = n.which;\n\n                            // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n\n                            var keyCodes = {\n                                SHIFT: 16,\n                                ESCAPE: 27,\n                                FOUR: 52,\n                                EQUALS: 61,\n                                E: 69,\n                                L: 76,\n                                T: 84,\n                                ADD_NUMPAD: 107,\n                                SUBTRACT_NUMPAD: 109,\n                                ADD_DOM: 171,\n                                SUBTRACT_DOM: 173,\n                                SUBTRACT: 187,\n                                DASH: 189,\n                                DELETE: 46\n                            };\n\n                            if (\n                                (n.target.tagName.toLowerCase() === 'input' ||\n                                    n.target.tagName.toLowerCase() === 'textarea') &&\n                                o !== keyCodes.ESCAPE\n                            ) {\n                                return;\n                            }\n\n                            if (o === keyCodes.SHIFT) {\n                                ti = true;\n                            }\n\n                            if ($(\".dialog:visible\").length) {\n                                if (o === keyCodes.ESCAPE) {\n                                    $(\".dialog:visible\").hide();\n                                }\n\n                                return true;\n                            }\n\n                            if (o === keyCodes.T) {\n                                Mo = !Mo;\n                                cu = true;\n                            }\n\n                            if (o === keyCodes.EQUALS || o === keyCodes.SUBTRACT || o === keyCodes.ADD_NUMPAD || o === keyCodes.FOUR || o === keyCodes.ADD_DOM) {\n                                scaleGraph(null, 1);\n                                return true;\n                            }\n\n                            if (o === keyCodes.SUBTRACT_NUMPAD || o === keyCodes.DASH || o === keyCodes.SUBTRACT_DOM) {\n                                scaleGraph(null, -1);\n                                return true;\n                            }\n\n                            switch (n.which) {\n                                /*case keyCodes.E:\n                                    ia('estimate_trading');\n                                    break;*/\n\n                                case keyCodes.L:\n                                    ua(\"draw_line\", false);\n                                    break;\n\n                                default:\n                                    return true;\n                            }\n                            return true;\n                        }),\n                        $(document).on(\"keyup\", function(n) {\n                            if (n.which === 16) {\n                                ti = false;\n                            }\n\n                            return true;\n                        }),\n                        la()\n                })\n            }(), ce = ae = fe = le = he = de = se = null, u = i = l = o = null,\n            function() {\n                function n() {\n                    var n = {};\n\n                    n[v] = {};\n                    n[g] = {};\n\n                    return n;\n                }\n\n                function e(n, e) {\n                    var r;\n\n                    if ((r = n[b]) == null) {\n                        return;\n                    } else {\n                        return r.send(JSON.stringify([\"c\" + F++, \"connect\", \"trades:\" + e]));\n                    }\n                }\n\n                function r(n, e) {\n                    var r;\n\n                    delete n[v][e];\n                    delete n[g][e];\n\n                    if ((r = n[b]) == null) {\n                        return;\n                    } else {\n                        return r.send(JSON.stringify([\"c\" + F++, \"disconnect\", \"trades:\" + e]));\n                    }\n                }\n\n                function a(n) {\n                    var t, e;\n                    var o = n[g];\n\n                    for (t in o) {\n                        if (o.hasOwnProperty(t)) {\n                            e = o[t];\n\n                            r(n, t);\n                        }\n                    }\n\n                    return this;\n                }\n\n                function s(n, t) {\n                    var e, o;\n                    var i = n[g];\n\n                    for (e in i) {\n                        if (i.hasOwnProperty(e)) {\n                            o = i[e];\n\n                            if (e !== t) {\n                                r(n, e);\n                            }\n                        }\n                    }\n\n                    return this;\n                }\n\n                function c(n) {\n                    var t, r;\n                    var o = n[g];\n\n                    for (t in o) {\n                        if (o.hasOwnProperty(t)) {\n                            r = o[t];\n\n                            e(n, t);\n                        }\n                    }\n\n                    return n;\n                }\n\n                function f(n, r, o, i) {\n                    function u() {\n                        e(n, r);\n\n                        i(l);\n                    }\n\n                    var l, a, c, f;\n\n                    o = parseInt(o);\n\n                    if ((f = n[v][r]) != null ? f[o] : void 0) {\n                        u();\n                    } else {\n                        n[p][0](\"Loading...\");\n\n                        rr(\n                            \"http\" + $ssl + \"://\" + window.$host + \"/period\",\n                            {\n                                symbol: r,\n                                step: o\n                            },\n                            function() {\n                                var e, c;\n\n                                l = arguments[0];\n                                a = arguments[1];\n\n                                n[p][1]();\n\n                                if (l) {\n                                    (function() {\n                                        n[p][0](\"Load failed.\");\n                                        Kr(5000, function() {\n                                            return n[p][1]();\n                                        });\n                                    })();\n\n                                    return i(l);\n                                } else {\n                                    a = nr(a, o);\n\n                                    s(n, r);\n\n                                    ((e = n[v])[r] != null ? (e = n[v])[r] : (e[r] = {}))[o] = Br(o, a);\n                                    ((c = n[g])[r] != null ? (c = n[g])[r] : (c[r] = {}))[o] = true;\n\n                                    u();\n\n                                    return;\n                                }\n                            }\n                        );\n                    }\n                }\n\n                function h(n, t, e) {\n                    var r, o, i, u;\n\n                    if ((o = (u = n[v]) != null ? u[t] : void 0)) {\n                        for (i in o) {\n                            if (so.call(o, i)) {\n                                r = o[i];\n\n                                Pr(r, e);\n                            }\n                        }\n\n                        return this;\n                    }\n                }\n\n                function d(n) {\n                    var t;\n                    var r = n[g];\n\n                    for (t in r) {\n                        if (r.hasOwnProperty(t)) {\n                            r[t];\n\n                            return true;\n                        }\n                    }\n\n                    return false;\n                }\n\n                var p, v, b, g, F, x;\n\n                x = m(4);\n\n                b = x[0];\n                v = x[1];\n                g = x[2];\n                p = x[3];\n\n                F = 1;\n\n                ce = n;\n                ae = f;\n                fe = c;\n                le = h;\n                he = r;\n                de = a;\n                se = d;\n\n                u = b;\n                i = v;\n                l = g;\n\n                return (o = p);\n            }(),\n            function() {\n                // no #connection\n                return $('#connection').hover(\n                    function() {\n                        var e = $(this);\n                        var r = e.offset();\n                        var n = $(\"#help_connection\");\n\n                        n.css({\n                            left: r.left - (n.width() - e.width()) / 2,\n                            top: r.top - n.outerHeight()\n                        });\n\n                        return n.show();\n                    },\n                    function() {\n                        var n = $(\"#help_connection\");\n                        return n.hide();\n                    }\n                );\n            }(),\n            // performance settings\n            function() {\n                const container = $(\"#performance_settings\");\n                const cacheKey = \"performance_settings_\";\n                const default_performance_settings = window.$default_performance_settings;\n\n                if(default_performance_settings) {\n                    for(let k in default_performance_settings) {\n                        performanceSettings[k] = default_performance_settings[k];\n                    }\n                }\n\n                const inputs = container.find(\"input\");\n\n                inputs.each(function(key, input) {\n                    const el = $(this);\n                    const name = el.attr(\"name\");\n\n                    el.change(function() {\n                        const val = el.is(\":checked\");\n\n                        performanceSettings[name] = val\n\n                        localStorage.setItem(cacheKey + name, val)\n                    });\n\n                    if(localStorage.getItem(cacheKey + name) !== null) {\n                        performanceSettings[name] = localStorage.getItem(cacheKey + name) === \"true\"\n                    }\n\n                    el.prop('checked', performanceSettings[name]);\n                })\n            }()\n    }).call(this);\n}).call(this);","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""}