// ==UserScript== // @name RUGPULL // @namespace https://github.com/shmidtqq65/rugpull // @version 1.0.0 // @description Every website is a memecoin now. Alt+Shift+R launches the page as a coin, R pulls the rug, Esc refunds. A parody: nothing leaves your browser. // @author shmidtqq // @license MIT // @homepageURL https://github.com/shmidtqq65/rugpull // @downloadURL https://raw.githubusercontent.com/shmidtqq65/rugpull/main/userscript/rugpull.user.js // @updateURL https://raw.githubusercontent.com/shmidtqq65/rugpull/main/userscript/rugpull.user.js // @match *://*/* // @grant none // @run-at document-idle // @noframes // ==/UserScript== (function () { 'use strict'; function run() { (()=>{'use strict';const t=window,e=document,o=e.documentElement,n=t.__rugpull;if(n&&n.alive)return void n.toggle();if(!(o&&e.body&&e.body instanceof HTMLElement))return;if(!('adoptedStyleSheets'in e)||'function'!=typeof CSSStyleSheet)return void console.warn('RUGPULL needs constructable stylesheets (Chrome 73+, Firefox 101+, Safari 16.4+).');const a=Object.assign({seed:0,sound:!0,tape:!0,autorug:!0,credit:!0},t.__RP_OPTIONS||{}),i=!!t.__RP_MANUAL,r=!1!==a.motion&&!(t.matchMedia&&t.matchMedia('(prefers-reduced-motion: reduce)').matches),l=(t,e,o)=>to?o:t,s=(t,e,o)=>t+(e-t)*o,c=t=>t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2,d=t=>1-Math.pow(1-l(t,0,1),3),h=2*Math.PI;let p=a.seed>>>0||(Date.now()^4294967296*Math.random())>>>0||1;const u=()=>(p^=p<<13,p>>>=0,p^=p>>>17,p^=p<<5,p>>>=0,p/4294967296),f=()=>{let t=0;for(;!t;)t=u();return Math.sqrt(-2*Math.log(t))*Math.cos(h*u())},g=t=>{let e='';for(let o=0;ot.replace(/[^A-Za-z0-9]/g,''),R=(()=>{const t=[],o=e.querySelector('meta[property="og:site_name"],meta[name="application-name"]');if(o&&o.content&&t.push(o.content.trim().split(/\s+/)),S&&!/^[\d.:[\]]+$/.test(S)){const e=S.split('.').filter(t=>!C.test(t));e.length&&t.push([e[e.length-1]])}t.push((e.title||'').split(/[\s|:,.\-]+/).filter(t=>t.length>2&&!T.has(t.toLowerCase())).slice(0,1));for(const e of t){const t=e.map($).filter(t=>t&&!/^the$/i.test(t));if(!t.length)continue;let o=t.join('');if(o.length>10&&(o=t.length>=3?t.map(t=>t[0]).join(''):t[0]),o.length>10&&(o=o[0]+o.slice(1).replace(/[aeiou]/gi,'')),o.length>=2)return o.toUpperCase().slice(0,10)}return'PAGE'})(),L=((e.querySelector('meta[property="og:title"]')||{}).content||e.title||S||'This page').replace(/\s+/g,' ').trim(),E=[...R].reduce((t,e)=>(31*t+e.charCodeAt(0))%360,7),P=(()=>{const t=(e.body.innerText||'').slice(0,3e4),o=new Map;for(const e of t.matchAll(/\p{L}[\p{L}']{3,11}/gu)){const t=e[0].toLowerCase().replace(/'.*$/,'');t.length<4||T.has(t)||o.set(t,(o.get(t)||0)+1)}const n=[...o.entries()].sort((t,e)=>e[1]-t[1]).map(t=>t[0]);return n.length?n.slice(0,60):['anon','degen','whale','ape','moon']})();function A(){const t=P[Math.pow(u(),1.6)*P.length|0],e=u();return e<.16?'0x'+g(4)+'\u2026'+g(4):e<.38?t+'.eth':e<.52?t+'.sol':e<.64?t+'_maxi':e<.77?t+(999*u()|0):e<.88?'degen'+t:t+'lord'}const F=1e9;let U=Math.log(32e-7+26e-7*u());const B=U;let q=U,_=19+(24*u()|0),z=0,G=.06+.05*u(),j=0,O=0,D=0,I=0;const N=[];let W={o:U,h:U,l:U,c:U},H=0,V=!1,X=0,Y=0,K=0,J=0,Z=0,Q=0;const tt=()=>Math.exp(U),et=()=>tt()*F,ot=t=>t>=1e9?'$'+(t/1e9).toFixed(2)+'B':t>=1e6?'$'+(t/1e6).toFixed(2)+'M':t>=1e3?'$'+(t/1e3).toFixed(1)+'K':'$'+t.toFixed(0),nt=t=>(t>=0?'+':'\u2212')+Math.abs(t).toFixed(Math.abs(t)>=100?0:1)+'%',at=()=>100*(Math.exp(U-B)-1);function it(t){if('pump'===Ne)U+=(.12+.16*G)*t+.085*Math.sqrt(t)*f(),u()<.3*t&&(U-=.03+.07*u()),G=Math.min(1,G+.018*t),u()<7*t&&_++,G>=1&&a.autorug&&xe();else if(V){const t=We-K;U=t<.5?s(X,Y,c(t/.5))+.02*f():t<1.3?Y+.35*Math.sin((t-.5)/.8*Math.PI)*.3+.01*f():Y+.012*f()}q=Math.max(q,U),W.h=Math.max(W.h,U),W.l=Math.min(W.l,U),W.c=U,H+=t,H>=.42&&(N.push(W),Z++,N.length>160&&N.shift(),W={o:U,h:U,l:U,c:U},H=0)}const rt=[];let lt=.4;function st(t,e,o,n,a){I++,z+=152*o,rt.unshift({who:t,side:e,sol:o,kind:n||'',verb:a||('buy'===e?'bought':'sold'),t:We}),rt.length>14&&(rt.length=14),$e=!0}const ct=t=>{const e=new CSSStyleSheet;return e.replaceSync(t),e},dt=ct('::highlight(rugpull-crowd){background-color:rgba(30,197,132,.24)}::highlight(rugpull-you){background-color:rgba(247,201,72,.55);color:#111}'),ht=ct(''),pt=(t,e)=>{try{t.adoptedStyleSheets=t.adoptedStyleSheets.filter(t=>t!==e)}catch(t){}},ut=!!(t.CSS&&CSS.highlights&&t.Highlight),ft=ut?new Highlight:null,gt=ut?new Highlight:null;ut&&(CSS.highlights.set('rugpull-crowd',ft),CSS.highlights.set('rugpull-you',gt)),e.adoptedStyleSheets=[...e.adoptedStyleSheets,dt];const xt=`\n:host{all:initial}\n.w{position:fixed;inset:0;pointer-events:none;font:13px/1.35 ${M};color:${m};-webkit-font-smoothing:antialiased;text-align:left;direction:ltr}\ncanvas.fx{position:absolute;inset:0;width:100%;height:100%}\n.tape{position:absolute;left:0;right:0;top:0;height:28px;background:#06080b;border-bottom:1px solid ${x};overflow:hidden;pointer-events:auto;font:700 12px/28px ${k};white-space:nowrap;cursor:default}\n.track{position:absolute;left:0;top:0;will-change:transform}\n.track span{display:inline-block;margin:0 16px}\n.track .t{color:${m}}\n.track .u{color:${y}}\n.track .d{color:${w}}\n.panel{position:absolute;right:12px;top:40px;bottom:12px;width:360px;display:flex;flex-direction:column;gap:10px;padding:14px 14px 10px;box-sizing:border-box;background:#10141b;border:1px solid ${x};border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.5);pointer-events:auto;overflow:hidden;cursor:default}\n.hd{display:flex;align-items:center;gap:10px}\n.ava{flex:0 0 40px;height:40px;border-radius:50%;display:grid;place-items:center;font:800 18px/1 ${M};color:#0b0e13}\n.id{min-width:0}\n.id b{display:block;font:800 19px/1.1 ${M};letter-spacing:.01em}\n.id span{display:block;margin-top:2px;color:${b};font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\nbutton{all:unset;box-sizing:border-box;cursor:pointer;text-align:center}\nbutton:focus-visible{outline:2px solid ${v};outline-offset:2px}\n.x{margin-left:auto;flex:0 0 auto;color:${b};font:400 22px/1 ${M};padding:2px 7px;border-radius:7px}\n.x:hover{background:#1a2029;color:${m}}\n.px{display:flex;align-items:baseline;gap:10px;white-space:nowrap}\n.px b{font:800 27px/1 ${k};letter-spacing:-.02em}\n.px span{font:700 14px/1 ${k}}\n.px small{margin-left:auto;color:${b};font:600 11px/1 ${k}}\ncanvas.chart{display:block;width:100%;height:150px;border-radius:9px;background:#090c11;border:1px solid #1a2029}\n.st{display:grid;grid-template-columns:1fr 1fr;gap:7px}\n.st div{background:#0c1016;border:1px solid #1d232d;border-radius:9px;padding:7px 9px}\n.st span{display:block;color:${b};font:600 10px/1.2 ${M};text-transform:uppercase;letter-spacing:.07em}\n.st b{display:block;margin-top:3px;font:700 15px/1.1 ${k};white-space:nowrap}\n.cv .l{display:flex;justify-content:space-between;color:${b};font:600 10px/1 ${M};text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}\n.cv .l b{color:${m};font:700 11px/1 ${k}}\n.bar{height:8px;border-radius:99px;background:#1a2029;overflow:hidden}\n.bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#16a56d,#5dffb4)}\n.ac{display:grid;grid-template-columns:1fr 1fr;gap:8px}\n.ac button{padding:12px 0;border-radius:10px;font:800 14px/1 ${M};letter-spacing:.02em}\n.buy{background:${y};color:#03140c}\n.rug{background:${w};color:#fff}\n.buy:hover,.rug:hover{filter:brightness(1.1)}\n.ac button[disabled]{opacity:.35;cursor:default;filter:none}\n.fh{display:flex;justify-content:space-between;color:${b};font:600 10px/1 ${M};text-transform:uppercase;letter-spacing:.07em}\n.fh i{font-style:normal;color:${y}}\n.fh i::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:1px}\nul{list-style:none;margin:-4px 0 0;padding:0;flex:1 1 auto;min-height:40px;overflow:hidden}\nli{display:grid;grid-template-columns:minmax(0,1fr) auto 62px 30px;gap:8px;align-items:center;padding:5px 2px;border-bottom:1px solid #161b23;font:12px/1.2 ${k};white-space:nowrap}\nli .w0{overflow:hidden;text-overflow:ellipsis;color:#c4ccd8}\nli .s{font-weight:700}\nli .a{text-align:right}\nli .t0{text-align:right;color:${b};font-size:11px}\nli.buy0 .s{color:${y}}\nli.sell0 .s{color:${w}}\nli.you .w0{color:${v};font-weight:700}\nli.dev{background:rgba(242,59,76,.12)}\nli.dev .w0,li.dev .s{color:${w};font-weight:800}\n.ft{display:flex;justify-content:space-between;gap:8px;color:#5f6876;font-size:10.5px;line-height:1.3}\n.ft a{color:${b};text-decoration:none;white-space:nowrap}\n.ft a:hover{color:${m}}\n.cardw{position:absolute;left:50%;top:50%;display:none;pointer-events:auto}\ncanvas.card{display:block;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.6)}\n.cb{display:flex;justify-content:center;gap:10px;margin-top:12px}\n.cb button{padding:11px 18px;border-radius:10px;font:800 13px/1 ${M};background:#1a2029;color:${m};border:1px solid #2a3240}\n.cb .rf{background:${y};color:#03140c;border-color:${y}}\n.toast{position:absolute;left:50%;top:44px;transform:translateX(-50%);padding:8px 14px;border-radius:9px;background:#1a2029;border:1px solid #2a3240;font:600 12px/1.3 ${M};opacity:0;transition:opacity .3s;white-space:nowrap}\n.toast.on{opacity:1}\n@media (max-width:820px){\n .panel{left:8px;right:8px;top:auto;bottom:8px;width:auto;height:min(46vh,400px);gap:8px;padding:12px 12px 8px}\n canvas.chart{height:92px}\n .px b{font-size:22px}\n .st{grid-template-columns:repeat(4,1fr);gap:5px}\n .st div{padding:6px}\n .st b{font-size:12px}\n .ft span{display:none}\n}`;let mt,bt,yt,wt,vt,Mt,kt,St,Tt,Ct,$t,Rt,Lt;const Et=(t,o,n,a)=>{const i=e.createElement(t);return o&&(i.className=o),null!=a&&(i.textContent=a),n&&n.appendChild(i),i},Pt={};let At=[],Ft=0,Ut=0,Bt=0;const qt=t=>{Lt&&(Lt.textContent=t,Lt.classList.add('on'),clearTimeout(Bt),Bt=setTimeout(()=>Lt&&Lt.classList.remove('on'),2400))};let _t=0,zt=0,Gt=1;function jt(){_t=o.clientWidth||t.innerWidth,zt=t.innerHeight,Gt=Math.min(2,t.devicePixelRatio||1),yt.width=Math.round(_t*Gt),yt.height=Math.round(zt*Gt);const e=St.getBoundingClientRect();St.width=Math.max(1,Math.round(e.width*Gt)),St.height=Math.max(1,Math.round(e.height*Gt)),Qt&&ue(),'card'===Ne&&Be()}const Ot=new Set;function Dt(t,o){const n=((t,o)=>{if(e.caretPositionFromPoint){const n=e.caretPositionFromPoint(t,o);return n&&{node:n.offsetNode,off:n.offset}}if(e.caretRangeFromPoint){const n=e.caretRangeFromPoint(t,o);return n&&{node:n.startContainer,off:n.startOffset}}return null})(t,o);if(!n||!n.node||3!==n.node.nodeType)return null;const a=n.node.data;let i=Math.min(n.off,a.length),r=i;const l=t=>/[\p{L}\p{N}$'_-]/u.test(t);for(;i>0&&l(a[i-1]);)i--;for(;rc.right+2||oc.bottom+2)return null;const d=n.node.parentElement;return!d||mt&&mt.contains(d)?null:{range:s,text:a.slice(i,r),key:n.node,a:i,rc:c}}function It(t,e,o){if('pump'!==Ne)return!1;let n=null;if(null!=e)n=Dt(e,o);else{const t=kt?kt.getBoundingClientRect():{left:_t,top:zt};for(let e=0;e<14&&!n;e++){const e=Dt(u()*(_t>820?t.left-16:_t),34+u()*((_t>820?zt:t.top)-44));e&&!Ot.has(Ht(e.key)+':'+e.a)&&(n=e)}}if(t){const t=+(.2+1.8*u()).toFixed(2);j++,O+=t,st('you','buy',t,'you'),U+=.05+.07*u(),G=Math.min(1,G+.025),_++,Oe(),Vt.push({x:null!=e?e:n?n.rc.left+n.rc.width/2:_t/2,y:null!=o?o:n?n.rc.top:zt/2,t:We,text:'+'+t.toFixed(2)+' SOL'+(n?' \xb7 $'+n.text.toUpperCase().slice(0,12):'')})}if(!n||!ut)return!!n;const a=Ht(n.key)+':'+n.a;return Ot.has(a)?(t&&(ft.delete(n.range),gt.add(n.range)),!0):(Ot.add(a),(t?gt:ft).add(n.range),t||D++,!0)}let Nt=0;const Wt=new WeakMap,Ht=t=>{let e=Wt.get(t);return e||Wt.set(t,e=++Nt),e},Vt=[],Xt=new Set(['script','style','noscript','template','head','meta','link','title','br','wbr','source','track','param','area','map','datalist','option','optgroup','rugpull-overlay','textarea','select']),Yt=t=>{const e=t&&t.match(/rgba?\(([^)]+)\)/);if(!e)return null;const o=e[1].split(/[\s,/]+/).filter(Boolean).map(parseFloat);return[o[0],o[1],o[2],o.length>3?/%/.test(e[1].split(/[\s,/]+/).filter(Boolean)[3])?o[3]/100:o[3]:1]},Kt=(t,e)=>'rgba('+(0|t[0])+','+(0|t[1])+','+(0|t[2])+','+ +(t[3]*e).toFixed(3)+')';let Jt=[],Zt=[],Qt=null,te=null,ee=null,oe=null,ne={x:0,y:0},ae=0;const ie=6,re=e.createElement('canvas').getContext('2d'),le=t=>parseFloat(t)||0,se=(t,e)=>{const o=Math.max(t.x,e.left),n=Math.max(t.y,e.top);return{x:o,y:n,w:Math.max(0,Math.min(t.x+t.w,e.right)-o),h:Math.max(0,Math.min(t.y+t.h,e.bottom)-n)}},ce=(t,e)=>!e||t.left+t.width/2>=e.x&&t.left+t.width/2<=e.x+e.w&&t.top+t.height/2>=e.y&&t.top+t.height/2<=e.y+e.h;function de(t,e,o,n,a,i){return Object.assign({kind:t,x:e+n/2,y:o+a/2,w:n,h:a,a:0,vx:0,vy:0,va:0,hx:e+n/2,hy:o+a/2,delay:0,done:!1},i||{})}function he(t,o,n,a,i,r){const s=Yt(n.color)||[0,0,0,1];if(s[3]*a<.04)return;const c=n.fontStyle+' '+n.fontWeight+' '+n.fontSize+' '+n.fontFamily,d=n.textTransform,h=e.createRange(),p=/\S+/g;let u;for(;(u=p.exec(t.data))&&r.length<4200;){h.setStart(t,u.index),h.setEnd(t,u.index+u[0].length);const e=h.getClientRects();if(!e.length)continue;const o=e[0];if(o.width<1||o.bottom<0||o.top>zt||o.right<0||o.left>_t)continue;if(i&&!ce(o,i))continue;let n=u[0];'uppercase'===d?n=n.toUpperCase():'lowercase'===d?n=n.toLowerCase():'capitalize'===d&&(n=n.charAt(0).toUpperCase()+n.slice(1)),re.font=c;const p=re.measureText(n),f=p.width>0?l(o.width/p.width,.75,1.3):1,g=((p.fontBoundingBoxAscent||.8*o.height)-(p.fontBoundingBoxDescent||.2*o.height))/2;r.push(de('word',o.left,o.top,o.width,o.height,{text:n,font:c,color:Kt(s,a),k:f,base:g,tw:p.width}))}}function pe(){pt(e,ht)}function ue(){const t=()=>{const t=e.createElement('canvas');t.width=Math.round(_t*Gt),t.height=Math.round(zt*Gt);const o=t.getContext('2d');return o.setTransform(Gt,0,0,Gt,0,0),{c:t,g:o}};te=t(),ee=t(),Qt=!0,oe=new Float32Array(Math.ceil(_t/ie)+2);for(const t of Jt)t.done&&Te(('word'===t.kind?ee:te).g,t)}let fe=0,ge=0;function xe(){if('pump'===Ne&&Ie){if(Ne='rug',V=!0,K=We,Q=Z,X=U,Y=q+Math.log(.0022+.0016*u()),J=180+420*u(),st('DEV','sell',.62*J,'dev','pulled LP'),st('DEV','sell',.38*J,'dev','sold'),G=Math.min(G,.999),Pt.buy&&(Pt.buy.disabled=!0,Pt.rug.disabled=!0),De(),fe=r?1:.35,ge=r?1:0,ne={x:t.scrollX,y:t.scrollY},r){Jt=(()=>{const t=[],o=[],n=[],a=[],i=_t*zt,r=(t,l,s)=>{for(let c=t.firstElementChild;c;c=c.nextElementSibling){const t=c.localName;if(Xt.has(t)||c===mt)continue;let d;try{d=getComputedStyle(c)}catch(t){continue}if('none'===d.display)continue;const h=l*(+d.opacity||0);if(h<.04)continue;const p=c.getBoundingClientRect();if(p.height>0&&(p.top>2*zt||p.bottom<-zt)&&'fixed'!==d.position&&'sticky'!==d.position)continue;const u='visible'===d.visibility,f=s?se(s,p):{x:p.left,y:p.top,w:p.width,h:p.height};if(u&&p.width>0&&p.height>0&&p.right>0&&p.bottom>0&&p.left<_t&&p.top0:'video'===t?c.readyState>=2:c.width>0&&c.height>0)&&p.width>=8&&p.height>=8&&ce(p,s)&&a.push({kind:'img',src:c,fit:d.objectFit,r:p,o:h,rad:le(d.borderTopLeftRadius)});else{const t=Yt(d.backgroundColor);let o=t&&t[3]>.12?t:null;!o&&/gradient/.test(d.backgroundImage)&&(o=Yt((d.backgroundImage.match(/rgba?\([^)]+\)/)||[])[0]));const a=Math.max(0,Math.min(p.right,_t)-Math.max(p.left,0)),r=Math.max(0,Math.min(p.bottom,zt)-Math.max(p.top,0)),l=a*r;o&&l>=60&&c!==e.body&&ce(p,s)&&n.length<260&&n.push({kind:l>=.5*i||r>=.7*zt&&a>=.4*_t?'bg':'box',fill:Kt(o,h),r:p,o:h,rad:Math.min(le(d.borderTopLeftRadius),p.width/2,p.height/2)})}if(/^(img|video|canvas|svg|iframe|object|embed)$/.test(t))continue;if(u)for(let t=c.firstChild;t;t=t.nextSibling)3===t.nodeType&&/\S/.test(t.data)&&he(t,0,d,h,s,o);let g=s;'visible'===d.overflowX&&'visible'===d.overflowY||(g=f),r(c,h,g),c.shadowRoot&&'open'===c.shadowRoot.mode&&r(c.shadowRoot,h,g)}};r(e.body,1,null),o.sort((t,e)=>t.y-e.y),Zt=n.filter(t=>'bg'===t.kind).map(t=>Object.assign(de('box',t.r.left,t.r.top,t.r.width,t.r.height,t),{kind:'box'}));for(const e of n)'box'===e.kind&&t.push(de(e.kind,e.r.left,e.r.top,e.r.width,e.r.height,e));a.sort((t,e)=>e.r.width*e.r.height-t.r.width*t.r.height);for(const e of a)t.push(de('img',e.r.left,e.r.top,e.r.width,e.r.height,e));for(const e of o.slice(0,4200))t.push(e);return t})();for(const t of Jt)t.delay=.28*(1-l(t.hy/zt,0,1))+.14*u(),t.vx=(u()-.5)*('word'===t.kind?110:60),t.vy=90*-u(),t.va=(u()-.5)*('word'===t.kind?5:'img'===t.kind?1.2:2.2);ue()}(()=>{const t=Yt(getComputedStyle(o).backgroundColor),n=Yt(getComputedStyle(e.body).backgroundColor),a=t&&t[3]>.5?null:n&&n[3]>.5?n:[255,255,255,1];ht.replaceSync('body{opacity:0!important;pointer-events:none!important;transition:none!important}'+(a?'html{background-color:'+Kt(a,1)+'!important}':'')),e.adoptedStyleSheets=[...e.adoptedStyleSheets,ht]})()}}const me=t=>'word'!==t.kind&&t.w*t.h>9e3;function be(t,e){const o=oe.length;for(let n=0;n<2;n++){for(let n=Math.max(1,t-14);n<=Math.min(o-1,e+14);n++)oe[n]=Math.max(oe[n],oe[n-1]-1.25*ie);for(let n=Math.min(o-2,e+14);n>=Math.max(0,t-14);n--)oe[n]=Math.max(oe[n],oe[n+1]-1.25*ie)}}function ye(t){const e=Math.abs(Math.cos(t.a)),o=Math.abs(Math.sin(t.a)),n=(t.w*e+t.h*o)/2,a=oe.length-1;return{hw:n,hh:(t.w*o+t.h*e)/2,c0:l(Math.floor((t.x-.8*n)/ie),0,a),c1:l(Math.floor((t.x+.8*n)/ie),0,a)}}function we(t){t.done=!0,t.vx=t.vy=t.va=0,ae++,Te(('word'===t.kind?ee:te).g,t)}function ve(t,e){const o=Math.abs(Math.atan2(Math.sin(t.a),Math.cos(t.a)))a&&(a=oe[t]);t.y=zt-a-.62*n.hh;const i=Math.max(4,t.h*('word'===t.kind?.34:.46));for(let t=n.c0;t<=n.c1;t++)oe[t]=Math.max(oe[t],a+i);be(n.c0,n.c1),we(t)}function Me(t){t.a=.2*t.a+.12*(u()-.5);const e=ye(t),o=Math.min(2*e.hh*.38,150);t.y=zt+e.hh-o;for(let t=e.c0;t<=e.c1;t++)oe[t]=Math.max(oe[t],o-8);be(e.c0,e.c1),we(t)}let ke=0;function Se(){ht.replaceSync('body{transition:none!important}');const t=ht;Ye(!0),setTimeout(()=>pt(e,t),120)}function Te(t,e){if(t.save(),t.translate(e.x,e.y),e.a&&t.rotate(e.a),'word'===e.kind)t.font=e.font,t.fillStyle=e.color,t.textBaseline='alphabetic',t.textAlign='left',1!==e.k&&t.scale(e.k,1),t.fillText(e.text,-e.tw/2,e.base);else if('box'===e.kind)t.fillStyle=e.fill,t.beginPath(),t.roundRect&&e.rad>.5?t.roundRect(-e.w/2,-e.h/2,e.w,e.h,e.rad):t.rect(-e.w/2,-e.h/2,e.w,e.h),t.fill();else{e.o<1&&(t.globalAlpha=e.o);try{((t,e)=>{const o=e.src,n=o.naturalWidth||o.videoWidth||o.width,a=o.naturalHeight||o.videoHeight||o.height;if(!n||!a)return;let i=-e.w/2,r=-e.h/2,l=e.w,s=e.h,c=0,d=0,h=n,p=a;const u=n/a,f=e.w/e.h;'cover'===e.fit?u>f?(h=a*f,c=(n-h)/2):(p=n/f,d=(a-p)/2):'contain'!==e.fit&&'scale-down'!==e.fit||(u>f?(s=e.w/u,r=-s/2):(l=e.h*u,i=-l/2)),e.rad>1&&t.roundRect&&(t.beginPath(),t.roundRect(-e.w/2,-e.h/2,e.w,e.h,Math.min(e.rad,e.w/2,e.h/2)),t.clip()),t.drawImage(o,c,d,h,p,i,r,l,s)})(t,e)}catch(t){}}t.restore()}function Ce(t){const e=wt;e.setTransform(Gt,0,0,Gt,0,0),e.clearRect(0,0,_t,zt),ge=Math.max(0,ge-1.6*t);const o=ge>0?26*(u()-.5)*ge*ge:0,n=ge>0?20*(u()-.5)*ge*ge:0;if(e.setTransform(Gt,0,0,Gt,o*Gt,n*Gt),'rug'===Ne||'card'===Ne||'refund'===Ne)for(const t of Zt)Te(e,t);if('rug'===Ne||'card'===Ne){te&&e.drawImage(te.c,0,0,_t,zt);for(const t of Jt)t.done||'word'===t.kind||Te(e,t);ee&&e.drawImage(ee.c,0,0,_t,zt);for(const t of Jt)t.done||'word'!==t.kind||Te(e,t);if('card'===Ne){const t=.5*l((We-Pe)/.4,0,1);e.fillStyle='rgba(5,7,10,'+t+')',e.fillRect(-40,-40,_t+80,zt+80)}}else if('refund'===Ne)for(const t of Jt){const o=c(l((ke-t.rd)/.95,0,1)),n=s(t.fx,t.hx,o),a=s(t.fy,t.hy,o)-Math.sin(o*Math.PI)*t.lift,i=t.fa*(1-o),r=t.x,d=t.y,h=t.a;t.x=n,t.y=a,t.a=i,Te(e,t),t.x=r,t.y=d,t.a=h}e.setTransform(Gt,0,0,Gt,0,0);for(let t=Vt.length-1;t>=0;t--){const o=Vt[t],n=(We-o.t)/1.1;if(n>=1){Vt.splice(t,1);continue}e.globalAlpha=n<.15?n/.15:1-Math.max(0,(n-.6)/.4),e.font='800 15px '+M,e.textAlign='center',e.textBaseline='middle';const a=o.y-18-46*d(n),i=e.measureText(o.text).width+18;e.fillStyle='rgba(11,14,19,.92)',e.beginPath(),e.roundRect?e.roundRect(o.x-i/2,a-13,i,26,13):e.rect(o.x-i/2,a-13,i,26),e.fill(),e.fillStyle=v,e.fillText(o.text,o.x,a+1),e.globalAlpha=1}fe>0&&(e.fillStyle='rgba(242,59,76,'+(.4*fe).toFixed(3)+')',e.fillRect(0,0,_t,zt),fe=Math.max(0,fe-2.2*t))}let $e=!0,Re=0,Le=0,Ee=0,Pe=0;function Ae(t){if(!kt)return;Le+=t;const e=r?d(Le/.45):1;let o='out'===Ne?l(Ee/.3,0,1):0;'card'!==Ne&&'refund'!==Ne||(o=Math.max(o,l((We-Pe)/.35,0,1))),kt.style.transform=_t<=820?`translateY(${110*(1-e+o)}%)`:`translateX(${115*(1-e+o)}%)`,kt.style.opacity=String(1-.6*o),vt&&(vt.style.transform=`translateY(${100*-(1-e+('out'===Ne||'refund'===Ne?l('out'===Ne?Ee/.3:ke/.3,0,1):0))}%)`);const n='pump'!==Ne&&'out'!==Ne,a=at()>=0&&!n;Pt.price.textContent=(t=>{if(t>=1)return'$'+t.toFixed(2);const e=Math.max(0,-Math.floor(Math.log10(t))-1);return'$'+t.toFixed(Math.min(12,e+4))})(tt()),Pt.price.style.color=n?w:m,Pt.chg.textContent=nt(n?100*(Math.exp(U-q)-1):at()),Pt.chg.style.color=a?y:w,Pt.age.textContent=n?'RUGGED':'age '+Math.floor(We)+'s',Pt.age.style.color=n?w:b,Pt.mc.textContent=ot(et()),Pt.hold.textContent=_.toLocaleString('en-US'),Pt.vol.textContent=ot(z),Pt.liq.textContent=n?'$0':ot(.17*et()),Pt.liq.style.color=n?w:'',Pt.cv.textContent=(100*G).toFixed(1)+'%',Pt.bar.style.width=(100*G).toFixed(2)+'%',n&&(Pt.bar.style.background=w),Pt.live.style.color=n?w:y,Pt.live.textContent=n?'everyone is selling':'live',(()=>{const t=Tt,e=St.width/Gt,o=St.height/Gt;if(e<10)return;t.setTransform(Gt,0,0,Gt,0,0),t.clearRect(0,0,e,o);const n=N.concat([W]),a=Math.min(n.length,Math.max(24,Math.floor(e/7))),i=n.slice(-a);let r=1/0,s=-1/0;for(const t of i)r=Math.min(r,Math.exp(t.l)),s=Math.max(s,Math.exp(t.h));s-r<.02*s&&(s*=1.01,r*=.99);const c=t=>o-10-(t-r)/(s-r)*(o-20);t.strokeStyle='rgba(255,255,255,.05)',t.lineWidth=1,t.beginPath();for(let n=1;n<4;n++){const a=Math.round(o/4*n)+.5;t.moveTo(0,a),t.lineTo(e,a)}t.stroke();const d=e/Math.max(a,24);i.forEach((e,o)=>{const n=o*d+d/2,a=Math.exp(e.o),i=Math.exp(e.c);t.strokeStyle=t.fillStyle=i>=a?y:w,t.beginPath(),t.moveTo(Math.round(n)+.5,c(Math.exp(e.h))),t.lineTo(Math.round(n)+.5,c(Math.exp(e.l))),t.stroke();const r=c(Math.max(a,i)),l=c(Math.min(a,i));t.fillRect(Math.round(n-.34*d),r,Math.max(1,Math.round(.68*d)),Math.max(1,l-r))});const h=c(tt()),p='pump'!==Ne&&'out'!==Ne;if(t.strokeStyle=p?w:y,t.setLineDash([3,3]),t.beginPath(),t.moveTo(0,Math.round(h)+.5),t.lineTo(e,Math.round(h)+.5),t.stroke(),t.setLineDash([]),p&&We-K<3){t.font='800 22px '+M,t.textAlign='center',t.textBaseline='middle',t.fillStyle='rgba(242,59,76,'+l((We-K)/.2,0,1)+')',t.save(),t.translate(e/2,o/2),t.rotate(-.12),t.strokeStyle=w,t.lineWidth=2.5;const n='RUG PULLED',a=t.measureText(n).width+22;t.strokeRect(-a/2,-18,a,36),t.fillText(n,0,1),t.restore()}})(),Re-=t,($e||Re<=0)&&((()=>{const t=rt.slice(0,12);for(;Ct.children.lengtht.length;)Ct.lastChild.remove();t.forEach((t,e)=>{const o=Ct.children[e];o.className=('buy'===t.side?'buy0':'sell0')+('you'===t.kind?' you':'dev'===t.kind?' dev':''),o.children[0].textContent=t.who,o.children[1].textContent=t.verb,o.children[2].textContent=t.sol.toFixed(t.sol>=100?0:t.sol>=1?2:3)+' SOL';const n=Math.max(0,We-t.t);o.children[3].textContent=n<60?Math.floor(n)+'s':Math.floor(n/60)+'m',e&&(o.style.opacity='',o.style.transform='')})})(),$e=!1,Re=.5);const i=Ct.firstChild;if(i&&rt[0]){const t=l((We-rt[0].t)/.22,0,1);i.style.opacity=String(t),i.style.transform=`translateX(${-14*(1-t)}px)`}if(vt&&Mt){Ft||(Ft=Mt.scrollWidth/2),Ut=(Ut+58*t)%Math.max(1,Ft),Mt.style.transform=`translateX(${-Ut}px)`;for(const t of At){const e=t.t===R?n?100*(Math.exp(U-q)-1):at():n?-(88+Math.abs(t.v)%11.9):t.v;for(const o of t.els)o.textContent=(e>=0?'\u25b2':'\u25bc')+' '+nt(e),o.className=e>=0?'u':'d'}}}const Fe=640,Ue=360;function Be(t){const e=Math.min(1,(_t-24)/Fe),o=t?2:Gt,n=t||Rt;n.width=Fe*o,n.height=Ue*o,t||(n.style.width=Fe*e+'px',n.style.height=Ue*e+'px',$t.style.transform='translate(-50%, -62%)');const i=n.getContext('2d');i.setTransform(o,0,0,o,0,0);const r=i.createLinearGradient(0,0,Fe,Ue);r.addColorStop(0,'#120d12'),r.addColorStop(1,'#0a0d12'),i.fillStyle=r,i.roundRect?(i.beginPath(),i.roundRect(0,0,Fe,Ue,16),i.fill()):i.fillRect(0,0,Fe,Ue),i.save(),i.beginPath(),i.roundRect?i.roundRect(0,0,Fe,Ue,16):i.rect(0,0,Fe,Ue),i.clip(),i.strokeStyle='rgba(255,255,255,.035)',i.lineWidth=1;for(let t=0;tt.c),c=Math.min(...s),d=Math.max(...s),p=Fe-28,u=250,f=t=>300+t/Math.max(1,s.length-1)*(p-300),g=t=>u-(t-c)/Math.max(1e-9,d-c)*158,x=l(N.length-(Z-Q),0,s.length-1),T=i.createLinearGradient(0,92,0,u);T.addColorStop(0,'rgba(30,197,132,.28)'),T.addColorStop(1,'rgba(30,197,132,0)'),i.beginPath(),s.forEach((t,e)=>e?i.lineTo(f(e),g(t)):i.moveTo(f(e),g(t))),i.lineTo(f(s.length-1),u),i.lineTo(f(0),u),i.closePath(),i.fillStyle=T,i.fill(),i.lineWidth=2.5,i.lineJoin='round',i.strokeStyle=y,i.beginPath();for(let t=0;t<=Math.min(x,s.length-1);t++)t?i.lineTo(f(t),g(s[t])):i.moveTo(f(t),g(s[t]));i.stroke(),i.strokeStyle=w,i.beginPath();for(let t=x;tx?i.lineTo(f(t),g(s[t])):i.moveTo(f(t),g(s[t]));i.stroke(),i.fillStyle=`hsl(${E} 90% 66%)`,i.beginPath(),i.arc(46,50,20,0,h),i.fill(),i.fillStyle='#0b0e13',i.font='800 18px '+M,i.textAlign='center',i.textBaseline='middle',i.fillText(R[0],46,51),i.textAlign='left',i.fillStyle=m,i.font='900 30px '+M,i.fillText(qe(i,'$'+R,230),76,46),i.fillStyle=b,i.font='600 12px '+M,i.fillText(qe(i,S||L,220),77,70);const C=100*(Math.exp(U-q)-1);i.fillStyle=w,i.font='900 64px '+M,i.textBaseline='alphabetic',i.fillText(nt(C),26,162),i.font='700 14px '+k,i.fillStyle=m,[['ATH',ot(Math.exp(q)*F)+' \u2192 '+ot(et())],['Holders',_.toLocaleString('en-US')+' left holding the bag'],['You bought',j?j+(1===j?' time, ':' times, ')+O.toFixed(2)+' SOL':'nothing. Smart.'],['The dev','walked away with '+J.toFixed(0)+' SOL']].forEach(([t,e],o)=>{const n=200+26*o;i.fillStyle=b,i.font='600 11px '+M,i.fillText(t.toUpperCase(),28,n),i.fillStyle=m,i.font='700 13.5px '+k,i.fillText(qe(i,e,300),110,n)}),i.save(),i.translate(470,70),i.rotate(-.16),i.strokeStyle=w,i.fillStyle=w,i.lineWidth=3,i.font='900 30px '+M,i.textAlign='center',i.textBaseline='middle';const $=i.measureText('RUGGED').width+30;i.strokeRect(-$/2,-24,$,48),i.strokeRect(-$/2+5,-19,$-10,38),i.fillText('RUGGED',0,2),i.restore(),i.fillStyle='rgba(255,255,255,.07)',i.fillRect(0,Ue-40,Fe,40),i.font='800 13px '+M,i.fillStyle=m,i.textAlign='left',i.textBaseline='middle',i.fillText('RUGPULL',26,Ue-20),i.font='600 11.5px '+M,i.fillStyle=b,i.fillText('a parody: no coins, no wallets, nothing left the browser',104,Ue-20),!1!==a.credit&&(i.textAlign='right',i.fillStyle=v,i.font='800 13px '+M,i.fillText('@shmidtqq',Fe-24,Ue-20)),i.restore()}const qe=(t,e,o)=>{if(t.measureText(e).width<=o)return e;for(;e.length>1&&t.measureText(e+'\u2026').width>o;)e=e.slice(0,-1);return e+'\u2026'};async function _e(t=!0){if('card'!==Ne&&'rug'!==Ne)return qt('Pull the rug first (R)'),null;const o=e.createElement('canvas');Be(o);const n=await new Promise(t=>o.toBlob(t,'image/png'));if(t&&n){const t=e.createElement('a');t.href=URL.createObjectURL(n),t.download='rugpull-'+R.toLowerCase()+'.png',t.style.display='none',bt.appendChild(t),t.click(),t.remove(),setTimeout(()=>URL.revokeObjectURL(t.href),4e3),qt('Saved '+t.download)}return{blob:n,width:o.width,height:o.height}}let ze=null,Ge=!a.sound;function je(e,o,n,a,i,r){const l=(()=>{if(Ge)return null;try{return ze=ze||new(t.AudioContext||t.webkitAudioContext),'suspended'===ze.state&&ze.resume(),ze}catch(t){return null}})();if(!l)return;const s=l.currentTime+a,c=l.createOscillator(),d=l.createGain();c.type=e,c.frequency.setValueAtTime(o,s),c.frequency.exponentialRampToValueAtTime(n,s+i),d.gain.setValueAtTime(1e-4,s),d.gain.exponentialRampToValueAtTime(r,s+.012),d.gain.exponentialRampToValueAtTime(1e-4,s+i),c.connect(d),d.connect(l.destination),c.start(s),c.stop(s+i+.05)}const Oe=()=>{je('sine',1318,1318,0,.09,.05),je('sine',1976,1976,.07,.16,.045)},De=()=>{[392,370,349].forEach((t,e)=>je('triangle',t,.98*t,.32*e,.3,.09)),je('triangle',330,262,.96,1.1,.1),je('sawtooth',120,38,0,1.2,.035)};let Ie=!0,Ne='pump',We=0,He=0,Ve=0;function Xe(){if(Ie)return'pump'===Ne?(Ne='out',Ee=0,void(ut&&(ft.clear(),gt.clear()))):void('rug'!==Ne&&'card'!==Ne||(()=>{Ne='refund',ke=0,$t&&($t.style.display='none');try{t.scrollTo({left:ne.x,top:ne.y,behavior:'instant'})}catch(e){t.scrollTo(ne.x,ne.y)}for(const t of Jt)t.fx=t.x,t.fy=t.y,t.fa=Math.atan2(Math.sin(t.a),Math.cos(t.a)),t.rd=.22*u()+('word'===t.kind?.12:0),t.lift=40+120*u();Qt=null,te=ee=null,[523,659,784,1046].forEach((t,e)=>je('sine',t,t,.07*e,.22,.045)),r&&Jt.length||Se()})())}function Ye(o){if(Ie){if(Ie=!1,t.removeEventListener('click',Qe,!0),t.removeEventListener('mousedown',to,!0),t.removeEventListener('mouseup',to,!0),t.removeEventListener('auxclick',to,!0),t.removeEventListener('keydown',eo,!0),t.removeEventListener('resize',oo),cancelAnimationFrame(He),o||pe(),pt(e,dt),ut&&(CSS.highlights.delete('rugpull-crowd'),CSS.highlights.delete('rugpull-you')),mt&&mt.remove(),mt=bt=null,Jt=[],Zt=[],ze){try{ze.close()}catch(t){}ze=null}clearTimeout(Bt),t.__rugpull===no&&delete t.__rugpull}}function Ke(t){try{(t=>{We+=t,it(t),(t=>{if(lt-=t,!(lt>0))if('pump'===Ne){lt=.16+.46*u();const t=u()<.18,e=Math.min(40,.55*Math.exp(.95*f()));st(A(),t?'sell':'buy',e),U+=(t?-1:1)*(.003+.0035*e),G=Math.min(1,G+(t?0:.0012*e)),!t&&u()<.6&&It(!1)}else if('rug'===Ne||'card'===Ne){const t=We-K;if(t>6)return void(lt=1e9);lt=.06+.16*u()+.05*t,st(A(),'sell',.004*Math.exp(.8*f()),'panic')}})(t),'rug'!==Ne&&'card'!==Ne||r&&(t=>{for(const e of Jt){if(e.done)continue;if(e.delay>0){e.delay-=t;continue}e.vy+=2700*t,e.vx*=1-.4*t,e.x+=e.vx*t,e.y+=e.vy*t,e.a+=e.va*t,e.x<0&&(e.x=0,e.vx=.4*Math.abs(e.vx)),e.x>_t&&(e.x=_t,e.vx=.4*-Math.abs(e.vx));const o=ye(e);if(me(e)){e.y-o.hh>zt-Math.min(2*o.hh*.38,150)&&Me(e);continue}let n=0;for(let t=o.c0;t<=o.c1;t++)oe[t]>n&&(n=oe[t]);e.vy>0&&e.y+o.hh>=zt-n&&ve(e,n)}})(t),'rug'===Ne&&We-K>(r?2.4:.6)&&'rug'===Ne&&(Ne='card',Pe=We,Be(),$t.style.display='block'),'refund'===Ne&&(ke+=t,ke>1.35)?Se():'out'===Ne&&(Ee+=t,Ee>.32||!r)?Ye():(Ce(t),Ae(t))})(t)}catch(t){throw pe(),Ye(),t}}const Je=t=>mt&&t.composedPath&&t.composedPath().indexOf(mt)>=0,Ze=t=>!!(t.target&&t.target.closest&&t.target.closest('[data-rugpull-ignore]')),Qe=t=>{!Ie||Je(t)||Ze(t)||(t.preventDefault(),t.stopPropagation(),'pump'===Ne&&0===t.button&&It(!0,t.clientX,t.clientY))},to=t=>{!Ie||Je(t)||Ze(t)||(t.preventDefault(),t.stopPropagation())},eo=t=>{if(!Ie||t.ctrlKey||t.metaKey||t.altKey)return;const e=t.target;if(e&&(e.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName))&&'Escape'!==t.key)return;const o=t.key;let n=!0;'Escape'===o?Xe():'r'===o||'R'===o?xe():'b'===o||'B'===o?It(!0):'s'===o||'S'===o?_e(!0):'m'===o||'M'===o?(Ge=!Ge,qt(Ge?'Sound off':'Sound on')):n=!1,n&&(t.preventDefault(),t.stopPropagation())},oo=()=>jt(),no={version:'1.0.0',get alive(){return Ie},toggle:Xe,stop:()=>{pe(),Ye()},rug:xe,buy:(t,e)=>It(!0,t,e),save:t=>_e(t),step:t=>{Ie&&Ke(t)},state:()=>({phase:Ne,ticker:R,price:tt(),marketCap:et(),athMarketCap:Math.exp(q)*F,holders:_,curve:G,you:j,crowd:D,trades:I,particles:Jt.length,settled:ae})};t.__rugpull=no,(()=>{mt=e.createElement('rugpull-overlay'),mt.setAttribute('data-rugpull',''),mt.style.cssText='position:fixed!important;inset:0!important;z-index:2147483647!important;pointer-events:none!important;display:block!important;background:none!important;border:0!important;margin:0!important;padding:0!important;opacity:1!important;visibility:visible!important',bt=mt.attachShadow({mode:'open'}),bt.adoptedStyleSheets=[ct(xt)];const t=Et('div','w',bt);yt=Et('canvas','fx',t),wt=yt.getContext('2d'),!1!==a.tape&&(vt=Et('div','tape',t),Mt=Et('div','track',vt),(()=>{const t=[[R,0]].concat(P.slice(0,16).map(t=>[t.toUpperCase().slice(0,10),0]));At=t.map(([t])=>({t,v:t===R?0:(u()<.78?1:-1)*Math.exp(5.2*u())})),Mt.textContent='';for(let t=0;t<2;t++)for(const t of At){const e=Et('span','',Mt);Et('b','t',e,'$'+t.t+' '),t.els=(t.els||[]).concat(Et('b','u',e,''))}Ft=0})()),kt=Et('section','panel',t),kt.setAttribute('aria-label','RUGPULL trading panel');const n=Et('div','hd',kt);Et('div','ava',n,R[0]).style.background=`radial-gradient(circle at 32% 28%,hsl(${E} 95% 78%),hsl(${(E+40)%360} 85% 52%))`;const i=Et('div','id',n);Et('b','',i,'$'+R),Et('span','',i,L+(S?' \xb7 '+S:''));const r=Et('button','x',n,'\xd7');r.setAttribute('aria-label','Close RUGPULL'),r.addEventListener('click',()=>Xe());const l=Et('div','px',kt);Pt.price=Et('b','',l),Pt.chg=Et('span','',l),Pt.age=Et('small','',l),St=Et('canvas','chart',kt),Tt=St.getContext('2d');const s=Et('div','st',kt),c=t=>{const e=Et('div','',s);return Et('span','',e,t),Et('b','',e)};Pt.mc=c('Market cap'),Pt.hold=c('Holders'),Pt.vol=c('Volume'),Pt.liq=c('Liquidity');const d=Et('div','cv',kt),h=Et('div','l',d);Et('span','',h,'Bonding curve'),Pt.cv=Et('b','',h),Pt.bar=Et('i','',Et('div','bar',d));const p=Et('div','ac',kt);Pt.buy=Et('button','buy',p,'Buy'),Pt.rug=Et('button','rug',p,'Rug pull'),Pt.buy.addEventListener('click',()=>It(!0)),Pt.rug.addEventListener('click',()=>xe());const f=Et('div','fh',kt);Et('span','',f,'Trades'),Pt.live=Et('i','',f,'live'),Ct=Et('ul','',kt);const g=Et('div','ft',kt);if(Et('span','',g,'Parody. No coins, no wallets, nothing leaves your browser.'),!1!==a.credit){const t=Et('a','',g,'rugpull by @shmidtqq');t.href='https://github.com/shmidtqq65/rugpull',t.target='_blank',t.rel='noopener'}$t=Et('div','cardw',t),Rt=Et('canvas','card',$t);const x=Et('div','cb',$t);Pt.save=Et('button','sv',x,'Save PNG'),Pt.refund=Et('button','rf',x,'Refund (Esc)'),Pt.save.addEventListener('click',()=>_e(!0)),Pt.refund.addEventListener('click',()=>Xe()),Lt=Et('div','toast',t),o.appendChild(mt),jt()})(),t.addEventListener('click',Qe,!0),t.addEventListener('mousedown',to,!0),t.addEventListener('mouseup',to,!0),t.addEventListener('auxclick',to,!0),t.addEventListener('keydown',eo,!0),t.addEventListener('resize',oo);for(let t=0;t<18;t++)it(.42);for(let t=0;t<4;t++)st(A(),'buy',.5*Math.exp(f()));rt.forEach((t,e)=>{t.t=2*-e-1}),i?(Ce(0),Ae(0)):(Ve=performance.now(),He=requestAnimationFrame(function t(e){if(!Ie)return;const o=Math.min(.05,Math.max(0,(e-Ve)/1e3));Ve=e,Ke(o),Ie&&(He=requestAnimationFrame(t))}))})(); } window.addEventListener('keydown', function (e) { if (!e.altKey || !e.shiftKey || e.ctrlKey || e.metaKey || e.repeat || e.code !== 'KeyR') return; var t = e.target; if (t && (t.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName))) return; e.preventDefault(); run(); }, true); })();