let msgMagicHashDigest,v_btc,r_btc,s_btc,sig,messageHash,btcPublicKey,ordAddress,provider,chainId,ethAddress,enableQG,tipCreator,introMsg,ethContractAddress,ethContractSymbol,targetChainName,ethMsg,quark20Msg,targetChainId,targetChainRPC,targetChainExplorer,targetChainCurrencyName,targetChainCurrencySymbol,enableApp,enableRecursion,tipSatAmount,parcelHighLight,sid,ethContracAbi,isHolder,currentTextInscription,canInscribe,balanceInscriber,serverUrl0,serverUrl1,computedEthAddressFromPubkey,selfSat,characterCount=0,word="",wordContext="";const quarkLogoInscription="a0f1089d6871763d1368f60aeb7ccb60614e34f8595a39d85957ba30f999693ei0",qAIColor="#AFDBF5",ownerOverride=!1,initGate=async()=>{serverUrl0="",serverUrl1="",document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;";const e=document.createElement("div");e.setAttribute("id","atomView");const t=document.createElement("div");t.setAttribute("id","overlay0"),t.style="position: absolute;width: 100% !important;height: 100% !important;display: block;z-index: 9;";const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width","100%"),n.setAttribute("height","100%"),n.setAttribute("viewBox","0 0 4096 4096");const r=document.createElementNS("http://www.w3.org/2000/svg","animateTransform");r.setAttribute("attributeType","xml"),r.setAttribute("attributeName","transform"),r.setAttribute("type","translate"),r.setAttribute("values","0,0; 0,5; 0,10; 0,5; 0,0"),r.setAttribute("keyTimes","0; 0.25; 0.5; 0.75; 1"),r.setAttribute("dur","7s"),r.setAttribute("repeatCount","indefinite"),r.setAttribute("calcMode","spline"),r.setAttribute("keySplines",".42 0 .58 1; .42 0 .58 1; .42 0 .58 1; .42 0 .58 1");const i=document.createElementNS("http://www.w3.org/2000/svg","g");i.setAttribute("transform","translate(520 500) scale(25 25)"),i.setAttribute("fill","#FEFFFE");const o=(e,t)=>{const n=document.createElementNS("http://www.w3.org/2000/svg","circle");n.setAttribute("cx",`${e}`),n.setAttribute("cy",`${t}`),n.setAttribute("r","2.5"),i.append(n)},a=10.7,s=6.8;o(70.7,66.8);for(let e=0;e<7;e++)o(20+10*e+a,26.8),o(30.7,30+10*e+s),o(90.7,30+10*e+s),o(20+10*e+a,96.8);const d=document.createElementNS("http://www.w3.org/2000/svg","g");d.setAttribute("transform","translate(520 500) scale(25 25)"),d.setAttribute("fill","#FEFFFE");const l=document.createElementNS("http://www.w3.org/2000/svg","circle");l.setAttribute("cx","80.7"),l.setAttribute("cy","66.8"),l.setAttribute("r","2.5"),d.append(l),l.append(r),n.append(i),n.append(d),t.append(n),e.append(t);const c=document.createElement("canvas");c.setAttribute("id","atomCanvas"),e.append(c),document.body.appendChild(e),document.getElementById("atomCanvas").width=window.innerWidth,document.getElementById("atomCanvas").height=window.innerHeight;const m=await fetch("/content/d94a775355aa322080db915da5eaee0b60fb5fd1464c170e67375e8487741a08i0"),p=document.createElement("script");p.innerHTML=decodeURIComponent(escape(atob(await m.text()))),document.body.appendChild(p),window.enableApp=window.fullScreen||window.innerWidth==screen.width||window.innerWidth>=1024&&screen.width>=1024,window.enableRecursion=window.innerWidth>=576&&screen.width>=576,maing(Math.floor(4*Math.random()),Math.floor(4*Math.random()),Math.floor(4*Math.random()),1337,Math.floor(4*Math.random()),Math.floor(40*Math.random())+10);const u=await fetch(`${serverUrl1}/r/sat/717782965662484/at/-1`).then((e=>e.json())),y=await fetch(`${serverUrl1}/content/${u.id}`).then((async e=>JSON.parse(decodeURIComponent(escape(atob(await e.text()))))));window.enableQG=y.enableQG;const h=!(!window.enableQG||!window.enableApp||!window.ethereum&&!window.XverseProviders);if(h){const e=h&&await fetch(`${serverUrl1}/content/a9f6a9b050af3de1a4ce714978c1f2231ba731f1f46731a16d0e411f89308566i0`),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t);const n=h&&await fetch(`${serverUrl1}/r/sat/717782964530533/at/-1`).then((e=>e.json())),r=h&&await fetch(`${serverUrl1}/content/${n.id}`),i=document.createElement("script");i.innerHTML=decodeURIComponent(escape(atob(await r.text()))),document.body.appendChild(i);const o=h&&await fetch(`${serverUrl1}/r/sat/717782964480455/at/-1`).then((e=>e.json())),a=h&&await fetch(`${serverUrl1}/content/${o.id}`).then((async e=>JSON.parse(decodeURIComponent(escape(atob(await e.text())))))),s=await fetch(`${serverUrl1}/r/sat/717782965123423/at/-1`).then((e=>e.json())),d=await fetch(`${serverUrl1}/content/${s.id}`).then((async e=>atob(await e.text())));enableQG=y.enableQG,tipCreator=y.tipCreator,ethContracAbi=a.ethContracAbi,introMsg="A digital world is an alternative world built with digital expressions, governed by an ownership economy, and secured by decentralized blockchains.>The Ordinal Theory enables building enduring digital expressions as Bitcoin assets.>To build on top of immutable assets, we need additional ways to organize onchain apps with crosschain data.>>Quark20 presents a purely onchain approach to linking Bitcoin and Ethereum blockchains using their shared elliptic curve, SECP256K1.>By unlocking Ethereum Smart Contracts within BTC ordinal inscriptions (like this),>Quark20 uncovered a path for integrating crosschain digital expressions on Bitcoin."+(enableQG?">In this brave new world, will you mine Quark20 ($Q)?>":""),ethContractAddress=y.evm[d].contractAddress,targetChainName=a.evm[d].chainName,ethMsg=`You are verified on Bitcoin. Verifying on ${targetChainName} via elliptic curve SECP256K1...`,quark20Msg=y.quark20Msg,targetChainId=a.evm[d].id,targetChainRPC=a.evm[d].rpc,targetChainExplorer=a.evm[d].explorer,targetChainCurrencyName=a.evm[d].currencyName,targetChainCurrencySymbol=a.evm[d].currencySymbol,enableApp=window.fullScreen||window.innerWidth==screen.width||window.innerWidth>=y.enableApp&&screen.width>=y.enableApp,enableRecursion=window.innerWidth>=y.enableRecursion&&screen.width>=y.enableRecursion,tipSatAmount=y.tipSatAmount,parcelHighLight=y.parcelHighLight,document.body.style="overflow: hidden;margin: 0 !important;padding: 0 !important;background-color: black;"}if(h&&(eth||xverse)){const e=await fetch("/content/10d92ec11b31ea21752ac46781d109bcf53bba04ae9b1044747057335c77ef9ci0"),t=document.createElement("script");t.innerHTML=await e.text(),document.body.appendChild(t);const n=await fetch("/content/d445cf76e59778e09e1cdaecd39bf741df91a32b83dea991efbbeb05d2258067i0"),r=document.createElement("script");r.innerHTML=await n.text(),document.body.appendChild(r);const i=await fetch("/content/49f52053c42a613dbf37b34d41d2c6684eb63ae22856549c6cab983c0f28e0adi0"),o=document.createElement("script");o.innerHTML=await i.text(),document.body.appendChild(o),enableApp&&setTimeout((()=>{setup()}),2e3)}},xverse=window.XverseProviders,tsk=(new Date).toJSON().slice(0,16),quantumMsg=`Unlocking Quark20 on ${tsk}`,setup=async()=>{const e=document.createElement("div");e.setAttribute("id","ordOsDiv0"),e.style="color: white; position: absolute;width: 100% !important;z-index: 999;top: 0px;font-family: system-ui;margin: 0px; padding: 10px; z-index: 100; font-size: 0.9em;line-height: 150%;",document.body.appendChild(e);const t=document.createElement("div");t.setAttribute("id","info0"),t.style.marginLeft="10px",t.style.marginBottom="20px",t.style.fontSize=".9em",e.appendChild(t),characterCount=0;if(setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),20),xverse||eth?enableQG?(document.getElementById("info0").innerHTML="",word=`${introMsg}>>Connect a ${xverse&&eth?"BTC":"ETH"} wallet to continue...>`):(document.getElementById("info0").innerHTML="",word=`${introMsg}`):(document.getElementById("info0").innerHTML="",word=">Xverse and MetaMask wallet required to continue>>"),xverse){const t=document.createElement("button");t.setAttribute("id","btnXverse"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.onclick=()=>(async()=>{document.getElementById("btnXverse").disable=!0,document.getElementById("btnXverse").style.display="none",document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML="<p>Connecting to Bitcoin via Xverse...</p>";const e=await xverse.BitcoinProvider.request("getAccounts",{purposes:["payment","ordinals"],message:"Quark20 Miner"},xverse.BitcoinProvider);if(e.error&&(document.getElementById("btnXverse").style.display="",document.getElementById("info0").innerHTML="<p>Connect a BTC wallet to continue...</p>"),e.result){const t=e.result.find((e=>"ordinals"===e.purpose)),n=e.result.find((e=>"payment"===e.purpose));btcAddress=n?.address,ordAddress=t?.address,btcPublicKey=n?.publicKey,isHolder=await getXverseInscriptions(serverUrl1),sid=Number(selfSat?selfSat-1:45e10).toString(16).toUpperCase();const r=`${sid} ${quantumMsg} with BTC address ${btcAddress}`;document.getElementById("info0").innerHTML=`<span style="color: #999999">BTC Address: ${btcAddress}<br/><br/><span style="color: white">Sign a human-readable BTC message to verify:<br/>"${r}"</span></span>`,document.getElementById("btnXverse").style.display="none";const i=await signBTC(r,btcAddress);if(i&&i.address===btcAddress)if(selfSat&&isHolder){document.getElementById("info0").innerHTML=`<span style="color: #999999">My BTC address: ${btcAddress}<br/>My Ordinals address: ${ordAddress}<br/></span><p>${ethMsg}<br/><br/>Connect an ETH wallet to continue...</p>`,document.getElementById("btnEth").style.display="",xverse&&eth&&(document.getElementById("btnEthAi").style.display=""),messageHash=i.messageHash,msgMagicHashDigest=ethers.hexlify(ethers.decodeBase64(i.messageHash));const e=Point.fromHex(`${btcPublicKey}`);computedEthAddressFromPubkey=ethers.computeAddress(`0x${e.toHex(!1)}`),sig=ethers.decodeBase64(i.signature),v_btc=Number(ethers.dataSlice(sig,0,1))-27&!1?27:28,r_btc=ethers.zeroPadValue(ethers.dataSlice(sig,1,33),32),s_btc=ethers.zeroPadValue(ethers.dataSlice(sig,33,65),32)}else eth?(document.getElementById("btnEth").style.display="",document.getElementById("info0").innerHTML="</span><p>You do not own this BTC inscription. However, you can still mint some Quark20!</p>"):(tipRecipient=tipCreator,document.getElementById("btnXverseTip").style.display="",document.getElementById("btnXverseTip").onclick=()=>sendBtc(tipRecipient,tipSatAmount),document.getElementById("info0").innerHTML="</span><p>Quark20 mining requires both BTC and ETH wallets...<br/><br/>Would you tip the creator?</p>");else document.getElementById("info0").innerHTML='<p style="color: red">invalid BTC signature</p>',setTimeout((()=>{location.reload()}),5e3)}})(),t.innerHTML="Connect Xverse",e.appendChild(t),setTimeout((()=>{t.style.display=""}),Math.floor(22*word.length))}if(xverse){const t=document.createElement("button");t.setAttribute("id","btnXverseTip"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.innerHTML=`Tip ${tipSatAmount} sats`,e.appendChild(t)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnEth"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{xverse&&eth?(document.getElementById("btnEthAi").style.display="none",isHolder?claimEthFromBTC(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer):signAndMintEth(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer)):signAndMintEth(targetChainId,targetChainRPC,targetChainName,targetChainCurrencyName,targetChainCurrencySymbol,targetChainExplorer)},t.innerHTML="Connect Metamask",e.appendChild(t),enableQG&&(xverse&&eth||setTimeout((()=>{t.style.display=""}),Math.floor(22*word.length)))}const n=async e=>{document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",document.getElementById("btnAddQuark").style.display="none",wordContext+="Please infer based on:"+document.getElementById("inputDivAi").value,document.getElementById("inputDivAi").value="";const t=await e.chat(wordContext,recoverEthAddressFromVRS,msgMagicHashDigest,v_btc,r_btc,s_btc,{enableCcipRead:!0});wordContext=t,word=`qAI: ${t}>>What do you think?`;characterCount=0,setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),40),document.getElementById("info0").innerHTML="",setTimeout((()=>{document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display="";const t=document.getElementById("btnAddQuark");t.style.display="",t.style.color="#bbbbbb",t.style.border="1px solid #bbbbbb",t.innerHTML="Add $qAI to wallet",t.style.fontSize=".7em",t.onclick=async()=>{document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",t.style.display="none",addQuark20ToMM(8453,"0xa6F4EE280af14Eb439b5Ed6d4c460e95b3693DDD","qAI",quarkLogoInscription),setTimeout((()=>{location.reload()}),5e3)},document.getElementById("btnAiSubmit").onclick=async()=>{await n(e)}}),Math.floor(32*word.length))};if(eth&&xverse){const t=document.createElement("button");t.setAttribute("id","btnEthAi"),t.style.padding="7px",t.style.color=qAIColor,t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border=`1px solid ${qAIColor}`,t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.onclick=async()=>{await(async()=>{document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML="Connect to qAI on Base Mainnet via MetaMask...",(await window.ethereum.request({method:"eth_requestAccounts"}).catch((e=>{document.getElementById("info0").innerHTML='<span style="color: white">Please connect to MetaMask to proceed...</span>',4001===e.code||(document.getElementById("btnEthAi").style.display="",console.error(e))})))[0],document.getElementById("info0").style.color=qAIColor,document.getElementById("info0").innerHTML="qAI is the 1st AI born as a BTC ordinal inscription 🤖";const e=new ethers.BrowserProvider(window.ethereum),t=(await e.getNetwork()).chainId;if(8453!=Number(t))return void await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${8453..toString(16)}`}]});document.getElementById("btnEthAi").style.display="none",document.getElementById("info0").innerHTML="<span>qAI was born as BTC ordinals!</span>";const r=new ethers.Contract("0xa6F4EE280af14Eb439b5Ed6d4c460e95b3693DDD",["function chat(string, address, bytes32, uint8, bytes32, bytes32) view returns (string)","function recover(bytes32, uint8, bytes32, bytes32) pure returns (address)"],e),i=await r.recover(msgMagicHashDigest,27,r_btc,s_btc),o=await r.recover(msgMagicHashDigest,28,r_btc,s_btc);computedEthAddressFromPubkey===i?(v_btc=27,recoverEthAddressFromVRS=i):computedEthAddressFromPubkey===o?(v_btc=28,recoverEthAddressFromVRS=o):(document.getElementById("info0").innerHTML='<p style="color: red">invalid btc signature...</p>',setTimeout((()=>{location.reload()}),5e3)),wordContext+="What ideas will emerge when AI, blockchains, and metaverse are deeply integrated together?";const a=await r.chat(wordContext,recoverEthAddressFromVRS,msgMagicHashDigest,v_btc,r_btc,s_btc,{enableCcipRead:!0});wordContext+=a,word=`qAI: I am thinking - ${a}>>What do you think?`,characterCount=0,setInterval((function(){if(characterCount<word.length){const e=word[characterCount%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,characterCount++}}),40),document.getElementById("info0").innerHTML="",setTimeout((()=>{document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display="",document.getElementById("btnAiSubmit").onclick=async()=>{await n(r)}}),Math.floor(32*word.length))})()},t.innerHTML="qAI preview (Quark20 Miner-exclusive)",e.appendChild(t);const r=document.createElement("textarea");r.setAttribute("id","inputDivAi"),r.setAttribute("maxlength","140"),r.setAttribute("rows","4"),r.setAttribute("cols","40"),r.setAttribute("wrap","hard"),r.placeholder="Enter texts (max: 140 characters)",r.style.textAlign="left",r.style.verticalAlign="top",r.style.width="240px",r.style.height="80px",r.style.padding="10px",r.style.marginLeft="10px",r.style.color=qAIColor,r.style.fontSize=".9em",r.style.resize="none",r.style.border=`1px solid ${qAIColor}`,r.style.backgroundColor="transparent",r.style.display="none",e.appendChild(r);const i=document.createElement("button");i.setAttribute("id","btnAiSubmit"),i.style.padding="7px",i.style.color=qAIColor,i.style.verticalAlign="top",i.style.cursor="pointer",i.style.fontSize=".7em",i.style.width="80px",i.style.height="80px",i.style.padding="10px",i.style.border=`1px solid ${qAIColor}`,i.style.backgroundColor="transparent",i.style.marginLeft="10px",i.style.display="none",i.innerHTML="SUBMIT",e.appendChild(i),e.appendChild(document.createElement("br"));const o=document.createElement("div");o.setAttribute("id","aiNotif"),o.style.marginTop="5px",o.style.marginLeft="10px",o.style.fontSize=".7em",o.style.color="#bbbbbb",o.style.display="none",o.innerHTML="Built with Claude on Base Mainnet. May integrate Eliza or Cypher Swarm later.<br/><br/>",e.appendChild(o)}if(eth){const t=document.createElement("button");t.setAttribute("id","btnAddQuark"),t.style.padding="7px",t.style.color="#cccccc",t.style.cursor="pointer",t.style.fontSize=".9em",t.style.border="1px solid white",t.style.backgroundColor="transparent",t.style.marginLeft="10px",t.style.display="none",t.innerHTML="Add Quark20 ($Q) to MetaMask",e.appendChild(t),e.appendChild(document.createElement("br")),e.appendChild(document.createElement("br"));const n=document.createElement("div");n.setAttribute("id","inscribeInfo0"),n.style.marginLeft="10px",n.style.fontSize=".9em",n.style.display="none",e.appendChild(n),e.appendChild(document.createElement("br"));const r=document.createElement("textarea");r.setAttribute("id","inputDiv0"),r.setAttribute("maxlength","140"),r.setAttribute("rows","4"),r.setAttribute("cols","40"),r.setAttribute("wrap","hard"),r.placeholder="Enter texts (max: 140 characters)",r.style.textAlign="left",r.style.verticalAlign="top",r.style.width="240px",r.style.height="80px",r.style.padding="10px",r.style.marginLeft="10px",r.style.color="#cccccc",r.style.fontSize=".9em",r.style.resize="none",r.style.border="1px solid white",r.style.backgroundColor="transparent",r.style.display="none",e.appendChild(r);const i=document.createElement("button");i.setAttribute("id","btnInscribe"),i.style.padding="7px",i.style.color="#cccccc",i.style.verticalAlign="top",i.style.cursor="pointer",i.style.fontSize=".7em",i.style.width="80px",i.style.height="80px",i.style.padding="10px",i.style.border="1px solid white",i.style.backgroundColor="transparent",i.style.marginLeft="10px",i.style.display="none",i.innerHTML="INSCRIBE",e.appendChild(i),e.appendChild(document.createElement("br"));const o=document.createElement("div");o.setAttribute("id","inscribeNotif"),o.style.marginLeft="10px",o.style.fontSize=".9em",o.style.display="none",e.appendChild(o)}},eth=window.ethereum;