[ad_1] <br><div id=""><p><span class="dfx-text-bold">KEY POINTS:</span></p><a target="_blank" href="https://www.dailyfx.com/free-trading-guides#forecastschoices=BITCOIN_FORECAST" class="dfx-inHouseGuideBannerComponent dfx-inHouseGuideBannerComponent--tradingForecasts dfx-inHouseGuideBannerComponent--3colArticle my-4 " role="button" aria-label="Get My Guide" tabindex="0" data-guide-key="BITCOIN_FORECAST" data-image-url="https://a.c-dn.net/b/4mLjfV/Forecast-Bitcoin.png" data-guide-title="Bitcoin Forecast" data-guide-description="See expert analysis for Bitcoin, covering political and economic influences and technical trends" data-guide-type="tradingForecasts" data-disclaimer="" data-banner="true" data-title="Bitcoin Forecast" data-source-type="DFX_EN_Guides" rel="noopener">
<div class="dfx-inHouseGuideBannerComponent__textAndButtonWrapper me-md-1 me-lg-3"> <div class="dfx-inHouseGuideBannerComponent__textWrapper"> <p> Recommended by Zain Vawda </p> <p> Get Your Free Bitcoin Forecast </p> </div>
</div> </a> <p><span class="dfx-text-bold">Most Learn: </span><a target="_blank" href="https://www.dailyfx.com/analysis/bitcoin-technical-outlook-down-but-not-out-20221124.html" rel="noopener"><span class="dfx-text-bold">Bitcoin Technical Outlook: Down but Not Out</span></a></p><p><span class="dfx-text-bold">FALLOUT FROM FTX CONTINUES TO AFFECT CRYPTO MARKETS</span></p><p>The Crypto market as an entire continues to face important headwinds because the fallout from FTX continues to unfold. Crypto exchanges have been struggling to persuade clients their property are secure with a current information launch from CryptoQuant revealing reserves of <a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener">Bitcoin</a>, <a target="_blank" href="https://www.dailyfx.com/ether-eth" title="Ethereum" rel="noopener">Ethereum</a> and Stablecoins have fallen sharply for the reason that FTX scandal. Alternate platforms from Binance to Crypto.com have made an effort by offering full or partial disclosures of their property as customers proceed pulling funds.</p><a target="_blank" data-popup="true" href="https://a.c-dn.net/b/0xOkUR/image1.png" rel="noopener"><img src="https://a.c-dn.net/b/0xOkUR/image1.png" alt="A picture containing diagram Description automatically generated" data-image-original-width="626" data-image-original-height="420" width="626" height="420" class="dfx-lazyload" style="padding-bottom: calc(420 / 626 * 100%);"/></a><p>The most important influence of the unfold to date has been skilled by the Gemini Belief Co. who introduced a suspension on redemptions at its lending unit whereas Blockfi Inc. is on the verge of submitting for chapter. Genesis have warned traders of a possible chapter submitting whether it is unable to boost $1 billion {dollars} in contemporary capital to assist its lending unit.</p><a target="_blank" href="https://www.dailyfx.com/free-trading-guides#forecastschoices=BITCOIN_TRADING" class="dfx-inHouseGuideBannerComponent dfx-inHouseGuideBannerComponent--beginnerGuides dfx-inHouseGuideBannerComponent--3colArticle my-4 " role="button" aria-label="Get My Guide" tabindex="0" data-guide-key="Bitcoin Trading" data-image-url="https://a.c-dn.net/b/4uKUEy/500x707Beginner-BitcoinTrading.png" data-guide-title="Cryptocurrency Trading" data-guide-description="Trading Bitcoin, Ethereum and other cryptocurrencies can be an exciting ride. This guide explores key strategies." data-guide-type="beginnerGuides" data-disclaimer="FX PUBLICATIONS IS A MEMBER OF NFA AND IS SUBJECT TO NFA'S REGULATORY OVERSIGHT AND EXAMINATIONS. HOWEVER, YOU SHOULD BE AWARE THAT NFA DOES NOT HAVE REGULATORY OVERSIGHT AUTHORITY OVER UNDERLYING OR SPOT VIRTUAL CURRENCY PRODUCTS OR TRANSACTIONS OR VIRTUAL CURRENCY EXCHANGES, CUSTODIANS OR MARKETS." data-banner="true" data-title="Cryptocurrency Trading" data-source-type="DFX_EN_Guides" rel="noopener">
<div class="dfx-inHouseGuideBannerComponent__textAndButtonWrapper me-md-1 me-lg-3"> <div class="dfx-inHouseGuideBannerComponent__textWrapper"> <p> Recommended by Zain Vawda </p> <p> Get Your Free Introduction To Cryptocurrency Trading </p> </div>
</div> </a> <p>These developments have saved Crypto markets on the again foot struggling to submit any important beneficial properties. In per week that noticed threat sentiment enhance for shares and the <a target="_blank" href="https://www.dailyfx.com/us-dollar-index" rel="noopener">US Dollar</a> retreat following dovish <a target="_blank" href="https://www.dailyfx.com/education/forex-fundamental-analysis/federal-reserve-bank.html" rel="noopener">FOMC</a> minutes, each <a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener">Bitcoin</a> and <a target="_blank" href="https://www.dailyfx.com/ether-eth" rel="noopener">Ethereum</a> have been unable to capitalize as buying and selling volumes proceed to say no as properly. Nevertheless, each <a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener">BTC/USD</a> and <a target="_blank" href="https://www.dailyfx.com/ether-eth" rel="noopener">ETH/USD</a> stay on track for marginal beneficial properties this week heading into the weekend.</p><p><a target="_blank" href="https://www.dailyfx.com/ether-eth" rel="noopener"><span class="dfx-text-bold">ETH/USD</span></a> <span class="dfx-text-bold">TECHNICAL OUTLOOK</span></p><p><a target="_blank" href="https://www.dailyfx.com/ether-eth" rel="noopener"><span class="dfx-text-bold">ETH/USD</span></a> <span class="dfx-text-bold">Weekly Chart</span></p><a target="_blank" data-popup="true" href="https://a.c-dn.net/b/2mBTmF/image2.png" rel="noopener"><img src="https://a.c-dn.net/b/2mBTmF/image2.png" alt="Chart, line chart, histogram Description automatically generated" data-image-original-width="1378" data-image-original-height="598" width="1378" height="598" class="dfx-lazyload" style="padding-bottom: calc(598 / 1378 * 100%);"/></a><p><span class="dfx-text-bold dfx-text-italic">Supply: TradingView, ready by Zain Vawda</span></p><p>From a technical perspective, <a target="_blank" href="https://www.dailyfx.com/ether-eth" rel="noopener">Ethereum (ETH/USD)</a> on the weekly timeframe is buying and selling inside a <a target="_blank" href="https://www.dailyfx.com/education/technical-analysis-chart-patterns/pennant-pattern.html" rel="noopener">bearish pennant pattern</a> hinting at a draw back breakout. There stays the chance for a push to the upside to retest the descending trendline as soon as extra earlier than a draw back breakout happens. Nevertheless, the <a target="_blank" href="https://www.dailyfx.com/gold-price/news-and-analysis" rel="noopener">200-day MA</a> lies simply above present value across the $1338 space which might halt any tried push to the upside. A breakout of the <a target="_blank" href="https://www.dailyfx.com/education/technical-analysis-chart-patterns/pennant-pattern.html" rel="noopener">pennant pattern</a> to the draw back might see a retest of the YTD low print from June 13 that rests across the $864 space.</p><p><a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener"><span class="dfx-text-bold">BTC/USD</span></a><span class="dfx-text-bold"> TECHNICAL OUTLOOK</span></p><p><a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener"><span class="dfx-text-bold">BTC/USD</span></a><span class="dfx-text-bold"> Weekly Chart</span></p><a target="_blank" data-popup="true" href="https://a.c-dn.net/b/2gvfxn/image3.png" rel="noopener"><img src="https://a.c-dn.net/b/2gvfxn/image3.png" alt="Chart Description automatically generated" data-image-original-width="1378" data-image-original-height="594" width="1378" height="594" class="dfx-lazyload" style="padding-bottom: calc(594 / 1378 * 100%);"/></a><p><span class="dfx-text-bold dfx-text-italic">Supply: TradingView, ready by Zain Vawda</span></p><p>From a technical perspective, <a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener">BTC/USD</a> has retested the long-trendline from November 2021 and trades simply above it. The pair has already seen one false breakout of this trendline within the final week of October earlier than declining again under the trendline. This week has seen the pair submit a brand new YTD low across the $15479 space bouncing of the underside of a falling wedge sample. The <a target="_blank" href="https://www.dailyfx.com/education/technical-analysis-chart-patterns/falling-wedge.html" rel="noopener">falling wedge pattern</a> coupled with a break of the long-term (2021) descending trendline hints at a possible bullish transfer heading into the brand new week. A transfer increased faces important hurdles with the $18000 degree (September and October lows) set to supply resistance whereas a break increased might want to clear the <a target="_blank" href="https://www.dailyfx.com/education/moving-averages" rel="noopener">20-day MA</a> earlier than a break of the falling wedge sample comes into play. The break of the falling wedge sample ought to it happen might take a number of weeks to play out and possibly one thing to control.</p><a target="_blank" href="https://www.dailyfx.com/education/technical-analysis-chart-patterns" class="dfx-inHouseEducationSubmoduleBanner position-relative d-flex align-items-md-center px-4 pt-5 pb-3 pb-md-5 px-md-5 px-lg-3 px-xl-5 my-4 text-decoration-none" data-banner="true" data-title="Education submodule banner" style="background: linear-gradient(90.75deg, #2E3948 -10.35%, rgba(59, 164, 59, 0.3) 99.36%), url('https://a.c-dn.net/b/4lARNI/Technical_Analysis_Chart_Patterns.jpg') center/cover;" rel="noopener">
<div class="dfx-inHouseEducationSubmoduleBanner__mainSection d-flex flex-column flex-md-row align-items-md-center flex-grow-1 ms-4 ms-md-5 ms-lg-3 ms-xl-5 me-xl-2 text-white align-items-start"> <div class="dfx-inHouseEducationSubmoduleBanner__textSection me-md-2"> <p class="dfx-font-size-2 dfx-text-spaced text-uppercase mt-0 mb-1 font-weight-bold">Introduction to Technical Analysis</p> <p class="dfx-font-size-4 font-weight-bold mb-1 mt-0">Technical Analysis Chart Patterns</p> <p class="dfx-font-size-2 mb-4 mb-md-0 mt-0"> Recommended by Zain Vawda </p> </div>
</div>
</a> <p>Alternatively, a break under the <a target="_blank" href="https://www.dailyfx.com/education/technical-analysis-chart-patterns/falling-wedge.html" rel="noopener">falling wedge pattern</a> would first have to clear the psychological $15000 degree which might open up a check of the October 2020 resistance turned assist space round $12300.</p><p><a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener"><span class="dfx-text-bold">BTC/USD</span></a> <span class="dfx-text-bold">Every day Chart</span></p><a target="_blank" data-popup="true" href="https://a.c-dn.net/b/2L7WeS/image4.png" rel="noopener"><img src="https://a.c-dn.net/b/2L7WeS/image4.png" alt="Chart Description automatically generated" data-image-original-width="1381" data-image-original-height="596" width="1381" height="596" class="dfx-lazyload" style="padding-bottom: calc(596 / 1381 * 100%);"/></a><p><span class="dfx-text-bold dfx-text-italic">Supply: TradingView, ready by Zain Vawda</span></p><p>Following a bullish engulfing candle shut on Tuesday, <a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener">BTC/USD</a> adopted it up with one other bullish day earlier than closing as a <a target="_blank" href="https://www.dailyfx.com/education/candlestick-patterns/doji-candle.html" rel="noopener">doji</a> candlestick on Thursday. The <a target="_blank" href="https://www.dailyfx.com/education/candlestick-patterns/doji-candle.html" rel="noopener">doji</a> candlestick shut as soon as once more highlights the draw back pressures on crypto markets at current as this was a day after the dovish <a target="_blank" href="https://www.dailyfx.com/fomc" title="FOMC" rel="noopener">FOMC</a> minutes which noticed the <a target="_blank" href="https://www.dailyfx.com/us-dollar-index" title="US dollar" rel="noopener">US dollar</a> index decline.</p><p>A day by day candle shut above the $16800 degree would be the first signal of a bullish shift in <a target="_blank" href="https://www.dailyfx.com/education/technical-analysis-tools/price-action-indicator.html?ref-author=Venketas" rel="noopener">price action</a> as it will be a better excessive for the pair and might even see <a target="_blank" href="https://www.dailyfx.com/bitcoin" rel="noopener">BTC/USD</a> make a run for the $18000 resistance space. The <a target="_blank" href="https://www.dailyfx.com/education/moving-averages" rel="noopener">20-day MA</a> gives short-term resistance resting across the $17000 space at current which might see the rally stall giving the pair a chance for a brand new decrease excessive to kind earlier than its subsequent leg increased.</p><p><span class="dfx-text-bold">--- Written by Zain Vawda for</span><span class="dfx-text-bold dfx-text-blue"> </span><a target="_blank" href="https://www.dailyfx.com/" rel="noopener"><span class="dfx-text-bold">DailyFX.com</span></a></p><p><span class="dfx-text-bold">Contact and comply with Zain on Twitter: </span><a target="_blank" href="https://twitter.com/zvawda" rel="noopener"><span class="dfx-text-bold">@zvawda</span></a></p></div><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script><script> !function(){function errMsg(errCode,msg)var baseUrl,baseEl,hasSymbol="undefined"!=typeof Symbol,hasSelf="undefined"!=typeof self,hasDocument="undefined"!=typeof document,envGlobal=hasSelf?self:global,backslashRegEx=(!hasDocument||(baseEl=document.querySelector("base[href]"))&&(baseUrl=baseEl.href),baseUrl||"undefined"==typeof location||-1!==(baseEl=(baseUrl=location.href.split("#")[0].split("?")[0]).lastIndexOf("/"))&&(baseUrl=baseUrl.slice(0,baseEl+1)),//g);function resolveIfNotPlainOrUrl(relUrl,parentUrl)function resolveUrl(relUrl,parentUrl)function resolveAndComposePackages(packages,outPackages,baseUrl,parentMap,parentUrl){for(var p in packages)}function getMatch(path,matchObj){if(matchObj[path])return path;var sepIndex=path.length;do{var segment=path.slice(0,sepIndex+1);if(segment in matchObj)return segment}while(-1!==(sepIndex=path.lastIndexOf("/",sepIndex-1)))}function applyPackages(id,packages){var pkgName=getMatch(id,packages);if(pkgName){packages=packages[pkgName];if(null!==packages)return id.length>pkgName.length&&"/"!==packages[packages.length-1]?void targetWarning("W2",pkgName,packages,"should have a trailing '/'"):packages+id.slice(pkgName.length)}}function targetWarning(code,match,target,msg){console.warn(errMsg(code,"Package target "+msg+", resolving target '"+target+"' for "+match))}function resolveImportMap(importMap,resolvedOrPlain,parentUrl){for(var scopes=importMap.scopes,scopeUrl=parentUrl&&getMatch(parentUrl,scopes);scopeUrl;){var packageResolution=applyPackages(resolvedOrPlain,scopes[scopeUrl]);if(packageResolution)return packageResolution;scopeUrl=getMatch(scopeUrl.slice(0,scopeUrl.lastIndexOf("/")),scopes)}return applyPackages(resolvedOrPlain,importMap.imports)||-1!==resolvedOrPlain.indexOf(":")&&resolvedOrPlain}var toStringTag=hasSymbol&&Symbol.toStringTag,REGISTRY=hasSymbol?Symbol():"@";function SystemJS(){this[REGISTRY]={}}var lastRegister,systemJSPrototype=SystemJS.prototype;function loadToId(load){return load.id}function triggerOnload(loader,load,err,isErrSource){if(loader.onload(err,load.id,load.d&&load.d.map(loadToId),!!isErrSource),err)throw err}function getOrCreateLoad(loader,id,firstParentUrl){var importerSetters,ns,instantiatePromise,linkPromise,load=loader[REGISTRY][id];return load||(importerSetters=[],ns=Object.create(null),toStringTag&&Object.defineProperty(ns,toStringTag,{value:"Module"}),linkPromise=(instantiatePromise=Promise.resolve().then(function(){return loader.instantiate(id,firstParentUrl)}).then(function(registration){var declared;if(registration)return declared=registration[1](function _export(name,value){var changed=!(load.h=!0);if("string"==typeof name)name in ns&&ns[name]===value||(ns[name]=value,changed=!0);else{for(var p in name)name&&name.__esModule&&(ns.__esModule=name.__esModule)}if(changed)for(var i=0;i<importerSetters.length;i++){var setter=importerSetters[i];setter&&setter(ns)}return value},2===registration[1].length?{import:function(importId){return loader.import(importId,id)},meta:loader.createContext(id)}:void 0),load.e=declared.execute||function(){},[registration[0],declared.setters||[]];throw Error(errMsg(2,"Module "+id+" did not instantiate"))},function(err){throw load.e=null,load.er=err,triggerOnload(loader,load,err,!0),err})).then(function(instantiation){return Promise.all(instantiation[0].map(function(dep,i){var setter=instantiation[1][i];return Promise.resolve(loader.resolve(dep,id)).then(function(depId){var depLoad=getOrCreateLoad(loader,depId,id);return Promise.resolve(depLoad.I).then(function()setter(depLoad.n)),depLoad)})})).then(function(depLoads){load.d=depLoads})}),load=loader[REGISTRY][id]={id:id,i:importerSetters,n:ns,I:instantiatePromise,L:linkPromise,h:!1,d:void 0,e:void 0,er:void 0,E:void 0,C:void 0,p:void 0})}systemJSPrototype.import=function(id,parentUrl){var loader=this;return Promise.resolve(loader.prepareImport()).then(function(){return loader.resolve(id,parentUrl)}).then(function(id){id=getOrCreateLoad(loader,id);return id.C||function topLevelLoad(loader,load){return load.C=function instantiateAll(loader,load,parent,loaded){if(!loaded[load.id])return loaded[load.id]=!0,Promise.resolve(load.L).then(function(){return load.p&&null!==load.p.e||(load.p=parent),Promise.all(load.d.map(function(dep){return instantiateAll(loader,dep,parent,loaded)}))}).catch(function(err)(load.e=null,triggerOnload(loader,load,err,!1)),err)}(loader,load,load,{}).then(function(){return function postOrderExec(loader,load,seen){if(seen[load.id])return;seen[load.id]=!0;if(!load.e){if(load.er)throw load.er;return load.E?load.E:void 0}var depLoadPromises;load.d.forEach(function(depLoad){trycatch(err){throw load.e=null,load.er=err,triggerOnload(loader,load,err,!1),err}});if(depLoadPromises)return Promise.all(depLoadPromises).then(doExec);return doExec();function doExec(){try{var execPromise=load.e.call(nullContext);if(execPromise)return execPromise=execPromise.then(function(){load.C=load.n,load.E=null,triggerOnload(loader,load,null,!0)},function(err){throw load.er=err,load.E=null,triggerOnload(loader,load,err,!0),err}),load.E=execPromise;load.C=load.n,load.L=load.I=void 0}catch(err){throw load.er=err}finally{load.e=null,triggerOnload(loader,load,load.er,!0)}}}(loader,load,{})}).then(function(){return load.n})}(loader,id)})},systemJSPrototype.createContext=function(parentId){var loader=this;return{url:parentId,resolve:function(id,parentUrl)}},systemJSPrototype.onload=function(){},systemJSPrototype.register=function(deps,declare){lastRegister=[deps,declare]},systemJSPrototype.getRegister=function(){var _lastRegister=lastRegister;return lastRegister=void 0,_lastRegister};var nullContext=Object.freeze(Object.create(null));envGlobal.System=new SystemJS;var baseOrigin,lastAutoImportDeps,lastAutoImportTimeout,importMapPromise=Promise.resolve(),importMap={imports:{},scopes:{},depcache:{},integrity:{}},processFirst=hasDocument;function processScripts(){[].forEach.call(document.querySelectorAll("script"),function(script){var fetchPromise;script.sp||("systemjs-module"===script.type?(script.sp=!0,script.src&&System.import("import:"===script.src.slice(0,7)?script.src.slice(7):resolveUrl(script.src,baseUrl)).catch(function(e){var event;return-1<e.message.indexOf("https://git.io/JvFET#3")&&((event=document.createEvent("Event")).initEvent("error",!1,!1),script.dispatchEvent(event)),Promise.reject(e)})):"systemjs-importmap"===script.type&&(script.sp=!0,fetchPromise=script.src?fetch(script.src,{integrity:script.integrity}).then(function(res){if(res.ok)return res.text();throw Error("Invalid status code: "+res.status)}).catch(function(err){return err.message=errMsg("W4","Error fetching systemjs-import map "+script.src)+"n"+err.message,console.warn(err),"function"==typeof script.onerror&&script.onerror(),"{}"}):script.innerHTML,importMapPromise=importMapPromise.then(function(){return fetchPromise}).then(function(text){!function extendImportMap(importMap,newMapText,newMapUrl){var newMap={};try{newMap=JSON.parse(newMapText)}catch(err){console.warn(Error(errMsg("W5","systemjs-importmap contains invalid JSON")+"nn"+newMapText+"n"))}!function resolveAndComposeImportMap(json,baseUrl,outMap){for(var u in json.imports&&resolveAndComposePackages(json.imports,outMap.imports,baseUrl,outMap,null),json.scopes||{}){var resolvedScope=resolveUrl(u,baseUrl);resolveAndComposePackages(json.scopes[u],outMap.scopes[resolvedScope]||(outMap.scopes[resolvedScope]={}),baseUrl,outMap,resolvedScope)}for(u in json.depcache||{})outMap.depcache[resolveUrl(u,baseUrl)]=json.depcache[u];for(u in json.integrity||{})outMap.integrity[resolveUrl(u,baseUrl)]=json.integrity[u]}(newMap,newMapUrl,importMap)}(importMap,text,script.src||baseUrl)})))})}systemJSPrototype.prepareImport=function(doProcessScripts),hasDocument&&(processScripts(),window.addEventListener("DOMContentLoaded",processScripts)),hasDocument&&(window.addEventListener("error",function(evt){lastWindowErrorUrl=evt.filename,lastWindowError=evt.error}),baseOrigin=location.origin),systemJSPrototype.createScript=function(url){var script=document.createElement("script"),integrity=(script.async=!0,url.indexOf(baseOrigin+"/")&&(script.crossOrigin="anonymous"),importMap.integrity[url]);return integrity&&(script.integrity=integrity),script.src=url,script};var lastWindowErrorUrl,lastWindowError,autoImportCandidates={},systemRegister=systemJSPrototype.register,instantiate=(systemJSPrototype.register=function(deps,declare){var scripts,lastScript,loader;return hasDocument&&"loading"===document.readyState&&"string"!=typeof deps?(scripts=document.querySelectorAll("script[src]"),(lastScript=scripts[scripts.length-1])&&(lastScript.src,lastAutoImportDeps=deps,loader=this,lastAutoImportTimeout=setTimeout(function(){autoImportCandidates[lastScript.src]=[deps,declare],loader.import(lastScript.src)}))):lastAutoImportDeps=void 0,systemRegister.call(this,deps,declare)},systemJSPrototype.instantiate=function(url,firstParentUrl){var loader,autoImportRegistration=autoImportCandidates[url];return autoImportRegistration?(delete autoImportCandidates[url],autoImportRegistration):(loader=this,new Promise(function(resolve,reject){var script=systemJSPrototype.createScript(url);script.addEventListener("error",function(){reject(Error(errMsg(3,"Error loading "+url+(firstParentUrl?" from "+firstParentUrl:""))))}),script.addEventListener("load",function(){var register;document.head.removeChild(script),lastWindowErrorUrl===url?reject(lastWindowError):((register=loader.getRegister())&®ister[0]===lastAutoImportDeps&&clearTimeout(lastAutoImportTimeout),resolve(register))}),document.head.appendChild(script)}))},systemJSPrototype.shouldFetch=function(){return!1},"undefined"!=typeof fetch&&(systemJSPrototype.fetch=fetch),systemJSPrototype.instantiate),jsContentTypeRegEx=/^(text|application)/(x-)?javascript(;|$)/;systemJSPrototype.instantiate=function(url,parent){var loader=this;return this.shouldFetch(url)?this.fetch(url,{credentials:"same-origin",integrity:importMap.integrity[url]}).then(function(res){if(!res.ok)throw Error(errMsg(7,res.status+" "+res.statusText+", loading "+url+(parent?" from "+parent:"")));var contentType=res.headers.get("content-type");if(contentType&&jsContentTypeRegEx.test(contentType))return res.text().then(function(source){return source.indexOf("//# sourceURL=")<0&&(source+="n//# sourceURL="+url),(0,eval)(source),loader.getRegister()});throw Error(errMsg(4,'Unknown Content-Type "'+contentType+'", loading '+url+(parent?" from "+parent:"")))}):instantiate.apply(this,arguments)},systemJSPrototype.resolve=function(id,parentUrl){return resolveImportMap(importMap,resolveIfNotPlainOrUrl(id,parentUrl=parentUrl||baseUrl)||id,parentUrl)||function throwUnresolved(id,parentUrl){throw Error(errMsg(8,"Unable to resolve bare specifier '"+id+(parentUrl?"' from "+parentUrl:"'")))}(id,parentUrl)};var systemInstantiate=systemJSPrototype.instantiate,toStringTag$1=(systemJSPrototype.instantiate=function(url,firstParentUrl){var preloads=importMap.depcache[url];if(preloads)for(var i=0;i<preloads.length;i++)getOrCreateLoad(this,this.resolve(preloads[i],url),url);return systemInstantiate.call(this,url,firstParentUrl)},hasSelf&&"function"==typeof importScripts&&(systemJSPrototype.instantiate=function(url){var loader=this;return Promise.resolve().then(function(){return importScripts(url),loader.getRegister()})}),!function(global){var firstGlobalProp,secondGlobalProp,lastGlobalProp,systemJSPrototype=global.System.constructor.prototype;var impt=systemJSPrototype.import,emptyInstantiation=(systemJSPrototype.import=function(id,parentUrl){return function noteGlobalProps()(),impt.call(this,id,parentUrl)},[[],function(){return{}}]),getRegister=systemJSPrototype.getRegister,isIE11=(systemJSPrototype.getRegister=function(){var lastRegister=getRegister.call(this);if(lastRegister)return lastRegister;var globalExport,lastRegister=function getGlobalProp(useFirstGlobalProp){var foundLastProp,result,p,cnt=0;for(p in global)if(!shouldSkipProperty(p))p):foundLastProp=p===lastGlobalProp,cnt++return result}(this.firstGlobalProp);if(!lastRegister)return emptyInstantiation;try{globalExport=global[lastRegister]}catch(e){return emptyInstantiation}return[[],function(_export){return{execute:function(){_export(globalExport),_export({default:globalExport,__useDefault:!0})}}}]},"undefined"!=typeof navigator&&-1!==navigator.userAgent.indexOf("Trident"));function shouldSkipProperty(p)!isNaN(p)&&p<global.length}("undefined"!=typeof self?self:global),!function(global){var systemJSPrototype=global.System.constructor.prototype,moduleTypesRegEx=/^[^#?]+.(css|html|json|wasm)([?#].*)?$/,jsonContentType=(systemJSPrototype.shouldFetch=function(url){return moduleTypesRegEx.test(url)},/^application/json(;|$)/),cssContentType=/^text/css(;|$)/,wasmContentType=/^application/wasm(;|$)/,fetch=systemJSPrototype.fetch;systemJSPrototype.fetch=function(url,options){return fetch(url,options).then(function(res){var contentType;return res.ok?(contentType=res.headers.get("content-type"),jsonContentType.test(contentType)?res.json().then(function(json){return new Response(new Blob(['System.register([],function(e){return{execute:function(){e("default",'+JSON.stringify(json)+")}}})"],{type:"application/javascript"}))}):cssContentType.test(contentType)?res.text().then(function(source){return source=source.replace(/url(s*(?:(["'])((?:.|[^n"'])+)1|((?:.|[^s,"'()])+))s*)/g,function(match,quotes,relUrl1,relUrl2)relUrl2,url)+quotes+")"),new Response(new Blob(["System.register([],function(e){return{execute:function(){var s=new CSSStyleSheet();s.replaceSync("+JSON.stringify(source)+');e("default",s)}}})'],{type:"application/javascript"}))}):wasmContentType.test(contentType)?(WebAssembly.compileStreaming?WebAssembly.compileStreaming(res):res.arrayBuffer().then(WebAssembly.compile)).then(function(module){global.System.wasmModules||(global.System.wasmModules=Object.create(null)),global.System.wasmModules[url]=module;var deps=[],setterSources=[];return WebAssembly.Module.imports&&WebAssembly.Module.imports(module).forEach(function(impt){impt=JSON.stringify(impt.module);-1===deps.indexOf(impt)&&(deps.push(impt),setterSources.push("function(m){i["+impt+"]=m}"))}),new Response(new Blob(["System.register(["+deps.join(",")+"],function(e){var i={};return{setters:["+setterSources.join(",")+"],execute:function(){return WebAssembly.instantiate(System.wasmModules["+JSON.stringify(url)+"],i).then(function(m){e(m.exports)})}}})"],{type:"application/javascript"}))}):res):res})}}("undefined"!=typeof self?self:global),"undefined"!=typeof Symbol&&Symbol.toStringTag),iterator=(systemJSPrototype.get=function(id){id=this[REGISTRY][id];if(id&&null===id.e&&!id.E)return id.er?null:id.n},systemJSPrototype.set=function(id,module){try{new URL(id)}catch(err){console.warn(Error(errMsg("W3",'"'+id+'" is not a valid URL to set in the module registry')))}toStringTag$1&&"Module"===module[toStringTag$1]?ns=module:(ns=Object.assign(Object.create(null),module),toStringTag$1&&Object.defineProperty(ns,toStringTag$1,{value:"Module"}));var ns,module=Promise.resolve(ns),id=this[REGISTRY][id]||(this[REGISTRY][id]={id:id,i:[],h:!1,d:[],e:null,er:void 0,E:void 0});return!id.e&&!id.E&&(Object.assign(id,{n:ns,I:void 0,L:void 0,C:module}),ns)},systemJSPrototype.has=function(id){return!!this[REGISTRY][id]},systemJSPrototype.delete=function(id){var importerSetters,registry=this[REGISTRY],load=registry[id];return!(!load||load.p&&null!==load.p.e||load.E)&&(importerSetters=load.i,load.d&&load.d.forEach(function(depLoad){var importerIndex=depLoad.i.indexOf(load);-1!==importerIndex&&depLoad.i.splice(importerIndex,1)}),delete registry[id],function(){var load=registry[id];if(!load||!importerSetters||null!==load.e||load.E)return!1;importerSetters.forEach(function(setter){load.i.push(setter),setter(load.n)}),importerSetters=null})},"undefined"!=typeof Symbol&&Symbol.iterator);systemJSPrototype.entries=function(){var ns,key,loader=this,keys=Object.keys(loader[REGISTRY]),index=0,result={next:function(){for(;void 0!==(key=keys[index++])&&void 0===(ns=loader.get(key)););return{done:void 0===key,value:void 0!==key&&[key,ns]}}};return result[iterator]=function(){return this},result}}(),!function(global){function SystemJS(){constructor.call(this),setRegisterRegistry(this)}var firstNamedDefine,global=global.System,systemJSPrototype=(setRegisterRegistry(global),global.constructor.prototype),constructor=global.constructor;function setRegisterRegistry(systemInstance){systemInstance.registerRegistry=Object.create(null)}SystemJS.prototype=systemJSPrototype,global.constructor=SystemJS;var register=systemJSPrototype.register,resolve=(systemJSPrototype.register=function(name,deps,declare){var define;return"string"!=typeof name?register.apply(this,arguments):(this.registerRegistry[name]=define=[deps,declare],firstNamedDefine||(firstNamedDefine=define,Promise.resolve().then(function(){firstNamedDefine=null})),register.apply(this,[deps,declare]))},systemJSPrototype.resolve),instantiate=(systemJSPrototype.resolve=function(id,parentURL){try{return resolve.call(this,id,parentURL)}catch(err){if(id in this.registerRegistry)return id;throw err}},systemJSPrototype.instantiate),getRegister=(systemJSPrototype.instantiate=function(url,firstParentUrl){var result=this.registerRegistry[url];return result?(this.registerRegistry[url]=null,result):instantiate.call(this,url,firstParentUrl)},systemJSPrototype.getRegister);systemJSPrototype.getRegister=function()register;return firstNamedDefine=null,register}("undefined"!=typeof self?self:global),!function(exports){"use strict";var FrameLoadingStyle,FetchMethod,FormSubmissionState,FormEnctype,TimingMetric,VisitState,SystemStatusCode,PageStage,__async$3=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});if(void 0!==window.Reflect&&void 0!==window.customElements&&!window.customElements.polyfillWrapFlushCallback){const BuiltInHTMLElement=HTMLElement,wrapperForTheName_HTMLElement=function HTMLElement2(){return Reflect.construct(BuiltInHTMLElement,[],this.constructor)};window.HTMLElement=wrapperForTheName_HTMLElement,HTMLElement.prototype=BuiltInHTMLElement.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,BuiltInHTMLElement)}function raise(errorConstructor,message,name){throw new errorConstructor("Failed to execute 'requestSubmit' on 'HTMLFormElement': "+message+".",name)}"function"!=typeof(prototype=HTMLFormElement.prototype).requestSubmit&&(prototype.requestSubmit=function(submitter){submitter?(function validateSubmitter(submitter,form)(submitter,this),submitter.click()):((submitter=document.createElement("input")).type="submit",submitter.hidden=!0,this.appendChild(submitter),submitter.click(),this.removeChild(submitter))});const submittersByForm=new WeakMap;function clickCaptured(event){event=function findSubmitterFromClickTarget(target){return"submit"==(null==(target=(target=target instanceof Element?target:target instanceof Node?target.parentElement:null)?target.closest("input, button"):null)?void 0:target.type)?target:null}(event.target);event&&event.form&&submittersByForm.set(event.form,event)}!function(){if(!("submitter"in Event.prototype)){let prototype;if("SubmitEvent"in window&&/Apple Computer/.test(navigator.vendor))prototype=window.SubmitEvent.prototype;else{if("SubmitEvent"in window)return;prototype=window.Event.prototype}addEventListener("click",clickCaptured,!0),Object.defineProperty(prototype,"submitter",{get(){if("submit"==this.type&&this.target instanceof HTMLFormElement)return submittersByForm.get(this.target)}})}}(),(prototype=FrameLoadingStyle=FrameLoadingStyle||{}).eager="eager",prototype.lazy="lazy";class FrameElement extends HTMLElement{constructor(){super(),this.loaded=Promise.resolve(),this.delegate=new FrameElement.delegateConstructor(this)}static get observedAttributes(){return["disabled","loading","src"]}connectedCallback(){this.delegate.connect()}disconnectedCallback(){this.delegate.disconnect()}reload(){var src=this["src"];this.src=null,this.src=src}attributeChangedCallback(name){"loading"==name?this.delegate.loadingStyleChanged():"src"==name?this.delegate.sourceURLChanged():this.delegate.disabledChanged()}get src(){return this.getAttribute("src")}set src(value){value?this.setAttribute("src",value):this.removeAttribute("src")}get loading(){return function frameLoadingStyleFromString(style){{if("lazy"!==style.toLowerCase())return FrameLoadingStyle.eager;return FrameLoadingStyle.lazy}}(this.getAttribute("loading")||"")}set loading(value){value?this.setAttribute("loading",value):this.removeAttribute("loading")}get disabled(){return this.hasAttribute("disabled")}set disabled(value){value?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get autoscroll(){return this.hasAttribute("autoscroll")}set autoscroll(value){value?this.setAttribute("autoscroll",""):this.removeAttribute("autoscroll")}get complete(){return!this.delegate.isLoading}get isActive(){return this.ownerDocument===document&&!this.isPreview}get isPreview(){var _a;return null==(_a=null==(_a=this.ownerDocument)?void 0:_a.documentElement)?void 0:_a.hasAttribute("data-turbo-preview")}}function expandURL(locatable){return new URL(locatable.toString(),document.baseURI)}function getAnchor(url){return url.hash?url.hash.slice(1):(url=url.href.match(/#(.*)$/))?url[1]:void 0}function getAction(form,submitter)form.getAttribute("action")function getExtension(url){return(function getLastPathComponent(url){return function getPathComponents(url){return url.pathname.split("/").slice(1)}(url).slice(-1)[0]}(url).match(/.[^.]*$/)||[])[0]||""}function isPrefixedBy(baseURL,url){url=function getPrefix(url){return function addTrailingSlash(value){return value.endsWith("/")?value:value+"/"}(url.origin+url.pathname)}(url);return baseURL.href===expandURL(url).href||baseURL.href.startsWith(url)}function locationIsVisitable(location2,rootLocation){return isPrefixedBy(location2,rootLocation)&&function isHTML(url)xhtml))$/)(location2)}function getRequestURL(url){var anchor=getAnchor(url);return null!=anchor?url.href.slice(0,-(anchor.length+1)):url.href}function toCacheKey(url){return getRequestURL(url)}class FetchResponse{constructor(response){this.response=response}get succeeded(){return this.response.ok}get failed(){return!this.succeeded}get clientError(){return 400<=this.statusCode&&this.statusCode<=499}get serverError(){return 500<=this.statusCode&&this.statusCode<=599}get redirected(){return this.response.redirected}get location(){return expandURL(this.response.url)}get isHTML()application/xhtml+xml)b/)get statusCode(){return this.response.status}get contentType(){return this.header("Content-Type")}get responseText(){return this.response.clone().text()}get responseHTML(){return this.isHTML?this.response.clone().text():Promise.resolve(void 0)}header(name){return this.response.headers.get(name)}}function dispatch(eventName,{target,cancelable,detail}={}){eventName=new CustomEvent(eventName,{cancelable:cancelable,bubbles:!0,detail:detail});return(target&&target.isConnected?target:document.documentElement).dispatchEvent(eventName),eventName}function nextAnimationFrame(){return new Promise(resolve=>requestAnimationFrame(()=>resolve()))}function parseHTMLDocument(html=""){return(new DOMParser).parseFromString(html,"text/html")}function unindent(strings,...values){strings=function interpolate(strings,values){return strings.reduce((result,string,i)=>{return result+string+(null==values[i]?"":values[i])},"")}(strings,values).replace(/^n/,"").split("n"),values=strings[0].match(/^s+/);const indent=values?values[0].length:0;return strings.map(line=>line.slice(indent)).join("n")}function uuid(){return Array.apply(null,{length:36}).map((_,i)=>8==i||13==i||18==i||23==i?"-":14==i?"4":(19==i?Math.floor(4*Math.random())+8:Math.floor(15*Math.random())).toString(16)).join("")}function getAttribute(attributeName,...elements){for(const value of elements.map(element=>null==element?void 0:element.getAttribute(attributeName)))if("string"==typeof value)return value;return null}function markAsBusy(...elements){for(const element of elements)"turbo-frame"==element.localName&&element.setAttribute("busy",""),element.setAttribute("aria-busy","true")}function clearBusyState(...elements){for(const element of elements)"turbo-frame"==element.localName&&element.removeAttribute("busy"),element.removeAttribute("aria-busy")}(prototype=FetchMethod=FetchMethod||{})[prototype.get=0]="get",prototype[prototype.post=1]="post",prototype[prototype.put=2]="put",prototype[prototype.patch=3]="patch",prototype[prototype.delete=4]="delete";class FetchRequest{constructor(delegate,method,location2,body=new URLSearchParams,target=null){this.abortController=new AbortController,this.resolveRequestPromise=value=>{},this.delegate=delegate,this.method=method,this.headers=this.defaultHeaders,this.body=body,this.url=location2,this.target=target}get location(){return this.url}get params(){return this.url.searchParams}get entries(){return this.body?Array.from(this.body.entries()):[]}cancel(){this.abortController.abort()}perform(){return __async$3(this,null,function*(){var _a,_b,fetchOptions=this["fetchOptions"];null!=(_b=(_a=this.delegate).prepareHeadersForRequest)&&_b.call(_a,this.headers,this),yield this.allowRequestToBeIntercepted(fetchOptions);try{this.delegate.requestStarted(this);var response=yield fetch(this.url.href,fetchOptions);return yield this.receive(response)}catch(error){if("AbortError"!==error.name)throw this.delegate.requestErrored(this,error),error}finally{this.delegate.requestFinished(this)}})}receive(response){return __async$3(this,null,function*(){var fetchResponse=new FetchResponse(response);return dispatch("turbo:before-fetch-response",{cancelable:!0,detail:{fetchResponse:fetchResponse},target:this.target}).defaultPrevented?this.delegate.requestPreventedHandlingResponse(this,fetchResponse):fetchResponse.succeeded?this.delegate.requestSucceededWithResponse(this,fetchResponse):this.delegate.requestFailedWithResponse(this,fetchResponse),fetchResponse})}get fetchOptions(){var _a;return{method:FetchMethod[this.method].toUpperCase(),credentials:"same-origin",headers:this.headers,redirect:"follow",body:this.isIdempotent?null:this.body,signal:this.abortSignal,referrer:null==(_a=this.delegate.referrer)?void 0:_a.href}}get defaultHeaders(){return{Accept:"text/html, application/xhtml+xml"}}get isIdempotent(){return this.method==FetchMethod.get}get abortSignal(){return this.abortController.signal}allowRequestToBeIntercepted(fetchOptions){return __async$3(this,null,function*(){var requestInterception=new Promise(resolve=>this.resolveRequestPromise=resolve);dispatch("turbo:before-fetch-request",{cancelable:!0,detail:{fetchOptions:fetchOptions,url:this.url,resume:this.resolveRequestPromise},target:this.target}).defaultPrevented&&(yield requestInterception)})}}class AppearanceObserver{constructor(delegate,element){this.started=!1,this.intersect=entries=>{entries=entries.slice(-1)[0];null!=entries&&entries.isIntersecting&&this.delegate.elementAppearedInViewport(this.element)},this.delegate=delegate,this.element=element,this.intersectionObserver=new IntersectionObserver(this.intersect)}start()(this.started=!0,this.intersectionObserver.observe(this.element))stop(){this.started&&(this.started=!1,this.intersectionObserver.unobserve(this.element))}}class StreamMessage{constructor(html){this.templateElement=document.createElement("template"),this.templateElement.innerHTML=html}static wrap(message){return"string"==typeof message?new this(message):message}get fragment(){var fragment=document.createDocumentFragment();for(const element of this.foreignElements)fragment.appendChild(document.importNode(element,!0));return fragment}get foreignElements(){return this.templateChildren.reduce((streamElements,child)=>"turbo-stream"==child.tagName.toLowerCase()?[...streamElements,child]:streamElements,[])}get templateChildren(){return Array.from(this.templateElement.content.children)}}StreamMessage.contentType="text/vnd.turbo-stream.html",(prototype=FormSubmissionState=FormSubmissionState||{})[prototype.initialized=0]="initialized",prototype[prototype.requesting=1]="requesting",prototype[prototype.waiting=2]="waiting",prototype[prototype.receiving=3]="receiving",prototype[prototype.stopping=4]="stopping",prototype[prototype.stopped=5]="stopped",(prototype=FormEnctype=FormEnctype||{}).urlEncoded="application/x-www-form-urlencoded",prototype.multipart="multipart/form-data",prototype.plain="text/plain";class FormSubmission{constructor(delegate,formElement,submitter,mustRedirect=!1){this.state=FormSubmissionState.initialized,this.delegate=delegate,this.formElement=formElement,this.submitter=submitter,this.formData=function buildFormData(formElement,submitter){var formElement=new FormData(formElement),name=null==submitter?void 0:submitter.getAttribute("name"),submitter=null==submitter?void 0:submitter.getAttribute("value");name&&null!=submitter&&formElement.get(name)!=submitter&&formElement.append(name,submitter);return formElement}(formElement,submitter),this.location=expandURL(this.action),this.method==FetchMethod.get&&function mergeFormDataEntries(url,entries)(this.location,[...this.body.entries()]),this.fetchRequest=new FetchRequest(this,this.method,this.location,this.body,this.formElement),this.mustRedirect=mustRedirect}static confirmMethod(message,element){return confirm(message)}get method(){var _a;return function fetchMethodFromString(method){switch(method.toLowerCase()){case"get":return FetchMethod.get;case"post":return FetchMethod.post;case"put":return FetchMethod.put;case"patch":return FetchMethod.patch;case"delete":return FetchMethod.delete}}(((null==(_a=this.submitter)?void 0:_a.getAttribute("formmethod"))||this.formElement.getAttribute("method")||"").toLowerCase())||FetchMethod.get}get action()get body()this.method==FetchMethod.get?new URLSearchParams(this.stringFormData):this.formDataget enctype(){var _a;return function formEnctypeFromString(encoding){switch(encoding.toLowerCase()){case FormEnctype.multipart:return FormEnctype.multipart;case FormEnctype.plain:return FormEnctype.plain;default:return FormEnctype.urlEncoded}}((null==(_a=this.submitter)?void 0:_a.getAttribute("formenctype"))||this.formElement.enctype)}get isIdempotent(){return this.fetchRequest.isIdempotent}get stringFormData(){return[...this.formData].reduce((entries,[name,value])=>entries.concat("string"==typeof value?[[name,value]]:[]),[])}get confirmationMessage(){return this.formElement.getAttribute("data-turbo-confirm")}get needsConfirmation(){return null!==this.confirmationMessage}start(){return __async$3(this,null,function*(){var{initialized,requesting}=FormSubmissionState;if(this.needsConfirmation&&!FormSubmission.confirmMethod(this.confirmationMessage,this.formElement))return;if(this.state==initialized)return this.state=requesting,this.fetchRequest.perform()})}stop(){var{stopping,stopped}=FormSubmissionState;if(this.state!=stopping&&this.state!=stopped)return this.state=stopping,this.fetchRequest.cancel(),!0}prepareHeadersForRequest(headers,request){request.isIdempotent||((request=function getCookieValue(cookieName){{var cookie;return null!=cookieName&&(cookie=(document.cookie?document.cookie.split("; "):[]).find(cookie2=>cookie2.startsWith(cookieName)))&&(cookie=cookie.split("=").slice(1).join("="))?decodeURIComponent(cookie):void 0}}(getMetaContent("csrf-param"))||getMetaContent("csrf-token"))&&(headers["X-CSRF-Token"]=request),headers.Accept=[StreamMessage.contentType,headers.Accept].join(", "))}requestStarted(request){var _a;this.state=FormSubmissionState.waiting,null!=(_a=this.submitter)&&_a.setAttribute("disabled",""),dispatch("turbo:submit-start",{target:this.formElement,detail:{formSubmission:this}}),this.delegate.formSubmissionStarted(this)}requestPreventedHandlingResponse(request,response){this.result={success:response.succeeded,fetchResponse:response}}requestSucceededWithResponse(request,response){response.clientError||response.serverError?this.delegate.formSubmissionFailedWithResponse(this,response):this.requestMustRedirect(request)&&function responseSucceededWithoutRedirect(response){return 200==response.statusCode&&!response.redirected}(response)?(request=new Error("Form responses must redirect to another location"),this.delegate.formSubmissionErrored(this,request)):(this.state=FormSubmissionState.receiving,this.result={success:!0,fetchResponse:response},this.delegate.formSubmissionSucceededWithResponse(this,response))}requestFailedWithResponse(request,response){this.result={success:!1,fetchResponse:response},this.delegate.formSubmissionFailedWithResponse(this,response)}requestErrored(request,error){this.result={success:!1,error:error},this.delegate.formSubmissionErrored(this,error)}requestFinished(request){var _a;this.state=FormSubmissionState.stopped,null!=(_a=this.submitter)&&_a.removeAttribute("disabled"),dispatch("turbo:submit-end",{target:this.formElement,detail:Object.assign({formSubmission:this},this.result)}),this.delegate.formSubmissionFinished(this)}requestMustRedirect(request){return!request.isIdempotent&&this.mustRedirect}}function getMetaContent(name){name=document.querySelector(`meta[name="${name}"]`);return name&&name.content}class Snapshot{constructor(element){this.element=element}get children(){return[...this.element.children]}hasAnchor(anchor){return null!=this.getElementForAnchor(anchor)}getElementForAnchor(anchor){return anchor?this.element.querySelector(`[id='${anchor}'], a[name="${anchor}"]`):null}get isConnected(){return this.element.isConnected}get firstAutofocusableElement(){return this.element.querySelector("[autofocus]")}get permanentElements(){return[...this.element.querySelectorAll("[id][data-turbo-permanent]")]}getPermanentElementById(id){return this.element.querySelector(`#${id}[data-turbo-permanent]`)}getPermanentElementMapForSnapshot(snapshot){var permanentElementMap={};for(const currentPermanentElement of this.permanentElements){var id=currentPermanentElement["id"],newPermanentElement=snapshot.getPermanentElementById(id);newPermanentElement&&(permanentElementMap[id]=[currentPermanentElement,newPermanentElement])}return permanentElementMap}}class FormInterceptor{constructor(delegate,element){this.submitBubbled=event=>void 0)?void 0:submitter.getAttribute("formmethod")),this.delegate=delegate,this.element=element}start(){this.element.addEventListener("submit",this.submitBubbled)}stop(){this.element.removeEventListener("submit",this.submitBubbled)}}class View{constructor(delegate,element){this.resolveRenderPromise=value=>{},this.resolveInterceptionPromise=value=>{},this.delegate=delegate,this.element=element}scrollToAnchor(anchor){anchor=this.snapshot.getElementForAnchor(anchor);anchor?(this.scrollToElement(anchor),this.focusElement(anchor)):this.scrollToPosition({x:0,y:0})}scrollToAnchorFromLocation(location2){this.scrollToAnchor(getAnchor(location2))}scrollToElement(element){element.scrollIntoView()}focusElement(element){element instanceof HTMLElement&&(element.hasAttribute("tabindex")?element.focus():(element.setAttribute("tabindex","-1"),element.focus(),element.removeAttribute("tabindex")))}scrollToPosition({x,y}){this.scrollRoot.scrollTo(x,y)}scrollToTop(){this.scrollToPosition({x:0,y:0})}get scrollRoot(){return window}render(renderer){return __async$3(this,null,function*(){var{isPreview,shouldRender,newSnapshot:snapshot}=renderer;if(shouldRender)tryfinally{delete this.renderer,this.resolveRenderPromise(void 0),delete this.renderPromise}else this.invalidate()})}invalidate(){this.delegate.viewInvalidated()}prepareToRenderSnapshot(renderer){this.markAsPreview(renderer.isPreview),renderer.prepareToRender()}markAsPreview(isPreview){isPreview?this.element.setAttribute("data-turbo-preview",""):this.element.removeAttribute("data-turbo-preview")}renderSnapshot(renderer){return __async$3(this,null,function*(){yield renderer.render()})}finishRenderingSnapshot(renderer){renderer.finishRendering()}}class FrameView extends View{invalidate(){this.element.innerHTML=""}get snapshot(){return new Snapshot(this.element)}}class LinkInterceptor{constructor(delegate,element){this.clickBubbled=event=>{this.respondsToEventTarget(event.target)?this.clickEvent=event:delete this.clickEvent},this.linkClicked=event=>{this.clickEvent&&this.respondsToEventTarget(event.target)&&event.target instanceof Element&&this.delegate.shouldInterceptLinkClick(event.target,event.detail.url)&&(this.clickEvent.preventDefault(),event.preventDefault(),this.delegate.linkClickIntercepted(event.target,event.detail.url)),delete this.clickEvent},this.willVisit=()=>{delete this.clickEvent},this.delegate=delegate,this.element=element}start(){this.element.addEventListener("click",this.clickBubbled),document.addEventListener("turbo:click",this.linkClicked),document.addEventListener("turbo:before-visit",this.willVisit)}stop(){this.element.removeEventListener("click",this.clickBubbled),document.removeEventListener("turbo:click",this.linkClicked),document.removeEventListener("turbo:before-visit",this.willVisit)}respondsToEventTarget(target){target=target instanceof Element?target:target instanceof Node?target.parentElement:null;return target&&target.closest("turbo-frame, html")==this.element}}class Bardo{constructor(permanentElementMap){this.permanentElementMap=permanentElementMap}static preservingPermanentElements(permanentElementMap,callback){permanentElementMap=new this(permanentElementMap);permanentElementMap.enter(),callback(),permanentElementMap.leave()}enter(){for(const id in this.permanentElementMap){var[,newPermanentElement]=this.permanentElementMap[id];this.replaceNewPermanentElementWithPlaceholder(newPermanentElement)}}leave(){for(const id in this.permanentElementMap){var[currentPermanentElement]=this.permanentElementMap[id];this.replaceCurrentPermanentElementWithClone(currentPermanentElement),this.replacePlaceholderWithPermanentElement(currentPermanentElement)}}replaceNewPermanentElementWithPlaceholder(permanentElement){var placeholder=function createPlaceholderForPermanentElement(permanentElement){var element=document.createElement("meta");return element.setAttribute("name","turbo-permanent-placeholder"),element.setAttribute("content",permanentElement.id),element}(permanentElement);permanentElement.replaceWith(placeholder)}replaceCurrentPermanentElementWithClone(permanentElement){var clone=permanentElement.cloneNode(!0);permanentElement.replaceWith(clone)}replacePlaceholderWithPermanentElement(permanentElement){var placeholder=this.getPlaceholderById(permanentElement.id);null!=placeholder&&placeholder.replaceWith(permanentElement)}getPlaceholderById(id){return this.placeholders.find(element=>element.content==id)}get placeholders(){return[...document.querySelectorAll("meta[name=turbo-permanent-placeholder][content]")]}}class Renderer{constructor(currentSnapshot,newSnapshot,isPreview,willRender=!0){this.currentSnapshot=currentSnapshot,this.newSnapshot=newSnapshot,this.isPreview=isPreview,this.willRender=willRender,this.promise=new Promise((resolve,reject)=>this.resolvingFunctions={resolve:resolve,reject:reject})}get shouldRender(){return!0}prepareToRender(){}finishRendering(){this.resolvingFunctions&&(this.resolvingFunctions.resolve(),delete this.resolvingFunctions)}createScriptElement(element){var createdScriptElement;return"false"==element.getAttribute("data-turbo-eval")?element:(createdScriptElement=document.createElement("script"),this.cspNonce&&(createdScriptElement.nonce=this.cspNonce),createdScriptElement.textContent=element.textContent,createdScriptElement.async=!1,function copyElementAttributes(destinationElement,sourceElement){for(var{name,value}of[...sourceElement.attributes])destinationElement.setAttribute(name,value)}(createdScriptElement,element),createdScriptElement)}preservingPermanentElements(callback){Bardo.preservingPermanentElements(this.permanentElementMap,callback)}focusFirstAutofocusableElement(){var element=this.connectedSnapshot.firstAutofocusableElement;!function elementIsFocusable(element){return element&&"function"==typeof element.focus}(element)||element.focus()}get connectedSnapshot(){return this.newSnapshot.isConnected?this.newSnapshot:this.currentSnapshot}get currentElement(){return this.currentSnapshot.element}get newElement(){return this.newSnapshot.element}get permanentElementMap(){return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot)}get cspNonce(){var _a;return null==(_a=document.head.querySelector('meta[name="csp-nonce"]'))?void 0:_a.getAttribute("content")}}class FrameRenderer extends Renderer{get shouldRender(){return!0}render(){return __async$3(this,null,function*(){yield nextAnimationFrame(),this.preservingPermanentElements(()=>{this.loadFrameElement()}),this.scrollFrameIntoView(),yield nextAnimationFrame(),this.focusFirstAutofocusableElement(),yield nextAnimationFrame(),this.activateScriptElements()})}loadFrameElement(){var destinationRange=document.createRange(),destinationRange=(destinationRange.selectNodeContents(this.currentElement),destinationRange.deleteContents(),this.newElement),_a=null==(_a=destinationRange.ownerDocument)?void 0:_a.createRange();_a&&(_a.selectNodeContents(destinationRange),this.currentElement.appendChild(_a.extractContents()))}scrollFrameIntoView(){if(this.currentElement.autoscroll||this.newElement.autoscroll){var element=this.currentElement.firstElementChild,block=function readScrollLogicalPosition(value,defaultValue)"start"==value(this.currentElement.getAttribute("data-autoscroll-block"),"end");if(element)return element.scrollIntoView({block:block}),!0}return!1}activateScriptElements(){for(const inertScriptElement of this.newScriptElements){var activatedScriptElement=this.createScriptElement(inertScriptElement);inertScriptElement.replaceWith(activatedScriptElement)}}get newScriptElements(){return this.currentElement.querySelectorAll("script")}}class ProgressBar{constructor(){this.hiding=!1,this.value=0,this.visible=!1,this.trickle=()=>{this.setValue(this.value+Math.random()/100)},this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement(),this.installStylesheetElement(),this.setValue(0)}static get defaultCSS(){return unindent` .turbo-progress-bar { position: fixed; display: block; top: 0; left: 0; height: 3px; background: #0076ff; z-index: 9999; transition: width ${ProgressBar.animationDuration}ms ease-out, opacity ${ProgressBar.animationDuration/2}ms ${ProgressBar.animationDuration/2}ms ease-in; transform: translate3d(0, 0, 0); } `}show()(this.visible=!0,this.installProgressElement(),this.startTrickling())hide(){this.visible&&!this.hiding&&(this.hiding=!0,this.fadeProgressElement(()=>{this.uninstallProgressElement(),this.stopTrickling(),this.visible=!1,this.hiding=!1}))}setValue(value){this.value=value,this.refresh()}installStylesheetElement(){document.head.insertBefore(this.stylesheetElement,document.head.firstChild)}installProgressElement(){this.progressElement.style.width="0",this.progressElement.style.opacity="1",document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()}fadeProgressElement(callback){this.progressElement.style.opacity="0",setTimeout(callback,1.5*ProgressBar.animationDuration)}uninstallProgressElement(){this.progressElement.parentNode&&document.documentElement.removeChild(this.progressElement)}startTrickling()stopTrickling(){window.clearInterval(this.trickleInterval),delete this.trickleInterval}refresh(){requestAnimationFrame(()=>{this.progressElement.style.width=10+90*this.value+"%"})}createStylesheetElement(){var element=document.createElement("style");return element.type="text/css",element.textContent=ProgressBar.defaultCSS,element}createProgressElement(){var element=document.createElement("div");return element.className="turbo-progress-bar",element}}ProgressBar.animationDuration=300;class HeadSnapshot extends Snapshot{constructor(){super(...arguments),this.detailsByOuterHTML=this.children.filter(element=>!function elementIsNoscript(element){element=element.tagName.toLowerCase();return"noscript"==element}(element)).map(element=>function elementWithoutNonce(element){element.hasAttribute("nonce")&&element.setAttribute("nonce","");return element}(element)).reduce((result,element)=>{var outerHTML=element["outerHTML"],details=outerHTML in result?result[outerHTML]:{type:function elementType(element){return function elementIsScript(element){element=element.tagName.toLowerCase();return"script"==element}(element)?"script":function elementIsStylesheet(element)(element)?"stylesheet":void 0}(element),tracked:function elementIsTracked(element){return"reload"==element.getAttribute("data-turbo-track")}(element),elements:[]};return Object.assign(Object.assign({},result),{[outerHTML]:Object.assign(Object.assign({},details),{elements:[...details.elements,element]})})},{})}get trackedElementSignature(){return Object.keys(this.detailsByOuterHTML).filter(outerHTML=>this.detailsByOuterHTML[outerHTML].tracked).join("")}getScriptElementsNotInSnapshot(snapshot){return this.getElementsMatchingTypeNotInSnapshot("script",snapshot)}getStylesheetElementsNotInSnapshot(snapshot){return this.getElementsMatchingTypeNotInSnapshot("stylesheet",snapshot)}getElementsMatchingTypeNotInSnapshot(matchedType,snapshot){return Object.keys(this.detailsByOuterHTML).filter(outerHTML=>!(outerHTML in snapshot.detailsByOuterHTML)).map(outerHTML=>this.detailsByOuterHTML[outerHTML]).filter(({type})=>type==matchedType).map(({elements:[element]})=>element)}get provisionalElements(){return Object.keys(this.detailsByOuterHTML).reduce((result,outerHTML)=>{var{type:outerHTML,tracked,elements}=this.detailsByOuterHTML[outerHTML];return null!=outerHTML||tracked?1<elements.length?[...result,...elements.slice(1)]:result:[...result,...elements]},[])}getMetaValue(name){name=this.findMetaElementByName(name);return name?name.getAttribute("content"):null}findMetaElementByName(name){return Object.keys(this.detailsByOuterHTML).reduce((result,outerHTML)=>{var[outerHTML]=this.detailsByOuterHTML[outerHTML]["elements"];return function elementIsMetaElementWithName(element,name){var tagName=element.tagName.toLowerCase();return"meta"==tagName&&element.getAttribute("name")==name}(outerHTML,name)?outerHTML:result},void 0)}}class PageSnapshot extends Snapshot{constructor(element,headSnapshot){super(element),this.headSnapshot=headSnapshot}static fromHTMLString(html=""){return this.fromDocument(parseHTMLDocument(html))}static fromElement(element){return this.fromDocument(element.ownerDocument)}static fromDocument({head,body}){return new this(body,new HeadSnapshot(head))}clone(){return new PageSnapshot(this.element.cloneNode(!0),this.headSnapshot)}get headElement(){return this.headSnapshot.element}get rootLocation(){var _a;return expandURL(null!=(_a=this.getSetting("root"))?_a:"/")}get cacheControlValue(){return this.getSetting("cache-control")}get isPreviewable(){return"no-preview"!=this.cacheControlValue}get isCacheable(){return"no-cache"!=this.cacheControlValue}get isVisitable(){return"reload"!=this.getSetting("visit-control")}getSetting(name){return this.headSnapshot.getMetaValue("turbo-"+name)}}(prototype=TimingMetric=TimingMetric||{}).visitStart="visitStart",prototype.requestStart="requestStart",prototype.requestEnd="requestEnd",prototype.visitEnd="visitEnd",(prototype=VisitState=VisitState||{}).initialized="initialized",prototype.started="started",prototype.canceled="canceled",prototype.failed="failed";const defaultOptions={action:"advance",historyChanged:!(prototype.completed="completed"),visitCachedSnapshot:()=>{},willRender:!0};(prototype=SystemStatusCode=SystemStatusCode||{})[prototype.networkFailure=0]="networkFailure",prototype[prototype.timeoutFailure=-1]="timeoutFailure",prototype[prototype.contentTypeMismatch=-2]="contentTypeMismatch";class Visit{constructor(delegate,location2,restorationIdentifier,options={}){this.identifier=uuid(),this.timingMetrics={},this.followedRedirect=!1,this.historyChanged=!1,this.scrolled=!1,this.snapshotCached=!1,this.state=VisitState.initialized,this.delegate=delegate,this.location=location2,this.restorationIdentifier=restorationIdentifier||uuid();var{action:delegate,historyChanged:location2,referrer:restorationIdentifier,snapshotHTML:options,response,visitCachedSnapshot,willRender}=Object.assign(Object.assign({},defaultOptions),options);this.action=delegate,this.historyChanged=location2,this.referrer=restorationIdentifier,this.snapshotHTML=options,this.response=response,this.isSamePage=this.delegate.locationWithActionIsSamePage(this.location,this.action),this.visitCachedSnapshot=visitCachedSnapshot,this.willRender=willRender,this.scrolled=!willRender}get adapter(){return this.delegate.adapter}get view(){return this.delegate.view}get history(){return this.delegate.history}get restorationData(){return this.history.getRestorationDataForIdentifier(this.restorationIdentifier)}get silent(){return this.isSamePage}start(){this.state==VisitState.initialized&&(this.recordTimingMetric(TimingMetric.visitStart),this.state=VisitState.started,this.adapter.visitStarted(this),this.delegate.visitStarted(this))}cancel(){this.state==VisitState.started&&(this.request&&this.request.cancel(),this.cancelRender(),this.state=VisitState.canceled)}complete(){this.state==VisitState.started&&(this.recordTimingMetric(TimingMetric.visitEnd),this.state=VisitState.completed,this.adapter.visitCompleted(this),this.delegate.visitCompleted(this),this.followRedirect())}fail(){this.state==VisitState.started&&(this.state=VisitState.failed,this.adapter.visitFailed(this))}changeHistory()issueRequest(){this.hasPreloadedResponse()?this.simulateRequest():this.shouldIssueRequest()&&!this.request&&(this.request=new FetchRequest(this,FetchMethod.get,this.location),this.request.perform())}simulateRequest(){this.response&&(this.startRequest(),this.recordResponse(),this.finishRequest())}startRequest(){this.recordTimingMetric(TimingMetric.requestStart),this.adapter.visitRequestStarted(this)}recordResponse(response=this.response){(this.response=response)&&(response=response["statusCode"],isSuccessful(response)?this.adapter.visitRequestCompleted(this):this.adapter.visitRequestFailedWithStatusCode(this,response))}finishRequest(){this.recordTimingMetric(TimingMetric.requestEnd),this.adapter.visitRequestFinished(this)}loadResponse(){if(this.response){const{statusCode,responseHTML}=this.response;this.render(()=>__async$3(this,null,function*(){this.cacheSnapshot(),this.view.renderPromise&&(yield this.view.renderPromise),isSuccessful(statusCode)&&null!=responseHTML?(yield this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML),!1,this.willRender),this.adapter.visitRendered(this),this.complete()):(yield this.view.renderError(PageSnapshot.fromHTMLString(responseHTML)),this.adapter.visitRendered(this),this.fail())}))}}getCachedSnapshot()getPreloadedSnapshot(){if(this.snapshotHTML)return PageSnapshot.fromHTMLString(this.snapshotHTML)}hasCachedSnapshot(){return null!=this.getCachedSnapshot()}loadCachedSnapshot(){const snapshot=this.getCachedSnapshot();if(snapshot){const isPreview=this.shouldIssueRequest();this.render(()=>__async$3(this,null,function*()))}}followRedirect(){var _a;this.redirectedToLocation&&!this.followedRedirect&&null!=(_a=this.response)&&_a.redirected&&(this.adapter.visitProposedToLocation(this.redirectedToLocation,{action:"replace",response:this.response}),this.followedRedirect=!0)}goToSamePageAnchor(){this.isSamePage&&this.render(()=>__async$3(this,null,function*(){this.cacheSnapshot(),this.adapter.visitRendered(this)}))}requestStarted(){this.startRequest()}requestPreventedHandlingResponse(request,response){}requestSucceededWithResponse(request,response){return __async$3(this,null,function*(){var responseHTML=yield response.responseHTML,{redirected,statusCode}=response;null==responseHTML?this.recordResponse({statusCode:SystemStatusCode.contentTypeMismatch,redirected:redirected}):(this.redirectedToLocation=response.redirected?response.location:void 0,this.recordResponse({statusCode:statusCode,responseHTML:responseHTML,redirected:redirected}))})}requestFailedWithResponse(request,response){return __async$3(this,null,function*(){var responseHTML=yield response.responseHTML,{redirected,statusCode}=response;null==responseHTML?this.recordResponse({statusCode:SystemStatusCode.contentTypeMismatch,redirected:redirected}):this.recordResponse({statusCode:statusCode,responseHTML:responseHTML,redirected:redirected})})}requestErrored(request,error){this.recordResponse({statusCode:SystemStatusCode.networkFailure,redirected:!1})}requestFinished(){this.finishRequest()}performScroll()this.view.scrollToTop():this.scrollToAnchor()scrollToRestoredPosition(){var scrollPosition=this.restorationData["scrollPosition"];if(scrollPosition)return this.view.scrollToPosition(scrollPosition),!0}scrollToAnchor(){var anchor=getAnchor(this.location);if(null!=anchor)return this.view.scrollToAnchor(anchor),!0}recordTimingMetric(metric){this.timingMetrics[metric]=(new Date).getTime()}getTimingMetrics(){return Object.assign({},this.timingMetrics)}getHistoryMethodForAction(action){switch(action){case"replace":return history.replaceState;case"advance":case"restore":return history.pushState}}hasPreloadedResponse(){return"object"==typeof this.response}shouldIssueRequest(){return!this.isSamePage&&("restore"==this.action?!this.hasCachedSnapshot():this.willRender)}cacheSnapshot()(this.view.cacheSnapshot().then(snapshot=>snapshot&&this.visitCachedSnapshot(snapshot)),this.snapshotCached=!0)render(callback){return __async$3(this,null,function*(){this.cancelRender(),yield new Promise(resolve=>{this.frame=requestAnimationFrame(()=>resolve())}),yield callback(),delete this.frame,this.performScroll()})}cancelRender(){this.frame&&(cancelAnimationFrame(this.frame),delete this.frame)}}function isSuccessful(statusCode){return 200<=statusCode&&statusCode<300}class BrowserAdapter{constructor(session2){this.progressBar=new ProgressBar,this.showProgressBar=()=>{this.progressBar.show()},this.session=session2}visitProposedToLocation(location2,options){this.navigator.startVisit(location2,uuid(),options)}visitStarted(visit2){visit2.loadCachedSnapshot(),visit2.issueRequest(),visit2.changeHistory(),visit2.goToSamePageAnchor()}visitRequestStarted(visit2)visitRequestCompleted(visit2){visit2.loadResponse()}visitRequestFailedWithStatusCode(visit2,statusCode){switch(statusCode){case SystemStatusCode.networkFailure:case SystemStatusCode.timeoutFailure:case SystemStatusCode.contentTypeMismatch:return this.reload();default:return visit2.loadResponse()}}visitRequestFinished(visit2){this.progressBar.setValue(1),this.hideVisitProgressBar()}visitCompleted(visit2){}pageInvalidated(){this.reload()}visitFailed(visit2){}visitRendered(visit2){}formSubmissionStarted(formSubmission){this.progressBar.setValue(0),this.showFormProgressBarAfterDelay()}formSubmissionFinished(formSubmission){this.progressBar.setValue(1),this.hideFormProgressBar()}showVisitProgressBarAfterDelay(){this.visitProgressBarTimeout=window.setTimeout(this.showProgressBar,this.session.progressBarDelay)}hideVisitProgressBar(){this.progressBar.hide(),null!=this.visitProgressBarTimeout&&(window.clearTimeout(this.visitProgressBarTimeout),delete this.visitProgressBarTimeout)}showFormProgressBarAfterDelay(){null==this.formProgressBarTimeout&&(this.formProgressBarTimeout=window.setTimeout(this.showProgressBar,this.session.progressBarDelay))}hideFormProgressBar(){this.progressBar.hide(),null!=this.formProgressBarTimeout&&(window.clearTimeout(this.formProgressBarTimeout),delete this.formProgressBarTimeout)}reload(){window.location.reload()}get navigator(){return this.session.navigator}}class CacheObserver{constructor(){this.started=!1}start()stop(){this.started&&(this.started=!1,removeEventListener("turbo:before-cache",this.removeStaleElements,!1))}removeStaleElements(){for(const element of[...document.querySelectorAll('[data-turbo-cache="false"]')])element.remove()}}class FormSubmitObserver{constructor(delegate){this.started=!1,this.submitCaptured=()=>{removeEventListener("submit",this.submitBubbled,!1),addEventListener("submit",this.submitBubbled,!1)},this.submitBubbled=event=>,this.delegate=delegate}start()stop(){this.started&&(removeEventListener("submit",this.submitCaptured,!0),this.started=!1)}}class FrameRedirector{constructor(element){this.element=element,this.linkInterceptor=new LinkInterceptor(this,element),this.formInterceptor=new FormInterceptor(this,element)}start(){this.linkInterceptor.start(),this.formInterceptor.start()}stop(){this.linkInterceptor.stop(),this.formInterceptor.stop()}shouldInterceptLinkClick(element,url){return this.shouldRedirect(element)}linkClickIntercepted(element,url){var frame=this.findFrameElement(element);frame&&frame.delegate.linkClickIntercepted(element,url)}shouldInterceptFormSubmission(element,submitter){return this.shouldSubmit(element,submitter)}formSubmissionIntercepted(element,submitter){var frame=this.findFrameElement(element,submitter);frame&&(frame.removeAttribute("reloadable"),frame.delegate.formSubmissionIntercepted(element,submitter))}shouldSubmit(form,submitter){var action=getAction(form,submitter),meta=this.element.ownerDocument.querySelector('meta[name="turbo-root"]'),meta=expandURL(null!=(meta=null==meta?void 0:meta.content)?meta:"/");return this.shouldRedirect(form,submitter)&&locationIsVisitable(action,meta)}shouldRedirect(element,submitter){submitter=this.findFrameElement(element,submitter);return!!submitter&&submitter!=element.closest("turbo-frame")}findFrameElement(element,submitter){submitter=(null==submitter?void 0:submitter.getAttribute("data-turbo-frame"))||element.getAttribute("data-turbo-frame");if(submitter&&"_top"!=submitter){element=this.element.querySelector(`#${submitter}:not([disabled])`);if(element instanceof FrameElement)return element}}}class History{constructor(delegate){this.restorationIdentifier=uuid(),this.restorationData={},this.started=!1,this.pageLoaded=!1,this.onPopState=event=>{this.shouldHandlePopState()&&(event=(event.state||{})["turbo"],event&&(this.location=new URL(window.location.href),event=event["restorationIdentifier"],this.restorationIdentifier=event,this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location,event)))},this.onPageLoad=event=>__async$3(this,null,function*(){yield function nextMicrotask(){return Promise.resolve()}(),this.pageLoaded=!0}),this.delegate=delegate}start()stop(){this.started&&(removeEventListener("popstate",this.onPopState,!1),removeEventListener("load",this.onPageLoad,!1),this.started=!1)}push(location2,restorationIdentifier){this.update(history.pushState,location2,restorationIdentifier)}replace(location2,restorationIdentifier){this.update(history.replaceState,location2,restorationIdentifier)}update(method,location2,restorationIdentifier=uuid()){method.call(history,{turbo:{restorationIdentifier:restorationIdentifier}},"",location2.href),this.location=location2,this.restorationIdentifier=restorationIdentifier}getRestorationDataForIdentifier(restorationIdentifier){return this.restorationData[restorationIdentifier]||{}}updateRestorationData(additionalData){var restorationIdentifier=this["restorationIdentifier"],restorationData=this.restorationData[restorationIdentifier];this.restorationData[restorationIdentifier]=Object.assign(Object.assign({},restorationData),additionalData)}assumeControlOfScrollRestoration()relinquishControlOfScrollRestoration(){this.previousScrollRestoration&&(history.scrollRestoration=this.previousScrollRestoration,delete this.previousScrollRestoration)}shouldHandlePopState(){return this.pageIsLoaded()}pageIsLoaded()}class LinkClickObserver{constructor(delegate){this.started=!1,this.clickCaptured=()=>{removeEventListener("click",this.clickBubbled,!1),addEventListener("click",this.clickBubbled,!1)},this.clickBubbled=event=>,this.delegate=delegate}start()(addEventListener("click",this.clickCaptured,!0),this.started=!0)stop(){this.started&&(removeEventListener("click",this.clickCaptured,!0),this.started=!1)}clickEventIsSignificant(event)event.shiftKey)findLinkFromClickTarget(target){if(target instanceof Element)return target.closest("a[href]:not([target^=_]):not([download])")}getLocationForLink(link)}function isAction(action)class Navigator{constructor(delegate){this.delegate=delegate}proposeVisit(location2,options={}){this.delegate.allowsVisitingLocationWithAction(location2,options.action)&&(locationIsVisitable(location2,this.view.snapshot.rootLocation)?this.delegate.visitProposedToLocation(location2,options):window.location.href=location2.toString())}startVisit(locatable,restorationIdentifier,options={}){this.stop(),this.currentVisit=new Visit(this,expandURL(locatable),restorationIdentifier,Object.assign({referrer:this.location},options)),this.currentVisit.start()}submitForm(form,submitter){this.stop(),this.formSubmission=new FormSubmission(this,form,submitter,!0),this.formSubmission.start()}stop(){this.formSubmission&&(this.formSubmission.stop(),delete this.formSubmission),this.currentVisit&&(this.currentVisit.cancel(),delete this.currentVisit)}get adapter(){return this.delegate.adapter}get view(){return this.delegate.view}get history(){return this.delegate.history}formSubmissionStarted(formSubmission){"function"==typeof this.adapter.formSubmissionStarted&&this.adapter.formSubmissionStarted(formSubmission)}formSubmissionSucceededWithResponse(formSubmission,fetchResponse){return __async$3(this,null,function*(){var responseHTML,statusCode,redirected,action;formSubmission==this.formSubmission&&(responseHTML=yield fetchResponse.responseHTML)&&(formSubmission.method!=FetchMethod.get&&this.view.clearSnapshotCache(),{statusCode,redirected}=fetchResponse,action=this.getActionForFormSubmission(formSubmission),this.proposeVisit(fetchResponse.location,{action:action,response:{statusCode:statusCode,responseHTML:responseHTML,redirected:redirected}}))})}formSubmissionFailedWithResponse(formSubmission,fetchResponse){return __async$3(this,null,function*(){var responseHTML=yield fetchResponse.responseHTML;responseHTML&&(responseHTML=PageSnapshot.fromHTMLString(responseHTML),fetchResponse.serverError?yield this.view.renderError(responseHTML):yield this.view.renderPage(responseHTML),this.view.scrollToTop(),this.view.clearSnapshotCache())})}formSubmissionErrored(formSubmission,error){console.error(error)}formSubmissionFinished(formSubmission){"function"==typeof this.adapter.formSubmissionFinished&&this.adapter.formSubmissionFinished(formSubmission)}visitStarted(visit2){this.delegate.visitStarted(visit2)}visitCompleted(visit2){this.delegate.visitCompleted(visit2)}locationWithActionIsSamePage(location2,action)visitScrolledToSamePageLocation(oldURL,newURL){this.delegate.visitScrolledToSamePageLocation(oldURL,newURL)}get location(){return this.history.location}get restorationIdentifier(){return this.history.restorationIdentifier}getActionForFormSubmission(formSubmission){var{formElement:formSubmission,submitter}=formSubmission,submitter=getAttribute("data-turbo-action",submitter,formSubmission);return isAction(submitter)?submitter:"advance"}}(prototype=PageStage=PageStage||{})[prototype.initial=0]="initial",prototype[prototype.loading=1]="loading",prototype[prototype.interactive=2]="interactive",prototype[prototype.complete=3]="complete";class PageObserver{constructor(delegate){this.stage=PageStage.initial,this.started=!1,this.interpretReadyState=()=>{var readyState=this["readyState"];"interactive"==readyState?this.pageIsInteractive():"complete"==readyState&&this.pageIsComplete()},this.pageWillUnload=()=>{this.delegate.pageWillUnload()},this.delegate=delegate}start()(this.stage==PageStage.initial&&(this.stage=PageStage.loading),document.addEventListener("readystatechange",this.interpretReadyState,!1),addEventListener("pagehide",this.pageWillUnload,!1),this.started=!0)stop(){this.started&&(document.removeEventListener("readystatechange",this.interpretReadyState,!1),removeEventListener("pagehide",this.pageWillUnload,!1),this.started=!1)}pageIsInteractive(){this.stage==PageStage.loading&&(this.stage=PageStage.interactive,this.delegate.pageBecameInteractive())}pageIsComplete(){this.pageIsInteractive(),this.stage==PageStage.interactive&&(this.stage=PageStage.complete,this.delegate.pageLoaded())}get readyState(){return document.readyState}}class ScrollObserver{constructor(delegate){this.started=!1,this.onScroll=()=>{this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},this.delegate=delegate}start()stop(){this.started&&(removeEventListener("scroll",this.onScroll,!1),this.started=!1)}updatePosition(position){this.delegate.scrollPositionChanged(position)}}class StreamObserver{constructor(delegate){this.sources=new Set,this.started=!1,this.inspectFetchResponse=event=>{var response=function fetchResponseFromEvent(event){event=null==(event=event.detail)?void 0:event.fetchResponse;if(event instanceof FetchResponse)return event}(event);response&&function fetchResponseIsStream(response){response=null!=(response=response.contentType)?response:"";return response.startsWith(StreamMessage.contentType)}(response)&&(event.preventDefault(),this.receiveMessageResponse(response))},this.receiveMessageEvent=event=>{this.started&&"string"==typeof event.data&&this.receiveMessageHTML(event.data)},this.delegate=delegate}start()stop(){this.started&&(this.started=!1,removeEventListener("turbo:before-fetch-response",this.inspectFetchResponse,!1))}connectStreamSource(source)disconnectStreamSource(source){this.streamSourceIsConnected(source)&&(this.sources.delete(source),source.removeEventListener("message",this.receiveMessageEvent,!1))}streamSourceIsConnected(source){return this.sources.has(source)}receiveMessageResponse(response){return __async$3(this,null,function*(){var html=yield response.responseHTML;html&&this.receiveMessageHTML(html)})}receiveMessageHTML(html){this.delegate.receivedMessageFromStream(new StreamMessage(html))}}class ErrorRenderer extends Renderer{render(){return __async$3(this,null,function*(){this.replaceHeadAndBody(),this.activateScriptElements()})}replaceHeadAndBody(){var{documentElement,head,body}=document;documentElement.replaceChild(this.newHead,head),documentElement.replaceChild(this.newElement,body)}activateScriptElements(){for(const replaceableElement of this.scriptElements){var element,parentNode=replaceableElement.parentNode;parentNode&&(element=this.createScriptElement(replaceableElement),parentNode.replaceChild(element,replaceableElement))}}get newHead(){return this.newSnapshot.headSnapshot.element}get scriptElements(){return[...document.documentElement.querySelectorAll("script")]}}class PageRenderer extends Renderer{get shouldRender(){return this.newSnapshot.isVisitable&&this.trackedElementsAreIdentical}prepareToRender(){this.mergeHead()}render(){return __async$3(this,null,function*(){this.willRender&&this.replaceBody()})}finishRendering()this.focusFirstAutofocusableElement()get currentHeadSnapshot(){return this.currentSnapshot.headSnapshot}get newHeadSnapshot(){return this.newSnapshot.headSnapshot}get newElement(){return this.newSnapshot.element}mergeHead(){this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()}replaceBody(){this.preservingPermanentElements(()=>{this.activateNewBody(),this.assignNewBody()})}get trackedElementsAreIdentical(){return this.currentHeadSnapshot.trackedElementSignature==this.newHeadSnapshot.trackedElementSignature}copyNewHeadStylesheetElements(){for(const element of this.newHeadStylesheetElements)document.head.appendChild(element)}copyNewHeadScriptElements(){for(const element of this.newHeadScriptElements)document.head.appendChild(this.createScriptElement(element))}removeCurrentHeadProvisionalElements(){for(const element of this.currentHeadProvisionalElements)document.head.removeChild(element)}copyNewHeadProvisionalElements(){for(const element of this.newHeadProvisionalElements)document.head.appendChild(element)}activateNewBody(){document.adoptNode(this.newElement),this.activateNewBodyScriptElements()}activateNewBodyScriptElements(){for(const inertScriptElement of this.newBodyScriptElements){var activatedScriptElement=this.createScriptElement(inertScriptElement);inertScriptElement.replaceWith(activatedScriptElement)}}assignNewBody(){document.body&&this.newElement instanceof HTMLBodyElement?document.body.replaceWith(this.newElement):document.documentElement.appendChild(this.newElement)}get newHeadStylesheetElements(){return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot)}get newHeadScriptElements(){return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot)}get currentHeadProvisionalElements(){return this.currentHeadSnapshot.provisionalElements}get newHeadProvisionalElements(){return this.newHeadSnapshot.provisionalElements}get newBodyScriptElements(){return this.newElement.querySelectorAll("script")}}class SnapshotCache{constructor(size){this.keys=[],this.snapshots={},this.size=size}has(location2){return toCacheKey(location2)in this.snapshots}get(location2){var snapshot;if(this.has(location2))return snapshot=this.read(location2),this.touch(location2),snapshot}put(location2,snapshot){return this.write(location2,snapshot),this.touch(location2),snapshot}clear(){this.snapshots={}}read(location2){return this.snapshots[toCacheKey(location2)]}write(location2,snapshot){this.snapshots[toCacheKey(location2)]=snapshot}touch(location2){var location2=toCacheKey(location2),index=this.keys.indexOf(location2);-1<index&&this.keys.splice(index,1),this.keys.unshift(location2),this.trim()}trim(){for(const key of this.keys.splice(this.size))delete this.snapshots[key]}}class PageView extends View{constructor(){super(...arguments),this.snapshotCache=new SnapshotCache(10),this.lastRenderedLocation=new URL(location.href)}renderPage(snapshot,isPreview=!1,willRender=!0){snapshot=new PageRenderer(this.snapshot,snapshot,isPreview,willRender);return this.render(snapshot)}renderError(snapshot){snapshot=new ErrorRenderer(this.snapshot,snapshot,!1);return this.render(snapshot)}clearSnapshotCache(){this.snapshotCache.clear()}cacheSnapshot(){return __async$3(this,null,function*(){var location2,snapshot;if(this.shouldCacheSnapshot)return this.delegate.viewWillCacheSnapshot(),{snapshot,lastRenderedLocation:location2}=this,yield function nextEventLoopTick(){return new Promise(resolve=>setTimeout(()=>resolve(),0))}(),snapshot=snapshot.clone(),this.snapshotCache.put(location2,snapshot),snapshot})}getCachedSnapshotForLocation(location2){return this.snapshotCache.get(location2)}get snapshot(){return PageSnapshot.fromElement(this.element)}get shouldCacheSnapshot(){return this.snapshot.isCacheable}}function extendURLWithDeprecatedProperties(url){Object.defineProperties(url,deprecatedLocationPropertyDescriptors)}const deprecatedLocationPropertyDescriptors={absoluteURL:{get(){return this.toString()}}},session=new class Session{constructor(){this.navigator=new Navigator(this),this.history=new History(this),this.view=new PageView(this,document.documentElement),this.adapter=new BrowserAdapter(this),this.pageObserver=new PageObserver(this),this.cacheObserver=new CacheObserver,this.linkClickObserver=new LinkClickObserver(this),this.formSubmitObserver=new FormSubmitObserver(this),this.scrollObserver=new ScrollObserver(this),this.streamObserver=new StreamObserver(this),this.frameRedirector=new FrameRedirector(document.documentElement),this.drive=!0,this.enabled=!0,this.progressBarDelay=500,this.started=!1}start()(this.pageObserver.start(),this.cacheObserver.start(),this.linkClickObserver.start(),this.formSubmitObserver.start(),this.scrollObserver.start(),this.streamObserver.start(),this.frameRedirector.start(),this.history.start(),this.started=!0,this.enabled=!0)disable(){this.enabled=!1}stop(){this.started&&(this.pageObserver.stop(),this.cacheObserver.stop(),this.linkClickObserver.stop(),this.formSubmitObserver.stop(),this.scrollObserver.stop(),this.streamObserver.stop(),this.frameRedirector.stop(),this.history.stop(),this.started=!1)}registerAdapter(adapter){this.adapter=adapter}visit(location2,options={}){this.navigator.proposeVisit(expandURL(location2),options)}connectStreamSource(source){this.streamObserver.connectStreamSource(source)}disconnectStreamSource(source){this.streamObserver.disconnectStreamSource(source)}renderStreamMessage(message){document.documentElement.appendChild(StreamMessage.wrap(message).fragment)}clearCache(){this.view.clearSnapshotCache()}setProgressBarDelay(delay){this.progressBarDelay=delay}get location(){return this.history.location}get restorationIdentifier(){return this.history.restorationIdentifier}historyPoppedToLocationWithRestorationIdentifier(location2,restorationIdentifier){this.enabled?this.navigator.startVisit(location2,restorationIdentifier,{action:"restore",historyChanged:!0}):this.adapter.pageInvalidated()}scrollPositionChanged(position){this.history.updateRestorationData({scrollPosition:position})}willFollowLinkToLocation(link,location2){return this.elementDriveEnabled(link)&&locationIsVisitable(location2,this.snapshot.rootLocation)&&this.applicationAllowsFollowingLinkToLocation(link,location2)}followedLinkToLocation(link,location2){var action=this.getActionForLink(link);this.convertLinkWithMethodClickToFormSubmission(link)||this.visit(location2.href,{action:action})}convertLinkWithMethodClickToFormSubmission(link){var linkMethod=link.getAttribute("data-turbo-method");if(linkMethod){const form=document.createElement("form");form.method=linkMethod,form.action=link.getAttribute("href")||"undefined",form.hidden=!0,link.hasAttribute("data-turbo-confirm")&&form.setAttribute("data-turbo-confirm",link.getAttribute("data-turbo-confirm"));linkMethod=this.getTargetFrameForLink(link);return linkMethod?(form.setAttribute("data-turbo-frame",linkMethod),form.addEventListener("turbo:submit-start",()=>form.remove())):form.addEventListener("submit",()=>form.remove()),document.body.appendChild(form),dispatch("submit",{cancelable:!0,target:form})}return!1}allowsVisitingLocationWithAction(location2,action)visitProposedToLocation(location2,options){extendURLWithDeprecatedProperties(location2),this.adapter.visitProposedToLocation(location2,options)}visitStarted(visit2)visitCompleted(visit2){this.notifyApplicationAfterPageLoad(visit2.getTimingMetrics())}locationWithActionIsSamePage(location2,action){return this.navigator.locationWithActionIsSamePage(location2,action)}visitScrolledToSamePageLocation(oldURL,newURL){this.notifyApplicationAfterVisitingSamePageLocation(oldURL,newURL)}willSubmitForm(form,submitter)formSubmitted(form,submitter){this.navigator.submitForm(form,submitter)}pageBecameInteractive(){this.view.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()}pageLoaded(){this.history.assumeControlOfScrollRestoration()}pageWillUnload(){this.history.relinquishControlOfScrollRestoration()}receivedMessageFromStream(message){this.renderStreamMessage(message)}viewWillCacheSnapshot()this.notifyApplicationBeforeCachingSnapshot()allowsImmediateRender({element},resume){return!this.notifyApplicationBeforeRender(element,resume).defaultPrevented}viewRenderedSnapshot(snapshot,isPreview){this.view.lastRenderedLocation=this.history.location,this.notifyApplicationAfterRender()}viewInvalidated(){this.adapter.pageInvalidated()}frameLoaded(frame){this.notifyApplicationAfterFrameLoad(frame)}frameRendered(fetchResponse,frame){this.notifyApplicationAfterFrameRender(fetchResponse,frame)}applicationAllowsFollowingLinkToLocation(link,location2){return!this.notifyApplicationAfterClickingLinkToLocation(link,location2).defaultPrevented}applicationAllowsVisitingLocation(location2){return!this.notifyApplicationBeforeVisitingLocation(location2).defaultPrevented}notifyApplicationAfterClickingLinkToLocation(link,location2){return dispatch("turbo:click",{target:link,detail:{url:location2.href},cancelable:!0})}notifyApplicationBeforeVisitingLocation(location2){return dispatch("turbo:before-visit",{detail:{url:location2.href},cancelable:!0})}notifyApplicationAfterVisitingLocation(location2,action){return markAsBusy(document.documentElement),dispatch("turbo:visit",{detail:{url:location2.href,action:action}})}notifyApplicationBeforeCachingSnapshot(){return dispatch("turbo:before-cache")}notifyApplicationBeforeRender(newBody,resume){return dispatch("turbo:before-render",{detail:{newBody:newBody,resume:resume},cancelable:!0})}notifyApplicationAfterRender(){return dispatch("turbo:render")}notifyApplicationAfterPageLoad(timing={}){return clearBusyState(document.documentElement),dispatch("turbo:load",{detail:{url:this.location.href,timing:timing}})}notifyApplicationAfterVisitingSamePageLocation(oldURL,newURL){dispatchEvent(new HashChangeEvent("hashchange",{oldURL:oldURL.toString(),newURL:newURL.toString()}))}notifyApplicationAfterFrameLoad(frame){return dispatch("turbo:frame-load",{target:frame})}notifyApplicationAfterFrameRender(fetchResponse,frame){return dispatch("turbo:frame-render",{detail:{fetchResponse:fetchResponse},target:frame,cancelable:!0})}elementDriveEnabled(element)getActionForLink(link){link=link.getAttribute("data-turbo-action");return isAction(link)?link:"advance"}getTargetFrameForLink(link)get snapshot(){return this.view.snapshot}};var prototype=session["navigator"];function start(){session.start()}function registerAdapter(adapter){session.registerAdapter(adapter)}function visit(location2,options){session.visit(location2,options)}function connectStreamSource(source){session.connectStreamSource(source)}function disconnectStreamSource(source){session.disconnectStreamSource(source)}function renderStreamMessage(message){session.renderStreamMessage(message)}function clearCache(){session.clearCache()}function setProgressBarDelay(delay){session.setProgressBarDelay(delay)}function setConfirmMethod(confirmMethod){FormSubmission.confirmMethod=confirmMethod}var Turbo=Object.freeze({__proto__:null,navigator:prototype,session:session,PageRenderer:PageRenderer,PageSnapshot:PageSnapshot,start:start,registerAdapter:registerAdapter,visit:visit,connectStreamSource:connectStreamSource,disconnectStreamSource:disconnectStreamSource,renderStreamMessage:renderStreamMessage,clearCache:clearCache,setProgressBarDelay:setProgressBarDelay,setConfirmMethod:setConfirmMethod});class SnapshotSubstitution{constructor(element){this.visitCachedSnapshot=({element:element2})=>{var{id,clone}=this;null!=(element2=element2.querySelector("#"+id))&&element2.replaceWith(clone)},this.clone=element.cloneNode(!0),this.id=element.id}}function getFrameElementById(id){if(null!=id){id=document.getElementById(id);if(id instanceof FrameElement)return id}}function activateElement(element,currentURL){if(element){var src=element.getAttribute("src");if(null!=src&&null!=currentURL&&function urlsAreEqual(left,right){return expandURL(left).href==expandURL(right).href}(src,currentURL))throw new Error(`Matching <turbo-frame id="${element.id}"> element has a source URL which references itself`);if((element=element.ownerDocument!==document?document.importNode(element,!0):element)instanceof FrameElement)return element.connectedCallback(),element.disconnectedCallback(),element}}const StreamActions={after(){this.targetElements.forEach(e=>{var _a;return null==(_a=e.parentElement)?void 0:_a.insertBefore(this.templateContent,e.nextSibling)})},append(){this.removeDuplicateTargetChildren(),this.targetElements.forEach(e=>e.append(this.templateContent))},before(){this.targetElements.forEach(e=>{var _a;return null==(_a=e.parentElement)?void 0:_a.insertBefore(this.templateContent,e)})},prepend(){this.removeDuplicateTargetChildren(),this.targetElements.forEach(e=>e.prepend(this.templateContent))},remove(){this.targetElements.forEach(e=>e.remove())},replace(){this.targetElements.forEach(e=>e.replaceWith(this.templateContent))},update(){this.targetElements.forEach(e=>{e.innerHTML="",e.append(this.templateContent)})}};class StreamElement extends HTMLElement{connectedCallback(){return __async$3(this,null,function*(){try{yield this.render()}catch(error){console.error(error)}finally{this.disconnect()}})}render(){return __async$3(this,null,function*(){var _a;return null!=(_a=this.renderPromise)?_a:this.renderPromise=__async$3(this,null,function*(){this.dispatchEvent(this.beforeRenderEvent)&&(yield nextAnimationFrame(),this.performAction())})})}disconnect(){try{this.remove()}catch(_a){}}removeDuplicateTargetChildren(){this.duplicateChildren.forEach(c=>c.remove())}get duplicateChildren(){var _a,existingChildren=this.targetElements.flatMap(e=>[...e.children]).filter(c=>!!c.id);const newChildrenIds=[...null==(_a=this.templateContent)?void 0:_a.children].filter(c=>!!c.id).map(c=>c.id);return existingChildren.filter(c=>newChildrenIds.includes(c.id))}get performAction(){if(this.action){var actionFunction=StreamActions[this.action];if(actionFunction)return actionFunction;this.raise("unknown action")}this.raise("action attribute is missing")}get targetElements(){return this.target?this.targetElementsById:this.targets?this.targetElementsByQuery:void this.raise("target or targets attribute is missing")}get templateContent(){return this.templateElement.content.cloneNode(!0)}get templateElement(){if(this.firstElementChild instanceof HTMLTemplateElement)return this.firstElementChild;this.raise("first child element must be a <template> element")}get action(){return this.getAttribute("action")}get target(){return this.getAttribute("target")}get targets(){return this.getAttribute("targets")}raise(message){throw new Error(this.description+": "+message)}get description(){var _a;return null!=(_a=(null!=(_a=this.outerHTML.match(/<[^>]+>/))?_a:[])[0])?_a:"<turbo-stream>"}get beforeRenderEvent(){return new CustomEvent("turbo:before-stream-render",{bubbles:!0,cancelable:!0})}get targetElementsById(){var _a=null==(_a=this.ownerDocument)?void 0:_a.getElementById(this.target);return null!==_a?[_a]:[]}get targetElementsByQuery(){var _a=null==(_a=this.ownerDocument)?void 0:_a.querySelectorAll(this.targets);return 0!==_a.length?Array.prototype.slice.call(_a):[]}}FrameElement.delegateConstructor=class FrameController{constructor(element){this.fetchResponseLoaded=fetchResponse=>{},this.currentFetchRequest=null,this.resolveVisitPromise=()=>{},this.connected=!1,this.hasBeenLoaded=!1,this.settingSourceURL=!1,this.element=element,this.view=new FrameView(this,this.element),this.appearanceObserver=new AppearanceObserver(this,this.element),this.linkInterceptor=new LinkInterceptor(this,this.element),this.formInterceptor=new FormInterceptor(this,this.element)}connect()(this.connected=!0,this.reloadable=!1,this.loadingStyle==FrameLoadingStyle.lazy&&this.appearanceObserver.start(),this.linkInterceptor.start(),this.formInterceptor.start(),this.sourceURLChanged())disconnect(){this.connected&&(this.connected=!1,this.appearanceObserver.stop(),this.linkInterceptor.stop(),this.formInterceptor.stop())}disabledChanged(){this.loadingStyle==FrameLoadingStyle.eager&&this.loadSourceURL()}sourceURLChanged()this.loadSourceURL()loadingStyleChanged(){this.loadingStyle==FrameLoadingStyle.lazy?this.appearanceObserver.start():(this.appearanceObserver.stop(),this.loadSourceURL())}loadSourceURL(){return __async$3(this,null,function*(){if(!this.settingSourceURL&&this.enabled&&this.isActive&&(this.reloadable||this.sourceURL!=this.currentURL)){var previousURL=this.currentURL;if(this.currentURL=this.sourceURL,this.sourceURL)try{this.element.loaded=this.visit(expandURL(this.sourceURL)),this.appearanceObserver.stop(),yield this.element.loaded,this.hasBeenLoaded=!0}catch(error){throw this.currentURL=previousURL,error}}})}loadResponse(fetchResponse){return __async$3(this,null,function*(){(fetchResponse.redirected||fetchResponse.succeeded&&fetchResponse.isHTML)&&(this.sourceURL=fetchResponse.response.url);try{var body,snapshot,renderer,html=yield fetchResponse.responseHTML;html&&(body=parseHTMLDocument(html)["body"],snapshot=new Snapshot(yield this.extractForeignFrameElement(body)),renderer=new FrameRenderer(this.view.snapshot,snapshot,!1,!1),this.view.renderPromise&&(yield this.view.renderPromise),yield this.view.render(renderer),session.frameRendered(fetchResponse,this.element),session.frameLoaded(this.element),this.fetchResponseLoaded(fetchResponse))}catch(error){console.error(error),this.view.invalidate()}finally{this.fetchResponseLoaded=()=>{}}})}elementAppearedInViewport(element){this.loadSourceURL()}shouldInterceptLinkClick(element,url){return!element.hasAttribute("data-turbo-method")&&this.shouldInterceptNavigation(element)}linkClickIntercepted(element,url){this.reloadable=!0,this.navigateFrame(element,url)}shouldInterceptFormSubmission(element,submitter){return this.shouldInterceptNavigation(element,submitter)}formSubmissionIntercepted(element,submitter){this.formSubmission&&this.formSubmission.stop(),this.reloadable=!1,this.formSubmission=new FormSubmission(this,element,submitter);element=this.formSubmission.fetchRequest;this.prepareHeadersForRequest(element.headers,element),this.formSubmission.start()}prepareHeadersForRequest(headers,request){headers["Turbo-Frame"]=this.id}requestStarted(request){markAsBusy(this.element)}requestPreventedHandlingResponse(request,response){this.resolveVisitPromise()}requestSucceededWithResponse(request,response){return __async$3(this,null,function*(){yield this.loadResponse(response),this.resolveVisitPromise()})}requestFailedWithResponse(request,response){console.error(response),this.resolveVisitPromise()}requestErrored(request,error){console.error(error),this.resolveVisitPromise()}requestFinished(request){clearBusyState(this.element)}formSubmissionStarted({formElement}){markAsBusy(formElement,this.findFrameElement(formElement))}formSubmissionSucceededWithResponse(formSubmission,response){var frame=this.findFrameElement(formSubmission.formElement,formSubmission.submitter);this.proposeVisitIfNavigatedWithAction(frame,formSubmission.formElement,formSubmission.submitter),frame.delegate.loadResponse(response)}formSubmissionFailedWithResponse(formSubmission,fetchResponse){this.element.delegate.loadResponse(fetchResponse)}formSubmissionErrored(formSubmission,error){console.error(error)}formSubmissionFinished({formElement}){clearBusyState(formElement,this.findFrameElement(formElement))}allowsImmediateRender(snapshot,resume){return!0}viewRenderedSnapshot(snapshot,isPreview){}viewInvalidated(){}visit(url){return __async$3(this,null,function*(){var _a;const request=new FetchRequest(this,FetchMethod.get,url,new URLSearchParams,this.element);return null!=(_a=this.currentFetchRequest)&&_a.cancel(),this.currentFetchRequest=request,new Promise(resolve=>{this.resolveVisitPromise=()=>{this.resolveVisitPromise=()=>{},this.currentFetchRequest=null,resolve()},request.perform()})})}navigateFrame(element,url,submitter){var frame=this.findFrameElement(element,submitter);this.proposeVisitIfNavigatedWithAction(frame,element,submitter),frame.setAttribute("reloadable",""),frame.src=url}proposeVisitIfNavigatedWithAction(frame,element,submitter){const action=getAttribute("data-turbo-action",submitter,element,frame);if(isAction(action)){const visitCachedSnapshot=new SnapshotSubstitution(frame)["visitCachedSnapshot"];frame.delegate.fetchResponseLoaded=fetchResponse=>{var redirected;frame.src&&({statusCode:fetchResponse,redirected}=fetchResponse,fetchResponse={statusCode:fetchResponse,redirected:redirected,responseHTML:frame.ownerDocument.documentElement.outerHTML},session.visit(frame.src,{action:action,response:fetchResponse,visitCachedSnapshot:visitCachedSnapshot,willRender:!1}))}}}findFrameElement(element,submitter)extractForeignFrameElement(container){return __async$3(this,null,function*(){var element,id=CSS.escape(this.id);try{if(element=activateElement(container.querySelector("turbo-frame#"+id),this.currentURL))return element;if(element=activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`),this.currentURL))return yield element.loaded,yield this.extractForeignFrameElement(element);console.error(`Response has no matching <turbo-frame id="${id}"> element`)}catch(error){console.error(error)}return new FrameElement})}formActionIsVisitable(form,submitter){return locationIsVisitable(expandURL(getAction(form,submitter)),this.rootLocation)}shouldInterceptNavigation(element,submitter){var id=getAttribute("data-turbo-frame",submitter,element)||this.element.getAttribute("target");if(element instanceof HTMLFormElement&&!this.formActionIsVisitable(element,submitter))return!1;if(!this.enabled||"_top"==id)return!1;if(id){id=getFrameElementById(id);if(id)return!id.disabled}return!!session.elementDriveEnabled(element)&&!(submitter&&!session.elementDriveEnabled(submitter))}get id(){return this.element.id}get enabled(){return!this.element.disabled}get sourceURL(){if(this.element.src)return this.element.src}get reloadable(){return this.findFrameElement(this.element).hasAttribute("reloadable")}set reloadable(value){var frame=this.findFrameElement(this.element);value?frame.setAttribute("reloadable",""):frame.removeAttribute("reloadable")}set sourceURL(sourceURL){this.settingSourceURL=!0,this.element.src=null!=sourceURL?sourceURL:null,this.currentURL=this.element.src,this.settingSourceURL=!1}get loadingStyle(){return this.element.loading}get isLoading()void 0!==this.resolveVisitPromise()get isActive(){return this.element.isActive&&this.connected}get rootLocation(){var meta=this.element.ownerDocument.querySelector('meta[name="turbo-root"]');return expandURL(null!=(meta=null==meta?void 0:meta.content)?meta:"/")}},customElements.define("turbo-frame",FrameElement),customElements.define("turbo-stream",StreamElement),(()=>{let element=document.currentScript;if(element&&!element.hasAttribute("data-turbo-suppress-warning"))for(;element=element.parentElement;)if(element==document.body)return console.warn(unindent` You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do! Load your application’s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change. For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements —— Suppress this warning by adding a "data-turbo-suppress-warning" attribute to: %s `,element.outerHTML)})(),window.Turbo=Turbo,start();Turbo=Object.freeze({__proto__:null,PageRenderer:PageRenderer,PageSnapshot:PageSnapshot,clearCache:clearCache,connectStreamSource:connectStreamSource,disconnectStreamSource:disconnectStreamSource,navigator:prototype,registerAdapter:registerAdapter,renderStreamMessage:renderStreamMessage,session:session,setConfirmMethod:setConfirmMethod,setProgressBarDelay:setProgressBarDelay,start:start,visit:visit});function createSingleton(removeOnTurboVisit=!1){return function(target,name,descriptor){const original=descriptor.value;return descriptor.value=(...args)=>{var _a;window.DFX_SINGLETONS=null!=(_a=window.DFX_SINGLETONS)?_a:{};const instanceId=target.prototype.constructor.name+":"+name;if(removeOnTurboVisit){const turboCallback=()=>{window.DFX_SINGLETONS[instanceId]&&(window.DFX_SINGLETONS[instanceId]=null),document.removeEventListener("turbo:visit",turboCallback)};document.addEventListener("turbo:visit",turboCallback)}return window.DFX_SINGLETONS[instanceId]||(_a=original.apply(this,args),Object.defineProperty(window.DFX_SINGLETONS,instanceId,{value:_a,writable:!0}),_a)},descriptor}}class DfxLocalStorageCookieManager{constructor(localStorage){this.localStorage=localStorage,this.localStorage=localStorage;try{this.localStorage.setItem("test","test"),this.localStorage.removeItem("test"),this.isLocalStorageAvailable=!0}catch(e){this.isLocalStorageAvailable=!1}}getCookie(name){return(name=name&&document.cookie.match(new RegExp(`(?:^|; )${name.replace(/([.$?*|{}()[]/+^])/g,"$1")}=([^;]*)`)))?decodeURIComponent(name[1]):void 0}setCookie(name,value,expires,domain,secure=!0){let cookieString=name+"="+value;"string"==typeof expires&&(cookieString+=";expires="+expires),"string"==typeof domain&&(cookieString+=";domain="+domain),cookieString+="; path=/",secure&&"https:"===location.protocol&&(cookieString+="; secure"),document.cookie=cookieString}deleteCookie(name){this.setCookie(name,"","Thu, 01 Jan 1970 00:00:00 UTC")}getLocalStorageOrCookie(name){var _a;return this.isLocalStorageAvailable&&null!=(_a=this.localStorage.getItem(name))?_a:this.getCookie(name)}setLocalStorageOrCookie(name,value,expires,domain){this.isLocalStorageAvailable?this.localStorage.setItem(name,value):this.setCookie(name,value,expires,domain)}deleteLocalStorageOrCookie(name){this.isLocalStorageAvailable?this.localStorage.removeItem(name):this.deleteCookie(name)}}var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor;class DfxLocalStorageCookieManagerFactory{static create(){return new DfxLocalStorageCookieManager(window.localStorage)}}((decorators,target,key,kind)=>)([createSingleton()],DfxLocalStorageCookieManagerFactory,"create",1);class DfxGdprChecker{constructor(dfxLocalStorageCookieManager){this.dfxLocalStorageCookieManager=dfxLocalStorageCookieManager}getLevel()checkLevel(level){return this.getLevel()>=level}normalizeValue(value){let intValue=parseInt(value);return intValue=isNaN(intValue)?3:intValue}}var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor;class DfxGdprCheckerFactory{static create(){return new DfxGdprChecker(DfxLocalStorageCookieManagerFactory.create())}}((decorators,target,key,kind)=>result);kind&&result&&__defProp$4(target,key,result))([createSingleton()],DfxGdprCheckerFactory,"create",1);var __async$2=(__this,__arguments,generator)=>new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});const COUNTRIES_TO_REPLACE_MAP=new Map([["GB","UK"]]);class DfxGeoLocation{constructor(geoJsUrl,dfxLocalStorageCookieManager){this.geoJsUrl=geoJsUrl,this.dfxLocalStorageCookieManager=dfxLocalStorageCookieManager}init(){return __async$2(this,null,function*(){var redirectData=yield this.getRedirectData();COUNTRIES_TO_REPLACE_MAP.has(redirectData.country)&&(redirectData.country=COUNTRIES_TO_REPLACE_MAP.get(redirectData.country)),this.redirectData=redirectData,this.setBodyClasses().setLocationToStorage()})}getRedirectData(){return __async$2(this,null,function*()((redirectData=this.getLocationFromStorage())?(this.redirectData=redirectData,this.redirectData):this.loadRedirectData()))}loadRedirectData(){return new Promise(resolve=>{var script=document.createElement("script");script.onload=()=>{this.redirectData=window.redirectData,resolve(this.redirectData)},script.setAttribute("src",this.geoJsUrl),document.head.appendChild(script)})}setBodyClasses(){const countryCode=this.redirectData.country.toLowerCase();return document.body?(document.body.classList.remove("dfx-country-pending"),document.body.classList.add("dfx-country-"+countryCode)):document.addEventListener("DOMContentLoaded",()=>{document.body.classList.remove("dfx-country-pending"),document.body.classList.add("dfx-country-"+countryCode)},!1),this}getLocationFromStorage(){var expiresIn=this.dfxLocalStorageCookieManager.getLocalStorageOrCookie("dfx-redirectData_expiresIn");return!!(expiresIn&&parseInt(expiresIn)>Date.now())&&JSON.parse(null!=(expiresIn=this.dfxLocalStorageCookieManager.getLocalStorageOrCookie("dfx-redirectData"))?expiresIn:"false")}setLocationToStorage(){var date=new Date;return date.setTime(date.getTime()+6048e5),this.dfxLocalStorageCookieManager.setLocalStorageOrCookie("dfx-redirectData",JSON.stringify(this.redirectData),date.toUTCString()),this.dfxLocalStorageCookieManager.setLocalStorageOrCookie("dfx-redirectData_expiresIn",""+date.getTime(),date.toUTCString()),this}}var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor;class DfxGeoLocationFactory{static create(){return new DfxGeoLocation(window.DFX_ENDPOINTS.geoJs,DfxLocalStorageCookieManagerFactory.create())}}((decorators,target,key,kind)=>result);kind&&result&&__defProp$3(target,key,result))([createSingleton()],DfxGeoLocationFactory,"create",1);const STATES={OFF:"off",LOADING:"loading",READY:"ready"},TRACKINGS={FACEBOOK_PIXEL:"pixel",GPT:"GPT",GTM:"GTM",TABOOLA_PIXEL:"taboola_pixel",BAIDU:"baidu",TWITTER_PIXEL:"twitter_pixel"};class DfxThirdPartyManager{constructor(dfxGdprChecker,dfxLocalStorageCookieManager,facebookPixelId,tagManagerId,tagManagerParams,taboolaPixelId,allowedTrackingsConfig,config){this.config=config,this.allowedTrackingsConfig=allowedTrackingsConfig,this.dfxGdprChecker=dfxGdprChecker,this.dfxLocalStorageCookieManager=dfxLocalStorageCookieManager,this.facebookPixelId=facebookPixelId,this.tagManagerId=tagManagerId,this.tagManagerParams=tagManagerParams,this.taboolaPixelId=taboolaPixelId,this._setDefaultStates()._resetAssetClasses()._resetInstruments()._resetCategories(),document.addEventListener("turbo:visit",()=>{this._resetAssetClasses()._resetInstruments()._resetCategories()})}_setDefaultStates(){return this.baiduState=STATES.OFF,this.pixelState=STATES.OFF,this.gptState=STATES.OFF,this.gtmState=STATES.OFF,this.taboolaState=STATES.OFF,this}_resetInstruments(){return this.gptInstrumentPairs=new Set,this}_resetCategories(){return this.gptCategories={category:"",subCategory:""},this}_resetAssetClasses(){return this.gptAssetClasses=new Set,this}createFacebookPixel(){var loadCallback,b,e,n,f;return this.dfxGdprChecker.checkLevel(3)&&this.allowedTrackingsConfig[TRACKINGS.FACEBOOK_PIXEL]&&this.pixelState===STATES.OFF&&(this.pixelState=STATES.LOADING,loadCallback=()=>{this.pixelState=STATES.READY},f=window,b=document,e="script",f.fbq||(n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)},f._fbq||(f._fbq=n),(n.push=n).loaded=!0,n.version="2.0",n.queue=[],(f=b.createElement(e)).async=!0,f.onload=loadCallback,f.src="https://connect.facebook.net/en_US/fbevents.js",(loadCallback=b.getElementsByTagName(e)[0]).parentNode.insertBefore(f,loadCallback)),this.fbq=window.fbq,this.fbq("init",this.facebookPixelId)),this}facebookPixelTrack(type){return this.dfxGdprChecker.checkLevel(3)&&this.allowedTrackingsConfig[TRACKINGS.FACEBOOK_PIXEL]&&(this.pixelState===STATES.OFF&&this.createFacebookPixel(),this.fbq("track",type)),this}facebookPixelTrackPageView(){return this.dfxGdprChecker.checkLevel(3)&&this.facebookPixelTrack("PageView"),this}facebookPixelTrackLead(){return this.dfxGdprChecker.checkLevel(3)&&this.facebookPixelTrack("Lead"),this}createGTM(){if(this.dfxGdprChecker.checkLevel(1)&&this.allowedTrackingsConfig[TRACKINGS.GTM]&&this.gtmState===STATES.OFF){this.gtmState=STATES.LOADING;const scriptOnload=()=>{this.gtmState=STATES.READY};var w=window,d=document,s="script",l="dataLayer",i=this.tagManagerId,p=this.tagManagerParams;w[l]=w[l]||[],w[l].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),w=d.getElementsByTagName(s)[0],(l=d.createElement(s)).async=!0,l.src="https://www.googletagmanager.com/gtm.js?id="+i+p,l.onload=scriptOnload,w.parentNode.insertBefore(l,w)}return this}createTwitterPixel(){var n,s,e,t;return this.dfxGdprChecker.checkLevel(3)&&this.allowedTrackingsConfig[TRACKINGS.TWITTER_PIXEL]&&(e=window,t=document,n="script",e.twq||((s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments)}).version="1.1",s.queue=[],(e=t.createElement(n)).async=!0,e.src="https://static.ads-twitter.com/uwt.js",(t=t.getElementsByTagName(n)[0]).parentNode.insertBefore(e,t)),twq("init","o92un"),twq("track","PageView")),this}createGPT(){if(this.dfxGdprChecker.checkLevel(1)&&this.allowedTrackingsConfig[TRACKINGS.GPT]&&this.gptState===STATES.OFF){this.gptState=STATES.LOADING;const scriptOnload=()=>{this.gptState=STATES.READY};var gads,useSSL,googletag=window.googletag||{cmd:[]};(gads=document.createElement("script")).async=!0,gads.type="text/javascript",useSSL="https:"===document.location.protocol,gads.src=(useSSL?"https:":"http:")+"//www.googletagservices.com/tag/js/gpt.js",gads.onload=scriptOnload,(useSSL=document.getElementsByTagName("script")[0]).parentNode.insertBefore(gads,useSSL),window.googletag=window.googletag||googletag}return this}trackGTMpageLoadEvent(){return this.dfxGdprChecker.checkLevel(1)&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"turboPageView",virtualUrl:window.location.pathname})),this}createBaiduTracking(){var s,hm,curProtocol;return this.dfxGdprChecker.checkLevel(2)&&this.allowedTrackingsConfig[TRACKINGS.BAIDU]&&this.baiduState!==STATES.READY&&((hm=document.createElement("script")).src="https://hm.baidu.com/hm.js?961aa7f85d30d676f24a6f928c035b90",(s=document.getElementsByTagName("script")[0]).parentNode.insertBefore(hm,s),hm=document.createElement("script"),curProtocol=window.location.protocol.split(":")[0],hm.src="https"===curProtocol?"https://zz.bdstatic.com/linksubmit/push.js":"http://push.zhanzhang.baidu.com/push.js",(curProtocol=document.getElementsByTagName("script")[0]).parentNode.insertBefore(hm,curProtocol),this.baiduState=STATES.READY),this}addGptAssetClasses(assetClasses){if(Array.isArray(assetClasses))return assetClasses.forEach(assetClass=>this.gptAssetClasses.add(assetClass)),this;throw new TypeError("Param assetClasses must be an Array")}addGptInstrumentPairs(pairs){if(Array.isArray(pairs))return pairs.forEach(assetClass=>this.gptInstrumentPairs.add(assetClass)),this;throw new TypeError("Param pairs must be an Array")}addGptCategories(category="",subCategory=""){this.gptCategories={category:category,subCategory:subCategory}}getGptAssetClasses(){return this.gptAssetClasses}getGptInstrumentPairs(){return this.gptInstrumentPairs}getGptCategory(){return this.gptCategories.category}getGptSubCategory(){return this.gptCategories.subCategory}createTaboolaPixel(){if(this.dfxGdprChecker.checkLevel(3)&&this.allowedTrackingsConfig[TRACKINGS.TABOOLA_PIXEL]&&this.taboolaState===STATES.OFF){this.taboolaState=STATES.LOADING;const scriptOnload=()=>{this.taboolaState=STATES.READY};var t,f,x;window._tfa=window._tfa||[],window._tfa.push({notify:"event",name:"page_view",id:this.taboolaPixelId}),this.tfa=window._tfa,t=document.createElement("script"),f=document.getElementsByTagName("script")[0],x="tb_tfa_script",document.getElementById(x)||(t.async=1,t.src="https://cdn.taboola.com/libtrc/unip/1350268/tfa.js",t.id=x,t.onload=scriptOnload,f.parentNode.insertBefore(t,f))}return this}taboolaPixelTrack(eventName){return this.dfxGdprChecker.checkLevel(3)&&this.allowedTrackingsConfig[TRACKINGS.TABOOLA_PIXEL]&&(this.pixelState===STATES.OFF&&this.createTaboolaPixel(),this.tfa.push({notify:"event",name:eventName,id:this.taboolaPixelId})),this}}class DfxConfig{constructor(config){this.config=config}get(key){return this.config.get(key)}set(key,value)}var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor;class DfxConfigFactory{static create(){var mergedConfig=Object.assign({},window.DFX_CONFIG,window.DFX_ENDPOINTS),mergedConfig=new Map(Object.entries(mergedConfig));return new DfxConfig(mergedConfig)}}((decorators,target,key,kind)=>)([createSingleton()],DfxConfigFactory,"create",1);var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor;class DfxThirdPartyManagerFactory{static create(allowedTrackingsConfig,config=window.DFX_CONFIG){var dfxConfig=DfxConfigFactory.create();return new DfxThirdPartyManager(DfxGdprCheckerFactory.create(),DfxLocalStorageCookieManagerFactory.create(),dfxConfig.get("facebookPixelId"),dfxConfig.get("tagManagerId"),dfxConfig.get("tagManagerParams"),dfxConfig.get("taboolaPixelId"),allowedTrackingsConfig,config)}}((decorators,target,key,kind)=>)([createSingleton()],DfxThirdPartyManagerFactory,"create",1);class DfxFonts{constructor(document){this.document=document,this.document.fonts&&(this.document.documentElement.classList.add("dfx-fonts-loading"),this.removeFontsLoading())}removeFontsLoading(){return __this=this,__arguments=null,generator=function*(){yield this.document.fonts.ready,this.document.documentElement.classList.remove("dfx-fonts-loading")},new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});var __this,__arguments,generator}}var prototype=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor;class DfxFontsFactory{static create(){return new DfxFonts(document)}}for(var decorator,decorators=[createSingleton()],target=DfxFontsFactory,key="create",kind=1,result=1<kind?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1;0<=i;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);kind&&result&&prototype(target,key,result);"undefined"==typeof process&&Object.defineProperty(window,"process",{value:{env:{NODE_ENV:"production"}},writable:!0}),DfxFontsFactory.create();__getOwnPropDesc=DfxGdprCheckerFactory.create();const loadScripts=()=>{return __this=window,__arguments=null,generator=function*(){try{var noscript=document.querySelector("noscript.jsdfx-script");if(noscript){const imports=yield window.System.import(noscript.getAttribute("data-src"));Object.keys(imports).forEach(key=>{window[key]=imports[key]}),window.runStacked()}}catch(error){console.error(error)}},new Promise((resolve,reject)=>{var fulfilled=value=>{try{step(generator.next(value))}catch(e){reject(e)}},rejected=value=>{try{step(generator.throw(value))}catch(e){reject(e)}},step=x=>x.done?resolve(x.value):Promise.resolve(x.value).then(fulfilled,rejected);step((generator=generator.apply(__this,__arguments)).next())});var __this,__arguments,generator};document.addEventListener("turbo:load",()=>loadScripts()),window.turbo=Turbo,start(),DfxGeoLocationFactory.create().init(),exports.DfxGdprChecker=__getOwnPropDesc,exports.DfxGdprCheckerFactory=DfxGdprCheckerFactory,exports.DfxGeoLocationFactory=DfxGeoLocationFactory,exports.DfxThirdPartyManagerFactory=DfxThirdPartyManagerFactory,Object.defineProperty(exports,"__esModule",{value:!0})}(this.window=this.window||{}); </script> <br>[ad_2] <br><a href="https://news.google.com/__i/rss/rd/articles/CBMieWh0dHBzOi8vd3d3LmRhaWx5ZnguY29tL2FuYWx5c2lzL2JpdGNvaW4tYnRjLWV0aGVyZXVtLWV0aC13ZWVrbHktZm9yZWNhc3QtcG90ZW50aWFsLXNob3J0LXRlcm0tYm91bmNlLWFoZWFkLTIwMjIxMTI2Lmh0bWzSAX1odHRwczovL3d3dy5kYWlseWZ4LmNvbS9hbmFseXNpcy9iaXRjb2luLWJ0Yy1ldGhlcmV1bS1ldGgtd2Vla2x5LWZvcmVjYXN0LXBvdGVudGlhbC1zaG9ydC10ZXJtLWJvdW5jZS1haGVhZC0yMDIyMTEyNi5odG1sL2FtcA?oc=5">Source link </a>