function createSeededRandom(t){const e=2147483648;let o=t||Math.floor(Math.random()*(e-1));return function(){return o=(1103515245*o+12345)%e,o/(e-1)}}Math.random=createSeededRandom(69);const VIRTUAL_SIZE=900,TOP_Y=90,BOTTOM_Y=810,TRAIL_ORIGIN_X=.7*VIRTUAL_SIZE,CENTER_Y=VIRTUAL_SIZE/2,AXES_ORIGIN={x:.1*VIRTUAL_SIZE,y:.9*VIRTUAL_SIZE},canvas=document.getElementById("canvas"),ctx=canvas.getContext("2d");function resizeCanvas(){const t=document.getElementById("container").clientWidth;canvas.width=t,canvas.height=t}window.addEventListener("resize",resizeCanvas),resizeCanvas();let currentY=CENTER_Y,velocity=0;const velocityRange=1,velocityDamping=.98,maxSpeed=3;let lastSign=0,timeInSign=0;const MESSAGE_INTERVAL=50,trail=[],trailSpeed=2,topImage=new Image,bottomImage=new Image;let topImageAlpha=0,bottomImageAlpha=0;const fadeDuration=500,strongPositiveWords=["🤑🤑","Bags secured, peasants!","My landlord can go fuck himself!","Who said crypto was risky?","Retiring next week!","I'm all in!","LFG!","Crypto forever","Never selling!","I'm a genius!","TO THE MOON","Unstoppable!","Lambo time, babyy","Tell my boss I quit!","Fuck working, I'm rich!","How do I short poverty?","They doubted me. Fools.","Infinite money glitch","Elon was right!"],weakPositiveWords=["📈📈📈","Go up","Meh","Mildly bullish","A small W is still a W","Good vibes only… for now","Wake me up when it's real","One green candle, let's gooo?","Mild hopium","Green is green","Keep going","At least it ain't red","We're so back!","One candle won't save us","Could be worse"],weakNegativeWords=["💀","Weak.","Paper hands crying already?","Could be a trap","Bruh","I'll buy the dip. Again.","Go up","Could be the bottom?","A tiny bit REKT","Just a little turbulence.","Time to start an OnlyFans","Still time to recover…","Nothing to see here, folks","SMH","I refuse to call this bearish","Not looking great"],strongNegativeWords=["😭😭","This is shit!","I'm out","It's just market manipulation!","GG, sell.","Everything's gone.","It's over","Fuck fuck fuck","Never liked it anyways","Crypto was a mistake.","Crypto's a scam!","Never again!","Delete my account","Goodbye, cruel world","Burn it all to the ground!","Someone turn this shit off","Are you serious right now?","It's over, pack it up!","Fucking hell I hate this market.."],weakweakPositiveWords=["😑","Doesn't count","Might cover the trading fees","Barely alive","Meh","On life support","Joke of a pump","Flatter than my ex","As positive as a dead battery","Blink and you'll miss it","Most boring pump ever","Pathetic pump","Up? Lol","Limping upward","If you zoom in it's green!"],weakweakNegativeWords=["🤦‍♂️","I mean, it's red, but like… barely","Red again? You piece of shit","It will soon be worse","Just red enough to piss me off.","Baby dip","Could be worse… could be a rug pull","Down, but in a polite way","Quit teasing and just crash already","This is dumb","Either dump or pump, stop this bullshit","Bears teasing","Oh, red again? Eat shit."],messages=[],messageDuration=400;function spawnMessage(t){const e=(BOTTOM_Y-TOP_Y)/3,o=TOP_Y+e,a=TOP_Y+2*e;let n;n=t?currentY=BOTTOM_Y?currentY=BOTTOM_Y-t:currentY<=TOP_Y&&(currentY=TOP_Y+t)}function drawArrowHead(){if(0===trail.length)return;const t=trail[trail.length-1];let e=0;if(trail.length>1){const o=trail[trail.length-2];e=Math.atan2(t.y-o.y,t.x-o.x)}ctx.save(),ctx.translate(t.x,t.y),ctx.rotate(e),ctx.beginPath(),ctx.moveTo(0,0),ctx.lineTo(-12,8),ctx.lineTo(-12,-8),ctx.closePath(),ctx.fillStyle="blue",ctx.fill(),ctx.restore()}function computeTargetBgColor(){let t=255,e=255,o=255;if(currentYCENTER_Y){let t=(currentY-CENTER_Y)/(BOTTOM_Y-CENTER_Y);e=Math.round(255*(1-t)),o=Math.round(255*(1-t))}return{r:t,g:e,b:o}}let currentBgColor={r:255,g:255,b:255};function updateBgColor(t){const e=computeTargetBgColor(),o=Math.min(t/200,1);currentBgColor.r+=o*(e.r-currentBgColor.r),currentBgColor.g+=o*(e.g-currentBgColor.g),currentBgColor.b+=o*(e.b-currentBgColor.b)}function computeTextColor(t){const e=(currentY-TOP_Y)/(BOTTOM_Y-TOP_Y);let o;if(t){o=`rgb(0,${Math.round(100+155*e)},0)`}else{o=`rgb(${Math.round(255*(1-e))},0,0,0.7)`}return o}function drawAxes(){const t={x:AXES_ORIGIN.x,y:.1*VIRTUAL_SIZE},e={x:.9*VIRTUAL_SIZE,y:AXES_ORIGIN.y};ctx.lineWidth=2,ctx.strokeStyle="black",ctx.beginPath(),ctx.moveTo(AXES_ORIGIN.x,AXES_ORIGIN.y),ctx.lineTo(t.x,t.y),ctx.stroke(),ctx.save(),ctx.translate(t.x,t.y),ctx.beginPath(),ctx.moveTo(0,0),ctx.lineTo(5,10),ctx.lineTo(-5,10),ctx.closePath(),ctx.fillStyle="black",ctx.fill(),ctx.restore(),ctx.beginPath(),ctx.moveTo(AXES_ORIGIN.x,AXES_ORIGIN.y),ctx.lineTo(e.x,e.y),ctx.stroke(),ctx.save(),ctx.translate(e.x,e.y),ctx.beginPath(),ctx.moveTo(0,0),ctx.lineTo(-10,5),ctx.lineTo(-10,-5),ctx.closePath(),ctx.fillStyle="black",ctx.fill(),ctx.restore()}const topImageUrls=["/content/c17dd02a7f216f4b438ab1a303f518abfc4d4d01dcff8f023cf87c4403cb54cai0","/content/53d9e13d22438dc84aba3cb063f68906dcf0d17a991b3cdf82b52dd054bc5b38i0","/content/9dfc3db1303f1fc4e274a465d50a465c46bdedf7ef5ec976202fc72e6b466f6ei0"];let topImageIndex=0;const bottomImageUrls=["/content/afbc585bac160aa107e2fcd8f70e75b56876830afe31c98e698a998ef40ba9aai0","/content/26482871f33f1051f450f2da9af275794c0b5f1c61ebf35e4467fb42c2813403i0","/content/cec975448ae91832a242681f86923b420ce83ee06800f320634a9ae5072a8f88i0","/content/24fc24fd452b384b72a3a60107243a4b80ff4d00a00fdb2d0e57d77151fb4987i0"];let bottomImageIndex=0,lastTime=performance.now();function animate(t){const e=t-lastTime;lastTime=t,velocity+=1*(Math.random()-.5),velocity=Math.max(-3,Math.min(3,velocity)),velocity*=.98,currentY+=velocity,bounceIfNeeded(),updateBgColor(e),trail.push({x:TRAIL_ORIGIN_X,y:currentY});for(const t of trail)t.x-=2;for(;trail.length&&trail[0].x0&&(o=-1),o!==lastSign?(lastSign=o,timeInSign=0):0!==o&&(timeInSign+=e,timeInSign>=50&&(spawnMessage(o>0),timeInSign=0)),ctx.resetTransform(),ctx.clearRect(0,0,canvas.width,canvas.height);const a=canvas.width/VIRTUAL_SIZE;ctx.setTransform(a,0,0,a,0,0);let n=1;(currentYCENTER_Y)&&(n=.8),ctx.fillStyle=`rgba(${Math.round(currentBgColor.r)},${Math.round(currentBgColor.g)},${Math.round(currentBgColor.b)}, ${n})`,ctx.fillRect(0,0,VIRTUAL_SIZE,VIRTUAL_SIZE),ctx.save(),ctx.beginPath(),ctx.rect(AXES_ORIGIN.x,0,VIRTUAL_SIZE-AXES_ORIGIN.x,VIRTUAL_SIZE),ctx.clip(),ctx.beginPath(),ctx.lineWidth=4,ctx.strokeStyle="#0077cc";for(let t=0;tBOTTOM_Y&&(linePositions[t]-=graphHeight);ctx.save(),ctx.strokeStyle="rgba(0, 0, 0, 0.8)",ctx.lineWidth=1.5;for(let t=0;t<16;t++)ctx.beginPath(),ctx.moveTo(AXES_ORIGIN.x,linePositions[t]),ctx.lineTo(VIRTUAL_SIZE-.1*VIRTUAL_SIZE,linePositions[t]),ctx.stroke();ctx.restore();for(let e=messages.length-1;e>=0;e--){const o=.2*VIRTUAL_SIZE,a=.8*VIRTUAL_SIZE,n=.2*VIRTUAL_SIZE,r=.8*VIRTUAL_SIZE,i=messages[e],c=t-i.spawnTime;if(c>400){messages.splice(e,1);continue}const s=150,l=c>s?Math.max(0,1-(c-s)/(400-s)):1;Math.max(o,Math.min(a,i.x)),Math.max(n,Math.min(r,i.y));ctx.save(),ctx.globalAlpha=l,ctx.font="20px sans-serif",ctx.textBaseline="top";const d=8,m=ctx.measureText(i.text).width+2*d,g=24+2*d,x=Math.min(Math.max(i.x-d,o),a-m),h=Math.min(Math.max(i.y-d,n),r-g);ctx.save(),ctx.shadowColor="rgba(0, 0, 0, 0.2)",ctx.shadowBlur=4,ctx.shadowOffsetX=2,ctx.shadowOffsetY=2,drawRoundedRect(ctx,x,h,m,g,20),ctx.fillStyle="white",ctx.fill(),ctx.restore(),ctx.save(),drawRoundedRect(ctx,x,h,m,g,20),ctx.lineWidth=1,ctx.strokeStyle="rgba(0, 0, 0, 0.7)",ctx.stroke(),ctx.restore(),ctx.font="20px sans-serif",ctx.fillStyle=computeTextColor(i.isUp),ctx.textBaseline="top",ctx.fillText(i.text,x+d,h+d),ctx.restore()}drawAxes(),ctx.save(),ctx.font="36px sans-serif",ctx.fillStyle="black",ctx.textAlign="center",ctx.textBaseline="middle";const r=(AXES_ORIGIN.x+.9*VIRTUAL_SIZE)/2;ctx.fillText("Time",r,AXES_ORIGIN.y+40),ctx.restore();const i=["Love","Money","Faith"],c=Math.floor(performance.now()/2e3)%i.length;ctx.save(),ctx.font="36px sans-serif",ctx.fillStyle="black",ctx.textAlign="center",ctx.textBaseline="middle";const s=(AXES_ORIGIN.y+.1*VIRTUAL_SIZE)/2;ctx.translate(AXES_ORIGIN.x-40,s),ctx.rotate(-Math.PI/2),ctx.fillText(i[c],0,0),ctx.restore();currentY=TOP_Y+(BOTTOM_Y-TOP_Y)/3*2?(0===bottomImageAlpha&&(document.getElementById("bottomGif").src=bottomImageUrls[bottomImageIndex],bottomImageIndex=(bottomImageIndex+1)%bottomImageUrls.length),bottomImageAlpha=Math.min(.3,bottomImageAlpha+e/500*.3)):bottomImageAlpha=Math.max(0,bottomImageAlpha-e/500*.3),document.getElementById("bottomGif").style.opacity=bottomImageAlpha.toString(),requestAnimationFrame(animate)}requestAnimationFrame(animate);console.log("Navigating the trenches"),console.log("by Akira Ishi"),console.log("https://linktr.ee/akira_ishi")// How compliant is the Sheep guided by the Sheperd and its Dogs