(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[80846],{167175:(e,t,i)=>{"use strict";i.d(t,{isAndroid:()=>d,isAnyMobile:()=>v,isBlackBerry:()=>p,isChrome:()=>o,isEdge:()=>c,isFF:()=>a,isIOS:()=>m,isIPad:()=>y,isLinux:()=>u,isMac:()=>h,isOperaMini:()=>g,isSafari:()=>l,isWindows:()=>f,mobiletouch:()=>_,touch:()=>s});const n="undefined"!=typeof window&&"undefined"!=typeof navigator,r=n&&"ontouchstart"in window,_=n&&r&&"onorientationchange"in window,s=n&&(r||!!navigator.maxTouchPoints),o=n&&window.chrome&&window.chrome.runtime,a=n&&window.navigator.userAgent.toLowerCase().indexOf("firefox")>-1,c=n&&/\sEdge\/\d\d\b/.test(navigator.userAgent),l=n&&Boolean(navigator.vendor)&&navigator.vendor.indexOf("Apple")>-1&&-1===navigator.userAgent.indexOf("CriOS")&&-1===navigator.userAgent.indexOf("FxiOS"),h=n&&/mac/i.test(navigator.platform),f=n&&/Win32|Win64/i.test(navigator.platform),u=n&&/Linux/i.test(navigator.platform),d=n&&/Android/i.test(navigator.userAgent),p=n&&/BlackBerry/i.test(navigator.userAgent),m=n&&/iPhone|iPad|iPod/.test(navigator.platform),g=n&&/Opera Mini/i.test(navigator.userAgent),y=n&&("MacIntel"===navigator.platform&&navigator.maxTouchPoints>1||/iPad/.test(navigator.platform)),v=d||p||m||g},173777:(e,t,i)=>{"use strict";i.d(t,{SEPARATOR_PREFIX:()=>n});const n="###"},23580:(e,t,i)=>{"use strict";function n(e,t){return e&&e.utm_campaign&&(e.utm_campaign+=`-${t}`),e}async function r(e,t,n,r){if("lentaru"===e){const{getLentaCopyrightData:e}=await Promise.all([i.e(76769),i.e(1523)]).then(i.bind(i,466672));return e()}if("cmoneycomtw"===e){const{getCmoneycomtwCopyrightData:e}=await Promise.all([i.e(5311),i.e(58314),i.e(42091)]).then(i.bind(i,20922));return e(t,n)}if("new"===r){const{getTradingViewCopyrightData:e}=await Promise.all([i.e(88429),i.e(36228)]).then(i.bind(i,703094));return e(t,n)}if("with_border"===r){const{getTradingViewCopyrightData:e}=await Promise.all([i.e(46833),i.e(37753)]).then(i.bind(i,513316));return e(t,n)}if("large_trade"===r){const{getTradingViewCopyrightData:e}=await Promise.all([i.e(20659),i.e(47259)]).then(i.bind(i,203515));return e(t,n)}{const{getTradingViewCopyrightData:e}=await Promise.all([i.e(5311),i.e(53259)]).then(i.bind(i,88136));return e(t,n)}}i.d(t,{addUtmCampaignSource:()=>n,getCustomerCopyrightData:()=>r})},650401:(e,t,i)=>{"use strict";i.d(t,{getWidgetSheriffActions:()=>c});var n=i(120780),r=i(201089),_=i(952598);const s=window.WIDGET_SHERIFF_HOST||"https://widget-sheriff.xstaging-widget.tv",o=(0,r.getLogger)("WidgetSheriff.Widget");let a=null;async function c(){return null===a&&(a=await async function(){const e=function(){if(document.location.ancestorOrigins&&document.location.ancestorOrigins.length)return document.location.ancestorOrigins[document.location.ancestorOrigins.length-1];try{return new URL(document.referrer).origin}catch(e){return document.location.origin||null}}();if(null===e)return o.logWarn("ancestorOrigin is undefined"),Promise.resolve([]);const t=new URL("/sheriff/api/v1/rules/search",s);t.searchParams.append("origin",e);return(await(0, n.fetch)(t.toJSON()).then((e=>{if(!e.ok)throw new Error("Guard request error occured");return 204===e.status?Promise.resolve({actions:[]}):e.json()})).catch((e=>(o.logWarn(e.message),Promise.resolve({actions:[]}))))).actions.filter((e=>_.widgetSheriffActions.has(e)))}()),Promise.resolve(a)}},461909:(e,t,i)=>{"use strict";function n(e){if(void 0===e)return null;const t=e.match(/(delayed_streaming)_([\d]{1,4})/);return null===t?null:{mode:t[1],interval:parseInt(t[2])}}function r(e){const t=n(e.update_mode);return null===t||(e.update_mode=t.mode,e.update_mode_seconds=t.interval),e}i.r(t),i.d(t,{normalizeUpdateMode:()=>r,parseUpdateMode:()=>n})},49437:(e,t,i)=>{"use strict";const{getLogger:n}=i(201089),r=n("TVLocalStorage");var _=function(){try{this.isAvailable=!0,this.localStorage=window.localStorage,this.localStorage.setItem("tvlocalstorage.available","true")}catch(e){delete this.isAvailable,delete this.localStorage}this._updateLength();try{this._report()}catch(e){}};_.prototype._report=function(){if(this.isAvailable){const e=10,t=[];for(let e=0;et.length-e.length));const i=t.slice(0,e);t.sort(((e,t)=>t.key.length-e.key.length));const n=t.slice(0,e);r.logNormal(`Total amount of keys in Local Storage: ${this.length}`),r.logNormal(`Top ${e} keys with longest values: ${JSON.stringify(i)}`),r.logNormal(`Top ${e} longest key names: ${JSON.stringify(n)}`);try{navigator.storage.estimate().then((e=>{r.logNormal(`Storage estimate: ${JSON.stringify(e)}`)}))}catch(e){}}},_.prototype.length=0,_.prototype.isAvailable=!1,_.prototype.localStorage={"tvlocalstorage.available":"false"},_.prototype._updateLength=function(){if(this.isAvailable)this.length=this.localStorage.length;else{var e,t=0;for(e in this.localStorage)this.localStorage.hasOwnProperty(e)&&t++;this.length=t}},_.prototype.key=function(e){return this.isAvailable?this.localStorage.key(e):Object.keys(this.localStorage)[e]},_.prototype.getItem=function(e){return this.isAvailable?this.localStorage.getItem(e):void 0===this.localStorage[e]?null:this.localStorage[e]},_.prototype.setItem=function(e,t){this.isAvailable?this.localStorage.setItem(e,t):this.localStorage[e]=t,this._updateLength()},_.prototype.removeItem=function(e){this.isAvailable?this.localStorage.removeItem(e):delete this.localStorage[e],this._updateLength()},_.prototype.clear=function(){this.isAvailable?this.localStorage.clear():this.localStorage={},this._updateLength()};var s=function(e){this.storage=e};s.prototype.getItem=function(e){return Promise.resolve(this.storage.getItem(e))},s.prototype.setItem=function(e,t){return Promise.resolve(this.storage.setItem(e,t))},window.TVLocalStorage=new _,window.TVLocalStorageAsync=new s(window.TVLocalStorage),e.exports={TVLocalStorage:window.TVLocalStorage,TVLocalStorageAsync:window.TVLocalStorageAsync}},314802:(e,t,i)=>{"use strict";i.d(t,{isOnMobileAppPage:()=>r});var n=i(16188);function r(e,t=!1){const{searchParams:i}=new URL(String(location)) ;let r="true"===i.get("mobileapp_new"),_="true"===i.get("mobileapp");if(!t){const e=n.get("tv_app")||"";r||(r=["android","android_nps"].includes(e)),_||(_="ios"===e)}return!("new"!==e&&"any"!==e||!r)||!("new"===e||!_)}},439563:(e,t,i)=>{"use strict";async function n(){const e=(await Promise.all([i.e(70056),i.e(76748),i.e(36683)]).then(i.bind(i,469449))).getTrackerInstance();return e||null}i.d(t,{getEmbedWidgetTracker:()=>n})},519073:(e,t,i)=>{"use strict";function n(e){return void 0!==e&&e.includes("crypto")}i.d(t,{hasCryptoTypespec:()=>n})},175203:(e,t,i)=>{"use strict";i.d(t,{telemetry:()=>l});var n=i(707957),r=i(120780),_=i(638456),s=i(314802);i(659863);const o=(0,i(201089).getLogger)("Common.Telemetry"),a={default:15e3,site:3e5},c=["before_websocket_connection_time_frame","websocket_connection_time_frame","first_series_full_time_frame","page_full_load_time_frame","page_load_time_frame"];const l=new class{constructor(){this.reportSent=new n.Delegate,this.timeCounters={series:{marks:[]},study:{},pine:{}},this._timeoutIds={},this._commonAdditionalData={cluster:null,userId:"0"},this._reportStash={}}setSessionInfo(e){const t=this._parseCluster(e);null!==t&&(this._commonAdditionalData.cluster=t)}sendReport(e,t,i){var n;if(!this._isAbleToSendReport(t))return;const r=this._getSubserviceType(e),_=this._getHost(e,r);if(null!==_){if(i=void 0===i?{count:1}:i,this._addReportToStash(i,t,_),!this._timeoutIds[e]){const t=null!==(n=a[e])&&void 0!==n?n:a.default;this._timeoutIds[e]=setTimeout(this._sendTelemetryToService.bind(this,e,_),t)}}else o.logError(`Unable to get host for counter: ${t}, metric type: ${e}, serivce type: ${r}`)}sendChartReport(e,t,i=!0){this._sendServiceSpecifiedReport("charts",e,t,i)}sendLineToolsStorageReport(e,t,i=!0){this._sendServiceSpecifiedReport("line_tools_storage",e,t,i)}_sendServiceSpecifiedReport(e,t,i,n=!0){this._updateUserInfo(),i=void 0===i?{count:1}:i,n&&(i=this._appendCommonAdditionalInfo(i,["cluster","userId"])),this.sendReport(e,t,i)}_updateUserInfo(){const e="user"in window&&"id"in window.user?window.user.id:"0";this._commonAdditionalData.userId=String(e)}_isAbleToSendReport(e){const t=window.TELEMETRY_HOSTS,i=c.includes(e),n=Boolean(window.TradingView.onChartPage||(0,_.onWidget)());return t&&(!i||n)}_sendTelemetryToService(e,t){if(this._reportStash.hasOwnProperty(t)){const e=this._cropParams(this._reportStash[t]),i=this._renameAllParams(e),n={event:"report_stash",params:this._cleanAllParams(i)};o.logDebug(`Report to host: ${t}; stash: ${JSON.stringify(this._reportStash[t])}`),this.reportSent.fire(this._reportStash[t]),delete this._reportStash[t],(0,r.fetch)(`${t}/report`,{method:"POST",body:JSON.stringify(n)})}this._timeoutIds[e]=null}_getHost(e,t){const i=window.TELEMETRY_HOSTS,n=i[e]&&i[e][t];return Boolean(n)?n:null}_getSubserviceType(e){if(!["charts","site"].includes(e))return"all";let t="free";const i=window.user.is_pro;return"charts"===e&&(0,s.isOnMobileAppPage)("old")?t=i?"ios_pro":"ios_free":"charts"===e&&(0,s.isOnMobileAppPage)("new")?t=i?"android_pro":"android_free":(0, _.onWidget)()?t="widget":i&&(t="pro"),t}_parseCluster(e){let t;try{t=JSON.parse(e).session_id}catch(e){return o.logError("Could not parse cluster id (session id)"),null}const i=/(.*@)(.*)/gi.exec(t);return null!==i&&i.length>=3?i[2]:null}_appendCommonAdditionalInfo(e,t){return t.forEach((t=>{t in this._commonAdditionalData&&(e.additional=e.additional||{},e.additional[t]=this._commonAdditionalData[t])})),e}_cropParams(e){var t;for(const i in e)e.hasOwnProperty(i)&&e[i].length>1e3&&(e.too_much_metrics_frame=null!==(t=e.too_much_metrics_frame)&&void 0!==t?t:[],e.too_much_metrics_frame.push({value:e[i].length,additional:{event:i}}),delete e[i]);return e}_renameAllParams(e){const t={};for(const i in e)e.hasOwnProperty(i)&&(t[i]=[],e[i].forEach((e=>{t[i].push(this._renameEntryParams(e))})));return t}_renameEntryParams(e){const t={count:"c",value:"v",text:"t",additional:"a"};return Object.keys(e).reduce(((i,n)=>(i[t[n]]=e[n],i)),{})}_cleanAllParams(e){const t={};for(const i in e)if(e.hasOwnProperty(i)){t[i]=[];const n={c:0};e[i].forEach((e=>{const r=this._cleanEntryParams(e),_=Object.keys(r).length;1===_&&void 0!==r.c?n.c+=r.c:_>0&&t[i].push(r)})),n.c>0&&t[i].push(n),0===t[i].length&&delete t[i]}return t}_cleanEntryParams(e){const t=Object.keys(e).reduce(((t,i)=>"c"!==i&&"t"!==i||e[i]?(t[i]=e[i],t):t),{});return"c"in t||"v"in t||"t"in t?t:{}}_addReportToStash(e,t,i){i in this._reportStash||(this._reportStash[i]={}),t in this._reportStash[i]||(this._reportStash[i][t]=[]),Object.keys(e).length>0&&this._reportStash[i][t].push(e)}}},779923:(e,t,i)=>{"use strict";async function n(e,t){const n=await Promise.all([i.e(67681),i.e(1893),i.e(42381),i.e(38697),i.e(86282),i.e(47821),i.e(29218),i.e(64820),i.e(81271),i.e(90624),i.e(95348),i.e(26317),i.e(56448),i.e(62526),i.e(38890)]).then(i.bind(i,872462));return n.showSimpleDialog(e,n.warningModule,t)}i.d(t,{showWarning:()=>n})},995683:(e,t,i)=>{"use strict";function n(e,t,i={}){return Object.assign({},e,function(e,t,i={}){const n=Object.assign({},t);for(const r of Object.keys(t)){const _=i[r]||r;_ in e&&(n[r]=[e[_],t[r]].join(" "))}return n}(e,t,i))}i.d(t,{mergeThemes:()=>n})},315347:(e,t,i)=>{"use strict";var n,r;i.d(t,{TIMEFRAMETYPE:()=>r}),function(e){e.extractErrorReason=function(e){return e.params[1]}}(n||(n={})),function(e){e.PeriodBack="period-back",e.TimeRange="time-range"}(r||(r={}))},6613:(e,t,i)=>{"use strict";i.r(t),i.d(t,{QUOTE_FIELDS:()=>_,QUOTE_FIELDS_CACHE:()=>s,QuoteCache:()=>r});var n=i(650151);class r{constructor(e){this._cache=new Map,this._fields=[...e.fields]}update(e,t,i){const r=(0,n.ensureDefined)(e.symbolname);if(this._cache.has(r)||this._cache.set(r,{symbolname:r,status:e.status,values:{}}),"error"===e.status)return;const _=(0,n.ensureDefined)(this._cache.get(r));_.status=e.status;for(const n of this._fields)t.has(n)&&(i||void 0!==e.values[n])&&(_.values[n]=e.values[n])}get(e){var t;return null!==(t=this._cache.get(e))&&void 0!==t?t:null}fields(){return this._fields}} const _=new Set(["pro_name","base_name","logoid","currency-logoid","base-currency-logoid","source-logoid","short_name","web_site_url","timezone","current_session","last_price","lp_time","prev_close_price","open_price","high_price","low_price","price_52_week_high","price_52_week_low","ask","ask_size","bid","bid_size","rch","rchp","rtc","data_frequency","reference-last-period-start","business_description","web_site_url","figi","number_of_employees","float_shares_outstanding","earnings_release_next_calendar_date","root","description","exchange","listed_exchange","type","country_code","provider_id","sector","typespecs","visible-plots-set","industry","currency_id","last_price","fractional","minmov","minmove2","pricescale","variable_tick_size","change","change_percent","volume","average_volume","market_cap_basic","market_cap_calc","total_revenue","earnings_per_share_basic_ttm","price_earnings_ttm","beta_1_year","dps_common_stock_prim_issue_fy","dividends_yield","earnings_release_next_date","earnings_per_share_forecast_next_fq","earnings_publication_type_next_fq","earnings_release_date","earnings_per_share_fq","forecast_raw","last_release_date","next_release_date","reference_last_period","fundamental_currency_code","number_of_employees","web_site_url","business_description","founded","ceo","float_shares_outstanding","total_shares_outstanding","dividend_payout_ratio_ttm","dividends_yield_current","dividend_ex_date_upcoming","dividend_amount_upcoming","dividend_amount_recent","dividend_ex_date_recent","total_revenue_fq_h","total_revenue_fy_h","net_income_fy_h","net_income_fq_h","total_assets_fy_h","total_assets_fq_h","total_liabilities_fy_h","total_liabilities_fq_h","cash_f_operating_activities_fy_h","cash_f_operating_activities_fq_h","cash_f_investing_activities_fy_h","cash_f_investing_activities_fq_h","cash_f_financing_activities_fy_h","cash_f_financing_activities_fq_h","fiscal_period_fy_h","fiscal_period_fq_h","fiscal_period_fh_h","earnings_release_date_fq_h","earnings_release_next_date_fq","earnings_per_share_forecast_next_fq","earnings_per_share_forecast_fq_h","earnings_per_share_fq_h","earnings_fiscal_period_fq_h","next_earnings_fiscal_period_fq","earnings_release_next_time","is_next_earnings_release_date_estimated","symbol-primaryname","currency_code","rates_mc","rates_fy","rates_ttm","measure","value_unit_id","value-unit-id","update_mode","language","local_description","short_description","source","source2","format","recommendation_mark","last_report_frequency","price_target_estimates_num","price_target_average","update_mode_seconds","recommendation_total","recommendation_buy","recommendation_over","recommendation_hold","recommendation_under","recommendation_sell","recommendation_total","price_target_high","price_target_low","rates_pt","rates_pt","total_revenue_fy_h","total_revenue_fq_h","total_revenue_fh_h","net_income_fy_h","net_income_fq_h","net_income_fh_h","total_assets_fy_h","total_assets_fq_h","total_assets_fh_h","total_liabilities_fy_h","total_liabilities_fq_h","total_liabilities_fh_h","cash_f_operating_activities_fy_h","cash_f_operating_activities_fq_h","cash_f_operating_activities_fh_h","cash_f_investing_activities_fy_h","cash_f_investing_activities_fq_h","cash_f_investing_activities_fh_h","cash_f_financing_activities_fy_h","cash_f_financing_activities_fq_h","cash_f_financing_activities_fh_h","fiscal_period_fy","fiscal_period_fq","fiscal_period_fh","earnings_release_date_fq_h","earnings_release_date_fy_h","earnings_release_date_fh_h","earnings_release_next_date_fq","earnings_release_next_date_fy","earnings_release_next_date_fh","earnings_release_next_time","is_next_earnings_release_date_estimated","earnings_per_share_forecast_next_fq","earnings_per_share_forecast_next_fy","earnings_per_share_forecast_next_fh","earnings_per_share_forecast_fq_h","earnings_per_share_forecast_fy_h","earnings_per_share_forecast_fh_h","earnings_per_share_fq_h","earnings_per_share_fy_h","earnings_per_share_fh_h","earnings_fiscal_period_fq_h","earnings_fiscal_period_fy_h","earnings_fiscal_period_fh_h","next_earnings_fiscal_period_fq","next_earnings_fiscal_period_fy","next_earnings_fiscal_period_fh","revenue_fq_h","revenue_fy_h","revenue_fh_h","revenue_forecast_fq_h","revenue_forecast_fy_h","revenue_forecast_fh_h","revenue_forecast_next_fq","revenue_forecast_next_fy","revenue_forecast_next_fh","revenue_seg_by_business_h","revenue_seg_by_region_h","dividend_payout_ratio_ttm","dividends_yield_current","dividend_ex_date_upcoming","dividend_amount_upcoming","dividend_amount_recent","dividend_ex_date_recent","dividend_amount_h","total_revenue_fy","total_revenue_fq","total_revenue_fh","gross_profit_fy","gross_profit_fq","gross_profit_fh","ebitda_fy","ebit_fy","net_income_fy","net_income_fq","net_income_fh","total_debt_fy_h","total_debt_fq_h","total_debt_fh_h","free_cash_flow_fy_h","free_cash_flow_fq_h","free_cash_flow_fh_h","cash_n_equivalents_fy_h","cash_n_equivalents_fq_h","cash_n_equivalents_fh_h","total_current_assets_fy","total_current_assets_fq","total_current_assets_fh","total_current_liabilities_fy","total_current_liabilities_fq","total_current_liabilities_fh","total_non_current_assets_fy","total_non_current_assets_fq","total_non_current_assets_fh","total_non_current_liabilities_fy","total_non_current_liabilities_fq","total_non_current_liabilities_fh","loans_net_fy","loans_net_fy_h","loans_net_fq_h","loans_net_fh_h","total_deposits_fy","total_deposits_fy_h","total_deposits_fq_h","total_deposits_fh_h","loan_loss_allowances_fy","loan_loss_allowances_fy_h","loan_loss_allowances_fq_h","loan_loss_allowances_fh_h","reserve_to_total_capital_fy_h","reserve_to_total_capital_fq_h","reserve_to_total_capital_fh_h","unearned_premium_to_total_capital_fy_h","unearned_premium_to_total_capital_fq_h","unearned_premium_to_total_capital_fh_h","insurance_reserves_fy_h","insurance_reserves_fq_h","insurance_reserves_fh_h","policy_claims_fy_h","policy_claims_fq_h","policy_claims_fh_h","premiums_earned_fy_h","premiums_earned_fq_h","premiums_earned_fh_h","price_earnings_fq_h","price_earnings_fy_h","price_earnings_fh_h","price_sales_fq_h","price_sales_fy_h","price_sales_fh_h","diluted_net_income_ttm","total_revenue_ttm","price_earnings_current","price_sales_current","isin-displayed","interest_income_fy_h","interest_income_fq_h","interest_income_fh_h","non_interest_income_fy_h","non_interest_income_fq_h","non_interest_income_fh_h","website","doc","explorer","sources","contracts","crypto_common_categories","crypto_asset","community","dividends_availability","earnings_availability","financials_availability","etf_asset_type_exposure","etf_region_exposure","top_holdings","unit-id","options-info","interest_income_fy","interest_income_fq","interest_income_fh","non_interest_income_fy","non_interest_income_fq","non_interest_income_fh","interest_expense_fy","interest_expense_fq","interest_expense_fh","loan_loss_provision_fy","loan_loss_provision_fq","loan_loss_provision_fh","non_interest_expense_fy","non_interest_expense_fq","non_interest_expense_fh","non_oper_income_fy","non_oper_income_fq","non_oper_income_fh","unusual_expense_inc_fy","unusual_expense_inc_fq","unusual_expense_inc_fh","pretax_income_fy","pretax_income_fq","pretax_income_fh","income_tax_fy","income_tax_fq","income_tax_fh","after_tax_other_income_fy","after_tax_other_income_fq","after_tax_other_income_fh","total_non_oper_income_fy","total_non_oper_income_fq","total_non_oper_income_fh","oper_income_fy","oper_income_fq","oper_income_fh","operating_expenses_fy","operating_expenses_fq","operating_expenses_fh","cost_of_goods_fy","cost_of_goods_fq","cost_of_goods_fh","equity_in_earnings_fy","equity_in_earnings_fq","equity_in_earnings_fh","minority_interest_exp_fy","minority_interest_exp_fq","minority_interest_exp_fh","discontinued_operations_fy","discontinued_operations_fq","discontinued_operations_fh","front_contract","pointvalue","unit_id","expiration","aum","asset_class","focus","expense_ratio","launch_date","issuer","brand","homepage","index_tracked","actively_managed","fund_view_mode","common_equity_tier1_ratio_fy_h","common_equity_tier1_ratio_fq_h","common_equity_tier1_ratio_fh_h","tier1_capital_ratio_fy_h","tier1_capital_ratio_fq_h","tier1_capital_ratio_fh_h","total_capital_ratio_fy_h","total_capital_ratio_fq_h","total_capital_ratio_fh_h","preferred_stock_carrying_value_fh","preferred_stock_carrying_value_fq","total_debt_fq","minority_interest_fh","minority_interest_fq","cash_n_short_term_invest_fq","cash_n_due_f_banks_fh","cash_n_due_f_banks_fq","enterprise_value_current","etf_holdings_count","contract-description"]),s=new r({ fields:_})},876332:(e,t,i)=>{"use strict";i.d(t,{getQuoteSessionInstance:()=>s});var n=i(11228),r=i.n(n);const _={};function s(e="full"){return _[e]||function(e="full",t){_[e]=t}(e,new(r())(e)),_[e]}},707957:(e,t,i)=>{"use strict";i.d(t,{Delegate:()=>_});const n=(0,i(194582).getLogger)("Common.Delegate");function r(e){return!e.singleShot}class _{constructor(){this.fire=this._fireImpl.bind(this),this._listeners=[]}subscribe(e,t,i){this._listeners.push({object:e,member:t,singleShot:!!i,skip:!1})}unsubscribe(e,t){for(let i=0;i=0;--t){const i=this._listeners[t];i.object===e&&(i.skip=!0,this._listeners.splice(t,1))}}destroy(){this._listeners=[]}_fireImpl(...e){const t=this._listeners;this._listeners=this._listeners.filter(r);const i=t.length;for(let r=0;r{"use strict";function n(e,t,i){return Math.min(Math.max(e,t),i)}function r(e){return e>0?Math.floor(e):Math.ceil(e)}i.d(t,{clamp:()=>n,toInt:()=>r})},217504:(e,t,i)=>{"use strict";i.d(t,{getMinTickData:()=>a,makeVariableMinTickData:()=>l});var n=i(960521),r=i(150335),_=i(389137),s=i(667353);function o(e){return e?(0,n.Big)(e.minMove).div(e.priceScale).toNumber():NaN}function a(e){const{minTick:t,price:i,variableMinTickData:n,shouldCheckForEquality:_}=e,s=(0,r.isNumber)(t)?c(t):t;return void 0===n?s:function(e,t,i=!1){for(let n=0;n(0,_.isEven)(t)?function(e){const t=Number(e);if(Number.isFinite(t))return c(t);{const t=e.split("/");if(t.length<2||t.length>3)throw new Error(`Unexpected mintick: ${e}`);const i=Number(t[1]),n=Number(t[0]);if(!Number.isFinite(i)||!Number.isFinite(n))throw new Error(`Unexpected mintick: ${e}`);const r=3===t.length?Number(t[2]):void 0;if(void 0!==r&&!Number.isFinite(r))throw new Error(`Unexpected mintick: ${e}`);const _={priceScale:i,minMove:n};return void 0!==r&&(_.minMove2=r),_}}(e):function(e){const t=Number(e);if(Number.isNaN(t))throw new Error(`Unexpected price limit: ${e}`);return t}(e)));if((0,_.isEven)(e.length))throw new Error("Theme must not be event number of elements");const r=[];for(let t=0;t{"use strict";i.r(t),i.d(t,{types:()=>n});const n={ECONOMIC:"economic",QUANDL:"quandl"}},9757:(e,t,i)=>{i(778785).setClasses();var n=i(49336).whenDocumentReady,r=i(663261).handleTVLinksClick;n((()=>{r()}))},397150:(e,t,i)=>{"use strict";i.d(t,{showTooManyStudiesNotice:()=>_});var n=i(444372),r=i(779923);function _(e){(0,r.showWarning)({title:n.t(null,void 0,i(533603)),text:n.t(null,{replace:{number:`${e}`}},i(470213))})}},337779:(e,t,i)=>{"use strict";function n(e){return e.reduce((function(e,t,i){return~e.indexOf(t)||e.push(t),e}),[])}i.r(t),i.d(t,{uniq:()=>n})},49336:(e,t,i)=>{"use strict";function n(e,t=!1){"loading"!==document.readyState?t?setTimeout((()=>e()),1):e():document.addEventListener("DOMContentLoaded",(()=>e()))}i.d(t,{whenDocumentReady:()=>n});new Promise((e=>{n(e)}))}}]);