diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..abf62a0
--- /dev/null
+++ b/404.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ 0xSasha
+
+
+
+
+
+
+
diff --git a/CNAME b/CNAME
index 0a7a2f1..26cc540 100644
--- a/CNAME
+++ b/CNAME
@@ -1 +1 @@
-zeroxsasha.xyz
\ No newline at end of file
+https://zeroxsasha.xyz
\ No newline at end of file
diff --git a/assets/index-Jlpxj4qS.js b/assets/index-D0r9Sd1F.js
similarity index 99%
rename from assets/index-Jlpxj4qS.js
rename to assets/index-D0r9Sd1F.js
index b2b8c55..9113e1d 100644
--- a/assets/index-Jlpxj4qS.js
+++ b/assets/index-D0r9Sd1F.js
@@ -4025,4 +4025,4 @@ void main() {
vec3 clampedHdrColor = max( HALF_FLOAT_MIN, min( HALF_FLOAT_MAX, hdrColor ));
gl_FragColor = vec4( clampedHdrColor , 1.0 );
}
-`;class a6 extends Yi{constructor({gamma:e,offsetHdr:t,offsetSdr:i,gainMapMin:r,gainMapMax:s,maxDisplayBoost:o,hdrCapacityMin:a,hdrCapacityMax:l,sdr:h,gainMap:f}){super({name:"GainMapDecoderMaterial",vertexShader:s6,fragmentShader:o6,uniforms:{sdr:{value:h},gainMap:{value:f},gamma:{value:new B(1/e[0],1/e[1],1/e[2])},offsetHdr:{value:new B().fromArray(t)},offsetSdr:{value:new B().fromArray(i)},gainMapMin:{value:new B().fromArray(r)},gainMapMax:{value:new B().fromArray(s)},weightFactor:{value:(Math.log2(o)-a)/(l-a)}},blending:ms,depthTest:!1,depthWrite:!1}),this._maxDisplayBoost=o,this._hdrCapacityMin=a,this._hdrCapacityMax=l,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(e){this.uniforms.sdr.value=e}get gainMap(){return this.uniforms.gainMap.value}set gainMap(e){this.uniforms.gainMap.value=e}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(e){this.uniforms.offsetHdr.value.fromArray(e)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(e){this.uniforms.offsetSdr.value.fromArray(e)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(e){this.uniforms.gainMapMin.value.fromArray(e)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(e){this.uniforms.gainMapMax.value.fromArray(e)}get gamma(){const e=this.uniforms.gamma.value;return[1/e.x,1/e.y,1/e.z]}set gamma(e){const t=this.uniforms.gamma.value;t.x=1/e[0],t.y=1/e[1],t.z=1/e[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(e){this._hdrCapacityMin=e,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(e){this._hdrCapacityMax=e,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(e){this._maxDisplayBoost=Math.max(1,Math.min(65504,e)),this.calculateWeight()}calculateWeight(){const e=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,e))}}class zb extends Error{}class Bb extends Error{}const kc=(n,e,t)=>{var i;let r;const s=(i=n.attributes.getNamedItem(e))===null||i===void 0?void 0:i.nodeValue;if(s)r=s;else{const o=n.getElementsByTagName(e)[0];if(o){const a=o.getElementsByTagName("rdf:li");if(a.length===3)r=Array.from(a).map(l=>l.innerHTML);else throw new Error(`Gainmap metadata contains an array of items for ${e} but its length is not 3`)}else{if(t)return t;throw new Error(`Can't find ${e} in gainmap metadata`)}}return r},l6=n=>{var e,t;let i;typeof TextDecoder<"u"?i=new TextDecoder().decode(n):i=n.toString();let r=i.indexOf("",r);i.slice(r,o+10);const a=i.slice(r,o+10);try{const h=s.parseFromString(a,"text/xml").getElementsByTagName("rdf:Description")[0],f=kc(h,"hdrgm:GainMapMin","0"),d=kc(h,"hdrgm:GainMapMax"),p=kc(h,"hdrgm:Gamma","1"),v=kc(h,"hdrgm:OffsetSDR","0.015625"),y=kc(h,"hdrgm:OffsetHDR","0.015625");let M=(e=h.attributes.getNamedItem("hdrgm:HDRCapacityMin"))===null||e===void 0?void 0:e.nodeValue;M||(M="0");const _=(t=h.attributes.getNamedItem("hdrgm:HDRCapacityMax"))===null||t===void 0?void 0:t.nodeValue;if(!_)throw new Error("Incomplete gainmap metadata");return{gainMapMin:Array.isArray(f)?f.map(m=>parseFloat(m)):[parseFloat(f),parseFloat(f),parseFloat(f)],gainMapMax:Array.isArray(d)?d.map(m=>parseFloat(m)):[parseFloat(d),parseFloat(d),parseFloat(d)],gamma:Array.isArray(p)?p.map(m=>parseFloat(m)):[parseFloat(p),parseFloat(p),parseFloat(p)],offsetSdr:Array.isArray(v)?v.map(m=>parseFloat(m)):[parseFloat(v),parseFloat(v),parseFloat(v)],offsetHdr:Array.isArray(y)?y.map(m=>parseFloat(m)):[parseFloat(y),parseFloat(y),parseFloat(y)],hdrCapacityMin:parseFloat(M),hdrCapacityMax:parseFloat(_)}}catch{}r=i.indexOf("{const r=this.options.debug,s=new DataView(e.buffer);if(s.getUint16(0)!==65496){i(new Error("Not a valid jpeg"));return}const o=s.byteLength;let a=2,l=0,h;for(;a250){i(new Error(`Found no marker after ${l} loops 😵`));return}if(s.getUint8(a)!==255){i(new Error(`Not a valid marker at offset 0x${a.toString(16)}, found: 0x${s.getUint8(a).toString(16)}`));return}if(h=s.getUint8(a+1),r&&console.log(`Marker: ${h.toString(16)}`),h===226){r&&console.log("Found APP2 marker (0xffe2)");const f=a+4;if(s.getUint32(f)===1297106432){const d=f+4;let p;if(s.getUint16(d)===18761)p=!1;else if(s.getUint16(d)===19789)p=!0;else{i(new Error("No valid endianness marker found in TIFF header"));return}if(s.getUint16(d+2,!p)!==42){i(new Error("Not valid TIFF data! (no 0x002A marker)"));return}const v=s.getUint32(d+4,!p);if(v<8){i(new Error("Not valid TIFF data! (First offset less than 8)"));return}const y=d+v,M=s.getUint16(y,!p),_=y+2;let m=0;for(let N=_;N<_+12*M;N+=12)s.getUint16(N,!p)===45057&&(m=s.getUint32(N+8,!p));const w=y+2+M*12+4,T=[];for(let N=w;N{const e=l6(n);if(!e)throw new Bb("Gain map XMP metadata not found");const i=await new u6({extractFII:!0,extractNonFII:!0}).extract(n);if(i.length!==2)throw new zb("Gain map recovery image not found");return{sdr:new Uint8Array(await i[0].arrayBuffer()),gainMap:new Uint8Array(await i[1].arrayBuffer()),metadata:e}},CT=n=>new Promise((e,t)=>{const i=document.createElement("img");i.onload=()=>{e(i)},i.onerror=r=>{t(r)},i.src=URL.createObjectURL(n)});class Hb extends Ei{constructor(e,t){super(t),e&&(this._renderer=e),this._internalLoadingManager=new rg}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: An existing WebGL Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");const e=new a6({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new en,sdr:new en});return new A1({width:16,height:16,type:oi,colorSpace:Dn,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async render(e,t,i,r){const s=r?new Blob([r],{type:"image/jpeg"}):void 0,o=new Blob([i],{type:"image/jpeg"});let a,l,h=!1;if(typeof createImageBitmap>"u"){const p=await Promise.all([s?CT(s):Promise.resolve(void 0),CT(o)]);l=p[0],a=p[1],h=!0}else{const p=await Promise.all([s?createImageBitmap(s,{imageOrientation:"flipY"}):Promise.resolve(void 0),createImageBitmap(o,{imageOrientation:"flipY"})]);l=p[0],a=p[1]}const f=new en(l||new ImageData(2,2),Bo,Nn,Nn,$t,Hy,Hn,ar,1,Dn);f.flipY=h,f.needsUpdate=!0;const d=new en(a,Bo,Nn,Nn,$t,Hy,Hn,ar,1,ti);d.flipY=h,d.needsUpdate=!0,e.width=a.width,e.height=a.height,e.material.gainMap=f,e.material.sdr=d,e.material.gainMapMin=t.gainMapMin,e.material.gainMapMax=t.gainMapMax,e.material.offsetHdr=t.offsetHdr,e.material.offsetSdr=t.offsetSdr,e.material.gamma=t.gamma,e.material.hdrCapacityMin=t.hdrCapacityMin,e.material.hdrCapacityMax=t.hdrCapacityMax,e.material.maxDisplayBoost=Math.pow(2,t.hdrCapacityMax),e.material.needsUpdate=!0,e.render()}}class h6 extends Hb{load([e,t,i],r,s,o){const a=this.prepareQuadRenderer();let l,h,f;const d=async()=>{if(l&&h&&f){try{await this.render(a,f,l,h)}catch(P){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(i),typeof o=="function"&&o(P),a.disposeOnDemandRenderer();return}typeof r=="function"&&r(a),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(i),a.disposeOnDemandRenderer()}};let p=!0,v=0,y=0,M=!0,_=0,m=0,S=!0,w=0,T=0;const N=()=>{if(typeof s=="function"){const P=v+_+w,C=y+m+T,F=p&&M&&S;s(new ProgressEvent("progress",{lengthComputable:F,loaded:C,total:P}))}};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(i);const b=new Di(this._internalLoadingManager);b.setResponseType("arraybuffer"),b.setRequestHeader(this.requestHeader),b.setPath(this.path),b.setWithCredentials(this.withCredentials),b.load(e,async P=>{if(typeof P=="string")throw new Error("Invalid sdr buffer");l=P,await d()},P=>{p=P.lengthComputable,y=P.loaded,v=P.total,N()},P=>{this.manager.itemError(e),typeof o=="function"&&o(P)});const D=new Di(this._internalLoadingManager);D.setResponseType("arraybuffer"),D.setRequestHeader(this.requestHeader),D.setPath(this.path),D.setWithCredentials(this.withCredentials),D.load(t,async P=>{if(typeof P=="string")throw new Error("Invalid gainmap buffer");h=P,await d()},P=>{M=P.lengthComputable,m=P.loaded,_=P.total,N()},P=>{this.manager.itemError(t),typeof o=="function"&&o(P)});const L=new Di(this._internalLoadingManager);return L.setRequestHeader(this.requestHeader),L.setPath(this.path),L.setWithCredentials(this.withCredentials),L.load(i,async P=>{if(typeof P!="string")throw new Error("Invalid metadata string");f=JSON.parse(P),await d()},P=>{S=P.lengthComputable,T=P.loaded,w=P.total,N()},P=>{this.manager.itemError(i),typeof o=="function"&&o(P)}),a}}class f6 extends Hb{load(e,t,i,r){const s=this.prepareQuadRenderer(),o=new Di(this._internalLoadingManager);return o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setPath(this.path),o.setWithCredentials(this.withCredentials),this.manager.itemStart(e),o.load(e,async a=>{if(typeof a=="string")throw new Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");const l=new Uint8Array(a);let h,f,d;try{const p=await c6(l);h=p.sdr,f=p.gainMap,d=p.metadata}catch(p){if(p instanceof Bb||p instanceof zb)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),d={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},h=l;else throw p}try{await this.render(s,d,h,f)}catch(p){this.manager.itemError(e),typeof r=="function"&&r(p),s.disposeOnDemandRenderer();return}typeof t=="function"&&t(s),this.manager.itemEnd(e),s.disposeOnDemandRenderer()},i,a=>{this.manager.itemError(e),typeof r=="function"&&r(a)}),s}}const zv={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},d6="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",mp=n=>Array.isArray(n);function Vb({files:n=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:e="",preset:t=void 0,encoding:i=void 0,extensions:r}={}){var s;let o=null,a=!1,l;if(t){if(!(t in zv))throw new Error("Preset must be one of: "+Object.keys(zv).join(", "));n=zv[t],e=d6}const h=mp(n)&&n.length===6,f=mp(n)&&n.length===3&&n.some(_=>_.endsWith("json")),d=mp(n)?n[0]:n;if(a=mp(n),l=h?"cube":f?"webp":d.startsWith("data:application/exr")?"exr":d.startsWith("data:application/hdr")?"hdr":d.startsWith("data:image/jpeg")?"jpg":(s=d.split(".").pop())==null||(s=s.split("?"))==null||(s=s.shift())==null?void 0:s.toLowerCase(),o=l==="cube"?j2:l==="hdr"?$5:l==="exr"?e6:l==="jpg"||l==="jpeg"?f6:l==="webp"?h6:null,!o)throw new Error("useEnvironment: Unrecognized file extension: "+n);const p=tr(_=>_.gl),v=og(o,a?[n]:n,_=>{(l==="webp"||l==="jpg"||l==="jpeg")&&_.setRenderer(p),_.setPath==null||_.setPath(e),r&&r(_)});let y=a?v[0]:v;if(l==="jpg"||l==="jpeg"||l==="webp"){var M;y=(M=y.renderTarget)==null?void 0:M.texture}return y.mapping=h?xs:Iu,"colorSpace"in y?y.colorSpace=i??h?"srgb":"srgb-linear":y.encoding=i??h?i6:n6,y}const p6=n=>n.current&&n.current.isScene,m6=n=>p6(n)?n.current:n;function C1(n,e,t,i,r={}){var s,o,a,l,h;r={backgroundBlurriness:(s=r.blur)!==null&&s!==void 0?s:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...r};const f=m6(e||t),d=f.background,p=f.environment,v={backgroundBlurriness:f.backgroundBlurriness,backgroundIntensity:f.backgroundIntensity,backgroundRotation:(o=(a=f.backgroundRotation)==null||a.clone==null?void 0:a.clone())!==null&&o!==void 0?o:[0,0,0],environmentIntensity:f.environmentIntensity,environmentRotation:(l=(h=f.environmentRotation)==null||h.clone==null?void 0:h.clone())!==null&&l!==void 0?l:[0,0,0]};return n!=="only"&&(f.environment=i),n&&(f.background=i),xo(f,r),()=>{n!=="only"&&(f.environment=p),n&&(f.background=d),xo(f,v)}}function R1({scene:n,background:e=!1,map:t,...i}){const r=tr(s=>s.scene);return oe.useLayoutEffect(()=>{if(t)return C1(e,n,r,t,i)}),null}function Gb({background:n=!1,scene:e,blur:t,backgroundBlurriness:i,backgroundIntensity:r,backgroundRotation:s,environmentIntensity:o,environmentRotation:a,...l}){const h=Vb(l),f=tr(d=>d.scene);return oe.useLayoutEffect(()=>C1(n,e,f,h,{blur:t,backgroundBlurriness:i,backgroundIntensity:r,backgroundRotation:s,environmentIntensity:o,environmentRotation:a})),null}function g6({children:n,near:e=1,far:t=1e3,resolution:i=256,frames:r=1,map:s,background:o=!1,blur:a,backgroundBlurriness:l,backgroundIntensity:h,backgroundRotation:f,environmentIntensity:d,environmentRotation:p,scene:v,files:y,path:M,preset:_=void 0,extensions:m}){const S=tr(L=>L.gl),w=tr(L=>L.scene),T=oe.useRef(null),[N]=oe.useState(()=>new Fu),b=oe.useMemo(()=>{const L=new Wx(i);return L.texture.type=oi,L},[i]);oe.useLayoutEffect(()=>(r===1&&T.current.update(S,N),C1(o,v,w,b.texture,{blur:a,backgroundBlurriness:l,backgroundIntensity:h,backgroundRotation:f,environmentIntensity:d,environmentRotation:p})),[n,N,b.texture,v,w,o,r,S]);let D=1;return E1(()=>{(r===1/0||Ddb({GroundProjectedEnvImpl:q5}),[]);const a=oe.useMemo(()=>[o],[o]),l=(e=n.ground)==null?void 0:e.height,h=(t=n.ground)==null?void 0:t.radius,f=(i=(r=n.ground)==null?void 0:r.scale)!==null&&i!==void 0?i:1e3;return oe.createElement(oe.Fragment,null,oe.createElement(R1,pm({},n,{map:o})),oe.createElement("groundProjectedEnvImpl",{args:a,scale:f,height:l,radius:h}))}function y6(n){return n.ground?oe.createElement(v6,n):n.map?oe.createElement(R1,n):n.children?oe.createElement(g6,n):oe.createElement(Gb,n)}const _6=()=>{const n=og($B,"./Cosmo/scene.gltf");return he.jsx(he.Fragment,{children:he.jsx("primitive",{object:n.scene,scale:1.35,position:[0,-1.5,0]})})};function x6(){const n=oe.useRef();return E1(()=>{n.current&&(n.current.rotation.y+=.005)}),he.jsx("group",{ref:n,children:he.jsx(_6,{})})}const S6=()=>he.jsxs("main",{className:"Home",children:[he.jsxs("div",{className:"Home__text-block",children:[he.jsx("div",{className:"Home__title",children:he.jsx("h2",{className:"Home__title__item",children:"0xSasha"})}),he.jsx("div",{className:"Home__description",children:he.jsx("p",{className:"Home__description__item",children:"Software Engineer"})})]}),he.jsx("div",{className:"Home__container3D",children:he.jsxs(QB,{children:[he.jsx("ambientLight",{intensity:1}),he.jsx(t6,{enableZoom:!1}),he.jsx(oe.Suspense,{fallback:null,children:he.jsx(x6,{})}),he.jsx(y6,{preset:"sunset"})]})})]}),M6=()=>he.jsxs("svg",{fill:"#fff",version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32",xmlSpace:"preserve",children:[he.jsx("g",{id:"SVGRepo_bgCarrier",strokeWidth:"0"}),he.jsx("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),he.jsxs("g",{id:"SVGRepo_iconCarrier",children:[he.jsx("path",{id:"robot_1_",d:"M21.86,4.5h-0.72v-2h0.721L21.86,4.5L21.86,4.5z M10.86,2.5h-0.72v2h0.72V2.5z M28.896,15.825l0.209,0.688 l-0.799,0.243c-0.747,0.22-1.538-0.165-1.835-0.869l-2.413,1.394c-0.188,0.149-0.512,0.048-0.575-0.188 c-0.005-0.018-0.008-0.035-0.01-0.053l-0.749-2.794c-0.229,0.074-0.472,0.114-0.725,0.114H21.36V22c0,0.199-0.161,0.36-0.36,0.36 h-1.64v6.307c1.131,0.174,2,1.154,2,2.333c0,0.199-0.161,0.36-0.36,0.36h-4c-0.199,0-0.36-0.161-0.36-0.36 c0-1.179,0.869-2.159,2-2.333V22.36h-5.28v6.307c1.131,0.174,2,1.154,2,2.333c0,0.199-0.161,0.36-0.36,0.36h-4 c-0.199,0-0.36-0.161-0.36-0.36c0-1.179,0.869-2.159,2-2.333V22.36H11c-0.199,0-0.36-0.161-0.36-0.36v-7.641H9.999 c-0.242,0-0.476-0.037-0.696-0.104L8.562,17.02c-0.001,0.024-0.005,0.049-0.012,0.073c-0.062,0.229-0.364,0.334-0.558,0.201 l-2.435-1.406c-0.295,0.705-1.084,1.09-1.831,0.871l-0.828-0.244l0.203-0.69l0.828,0.243c0.421,0.124,0.871-0.12,0.995-0.544 c0.06-0.204,0.036-0.42-0.067-0.609c-0.103-0.189-0.272-0.326-0.476-0.385l-0.478-0.14l-0.722,0.422L2.817,14.19l0.854-0.5 c0.085-0.051,0.187-0.063,0.283-0.035l0.628,0.184c0.389,0.114,0.711,0.374,0.906,0.731c0.095,0.173,0.154,0.36,0.177,0.55 l2.304,1.33l0.674-2.518C8.037,13.504,7.639,12.797,7.639,12c0-1.301,1.059-2.36,2.36-2.36h0.642V9c0-0.199,0.161-0.36,0.36-0.36 h4.64V6.36H12c-0.199,0-0.36-0.161-0.36-0.36V1c0-0.199,0.161-0.36,0.36-0.36h8c0.199,0,0.36,0.161,0.36,0.36v5 c0,0.199-0.161,0.36-0.36,0.36h-3.64v2.28H21c0.199,0,0.36,0.161,0.36,0.36v0.64h0.639c1.302,0,2.36,1.059,2.36,2.36 c0,0.786-0.387,1.484-0.979,1.913l0.68,2.537l2.303-1.33c0.023-0.19,0.082-0.376,0.178-0.55c0.195-0.357,0.517-0.617,0.905-0.731 l0.626-0.183c0.1-0.03,0.204-0.016,0.29,0.037l0.825,0.5l-0.373,0.615l-0.689-0.418l-0.476,0.139 c-0.205,0.06-0.374,0.197-0.478,0.386c-0.103,0.188-0.127,0.405-0.066,0.609c0.125,0.423,0.574,0.669,0.995,0.543L28.896,15.825z M10.64,10.359H9.999c-0.904,0-1.64,0.736-1.64,1.64s0.736,1.64,1.64,1.64h0.642L10.64,10.359L10.64,10.359z M13,29.36 c-0.781,0-1.436,0.548-1.6,1.279h3.2C14.436,29.908,13.781,29.36,13,29.36z M19.64,5.64V1.36h-7.28v4.28 C12.36,5.64,19.64,5.64,19.64,5.64z M19,29.36c-0.78,0-1.436,0.548-1.601,1.279H20.6C20.436,29.908,19.78,29.36,19,29.36z M20.64,9.36h-9.28v12.28h9.28V9.36z M23.639,12c0-0.904-0.735-1.64-1.64-1.64H21.36v3.28h0.639 C22.903,13.64,23.639,12.904,23.639,12z M18.36,3.5c0,0.75-0.61,1.36-1.36,1.36h-2c-0.75,0-1.36-0.61-1.36-1.36S14.25,2.14,15,2.14 h2C17.75,2.14,18.36,2.75,18.36,3.5z M17.64,3.5c0-0.353-0.287-0.64-0.64-0.64h-2c-0.353,0-0.64,0.287-0.64,0.64 S14.647,4.14,15,4.14h2C17.353,4.14,17.64,3.853,17.64,3.5z"}),he.jsx("rect",{id:"_Transparent_Rectangle",style:{fill:"none"},width:"32",height:"32"})]})]}),w6=()=>he.jsxs("section",{className:"Missing",children:[he.jsxs("div",{className:"Missing__text",children:[he.jsx("h4",{className:"Missing__title",children:"Oops!"}),he.jsx("p",{className:"Missing__404",children:"404"})]}),he.jsx("div",{className:"Missing__svg",children:he.jsx(M6,{})})]}),E6=""+new URL("cryptobot-D-V5emks.jpg",import.meta.url).href,T6=""+new URL("0xSasha-DgORomb1.jpg",import.meta.url).href,A6=""+new URL("memonad-BCuRUFfa.jpg",import.meta.url).href,C6=()=>{const n=[{name:"0xSasha",description:"Built using ReactJS, ThreeJS, HTML, CSS",link:"https://github.com/0xSashaa/0xSasha",backImage:T6},{name:"cryptobot",description:" Telegram Bot. Follow trends and get the best user experience in crypto with highly customizable functionality ",link:"https://github.com/0xSashaa/cryptobot",backImage:E6},{name:"memonad",description:"Just a meme website for a crypto project",link:"https://github.com/0xSashaa/memnad",backImage:A6}];return he.jsxs("section",{className:"Projects",children:[he.jsx("div",{className:"Projects__text",children:he.jsx("h2",{className:"Projects__title",children:"PROJECTS"})}),he.jsx("div",{className:"Projects__items",children:he.jsx("ul",{className:"Projects__list",children:n.map((e,t)=>he.jsxs("li",{className:"Projects__item",children:[he.jsx("div",{style:{backgroundImage:`url(${e.backImage})`},className:"Projects__item__img"}),he.jsxs("div",{className:"Projects__item__text",children:[he.jsx("h3",{className:"Projects__item__text__title",children:e.name}),he.jsx("p",{className:"Projects__item__text__paragraph",children:e.description}),he.jsx("a",{href:e.link,target:"_blank",className:"Projects__item__text__link",children:"Source"})]})]},t))})})]})},R6=()=>he.jsx("footer",{className:"Footer",children:he.jsx("p",{className:"Footer__message",children:he.jsx("a",{target:"_blank",href:"https://github.com/0xSashaa/1000bucks-website",children:"source code"})})});function b6(){const[n,e]=oe.useState({width:void 0,height:void 0});return oe.useLayoutEffect(()=>{function t(){e({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",t),t(),()=>window.removeEventListener("resize",t)},[]),n}function P6(){const{width:n}=b6();return he.jsxs("div",{className:"App",children:[he.jsx(lN,{width:n}),he.jsxs(ZL,{children:[he.jsx(Ea,{path:"/",element:he.jsx(S6,{})}),he.jsx(Ea,{path:"/about",element:he.jsx(uN,{})}),he.jsx(Ea,{path:"/contact",element:he.jsx(pN,{})}),he.jsx(Ea,{path:"/experiences",element:he.jsx(mN,{})}),he.jsx(Ea,{path:"/projects",element:he.jsx(C6,{})}),he.jsx(Ea,{path:"*",element:he.jsx(w6,{})})]}),he.jsx(R6,{})]})}const I6=Bv.createRoot(document.getElementById("root"));I6.render(he.jsx(nN,{children:he.jsx(P6,{})}));
+`;class a6 extends Yi{constructor({gamma:e,offsetHdr:t,offsetSdr:i,gainMapMin:r,gainMapMax:s,maxDisplayBoost:o,hdrCapacityMin:a,hdrCapacityMax:l,sdr:h,gainMap:f}){super({name:"GainMapDecoderMaterial",vertexShader:s6,fragmentShader:o6,uniforms:{sdr:{value:h},gainMap:{value:f},gamma:{value:new B(1/e[0],1/e[1],1/e[2])},offsetHdr:{value:new B().fromArray(t)},offsetSdr:{value:new B().fromArray(i)},gainMapMin:{value:new B().fromArray(r)},gainMapMax:{value:new B().fromArray(s)},weightFactor:{value:(Math.log2(o)-a)/(l-a)}},blending:ms,depthTest:!1,depthWrite:!1}),this._maxDisplayBoost=o,this._hdrCapacityMin=a,this._hdrCapacityMax=l,this.needsUpdate=!0,this.uniformsNeedUpdate=!0}get sdr(){return this.uniforms.sdr.value}set sdr(e){this.uniforms.sdr.value=e}get gainMap(){return this.uniforms.gainMap.value}set gainMap(e){this.uniforms.gainMap.value=e}get offsetHdr(){return this.uniforms.offsetHdr.value.toArray()}set offsetHdr(e){this.uniforms.offsetHdr.value.fromArray(e)}get offsetSdr(){return this.uniforms.offsetSdr.value.toArray()}set offsetSdr(e){this.uniforms.offsetSdr.value.fromArray(e)}get gainMapMin(){return this.uniforms.gainMapMin.value.toArray()}set gainMapMin(e){this.uniforms.gainMapMin.value.fromArray(e)}get gainMapMax(){return this.uniforms.gainMapMax.value.toArray()}set gainMapMax(e){this.uniforms.gainMapMax.value.fromArray(e)}get gamma(){const e=this.uniforms.gamma.value;return[1/e.x,1/e.y,1/e.z]}set gamma(e){const t=this.uniforms.gamma.value;t.x=1/e[0],t.y=1/e[1],t.z=1/e[2]}get hdrCapacityMin(){return this._hdrCapacityMin}set hdrCapacityMin(e){this._hdrCapacityMin=e,this.calculateWeight()}get hdrCapacityMax(){return this._hdrCapacityMax}set hdrCapacityMax(e){this._hdrCapacityMax=e,this.calculateWeight()}get maxDisplayBoost(){return this._maxDisplayBoost}set maxDisplayBoost(e){this._maxDisplayBoost=Math.max(1,Math.min(65504,e)),this.calculateWeight()}calculateWeight(){const e=(Math.log2(this._maxDisplayBoost)-this._hdrCapacityMin)/(this._hdrCapacityMax-this._hdrCapacityMin);this.uniforms.weightFactor.value=Math.max(0,Math.min(1,e))}}class zb extends Error{}class Bb extends Error{}const kc=(n,e,t)=>{var i;let r;const s=(i=n.attributes.getNamedItem(e))===null||i===void 0?void 0:i.nodeValue;if(s)r=s;else{const o=n.getElementsByTagName(e)[0];if(o){const a=o.getElementsByTagName("rdf:li");if(a.length===3)r=Array.from(a).map(l=>l.innerHTML);else throw new Error(`Gainmap metadata contains an array of items for ${e} but its length is not 3`)}else{if(t)return t;throw new Error(`Can't find ${e} in gainmap metadata`)}}return r},l6=n=>{var e,t;let i;typeof TextDecoder<"u"?i=new TextDecoder().decode(n):i=n.toString();let r=i.indexOf("",r);i.slice(r,o+10);const a=i.slice(r,o+10);try{const h=s.parseFromString(a,"text/xml").getElementsByTagName("rdf:Description")[0],f=kc(h,"hdrgm:GainMapMin","0"),d=kc(h,"hdrgm:GainMapMax"),p=kc(h,"hdrgm:Gamma","1"),v=kc(h,"hdrgm:OffsetSDR","0.015625"),y=kc(h,"hdrgm:OffsetHDR","0.015625");let M=(e=h.attributes.getNamedItem("hdrgm:HDRCapacityMin"))===null||e===void 0?void 0:e.nodeValue;M||(M="0");const _=(t=h.attributes.getNamedItem("hdrgm:HDRCapacityMax"))===null||t===void 0?void 0:t.nodeValue;if(!_)throw new Error("Incomplete gainmap metadata");return{gainMapMin:Array.isArray(f)?f.map(m=>parseFloat(m)):[parseFloat(f),parseFloat(f),parseFloat(f)],gainMapMax:Array.isArray(d)?d.map(m=>parseFloat(m)):[parseFloat(d),parseFloat(d),parseFloat(d)],gamma:Array.isArray(p)?p.map(m=>parseFloat(m)):[parseFloat(p),parseFloat(p),parseFloat(p)],offsetSdr:Array.isArray(v)?v.map(m=>parseFloat(m)):[parseFloat(v),parseFloat(v),parseFloat(v)],offsetHdr:Array.isArray(y)?y.map(m=>parseFloat(m)):[parseFloat(y),parseFloat(y),parseFloat(y)],hdrCapacityMin:parseFloat(M),hdrCapacityMax:parseFloat(_)}}catch{}r=i.indexOf("{const r=this.options.debug,s=new DataView(e.buffer);if(s.getUint16(0)!==65496){i(new Error("Not a valid jpeg"));return}const o=s.byteLength;let a=2,l=0,h;for(;a250){i(new Error(`Found no marker after ${l} loops 😵`));return}if(s.getUint8(a)!==255){i(new Error(`Not a valid marker at offset 0x${a.toString(16)}, found: 0x${s.getUint8(a).toString(16)}`));return}if(h=s.getUint8(a+1),r&&console.log(`Marker: ${h.toString(16)}`),h===226){r&&console.log("Found APP2 marker (0xffe2)");const f=a+4;if(s.getUint32(f)===1297106432){const d=f+4;let p;if(s.getUint16(d)===18761)p=!1;else if(s.getUint16(d)===19789)p=!0;else{i(new Error("No valid endianness marker found in TIFF header"));return}if(s.getUint16(d+2,!p)!==42){i(new Error("Not valid TIFF data! (no 0x002A marker)"));return}const v=s.getUint32(d+4,!p);if(v<8){i(new Error("Not valid TIFF data! (First offset less than 8)"));return}const y=d+v,M=s.getUint16(y,!p),_=y+2;let m=0;for(let N=_;N<_+12*M;N+=12)s.getUint16(N,!p)===45057&&(m=s.getUint32(N+8,!p));const w=y+2+M*12+4,T=[];for(let N=w;N{const e=l6(n);if(!e)throw new Bb("Gain map XMP metadata not found");const i=await new u6({extractFII:!0,extractNonFII:!0}).extract(n);if(i.length!==2)throw new zb("Gain map recovery image not found");return{sdr:new Uint8Array(await i[0].arrayBuffer()),gainMap:new Uint8Array(await i[1].arrayBuffer()),metadata:e}},CT=n=>new Promise((e,t)=>{const i=document.createElement("img");i.onload=()=>{e(i)},i.onerror=r=>{t(r)},i.src=URL.createObjectURL(n)});class Hb extends Ei{constructor(e,t){super(t),e&&(this._renderer=e),this._internalLoadingManager=new rg}setRenderer(e){return this._renderer=e,this}setRenderTargetOptions(e){return this._renderTargetOptions=e,this}prepareQuadRenderer(){this._renderer||console.warn("WARNING: An existing WebGL Renderer was not passed to this Loader constructor or in setRenderer, the result of this Loader will need to be converted to a Data Texture with toDataTexture() before you can use it in your renderer.");const e=new a6({gainMapMax:[1,1,1],gainMapMin:[0,0,0],gamma:[1,1,1],offsetHdr:[1,1,1],offsetSdr:[1,1,1],hdrCapacityMax:1,hdrCapacityMin:0,maxDisplayBoost:1,gainMap:new en,sdr:new en});return new A1({width:16,height:16,type:oi,colorSpace:Dn,material:e,renderer:this._renderer,renderTargetOptions:this._renderTargetOptions})}async render(e,t,i,r){const s=r?new Blob([r],{type:"image/jpeg"}):void 0,o=new Blob([i],{type:"image/jpeg"});let a,l,h=!1;if(typeof createImageBitmap>"u"){const p=await Promise.all([s?CT(s):Promise.resolve(void 0),CT(o)]);l=p[0],a=p[1],h=!0}else{const p=await Promise.all([s?createImageBitmap(s,{imageOrientation:"flipY"}):Promise.resolve(void 0),createImageBitmap(o,{imageOrientation:"flipY"})]);l=p[0],a=p[1]}const f=new en(l||new ImageData(2,2),Bo,Nn,Nn,$t,Hy,Hn,ar,1,Dn);f.flipY=h,f.needsUpdate=!0;const d=new en(a,Bo,Nn,Nn,$t,Hy,Hn,ar,1,ti);d.flipY=h,d.needsUpdate=!0,e.width=a.width,e.height=a.height,e.material.gainMap=f,e.material.sdr=d,e.material.gainMapMin=t.gainMapMin,e.material.gainMapMax=t.gainMapMax,e.material.offsetHdr=t.offsetHdr,e.material.offsetSdr=t.offsetSdr,e.material.gamma=t.gamma,e.material.hdrCapacityMin=t.hdrCapacityMin,e.material.hdrCapacityMax=t.hdrCapacityMax,e.material.maxDisplayBoost=Math.pow(2,t.hdrCapacityMax),e.material.needsUpdate=!0,e.render()}}class h6 extends Hb{load([e,t,i],r,s,o){const a=this.prepareQuadRenderer();let l,h,f;const d=async()=>{if(l&&h&&f){try{await this.render(a,f,l,h)}catch(P){this.manager.itemError(e),this.manager.itemError(t),this.manager.itemError(i),typeof o=="function"&&o(P),a.disposeOnDemandRenderer();return}typeof r=="function"&&r(a),this.manager.itemEnd(e),this.manager.itemEnd(t),this.manager.itemEnd(i),a.disposeOnDemandRenderer()}};let p=!0,v=0,y=0,M=!0,_=0,m=0,S=!0,w=0,T=0;const N=()=>{if(typeof s=="function"){const P=v+_+w,C=y+m+T,F=p&&M&&S;s(new ProgressEvent("progress",{lengthComputable:F,loaded:C,total:P}))}};this.manager.itemStart(e),this.manager.itemStart(t),this.manager.itemStart(i);const b=new Di(this._internalLoadingManager);b.setResponseType("arraybuffer"),b.setRequestHeader(this.requestHeader),b.setPath(this.path),b.setWithCredentials(this.withCredentials),b.load(e,async P=>{if(typeof P=="string")throw new Error("Invalid sdr buffer");l=P,await d()},P=>{p=P.lengthComputable,y=P.loaded,v=P.total,N()},P=>{this.manager.itemError(e),typeof o=="function"&&o(P)});const D=new Di(this._internalLoadingManager);D.setResponseType("arraybuffer"),D.setRequestHeader(this.requestHeader),D.setPath(this.path),D.setWithCredentials(this.withCredentials),D.load(t,async P=>{if(typeof P=="string")throw new Error("Invalid gainmap buffer");h=P,await d()},P=>{M=P.lengthComputable,m=P.loaded,_=P.total,N()},P=>{this.manager.itemError(t),typeof o=="function"&&o(P)});const L=new Di(this._internalLoadingManager);return L.setRequestHeader(this.requestHeader),L.setPath(this.path),L.setWithCredentials(this.withCredentials),L.load(i,async P=>{if(typeof P!="string")throw new Error("Invalid metadata string");f=JSON.parse(P),await d()},P=>{S=P.lengthComputable,T=P.loaded,w=P.total,N()},P=>{this.manager.itemError(i),typeof o=="function"&&o(P)}),a}}class f6 extends Hb{load(e,t,i,r){const s=this.prepareQuadRenderer(),o=new Di(this._internalLoadingManager);return o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setPath(this.path),o.setWithCredentials(this.withCredentials),this.manager.itemStart(e),o.load(e,async a=>{if(typeof a=="string")throw new Error("Invalid buffer, received [string], was expecting [ArrayBuffer]");const l=new Uint8Array(a);let h,f,d;try{const p=await c6(l);h=p.sdr,f=p.gainMap,d=p.metadata}catch(p){if(p instanceof Bb||p instanceof zb)console.warn(`Failure to reconstruct an HDR image from ${e}: Gain map metadata not found in the file, HDRJPGLoader will render the SDR jpeg`),d={gainMapMin:[0,0,0],gainMapMax:[1,1,1],gamma:[1,1,1],hdrCapacityMin:0,hdrCapacityMax:1,offsetHdr:[0,0,0],offsetSdr:[0,0,0]},h=l;else throw p}try{await this.render(s,d,h,f)}catch(p){this.manager.itemError(e),typeof r=="function"&&r(p),s.disposeOnDemandRenderer();return}typeof t=="function"&&t(s),this.manager.itemEnd(e),s.disposeOnDemandRenderer()},i,a=>{this.manager.itemError(e),typeof r=="function"&&r(a)}),s}}const zv={apartment:"lebombo_1k.hdr",city:"potsdamer_platz_1k.hdr",dawn:"kiara_1_dawn_1k.hdr",forest:"forest_slope_1k.hdr",lobby:"st_fagans_interior_1k.hdr",night:"dikhololo_night_1k.hdr",park:"rooitou_park_1k.hdr",studio:"studio_small_03_1k.hdr",sunset:"venice_sunset_1k.hdr",warehouse:"empty_warehouse_01_1k.hdr"},d6="https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/",mp=n=>Array.isArray(n);function Vb({files:n=["/px.png","/nx.png","/py.png","/ny.png","/pz.png","/nz.png"],path:e="",preset:t=void 0,encoding:i=void 0,extensions:r}={}){var s;let o=null,a=!1,l;if(t){if(!(t in zv))throw new Error("Preset must be one of: "+Object.keys(zv).join(", "));n=zv[t],e=d6}const h=mp(n)&&n.length===6,f=mp(n)&&n.length===3&&n.some(_=>_.endsWith("json")),d=mp(n)?n[0]:n;if(a=mp(n),l=h?"cube":f?"webp":d.startsWith("data:application/exr")?"exr":d.startsWith("data:application/hdr")?"hdr":d.startsWith("data:image/jpeg")?"jpg":(s=d.split(".").pop())==null||(s=s.split("?"))==null||(s=s.shift())==null?void 0:s.toLowerCase(),o=l==="cube"?j2:l==="hdr"?$5:l==="exr"?e6:l==="jpg"||l==="jpeg"?f6:l==="webp"?h6:null,!o)throw new Error("useEnvironment: Unrecognized file extension: "+n);const p=tr(_=>_.gl),v=og(o,a?[n]:n,_=>{(l==="webp"||l==="jpg"||l==="jpeg")&&_.setRenderer(p),_.setPath==null||_.setPath(e),r&&r(_)});let y=a?v[0]:v;if(l==="jpg"||l==="jpeg"||l==="webp"){var M;y=(M=y.renderTarget)==null?void 0:M.texture}return y.mapping=h?xs:Iu,"colorSpace"in y?y.colorSpace=i??h?"srgb":"srgb-linear":y.encoding=i??h?i6:n6,y}const p6=n=>n.current&&n.current.isScene,m6=n=>p6(n)?n.current:n;function C1(n,e,t,i,r={}){var s,o,a,l,h;r={backgroundBlurriness:(s=r.blur)!==null&&s!==void 0?s:0,backgroundIntensity:1,backgroundRotation:[0,0,0],environmentIntensity:1,environmentRotation:[0,0,0],...r};const f=m6(e||t),d=f.background,p=f.environment,v={backgroundBlurriness:f.backgroundBlurriness,backgroundIntensity:f.backgroundIntensity,backgroundRotation:(o=(a=f.backgroundRotation)==null||a.clone==null?void 0:a.clone())!==null&&o!==void 0?o:[0,0,0],environmentIntensity:f.environmentIntensity,environmentRotation:(l=(h=f.environmentRotation)==null||h.clone==null?void 0:h.clone())!==null&&l!==void 0?l:[0,0,0]};return n!=="only"&&(f.environment=i),n&&(f.background=i),xo(f,r),()=>{n!=="only"&&(f.environment=p),n&&(f.background=d),xo(f,v)}}function R1({scene:n,background:e=!1,map:t,...i}){const r=tr(s=>s.scene);return oe.useLayoutEffect(()=>{if(t)return C1(e,n,r,t,i)}),null}function Gb({background:n=!1,scene:e,blur:t,backgroundBlurriness:i,backgroundIntensity:r,backgroundRotation:s,environmentIntensity:o,environmentRotation:a,...l}){const h=Vb(l),f=tr(d=>d.scene);return oe.useLayoutEffect(()=>C1(n,e,f,h,{blur:t,backgroundBlurriness:i,backgroundIntensity:r,backgroundRotation:s,environmentIntensity:o,environmentRotation:a})),null}function g6({children:n,near:e=1,far:t=1e3,resolution:i=256,frames:r=1,map:s,background:o=!1,blur:a,backgroundBlurriness:l,backgroundIntensity:h,backgroundRotation:f,environmentIntensity:d,environmentRotation:p,scene:v,files:y,path:M,preset:_=void 0,extensions:m}){const S=tr(L=>L.gl),w=tr(L=>L.scene),T=oe.useRef(null),[N]=oe.useState(()=>new Fu),b=oe.useMemo(()=>{const L=new Wx(i);return L.texture.type=oi,L},[i]);oe.useLayoutEffect(()=>(r===1&&T.current.update(S,N),C1(o,v,w,b.texture,{blur:a,backgroundBlurriness:l,backgroundIntensity:h,backgroundRotation:f,environmentIntensity:d,environmentRotation:p})),[n,N,b.texture,v,w,o,r,S]);let D=1;return E1(()=>{(r===1/0||Ddb({GroundProjectedEnvImpl:q5}),[]);const a=oe.useMemo(()=>[o],[o]),l=(e=n.ground)==null?void 0:e.height,h=(t=n.ground)==null?void 0:t.radius,f=(i=(r=n.ground)==null?void 0:r.scale)!==null&&i!==void 0?i:1e3;return oe.createElement(oe.Fragment,null,oe.createElement(R1,pm({},n,{map:o})),oe.createElement("groundProjectedEnvImpl",{args:a,scale:f,height:l,radius:h}))}function y6(n){return n.ground?oe.createElement(v6,n):n.map?oe.createElement(R1,n):n.children?oe.createElement(g6,n):oe.createElement(Gb,n)}const _6=()=>{const n=og($B,"./Cosmo/scene.gltf");return he.jsx(he.Fragment,{children:he.jsx("primitive",{object:n.scene,scale:1.35,position:[0,-1.5,0]})})};function x6(){const n=oe.useRef();return E1(()=>{n.current&&(n.current.rotation.y+=.005)}),he.jsx("group",{ref:n,children:he.jsx(_6,{})})}const S6=()=>he.jsxs("main",{className:"Home",children:[he.jsxs("div",{className:"Home__text-block",children:[he.jsx("div",{className:"Home__title",children:he.jsx("h2",{className:"Home__title__item",children:"0xSasha"})}),he.jsx("div",{className:"Home__description",children:he.jsx("p",{className:"Home__description__item",children:"Software Engineer"})})]}),he.jsx("div",{className:"Home__container3D",children:he.jsxs(QB,{children:[he.jsx("ambientLight",{intensity:1}),he.jsx(t6,{enableZoom:!1}),he.jsx(oe.Suspense,{fallback:null,children:he.jsx(x6,{})}),he.jsx(y6,{preset:"sunset"})]})})]}),M6=()=>he.jsxs("svg",{fill:"#fff",version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32",xmlSpace:"preserve",children:[he.jsx("g",{id:"SVGRepo_bgCarrier",strokeWidth:"0"}),he.jsx("g",{id:"SVGRepo_tracerCarrier",strokeLinecap:"round",strokeLinejoin:"round"}),he.jsxs("g",{id:"SVGRepo_iconCarrier",children:[he.jsx("path",{id:"robot_1_",d:"M21.86,4.5h-0.72v-2h0.721L21.86,4.5L21.86,4.5z M10.86,2.5h-0.72v2h0.72V2.5z M28.896,15.825l0.209,0.688 l-0.799,0.243c-0.747,0.22-1.538-0.165-1.835-0.869l-2.413,1.394c-0.188,0.149-0.512,0.048-0.575-0.188 c-0.005-0.018-0.008-0.035-0.01-0.053l-0.749-2.794c-0.229,0.074-0.472,0.114-0.725,0.114H21.36V22c0,0.199-0.161,0.36-0.36,0.36 h-1.64v6.307c1.131,0.174,2,1.154,2,2.333c0,0.199-0.161,0.36-0.36,0.36h-4c-0.199,0-0.36-0.161-0.36-0.36 c0-1.179,0.869-2.159,2-2.333V22.36h-5.28v6.307c1.131,0.174,2,1.154,2,2.333c0,0.199-0.161,0.36-0.36,0.36h-4 c-0.199,0-0.36-0.161-0.36-0.36c0-1.179,0.869-2.159,2-2.333V22.36H11c-0.199,0-0.36-0.161-0.36-0.36v-7.641H9.999 c-0.242,0-0.476-0.037-0.696-0.104L8.562,17.02c-0.001,0.024-0.005,0.049-0.012,0.073c-0.062,0.229-0.364,0.334-0.558,0.201 l-2.435-1.406c-0.295,0.705-1.084,1.09-1.831,0.871l-0.828-0.244l0.203-0.69l0.828,0.243c0.421,0.124,0.871-0.12,0.995-0.544 c0.06-0.204,0.036-0.42-0.067-0.609c-0.103-0.189-0.272-0.326-0.476-0.385l-0.478-0.14l-0.722,0.422L2.817,14.19l0.854-0.5 c0.085-0.051,0.187-0.063,0.283-0.035l0.628,0.184c0.389,0.114,0.711,0.374,0.906,0.731c0.095,0.173,0.154,0.36,0.177,0.55 l2.304,1.33l0.674-2.518C8.037,13.504,7.639,12.797,7.639,12c0-1.301,1.059-2.36,2.36-2.36h0.642V9c0-0.199,0.161-0.36,0.36-0.36 h4.64V6.36H12c-0.199,0-0.36-0.161-0.36-0.36V1c0-0.199,0.161-0.36,0.36-0.36h8c0.199,0,0.36,0.161,0.36,0.36v5 c0,0.199-0.161,0.36-0.36,0.36h-3.64v2.28H21c0.199,0,0.36,0.161,0.36,0.36v0.64h0.639c1.302,0,2.36,1.059,2.36,2.36 c0,0.786-0.387,1.484-0.979,1.913l0.68,2.537l2.303-1.33c0.023-0.19,0.082-0.376,0.178-0.55c0.195-0.357,0.517-0.617,0.905-0.731 l0.626-0.183c0.1-0.03,0.204-0.016,0.29,0.037l0.825,0.5l-0.373,0.615l-0.689-0.418l-0.476,0.139 c-0.205,0.06-0.374,0.197-0.478,0.386c-0.103,0.188-0.127,0.405-0.066,0.609c0.125,0.423,0.574,0.669,0.995,0.543L28.896,15.825z M10.64,10.359H9.999c-0.904,0-1.64,0.736-1.64,1.64s0.736,1.64,1.64,1.64h0.642L10.64,10.359L10.64,10.359z M13,29.36 c-0.781,0-1.436,0.548-1.6,1.279h3.2C14.436,29.908,13.781,29.36,13,29.36z M19.64,5.64V1.36h-7.28v4.28 C12.36,5.64,19.64,5.64,19.64,5.64z M19,29.36c-0.78,0-1.436,0.548-1.601,1.279H20.6C20.436,29.908,19.78,29.36,19,29.36z M20.64,9.36h-9.28v12.28h9.28V9.36z M23.639,12c0-0.904-0.735-1.64-1.64-1.64H21.36v3.28h0.639 C22.903,13.64,23.639,12.904,23.639,12z M18.36,3.5c0,0.75-0.61,1.36-1.36,1.36h-2c-0.75,0-1.36-0.61-1.36-1.36S14.25,2.14,15,2.14 h2C17.75,2.14,18.36,2.75,18.36,3.5z M17.64,3.5c0-0.353-0.287-0.64-0.64-0.64h-2c-0.353,0-0.64,0.287-0.64,0.64 S14.647,4.14,15,4.14h2C17.353,4.14,17.64,3.853,17.64,3.5z"}),he.jsx("rect",{id:"_Transparent_Rectangle",style:{fill:"none"},width:"32",height:"32"})]})]}),w6=()=>he.jsxs("section",{className:"Missing",children:[he.jsxs("div",{className:"Missing__text",children:[he.jsx("h4",{className:"Missing__title",children:"Oops!"}),he.jsx("p",{className:"Missing__404",children:"404"})]}),he.jsx("div",{className:"Missing__svg",children:he.jsx(M6,{})})]}),E6=""+new URL("cryptobot-D-V5emks.jpg",import.meta.url).href,T6=""+new URL("0xSasha-DgORomb1.jpg",import.meta.url).href,A6=""+new URL("memonad-BCuRUFfa.jpg",import.meta.url).href,C6=()=>{const n=[{name:"0xSasha",description:"Built using ReactJS, ThreeJS, HTML, CSS",link:"https://github.com/0xSashaa/0xSasha",backImage:T6},{name:"cryptobot",description:" Telegram Bot. Follow trends and get the best user experience in crypto with highly customizable functionality ",link:"https://github.com/0xSashaa/cryptobot",backImage:E6},{name:"memonad",description:"Just a meme website for a crypto project",link:"https://github.com/0xSashaa/memnad",backImage:A6}];return he.jsxs("section",{className:"Projects",children:[he.jsx("div",{className:"Projects__text",children:he.jsx("h2",{className:"Projects__title",children:"PROJECTS"})}),he.jsx("div",{className:"Projects__items",children:he.jsx("ul",{className:"Projects__list",children:n.map((e,t)=>he.jsxs("li",{className:"Projects__item",children:[he.jsx("div",{style:{backgroundImage:`url(${e.backImage})`},className:"Projects__item__img"}),he.jsxs("div",{className:"Projects__item__text",children:[he.jsx("h3",{className:"Projects__item__text__title",children:e.name}),he.jsx("p",{className:"Projects__item__text__paragraph",children:e.description}),he.jsx("a",{href:e.link,target:"_blank",className:"Projects__item__text__link",children:"Source"})]})]},t))})})]})},R6=()=>he.jsx("footer",{className:"Footer",children:he.jsx("p",{className:"Footer__message",children:he.jsx("a",{target:"_blank",href:"https://github.com/0xSashaa/1000bucks-website",children:"source code"})})});function b6(){const[n,e]=oe.useState({width:void 0,height:void 0});return oe.useLayoutEffect(()=>{function t(){e({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",t),t(),()=>window.removeEventListener("resize",t)},[]),n}function P6(){const{width:n}=b6();return he.jsxs("div",{className:"App",children:[he.jsx(lN,{width:n}),he.jsxs(ZL,{children:[he.jsx(Ea,{path:"/",element:he.jsx(S6,{})}),he.jsx(Ea,{path:"/about",element:he.jsx(uN,{})}),he.jsx(Ea,{path:"/contact",element:he.jsx(pN,{})}),he.jsx(Ea,{path:"/experiences",element:he.jsx(mN,{})}),he.jsx(Ea,{path:"/projects",element:he.jsx(C6,{})}),he.jsx(Ea,{path:"/*",element:he.jsx(w6,{})})]}),he.jsx(R6,{})]})}const I6=Bv.createRoot(document.getElementById("root"));I6.render(he.jsx(nN,{children:he.jsx(P6,{})}));
diff --git a/index.html b/index.html
index 0dc6571..abf62a0 100644
--- a/index.html
+++ b/index.html
@@ -5,7 +5,7 @@
0xSasha
-
+