-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path_worker.js
More file actions
1 lines (1 loc) · 9.86 KB
/
_worker.js
File metadata and controls
1 lines (1 loc) · 9.86 KB
1
const p2=I;(function(c,e){const p1=I,P=c();while(!![]){try{const N=-parseInt(p1(0x216))/0x1+-parseInt(p1(0x1ef))/0x2*(-parseInt(p1(0x1cd))/0x3)+-parseInt(p1(0x1ec))/0x4*(-parseInt(p1(0x1e3))/0x5)+-parseInt(p1(0x1cf))/0x6*(parseInt(p1(0x1e6))/0x7)+-parseInt(p1(0x20e))/0x8*(-parseInt(p1(0x1e2))/0x9)+-parseInt(p1(0x1fe))/0xa*(parseInt(p1(0x1e9))/0xb)+-parseInt(p1(0x1f3))/0xc;if(N===e)break;else P['push'](P['shift']());}catch(U){P['push'](P['shift']());}}}(p,0x529b5));import{connect}from'cloudflare:sockets';let x=p2(0x200),b='';var h;if(!z(x))throw new Error(p2(0x20c));export default{async 'fetch'(r,j,l){const p3=p2;try{x=j[p3(0x1da)]||x;const F=new URL(r['url']),H=F[p3(0x1cb)][p3(0x20a)]('/'),C=H[H['length']-0x1];[b,h]=C[p3(0x20a)](':');const W=r[p3(0x1f2)]['get'](p3(0x1cc));if(!W||W!=='websocket'){const O=new URL(r['url']);switch(O[p3(0x1cb)]){case'/':const a={};a[p3(0x1d4)]=0xc8;return new Response(JSON['stringify'](r['cf']),a);case'/'+x:{const n=s(x,r[p3(0x1f2)]['get']('Host')),S={};S['Content-Type']=p3(0x1f0);const y={};return y[p3(0x1d4)]=0xc8,y[p3(0x1f2)]=S,new Response(''+n,y);}default:const d={};d[p3(0x1d4)]=0x194;return new Response('Not\x20found',d);}}else return await M(r);}catch(q){let G=q;return new Response(G[p3(0x1f9)]());}}};async function M(P){const p5=p2,N=new WebSocketPair(),[U,r]=Object['values'](N);r['accept']();let j='',l='';const F=(S,y)=>{const p4=I;console[p4(0x222)]('['+j+':'+l+']\x20'+S,y||'');},H=P['headers'][p5(0x215)]('sec-websocket-protocol')||'',C=w(r,H,F),W={};W[p5(0x1fd)]=null;let O=W,a=null,d=![];C[p5(0x1c9)](new WritableStream({async 'write'(S,y){const p6=p5;if(d&&a)return a(S);if(O[p6(0x1fd)]){const A=O[p6(0x1fd)][p6(0x208)][p6(0x210)]();await A[p6(0x1fa)](S),A[p6(0x223)]();return;}const {hasError:q,message:G,portRemote:portRemote=0x1bb,addressRemote:addressRemote='',rawDataIndex:Y,vlessVersion:vlessVersion=new Uint8Array([0x0,0x0]),isUDP:Q}=k(S,x);j=addressRemote,l=portRemote+'--'+Math[p6(0x21e)]()+'\x20'+(Q?p6(0x1dc):p6(0x20f))+'\x20';if(q){throw new Error(G);return;}if(Q){if(portRemote===0x35)d=!![];else{throw new Error(p6(0x1c8));return;}}const u=new Uint8Array([vlessVersion[0x0],0x0]),L=S['slice'](Y);if(d){const {write:v}=await Z(r,u,F);a=v,a(L);return;}t(O,addressRemote,portRemote,L,r,u,F);},'close'(){const p7=p5;F(p7(0x1f7));},'abort'(S){const p8=p5;F(p8(0x21b),JSON[p8(0x1e1)](S));}}))['catch'](S=>{const p9=p5;F(p9(0x207),S);});const n={};return n[p5(0x1d4)]=0x65,n['webSocket']=U,new Response(null,n);}async function t(c,e,P,N,U,r,j){async function l(C,W){const pp=I,O={};O[pp(0x1dd)]=C,O[pp(0x1e0)]=W;const a=connect(O);c[pp(0x1fd)]=a,j(pp(0x214)+C+':'+W);const d=a['writable'][pp(0x210)]();return await d[pp(0x1fa)](N),d[pp(0x223)](),a;}async function F(){const pI=I,C=await l(b||e,h||P);C['closed'][pI(0x202)](W=>{const pc=pI;console[pc(0x222)]('retry\x20tcpSocket\x20closed\x20error',W);})['finally'](()=>{B(U);}),J(C,U,r,null,j);}const H=await l(e,P);J(H,U,r,F,j);}function w(c,e,P){let N=![];const U=new ReadableStream({'start'(r){const pe=I;c[pe(0x1e7)](pe(0x1d1),F=>{const pP=pe;if(N)return;const H=F[pP(0x1d3)];r[pP(0x1c7)](H);}),c['addEventListener'](pe(0x1d9),()=>{B(c);if(N)return;r['close']();}),c['addEventListener'](pe(0x21f),F=>{const pN=pe;P(pN(0x20d)),r['error'](F);});const {earlyData:j,error:l}=K(e);if(l)r[pe(0x21f)](l);else j&&r[pe(0x1c7)](j);},'pull'(r){},'cancel'(r){const pU=I;if(N)return;P(pU(0x1d0)+r),N=!![],B(c);}});return U;}function k(j,l){const pr=p2;if(j[pr(0x1ea)]<0x18){const L={};return L[pr(0x1d2)]=!![],L[pr(0x1d1)]='invalid\x20data',L;}const F=new Uint8Array(j[pr(0x218)](0x0,0x1));let H=![],C=![];o(new Uint8Array(j[pr(0x218)](0x1,0x11)))===l&&(H=!![]);if(!H){const A={};return A[pr(0x1d2)]=!![],A['message']=pr(0x1d6),A;}const W=new Uint8Array(j[pr(0x218)](0x11,0x12))[0x0],O=new Uint8Array(j['slice'](0x12+W,0x12+W+0x1))[0x0];if(O===0x1){}else{if(O===0x2)C=!![];else{const v={};return v[pr(0x1d2)]=!![],v[pr(0x1d1)]=pr(0x1db)+O+pr(0x205),v;}}const a=0x12+W+0x1,d=j[pr(0x218)](a,a+0x2),n=new DataView(d)['getUint16'](0x0);let S=a+0x2;const y=new Uint8Array(j[pr(0x218)](S,S+0x1)),q=y[0x0];let G=0x0,Y=S+0x1,Q='';switch(q){case 0x1:G=0x4,Q=new Uint8Array(j[pr(0x218)](Y,Y+G))[pr(0x212)]('.');break;case 0x2:G=new Uint8Array(j['slice'](Y,Y+0x1))[0x0],Y+=0x1,Q=new TextDecoder()[pr(0x1de)](j[pr(0x218)](Y,Y+G));break;case 0x3:G=0x10;const T=new DataView(j['slice'](Y,Y+G)),m=[];for(let g=0x0;g<0x8;g++){m[pr(0x1ed)](T['getUint16'](g*0x2)[pr(0x1f9)](0x10));}Q=m['join'](':');break;default:const X={};X[pr(0x1d2)]=!![],X[pr(0x1d1)]=pr(0x1e4)+q;return X;}if(!Q){const V={};return V['hasError']=!![],V[pr(0x1d1)]=pr(0x1d7)+q,V;}const u={};return u['hasError']=![],u[pr(0x1ca)]=Q,u[pr(0x1fb)]=q,u['portRemote']=n,u[pr(0x1f4)]=Y+G,u[pr(0x20b)]=F,u['isUDP']=C,u;}async function J(c,e,P,N,U){const px=p2;let r=0x0,j=[],l=P,F=![];await c['readable'][px(0x1c9)](new WritableStream({'start'(){},async 'write'(H,C){const pb=px;F=!![],e['readyState']!==E&&C['error'](pb(0x21a)),l?(e[pb(0x1f8)](await new Blob([l,H])[pb(0x201)]()),l=null):e[pb(0x1f8)](H);},'close'(){const ph=px;U(ph(0x1fc)+F);},'abort'(H){console['error']('remoteConnection!.readable\x20abort',H);}}))[px(0x202)](H=>{const pM=px;console[pM(0x21f)](pM(0x209),H['stack']||H),B(e);}),F===![]&&N&&(U(px(0x221)),N());}function K(N){const pt=p2;if(!N){const U={};return U['error']=null,U;}try{N=N[pt(0x203)](/-/g,'+')[pt(0x203)](/_/g,'/');const r=atob(N),j=Uint8Array[pt(0x204)](r,F=>F[pt(0x1d8)](0x0)),l={};return l[pt(0x217)]=j['buffer'],l[pt(0x21f)]=null,l;}catch(F){const H={};return H[pt(0x21f)]=F,H;}}function z(c){const pw=p2,e=/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return e[pw(0x1d5)](c);}const E=0x1,D=0x2;function B(c){const pk=p2;try{(c['readyState']===E||c[pk(0x1ee)]===D)&&c[pk(0x1d9)]();}catch(e){console['error'](pk(0x1ff),e);}}const R=[];function I(c,e){const P=p();return I=function(N,U){N=N-0x1c7;let r=P[N];return r;},I(c,e);}for(let p0=0x0;p0<0x100;++p0){R['push']((p0+0x100)[p2(0x1f9)](0x10)[p2(0x218)](0x1));}function f(c,e=0x0){return(R[c[e+0x0]]+R[c[e+0x1]]+R[c[e+0x2]]+R[c[e+0x3]]+'-'+R[c[e+0x4]]+R[c[e+0x5]]+'-'+R[c[e+0x6]]+R[c[e+0x7]]+'-'+R[c[e+0x8]]+R[c[e+0x9]]+'-'+R[c[e+0xa]]+R[c[e+0xb]]+R[c[e+0xc]]+R[c[e+0xd]]+R[c[e+0xe]]+R[c[e+0xf]])['toLowerCase']();}function o(c,e=0x0){const pJ=p2,P=f(c,e);if(!z(P))throw TypeError(pJ(0x1f6));return P;}function p(){const pR=['webSocket.readyState\x20is\x20not\x20open,\x20maybe\x20close','readableWebSocketStream\x20is\x20abort','\x0a---------------------------------------------------------------\x0a################################################################\x0a','body','random','error','method','retry','log','releaseLock','enqueue','UDP\x20proxy\x20only\x20enable\x20for\x20DNS\x20which\x20is\x20port\x2053','pipeTo','addressRemote','pathname','Upgrade','99nDIZvU','getUint16','6cWDfdG','ReadableStream\x20was\x20canceled,\x20due\x20to\x20','message','hasError','data','status','test','invalid\x20user','addressValue\x20is\x20empty,\x20addressType\x20is\x20','charCodeAt','close','UUID','command\x20','udp\x20','hostname','decode','\x0a################################################################\x0av2ray\x0a---------------------------------------------------------------\x0a','port','stringify','9CgwyHd','5MYMioO','invild\x20\x20addressType\x20is\x20','&path=%2F%3Fed%3D2048#','1822219rqAvfY','addEventListener','application/dns-message','1188PzAXCR','byteLength','POST','1673572pcFtMY','push','readyState','14162EQJvBC','text/plain;charset=utf-8','readable','headers','2872992FRFiSE','rawDataIndex','https://1.1.1.1/dns-query','Stringified\x20UUID\x20is\x20invalid','readableWebSocketStream\x20is\x20close','send','toString','write','addressType','remoteConnection!.readable\x20is\x20close\x20with\x20hasIncomingData\x20is\x20','value','9410kshOft','safeCloseWebSocket\x20error','6513bc58-71a3-4593-bb23-5113ddf2fc23','arrayBuffer','catch','replace','from','\x20is\x20not\x20support,\x20command\x2001-tcp,02-udp,03-mux','content-type','readableWebSocketStream\x20pipeTo\x20error','writable','remoteSocketToWS\x20has\x20exception\x20','split','vlessVersion','uuid\x20is\x20not\x20valid','webSocketServer\x20has\x20error','3402472icheCW','tcp\x20','getWriter','\x0a\x20\x20network:\x20ws\x0a\x20\x20tls:\x20true\x0a\x20\x20udp:\x20false\x0a\x20\x20sni:\x20','join','vless://','connected\x20to\x20','get','137657cCfqEH','earlyData','slice','\x0a\x20\x20server:\x20'];p=function(){return pR;};return p();}async function Z(c,e,P){const pz=p2;let N=![];const U=new TransformStream({'start'(j){},'transform'(j,l){const pK=I;for(let F=0x0;F<j['byteLength'];){const H=j['slice'](F,F+0x2),C=new DataView(H)[pK(0x1ce)](0x0),W=new Uint8Array(j[pK(0x218)](F+0x2,F+0x2+C));F=F+0x2+C,l[pK(0x1c7)](W);}},'flush'(j){}});U[pz(0x1f1)][pz(0x1c9)](new WritableStream({async 'write'(j){const pE=pz,l={};l[pE(0x206)]=pE(0x1e8);const F={};F[pE(0x220)]=pE(0x1eb),F[pE(0x1f2)]=l,F[pE(0x21d)]=j;const H=await fetch(pE(0x1f5),F),C=await H[pE(0x201)](),W=C[pE(0x1ea)],O=new Uint8Array([W>>0x8&0xff,W&0xff]);c[pE(0x1ee)]===E&&(P('doh\x20success\x20and\x20dns\x20message\x20length\x20is\x20'+W),N?c['send'](await new Blob([O,C])[pE(0x201)]()):(c[pE(0x1f8)](await new Blob([e,O,C])['arrayBuffer']()),N=!![]));}}))[pz(0x202)](j=>{P('dns\x20udp\x20has\x20error'+j);});const r=U[pz(0x208)][pz(0x210)]();return{'write'(j){const pD=pz;r[pD(0x1fa)](j);}};}function s(c,e){const pB=p2,P=pB(0x213)+c+'@'+e+':443?encryption=none&security=tls&sni='+e+'&fp=randomized&type=ws&host='+e+pB(0x1e5)+e;return pB(0x1df)+P+'\x0a---------------------------------------------------------------\x0a################################################################\x0aclash-meta\x0a---------------------------------------------------------------\x0a-\x20type:\x20vless\x0a\x20\x20name:\x20'+e+pB(0x219)+e+'\x0a\x20\x20port:\x20443\x0a\x20\x20uuid:\x20'+c+pB(0x211)+e+'\x0a\x20\x20client-fingerprint:\x20chrome\x0a\x20\x20ws-opts:\x0a\x20\x20\x20\x20path:\x20\x22/?ed=2048\x22\x0a\x20\x20\x20\x20headers:\x0a\x20\x20\x20\x20\x20\x20host:\x20'+e+pB(0x21c);}