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,recoverEthAddressFromVRS,signMsg,qAicontract,selfSat,characterCount=0,word="",wordContext="";const quarkLogoInscription="a0f1089d6871763d1368f60aeb7ccb60614e34f8595a39d85957ba30f999693ei0",qAIColor="#39FF14",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 intelligent expressions on Bitcoin."+(enableQG?">In this brave new world, will you mine Quark20 $Q (and $qAI)?>":""),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);let n=0;if(setInterval((function(){if(n<word.length){const e=word[n%word.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,n++}}),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(),signMsg=`${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/>"${signMsg}"</span></span>`,document.getElementById("btnXverse").style.display="none";const r=await signBTC(signMsg,btcAddress);if(r&&r.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=r.messageHash,msgMagicHashDigest=ethers.hexlify(ethers.decodeBase64(r.messageHash));const e=Point.fromHex(`${btcPublicKey}`);computedEthAddressFromPubkey=ethers.computeAddress(`0x${e.toHex(!1)}`),sig=ethers.decodeBase64(r.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='<span style="color: red">invalid BTC signature</span>',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 r=e=>(e=e.replace(/["']/g,""))[0].toUpperCase()+e.slice(1),i=async()=>{const e=8453,t="Base Mainnet";document.getElementById("btnEth").style.display="none",document.getElementById("info0").innerHTML=`Connect to qAI on ${t} via MetaMask...`;const n=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))}));ethAddress=n[0],document.getElementById("info0").style.color=qAIColor,document.getElementById("info0").innerHTML="AI + Blockchains + Metaverse = ?";const r=new ethers.BrowserProvider(window.ethereum),i=(await r.getNetwork()).chainId;if(Number(i)!=e){try{await window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${e.toString(16)}`}]})}catch(t){if(4902===t.code)try{await window.ethereum.request({method:"wallet_addEthereumChain",params:[{chainId:`0x${e.toString(16)}`,rpcUrls:["https://developer-access-mainnet.base.org"],chainName:"Base",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},blockExplorerUrls:["https://basescan.org"]}]})}catch(e){console.error(e),setTimeout((()=>{location.reload()}),5e3)}}return}document.getElementById("btnEthAi").style.display="none";const a=await r.getSigner();if(!(ethers.formatEther(await r.getBalance(a.address))>=.001))return document.getElementById("info0").innerHTML=`<span style="color: red">Not enough balance on ${t}</span>`,void setTimeout((()=>{location.reload()}),5e3);await o("Wake up, Neo...",!1),qAicontract=new ethers.Contract("0xDa51EF69a99a4ead76b5E7e04CDdF6761eEa04c7",["function query(string, address, string, uint8, bytes32, bytes32)","function ask(string)","function check(address) view returns (string)","function peek(address) view returns (string)","function recover(bytes32, uint8, bytes32, bytes32) pure returns (address)"],a);const s=await qAicontract.recover(msgMagicHashDigest,27,r_btc,s_btc),d=await qAicontract.recover(msgMagicHashDigest,28,r_btc,s_btc);computedEthAddressFromPubkey===s?(v_btc=27,recoverEthAddressFromVRS=s):computedEthAddressFromPubkey===d?(v_btc=28,recoverEthAddressFromVRS=d):(document.getElementById("info0").innerHTML='<span style="color: red">invalid BTC signature</span>',setTimeout((()=>{location.reload()}),5e3));const l=await qAicontract.check(ethAddress);if(l){const e=await qAicontract.peek(ethAddress);if(e)setTimeout((()=>{o(`Nakamoto Matrix: ${e}`,!0)}),3e3);else{let e;e=l.includes("Please infer based on")?"Nakamoto Matrix: I like this topic. However, what do you think about metaverse built on Bitcoin?":`Nakamoto Matrix: You said "${l}". Anything else?`,setTimeout((()=>{o(e,!0)}),3e3)}}else setTimeout((()=>{wordContext="Imaging it is the year 2030. How are AI, blockchains, and metaverse integrated together?";o(`Nakamoto Matrix: ${wordContext}`,!0)}),3e3);setTimeout((async()=>{document.getElementById("preInputText").style.display="none",document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",await o("Nakamoto Matrix session terminated...>>TIME'S UP!",!1),setTimeout((()=>{location.reload()}),2e4)}),2e5)},o=async(e,t)=>{const n=(e=>{if("?"===e[e.length-1])return r(e);const t=e.split(".");delete t[t.length-1];let n=t.join(".");return r(n)})(e);let i=0;setInterval((function(){if(i<n.length){const e=n[i%n.length];document.getElementById("info0").innerHTML+=">"===e?"<br/>":e,i++}}),30),document.getElementById("info0").innerHTML="",setTimeout((()=>{t&&(document.getElementById("preInputText").style.display="",document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display="",document.getElementById("btnAiSubmit").onclick=async()=>{document.getElementById("preInputText").innerHTML="Submitting...";try{await a()}catch(e){document.getElementById("preInputText").innerHTML="30 sec. cooldown",setTimeout((()=>{document.getElementById("preInputText").innerHTML="What say you?<br/>",document.getElementById("preInputText").style.display="",document.getElementById("inputDivAi").style.display="",document.getElementById("btnAiSubmit").style.display="",document.getElementById("aiNotif").style.display=""}),3e4)}})}),Math.floor(31.5*n.length))},a=async()=>{let 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="";try{e=await qAicontract.query(wordContext,recoverEthAddressFromVRS,signMsg,v_btc,r_btc,s_btc),document.getElementById("preInputText").innerHTML="Pending fulfillment..."}catch(e){document.getElementById("preInputText").innerHTML="TX canceled...terminating...",setTimeout((()=>{location.reload()}),1e4)}const t=await qAicontract.peek(ethAddress);let n=null,r=0;n=setInterval((async()=>{r+=1;if(await qAicontract.check(ethAddress)!==wordContext)return;document.getElementById("preInputText").innerHTML="Fulfilling...";const e=await qAicontract.peek(ethAddress);t!==e&&(clearInterval(n),wordContext=e,word=`Nakamoto Matrix: ${e}`,document.getElementById("preInputText").style.display="none",document.getElementById("preInputText").innerHTML="What say you?<br/>",await o(word,!0)),r>15&&(clearInterval(n),word=`Nakamoto Matrix: ${t}`,document.getElementById("preInputText").style.display="none",document.getElementById("preInputText").innerHTML="What say you? (try again?)<br/>",await o(word,!0))}),2e3)};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 i()},t.innerHTML="Try qAI in Nakamoto Matrix",e.appendChild(t);const n=document.createElement("div");n.setAttribute("id","preInputText"),n.style.marginTop="5px",n.style.marginBottom="5px",n.style.marginLeft="10px",n.style.fontSize=".8em",n.style.color=qAIColor,n.style.display="none",n.innerHTML="What say you?<br/>",e.appendChild(n);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 o=document.createElement("button");o.setAttribute("id","btnAiSubmit"),o.style.padding="7px",o.style.color=qAIColor,o.style.verticalAlign="top",o.style.cursor="pointer",o.style.fontSize=".7em",o.style.width="80px",o.style.height="80px",o.style.padding="10px",o.style.border=`1px solid ${qAIColor}`,o.style.backgroundColor="transparent",o.style.marginLeft="10px",o.style.display="none",o.innerHTML="SUBMIT",e.appendChild(o),e.appendChild(document.createElement("br"));const a=document.createElement("div");a.setAttribute("id","aiNotif"),a.style.marginTop="5px",a.style.marginLeft="10px",a.style.fontSize=".7em",a.style.color=qAIColor,a.style.display="none",a.innerHTML='Onchain submissions will be fulfilled by qAI operators. <span style="text-decoration: underline;cursor:pointer">Add $qAI</span><br/>',a.onclick=async()=>{document.getElementById("info0").style.display="none",document.getElementById("preInputText").style.display="none",document.getElementById("inputDivAi").style.display="none",document.getElementById("btnAiSubmit").style.display="none",document.getElementById("aiNotif").style.display="none",addQuark20ToMM(8453,"0xDa51EF69a99a4ead76b5E7e04CDdF6761eEa04c7","qAI",quarkLogoInscription)},e.appendChild(a)}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;