From db37d37b525e793f3dc872e1e8524eb00268a962 Mon Sep 17 00:00:00 2001 From: KingMcDonalds Date: Sat, 28 Mar 2026 17:31:40 -0700 Subject: [PATCH] update radio script --- resources/radio/.fxap | Bin 185 -> 185 bytes resources/radio/animations.lua | 19 +- resources/radio/audio.lua | Bin 7735 -> 0 bytes resources/radio/blips.lua | Bin 10573 -> 0 bytes resources/radio/client/audio.lua | Bin 0 -> 7845 bytes resources/radio/client/blips.lua | Bin 0 -> 10573 bytes resources/radio/client/dist/bundle.js | 68 +- resources/radio/client/positions.lua | 548 +++ resources/radio/client/prop_locations.json | 1 + .../radio/client/radios/default/config.json | 1 + resources/radio/client/screen.html | 1 + resources/radio/client/screen.lua | 407 ++ resources/radio/config.lua | 148 +- resources/radio/fxmanifest.lua | 18 +- resources/radio/server/dispatch.html | 2 +- resources/radio/server/dispatch.lua | Bin 3276 -> 3276 bytes resources/radio/server/dist/bundle.js | 3577 +---------------- resources/radio/shared.lua | Bin 175567 -> 176021 bytes resources/radio/stream/afx1500.ydr | 3 + resources/radio/stream/afx1500.ytyp | Bin 0 -> 495 bytes 20 files changed, 1165 insertions(+), 3628 deletions(-) delete mode 100644 resources/radio/audio.lua delete mode 100644 resources/radio/blips.lua create mode 100644 resources/radio/client/audio.lua create mode 100644 resources/radio/client/blips.lua create mode 100644 resources/radio/client/positions.lua create mode 100644 resources/radio/client/prop_locations.json create mode 100644 resources/radio/client/screen.html create mode 100644 resources/radio/client/screen.lua create mode 100644 resources/radio/stream/afx1500.ydr create mode 100644 resources/radio/stream/afx1500.ytyp diff --git a/resources/radio/.fxap b/resources/radio/.fxap index 048ea344d85c7e31a2987c255a2c0764d91ac171..ee4a2fe1b965e74b1383e17eb870794a22542e0d 100644 GIT binary patch literal 185 zcmV;q07m~tSV2$$000000C%YyYA3@0S;-I&yVHhuqi9?jh^F-$F{8BBj>Pi1@mhRf zFQJt8Rc*JBCo!rg|AhsQKhh7g4EIa&rbjuc4q8P0+HRh*1zuy!Xm4?5ULyf(FrH1dZZc`TS(Et5!3O9dHdP)oVe_r538iOz%Tm|u nw#h>2iKvzyKgT}uP7nm#oA{Ng=gLx?8H^F literal 185 zcmV;q07m~tSV2$$000000P1C&&qgQym%D-fxMyq;_zvGSzqS9r(0#H7{D$Vl;oNw1 z^)oqP2zy{+22f^i><#0TeeNZ*iC`U$GwNU$2Ud0Yeo>7l<+TA&@AbReJ-ZwMhYyow z;)%M|?~^p@sp(ib*ZsrRN2UK~0c){=&PSB-0=_X@{K&mD1SrmsQ&JjoN_`K4^uxI- n>@YWZYvXU|Hc;#k$pkaFlq14-OiulmEkFk)O8E~VdH>d*4BK09 diff --git a/resources/radio/animations.lua b/resources/radio/animations.lua index 09bb89127..048cdcd22 100644 --- a/resources/radio/animations.lua +++ b/resources/radio/animations.lua @@ -35,6 +35,17 @@ local function LoadAnimDictAsync(dict, shouldContinue, onLoaded) end) end +--- Returns true if radio animations should be suppressed (in vehicle or holding a weapon). +--- @param playerPed number Ped handle +--- @return boolean +local function ShouldSuppressAnim(playerPed) + local vehicle = GetVehiclePedIsIn(playerPed, false) + if vehicle ~= 0 and GetPedInVehicleSeat(vehicle, -1) == playerPed then return true end + local _, weaponHash = GetCurrentPedWeapon(playerPed, true) + if weaponHash ~= GetHashKey("WEAPON_UNARMED") then return true end + return false +end + --- Starts a ped animation and optionally attaches a prop. --- @param playerPed number Ped handle --- @param dict string Animation dictionary @@ -86,6 +97,7 @@ local function MakePTTHandler(dict, anim, prop) if not playerPed or playerPed == 0 then return end if isKeyDown then + if ShouldSuppressAnim(playerPed) then return end _radioAnimState.pendingStart = true LoadAnimDictAsync(dict, function() return _radioAnimState.pendingStart end, @@ -112,6 +124,7 @@ local function MakeFocusHandler(dict, anim, prop) if not playerPed or playerPed == 0 then return end if focused then + if ShouldSuppressAnim(playerPed) then return end if not _radioAnimState.isPlaying then LoadAnimDictAsync(dict, function() return true end, @@ -148,14 +161,14 @@ Config.animations = { -- [2] Shoulder mic — PTT plays a shoulder-radio gesture, focus shows handheld + prop [2] = { - name = "Shoulder", - onKeyState = MakePTTHandler("random@arrests", "generic_radio_enter", nil), + name = "Shoulder", + onKeyState = MakePTTHandler("random@arrests", "generic_radio_enter", nil), onRadioFocus = MakeFocusHandler("cellphone@", "cellphone_call_to_text", "prop_cs_hand_radio"), }, -- [3] Handheld radio — Both PTT and focus use the same handheld + prop animation [3] = { - name = "Handheld", + name = "Handheld", onKeyState = MakePTTHandler("cellphone@", "cellphone_call_to_text", "prop_cs_hand_radio"), onRadioFocus = MakeFocusHandler("cellphone@", "cellphone_call_to_text", "prop_cs_hand_radio"), }, diff --git a/resources/radio/audio.lua b/resources/radio/audio.lua deleted file mode 100644 index f773ee197c44de1bac3ab1188a85fcf8b397a40a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7735 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 diff --git a/resources/radio/blips.lua b/resources/radio/blips.lua deleted file mode 100644 index 4de56f5844e8b60d196ff01c465b62f4f91d462c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10573 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 bj*-S@G-+u|PvLQYjFR_0)=Y^MR(N123_Xo2 diff --git a/resources/radio/client/audio.lua b/resources/radio/client/audio.lua new file mode 100644 index 0000000000000000000000000000000000000000..89598eb9d85d965e39dfd568ae5b0a6671e0af5b GIT binary patch literal 7845 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 DP;5G` literal 0 HcmV?d00001 diff --git a/resources/radio/client/blips.lua b/resources/radio/client/blips.lua new file mode 100644 index 0000000000000000000000000000000000000000..5e00114172e965cb5197dd3c107863cc7bc12681 GIT binary patch literal 10573 zcmV-TDYDi^SV2$$000000Q^TU$HGqIgCM6eVzF;KHKRHmdj@xYVzvW@8X`~ct?+Z1Cd+)s|%65GCC zBC(*I(xuW``YM-7!GYK1*lB86_XZWehwzs7kRxwP$cGxzo9Ya4r1phB(1kH?%03V- zI9LEHmd3Jy)0O9(;RTl^kXOT}EYW)%Qdmidp|TB75o;;K5Vv&h!14IX!>*++Gt)%EN8xSY+$+BvNp0 z*n~EkbQ$yVMhOFlVkvZY4r6I*8{;oha^^?*Ms2Y2} z5yi-|;T?}9)!{|FE0hMW=7?Z#Ux22bPb7;c<;DdzOGQeiPv4z^wip4s~*8s*#WyWkw4XXIT(I<*PR0ok zyPhI5ndMM@{C8MxDECE|D(Zej!)bqb+49si$HFu)g?R^I9!tMT$XopA1JtSh+|_(r zb#FN_v<}b5HhFKY5g|=VVw1u!zcM*lPM_9V!RVKF#y9-!1STxdc8bma3@n5i|D|?@ zlWw9Ca+@QDvdnV?g^CI@6km)X_**+SQM9?0pqz;>+bpKSCthK&$2@;F33jw);X0 z-dYAAXZnjb$1=rZ^YXcL{w7D<3s*0Z31z1<1ydEoOn2!`u-=Zn@SK#QrM#6d#Ic9_ zsSH~hx%*+%Z=NIDNon%P#%!RLMYhtoVnyd!QDTJ&aWHXNj;!mhTp!%BZUVQ!e*hCL z0>tM{23)2IL0{<4j6eU3R*6MI_5M+1^VdFX67eps$1Cmm)2}u02)3FbABKB6g3|&L-coA*vLy1qw3_^X zk!pxn@XH7Q!MqNd-q&?LZ0KR@>Rp#1Xp)kRvcR9UK{m*i5CXjJcu@`<&rsTeOTbNp z=dGW-0Udil*V1&?aSFT(;(68owvzHEHV{CeleA6r&mGRxjrLm( zKqi?gJ{86yj!?ZnJn4sv=nbI$1S3DpjMRb!Bns@pl6kiEBs8j`+>ONUGNI|lPB3>h zd}wZ*m$7;yM2Cj!D@L_m;>!h!UZCIuN`aU&(x_A|O%vb1)KU22rYNeuXnA>fyrN{FwP zOcjjwuudvU(n&wDDj<#$(#yc&QooEtGv-DV7f*q)AfLd8vxxe~lg#2&-#*(r;^^eW zV7gda%tNu9g>QyfM*767Bpzt54HI*DqX8kKEt_yL)O+(`iXc$kM!3z2b7@qCz4R^I z_v6)f0WUSMIX)(=_b&^Vc9gWoi;`>oY(Kt2LGmTZBGiTiVGv6m8evDu|70 zauUqSxFwe4EA$kRkfYzYKx3Eq8_4bRqVbuX+;P82 zf_Z4k*`w5UYm=H`Q$BXK;8RsA2t7DykN@3f=a!<53V>r68aHjvYU@?{&iCld9HwSW zb_NPT!7n9I_2mCj5*cJ7Ki^a=b)k-@0MdXqPsthh@ zcQ`!;tsQnK1GMv^0wKu&45(3%G_Qf3nI~15Gynx$_g8Fy4qOjP?gQ=gO5AxBZME)Oo%CTnv;jM^`>-TP7efb$ zEZ(sXJf&iB%J^^seXw^PhwxtjJEm+@bPOXi`Qo9a(_HMfGT0fFS?e6dDOj5YI(IWf zmn@w$;e+sJ2KTqYHsTO3l5MBTM5ER4uMh%u=f_-qK8a6LBY+6LW=duyX-4Oq1J`<*v4Wq;ek>2@M!t^5$pf~YcW zx49+`L`Ae=Ct;%yeK(MlLJE+&7qh9-?YG@?>eOX{S!9njQkHig;t33>H zQbS4n!`6uXaYDp5^n=Ed8EXlcswcsvtV4q6Nu&hvjy{j|Oq(Af!kzi(Yd2oCd?hF1 zR1VUY&_J$dVMZb|p*wVGF6MwjrHDzmgI*k5PxSw`sQ-z-l`foYEcq{H!Y<4m##Uh!SCkS>=#$PKoDfNt5{_^z|1it z`IU;^Rci$97i`5Yelx^4XfuvRFPUctZQ~mUo#|*9N=mkeY7U@39{+hjQ^dzX%=g7Am+!~ z@aQVL9(68zJ&lXQ=pRhZ#bB(d$?yI_L*fOh2JC)zG!N02FrcuhDkqIvK+Wyn7ko63JeN)Ff$5q*LEq1 zKO=d*NRhEJ=cH{HN{@+|j`JB10S9at6iad-+)DH*Jbo}fUYHVL7E1n50}qzRMsT4e z!aNxaXk;bt+ZbGq*9h!qjpv@f5NR);v3`9^J>CMeMWB%Y5KS+kxEbq2g z5_C=jFp$PG!yRty6H0&xH!7Y-PAYTWGZq&!@sRg$F?;RQ;QiTY>BdRG5aJl$E|O(+ zd@S@e^N?@5`&{nXAUdUv3P1xUN43}o%euB;ycx-Xj65Y=>)k~>piw!~*Pmew5IA=t zpv$bp)ka0(8GBLNE5^wo3)KllBs_O=6(**lztxBEo&pK#!4{aplL?gr$=Y6w!G9LP zFc^-ezzm2L!9?r9VU-Iw_v7!Vy+^&tj|UV>d*C@B4pKcgkm$(>2?h2Wgs|*U7Pb!N znh@IuS9WYD)epM_HyZ8n&?Zt+{7qx5^1jcSKkRUenWP)sYg6jFRM}**pRyu*BIRAe zx~zZ#e7>-~0$i>hh3Nq*Bra~Mj5yAeIf5*v$MkEsbXxZ8;@p2`l22vn_Xzd|jM%BX zTp#|Ws#3G~P^+$^3h5&}jFSB_I)pNmes&C+w;lEqlkM8|#T6%jzn&U2sFF3(Cq9Z9 zDQHD5 zTDz*BF5t`Iu)|Z+pf{nMg~ig|TQp%l~kH@B-Ehg^)K%*)uy0 zFPg;6VtsSdfmz;zDz7izL|@w3?EKzWkD@05>1#@q$5*V5if4PYrvk`K_iKlUTL)({ zd-t8>30>`1q-R{cN(vgedlv?Cjpyj)+f(>{I!XTQ>AYh;A(Ner90ExsToTCDW_srZ zT2~J*tFUYu53i?i)J!qi9zVZB5rtvaoyy}fjfVN-k;X>hQr4lWmyuLMbzU7b{@%<@ zqpCd#m~3Wkybtm0$HFx#)CD7c6AzJoX66|t8T!0<9hK+*Z%Kp@*YV{P{+&OPiuPms zR67P7Guj=1O8!lzomQU;n_!7BIQTtiOyyE#~B#YArDM8QL zY@TZ4DEecfqd{R&q9LkMVa9^Qjbk7$P#o^aJ@>Fof6gx1eRCqmug7kUw*D<%C zM6oZi42&;~!Shq8PkYLgE9` z(Vw}W8b|91D*7`^rfSM3o<-g9>411PKRv>U?&V}bZ^SdB*mGiV$ z@OB}|(_c%|bit0=2`+Z0#H8v?zL!7SlX^+E^m{|ylV!ui4x(#)mgcPqS%1J~t2hNo1Y0kuqV6Yn|pAynF6 zRoMerQb^nn|HRo&Ub-_Gf)C5g)pc4)#{3S9k~`{3)7+9FQgYr@@C`p|Zn7&pVe$AW zj4xC*L}z2)603+qQwt+UNK;`!hf+V{FgQ?0XKJXMOt4lXz77>{e19?SUdu8+J7B~`AO5}98R%Aqf_v?mAPlg505L7=j zyKj2nMyPQZbhm&!5dLW~6-g%L=8o{rca6&QAb;Uewrgt>a>9qnH=d zI@uFtbFpHZ$J*OAC%;t(`dSa-A>dp+HLBa&z9yA!Of2a(vVkDPfl2B&tZabwN@Lb9%3z@gH0s{hfXcw6JSCzywz{^%f()~3>Zq*VMo{a*yDA0IT$ z6jrG@VIe~yM#>ZKg^S=$h%n|`@ce9No~PC%%En66=GJ|uJhlwqrN2#0DJ^@5Im4mK zyI(GFoFz8e^5j*4-S#86!wvguU?piQ6H!CnMNFa!@MrvUygmK9z6PS&=*xG40I{v` zsuzpY>cG2DI2B0sn-zTn3pgX z_a57}OaP{@q-@ReHet?V1@VM&@<(sB9DzZ*QSK3`af_Q|8yI$OY_#1Gz7HkQ!H`v$ zE^eSC0}w=u@LgS7bzJda-A&druj82W2vQP+557N^m9Ng+oVd&agfJfhLSn{BKu%7a zrvhkX8F%}QRhHQT!a@89=T;kEWEq%kc2eCvNfgeTc&{1l{`@BFcb6%@2vae+3y8>6 z+FaUSVh&6q1_K?I-;~hSEs^i0J;rX?qRAL|B1{m$O0aB=1IfO+rg?6(Ei%808h$hB zxb|Z1V%?PMBJkXN4x#{DG6Ppn#WRk(}GUW6Den&9#}1&0vOXDil_NRKj_K4)FoS(*ZpG9Lt}y&cCTO zG`<#RV?LPI0hr%Lg}8^tLgr^dd;H?8#_HL8$WsEx zdRwH4o6{kZpyzOWe=ejf<8z$>CB#X)Wt6P`AGH_I_?EOfOz2rvuOfsG!I->chWPRD zf+88rLAONr5)?vm2a;gq*`E7Ev-THDTy}Z!umsbBp6P(Jk-JeRvNe#XOjL3R9`Y|#xn@X~8|MAm` zYXar?(xCG}wSP#QP$xcu|I&wf;wPz4jD?m8;H^NlUL zUXIYqYY!BULqZ3zU=#`~>i$>u;s(+`B4;p^a_|A+r1LuJuI!QpBQKA(j)+ERurYdMcVM| zf(%@VOg!Lb54cL+v$hXvu# zV6rt3sHa#i6Q;gdW>_?I)X43R>@22-$dx^_QOQ-Wev$r0L`zdzhD;*n-xECA)h^Na8v+0Lwvz!I&o=10uxPk$YJV68cZLM!Z*KWLsLaoa zl75`$yb`y}HX;#0aGHmRbwV;9EZk=)L1!2WWn(I`%aD*zc+7Z{ebHHF^)^M#ekGUr$xPTaF zOQ{RR&sT>o(29kyB{s33_iz#(+$*5yfTIo&&Cd>>VUMIx?aM!M;h^^ut&czxA~)x*f617@l8N^xr2myKuYDwH7Q8#qBRIF+BHc zAtJQE*|UETrch4s19Z)bpr`UuG|WFMz}x^$oN)f1POr?wxh8B{UU|@Erw>HgOM`4I zL2DibV;3@O8{VFaNW+wY;g9(rFL7(nZ^1{XJEy!ha>KJ1{lF+R)dzZ3q;SIPBDJL9 zfyfS0&i_%4u4Y-vL@9o8SE1BbPUk3fmJUF8E-~K_U4E()Yjz(XEt+}LAADmI<; zVt)i!Mgn%P-qf%#}NZP^ch?01S%g0p)8UAr*6nHj7?sh;j5oM{4X7z z&@R=(DZW&rnhg2Y=;ShI%A+Z8sQ*bkG!d3^r^nRpq52u0A@;S%0`|T zbsj>*(oh#Xp?0xC=weT|Fx$pk*&7qfxodf?qT_QFF^v^ zn64nsVg1{2M?uEv2jH6`(rD{KcG5${=dfFU=S=LocJ)w-CM;RHchJqudlFGE$HD}i zV0{lf8km7uEs5+z04G0E`PNO{--R98+R{?sb_zwxz)aQlNCW?hs*}EjGQ|I+H1NUJ zoEOc3g_(zn*c=#_K8#E!xq-8|OMvnV3z;2Kbskj8xtNK^E2VuB!<3H6;40N864@hI zg_>!xM@=(ou3(#+E%WTdk`MI8v($GQOB_6)#v?J_&y4VRstH59Db`Q#;VD=VU{zi0 zc%THq%>|n{`BO0|>_y&AmW_D$-TrOjG(M}mO8kXI;Np}M zZB3X1-$)?b$+7-Mt7b!F1aCT(gY;yQ#8r!Dgdcdkk;|RTRws03PyttF4)nitqguaU zwvuQ~Es0qYBRicP7H`3-J&}`O4dn2;8ISmCA5i8FGL|lOAbe%%yFUq3HLY)vCm6HT znx0DkbknZ)EWDyj;T*&5?#9$*zeOHfvp_?fbUXrJP{87k5tNic90F@uydL25$VHZ4 zg9dRc3jh)*tl``0`*SG+rvVp0BI72sr|gFm)1N~*c4MKY5mAVQMM>lX0&bOJnbh5| zFLP=GNOT_!+s5={B}Hf(|2kyn8TVe_fTYFvldH7=FTr@W5c&gw#3zm#v(3y)OZIvS zT7Fd=&0&3gXk|A! zav%$7vhHBI15{ibW(v|2^AJi$w$169vQ8jugfz#VPa2K%nTq?p0(%hG`Vd13FLEB2o#IVRXU^&@_x-&a4ovMdIxJ22yqLiZ`PU z5}4~@b$K|ct;2XhUP}&BmTJH_^k#B8^Ig&1)V5i6#iVCbIN-nqa`^`bsJ(b)%U%@p z8K)Xvllzz`k_B)PgzyUCL5+cia z;J2h5392-oRFg?&=;fWsU(+Q6F3N~y!`ZV3qF>O1p`ot`^-!+F%AMrrU)8_xy`)?G z%}oG+;BjMZLn>`aA%MLGQuBYf$)=3|6YDjMC)bwNjJA~=C0;(b<3}9=0scsPuwrg? zky2cC5wHNl)>Ip+X+45ZbNeb zh7>{iN%@6<_Lz5eb|P!9Gw-K&XthW_PpF(S&od>!9C-uKRylyc_uY6rxUVC>z`-m& z0VK(vAaO0?C9tGD=*XsF4qo?8qa)RVhcpfdal!v(Nq?VqO4l*)t%Ei(h2>AIhC4yI$XIhN@&xHffE_viak$V29N zqRGt4PKg(3sK8>8z^V8@uT-}K=kg*U>w80JPN6~w_R1$~S1@PN(_aepOpR|xRr+MV zw?JM;`H!oiyQk2~>uf-HHRZe?Y7xMP9vhMbThleJW_bZnYaSJPmz8=?mlonDk)BqE zV}qyDng>?gp8Oi!DiR-Jo5VY{<0(sC9Z&qyd&(C_pN_KYYe5+-M8NDU4)|;%HLRL5 z=~B|LfeR3{Zo)8Oa;^}tng1SE2b{P6)0*wpVGn|;M zRMl}Zjab-vG0;p*R4e}`B<~NMjeR)*GwiQKF6*_G)XkADnjAvm<`OqAD!w*k=InTs zC*x-nZo{zAyi@TWnfeJq%;p4*HgjfBphsZwAq;oBkR7oD8aMBLzISsa1+a`yc~;kC zs0a~q?jlnkR~Jq(t2Mp8=bKxIm6yo@(`vS|TajLu0YT@e8$_1%z&!3^iwj>Q(79Q5iX*u$~!7?vqP=BxN%A8>zV+ zp6p{$of`vFE)fK62V}v)mg8no=Z`5X=fdXc!q&i^%BQKirP#;Uwt)Og4I-IC4RpGJ z?@yYEszxEcdmUSXyFhV3>I?<+i*|-axD_2&+6k;H&|D-tL z0Si~$j0eWMkXjgx2oFgae-El{TI1|$2Fel#jxE2G7f`IW>rn3941h@>&a8-H$3q*i zad9kbV85@1lNr>ew^zAxHkR130ivk#^v%W3=ui$KoGk+s|EzKN8Cy5qqs+ivAuf;dRs2A-7z$YnnWIH=`m%no%h)ot!wf0ZJ|{{vi#6I z)W<95&8EI4ppqiR7tV_^wQp2_0~;f9sB>Tvh(0wOwN#0elS89A<%fDJB{bVn52RUA zPJbmmlXtUvHmRNvtfy0gO}%XmVg_ilK@RH{s^s25&zAyRD$6gqzqz$V1|Des3g!pH zuMq$TnTSoW=j0(Dc>Z~FE+XwNcC@54NY@Gz&>)pA5%>#9oAMbCXxu~n;50R{Bz(c& zj3ou)Y;jvyEG(PS!6O&|8#ZZz*vj&gmMyFJG4Pcx?7$wkV4I))4BVu{I%CgF&kZu2 zv`0mtFpD|qe%(>bCy7n9oB$6X+GQq4KeS5vTxF=_TySW_42nLo@b@!7QAR?zx^7d!hKpq68*xtteyobTYX>mp{zFppdgJ z&T{-!VK7gOiW$yiM253O_bMKWg-`Ga>IWS9m<&uL<5te;qph$PN56;yYcbE`^W3$0 zodR-lU(YCng;z$}B69AQXvnC!rn~(@(_2t{=!zMXARU>nLnTs;pED4D=q@DGGinhL zwbK2LRGV zjeSSD6le9;Sqfbyy-+5}_xYs0Gw{RQYejXsglX@il&$-GIEG}BMg8C1_K?)F>A96H zqH1JF3^Ps%W~gi%<-Kd$ZmlKcDY=B@DbLgU(eUlPMsLH4jf+0vG?~`+HFsmU62@)a zB~@-U68$6_Y+Jy-mAlf}pl+lX>QpLRAh(lp4>A?FL9Zo#l`FbR?pp@_AM$|A%G41f zLVKd_keBCPus$O|BWw$DrGQ;yPW?GwC4eP^fR88n}t zinAl4;LiluS$BkddDLR2W^tQ9PdW!fa zf=ASfQd`>OHa{O0@KWhb%##5!o1ENq^?33NsAH9S;LZrejxI?v?In=?^@exv%0ZFT z7%J;rv=5#H2WyXmHt$O8+70-3O{Dx{NK=y)aAhCxT-$JT=OVSB0OyNEh;|IXc9bvZ bTbU9fu`P~(i<>La>aXP0pHt{SGy&pQTf1}5 literal 0 HcmV?d00001 diff --git a/resources/radio/client/dist/bundle.js b/resources/radio/client/dist/bundle.js index 5a451c4f5..b045ca6fa 100644 --- a/resources/radio/client/dist/bundle.js +++ b/resources/radio/client/dist/bundle.js @@ -1,4 +1,4 @@ -(()=>{var cW=Object.create;var{getPrototypeOf:dW,defineProperty:c8,getOwnPropertyNames:Q9,getOwnPropertyDescriptor:iW}=Object,T9=Object.prototype.hasOwnProperty;function L9(J){return this[J]}var lW,nW,D9=(J,Y,W)=>{var z=J!=null&&typeof J==="object";if(z){var V=Y?lW??=new WeakMap:nW??=new WeakMap,H=V.get(J);if(H)return H}W=J!=null?cW(dW(J)):{};let E=Y||!J||!J.__esModule?c8(W,"default",{value:J,enumerable:!0}):W;for(let _ of Q9(J))if(!T9.call(E,_))c8(E,_,{get:L9.bind(J,_),enumerable:!0});if(z)V.set(J,E);return E},sW=(J)=>{var Y=(C9??=new WeakMap).get(J),W;if(Y)return Y;if(Y=c8({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function"){for(var z of Q9(J))if(!T9.call(Y,z))c8(Y,z,{get:L9.bind(J,z),enumerable:!(W=iW(J,z))||W.enumerable})}return C9.set(J,Y),Y},C9,a=(J,Y)=>()=>(Y||J((Y={exports:{}}).exports,Y),Y.exports);var rW=(J)=>J;function aW(J,Y){this[J]=rW.bind(null,Y)}var tW=(J,Y)=>{for(var W in Y)c8(J,W,{get:Y[W],enumerable:!0,configurable:!0,set:aW.bind(Y,W)})};var vJ=a((Q6)=>{/*! +(()=>{var lW=Object.create;var{getPrototypeOf:nW,defineProperty:c8,getOwnPropertyNames:L9,getOwnPropertyDescriptor:sW}=Object,D9=Object.prototype.hasOwnProperty;function I9(J){return this[J]}var rW,aW,w9=(J,Y,W)=>{var z=J!=null&&typeof J==="object";if(z){var V=Y?rW??=new WeakMap:aW??=new WeakMap,F=V.get(J);if(F)return F}W=J!=null?lW(nW(J)):{};let E=Y||!J||!J.__esModule?c8(W,"default",{value:J,enumerable:!0}):W;for(let A of L9(J))if(!D9.call(E,A))c8(E,A,{get:I9.bind(J,A),enumerable:!0});if(z)V.set(J,E);return E},tW=(J)=>{var Y=(T9??=new WeakMap).get(J),W;if(Y)return Y;if(Y=c8({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function"){for(var z of L9(J))if(!D9.call(Y,z))c8(Y,z,{get:I9.bind(J,z),enumerable:!(W=sW(J,z))||W.enumerable})}return T9.set(J,Y),Y},T9,a=(J,Y)=>()=>(Y||J((Y={exports:{}}).exports,Y),Y.exports);var oW=(J)=>J;function eW(J,Y){this[J]=oW.bind(null,Y)}var JK=(J,Y)=>{for(var W in Y)c8(J,W,{get:Y[W],enumerable:!0,configurable:!0,set:eW.bind(Y,W)})};var hJ=a((T6)=>{/*! * howler.js v2.2.4 * howlerjs.com * @@ -6,7 +6,7 @@ * goldfirestudios.com * * MIT License - */(function(){var J=function(){this.init()};J.prototype={init:function(){var G=this||Y;return G._counter=1000,G._html5AudioPool=[],G.html5PoolSize=10,G._codecs={},G._howls=[],G._muted=!1,G._volume=1,G._canPlayEvent="canplaythrough",G._navigator=typeof window<"u"&&window.navigator?window.navigator:null,G.masterGain=null,G.noAudio=!1,G.usingWebAudio=!0,G.autoSuspend=!0,G.ctx=null,G.autoUnlock=!0,G._setup(),G},volume:function(G){var U=this||Y;if(G=parseFloat(G),!U.ctx)w();if(typeof G<"u"&&G>=0&&G<=1){if(U._volume=G,U._muted)return U;if(U.usingWebAudio)U.masterGain.gain.setValueAtTime(G,Y.ctx.currentTime);for(var O=0;O=0;U--)G._howls[U].unload();if(G.usingWebAudio&&G.ctx&&typeof G.ctx.close<"u")G.ctx.close(),G.ctx=null,w();return G},codecs:function(G){return(this||Y)._codecs[G.replace(/^x-/,"")]},_setup:function(){var G=this||Y;if(G.state=G.ctx?G.ctx.state||"suspended":"suspended",G._autoSuspend(),!G.usingWebAudio)if(typeof Audio<"u")try{var U=new Audio;if(typeof U.oncanplaythrough>"u")G._canPlayEvent="canplay"}catch(O){G.noAudio=!0}else G.noAudio=!0;try{var U=new Audio;if(U.muted)G.noAudio=!0}catch(O){}if(!G.noAudio)G._setupCodecs();return G},_setupCodecs:function(){var G=this||Y,U=null;try{U=typeof Audio<"u"?new Audio:null}catch(p){return G}if(!U||typeof U.canPlayType!=="function")return G;var O=U.canPlayType("audio/mpeg;").replace(/^no$/,""),M=G._navigator?G._navigator.userAgent:"",L=M.match(/OPR\/(\d+)/g),Q=L&&parseInt(L[0].split("/")[1],10)<33,C=M.indexOf("Safari")!==-1&&M.indexOf("Chrome")===-1,T=M.match(/Version\/(.*?) /),v=C&&T&&parseInt(T[1],10)<15;return G._codecs={mp3:!!(!Q&&(O||U.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!O,opus:!!U.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!U.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!U.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(U.canPlayType('audio/wav; codecs="1"')||U.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!U.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!U.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(U.canPlayType("audio/x-m4a;")||U.canPlayType("audio/m4a;")||U.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(U.canPlayType("audio/x-m4b;")||U.canPlayType("audio/m4b;")||U.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(U.canPlayType("audio/x-mp4;")||U.canPlayType("audio/mp4;")||U.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!v&&U.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!v&&U.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!U.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(U.canPlayType("audio/x-flac;")||U.canPlayType("audio/flac;")).replace(/^no$/,"")},G},_unlockAudio:function(){var G=this||Y;if(G._audioUnlocked||!G.ctx)return;if(G._audioUnlocked=!1,G.autoUnlock=!1,!G._mobileUnloaded&&G.ctx.sampleRate!==44100)G._mobileUnloaded=!0,G.unload();G._scratchBuffer=G.ctx.createBuffer(1,1,22050);var U=function(O){while(G._html5AudioPool.length"u")v.noteOn(0);else v.start(0);if(typeof G.ctx.resume==="function")G.ctx.resume();v.onended=function(){v.disconnect(0),G._audioUnlocked=!0,document.removeEventListener("touchstart",U,!0),document.removeEventListener("touchend",U,!0),document.removeEventListener("click",U,!0),document.removeEventListener("keydown",U,!0);for(var p=0;p"u"||!Y.usingWebAudio)return;for(var U=0;U"u"||!Y.usingWebAudio)return;if(G.state==="running"&&G.ctx.state!=="interrupted"&&G._suspendTimer)clearTimeout(G._suspendTimer),G._suspendTimer=null;else if(G.state==="suspended"||G.state==="running"&&G.ctx.state==="interrupted"){if(G.ctx.resume().then(function(){G.state="running";for(var U=0;U"u"){if(G="__default",!O._playLock){var L=0;for(var Q=0;Q0?C._seek:O._sprite[G][0]/1000),p=Math.max(0,(O._sprite[G][0]+O._sprite[G][1])/1000-v),u=p*1000/Math.abs(C._rate),z0=O._sprite[G][0]/1000,F=(O._sprite[G][0]+O._sprite[G][1])/1000;C._sprite=G,C._ended=!1;var n=function(){C._paused=!1,C._seek=v,C._start=z0,C._stop=F,C._loop=!!(C._loop||O._sprite[G][2])};if(v>=F){O._ended(C);return}var s=C._node;if(O._webAudio){var r=function(){O._playLock=!1,n(),O._refreshBuffer(C);var b=C._muted||O._muted?0:C._volume;if(s.gain.setValueAtTime(b,Y.ctx.currentTime),C._playStart=Y.ctx.currentTime,typeof s.bufferSource.start>"u")C._loop?s.bufferSource.noteGrainOn(0,v,86400):s.bufferSource.noteGrainOn(0,v,p);else C._loop?s.bufferSource.start(0,v,86400):s.bufferSource.start(0,v,p);if(u!==1/0)O._endTimers[C._id]=setTimeout(O._ended.bind(O,C),u);if(!U)setTimeout(function(){O._emit("play",C._id),O._loadQueue()},0)};if(Y.state==="running"&&Y.ctx.state!=="interrupted")r();else O._playLock=!0,O.once("resume",r),O._clearTimer(C._id)}else{var B0=function(){s.currentTime=v,s.muted=C._muted||O._muted||Y._muted||s.muted,s.volume=C._volume*Y.volume(),s.playbackRate=C._rate;try{var b=s.play();if(b&&typeof Promise<"u"&&(b instanceof Promise||typeof b.then==="function"))O._playLock=!0,n(),b.then(function(){if(O._playLock=!1,s._unlocked=!0,!U)O._emit("play",C._id);else O._loadQueue()}).catch(function(){O._playLock=!1,O._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),C._ended=!0,C._paused=!0});else if(!U)O._playLock=!1,n(),O._emit("play",C._id);if(s.playbackRate=C._rate,s.paused){O._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}if(G!=="__default"||C._loop)O._endTimers[C._id]=setTimeout(O._ended.bind(O,C),u);else O._endTimers[C._id]=function(){O._ended(C),s.removeEventListener("ended",O._endTimers[C._id],!1)},s.addEventListener("ended",O._endTimers[C._id],!1)}catch(t){O._emit("playerror",C._id,t)}};if(s.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")s.src=O._src,s.load();var i0=window&&window.ejecta||!s.readyState&&Y._navigator.isCocoonJS;if(s.readyState>=3||i0)B0();else{O._playLock=!0,O._state="loading";var _0=function(){O._state="loaded",B0(),s.removeEventListener(Y._canPlayEvent,_0,!1)};s.addEventListener(Y._canPlayEvent,_0,!1),O._clearTimer(C._id)}}return C._id},pause:function(G){var U=this;if(U._state!=="loaded"||U._playLock)return U._queue.push({event:"pause",action:function(){U.pause(G)}}),U;var O=U._getSoundIds(G);for(var M=0;M"u")L._node.bufferSource.noteOff(0);else L._node.bufferSource.stop(0);U._cleanBuffer(L._node)}else if(!isNaN(L._node.duration)||L._node.duration===1/0)L._node.pause()}}if(!arguments[1])U._emit("pause",L?L._id:null)}return U},stop:function(G,U){var O=this;if(O._state!=="loaded"||O._playLock)return O._queue.push({event:"stop",action:function(){O.stop(G)}}),O;var M=O._getSoundIds(G);for(var L=0;L"u")Q._node.bufferSource.noteOff(0);else Q._node.bufferSource.stop(0);O._cleanBuffer(Q._node)}}else if(!isNaN(Q._node.duration)||Q._node.duration===1/0){if(Q._node.currentTime=Q._start||0,Q._node.pause(),Q._node.duration===1/0)O._clearSound(Q._node)}}if(!U)O._emit("stop",Q._id)}}return O},mute:function(G,U){var O=this;if(O._state!=="loaded"||O._playLock)return O._queue.push({event:"mute",action:function(){O.mute(G,U)}}),O;if(typeof U>"u")if(typeof G==="boolean")O._muted=G;else return O._muted;var M=O._getSoundIds(U);for(var L=0;L"u"){var L=G._getSoundIds(),Q=L.indexOf(U[0]);if(Q>=0)M=parseInt(U[0],10);else O=parseFloat(U[0])}else if(U.length>=2)O=parseFloat(U[0]),M=parseInt(U[1],10);var C;if(typeof O<"u"&&O>=0&&O<=1){if(G._state!=="loaded"||G._playLock)return G._queue.push({event:"volume",action:function(){G.volume.apply(G,U)}}),G;if(typeof M>"u")G._volume=O;M=G._getSoundIds(M);for(var T=0;T"u")}}return L},_startFadeInterval:function(G,U,O,M,L,Q){var C=this,T=U,v=O-U,p=Math.abs(v/0.01),u=Math.max(4,p>0?M/p:M),z0=Date.now();G._fadeTo=O,G._interval=setInterval(function(){var F=(Date.now()-z0)/M;if(z0=Date.now(),T+=v*F,T=Math.round(T*100)/100,v<0)T=Math.max(O,T);else T=Math.min(O,T);if(C._webAudio)G._volume=T;else C.volume(T,G._id,!0);if(Q)C._volume=T;if(OU&&T>=O)clearInterval(G._interval),G._interval=null,G._fadeTo=null,C.volume(O,G._id),C._emit("fade",G._id)},u)},_stopFade:function(G){var U=this,O=U._soundById(G);if(O&&O._interval){if(U._webAudio)O._node.gain.cancelScheduledValues(Y.ctx.currentTime);clearInterval(O._interval),O._interval=null,U.volume(O._fadeTo,G),O._fadeTo=null,U._emit("fade",G)}return U},loop:function(){var G=this,U=arguments,O,M,L;if(U.length===0)return G._loop;else if(U.length===1)if(typeof U[0]==="boolean")O=U[0],G._loop=O;else return L=G._soundById(parseInt(U[0],10)),L?L._loop:!1;else if(U.length===2)O=U[0],M=parseInt(U[1],10);var Q=G._getSoundIds(M);for(var C=0;C=0)M=parseInt(U[0],10);else O=parseFloat(U[0])}else if(U.length===2)O=parseFloat(U[0]),M=parseInt(U[1],10);var C;if(typeof O==="number"){if(G._state!=="loaded"||G._playLock)return G._queue.push({event:"rate",action:function(){G.rate.apply(G,U)}}),G;if(typeof M>"u")G._rate=O;M=G._getSoundIds(M);for(var T=0;T=0)M=parseInt(U[0],10);else if(G._sounds.length)M=G._sounds[0]._id,O=parseFloat(U[0])}else if(U.length===2)O=parseFloat(U[0]),M=parseInt(U[1],10);if(typeof M>"u")return 0;if(typeof O==="number"&&(G._state!=="loaded"||G._playLock))return G._queue.push({event:"seek",action:function(){G.seek.apply(G,U)}}),G;var C=G._soundById(M);if(C)if(typeof O==="number"&&O>=0){var T=G.playing(M);if(T)G.pause(M,!0);if(C._seek=O,C._ended=!1,G._clearTimer(M),!G._webAudio&&C._node&&!isNaN(C._node.duration))C._node.currentTime=O;var v=function(){if(T)G.play(M,!0);G._emit("seek",M)};if(T&&!G._webAudio){var p=function(){if(!G._playLock)v();else setTimeout(p,0)};setTimeout(p,0)}else v()}else if(G._webAudio){var u=G.playing(M)?Y.ctx.currentTime-C._playStart:0,z0=C._rateSeek?C._rateSeek-C._seek:0;return C._seek+(z0+u*Math.abs(C._rate))}else return C._node.currentTime;return G},playing:function(G){var U=this;if(typeof G==="number"){var O=U._soundById(G);return O?!O._paused:!1}for(var M=0;M=0)Y._howls.splice(M,1);var L=!0;for(O=0;O=0){L=!1;break}if(V&&L)delete V[G._src];return Y.noAudio=!1,G._state="unloaded",G._sounds=[],G=null,null},on:function(G,U,O,M){var L=this,Q=L["_on"+G];if(typeof U==="function")Q.push(M?{id:O,fn:U,once:M}:{id:O,fn:U});return L},off:function(G,U,O){var M=this,L=M["_on"+G],Q=0;if(typeof U==="number")O=U,U=null;if(U||O)for(Q=0;Q=0;Q--)if(!L[Q].id||L[Q].id===U||G==="load"){if(setTimeout(function(C){C.call(this,U,O)}.bind(M,L[Q].fn),0),L[Q].once)M.off(G,L[Q].fn,L[Q].id)}return M._loadQueue(G),M},_loadQueue:function(G){var U=this;if(U._queue.length>0){var O=U._queue[0];if(O.event===G)U._queue.shift(),U._loadQueue();if(!G)O.action()}return U},_ended:function(G){var U=this,O=G._sprite;if(!U._webAudio&&G._node&&!G._node.paused&&!G._node.ended&&G._node.currentTime=0;M--){if(O<=U)return;if(G._sounds[M]._ended){if(G._webAudio&&G._sounds[M]._node)G._sounds[M]._node.disconnect(0);G._sounds.splice(M,1),O--}}},_getSoundIds:function(G){var U=this;if(typeof G>"u"){var O=[];for(var M=0;M=0;if(!G.bufferSource)return U;if(Y._scratchBuffer&&G.bufferSource){if(G.bufferSource.onended=null,G.bufferSource.disconnect(0),O)try{G.bufferSource.buffer=Y._scratchBuffer}catch(M){}}return G.bufferSource=null,U},_clearSound:function(G){var U=/MSIE |Trident\//.test(Y._navigator&&Y._navigator.userAgent);if(!U)G.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"}};var z=function(G){this._parent=G,this.init()};z.prototype={init:function(){var G=this,U=G._parent;return G._muted=U._muted,G._loop=U._loop,G._volume=U._volume,G._rate=U._rate,G._seek=0,G._paused=!0,G._ended=!0,G._sprite="__default",G._id=++Y._counter,U._sounds.push(G),G.create(),G},create:function(){var G=this,U=G._parent,O=Y._muted||G._muted||G._parent._muted?0:G._volume;if(U._webAudio)G._node=typeof Y.ctx.createGain>"u"?Y.ctx.createGainNode():Y.ctx.createGain(),G._node.gain.setValueAtTime(O,Y.ctx.currentTime),G._node.paused=!0,G._node.connect(Y.masterGain);else if(!Y.noAudio)G._node=Y._obtainHtml5Audio(),G._errorFn=G._errorListener.bind(G),G._node.addEventListener("error",G._errorFn,!1),G._loadFn=G._loadListener.bind(G),G._node.addEventListener(Y._canPlayEvent,G._loadFn,!1),G._endFn=G._endListener.bind(G),G._node.addEventListener("ended",G._endFn,!1),G._node.src=U._src,G._node.preload=U._preload===!0?"auto":U._preload,G._node.volume=O*Y.volume(),G._node.load();return G},reset:function(){var G=this,U=G._parent;return G._muted=U._muted,G._loop=U._loop,G._volume=U._volume,G._rate=U._rate,G._seek=0,G._rateSeek=0,G._paused=!0,G._ended=!0,G._sprite="__default",G._id=++Y._counter,G},_errorListener:function(){var G=this;G._parent._emit("loaderror",G._id,G._node.error?G._node.error.code:0),G._node.removeEventListener("error",G._errorFn,!1)},_loadListener:function(){var G=this,U=G._parent;if(U._duration=Math.ceil(G._node.duration*10)/10,Object.keys(U._sprite).length===0)U._sprite={__default:[0,U._duration*1000]};if(U._state!=="loaded")U._state="loaded",U._emit("load"),U._loadQueue();G._node.removeEventListener(Y._canPlayEvent,G._loadFn,!1)},_endListener:function(){var G=this,U=G._parent;if(U._duration===1/0){if(U._duration=Math.ceil(G._node.duration*10)/10,U._sprite.__default[1]===1/0)U._sprite.__default[1]=U._duration*1000;U._ended(G)}G._node.removeEventListener("ended",G._endFn,!1)}};var V={},H=function(G){var U=G._src;if(V[U]){G._duration=V[U].duration,A(G);return}if(/^data:[^;]+;base64,/.test(U)){var O=atob(U.split(",")[1]),M=new Uint8Array(O.length);for(var L=0;L0)V[U._src]=L,A(U,L);else O()};if(typeof Promise<"u"&&Y.ctx.decodeAudioData.length===1)Y.ctx.decodeAudioData(G).then(M).catch(O);else Y.ctx.decodeAudioData(G,M,O)},A=function(G,U){if(U&&!G._duration)G._duration=U.duration;if(Object.keys(G._sprite).length===0)G._sprite={__default:[0,G._duration*1000]};if(G._state!=="loaded")G._state="loaded",G._emit("load"),G._loadQueue()},w=function(){if(!Y.usingWebAudio)return;try{if(typeof AudioContext<"u")Y.ctx=new AudioContext;else if(typeof webkitAudioContext<"u")Y.ctx=new webkitAudioContext;else Y.usingWebAudio=!1}catch(L){Y.usingWebAudio=!1}if(!Y.ctx)Y.usingWebAudio=!1;var G=/iP(hone|od|ad)/.test(Y._navigator&&Y._navigator.platform),U=Y._navigator&&Y._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),O=U?parseInt(U[1],10):null;if(G&&O&&O<9){var M=/safari/.test(Y._navigator&&Y._navigator.userAgent.toLowerCase());if(Y._navigator&&!M)Y.usingWebAudio=!1}if(Y.usingWebAudio)Y.masterGain=typeof Y.ctx.createGain>"u"?Y.ctx.createGainNode():Y.ctx.createGain(),Y.masterGain.gain.setValueAtTime(Y._muted?0:Y._volume,Y.ctx.currentTime),Y.masterGain.connect(Y.ctx.destination);Y._setup()};if(typeof define==="function"&&define.amd)define([],function(){return{Howler:Y,Howl:W}});if(typeof Q6<"u")Q6.Howler=Y,Q6.Howl=W;if(typeof global<"u")global.HowlerGlobal=J,global.Howler=Y,global.Howl=W,global.Sound=z;else if(typeof window<"u")window.HowlerGlobal=J,window.Howler=Y,window.Howl=W,window.Sound=z})();/*! + */(function(){var J=function(){this.init()};J.prototype={init:function(){var G=this||Y;return G._counter=1000,G._html5AudioPool=[],G.html5PoolSize=10,G._codecs={},G._howls=[],G._muted=!1,G._volume=1,G._canPlayEvent="canplaythrough",G._navigator=typeof window<"u"&&window.navigator?window.navigator:null,G.masterGain=null,G.noAudio=!1,G.usingWebAudio=!0,G.autoSuspend=!0,G.ctx=null,G.autoUnlock=!0,G._setup(),G},volume:function(G){var U=this||Y;if(G=parseFloat(G),!U.ctx)I();if(typeof G<"u"&&G>=0&&G<=1){if(U._volume=G,U._muted)return U;if(U.usingWebAudio)U.masterGain.gain.setValueAtTime(G,Y.ctx.currentTime);for(var R=0;R=0;U--)G._howls[U].unload();if(G.usingWebAudio&&G.ctx&&typeof G.ctx.close<"u")G.ctx.close(),G.ctx=null,I();return G},codecs:function(G){return(this||Y)._codecs[G.replace(/^x-/,"")]},_setup:function(){var G=this||Y;if(G.state=G.ctx?G.ctx.state||"suspended":"suspended",G._autoSuspend(),!G.usingWebAudio)if(typeof Audio<"u")try{var U=new Audio;if(typeof U.oncanplaythrough>"u")G._canPlayEvent="canplay"}catch(R){G.noAudio=!0}else G.noAudio=!0;try{var U=new Audio;if(U.muted)G.noAudio=!0}catch(R){}if(!G.noAudio)G._setupCodecs();return G},_setupCodecs:function(){var G=this||Y,U=null;try{U=typeof Audio<"u"?new Audio:null}catch(p){return G}if(!U||typeof U.canPlayType!=="function")return G;var R=U.canPlayType("audio/mpeg;").replace(/^no$/,""),P=G._navigator?G._navigator.userAgent:"",L=P.match(/OPR\/(\d+)/g),Q=L&&parseInt(L[0].split("/")[1],10)<33,C=P.indexOf("Safari")!==-1&&P.indexOf("Chrome")===-1,T=P.match(/Version\/(.*?) /),v=C&&T&&parseInt(T[1],10)<15;return G._codecs={mp3:!!(!Q&&(R||U.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!R,opus:!!U.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!U.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!U.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(U.canPlayType('audio/wav; codecs="1"')||U.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!U.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!U.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(U.canPlayType("audio/x-m4a;")||U.canPlayType("audio/m4a;")||U.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(U.canPlayType("audio/x-m4b;")||U.canPlayType("audio/m4b;")||U.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(U.canPlayType("audio/x-mp4;")||U.canPlayType("audio/mp4;")||U.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!v&&U.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!v&&U.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!U.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(U.canPlayType("audio/x-flac;")||U.canPlayType("audio/flac;")).replace(/^no$/,"")},G},_unlockAudio:function(){var G=this||Y;if(G._audioUnlocked||!G.ctx)return;if(G._audioUnlocked=!1,G.autoUnlock=!1,!G._mobileUnloaded&&G.ctx.sampleRate!==44100)G._mobileUnloaded=!0,G.unload();G._scratchBuffer=G.ctx.createBuffer(1,1,22050);var U=function(R){while(G._html5AudioPool.length"u")v.noteOn(0);else v.start(0);if(typeof G.ctx.resume==="function")G.ctx.resume();v.onended=function(){v.disconnect(0),G._audioUnlocked=!0,document.removeEventListener("touchstart",U,!0),document.removeEventListener("touchend",U,!0),document.removeEventListener("click",U,!0),document.removeEventListener("keydown",U,!0);for(var p=0;p"u"||!Y.usingWebAudio)return;for(var U=0;U"u"||!Y.usingWebAudio)return;if(G.state==="running"&&G.ctx.state!=="interrupted"&&G._suspendTimer)clearTimeout(G._suspendTimer),G._suspendTimer=null;else if(G.state==="suspended"||G.state==="running"&&G.ctx.state==="interrupted"){if(G.ctx.resume().then(function(){G.state="running";for(var U=0;U"u"){if(G="__default",!R._playLock){var L=0;for(var Q=0;Q0?C._seek:R._sprite[G][0]/1000),p=Math.max(0,(R._sprite[G][0]+R._sprite[G][1])/1000-v),u=p*1000/Math.abs(C._rate),z0=R._sprite[G][0]/1000,q=(R._sprite[G][0]+R._sprite[G][1])/1000;C._sprite=G,C._ended=!1;var n=function(){C._paused=!1,C._seek=v,C._start=z0,C._stop=q,C._loop=!!(C._loop||R._sprite[G][2])};if(v>=q){R._ended(C);return}var s=C._node;if(R._webAudio){var r=function(){R._playLock=!1,n(),R._refreshBuffer(C);var b=C._muted||R._muted?0:C._volume;if(s.gain.setValueAtTime(b,Y.ctx.currentTime),C._playStart=Y.ctx.currentTime,typeof s.bufferSource.start>"u")C._loop?s.bufferSource.noteGrainOn(0,v,86400):s.bufferSource.noteGrainOn(0,v,p);else C._loop?s.bufferSource.start(0,v,86400):s.bufferSource.start(0,v,p);if(u!==1/0)R._endTimers[C._id]=setTimeout(R._ended.bind(R,C),u);if(!U)setTimeout(function(){R._emit("play",C._id),R._loadQueue()},0)};if(Y.state==="running"&&Y.ctx.state!=="interrupted")r();else R._playLock=!0,R.once("resume",r),R._clearTimer(C._id)}else{var B0=function(){s.currentTime=v,s.muted=C._muted||R._muted||Y._muted||s.muted,s.volume=C._volume*Y.volume(),s.playbackRate=C._rate;try{var b=s.play();if(b&&typeof Promise<"u"&&(b instanceof Promise||typeof b.then==="function"))R._playLock=!0,n(),b.then(function(){if(R._playLock=!1,s._unlocked=!0,!U)R._emit("play",C._id);else R._loadQueue()}).catch(function(){R._playLock=!1,R._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),C._ended=!0,C._paused=!0});else if(!U)R._playLock=!1,n(),R._emit("play",C._id);if(s.playbackRate=C._rate,s.paused){R._emit("playerror",C._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}if(G!=="__default"||C._loop)R._endTimers[C._id]=setTimeout(R._ended.bind(R,C),u);else R._endTimers[C._id]=function(){R._ended(C),s.removeEventListener("ended",R._endTimers[C._id],!1)},s.addEventListener("ended",R._endTimers[C._id],!1)}catch(t){R._emit("playerror",C._id,t)}};if(s.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")s.src=R._src,s.load();var i0=window&&window.ejecta||!s.readyState&&Y._navigator.isCocoonJS;if(s.readyState>=3||i0)B0();else{R._playLock=!0,R._state="loading";var _0=function(){R._state="loaded",B0(),s.removeEventListener(Y._canPlayEvent,_0,!1)};s.addEventListener(Y._canPlayEvent,_0,!1),R._clearTimer(C._id)}}return C._id},pause:function(G){var U=this;if(U._state!=="loaded"||U._playLock)return U._queue.push({event:"pause",action:function(){U.pause(G)}}),U;var R=U._getSoundIds(G);for(var P=0;P"u")L._node.bufferSource.noteOff(0);else L._node.bufferSource.stop(0);U._cleanBuffer(L._node)}else if(!isNaN(L._node.duration)||L._node.duration===1/0)L._node.pause()}}if(!arguments[1])U._emit("pause",L?L._id:null)}return U},stop:function(G,U){var R=this;if(R._state!=="loaded"||R._playLock)return R._queue.push({event:"stop",action:function(){R.stop(G)}}),R;var P=R._getSoundIds(G);for(var L=0;L"u")Q._node.bufferSource.noteOff(0);else Q._node.bufferSource.stop(0);R._cleanBuffer(Q._node)}}else if(!isNaN(Q._node.duration)||Q._node.duration===1/0){if(Q._node.currentTime=Q._start||0,Q._node.pause(),Q._node.duration===1/0)R._clearSound(Q._node)}}if(!U)R._emit("stop",Q._id)}}return R},mute:function(G,U){var R=this;if(R._state!=="loaded"||R._playLock)return R._queue.push({event:"mute",action:function(){R.mute(G,U)}}),R;if(typeof U>"u")if(typeof G==="boolean")R._muted=G;else return R._muted;var P=R._getSoundIds(U);for(var L=0;L"u"){var L=G._getSoundIds(),Q=L.indexOf(U[0]);if(Q>=0)P=parseInt(U[0],10);else R=parseFloat(U[0])}else if(U.length>=2)R=parseFloat(U[0]),P=parseInt(U[1],10);var C;if(typeof R<"u"&&R>=0&&R<=1){if(G._state!=="loaded"||G._playLock)return G._queue.push({event:"volume",action:function(){G.volume.apply(G,U)}}),G;if(typeof P>"u")G._volume=R;P=G._getSoundIds(P);for(var T=0;T"u")}}return L},_startFadeInterval:function(G,U,R,P,L,Q){var C=this,T=U,v=R-U,p=Math.abs(v/0.01),u=Math.max(4,p>0?P/p:P),z0=Date.now();G._fadeTo=R,G._interval=setInterval(function(){var q=(Date.now()-z0)/P;if(z0=Date.now(),T+=v*q,T=Math.round(T*100)/100,v<0)T=Math.max(R,T);else T=Math.min(R,T);if(C._webAudio)G._volume=T;else C.volume(T,G._id,!0);if(Q)C._volume=T;if(RU&&T>=R)clearInterval(G._interval),G._interval=null,G._fadeTo=null,C.volume(R,G._id),C._emit("fade",G._id)},u)},_stopFade:function(G){var U=this,R=U._soundById(G);if(R&&R._interval){if(U._webAudio)R._node.gain.cancelScheduledValues(Y.ctx.currentTime);clearInterval(R._interval),R._interval=null,U.volume(R._fadeTo,G),R._fadeTo=null,U._emit("fade",G)}return U},loop:function(){var G=this,U=arguments,R,P,L;if(U.length===0)return G._loop;else if(U.length===1)if(typeof U[0]==="boolean")R=U[0],G._loop=R;else return L=G._soundById(parseInt(U[0],10)),L?L._loop:!1;else if(U.length===2)R=U[0],P=parseInt(U[1],10);var Q=G._getSoundIds(P);for(var C=0;C=0)P=parseInt(U[0],10);else R=parseFloat(U[0])}else if(U.length===2)R=parseFloat(U[0]),P=parseInt(U[1],10);var C;if(typeof R==="number"){if(G._state!=="loaded"||G._playLock)return G._queue.push({event:"rate",action:function(){G.rate.apply(G,U)}}),G;if(typeof P>"u")G._rate=R;P=G._getSoundIds(P);for(var T=0;T=0)P=parseInt(U[0],10);else if(G._sounds.length)P=G._sounds[0]._id,R=parseFloat(U[0])}else if(U.length===2)R=parseFloat(U[0]),P=parseInt(U[1],10);if(typeof P>"u")return 0;if(typeof R==="number"&&(G._state!=="loaded"||G._playLock))return G._queue.push({event:"seek",action:function(){G.seek.apply(G,U)}}),G;var C=G._soundById(P);if(C)if(typeof R==="number"&&R>=0){var T=G.playing(P);if(T)G.pause(P,!0);if(C._seek=R,C._ended=!1,G._clearTimer(P),!G._webAudio&&C._node&&!isNaN(C._node.duration))C._node.currentTime=R;var v=function(){if(T)G.play(P,!0);G._emit("seek",P)};if(T&&!G._webAudio){var p=function(){if(!G._playLock)v();else setTimeout(p,0)};setTimeout(p,0)}else v()}else if(G._webAudio){var u=G.playing(P)?Y.ctx.currentTime-C._playStart:0,z0=C._rateSeek?C._rateSeek-C._seek:0;return C._seek+(z0+u*Math.abs(C._rate))}else return C._node.currentTime;return G},playing:function(G){var U=this;if(typeof G==="number"){var R=U._soundById(G);return R?!R._paused:!1}for(var P=0;P=0)Y._howls.splice(P,1);var L=!0;for(R=0;R=0){L=!1;break}if(V&&L)delete V[G._src];return Y.noAudio=!1,G._state="unloaded",G._sounds=[],G=null,null},on:function(G,U,R,P){var L=this,Q=L["_on"+G];if(typeof U==="function")Q.push(P?{id:R,fn:U,once:P}:{id:R,fn:U});return L},off:function(G,U,R){var P=this,L=P["_on"+G],Q=0;if(typeof U==="number")R=U,U=null;if(U||R)for(Q=0;Q=0;Q--)if(!L[Q].id||L[Q].id===U||G==="load"){if(setTimeout(function(C){C.call(this,U,R)}.bind(P,L[Q].fn),0),L[Q].once)P.off(G,L[Q].fn,L[Q].id)}return P._loadQueue(G),P},_loadQueue:function(G){var U=this;if(U._queue.length>0){var R=U._queue[0];if(R.event===G)U._queue.shift(),U._loadQueue();if(!G)R.action()}return U},_ended:function(G){var U=this,R=G._sprite;if(!U._webAudio&&G._node&&!G._node.paused&&!G._node.ended&&G._node.currentTime=0;P--){if(R<=U)return;if(G._sounds[P]._ended){if(G._webAudio&&G._sounds[P]._node)G._sounds[P]._node.disconnect(0);G._sounds.splice(P,1),R--}}},_getSoundIds:function(G){var U=this;if(typeof G>"u"){var R=[];for(var P=0;P=0;if(!G.bufferSource)return U;if(Y._scratchBuffer&&G.bufferSource){if(G.bufferSource.onended=null,G.bufferSource.disconnect(0),R)try{G.bufferSource.buffer=Y._scratchBuffer}catch(P){}}return G.bufferSource=null,U},_clearSound:function(G){var U=/MSIE |Trident\//.test(Y._navigator&&Y._navigator.userAgent);if(!U)G.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"}};var z=function(G){this._parent=G,this.init()};z.prototype={init:function(){var G=this,U=G._parent;return G._muted=U._muted,G._loop=U._loop,G._volume=U._volume,G._rate=U._rate,G._seek=0,G._paused=!0,G._ended=!0,G._sprite="__default",G._id=++Y._counter,U._sounds.push(G),G.create(),G},create:function(){var G=this,U=G._parent,R=Y._muted||G._muted||G._parent._muted?0:G._volume;if(U._webAudio)G._node=typeof Y.ctx.createGain>"u"?Y.ctx.createGainNode():Y.ctx.createGain(),G._node.gain.setValueAtTime(R,Y.ctx.currentTime),G._node.paused=!0,G._node.connect(Y.masterGain);else if(!Y.noAudio)G._node=Y._obtainHtml5Audio(),G._errorFn=G._errorListener.bind(G),G._node.addEventListener("error",G._errorFn,!1),G._loadFn=G._loadListener.bind(G),G._node.addEventListener(Y._canPlayEvent,G._loadFn,!1),G._endFn=G._endListener.bind(G),G._node.addEventListener("ended",G._endFn,!1),G._node.src=U._src,G._node.preload=U._preload===!0?"auto":U._preload,G._node.volume=R*Y.volume(),G._node.load();return G},reset:function(){var G=this,U=G._parent;return G._muted=U._muted,G._loop=U._loop,G._volume=U._volume,G._rate=U._rate,G._seek=0,G._rateSeek=0,G._paused=!0,G._ended=!0,G._sprite="__default",G._id=++Y._counter,G},_errorListener:function(){var G=this;G._parent._emit("loaderror",G._id,G._node.error?G._node.error.code:0),G._node.removeEventListener("error",G._errorFn,!1)},_loadListener:function(){var G=this,U=G._parent;if(U._duration=Math.ceil(G._node.duration*10)/10,Object.keys(U._sprite).length===0)U._sprite={__default:[0,U._duration*1000]};if(U._state!=="loaded")U._state="loaded",U._emit("load"),U._loadQueue();G._node.removeEventListener(Y._canPlayEvent,G._loadFn,!1)},_endListener:function(){var G=this,U=G._parent;if(U._duration===1/0){if(U._duration=Math.ceil(G._node.duration*10)/10,U._sprite.__default[1]===1/0)U._sprite.__default[1]=U._duration*1000;U._ended(G)}G._node.removeEventListener("ended",G._endFn,!1)}};var V={},F=function(G){var U=G._src;if(V[U]){G._duration=V[U].duration,N(G);return}if(/^data:[^;]+;base64,/.test(U)){var R=atob(U.split(",")[1]),P=new Uint8Array(R.length);for(var L=0;L0)V[U._src]=L,N(U,L);else R()};if(typeof Promise<"u"&&Y.ctx.decodeAudioData.length===1)Y.ctx.decodeAudioData(G).then(P).catch(R);else Y.ctx.decodeAudioData(G,P,R)},N=function(G,U){if(U&&!G._duration)G._duration=U.duration;if(Object.keys(G._sprite).length===0)G._sprite={__default:[0,G._duration*1000]};if(G._state!=="loaded")G._state="loaded",G._emit("load"),G._loadQueue()},I=function(){if(!Y.usingWebAudio)return;try{if(typeof AudioContext<"u")Y.ctx=new AudioContext;else if(typeof webkitAudioContext<"u")Y.ctx=new webkitAudioContext;else Y.usingWebAudio=!1}catch(L){Y.usingWebAudio=!1}if(!Y.ctx)Y.usingWebAudio=!1;var G=/iP(hone|od|ad)/.test(Y._navigator&&Y._navigator.platform),U=Y._navigator&&Y._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),R=U?parseInt(U[1],10):null;if(G&&R&&R<9){var P=/safari/.test(Y._navigator&&Y._navigator.userAgent.toLowerCase());if(Y._navigator&&!P)Y.usingWebAudio=!1}if(Y.usingWebAudio)Y.masterGain=typeof Y.ctx.createGain>"u"?Y.ctx.createGainNode():Y.ctx.createGain(),Y.masterGain.gain.setValueAtTime(Y._muted?0:Y._volume,Y.ctx.currentTime),Y.masterGain.connect(Y.ctx.destination);Y._setup()};if(typeof define==="function"&&define.amd)define([],function(){return{Howler:Y,Howl:W}});if(typeof T6<"u")T6.Howler=Y,T6.Howl=W;if(typeof global<"u")global.HowlerGlobal=J,global.Howler=Y,global.Howl=W,global.Sound=z;else if(typeof window<"u")window.HowlerGlobal=J,window.Howler=Y,window.Howl=W,window.Sound=z})();/*! * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported. * * howler.js v2.2.4 @@ -16,16 +16,16 @@ * goldfirestudios.com * * MIT License - */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(Y){var W=this;if(!W.ctx||!W.ctx.listener)return W;for(var z=W._howls.length-1;z>=0;z--)W._howls[z].stereo(Y);return W},HowlerGlobal.prototype.pos=function(Y,W,z){var V=this;if(!V.ctx||!V.ctx.listener)return V;if(W=typeof W!=="number"?V._pos[1]:W,z=typeof z!=="number"?V._pos[2]:z,typeof Y==="number")if(V._pos=[Y,W,z],typeof V.ctx.listener.positionX<"u")V.ctx.listener.positionX.setTargetAtTime(V._pos[0],Howler.ctx.currentTime,0.1),V.ctx.listener.positionY.setTargetAtTime(V._pos[1],Howler.ctx.currentTime,0.1),V.ctx.listener.positionZ.setTargetAtTime(V._pos[2],Howler.ctx.currentTime,0.1);else V.ctx.listener.setPosition(V._pos[0],V._pos[1],V._pos[2]);else return V._pos;return V},HowlerGlobal.prototype.orientation=function(Y,W,z,V,H,E){var _=this;if(!_.ctx||!_.ctx.listener)return _;var A=_._orientation;if(W=typeof W!=="number"?A[1]:W,z=typeof z!=="number"?A[2]:z,V=typeof V!=="number"?A[3]:V,H=typeof H!=="number"?A[4]:H,E=typeof E!=="number"?A[5]:E,typeof Y==="number")if(_._orientation=[Y,W,z,V,H,E],typeof _.ctx.listener.forwardX<"u")_.ctx.listener.forwardX.setTargetAtTime(Y,Howler.ctx.currentTime,0.1),_.ctx.listener.forwardY.setTargetAtTime(W,Howler.ctx.currentTime,0.1),_.ctx.listener.forwardZ.setTargetAtTime(z,Howler.ctx.currentTime,0.1),_.ctx.listener.upX.setTargetAtTime(V,Howler.ctx.currentTime,0.1),_.ctx.listener.upY.setTargetAtTime(H,Howler.ctx.currentTime,0.1),_.ctx.listener.upZ.setTargetAtTime(E,Howler.ctx.currentTime,0.1);else _.ctx.listener.setOrientation(Y,W,z,V,H,E);else return A;return _},Howl.prototype.init=function(Y){return function(W){var z=this;return z._orientation=W.orientation||[1,0,0],z._stereo=W.stereo||null,z._pos=W.pos||null,z._pannerAttr={coneInnerAngle:typeof W.coneInnerAngle<"u"?W.coneInnerAngle:360,coneOuterAngle:typeof W.coneOuterAngle<"u"?W.coneOuterAngle:360,coneOuterGain:typeof W.coneOuterGain<"u"?W.coneOuterGain:0,distanceModel:typeof W.distanceModel<"u"?W.distanceModel:"inverse",maxDistance:typeof W.maxDistance<"u"?W.maxDistance:1e4,panningModel:typeof W.panningModel<"u"?W.panningModel:"HRTF",refDistance:typeof W.refDistance<"u"?W.refDistance:1,rolloffFactor:typeof W.rolloffFactor<"u"?W.rolloffFactor:1},z._onstereo=W.onstereo?[{fn:W.onstereo}]:[],z._onpos=W.onpos?[{fn:W.onpos}]:[],z._onorientation=W.onorientation?[{fn:W.onorientation}]:[],Y.call(this,W)}}(Howl.prototype.init),Howl.prototype.stereo=function(Y,W){var z=this;if(!z._webAudio)return z;if(z._state!=="loaded")return z._queue.push({event:"stereo",action:function(){z.stereo(Y,W)}}),z;var V=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof W>"u")if(typeof Y==="number")z._stereo=Y,z._pos=[Y,0,0];else return z._stereo;var H=z._getSoundIds(W);for(var E=0;E"u")if(typeof Y==="number")H._pos=[Y,W,z];else return H._pos;var E=H._getSoundIds(V);for(var _=0;_"u")if(typeof Y==="number")H._orientation=[Y,W,z];else return H._orientation;var E=H._getSoundIds(V);for(var _=0;_"u"){if(!z.pannerAttr)z.pannerAttr={coneInnerAngle:z.coneInnerAngle,coneOuterAngle:z.coneOuterAngle,coneOuterGain:z.coneOuterGain,distanceModel:z.distanceModel,maxDistance:z.maxDistance,refDistance:z.refDistance,rolloffFactor:z.rolloffFactor,panningModel:z.panningModel};Y._pannerAttr={coneInnerAngle:typeof z.pannerAttr.coneInnerAngle<"u"?z.pannerAttr.coneInnerAngle:Y._coneInnerAngle,coneOuterAngle:typeof z.pannerAttr.coneOuterAngle<"u"?z.pannerAttr.coneOuterAngle:Y._coneOuterAngle,coneOuterGain:typeof z.pannerAttr.coneOuterGain<"u"?z.pannerAttr.coneOuterGain:Y._coneOuterGain,distanceModel:typeof z.pannerAttr.distanceModel<"u"?z.pannerAttr.distanceModel:Y._distanceModel,maxDistance:typeof z.pannerAttr.maxDistance<"u"?z.pannerAttr.maxDistance:Y._maxDistance,refDistance:typeof z.pannerAttr.refDistance<"u"?z.pannerAttr.refDistance:Y._refDistance,rolloffFactor:typeof z.pannerAttr.rolloffFactor<"u"?z.pannerAttr.rolloffFactor:Y._rolloffFactor,panningModel:typeof z.pannerAttr.panningModel<"u"?z.pannerAttr.panningModel:Y._panningModel}}}else return H=Y._soundById(parseInt(W[0],10)),H?H._pannerAttr:Y._pannerAttr;else if(W.length===2)z=W[0],V=parseInt(W[1],10);var E=Y._getSoundIds(V);for(var _=0;_{Object.defineProperty(T1,"__esModule",{value:!0});T1.ERROR_PACKET=T1.PACKET_TYPES_REVERSE=T1.PACKET_TYPES=void 0;var G1=Object.create(null);T1.PACKET_TYPES=G1;G1.open="0";G1.close="1";G1.ping="2";G1.pong="3";G1.message="4";G1.upgrade="5";G1.noop="6";var WZ=Object.create(null);T1.PACKET_TYPES_REVERSE=WZ;Object.keys(G1).forEach((J)=>{WZ[G1[J]]=J});var _K={type:"error",data:"parser error"};T1.ERROR_PACKET=_K});var $Z=a((r8)=>{Object.defineProperty(r8,"__esModule",{value:!0});r8.encodePacket=void 0;r8.encodePacketToBinary=EK;var AK=I6(),GZ=typeof Blob==="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",XZ=typeof ArrayBuffer==="function",UZ=(J)=>{return typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(J):J&&J.buffer instanceof ArrayBuffer},VZ=({type:J,data:Y},W,z)=>{if(GZ&&Y instanceof Blob)if(W)return z(Y);else return KZ(Y,z);else if(XZ&&(Y instanceof ArrayBuffer||UZ(Y)))if(W)return z(Y);else return KZ(new Blob([Y]),z);return z(AK.PACKET_TYPES[J]+(Y||""))};r8.encodePacket=VZ;var KZ=(J,Y)=>{let W=new FileReader;return W.onload=function(){let z=W.result.split(",")[1];Y("b"+(z||""))},W.readAsDataURL(J)};function zZ(J){if(J instanceof Uint8Array)return J;else if(J instanceof ArrayBuffer)return new Uint8Array(J);else return new Uint8Array(J.buffer,J.byteOffset,J.byteLength)}var pJ;function EK(J,Y){if(GZ&&J.data instanceof Blob)return J.data.arrayBuffer().then(zZ).then(Y);else if(XZ&&(J.data instanceof ArrayBuffer||UZ(J.data)))return Y(zZ(J.data));VZ(J,!1,(W)=>{if(!pJ)pJ=new TextEncoder;Y(pJ.encode(W))})}});var FZ=a((M8)=>{Object.defineProperty(M8,"__esModule",{value:!0});M8.decode=M8.encode=void 0;var E8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a8=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let J=0;J{let Y=new Uint8Array(J),W,z=Y.length,V="";for(W=0;W>2],V+=E8[(Y[W]&3)<<4|Y[W+1]>>4],V+=E8[(Y[W+1]&15)<<2|Y[W+2]>>6],V+=E8[Y[W+2]&63];if(z%3===2)V=V.substring(0,V.length-1)+"=";else if(z%3===1)V=V.substring(0,V.length-2)+"==";return V};M8.encode=MK;var SK=(J)=>{let Y=J.length*0.75,W=J.length,z,V=0,H,E,_,A;if(J[J.length-1]==="="){if(Y--,J[J.length-2]==="=")Y--}let w=new ArrayBuffer(Y),G=new Uint8Array(w);for(z=0;z>4,G[V++]=(E&15)<<4|_>>2,G[V++]=(_&3)<<6|A&63;return w};M8.decode=SK});var HZ=a((j6)=>{Object.defineProperty(j6,"__esModule",{value:!0});j6.decodePacket=void 0;var w6=I6(),PK=FZ(),CK=typeof ArrayBuffer==="function",QK=(J,Y)=>{if(typeof J!=="string")return{type:"message",data:qZ(J,Y)};let W=J.charAt(0);if(W==="b")return{type:"message",data:TK(J.substring(1),Y)};if(!w6.PACKET_TYPES_REVERSE[W])return w6.ERROR_PACKET;return J.length>1?{type:w6.PACKET_TYPES_REVERSE[W],data:J.substring(1)}:{type:w6.PACKET_TYPES_REVERSE[W]}};j6.decodePacket=QK;var TK=(J,Y)=>{if(CK){let W=(0,PK.decode)(J);return qZ(W,Y)}else return{base64:!0,data:J}},qZ=(J,Y)=>{switch(Y){case"blob":if(J instanceof Blob)return J;else return new Blob([J]);case"arraybuffer":default:if(J instanceof ArrayBuffer)return J;else return J.buffer}}});var S8=a((k0)=>{Object.defineProperty(k0,"__esModule",{value:!0});k0.decodePayload=k0.decodePacket=k0.encodePayload=k0.encodePacket=k0.protocol=void 0;k0.createPacketEncoderStream=IK;k0.createPacketDecoderStream=wK;var cJ=$Z();Object.defineProperty(k0,"encodePacket",{enumerable:!0,get:function(){return cJ.encodePacket}});var dJ=HZ();Object.defineProperty(k0,"decodePacket",{enumerable:!0,get:function(){return dJ.decodePacket}});var BZ=I6(),NZ=String.fromCharCode(30),LK=(J,Y)=>{let W=J.length,z=Array(W),V=0;J.forEach((H,E)=>{(0,cJ.encodePacket)(H,!1,(_)=>{if(z[E]=_,++V===W)Y(z.join(NZ))})})};k0.encodePayload=LK;var DK=(J,Y)=>{let W=J.split(NZ),z=[];for(let V=0;V{let z=W.length,V;if(z<126)V=new Uint8Array(1),new DataView(V.buffer).setUint8(0,z);else if(z<65536){V=new Uint8Array(3);let H=new DataView(V.buffer);H.setUint8(0,126),H.setUint16(1,z)}else{V=new Uint8Array(9);let H=new DataView(V.buffer);H.setUint8(0,127),H.setBigUint64(1,BigInt(z))}if(J.data&&typeof J.data!=="string")V[0]|=128;Y.enqueue(V),Y.enqueue(W)})}})}var uJ;function x6(J){return J.reduce((Y,W)=>Y+W.length,0)}function k6(J,Y){if(J[0].length===Y)return J.shift();let W=new Uint8Array(Y),z=0;for(let V=0;VMath.pow(2,21)-1){_.enqueue(BZ.ERROR_PACKET);break}V=G*Math.pow(2,32)+w.getUint32(4),z=3}else{if(x6(W)J){_.enqueue(BZ.ERROR_PACKET);break}}}})}k0.protocol=4});var d1=a((OZ)=>{OZ.Emitter=L0;function L0(J){if(J)return jK(J)}function jK(J){for(var Y in L0.prototype)J[Y]=L0.prototype[Y];return J}L0.prototype.on=L0.prototype.addEventListener=function(J,Y){return this._callbacks=this._callbacks||{},(this._callbacks["$"+J]=this._callbacks["$"+J]||[]).push(Y),this};L0.prototype.once=function(J,Y){function W(){this.off(J,W),Y.apply(this,arguments)}return W.fn=Y,this.on(J,W),this};L0.prototype.off=L0.prototype.removeListener=L0.prototype.removeAllListeners=L0.prototype.removeEventListener=function(J,Y){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var W=this._callbacks["$"+J];if(!W)return this;if(arguments.length==1)return delete this._callbacks["$"+J],this;var z;for(var V=0;V{Object.defineProperty(O1,"__esModule",{value:!0});O1.defaultBinaryType=O1.globalThisShim=O1.nextTick=void 0;O1.createCookieJar=xK;O1.nextTick=(()=>{if(typeof Promise==="function"&&typeof Promise.resolve==="function")return(Y)=>Promise.resolve().then(Y);else return(Y,W)=>W(Y,0)})();O1.globalThisShim=(()=>{if(typeof self<"u")return self;else if(typeof window<"u")return window;else return Function("return this")()})();O1.defaultBinaryType="arraybuffer";function xK(){}});var l1=a((P8)=>{Object.defineProperty(P8,"__esModule",{value:!0});P8.pick=kK;P8.installTimerFunctions=hK;P8.byteLength=fK;P8.randomString=mK;var L1=i1();function kK(J,...Y){return Y.reduce((W,z)=>{if(J.hasOwnProperty(z))W[z]=J[z];return W},{})}var vK=L1.globalThisShim.setTimeout,bK=L1.globalThisShim.clearTimeout;function hK(J,Y){if(Y.useNativeTimers)J.setTimeoutFn=vK.bind(L1.globalThisShim),J.clearTimeoutFn=bK.bind(L1.globalThisShim);else J.setTimeoutFn=L1.globalThisShim.setTimeout.bind(L1.globalThisShim),J.clearTimeoutFn=L1.globalThisShim.clearTimeout.bind(L1.globalThisShim)}var yK=1.33;function fK(J){if(typeof J==="string")return gK(J);return Math.ceil((J.byteLength||J.size)*yK)}function gK(J){let Y=0,W=0;for(let z=0,V=J.length;z=57344)W+=3;else z++,W+=4;return W}function mK(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}});var iJ=a((v6)=>{Object.defineProperty(v6,"__esModule",{value:!0});v6.encode=pK;v6.decode=uK;function pK(J){let Y="";for(let W in J)if(J.hasOwnProperty(W)){if(Y.length)Y+="&";Y+=encodeURIComponent(W)+"="+encodeURIComponent(J[W])}return Y}function uK(J){let Y={},W=J.split("&");for(let z=0,V=W.length;z{var C8=1000,Q8=C8*60,T8=Q8*60,n1=T8*24,cK=n1*7,dK=n1*365.25;RZ.exports=function(J,Y){Y=Y||{};var W=typeof J;if(W==="string"&&J.length>0)return iK(J);else if(W==="number"&&isFinite(J))return Y.long?nK(J):lK(J);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(J))};function iK(J){if(J=String(J),J.length>100)return;var Y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(J);if(!Y)return;var W=parseFloat(Y[1]),z=(Y[2]||"ms").toLowerCase();switch(z){case"years":case"year":case"yrs":case"yr":case"y":return W*dK;case"weeks":case"week":case"w":return W*cK;case"days":case"day":case"d":return W*n1;case"hours":case"hour":case"hrs":case"hr":case"h":return W*T8;case"minutes":case"minute":case"mins":case"min":case"m":return W*Q8;case"seconds":case"second":case"secs":case"sec":case"s":return W*C8;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return W;default:return}}function lK(J){var Y=Math.abs(J);if(Y>=n1)return Math.round(J/n1)+"d";if(Y>=T8)return Math.round(J/T8)+"h";if(Y>=Q8)return Math.round(J/Q8)+"m";if(Y>=C8)return Math.round(J/C8)+"s";return J+"ms"}function nK(J){var Y=Math.abs(J);if(Y>=n1)return b6(J,Y,n1,"day");if(Y>=T8)return b6(J,Y,T8,"hour");if(Y>=Q8)return b6(J,Y,Q8,"minute");if(Y>=C8)return b6(J,Y,C8,"second");return J+" ms"}function b6(J,Y,W,z){var V=Y>=W*1.5;return Math.round(J/W)+" "+z+(V?"s":"")}});var AZ=a((hG,_Z)=>{function sK(J){W.debug=W,W.default=W,W.coerce=A,W.disable=H,W.enable=V,W.enabled=E,W.humanize=h6(),W.destroy=w,Object.keys(J).forEach((G)=>{W[G]=J[G]}),W.names=[],W.skips=[],W.formatters={};function Y(G){let U=0;for(let O=0;O{if(F==="%%")return"%";u++;let s=W.formatters[n];if(typeof s==="function"){let r=C[u];F=s.call(T,r),C.splice(u,1),u--}return F}),W.formatArgs.call(T,C),(T.log||W.log).apply(T,C)}if(Q.namespace=G,Q.useColors=W.useColors(),Q.color=W.selectColor(G),Q.extend=z,Q.destroy=W.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(O!==null)return O;if(M!==W.namespaces)M=W.namespaces,L=W.enabled(G);return L},set:(C)=>{O=C}}),typeof W.init==="function")W.init(Q);return Q}function z(G,U){let O=W(this.namespace+(typeof U>"u"?":":U)+G);return O.log=this.log,O}function V(G){W.save(G),W.namespaces=G,W.names=[],W.skips=[];let U,O=(typeof G==="string"?G:"").split(/[\s,]+/),M=O.length;for(U=0;U"-"+U)].join(",");return W.enable(""),G}function E(G){if(G[G.length-1]==="*")return!0;let U,O;for(U=0,O=W.skips.length;U{f0.formatArgs=aK;f0.save=tK;f0.load=oK;f0.useColors=rK;f0.storage=eK();f0.destroy=(()=>{let J=!1;return()=>{if(!J)J=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();f0.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function rK(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let J;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(J=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(J[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function aK(J){if(J[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+J[0]+(this.useColors?"%c ":" ")+"+"+y6.exports.humanize(this.diff),!this.useColors)return;let Y="color: "+this.color;J.splice(1,0,Y,"color: inherit");let W=0,z=0;J[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(W++,V==="%c")z=W}),J.splice(z,0,Y)}f0.log=console.debug||console.log||(()=>{});function tK(J){try{if(J)f0.storage.setItem("debug",J);else f0.storage.removeItem("debug")}catch(Y){}}function oK(){let J;try{J=f0.storage.getItem("debug")}catch(Y){}if(!J&&typeof process<"u"&&"env"in process)J=process.env.DEBUG;return J}function eK(){try{return localStorage}catch(J){}}y6.exports=AZ()(f0);var{formatters:J5}=y6.exports;J5.j=function(J){try{return JSON.stringify(J)}catch(Y){return"[UnexpectedJSONParseError]: "+Y.message}}});var t8=a((D1)=>{var Y5=D1&&D1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(D1,"__esModule",{value:!0});D1.Transport=D1.TransportError=void 0;var Z5=S8(),W5=d1(),K5=l1(),z5=iJ(),G5=Y5(s1()),X5=(0,G5.default)("engine.io-client:transport");class lJ extends Error{constructor(J,Y,W){super(J);this.description=Y,this.context=W,this.type="TransportError"}}D1.TransportError=lJ;class EZ extends W5.Emitter{constructor(J){super();this.writable=!1,(0,K5.installTimerFunctions)(this,J),this.opts=J,this.query=J.query,this.socket=J.socket,this.supportsBinary=!J.forceBase64}onError(J,Y,W){return super.emitReserved("error",new lJ(J,Y,W)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){if(this.readyState==="opening"||this.readyState==="open")this.doClose(),this.onClose();return this}send(J){if(this.readyState==="open")this.write(J);else X5("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(J){let Y=(0,Z5.decodePacket)(J,this.socket.binaryType);this.onPacket(Y)}onPacket(J){super.emitReserved("packet",J)}onClose(J){this.readyState="closed",super.emitReserved("close",J)}pause(J){}createUri(J,Y={}){return J+"://"+this._hostname()+this._port()+this.opts.path+this._query(Y)}_hostname(){let J=this.opts.hostname;return J.indexOf(":")===-1?J:"["+J+"]"}_port(){if(this.opts.port&&(this.opts.secure&&Number(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80))return":"+this.opts.port;else return""}_query(J){let Y=(0,z5.encode)(J);return Y.length?"?"+Y:""}}D1.Transport=EZ});var nJ=a((L8)=>{var U5=L8&&L8.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(L8,"__esModule",{value:!0});L8.Polling=void 0;var V5=t8(),$5=l1(),MZ=S8(),F5=U5(s1()),r0=(0,F5.default)("engine.io-client:polling");class SZ extends V5.Transport{constructor(){super(...arguments);this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(J){this.readyState="pausing";let Y=()=>{r0("paused"),this.readyState="paused",J()};if(this._polling||!this.writable){let W=0;if(this._polling)r0("we are currently polling - waiting to pause"),W++,this.once("pollComplete",function(){r0("pre-pause polling complete"),--W||Y()});if(!this.writable)r0("we are currently writing - waiting to pause"),W++,this.once("drain",function(){r0("pre-pause writing complete"),--W||Y()})}else Y()}_poll(){r0("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(J){r0("polling got data %s",J);let Y=(W)=>{if(this.readyState==="opening"&&W.type==="open")this.onOpen();if(W.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(W)};if((0,MZ.decodePayload)(J,this.socket.binaryType).forEach(Y),this.readyState!=="closed")if(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open")this._poll();else r0('ignoring poll - transport state "%s"',this.readyState)}doClose(){let J=()=>{r0("writing close packet"),this.write([{type:"close"}])};if(this.readyState==="open")r0("transport open - closing"),J();else r0("transport not open - deferring close"),this.once("open",J)}write(J){this.writable=!1,(0,MZ.encodePayload)(J,(Y)=>{this.doWrite(Y,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let J=this.opts.secure?"https":"http",Y=this.query||{};if(this.opts.timestampRequests!==!1)Y[this.opts.timestampParam]=(0,$5.randomString)();if(!this.supportsBinary&&!Y.sid)Y.b64=1;return this.createUri(J,Y)}}L8.Polling=SZ});var CZ=a((f6)=>{Object.defineProperty(f6,"__esModule",{value:!0});f6.hasCORS=void 0;var PZ=!1;try{PZ=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch(J){}f6.hasCORS=PZ});var g6=a((X1)=>{var q5=X1&&X1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(X1,"__esModule",{value:!0});X1.XHR=X1.Request=X1.BaseXHR=void 0;var H5=nJ(),B5=d1(),QZ=l1(),LZ=i1(),N5=CZ(),O5=q5(s1()),sJ=(0,O5.default)("engine.io-client:polling");function R5(){}class rJ extends H5.Polling{constructor(J){super(J);if(typeof location<"u"){let Y=location.protocol==="https:",W=location.port;if(!W)W=Y?"443":"80";this.xd=typeof location<"u"&&J.hostname!==location.hostname||W!==J.port}}doWrite(J,Y){let W=this.request({method:"POST",data:J});W.on("success",Y),W.on("error",(z,V)=>{this.onError("xhr post error",z,V)})}doPoll(){sJ("xhr poll");let J=this.request();J.on("data",this.onData.bind(this)),J.on("error",(Y,W)=>{this.onError("xhr poll error",Y,W)}),this.pollXhr=J}}X1.BaseXHR=rJ;class a0 extends B5.Emitter{constructor(J,Y,W){super();this.createRequest=J,(0,QZ.installTimerFunctions)(this,W),this._opts=W,this._method=W.method||"GET",this._uri=Y,this._data=W.data!==void 0?W.data:null,this._create()}_create(){var J;let Y=(0,QZ.pick)(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");Y.xdomain=!!this._opts.xd;let W=this._xhr=this.createRequest(Y);try{sJ("xhr open %s: %s",this._method,this._uri),W.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){W.setDisableHeaderCheck&&W.setDisableHeaderCheck(!0);for(let z in this._opts.extraHeaders)if(this._opts.extraHeaders.hasOwnProperty(z))W.setRequestHeader(z,this._opts.extraHeaders[z])}}catch(z){}if(this._method==="POST")try{W.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(z){}try{W.setRequestHeader("Accept","*/*")}catch(z){}if((J=this._opts.cookieJar)===null||J===void 0||J.addCookies(W),"withCredentials"in W)W.withCredentials=this._opts.withCredentials;if(this._opts.requestTimeout)W.timeout=this._opts.requestTimeout;W.onreadystatechange=()=>{var z;if(W.readyState===3)(z=this._opts.cookieJar)===null||z===void 0||z.parseCookies(W.getResponseHeader("set-cookie"));if(W.readyState!==4)return;if(W.status===200||W.status===1223)this._onLoad();else this.setTimeoutFn(()=>{this._onError(typeof W.status==="number"?W.status:0)},0)},sJ("xhr data %s",this._data),W.send(this._data)}catch(z){this.setTimeoutFn(()=>{this._onError(z)},0);return}if(typeof document<"u")this._index=a0.requestsCount++,a0.requests[this._index]=this}_onError(J){this.emitReserved("error",J,this._xhr),this._cleanup(!0)}_cleanup(J){if(typeof this._xhr>"u"||this._xhr===null)return;if(this._xhr.onreadystatechange=R5,J)try{this._xhr.abort()}catch(Y){}if(typeof document<"u")delete a0.requests[this._index];this._xhr=null}_onLoad(){let J=this._xhr.responseText;if(J!==null)this.emitReserved("data",J),this.emitReserved("success"),this._cleanup()}abort(){this._cleanup()}}X1.Request=a0;a0.requestsCount=0;a0.requests={};if(typeof document<"u"){if(typeof attachEvent==="function")attachEvent("onunload",TZ);else if(typeof addEventListener==="function"){let J="onpagehide"in LZ.globalThisShim?"pagehide":"unload";addEventListener(J,TZ,!1)}}function TZ(){for(let J in a0.requests)if(a0.requests.hasOwnProperty(J))a0.requests[J].abort()}var _5=function(){let J=IZ({xdomain:!1});return J&&J.responseType!==null}();class DZ extends rJ{constructor(J){super(J);let Y=J&&J.forceBase64;this.supportsBinary=_5&&!Y}request(J={}){return Object.assign(J,{xd:this.xd},this.opts),new a0(IZ,this.uri(),J)}}X1.XHR=DZ;function IZ(J){let Y=J.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!Y||N5.hasCORS))return new XMLHttpRequest}catch(W){}if(!Y)try{return new LZ.globalThisShim[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch(W){}}});var m6=a((I1)=>{var A5=I1&&I1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(I1,"__esModule",{value:!0});I1.WS=I1.BaseWS=void 0;var E5=t8(),wZ=l1(),M5=S8(),tJ=i1(),S5=A5(s1()),P5=(0,S5.default)("engine.io-client:websocket"),jZ=typeof navigator<"u"&&typeof navigator.product==="string"&&navigator.product.toLowerCase()==="reactnative";class oJ extends E5.Transport{get name(){return"websocket"}doOpen(){let J=this.uri(),Y=this.opts.protocols,W=jZ?{}:(0,wZ.pick)(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");if(this.opts.extraHeaders)W.headers=this.opts.extraHeaders;try{this.ws=this.createSocket(J,Y,W)}catch(z){return this.emitReserved("error",z)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{if(this.opts.autoUnref)this.ws._socket.unref();this.onOpen()},this.ws.onclose=(J)=>this.onClose({description:"websocket connection closed",context:J}),this.ws.onmessage=(J)=>this.onData(J.data),this.ws.onerror=(J)=>this.onError("websocket error",J)}write(J){this.writable=!1;for(let Y=0;Y{try{this.doWrite(W,V)}catch(H){P5("websocket closed before onclose event")}if(z)(0,tJ.nextTick)(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){if(typeof this.ws<"u")this.ws.onerror=()=>{},this.ws.close(),this.ws=null}uri(){let J=this.opts.secure?"wss":"ws",Y=this.query||{};if(this.opts.timestampRequests)Y[this.opts.timestampParam]=(0,wZ.randomString)();if(!this.supportsBinary)Y.b64=1;return this.createUri(J,Y)}}I1.BaseWS=oJ;var aJ=tJ.globalThisShim.WebSocket||tJ.globalThisShim.MozWebSocket;class xZ extends oJ{createSocket(J,Y,W){return!jZ?Y?new aJ(J,Y):new aJ(J):new aJ(J,Y,W)}doWrite(J,Y){this.ws.send(Y)}}I1.WS=xZ});var eJ=a((D8)=>{var C5=D8&&D8.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(D8,"__esModule",{value:!0});D8.WT=void 0;var Q5=t8(),T5=i1(),kZ=S8(),L5=C5(s1()),o8=(0,L5.default)("engine.io-client:webtransport");class vZ extends Q5.Transport{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(J){return this.emitReserved("error",J)}this._transport.closed.then(()=>{o8("transport closed gracefully"),this.onClose()}).catch((J)=>{o8("transport closed due to %s",J),this.onError("webtransport error",J)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then((J)=>{let Y=(0,kZ.createPacketDecoderStream)(Number.MAX_SAFE_INTEGER,this.socket.binaryType),W=J.readable.pipeThrough(Y).getReader(),z=(0,kZ.createPacketEncoderStream)();z.readable.pipeTo(J.writable),this._writer=z.writable.getWriter();let V=()=>{W.read().then(({done:E,value:_})=>{if(E){o8("session is closed");return}o8("received chunk: %o",_),this.onPacket(_),V()}).catch((E)=>{o8("an error occurred while reading: %s",E)})};V();let H={type:"open"};if(this.query.sid)H.data=`{"sid":"${this.query.sid}"}`;this._writer.write(H).then(()=>this.onOpen())})})}write(J){this.writable=!1;for(let Y=0;Y{if(z)(0,T5.nextTick)(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var J;(J=this._transport)===null||J===void 0||J.close()}}D8.WT=vZ});var JY=a((p6)=>{Object.defineProperty(p6,"__esModule",{value:!0});p6.transports=void 0;var D5=g6(),I5=m6(),w5=eJ();p6.transports={websocket:I5.WS,webtransport:w5.WT,polling:D5.XHR}});var ZY=a((YY)=>{Object.defineProperty(YY,"__esModule",{value:!0});YY.parse=k5;var j5=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,x5=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function k5(J){if(J.length>8000)throw"URI too long";let Y=J,W=J.indexOf("["),z=J.indexOf("]");if(W!=-1&&z!=-1)J=J.substring(0,W)+J.substring(W,z).replace(/:/g,";")+J.substring(z,J.length);let V=j5.exec(J||""),H={},E=14;while(E--)H[x5[E]]=V[E]||"";if(W!=-1&&z!=-1)H.source=Y,H.host=H.host.substring(1,H.host.length-1).replace(/;/g,":"),H.authority=H.authority.replace("[","").replace("]","").replace(/;/g,":"),H.ipv6uri=!0;return H.pathNames=v5(H,H.path),H.queryKey=b5(H,H.query),H}function v5(J,Y){let W=/\/{2,9}/g,z=Y.replace(W,"/").split("/");if(Y.slice(0,1)=="/"||Y.length===0)z.splice(0,1);if(Y.slice(-1)=="/")z.splice(z.length-1,1);return z}function b5(J,Y){let W={};return Y.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(z,V,H){if(V)W[V]=H}),W}});var GY=a((U1)=>{var h5=U1&&U1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(U1,"__esModule",{value:!0});U1.Socket=U1.SocketWithUpgrade=U1.SocketWithoutUpgrade=void 0;var y5=JY(),bZ=l1(),f5=iJ(),hZ=ZY(),g5=d1(),yZ=S8(),WY=i1(),m5=h5(s1()),X0=(0,m5.default)("engine.io-client:socket"),KY=typeof addEventListener==="function"&&typeof removeEventListener==="function",e8=[];if(KY)addEventListener("offline",()=>{X0("closing %d connection(s) because the network was lost",e8.length),e8.forEach((J)=>J())},!1);class R1 extends g5.Emitter{constructor(J,Y){super();if(this.binaryType=WY.defaultBinaryType,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,J&&typeof J==="object")Y=J,J=null;if(J){let W=(0,hZ.parse)(J);if(Y.hostname=W.host,Y.secure=W.protocol==="https"||W.protocol==="wss",Y.port=W.port,W.query)Y.query=W.query}else if(Y.host)Y.hostname=(0,hZ.parse)(Y.host).host;if((0,bZ.installTimerFunctions)(this,Y),this.secure=Y.secure!=null?Y.secure:typeof location<"u"&&location.protocol==="https:",Y.hostname&&!Y.port)Y.port=this.secure?"443":"80";if(this.hostname=Y.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=Y.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},Y.transports.forEach((W)=>{let z=W.prototype.name;this.transports.push(z),this._transportsByName[z]=W}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},Y),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query==="string")this.opts.query=(0,f5.decode)(this.opts.query);if(KY){if(this.opts.closeOnBeforeunload)this._beforeunloadEventListener=()=>{if(this.transport)this.transport.removeAllListeners(),this.transport.close()},addEventListener("beforeunload",this._beforeunloadEventListener,!1);if(this.hostname!=="localhost")X0("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},e8.push(this._offlineEventListener)}if(this.opts.withCredentials)this._cookieJar=(0,WY.createCookieJar)();this._open()}createTransport(J){X0('creating transport "%s"',J);let Y=Object.assign({},this.opts.query);if(Y.EIO=yZ.protocol,Y.transport=J,this.id)Y.sid=this.id;let W=Object.assign({},this.opts,{query:Y,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[J]);return X0("options: %j",W),new this._transportsByName[J](W)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let J=this.opts.rememberUpgrade&&R1.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let Y=this.createTransport(J);Y.open(),this.setTransport(Y)}setTransport(J){if(X0("setting transport %s",J.name),this.transport)X0("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners();this.transport=J,J.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",(Y)=>this._onClose("transport close",Y))}onOpen(){X0("socket open"),this.readyState="open",R1.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(J){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(X0('socket receive: type "%s", data "%s"',J.type,J.data),this.emitReserved("packet",J),this.emitReserved("heartbeat"),J.type){case"open":this.onHandshake(JSON.parse(J.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let Y=Error("server error");Y.code=J.data,this._onError(Y);break;case"message":this.emitReserved("data",J.data),this.emitReserved("message",J.data);break}else X0('packet received with socket readyState "%s"',this.readyState)}onHandshake(J){if(this.emitReserved("handshake",J),this.id=J.sid,this.transport.query.sid=J.sid,this._pingInterval=J.pingInterval,this._pingTimeout=J.pingTimeout,this._maxPayload=J.maxPayload,this.onOpen(),this.readyState==="closed")return;this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let J=this._pingInterval+this._pingTimeout;if(this._pingTimeoutTime=Date.now()+J,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},J),this.opts.autoUnref)this._pingTimeoutTimer.unref()}_onDrain(){if(this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0)this.emitReserved("drain");else this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let J=this._getWritablePackets();X0("flushing %d packets in socket",J.length),this.transport.send(J),this._prevBufferLen=J.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let Y=1;for(let W=0;W0&&Y>this._maxPayload)return X0("only send %d out of %d packets",W,this.writeBuffer.length),this.writeBuffer.slice(0,W);Y+=2}return X0("payload size is %d (max: %d)",Y,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let J=Date.now()>this._pingTimeoutTime;if(J)X0("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,(0,WY.nextTick)(()=>{this._onClose("ping timeout")},this.setTimeoutFn);return J}write(J,Y,W){return this._sendPacket("message",J,Y,W),this}send(J,Y,W){return this._sendPacket("message",J,Y,W),this}_sendPacket(J,Y,W,z){if(typeof Y==="function")z=Y,Y=void 0;if(typeof W==="function")z=W,W=null;if(this.readyState==="closing"||this.readyState==="closed")return;W=W||{},W.compress=W.compress!==!1;let V={type:J,data:Y,options:W};if(this.emitReserved("packetCreate",V),this.writeBuffer.push(V),z)this.once("flush",z);this.flush()}close(){let J=()=>{this._onClose("forced close"),X0("socket closing - telling transport to close"),this.transport.close()},Y=()=>{this.off("upgrade",Y),this.off("upgradeError",Y),J()},W=()=>{this.once("upgrade",Y),this.once("upgradeError",Y)};if(this.readyState==="opening"||this.readyState==="open")if(this.readyState="closing",this.writeBuffer.length)this.once("drain",()=>{if(this.upgrading)W();else J()});else if(this.upgrading)W();else J();return this}_onError(J){if(X0("socket error %j",J),R1.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return X0("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",J),this._onClose("transport error",J)}_onClose(J,Y){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(X0('socket close with reason: "%s"',J),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),KY){if(this._beforeunloadEventListener)removeEventListener("beforeunload",this._beforeunloadEventListener,!1);if(this._offlineEventListener){let W=e8.indexOf(this._offlineEventListener);if(W!==-1)X0("removing listener for the 'offline' event"),e8.splice(W,1)}}this.readyState="closed",this.id=null,this.emitReserved("close",J,Y),this.writeBuffer=[],this._prevBufferLen=0}}}U1.SocketWithoutUpgrade=R1;R1.protocol=yZ.protocol;class zY extends R1{constructor(){super(...arguments);this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){X0("starting upgrade probes");for(let J=0;J{if(W)return;X0('probe transport "%s" opened',J),Y.send([{type:"ping",data:"probe"}]),Y.once("packet",(G)=>{if(W)return;if(G.type==="pong"&&G.data==="probe"){if(X0('probe transport "%s" pong',J),this.upgrading=!0,this.emitReserved("upgrading",Y),!Y)return;R1.priorWebsocketSuccess=Y.name==="websocket",X0('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{if(W)return;if(this.readyState==="closed")return;X0("changing transport and sending upgrade packet"),w(),this.setTransport(Y),Y.send([{type:"upgrade"}]),this.emitReserved("upgrade",Y),Y=null,this.upgrading=!1,this.flush()})}else{X0('probe transport "%s" failed',J);let U=Error("probe error");U.transport=Y.name,this.emitReserved("upgradeError",U)}})};function V(){if(W)return;W=!0,w(),Y.close(),Y=null}let H=(G)=>{let U=Error("probe error: "+G);U.transport=Y.name,V(),X0('probe transport "%s" failed because of error: %s',J,G),this.emitReserved("upgradeError",U)};function E(){H("transport closed")}function _(){H("socket closed")}function A(G){if(Y&&G.name!==Y.name)X0('"%s" works - aborting "%s"',G.name,Y.name),V()}let w=()=>{Y.removeListener("open",z),Y.removeListener("error",H),Y.removeListener("close",E),this.off("close",_),this.off("upgrading",A)};if(Y.once("open",z),Y.once("error",H),Y.once("close",E),this.once("close",_),this.once("upgrading",A),this._upgrades.indexOf("webtransport")!==-1&&J!=="webtransport")this.setTimeoutFn(()=>{if(!W)Y.open()},200);else Y.open()}onHandshake(J){this._upgrades=this._filterUpgrades(J.upgrades),super.onHandshake(J)}_filterUpgrades(J){let Y=[];for(let W=0;Wy5.transports[z]).filter((z)=>!!z);super(J,W)}}U1.Socket=fZ});var mZ=a((u6)=>{Object.defineProperty(u6,"__esModule",{value:!0});u6.Fetch=void 0;var p5=nJ();class gZ extends p5.Polling{doPoll(){this._fetch().then((J)=>{if(!J.ok)return this.onError("fetch read error",J.status,J);J.text().then((Y)=>this.onData(Y))}).catch((J)=>{this.onError("fetch read error",J)})}doWrite(J,Y){this._fetch(J).then((W)=>{if(!W.ok)return this.onError("fetch write error",W.status,W);Y()}).catch((W)=>{this.onError("fetch write error",W)})}_fetch(J){var Y;let W=J!==void 0,z=new Headers(this.opts.extraHeaders);if(W)z.set("content-type","text/plain;charset=UTF-8");return(Y=this.socket._cookieJar)===null||Y===void 0||Y.appendCookies(z),fetch(this.uri(),{method:W?"POST":"GET",body:W?J:null,headers:z,credentials:this.opts.withCredentials?"include":"omit"}).then((V)=>{var H;return(H=this.socket._cookieJar)===null||H===void 0||H.parseCookies(V.headers.getSetCookie()),V})}}u6.Fetch=gZ});var c6=a((o)=>{Object.defineProperty(o,"__esModule",{value:!0});o.WebTransport=o.WebSocket=o.NodeWebSocket=o.XHR=o.NodeXHR=o.Fetch=o.nextTick=o.parse=o.installTimerFunctions=o.transports=o.TransportError=o.Transport=o.protocol=o.SocketWithUpgrade=o.SocketWithoutUpgrade=o.Socket=void 0;var pZ=GY();Object.defineProperty(o,"Socket",{enumerable:!0,get:function(){return pZ.Socket}});var uZ=GY();Object.defineProperty(o,"SocketWithoutUpgrade",{enumerable:!0,get:function(){return uZ.SocketWithoutUpgrade}});Object.defineProperty(o,"SocketWithUpgrade",{enumerable:!0,get:function(){return uZ.SocketWithUpgrade}});o.protocol=pZ.Socket.protocol;var cZ=t8();Object.defineProperty(o,"Transport",{enumerable:!0,get:function(){return cZ.Transport}});Object.defineProperty(o,"TransportError",{enumerable:!0,get:function(){return cZ.TransportError}});var u5=JY();Object.defineProperty(o,"transports",{enumerable:!0,get:function(){return u5.transports}});var c5=l1();Object.defineProperty(o,"installTimerFunctions",{enumerable:!0,get:function(){return c5.installTimerFunctions}});var d5=ZY();Object.defineProperty(o,"parse",{enumerable:!0,get:function(){return d5.parse}});var i5=i1();Object.defineProperty(o,"nextTick",{enumerable:!0,get:function(){return i5.nextTick}});var l5=mZ();Object.defineProperty(o,"Fetch",{enumerable:!0,get:function(){return l5.Fetch}});var n5=g6();Object.defineProperty(o,"NodeXHR",{enumerable:!0,get:function(){return n5.XHR}});var s5=g6();Object.defineProperty(o,"XHR",{enumerable:!0,get:function(){return s5.XHR}});var r5=m6();Object.defineProperty(o,"NodeWebSocket",{enumerable:!0,get:function(){return r5.WS}});var a5=m6();Object.defineProperty(o,"WebSocket",{enumerable:!0,get:function(){return a5.WS}});var t5=eJ();Object.defineProperty(o,"WebTransport",{enumerable:!0,get:function(){return t5.WT}})});var iZ=a((sG,dZ)=>{function o5(J){W.debug=W,W.default=W,W.coerce=A,W.disable=E,W.enable=V,W.enabled=_,W.humanize=h6(),W.destroy=w,Object.keys(J).forEach((G)=>{W[G]=J[G]}),W.names=[],W.skips=[],W.formatters={};function Y(G){let U=0;for(let O=0;O{if(F==="%%")return"%";u++;let s=W.formatters[n];if(typeof s==="function"){let r=C[u];F=s.call(T,r),C.splice(u,1),u--}return F}),W.formatArgs.call(T,C),(T.log||W.log).apply(T,C)}if(Q.namespace=G,Q.useColors=W.useColors(),Q.color=W.selectColor(G),Q.extend=z,Q.destroy=W.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(O!==null)return O;if(M!==W.namespaces)M=W.namespaces,L=W.enabled(G);return L},set:(C)=>{O=C}}),typeof W.init==="function")W.init(Q);return Q}function z(G,U){let O=W(this.namespace+(typeof U>"u"?":":U)+G);return O.log=this.log,O}function V(G){W.save(G),W.namespaces=G,W.names=[],W.skips=[];let U=(typeof G==="string"?G:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let O of U)if(O[0]==="-")W.skips.push(O.slice(1));else W.names.push(O)}function H(G,U){let O=0,M=0,L=-1,Q=0;while(O"-"+U)].join(",");return W.enable(""),G}function _(G){for(let U of W.skips)if(H(G,U))return!1;for(let U of W.names)if(H(G,U))return!0;return!1}function A(G){if(G instanceof Error)return G.stack||G.message;return G}function w(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return W.enable(W.load()),W}dZ.exports=o5});var J6=a((v0,d6)=>{v0.formatArgs=Jz;v0.save=Yz;v0.load=Zz;v0.useColors=e5;v0.storage=Wz();v0.destroy=(()=>{let J=!1;return()=>{if(!J)J=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();v0.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function e5(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let J;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(J=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(J[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Jz(J){if(J[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+J[0]+(this.useColors?"%c ":" ")+"+"+d6.exports.humanize(this.diff),!this.useColors)return;let Y="color: "+this.color;J.splice(1,0,Y,"color: inherit");let W=0,z=0;J[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(W++,V==="%c")z=W}),J.splice(z,0,Y)}v0.log=console.debug||console.log||(()=>{});function Yz(J){try{if(J)v0.storage.setItem("debug",J);else v0.storage.removeItem("debug")}catch(Y){}}function Zz(){let J;try{J=v0.storage.getItem("debug")||v0.storage.getItem("DEBUG")}catch(Y){}if(!J&&typeof process<"u"&&"env"in process)J=process.env.DEBUG;return J}function Wz(){try{return localStorage}catch(J){}}d6.exports=iZ()(v0);var{formatters:Kz}=d6.exports;Kz.j=function(J){try{return JSON.stringify(J)}catch(Y){return"[UnexpectedJSONParseError]: "+Y.message}}});var nZ=a((Y6)=>{var zz=Y6&&Y6.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(Y6,"__esModule",{value:!0});Y6.url=Uz;var Gz=c6(),Xz=zz(J6()),lZ=(0,Xz.default)("socket.io-client:url");function Uz(J,Y="",W){let z=J;if(W=W||typeof location<"u"&&location,J==null)J=W.protocol+"//"+W.host;if(typeof J==="string"){if(J.charAt(0)==="/")if(J.charAt(1)==="/")J=W.protocol+J;else J=W.host+J;if(!/^(https?|wss?):\/\//.test(J))if(lZ("protocol-less url %s",J),typeof W<"u")J=W.protocol+"//"+J;else J="https://"+J;lZ("parse %s",J),z=(0,Gz.parse)(J)}if(!z.port){if(/^(http|ws)$/.test(z.protocol))z.port="80";else if(/^(http|ws)s$/.test(z.protocol))z.port="443"}z.path=z.path||"/";let H=z.host.indexOf(":")!==-1?"["+z.host+"]":z.host;return z.id=z.protocol+"://"+H+":"+z.port+Y,z.href=z.protocol+"://"+H+(W&&W.port===z.port?"":":"+z.port),z}});var XY=a((I8)=>{Object.defineProperty(I8,"__esModule",{value:!0});I8.hasBinary=I8.isBinary=void 0;var Vz=typeof ArrayBuffer==="function",$z=(J)=>{return typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(J):J.buffer instanceof ArrayBuffer},sZ=Object.prototype.toString,Fz=typeof Blob==="function"||typeof Blob<"u"&&sZ.call(Blob)==="[object BlobConstructor]",qz=typeof File==="function"||typeof File<"u"&&sZ.call(File)==="[object FileConstructor]";function rZ(J){return Vz&&(J instanceof ArrayBuffer||$z(J))||Fz&&J instanceof Blob||qz&&J instanceof File}I8.isBinary=rZ;function i6(J,Y){if(!J||typeof J!=="object")return!1;if(Array.isArray(J)){for(let W=0,z=J.length;W{Object.defineProperty(w8,"__esModule",{value:!0});w8.reconstructPacket=w8.deconstructPacket=void 0;var Hz=XY();function Bz(J){let Y=[],W=J.data,z=J;return z.data=UY(W,Y),z.attachments=Y.length,{packet:z,buffers:Y}}w8.deconstructPacket=Bz;function UY(J,Y){if(!J)return J;if((0,Hz.isBinary)(J)){let W={_placeholder:!0,num:Y.length};return Y.push(J),W}else if(Array.isArray(J)){let W=Array(J.length);for(let z=0;z=0&&J.num{function Oz(J){W.debug=W,W.default=W,W.coerce=A,W.disable=H,W.enable=V,W.enabled=E,W.humanize=h6(),W.destroy=w,Object.keys(J).forEach((G)=>{W[G]=J[G]}),W.names=[],W.skips=[],W.formatters={};function Y(G){let U=0;for(let O=0;O{if(F==="%%")return"%";u++;let s=W.formatters[n];if(typeof s==="function"){let r=C[u];F=s.call(T,r),C.splice(u,1),u--}return F}),W.formatArgs.call(T,C),(T.log||W.log).apply(T,C)}if(Q.namespace=G,Q.useColors=W.useColors(),Q.color=W.selectColor(G),Q.extend=z,Q.destroy=W.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(O!==null)return O;if(M!==W.namespaces)M=W.namespaces,L=W.enabled(G);return L},set:(C)=>{O=C}}),typeof W.init==="function")W.init(Q);return Q}function z(G,U){let O=W(this.namespace+(typeof U>"u"?":":U)+G);return O.log=this.log,O}function V(G){W.save(G),W.namespaces=G,W.names=[],W.skips=[];let U,O=(typeof G==="string"?G:"").split(/[\s,]+/),M=O.length;for(U=0;U"-"+U)].join(",");return W.enable(""),G}function E(G){if(G[G.length-1]==="*")return!0;let U,O;for(U=0,O=W.skips.length;U{g0.formatArgs=_z;g0.save=Az;g0.load=Ez;g0.useColors=Rz;g0.storage=Mz();g0.destroy=(()=>{let J=!1;return()=>{if(!J)J=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();g0.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Rz(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let J;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(J=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(J[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function _z(J){if(J[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+J[0]+(this.useColors?"%c ":" ")+"+"+l6.exports.humanize(this.diff),!this.useColors)return;let Y="color: "+this.color;J.splice(1,0,Y,"color: inherit");let W=0,z=0;J[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(W++,V==="%c")z=W}),J.splice(z,0,Y)}g0.log=console.debug||console.log||(()=>{});function Az(J){try{if(J)g0.storage.setItem("debug",J);else g0.storage.removeItem("debug")}catch(Y){}}function Ez(){let J;try{J=g0.storage.getItem("debug")}catch(Y){}if(!J&&typeof process<"u"&&"env"in process)J=process.env.DEBUG;return J}function Mz(){try{return localStorage}catch(J){}}l6.exports=oZ()(g0);var{formatters:Sz}=l6.exports;Sz.j=function(J){try{return JSON.stringify(J)}catch(Y){return"[UnexpectedJSONParseError]: "+Y.message}}});var n6=a((t0)=>{Object.defineProperty(t0,"__esModule",{value:!0});t0.Decoder=t0.Encoder=t0.PacketType=t0.protocol=void 0;var Pz=d1(),Y3=aZ(),Z3=XY(),Cz=eZ(),$Y=(0,Cz.default)("socket.io-parser"),Qz=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];t0.protocol=5;var H0;(function(J){J[J.CONNECT=0]="CONNECT",J[J.DISCONNECT=1]="DISCONNECT",J[J.EVENT=2]="EVENT",J[J.ACK=3]="ACK",J[J.CONNECT_ERROR=4]="CONNECT_ERROR",J[J.BINARY_EVENT=5]="BINARY_EVENT",J[J.BINARY_ACK=6]="BINARY_ACK"})(H0=t0.PacketType||(t0.PacketType={}));class W3{constructor(J){this.replacer=J}encode(J){if($Y("encoding packet %j",J),J.type===H0.EVENT||J.type===H0.ACK){if((0,Z3.hasBinary)(J))return this.encodeAsBinary({type:J.type===H0.EVENT?H0.BINARY_EVENT:H0.BINARY_ACK,nsp:J.nsp,data:J.data,id:J.id})}return[this.encodeAsString(J)]}encodeAsString(J){let Y=""+J.type;if(J.type===H0.BINARY_EVENT||J.type===H0.BINARY_ACK)Y+=J.attachments+"-";if(J.nsp&&J.nsp!=="/")Y+=J.nsp+",";if(J.id!=null)Y+=J.id;if(J.data!=null)Y+=JSON.stringify(J.data,this.replacer);return $Y("encoded %j as %s",J,Y),Y}encodeAsBinary(J){let Y=(0,Y3.deconstructPacket)(J),W=this.encodeAsString(Y.packet),z=Y.buffers;return z.unshift(W),z}}t0.Encoder=W3;function J3(J){return Object.prototype.toString.call(J)==="[object Object]"}class FY extends Pz.Emitter{constructor(J){super();this.reviver=J}add(J){let Y;if(typeof J==="string"){if(this.reconstructor)throw Error("got plaintext data when reconstructing a packet");Y=this.decodeString(J);let W=Y.type===H0.BINARY_EVENT;if(W||Y.type===H0.BINARY_ACK){if(Y.type=W?H0.EVENT:H0.ACK,this.reconstructor=new K3(Y),Y.attachments===0)super.emitReserved("decoded",Y)}else super.emitReserved("decoded",Y)}else if((0,Z3.isBinary)(J)||J.base64){if(!this.reconstructor)throw Error("got binary data when not reconstructing a packet");else if(Y=this.reconstructor.takeBinaryData(J),Y)this.reconstructor=null,super.emitReserved("decoded",Y)}else throw Error("Unknown type: "+J)}decodeString(J){let Y=0,W={type:Number(J.charAt(0))};if(H0[W.type]===void 0)throw Error("unknown packet type "+W.type);if(W.type===H0.BINARY_EVENT||W.type===H0.BINARY_ACK){let V=Y+1;while(J.charAt(++Y)!=="-"&&Y!=J.length);let H=J.substring(V,Y);if(H!=Number(H)||J.charAt(Y)!=="-")throw Error("Illegal attachments");W.attachments=Number(H)}if(J.charAt(Y+1)==="/"){let V=Y+1;while(++Y){if(J.charAt(Y)===",")break;if(Y===J.length)break}W.nsp=J.substring(V,Y)}else W.nsp="/";let z=J.charAt(Y+1);if(z!==""&&Number(z)==z){let V=Y+1;while(++Y){let H=J.charAt(Y);if(H==null||Number(H)!=H){--Y;break}if(Y===J.length)break}W.id=Number(J.substring(V,Y+1))}if(J.charAt(++Y)){let V=this.tryParse(J.substr(Y));if(FY.isPayloadValid(W.type,V))W.data=V;else throw Error("invalid payload")}return $Y("decoded %s as %j",J,W),W}tryParse(J){try{return JSON.parse(J,this.reviver)}catch(Y){return!1}}static isPayloadValid(J,Y){switch(J){case H0.CONNECT:return J3(Y);case H0.DISCONNECT:return Y===void 0;case H0.CONNECT_ERROR:return typeof Y==="string"||J3(Y);case H0.EVENT:case H0.BINARY_EVENT:return Array.isArray(Y)&&(typeof Y[0]==="number"||typeof Y[0]==="string"&&Qz.indexOf(Y[0])===-1);case H0.ACK:case H0.BINARY_ACK:return Array.isArray(Y)}}destroy(){if(this.reconstructor)this.reconstructor.finishedReconstruction(),this.reconstructor=null}}t0.Decoder=FY;class K3{constructor(J){this.packet=J,this.buffers=[],this.reconPack=J}takeBinaryData(J){if(this.buffers.push(J),this.buffers.length===this.reconPack.attachments){let Y=(0,Y3.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),Y}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}});var HY=a((qY)=>{Object.defineProperty(qY,"__esModule",{value:!0});qY.on=Tz;function Tz(J,Y,W){return J.on(Y,W),function(){J.off(Y,W)}}});var BY=a((j8)=>{var Lz=j8&&j8.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(j8,"__esModule",{value:!0});j8.Socket=void 0;var o0=n6(),s6=HY(),Dz=d1(),Iz=Lz(J6()),R0=(0,Iz.default)("socket.io-client:socket"),wz=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class z3 extends Dz.Emitter{constructor(J,Y,W){super();if(this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=J,this.nsp=Y,W&&W.auth)this.auth=W.auth;if(this._opts=Object.assign({},W),this.io._autoConnect)this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let J=this.io;this.subs=[(0,s6.on)(J,"open",this.onopen.bind(this)),(0,s6.on)(J,"packet",this.onpacket.bind(this)),(0,s6.on)(J,"error",this.onerror.bind(this)),(0,s6.on)(J,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){if(this.connected)return this;if(this.subEvents(),!this.io._reconnecting)this.io.open();if(this.io._readyState==="open")this.onopen();return this}open(){return this.connect()}send(...J){return J.unshift("message"),this.emit.apply(this,J),this}emit(J,...Y){var W,z,V;if(wz.hasOwnProperty(J))throw Error('"'+J.toString()+'" is a reserved event name');if(Y.unshift(J),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(Y),this;let H={type:o0.PacketType.EVENT,data:Y};if(H.options={},H.options.compress=this.flags.compress!==!1,typeof Y[Y.length-1]==="function"){let w=this.ids++;R0("emitting packet with ack id %d",w);let G=Y.pop();this._registerAckCallback(w,G),H.id=w}let E=(z=(W=this.io.engine)===null||W===void 0?void 0:W.transport)===null||z===void 0?void 0:z.writable,_=this.connected&&!((V=this.io.engine)===null||V===void 0?void 0:V._hasPingExpired());if(this.flags.volatile&&!E)R0("discard packet as the transport is not currently writable");else if(_)this.notifyOutgoingListeners(H),this.packet(H);else this.sendBuffer.push(H);return this.flags={},this}_registerAckCallback(J,Y){var W;let z=(W=this.flags.timeout)!==null&&W!==void 0?W:this._opts.ackTimeout;if(z===void 0){this.acks[J]=Y;return}let V=this.io.setTimeoutFn(()=>{delete this.acks[J];for(let E=0;E{this.io.clearTimeoutFn(V),Y.apply(this,E)};H.withError=!0,this.acks[J]=H}emitWithAck(J,...Y){return new Promise((W,z)=>{let V=(H,E)=>{return H?z(H):W(E)};V.withError=!0,Y.push(V),this.emit(J,...Y)})}_addToQueue(J){let Y;if(typeof J[J.length-1]==="function")Y=J.pop();let W={id:this._queueSeq++,tryCount:0,pending:!1,args:J,flags:Object.assign({fromQueue:!0},this.flags)};J.push((z,...V)=>{if(W!==this._queue[0])return R0("packet [%d] already acknowledged",W.id);if(z!==null){if(W.tryCount>this._opts.retries){if(R0("packet [%d] is discarded after %d tries",W.id,W.tryCount),this._queue.shift(),Y)Y(z)}}else if(R0("packet [%d] was successfully sent",W.id),this._queue.shift(),Y)Y(null,...V);return W.pending=!1,this._drainQueue()}),this._queue.push(W),this._drainQueue()}_drainQueue(J=!1){if(R0("draining queue"),!this.connected||this._queue.length===0)return;let Y=this._queue[0];if(Y.pending&&!J){R0("packet [%d] has already been sent and is waiting for an ack",Y.id);return}Y.pending=!0,Y.tryCount++,R0("sending packet [%d] (try n°%d)",Y.id,Y.tryCount),this.flags=Y.flags,this.emit.apply(this,Y.args)}packet(J){J.nsp=this.nsp,this.io._packet(J)}onopen(){if(R0("transport is open - connecting"),typeof this.auth=="function")this.auth((J)=>{this._sendConnectPacket(J)});else this._sendConnectPacket(this.auth)}_sendConnectPacket(J){this.packet({type:o0.PacketType.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},J):J})}onerror(J){if(!this.connected)this.emitReserved("connect_error",J)}onclose(J,Y){R0("close (%s)",J),this.connected=!1,delete this.id,this.emitReserved("disconnect",J,Y),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((J)=>{if(!this.sendBuffer.some((W)=>String(W.id)===J)){let W=this.acks[J];if(delete this.acks[J],W.withError)W.call(this,Error("socket has been disconnected"))}})}onpacket(J){if(J.nsp!==this.nsp)return;switch(J.type){case o0.PacketType.CONNECT:if(J.data&&J.data.sid)this.onconnect(J.data.sid,J.data.pid);else this.emitReserved("connect_error",Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case o0.PacketType.EVENT:case o0.PacketType.BINARY_EVENT:this.onevent(J);break;case o0.PacketType.ACK:case o0.PacketType.BINARY_ACK:this.onack(J);break;case o0.PacketType.DISCONNECT:this.ondisconnect();break;case o0.PacketType.CONNECT_ERROR:this.destroy();let W=Error(J.data.message);W.data=J.data.data,this.emitReserved("connect_error",W);break}}onevent(J){let Y=J.data||[];if(R0("emitting event %j",Y),J.id!=null)R0("attaching ack callback to event"),Y.push(this.ack(J.id));if(this.connected)this.emitEvent(Y);else this.receiveBuffer.push(Object.freeze(Y))}emitEvent(J){if(this._anyListeners&&this._anyListeners.length){let Y=this._anyListeners.slice();for(let W of Y)W.apply(this,J)}if(super.emit.apply(this,J),this._pid&&J.length&&typeof J[J.length-1]==="string")this._lastOffset=J[J.length-1]}ack(J){let Y=this,W=!1;return function(...z){if(W)return;W=!0,R0("sending ack %j",z),Y.packet({type:o0.PacketType.ACK,id:J,data:z})}}onack(J){let Y=this.acks[J.id];if(typeof Y!=="function"){R0("bad ack %s",J.id);return}if(delete this.acks[J.id],R0("calling ack %s with %j",J.id,J.data),Y.withError)J.data.unshift(null);Y.apply(this,J.data)}onconnect(J,Y){R0("socket connected with id %s",J),this.id=J,this.recovered=Y&&this._pid===Y,this._pid=Y,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach((J)=>this.emitEvent(J)),this.receiveBuffer=[],this.sendBuffer.forEach((J)=>{this.notifyOutgoingListeners(J),this.packet(J)}),this.sendBuffer=[]}ondisconnect(){R0("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){if(this.subs)this.subs.forEach((J)=>J()),this.subs=void 0;this.io._destroy(this)}disconnect(){if(this.connected)R0("performing disconnect (%s)",this.nsp),this.packet({type:o0.PacketType.DISCONNECT});if(this.destroy(),this.connected)this.onclose("io client disconnect");return this}close(){return this.disconnect()}compress(J){return this.flags.compress=J,this}get volatile(){return this.flags.volatile=!0,this}timeout(J){return this.flags.timeout=J,this}onAny(J){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(J),this}prependAny(J){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(J),this}offAny(J){if(!this._anyListeners)return this;if(J){let Y=this._anyListeners;for(let W=0;W{Object.defineProperty(NY,"__esModule",{value:!0});NY.Backoff=x8;function x8(J){J=J||{},this.ms=J.min||100,this.max=J.max||1e4,this.factor=J.factor||2,this.jitter=J.jitter>0&&J.jitter<=1?J.jitter:0,this.attempts=0}x8.prototype.duration=function(){var J=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var Y=Math.random(),W=Math.floor(Y*this.jitter*J);J=(Math.floor(Y*10)&1)==0?J-W:J+W}return Math.min(J,this.max)|0};x8.prototype.reset=function(){this.attempts=0};x8.prototype.setMin=function(J){this.ms=J};x8.prototype.setMax=function(J){this.max=J};x8.prototype.setJitter=function(J){this.jitter=J}});var U3=a((c0)=>{var jz=c0&&c0.__createBinding||(Object.create?function(J,Y,W,z){if(z===void 0)z=W;var V=Object.getOwnPropertyDescriptor(Y,W);if(!V||("get"in V?!Y.__esModule:V.writable||V.configurable))V={enumerable:!0,get:function(){return Y[W]}};Object.defineProperty(J,z,V)}:function(J,Y,W,z){if(z===void 0)z=W;J[z]=Y[W]}),xz=c0&&c0.__setModuleDefault||(Object.create?function(J,Y){Object.defineProperty(J,"default",{enumerable:!0,value:Y})}:function(J,Y){J.default=Y}),kz=c0&&c0.__importStar||function(J){if(J&&J.__esModule)return J;var Y={};if(J!=null){for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W))jz(Y,J,W)}return xz(Y,J),Y},vz=c0&&c0.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(c0,"__esModule",{value:!0});c0.Manager=void 0;var OY=c6(),bz=BY(),hz=kz(n6()),r1=HY(),yz=G3(),fz=d1(),gz=vz(J6()),M0=(0,gz.default)("socket.io-client:manager");class X3 extends fz.Emitter{constructor(J,Y){var W;super();if(this.nsps={},this.subs=[],J&&typeof J==="object")Y=J,J=void 0;Y=Y||{},Y.path=Y.path||"/socket.io",this.opts=Y,(0,OY.installTimerFunctions)(this,Y),this.reconnection(Y.reconnection!==!1),this.reconnectionAttempts(Y.reconnectionAttempts||1/0),this.reconnectionDelay(Y.reconnectionDelay||1000),this.reconnectionDelayMax(Y.reconnectionDelayMax||5000),this.randomizationFactor((W=Y.randomizationFactor)!==null&&W!==void 0?W:0.5),this.backoff=new yz.Backoff({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(Y.timeout==null?20000:Y.timeout),this._readyState="closed",this.uri=J;let z=Y.parser||hz;if(this.encoder=new z.Encoder,this.decoder=new z.Decoder,this._autoConnect=Y.autoConnect!==!1,this._autoConnect)this.open()}reconnection(J){if(!arguments.length)return this._reconnection;if(this._reconnection=!!J,!J)this.skipReconnect=!0;return this}reconnectionAttempts(J){if(J===void 0)return this._reconnectionAttempts;return this._reconnectionAttempts=J,this}reconnectionDelay(J){var Y;if(J===void 0)return this._reconnectionDelay;return this._reconnectionDelay=J,(Y=this.backoff)===null||Y===void 0||Y.setMin(J),this}randomizationFactor(J){var Y;if(J===void 0)return this._randomizationFactor;return this._randomizationFactor=J,(Y=this.backoff)===null||Y===void 0||Y.setJitter(J),this}reconnectionDelayMax(J){var Y;if(J===void 0)return this._reconnectionDelayMax;return this._reconnectionDelayMax=J,(Y=this.backoff)===null||Y===void 0||Y.setMax(J),this}timeout(J){if(!arguments.length)return this._timeout;return this._timeout=J,this}maybeReconnectOnOpen(){if(!this._reconnecting&&this._reconnection&&this.backoff.attempts===0)this.reconnect()}open(J){if(M0("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;M0("opening %s",this.uri),this.engine=new OY.Socket(this.uri,this.opts);let Y=this.engine,W=this;this._readyState="opening",this.skipReconnect=!1;let z=(0,r1.on)(Y,"open",function(){W.onopen(),J&&J()}),V=(E)=>{if(M0("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",E),J)J(E);else this.maybeReconnectOnOpen()},H=(0,r1.on)(Y,"error",V);if(this._timeout!==!1){let E=this._timeout;M0("connect attempt will timeout after %d",E);let _=this.setTimeoutFn(()=>{M0("connect attempt timed out after %d",E),z(),V(Error("timeout")),Y.close()},E);if(this.opts.autoUnref)_.unref();this.subs.push(()=>{this.clearTimeoutFn(_)})}return this.subs.push(z),this.subs.push(H),this}connect(J){return this.open(J)}onopen(){M0("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let J=this.engine;this.subs.push((0,r1.on)(J,"ping",this.onping.bind(this)),(0,r1.on)(J,"data",this.ondata.bind(this)),(0,r1.on)(J,"error",this.onerror.bind(this)),(0,r1.on)(J,"close",this.onclose.bind(this)),(0,r1.on)(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(J){try{this.decoder.add(J)}catch(Y){this.onclose("parse error",Y)}}ondecoded(J){(0,OY.nextTick)(()=>{this.emitReserved("packet",J)},this.setTimeoutFn)}onerror(J){M0("error",J),this.emitReserved("error",J)}socket(J,Y){let W=this.nsps[J];if(!W)W=new bz.Socket(this,J,Y),this.nsps[J]=W;else if(this._autoConnect&&!W.active)W.connect();return W}_destroy(J){let Y=Object.keys(this.nsps);for(let W of Y)if(this.nsps[W].active){M0("socket %s is still active, skipping close",W);return}this._close()}_packet(J){M0("writing packet %j",J);let Y=this.encoder.encode(J);for(let W=0;WJ()),this.subs.length=0,this.decoder.destroy()}_close(){M0("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(J,Y){var W;if(M0("closed due to %s",J),this.cleanup(),(W=this.engine)===null||W===void 0||W.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",J,Y),this._reconnection&&!this.skipReconnect)this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let J=this;if(this.backoff.attempts>=this._reconnectionAttempts)M0("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let Y=this.backoff.duration();M0("will wait %dms before reconnect attempt",Y),this._reconnecting=!0;let W=this.setTimeoutFn(()=>{if(J.skipReconnect)return;if(M0("attempting reconnect"),this.emitReserved("reconnect_attempt",J.backoff.attempts),J.skipReconnect)return;J.open((z)=>{if(z)M0("reconnect attempt error"),J._reconnecting=!1,J.reconnect(),this.emitReserved("reconnect_error",z);else M0("reconnect success"),J.onreconnect()})},Y);if(this.opts.autoUnref)W.unref();this.subs.push(()=>{this.clearTimeoutFn(W)})}}onreconnect(){let J=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",J)}}c0.Manager=X3});var q3=a((F0,F3)=>{var mz=F0&&F0.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(F0,"__esModule",{value:!0});F0.WebTransport=F0.WebSocket=F0.NodeWebSocket=F0.XHR=F0.NodeXHR=F0.Fetch=F0.Socket=F0.Manager=F0.protocol=void 0;F0.io=a1;F0.connect=a1;F0.default=a1;var pz=nZ(),r6=U3();Object.defineProperty(F0,"Manager",{enumerable:!0,get:function(){return r6.Manager}});var $3=BY();Object.defineProperty(F0,"Socket",{enumerable:!0,get:function(){return $3.Socket}});var uz=mz(J6()),V3=(0,uz.default)("socket.io-client"),Z6={};function a1(J,Y){if(typeof J==="object")Y=J,J=void 0;Y=Y||{};let W=(0,pz.url)(J,Y.path||"/socket.io"),z=W.source,V=W.id,H=W.path,E=Z6[V]&&H in Z6[V].nsps,_=Y.forceNew||Y["force new connection"]||Y.multiplex===!1||E,A;if(_)V3("ignoring socket cache for %s",z),A=new r6.Manager(z,Y);else{if(!Z6[V])V3("new io instance for %s",z),Z6[V]=new r6.Manager(z,Y);A=Z6[V]}if(W.query&&!Y.query)Y.query=W.queryKey;return A.socket(W.path,Y)}Object.assign(a1,{Manager:r6.Manager,Socket:$3.Socket,io:a1,connect:a1});var cz=n6();Object.defineProperty(F0,"protocol",{enumerable:!0,get:function(){return cz.protocol}});var k8=c6();Object.defineProperty(F0,"Fetch",{enumerable:!0,get:function(){return k8.Fetch}});Object.defineProperty(F0,"NodeXHR",{enumerable:!0,get:function(){return k8.NodeXHR}});Object.defineProperty(F0,"XHR",{enumerable:!0,get:function(){return k8.XHR}});Object.defineProperty(F0,"NodeWebSocket",{enumerable:!0,get:function(){return k8.NodeWebSocket}});Object.defineProperty(F0,"WebSocket",{enumerable:!0,get:function(){return k8.WebSocket}});Object.defineProperty(F0,"WebTransport",{enumerable:!0,get:function(){return k8.WebTransport}});F3.exports=a1});var B3=a((W6)=>{var b0={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},EY={silent:{level:-1},fatal:{level:b0.fatal},error:{level:b0.error},warn:{level:b0.warn},log:{level:b0.log},info:{level:b0.info},success:{level:b0.success},fail:{level:b0.fail},ready:{level:b0.info},start:{level:b0.info},box:{level:b0.info},debug:{level:b0.debug},trace:{level:b0.trace},verbose:{level:b0.verbose}};function RY(J){if(J===null||typeof J!=="object")return!1;let Y=Object.getPrototypeOf(J);if(Y!==null&&Y!==Object.prototype&&Object.getPrototypeOf(Y)!==null)return!1;if(Symbol.iterator in J)return!1;if(Symbol.toStringTag in J)return Object.prototype.toString.call(J)==="[object Module]";return!0}function MY(J,Y,W=".",z){if(!RY(Y))return MY(J,{},W,z);let V=Object.assign({},Y);for(let H in J){if(H==="__proto__"||H==="constructor")continue;let E=J[H];if(E===null||E===void 0)continue;if(z&&z(V,H,E,W))continue;if(Array.isArray(E)&&Array.isArray(V[H]))V[H]=[...E,...V[H]];else if(RY(E)&&RY(V[H]))V[H]=MY(E,V[H],(W?`${W}.`:"")+H.toString(),z);else V[H]=E}return V}function dz(J){return(...Y)=>Y.reduce((W,z)=>MY(W,z,"",J),{})}var iz=dz();function lz(J){return Object.prototype.toString.call(J)==="[object Object]"}function nz(J){if(!lz(J))return!1;if(!J.message&&!J.args)return!1;if(J.stack)return!1;return!0}var _Y=!1,H3=[];class A0{options;_lastLog;_mockFn;constructor(J={}){let Y=J.types||EY;this.options=iz({...J,defaults:{...J.defaults},level:AY(J.level,Y),reporters:[...J.reporters||[]]},{types:EY,throttle:1000,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let W in Y){let z={type:W,...this.options.defaults,...Y[W]};this[W]=this._wrapLogFn(z),this[W].raw=this._wrapLogFn(z,!0)}if(this.options.mockFn)this.mockTypes();this._lastLog={}}get level(){return this.options.level}set level(J){this.options.level=AY(J,this.options.types,this.options.level)}prompt(J,Y){if(!this.options.prompt)throw Error("prompt is not supported!");return this.options.prompt(J,Y)}create(J){let Y=new A0({...this.options,...J});if(this._mockFn)Y.mockTypes(this._mockFn);return Y}withDefaults(J){return this.create({...this.options,defaults:{...this.options.defaults,...J}})}withTag(J){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+J:J})}addReporter(J){return this.options.reporters.push(J),this}removeReporter(J){if(J){let Y=this.options.reporters.indexOf(J);if(Y!==-1)return this.options.reporters.splice(Y,1)}else this.options.reporters.splice(0);return this}setReporters(J){return this.options.reporters=Array.isArray(J)?J:[J],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let J in this.options.types){if(!console["__"+J])console["__"+J]=console[J];console[J]=this[J].raw}}restoreConsole(){for(let J in this.options.types)if(console["__"+J])console[J]=console["__"+J],delete console["__"+J]}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(J,Y){if(!J)return;if(!J.__write)J.__write=J.write;J.write=(W)=>{this[Y].raw(String(W).trim())}}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(J){if(!J)return;if(J.__write)J.write=J.__write,delete J.__write}pauseLogs(){_Y=!0}resumeLogs(){_Y=!1;let J=H3.splice(0);for(let Y of J)Y[0]._logFn(Y[1],Y[2])}mockTypes(J){let Y=J||this.options.mockFn;if(this._mockFn=Y,typeof Y!=="function")return;for(let W in this.options.types)this[W]=Y(W,this.options.types[W])||this[W],this[W].raw=this[W]}_wrapLogFn(J,Y){return(...W)=>{if(_Y){H3.push([this,J,W,Y]);return}return this._logFn(J,W,Y)}}_logFn(J,Y,W){if((J.level||0)>this.level)return!1;let z={date:new Date,args:[],...J,level:AY(J.level,this.options.types)};if(!W&&Y.length===1&&nz(Y[0]))Object.assign(z,Y[0]);else z.args=[...Y];if(z.message)z.args.unshift(z.message),delete z.message;if(z.additional){if(!Array.isArray(z.additional))z.additional=z.additional.split(` + */(function(){HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(Y){var W=this;if(!W.ctx||!W.ctx.listener)return W;for(var z=W._howls.length-1;z>=0;z--)W._howls[z].stereo(Y);return W},HowlerGlobal.prototype.pos=function(Y,W,z){var V=this;if(!V.ctx||!V.ctx.listener)return V;if(W=typeof W!=="number"?V._pos[1]:W,z=typeof z!=="number"?V._pos[2]:z,typeof Y==="number")if(V._pos=[Y,W,z],typeof V.ctx.listener.positionX<"u")V.ctx.listener.positionX.setTargetAtTime(V._pos[0],Howler.ctx.currentTime,0.1),V.ctx.listener.positionY.setTargetAtTime(V._pos[1],Howler.ctx.currentTime,0.1),V.ctx.listener.positionZ.setTargetAtTime(V._pos[2],Howler.ctx.currentTime,0.1);else V.ctx.listener.setPosition(V._pos[0],V._pos[1],V._pos[2]);else return V._pos;return V},HowlerGlobal.prototype.orientation=function(Y,W,z,V,F,E){var A=this;if(!A.ctx||!A.ctx.listener)return A;var N=A._orientation;if(W=typeof W!=="number"?N[1]:W,z=typeof z!=="number"?N[2]:z,V=typeof V!=="number"?N[3]:V,F=typeof F!=="number"?N[4]:F,E=typeof E!=="number"?N[5]:E,typeof Y==="number")if(A._orientation=[Y,W,z,V,F,E],typeof A.ctx.listener.forwardX<"u")A.ctx.listener.forwardX.setTargetAtTime(Y,Howler.ctx.currentTime,0.1),A.ctx.listener.forwardY.setTargetAtTime(W,Howler.ctx.currentTime,0.1),A.ctx.listener.forwardZ.setTargetAtTime(z,Howler.ctx.currentTime,0.1),A.ctx.listener.upX.setTargetAtTime(V,Howler.ctx.currentTime,0.1),A.ctx.listener.upY.setTargetAtTime(F,Howler.ctx.currentTime,0.1),A.ctx.listener.upZ.setTargetAtTime(E,Howler.ctx.currentTime,0.1);else A.ctx.listener.setOrientation(Y,W,z,V,F,E);else return N;return A},Howl.prototype.init=function(Y){return function(W){var z=this;return z._orientation=W.orientation||[1,0,0],z._stereo=W.stereo||null,z._pos=W.pos||null,z._pannerAttr={coneInnerAngle:typeof W.coneInnerAngle<"u"?W.coneInnerAngle:360,coneOuterAngle:typeof W.coneOuterAngle<"u"?W.coneOuterAngle:360,coneOuterGain:typeof W.coneOuterGain<"u"?W.coneOuterGain:0,distanceModel:typeof W.distanceModel<"u"?W.distanceModel:"inverse",maxDistance:typeof W.maxDistance<"u"?W.maxDistance:1e4,panningModel:typeof W.panningModel<"u"?W.panningModel:"HRTF",refDistance:typeof W.refDistance<"u"?W.refDistance:1,rolloffFactor:typeof W.rolloffFactor<"u"?W.rolloffFactor:1},z._onstereo=W.onstereo?[{fn:W.onstereo}]:[],z._onpos=W.onpos?[{fn:W.onpos}]:[],z._onorientation=W.onorientation?[{fn:W.onorientation}]:[],Y.call(this,W)}}(Howl.prototype.init),Howl.prototype.stereo=function(Y,W){var z=this;if(!z._webAudio)return z;if(z._state!=="loaded")return z._queue.push({event:"stereo",action:function(){z.stereo(Y,W)}}),z;var V=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof W>"u")if(typeof Y==="number")z._stereo=Y,z._pos=[Y,0,0];else return z._stereo;var F=z._getSoundIds(W);for(var E=0;E"u")if(typeof Y==="number")F._pos=[Y,W,z];else return F._pos;var E=F._getSoundIds(V);for(var A=0;A"u")if(typeof Y==="number")F._orientation=[Y,W,z];else return F._orientation;var E=F._getSoundIds(V);for(var A=0;A"u"){if(!z.pannerAttr)z.pannerAttr={coneInnerAngle:z.coneInnerAngle,coneOuterAngle:z.coneOuterAngle,coneOuterGain:z.coneOuterGain,distanceModel:z.distanceModel,maxDistance:z.maxDistance,refDistance:z.refDistance,rolloffFactor:z.rolloffFactor,panningModel:z.panningModel};Y._pannerAttr={coneInnerAngle:typeof z.pannerAttr.coneInnerAngle<"u"?z.pannerAttr.coneInnerAngle:Y._coneInnerAngle,coneOuterAngle:typeof z.pannerAttr.coneOuterAngle<"u"?z.pannerAttr.coneOuterAngle:Y._coneOuterAngle,coneOuterGain:typeof z.pannerAttr.coneOuterGain<"u"?z.pannerAttr.coneOuterGain:Y._coneOuterGain,distanceModel:typeof z.pannerAttr.distanceModel<"u"?z.pannerAttr.distanceModel:Y._distanceModel,maxDistance:typeof z.pannerAttr.maxDistance<"u"?z.pannerAttr.maxDistance:Y._maxDistance,refDistance:typeof z.pannerAttr.refDistance<"u"?z.pannerAttr.refDistance:Y._refDistance,rolloffFactor:typeof z.pannerAttr.rolloffFactor<"u"?z.pannerAttr.rolloffFactor:Y._rolloffFactor,panningModel:typeof z.pannerAttr.panningModel<"u"?z.pannerAttr.panningModel:Y._panningModel}}}else return F=Y._soundById(parseInt(W[0],10)),F?F._pannerAttr:Y._pannerAttr;else if(W.length===2)z=W[0],V=parseInt(W[1],10);var E=Y._getSoundIds(V);for(var A=0;A{Object.defineProperty(T1,"__esModule",{value:!0});T1.ERROR_PACKET=T1.PACKET_TYPES_REVERSE=T1.PACKET_TYPES=void 0;var G1=Object.create(null);T1.PACKET_TYPES=G1;G1.open="0";G1.close="1";G1.ping="2";G1.pong="3";G1.message="4";G1.upgrade="5";G1.noop="6";var GZ=Object.create(null);T1.PACKET_TYPES_REVERSE=GZ;Object.keys(G1).forEach((J)=>{GZ[G1[J]]=J});var PK={type:"error",data:"parser error"};T1.ERROR_PACKET=PK});var HZ=a((a8)=>{Object.defineProperty(a8,"__esModule",{value:!0});a8.encodePacket=void 0;a8.encodePacketToBinary=SK;var MK=w6(),VZ=typeof Blob==="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",$Z=typeof ArrayBuffer==="function",qZ=(J)=>{return typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(J):J&&J.buffer instanceof ArrayBuffer},FZ=({type:J,data:Y},W,z)=>{if(VZ&&Y instanceof Blob)if(W)return z(Y);else return XZ(Y,z);else if($Z&&(Y instanceof ArrayBuffer||qZ(Y)))if(W)return z(Y);else return XZ(new Blob([Y]),z);return z(MK.PACKET_TYPES[J]+(Y||""))};a8.encodePacket=FZ;var XZ=(J,Y)=>{let W=new FileReader;return W.onload=function(){let z=W.result.split(",")[1];Y("b"+(z||""))},W.readAsDataURL(J)};function UZ(J){if(J instanceof Uint8Array)return J;else if(J instanceof ArrayBuffer)return new Uint8Array(J);else return new Uint8Array(J.buffer,J.byteOffset,J.byteLength)}var cJ;function SK(J,Y){if(VZ&&J.data instanceof Blob)return J.data.arrayBuffer().then(UZ).then(Y);else if($Z&&(J.data instanceof ArrayBuffer||qZ(J.data)))return Y(UZ(J.data));FZ(J,!1,(W)=>{if(!cJ)cJ=new TextEncoder;Y(cJ.encode(W))})}});var BZ=a((P8)=>{Object.defineProperty(P8,"__esModule",{value:!0});P8.decode=P8.encode=void 0;var E8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t8=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let J=0;J{let Y=new Uint8Array(J),W,z=Y.length,V="";for(W=0;W>2],V+=E8[(Y[W]&3)<<4|Y[W+1]>>4],V+=E8[(Y[W+1]&15)<<2|Y[W+2]>>6],V+=E8[Y[W+2]&63];if(z%3===2)V=V.substring(0,V.length-1)+"=";else if(z%3===1)V=V.substring(0,V.length-2)+"==";return V};P8.encode=CK;var QK=(J)=>{let Y=J.length*0.75,W=J.length,z,V=0,F,E,A,N;if(J[J.length-1]==="="){if(Y--,J[J.length-2]==="=")Y--}let I=new ArrayBuffer(Y),G=new Uint8Array(I);for(z=0;z>4,G[V++]=(E&15)<<4|A>>2,G[V++]=(A&3)<<6|N&63;return I};P8.decode=QK});var RZ=a((k6)=>{Object.defineProperty(k6,"__esModule",{value:!0});k6.decodePacket=void 0;var j6=w6(),TK=BZ(),LK=typeof ArrayBuffer==="function",DK=(J,Y)=>{if(typeof J!=="string")return{type:"message",data:OZ(J,Y)};let W=J.charAt(0);if(W==="b")return{type:"message",data:IK(J.substring(1),Y)};if(!j6.PACKET_TYPES_REVERSE[W])return j6.ERROR_PACKET;return J.length>1?{type:j6.PACKET_TYPES_REVERSE[W],data:J.substring(1)}:{type:j6.PACKET_TYPES_REVERSE[W]}};k6.decodePacket=DK;var IK=(J,Y)=>{if(LK){let W=(0,TK.decode)(J);return OZ(W,Y)}else return{base64:!0,data:J}},OZ=(J,Y)=>{switch(Y){case"blob":if(J instanceof Blob)return J;else return new Blob([J]);case"arraybuffer":default:if(J instanceof ArrayBuffer)return J;else return J.buffer}}});var M8=a((x0)=>{Object.defineProperty(x0,"__esModule",{value:!0});x0.decodePayload=x0.decodePacket=x0.encodePayload=x0.encodePacket=x0.protocol=void 0;x0.createPacketEncoderStream=kK;x0.createPacketDecoderStream=xK;var iJ=HZ();Object.defineProperty(x0,"encodePacket",{enumerable:!0,get:function(){return iJ.encodePacket}});var lJ=RZ();Object.defineProperty(x0,"decodePacket",{enumerable:!0,get:function(){return lJ.decodePacket}});var AZ=w6(),_Z=String.fromCharCode(30),wK=(J,Y)=>{let W=J.length,z=Array(W),V=0;J.forEach((F,E)=>{(0,iJ.encodePacket)(F,!1,(A)=>{if(z[E]=A,++V===W)Y(z.join(_Z))})})};x0.encodePayload=wK;var jK=(J,Y)=>{let W=J.split(_Z),z=[];for(let V=0;V{let z=W.length,V;if(z<126)V=new Uint8Array(1),new DataView(V.buffer).setUint8(0,z);else if(z<65536){V=new Uint8Array(3);let F=new DataView(V.buffer);F.setUint8(0,126),F.setUint16(1,z)}else{V=new Uint8Array(9);let F=new DataView(V.buffer);F.setUint8(0,127),F.setBigUint64(1,BigInt(z))}if(J.data&&typeof J.data!=="string")V[0]|=128;Y.enqueue(V),Y.enqueue(W)})}})}var dJ;function x6(J){return J.reduce((Y,W)=>Y+W.length,0)}function v6(J,Y){if(J[0].length===Y)return J.shift();let W=new Uint8Array(Y),z=0;for(let V=0;VMath.pow(2,21)-1){A.enqueue(AZ.ERROR_PACKET);break}V=G*Math.pow(2,32)+I.getUint32(4),z=3}else{if(x6(W)J){A.enqueue(AZ.ERROR_PACKET);break}}}})}x0.protocol=4});var d1=a((NZ)=>{NZ.Emitter=L0;function L0(J){if(J)return vK(J)}function vK(J){for(var Y in L0.prototype)J[Y]=L0.prototype[Y];return J}L0.prototype.on=L0.prototype.addEventListener=function(J,Y){return this._callbacks=this._callbacks||{},(this._callbacks["$"+J]=this._callbacks["$"+J]||[]).push(Y),this};L0.prototype.once=function(J,Y){function W(){this.off(J,W),Y.apply(this,arguments)}return W.fn=Y,this.on(J,W),this};L0.prototype.off=L0.prototype.removeListener=L0.prototype.removeAllListeners=L0.prototype.removeEventListener=function(J,Y){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var W=this._callbacks["$"+J];if(!W)return this;if(arguments.length==1)return delete this._callbacks["$"+J],this;var z;for(var V=0;V{Object.defineProperty(R1,"__esModule",{value:!0});R1.defaultBinaryType=R1.globalThisShim=R1.nextTick=void 0;R1.createCookieJar=bK;R1.nextTick=(()=>{if(typeof Promise==="function"&&typeof Promise.resolve==="function")return(Y)=>Promise.resolve().then(Y);else return(Y,W)=>W(Y,0)})();R1.globalThisShim=(()=>{if(typeof self<"u")return self;else if(typeof window<"u")return window;else return Function("return this")()})();R1.defaultBinaryType="arraybuffer";function bK(){}});var l1=a((S8)=>{Object.defineProperty(S8,"__esModule",{value:!0});S8.pick=hK;S8.installTimerFunctions=gK;S8.byteLength=pK;S8.randomString=cK;var L1=i1();function hK(J,...Y){return Y.reduce((W,z)=>{if(J.hasOwnProperty(z))W[z]=J[z];return W},{})}var yK=L1.globalThisShim.setTimeout,fK=L1.globalThisShim.clearTimeout;function gK(J,Y){if(Y.useNativeTimers)J.setTimeoutFn=yK.bind(L1.globalThisShim),J.clearTimeoutFn=fK.bind(L1.globalThisShim);else J.setTimeoutFn=L1.globalThisShim.setTimeout.bind(L1.globalThisShim),J.clearTimeoutFn=L1.globalThisShim.clearTimeout.bind(L1.globalThisShim)}var mK=1.33;function pK(J){if(typeof J==="string")return uK(J);return Math.ceil((J.byteLength||J.size)*mK)}function uK(J){let Y=0,W=0;for(let z=0,V=J.length;z=57344)W+=3;else z++,W+=4;return W}function cK(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}});var nJ=a((b6)=>{Object.defineProperty(b6,"__esModule",{value:!0});b6.encode=dK;b6.decode=iK;function dK(J){let Y="";for(let W in J)if(J.hasOwnProperty(W)){if(Y.length)Y+="&";Y+=encodeURIComponent(W)+"="+encodeURIComponent(J[W])}return Y}function iK(J){let Y={},W=J.split("&");for(let z=0,V=W.length;z{var C8=1000,Q8=C8*60,T8=Q8*60,n1=T8*24,lK=n1*7,nK=n1*365.25;EZ.exports=function(J,Y){Y=Y||{};var W=typeof J;if(W==="string"&&J.length>0)return sK(J);else if(W==="number"&&isFinite(J))return Y.long?aK(J):rK(J);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(J))};function sK(J){if(J=String(J),J.length>100)return;var Y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(J);if(!Y)return;var W=parseFloat(Y[1]),z=(Y[2]||"ms").toLowerCase();switch(z){case"years":case"year":case"yrs":case"yr":case"y":return W*nK;case"weeks":case"week":case"w":return W*lK;case"days":case"day":case"d":return W*n1;case"hours":case"hour":case"hrs":case"hr":case"h":return W*T8;case"minutes":case"minute":case"mins":case"min":case"m":return W*Q8;case"seconds":case"second":case"secs":case"sec":case"s":return W*C8;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return W;default:return}}function rK(J){var Y=Math.abs(J);if(Y>=n1)return Math.round(J/n1)+"d";if(Y>=T8)return Math.round(J/T8)+"h";if(Y>=Q8)return Math.round(J/Q8)+"m";if(Y>=C8)return Math.round(J/C8)+"s";return J+"ms"}function aK(J){var Y=Math.abs(J);if(Y>=n1)return h6(J,Y,n1,"day");if(Y>=T8)return h6(J,Y,T8,"hour");if(Y>=Q8)return h6(J,Y,Q8,"minute");if(Y>=C8)return h6(J,Y,C8,"second");return J+" ms"}function h6(J,Y,W,z){var V=Y>=W*1.5;return Math.round(J/W)+" "+z+(V?"s":"")}});var MZ=a((gG,PZ)=>{function tK(J){W.debug=W,W.default=W,W.coerce=N,W.disable=F,W.enable=V,W.enabled=E,W.humanize=y6(),W.destroy=I,Object.keys(J).forEach((G)=>{W[G]=J[G]}),W.names=[],W.skips=[],W.formatters={};function Y(G){let U=0;for(let R=0;R{if(q==="%%")return"%";u++;let s=W.formatters[n];if(typeof s==="function"){let r=C[u];q=s.call(T,r),C.splice(u,1),u--}return q}),W.formatArgs.call(T,C),(T.log||W.log).apply(T,C)}if(Q.namespace=G,Q.useColors=W.useColors(),Q.color=W.selectColor(G),Q.extend=z,Q.destroy=W.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(R!==null)return R;if(P!==W.namespaces)P=W.namespaces,L=W.enabled(G);return L},set:(C)=>{R=C}}),typeof W.init==="function")W.init(Q);return Q}function z(G,U){let R=W(this.namespace+(typeof U>"u"?":":U)+G);return R.log=this.log,R}function V(G){W.save(G),W.namespaces=G,W.names=[],W.skips=[];let U,R=(typeof G==="string"?G:"").split(/[\s,]+/),P=R.length;for(U=0;U"-"+U)].join(",");return W.enable(""),G}function E(G){if(G[G.length-1]==="*")return!0;let U,R;for(U=0,R=W.skips.length;U{f0.formatArgs=eK;f0.save=J5;f0.load=Y5;f0.useColors=oK;f0.storage=Z5();f0.destroy=(()=>{let J=!1;return()=>{if(!J)J=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();f0.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function oK(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let J;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(J=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(J[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function eK(J){if(J[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+J[0]+(this.useColors?"%c ":" ")+"+"+f6.exports.humanize(this.diff),!this.useColors)return;let Y="color: "+this.color;J.splice(1,0,Y,"color: inherit");let W=0,z=0;J[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(W++,V==="%c")z=W}),J.splice(z,0,Y)}f0.log=console.debug||console.log||(()=>{});function J5(J){try{if(J)f0.storage.setItem("debug",J);else f0.storage.removeItem("debug")}catch(Y){}}function Y5(){let J;try{J=f0.storage.getItem("debug")}catch(Y){}if(!J&&typeof process<"u"&&"env"in process)J=process.env.DEBUG;return J}function Z5(){try{return localStorage}catch(J){}}f6.exports=MZ()(f0);var{formatters:W5}=f6.exports;W5.j=function(J){try{return JSON.stringify(J)}catch(Y){return"[UnexpectedJSONParseError]: "+Y.message}}});var o8=a((D1)=>{var K5=D1&&D1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(D1,"__esModule",{value:!0});D1.Transport=D1.TransportError=void 0;var z5=M8(),G5=d1(),X5=l1(),U5=nJ(),V5=K5(s1()),$5=(0,V5.default)("engine.io-client:transport");class sJ extends Error{constructor(J,Y,W){super(J);this.description=Y,this.context=W,this.type="TransportError"}}D1.TransportError=sJ;class SZ extends G5.Emitter{constructor(J){super();this.writable=!1,(0,X5.installTimerFunctions)(this,J),this.opts=J,this.query=J.query,this.socket=J.socket,this.supportsBinary=!J.forceBase64}onError(J,Y,W){return super.emitReserved("error",new sJ(J,Y,W)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){if(this.readyState==="opening"||this.readyState==="open")this.doClose(),this.onClose();return this}send(J){if(this.readyState==="open")this.write(J);else $5("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(J){let Y=(0,z5.decodePacket)(J,this.socket.binaryType);this.onPacket(Y)}onPacket(J){super.emitReserved("packet",J)}onClose(J){this.readyState="closed",super.emitReserved("close",J)}pause(J){}createUri(J,Y={}){return J+"://"+this._hostname()+this._port()+this.opts.path+this._query(Y)}_hostname(){let J=this.opts.hostname;return J.indexOf(":")===-1?J:"["+J+"]"}_port(){if(this.opts.port&&(this.opts.secure&&Number(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80))return":"+this.opts.port;else return""}_query(J){let Y=(0,U5.encode)(J);return Y.length?"?"+Y:""}}D1.Transport=SZ});var rJ=a((L8)=>{var q5=L8&&L8.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(L8,"__esModule",{value:!0});L8.Polling=void 0;var F5=o8(),H5=l1(),CZ=M8(),B5=q5(s1()),r0=(0,B5.default)("engine.io-client:polling");class QZ extends F5.Transport{constructor(){super(...arguments);this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(J){this.readyState="pausing";let Y=()=>{r0("paused"),this.readyState="paused",J()};if(this._polling||!this.writable){let W=0;if(this._polling)r0("we are currently polling - waiting to pause"),W++,this.once("pollComplete",function(){r0("pre-pause polling complete"),--W||Y()});if(!this.writable)r0("we are currently writing - waiting to pause"),W++,this.once("drain",function(){r0("pre-pause writing complete"),--W||Y()})}else Y()}_poll(){r0("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(J){r0("polling got data %s",J);let Y=(W)=>{if(this.readyState==="opening"&&W.type==="open")this.onOpen();if(W.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(W)};if((0,CZ.decodePayload)(J,this.socket.binaryType).forEach(Y),this.readyState!=="closed")if(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open")this._poll();else r0('ignoring poll - transport state "%s"',this.readyState)}doClose(){let J=()=>{r0("writing close packet"),this.write([{type:"close"}])};if(this.readyState==="open")r0("transport open - closing"),J();else r0("transport not open - deferring close"),this.once("open",J)}write(J){this.writable=!1,(0,CZ.encodePayload)(J,(Y)=>{this.doWrite(Y,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let J=this.opts.secure?"https":"http",Y=this.query||{};if(this.opts.timestampRequests!==!1)Y[this.opts.timestampParam]=(0,H5.randomString)();if(!this.supportsBinary&&!Y.sid)Y.b64=1;return this.createUri(J,Y)}}L8.Polling=QZ});var LZ=a((g6)=>{Object.defineProperty(g6,"__esModule",{value:!0});g6.hasCORS=void 0;var TZ=!1;try{TZ=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch(J){}g6.hasCORS=TZ});var m6=a((X1)=>{var O5=X1&&X1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(X1,"__esModule",{value:!0});X1.XHR=X1.Request=X1.BaseXHR=void 0;var R5=rJ(),A5=d1(),DZ=l1(),wZ=i1(),_5=LZ(),N5=O5(s1()),aJ=(0,N5.default)("engine.io-client:polling");function E5(){}class tJ extends R5.Polling{constructor(J){super(J);if(typeof location<"u"){let Y=location.protocol==="https:",W=location.port;if(!W)W=Y?"443":"80";this.xd=typeof location<"u"&&J.hostname!==location.hostname||W!==J.port}}doWrite(J,Y){let W=this.request({method:"POST",data:J});W.on("success",Y),W.on("error",(z,V)=>{this.onError("xhr post error",z,V)})}doPoll(){aJ("xhr poll");let J=this.request();J.on("data",this.onData.bind(this)),J.on("error",(Y,W)=>{this.onError("xhr poll error",Y,W)}),this.pollXhr=J}}X1.BaseXHR=tJ;class a0 extends A5.Emitter{constructor(J,Y,W){super();this.createRequest=J,(0,DZ.installTimerFunctions)(this,W),this._opts=W,this._method=W.method||"GET",this._uri=Y,this._data=W.data!==void 0?W.data:null,this._create()}_create(){var J;let Y=(0,DZ.pick)(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");Y.xdomain=!!this._opts.xd;let W=this._xhr=this.createRequest(Y);try{aJ("xhr open %s: %s",this._method,this._uri),W.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){W.setDisableHeaderCheck&&W.setDisableHeaderCheck(!0);for(let z in this._opts.extraHeaders)if(this._opts.extraHeaders.hasOwnProperty(z))W.setRequestHeader(z,this._opts.extraHeaders[z])}}catch(z){}if(this._method==="POST")try{W.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(z){}try{W.setRequestHeader("Accept","*/*")}catch(z){}if((J=this._opts.cookieJar)===null||J===void 0||J.addCookies(W),"withCredentials"in W)W.withCredentials=this._opts.withCredentials;if(this._opts.requestTimeout)W.timeout=this._opts.requestTimeout;W.onreadystatechange=()=>{var z;if(W.readyState===3)(z=this._opts.cookieJar)===null||z===void 0||z.parseCookies(W.getResponseHeader("set-cookie"));if(W.readyState!==4)return;if(W.status===200||W.status===1223)this._onLoad();else this.setTimeoutFn(()=>{this._onError(typeof W.status==="number"?W.status:0)},0)},aJ("xhr data %s",this._data),W.send(this._data)}catch(z){this.setTimeoutFn(()=>{this._onError(z)},0);return}if(typeof document<"u")this._index=a0.requestsCount++,a0.requests[this._index]=this}_onError(J){this.emitReserved("error",J,this._xhr),this._cleanup(!0)}_cleanup(J){if(typeof this._xhr>"u"||this._xhr===null)return;if(this._xhr.onreadystatechange=E5,J)try{this._xhr.abort()}catch(Y){}if(typeof document<"u")delete a0.requests[this._index];this._xhr=null}_onLoad(){let J=this._xhr.responseText;if(J!==null)this.emitReserved("data",J),this.emitReserved("success"),this._cleanup()}abort(){this._cleanup()}}X1.Request=a0;a0.requestsCount=0;a0.requests={};if(typeof document<"u"){if(typeof attachEvent==="function")attachEvent("onunload",IZ);else if(typeof addEventListener==="function"){let J="onpagehide"in wZ.globalThisShim?"pagehide":"unload";addEventListener(J,IZ,!1)}}function IZ(){for(let J in a0.requests)if(a0.requests.hasOwnProperty(J))a0.requests[J].abort()}var P5=function(){let J=kZ({xdomain:!1});return J&&J.responseType!==null}();class jZ extends tJ{constructor(J){super(J);let Y=J&&J.forceBase64;this.supportsBinary=P5&&!Y}request(J={}){return Object.assign(J,{xd:this.xd},this.opts),new a0(kZ,this.uri(),J)}}X1.XHR=jZ;function kZ(J){let Y=J.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!Y||_5.hasCORS))return new XMLHttpRequest}catch(W){}if(!Y)try{return new wZ.globalThisShim[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch(W){}}});var p6=a((I1)=>{var M5=I1&&I1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(I1,"__esModule",{value:!0});I1.WS=I1.BaseWS=void 0;var S5=o8(),xZ=l1(),C5=M8(),eJ=i1(),Q5=M5(s1()),T5=(0,Q5.default)("engine.io-client:websocket"),vZ=typeof navigator<"u"&&typeof navigator.product==="string"&&navigator.product.toLowerCase()==="reactnative";class JY extends S5.Transport{get name(){return"websocket"}doOpen(){let J=this.uri(),Y=this.opts.protocols,W=vZ?{}:(0,xZ.pick)(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");if(this.opts.extraHeaders)W.headers=this.opts.extraHeaders;try{this.ws=this.createSocket(J,Y,W)}catch(z){return this.emitReserved("error",z)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{if(this.opts.autoUnref)this.ws._socket.unref();this.onOpen()},this.ws.onclose=(J)=>this.onClose({description:"websocket connection closed",context:J}),this.ws.onmessage=(J)=>this.onData(J.data),this.ws.onerror=(J)=>this.onError("websocket error",J)}write(J){this.writable=!1;for(let Y=0;Y{try{this.doWrite(W,V)}catch(F){T5("websocket closed before onclose event")}if(z)(0,eJ.nextTick)(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){if(typeof this.ws<"u")this.ws.onerror=()=>{},this.ws.close(),this.ws=null}uri(){let J=this.opts.secure?"wss":"ws",Y=this.query||{};if(this.opts.timestampRequests)Y[this.opts.timestampParam]=(0,xZ.randomString)();if(!this.supportsBinary)Y.b64=1;return this.createUri(J,Y)}}I1.BaseWS=JY;var oJ=eJ.globalThisShim.WebSocket||eJ.globalThisShim.MozWebSocket;class bZ extends JY{createSocket(J,Y,W){return!vZ?Y?new oJ(J,Y):new oJ(J):new oJ(J,Y,W)}doWrite(J,Y){this.ws.send(Y)}}I1.WS=bZ});var YY=a((D8)=>{var L5=D8&&D8.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(D8,"__esModule",{value:!0});D8.WT=void 0;var D5=o8(),I5=i1(),hZ=M8(),w5=L5(s1()),e8=(0,w5.default)("engine.io-client:webtransport");class yZ extends D5.Transport{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(J){return this.emitReserved("error",J)}this._transport.closed.then(()=>{e8("transport closed gracefully"),this.onClose()}).catch((J)=>{e8("transport closed due to %s",J),this.onError("webtransport error",J)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then((J)=>{let Y=(0,hZ.createPacketDecoderStream)(Number.MAX_SAFE_INTEGER,this.socket.binaryType),W=J.readable.pipeThrough(Y).getReader(),z=(0,hZ.createPacketEncoderStream)();z.readable.pipeTo(J.writable),this._writer=z.writable.getWriter();let V=()=>{W.read().then(({done:E,value:A})=>{if(E){e8("session is closed");return}e8("received chunk: %o",A),this.onPacket(A),V()}).catch((E)=>{e8("an error occurred while reading: %s",E)})};V();let F={type:"open"};if(this.query.sid)F.data=`{"sid":"${this.query.sid}"}`;this._writer.write(F).then(()=>this.onOpen())})})}write(J){this.writable=!1;for(let Y=0;Y{if(z)(0,I5.nextTick)(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var J;(J=this._transport)===null||J===void 0||J.close()}}D8.WT=yZ});var ZY=a((u6)=>{Object.defineProperty(u6,"__esModule",{value:!0});u6.transports=void 0;var j5=m6(),k5=p6(),x5=YY();u6.transports={websocket:k5.WS,webtransport:x5.WT,polling:j5.XHR}});var KY=a((WY)=>{Object.defineProperty(WY,"__esModule",{value:!0});WY.parse=h5;var v5=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,b5=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function h5(J){if(J.length>8000)throw"URI too long";let Y=J,W=J.indexOf("["),z=J.indexOf("]");if(W!=-1&&z!=-1)J=J.substring(0,W)+J.substring(W,z).replace(/:/g,";")+J.substring(z,J.length);let V=v5.exec(J||""),F={},E=14;while(E--)F[b5[E]]=V[E]||"";if(W!=-1&&z!=-1)F.source=Y,F.host=F.host.substring(1,F.host.length-1).replace(/;/g,":"),F.authority=F.authority.replace("[","").replace("]","").replace(/;/g,":"),F.ipv6uri=!0;return F.pathNames=y5(F,F.path),F.queryKey=f5(F,F.query),F}function y5(J,Y){let W=/\/{2,9}/g,z=Y.replace(W,"/").split("/");if(Y.slice(0,1)=="/"||Y.length===0)z.splice(0,1);if(Y.slice(-1)=="/")z.splice(z.length-1,1);return z}function f5(J,Y){let W={};return Y.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(z,V,F){if(V)W[V]=F}),W}});var UY=a((U1)=>{var g5=U1&&U1.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(U1,"__esModule",{value:!0});U1.Socket=U1.SocketWithUpgrade=U1.SocketWithoutUpgrade=void 0;var m5=ZY(),fZ=l1(),p5=nJ(),gZ=KY(),u5=d1(),mZ=M8(),zY=i1(),c5=g5(s1()),X0=(0,c5.default)("engine.io-client:socket"),GY=typeof addEventListener==="function"&&typeof removeEventListener==="function",J6=[];if(GY)addEventListener("offline",()=>{X0("closing %d connection(s) because the network was lost",J6.length),J6.forEach((J)=>J())},!1);class A1 extends u5.Emitter{constructor(J,Y){super();if(this.binaryType=zY.defaultBinaryType,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,J&&typeof J==="object")Y=J,J=null;if(J){let W=(0,gZ.parse)(J);if(Y.hostname=W.host,Y.secure=W.protocol==="https"||W.protocol==="wss",Y.port=W.port,W.query)Y.query=W.query}else if(Y.host)Y.hostname=(0,gZ.parse)(Y.host).host;if((0,fZ.installTimerFunctions)(this,Y),this.secure=Y.secure!=null?Y.secure:typeof location<"u"&&location.protocol==="https:",Y.hostname&&!Y.port)Y.port=this.secure?"443":"80";if(this.hostname=Y.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=Y.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},Y.transports.forEach((W)=>{let z=W.prototype.name;this.transports.push(z),this._transportsByName[z]=W}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},Y),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query==="string")this.opts.query=(0,p5.decode)(this.opts.query);if(GY){if(this.opts.closeOnBeforeunload)this._beforeunloadEventListener=()=>{if(this.transport)this.transport.removeAllListeners(),this.transport.close()},addEventListener("beforeunload",this._beforeunloadEventListener,!1);if(this.hostname!=="localhost")X0("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},J6.push(this._offlineEventListener)}if(this.opts.withCredentials)this._cookieJar=(0,zY.createCookieJar)();this._open()}createTransport(J){X0('creating transport "%s"',J);let Y=Object.assign({},this.opts.query);if(Y.EIO=mZ.protocol,Y.transport=J,this.id)Y.sid=this.id;let W=Object.assign({},this.opts,{query:Y,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[J]);return X0("options: %j",W),new this._transportsByName[J](W)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let J=this.opts.rememberUpgrade&&A1.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let Y=this.createTransport(J);Y.open(),this.setTransport(Y)}setTransport(J){if(X0("setting transport %s",J.name),this.transport)X0("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners();this.transport=J,J.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",(Y)=>this._onClose("transport close",Y))}onOpen(){X0("socket open"),this.readyState="open",A1.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(J){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(X0('socket receive: type "%s", data "%s"',J.type,J.data),this.emitReserved("packet",J),this.emitReserved("heartbeat"),J.type){case"open":this.onHandshake(JSON.parse(J.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let Y=Error("server error");Y.code=J.data,this._onError(Y);break;case"message":this.emitReserved("data",J.data),this.emitReserved("message",J.data);break}else X0('packet received with socket readyState "%s"',this.readyState)}onHandshake(J){if(this.emitReserved("handshake",J),this.id=J.sid,this.transport.query.sid=J.sid,this._pingInterval=J.pingInterval,this._pingTimeout=J.pingTimeout,this._maxPayload=J.maxPayload,this.onOpen(),this.readyState==="closed")return;this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let J=this._pingInterval+this._pingTimeout;if(this._pingTimeoutTime=Date.now()+J,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},J),this.opts.autoUnref)this._pingTimeoutTimer.unref()}_onDrain(){if(this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0)this.emitReserved("drain");else this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let J=this._getWritablePackets();X0("flushing %d packets in socket",J.length),this.transport.send(J),this._prevBufferLen=J.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let Y=1;for(let W=0;W0&&Y>this._maxPayload)return X0("only send %d out of %d packets",W,this.writeBuffer.length),this.writeBuffer.slice(0,W);Y+=2}return X0("payload size is %d (max: %d)",Y,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let J=Date.now()>this._pingTimeoutTime;if(J)X0("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,(0,zY.nextTick)(()=>{this._onClose("ping timeout")},this.setTimeoutFn);return J}write(J,Y,W){return this._sendPacket("message",J,Y,W),this}send(J,Y,W){return this._sendPacket("message",J,Y,W),this}_sendPacket(J,Y,W,z){if(typeof Y==="function")z=Y,Y=void 0;if(typeof W==="function")z=W,W=null;if(this.readyState==="closing"||this.readyState==="closed")return;W=W||{},W.compress=W.compress!==!1;let V={type:J,data:Y,options:W};if(this.emitReserved("packetCreate",V),this.writeBuffer.push(V),z)this.once("flush",z);this.flush()}close(){let J=()=>{this._onClose("forced close"),X0("socket closing - telling transport to close"),this.transport.close()},Y=()=>{this.off("upgrade",Y),this.off("upgradeError",Y),J()},W=()=>{this.once("upgrade",Y),this.once("upgradeError",Y)};if(this.readyState==="opening"||this.readyState==="open")if(this.readyState="closing",this.writeBuffer.length)this.once("drain",()=>{if(this.upgrading)W();else J()});else if(this.upgrading)W();else J();return this}_onError(J){if(X0("socket error %j",J),A1.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return X0("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",J),this._onClose("transport error",J)}_onClose(J,Y){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(X0('socket close with reason: "%s"',J),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),GY){if(this._beforeunloadEventListener)removeEventListener("beforeunload",this._beforeunloadEventListener,!1);if(this._offlineEventListener){let W=J6.indexOf(this._offlineEventListener);if(W!==-1)X0("removing listener for the 'offline' event"),J6.splice(W,1)}}this.readyState="closed",this.id=null,this.emitReserved("close",J,Y),this.writeBuffer=[],this._prevBufferLen=0}}}U1.SocketWithoutUpgrade=A1;A1.protocol=mZ.protocol;class XY extends A1{constructor(){super(...arguments);this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade){X0("starting upgrade probes");for(let J=0;J{if(W)return;X0('probe transport "%s" opened',J),Y.send([{type:"ping",data:"probe"}]),Y.once("packet",(G)=>{if(W)return;if(G.type==="pong"&&G.data==="probe"){if(X0('probe transport "%s" pong',J),this.upgrading=!0,this.emitReserved("upgrading",Y),!Y)return;A1.priorWebsocketSuccess=Y.name==="websocket",X0('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{if(W)return;if(this.readyState==="closed")return;X0("changing transport and sending upgrade packet"),I(),this.setTransport(Y),Y.send([{type:"upgrade"}]),this.emitReserved("upgrade",Y),Y=null,this.upgrading=!1,this.flush()})}else{X0('probe transport "%s" failed',J);let U=Error("probe error");U.transport=Y.name,this.emitReserved("upgradeError",U)}})};function V(){if(W)return;W=!0,I(),Y.close(),Y=null}let F=(G)=>{let U=Error("probe error: "+G);U.transport=Y.name,V(),X0('probe transport "%s" failed because of error: %s',J,G),this.emitReserved("upgradeError",U)};function E(){F("transport closed")}function A(){F("socket closed")}function N(G){if(Y&&G.name!==Y.name)X0('"%s" works - aborting "%s"',G.name,Y.name),V()}let I=()=>{Y.removeListener("open",z),Y.removeListener("error",F),Y.removeListener("close",E),this.off("close",A),this.off("upgrading",N)};if(Y.once("open",z),Y.once("error",F),Y.once("close",E),this.once("close",A),this.once("upgrading",N),this._upgrades.indexOf("webtransport")!==-1&&J!=="webtransport")this.setTimeoutFn(()=>{if(!W)Y.open()},200);else Y.open()}onHandshake(J){this._upgrades=this._filterUpgrades(J.upgrades),super.onHandshake(J)}_filterUpgrades(J){let Y=[];for(let W=0;Wm5.transports[z]).filter((z)=>!!z);super(J,W)}}U1.Socket=pZ});var cZ=a((c6)=>{Object.defineProperty(c6,"__esModule",{value:!0});c6.Fetch=void 0;var d5=rJ();class uZ extends d5.Polling{doPoll(){this._fetch().then((J)=>{if(!J.ok)return this.onError("fetch read error",J.status,J);J.text().then((Y)=>this.onData(Y))}).catch((J)=>{this.onError("fetch read error",J)})}doWrite(J,Y){this._fetch(J).then((W)=>{if(!W.ok)return this.onError("fetch write error",W.status,W);Y()}).catch((W)=>{this.onError("fetch write error",W)})}_fetch(J){var Y;let W=J!==void 0,z=new Headers(this.opts.extraHeaders);if(W)z.set("content-type","text/plain;charset=UTF-8");return(Y=this.socket._cookieJar)===null||Y===void 0||Y.appendCookies(z),fetch(this.uri(),{method:W?"POST":"GET",body:W?J:null,headers:z,credentials:this.opts.withCredentials?"include":"omit"}).then((V)=>{var F;return(F=this.socket._cookieJar)===null||F===void 0||F.parseCookies(V.headers.getSetCookie()),V})}}c6.Fetch=uZ});var d6=a((e)=>{Object.defineProperty(e,"__esModule",{value:!0});e.WebTransport=e.WebSocket=e.NodeWebSocket=e.XHR=e.NodeXHR=e.Fetch=e.nextTick=e.parse=e.installTimerFunctions=e.transports=e.TransportError=e.Transport=e.protocol=e.SocketWithUpgrade=e.SocketWithoutUpgrade=e.Socket=void 0;var dZ=UY();Object.defineProperty(e,"Socket",{enumerable:!0,get:function(){return dZ.Socket}});var iZ=UY();Object.defineProperty(e,"SocketWithoutUpgrade",{enumerable:!0,get:function(){return iZ.SocketWithoutUpgrade}});Object.defineProperty(e,"SocketWithUpgrade",{enumerable:!0,get:function(){return iZ.SocketWithUpgrade}});e.protocol=dZ.Socket.protocol;var lZ=o8();Object.defineProperty(e,"Transport",{enumerable:!0,get:function(){return lZ.Transport}});Object.defineProperty(e,"TransportError",{enumerable:!0,get:function(){return lZ.TransportError}});var i5=ZY();Object.defineProperty(e,"transports",{enumerable:!0,get:function(){return i5.transports}});var l5=l1();Object.defineProperty(e,"installTimerFunctions",{enumerable:!0,get:function(){return l5.installTimerFunctions}});var n5=KY();Object.defineProperty(e,"parse",{enumerable:!0,get:function(){return n5.parse}});var s5=i1();Object.defineProperty(e,"nextTick",{enumerable:!0,get:function(){return s5.nextTick}});var r5=cZ();Object.defineProperty(e,"Fetch",{enumerable:!0,get:function(){return r5.Fetch}});var a5=m6();Object.defineProperty(e,"NodeXHR",{enumerable:!0,get:function(){return a5.XHR}});var t5=m6();Object.defineProperty(e,"XHR",{enumerable:!0,get:function(){return t5.XHR}});var o5=p6();Object.defineProperty(e,"NodeWebSocket",{enumerable:!0,get:function(){return o5.WS}});var e5=p6();Object.defineProperty(e,"WebSocket",{enumerable:!0,get:function(){return e5.WS}});var Jz=YY();Object.defineProperty(e,"WebTransport",{enumerable:!0,get:function(){return Jz.WT}})});var sZ=a((tG,nZ)=>{function Yz(J){W.debug=W,W.default=W,W.coerce=N,W.disable=E,W.enable=V,W.enabled=A,W.humanize=y6(),W.destroy=I,Object.keys(J).forEach((G)=>{W[G]=J[G]}),W.names=[],W.skips=[],W.formatters={};function Y(G){let U=0;for(let R=0;R{if(q==="%%")return"%";u++;let s=W.formatters[n];if(typeof s==="function"){let r=C[u];q=s.call(T,r),C.splice(u,1),u--}return q}),W.formatArgs.call(T,C),(T.log||W.log).apply(T,C)}if(Q.namespace=G,Q.useColors=W.useColors(),Q.color=W.selectColor(G),Q.extend=z,Q.destroy=W.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(R!==null)return R;if(P!==W.namespaces)P=W.namespaces,L=W.enabled(G);return L},set:(C)=>{R=C}}),typeof W.init==="function")W.init(Q);return Q}function z(G,U){let R=W(this.namespace+(typeof U>"u"?":":U)+G);return R.log=this.log,R}function V(G){W.save(G),W.namespaces=G,W.names=[],W.skips=[];let U=(typeof G==="string"?G:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let R of U)if(R[0]==="-")W.skips.push(R.slice(1));else W.names.push(R)}function F(G,U){let R=0,P=0,L=-1,Q=0;while(R"-"+U)].join(",");return W.enable(""),G}function A(G){for(let U of W.skips)if(F(G,U))return!1;for(let U of W.names)if(F(G,U))return!0;return!1}function N(G){if(G instanceof Error)return G.stack||G.message;return G}function I(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return W.enable(W.load()),W}nZ.exports=Yz});var Y6=a((v0,i6)=>{v0.formatArgs=Wz;v0.save=Kz;v0.load=zz;v0.useColors=Zz;v0.storage=Gz();v0.destroy=(()=>{let J=!1;return()=>{if(!J)J=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();v0.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Zz(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let J;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(J=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(J[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Wz(J){if(J[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+J[0]+(this.useColors?"%c ":" ")+"+"+i6.exports.humanize(this.diff),!this.useColors)return;let Y="color: "+this.color;J.splice(1,0,Y,"color: inherit");let W=0,z=0;J[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(W++,V==="%c")z=W}),J.splice(z,0,Y)}v0.log=console.debug||console.log||(()=>{});function Kz(J){try{if(J)v0.storage.setItem("debug",J);else v0.storage.removeItem("debug")}catch(Y){}}function zz(){let J;try{J=v0.storage.getItem("debug")||v0.storage.getItem("DEBUG")}catch(Y){}if(!J&&typeof process<"u"&&"env"in process)J=process.env.DEBUG;return J}function Gz(){try{return localStorage}catch(J){}}i6.exports=sZ()(v0);var{formatters:Xz}=i6.exports;Xz.j=function(J){try{return JSON.stringify(J)}catch(Y){return"[UnexpectedJSONParseError]: "+Y.message}}});var aZ=a((Z6)=>{var Uz=Z6&&Z6.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(Z6,"__esModule",{value:!0});Z6.url=qz;var Vz=d6(),$z=Uz(Y6()),rZ=(0,$z.default)("socket.io-client:url");function qz(J,Y="",W){let z=J;if(W=W||typeof location<"u"&&location,J==null)J=W.protocol+"//"+W.host;if(typeof J==="string"){if(J.charAt(0)==="/")if(J.charAt(1)==="/")J=W.protocol+J;else J=W.host+J;if(!/^(https?|wss?):\/\//.test(J))if(rZ("protocol-less url %s",J),typeof W<"u")J=W.protocol+"//"+J;else J="https://"+J;rZ("parse %s",J),z=(0,Vz.parse)(J)}if(!z.port){if(/^(http|ws)$/.test(z.protocol))z.port="80";else if(/^(http|ws)s$/.test(z.protocol))z.port="443"}z.path=z.path||"/";let F=z.host.indexOf(":")!==-1?"["+z.host+"]":z.host;return z.id=z.protocol+"://"+F+":"+z.port+Y,z.href=z.protocol+"://"+F+(W&&W.port===z.port?"":":"+z.port),z}});var VY=a((I8)=>{Object.defineProperty(I8,"__esModule",{value:!0});I8.hasBinary=I8.isBinary=void 0;var Fz=typeof ArrayBuffer==="function",Hz=(J)=>{return typeof ArrayBuffer.isView==="function"?ArrayBuffer.isView(J):J.buffer instanceof ArrayBuffer},tZ=Object.prototype.toString,Bz=typeof Blob==="function"||typeof Blob<"u"&&tZ.call(Blob)==="[object BlobConstructor]",Oz=typeof File==="function"||typeof File<"u"&&tZ.call(File)==="[object FileConstructor]";function oZ(J){return Fz&&(J instanceof ArrayBuffer||Hz(J))||Bz&&J instanceof Blob||Oz&&J instanceof File}I8.isBinary=oZ;function l6(J,Y){if(!J||typeof J!=="object")return!1;if(Array.isArray(J)){for(let W=0,z=J.length;W{Object.defineProperty(w8,"__esModule",{value:!0});w8.reconstructPacket=w8.deconstructPacket=void 0;var Rz=VY();function Az(J){let Y=[],W=J.data,z=J;return z.data=$Y(W,Y),z.attachments=Y.length,{packet:z,buffers:Y}}w8.deconstructPacket=Az;function $Y(J,Y){if(!J)return J;if((0,Rz.isBinary)(J)){let W={_placeholder:!0,num:Y.length};return Y.push(J),W}else if(Array.isArray(J)){let W=Array(J.length);for(let z=0;z=0&&J.num{function Nz(J){W.debug=W,W.default=W,W.coerce=N,W.disable=F,W.enable=V,W.enabled=E,W.humanize=y6(),W.destroy=I,Object.keys(J).forEach((G)=>{W[G]=J[G]}),W.names=[],W.skips=[],W.formatters={};function Y(G){let U=0;for(let R=0;R{if(q==="%%")return"%";u++;let s=W.formatters[n];if(typeof s==="function"){let r=C[u];q=s.call(T,r),C.splice(u,1),u--}return q}),W.formatArgs.call(T,C),(T.log||W.log).apply(T,C)}if(Q.namespace=G,Q.useColors=W.useColors(),Q.color=W.selectColor(G),Q.extend=z,Q.destroy=W.destroy,Object.defineProperty(Q,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(R!==null)return R;if(P!==W.namespaces)P=W.namespaces,L=W.enabled(G);return L},set:(C)=>{R=C}}),typeof W.init==="function")W.init(Q);return Q}function z(G,U){let R=W(this.namespace+(typeof U>"u"?":":U)+G);return R.log=this.log,R}function V(G){W.save(G),W.namespaces=G,W.names=[],W.skips=[];let U,R=(typeof G==="string"?G:"").split(/[\s,]+/),P=R.length;for(U=0;U"-"+U)].join(",");return W.enable(""),G}function E(G){if(G[G.length-1]==="*")return!0;let U,R;for(U=0,R=W.skips.length;U{g0.formatArgs=Pz;g0.save=Mz;g0.load=Sz;g0.useColors=Ez;g0.storage=Cz();g0.destroy=(()=>{let J=!1;return()=>{if(!J)J=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();g0.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function Ez(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let J;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(J=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(J[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Pz(J){if(J[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+J[0]+(this.useColors?"%c ":" ")+"+"+n6.exports.humanize(this.diff),!this.useColors)return;let Y="color: "+this.color;J.splice(1,0,Y,"color: inherit");let W=0,z=0;J[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(W++,V==="%c")z=W}),J.splice(z,0,Y)}g0.log=console.debug||console.log||(()=>{});function Mz(J){try{if(J)g0.storage.setItem("debug",J);else g0.storage.removeItem("debug")}catch(Y){}}function Sz(){let J;try{J=g0.storage.getItem("debug")}catch(Y){}if(!J&&typeof process<"u"&&"env"in process)J=process.env.DEBUG;return J}function Cz(){try{return localStorage}catch(J){}}n6.exports=Y3()(g0);var{formatters:Qz}=n6.exports;Qz.j=function(J){try{return JSON.stringify(J)}catch(Y){return"[UnexpectedJSONParseError]: "+Y.message}}});var s6=a((t0)=>{Object.defineProperty(t0,"__esModule",{value:!0});t0.Decoder=t0.Encoder=t0.PacketType=t0.protocol=void 0;var Tz=d1(),K3=eZ(),z3=VY(),Lz=Z3(),FY=(0,Lz.default)("socket.io-parser"),Dz=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];t0.protocol=5;var H0;(function(J){J[J.CONNECT=0]="CONNECT",J[J.DISCONNECT=1]="DISCONNECT",J[J.EVENT=2]="EVENT",J[J.ACK=3]="ACK",J[J.CONNECT_ERROR=4]="CONNECT_ERROR",J[J.BINARY_EVENT=5]="BINARY_EVENT",J[J.BINARY_ACK=6]="BINARY_ACK"})(H0=t0.PacketType||(t0.PacketType={}));class G3{constructor(J){this.replacer=J}encode(J){if(FY("encoding packet %j",J),J.type===H0.EVENT||J.type===H0.ACK){if((0,z3.hasBinary)(J))return this.encodeAsBinary({type:J.type===H0.EVENT?H0.BINARY_EVENT:H0.BINARY_ACK,nsp:J.nsp,data:J.data,id:J.id})}return[this.encodeAsString(J)]}encodeAsString(J){let Y=""+J.type;if(J.type===H0.BINARY_EVENT||J.type===H0.BINARY_ACK)Y+=J.attachments+"-";if(J.nsp&&J.nsp!=="/")Y+=J.nsp+",";if(J.id!=null)Y+=J.id;if(J.data!=null)Y+=JSON.stringify(J.data,this.replacer);return FY("encoded %j as %s",J,Y),Y}encodeAsBinary(J){let Y=(0,K3.deconstructPacket)(J),W=this.encodeAsString(Y.packet),z=Y.buffers;return z.unshift(W),z}}t0.Encoder=G3;function W3(J){return Object.prototype.toString.call(J)==="[object Object]"}class HY extends Tz.Emitter{constructor(J){super();this.reviver=J}add(J){let Y;if(typeof J==="string"){if(this.reconstructor)throw Error("got plaintext data when reconstructing a packet");Y=this.decodeString(J);let W=Y.type===H0.BINARY_EVENT;if(W||Y.type===H0.BINARY_ACK){if(Y.type=W?H0.EVENT:H0.ACK,this.reconstructor=new X3(Y),Y.attachments===0)super.emitReserved("decoded",Y)}else super.emitReserved("decoded",Y)}else if((0,z3.isBinary)(J)||J.base64){if(!this.reconstructor)throw Error("got binary data when not reconstructing a packet");else if(Y=this.reconstructor.takeBinaryData(J),Y)this.reconstructor=null,super.emitReserved("decoded",Y)}else throw Error("Unknown type: "+J)}decodeString(J){let Y=0,W={type:Number(J.charAt(0))};if(H0[W.type]===void 0)throw Error("unknown packet type "+W.type);if(W.type===H0.BINARY_EVENT||W.type===H0.BINARY_ACK){let V=Y+1;while(J.charAt(++Y)!=="-"&&Y!=J.length);let F=J.substring(V,Y);if(F!=Number(F)||J.charAt(Y)!=="-")throw Error("Illegal attachments");W.attachments=Number(F)}if(J.charAt(Y+1)==="/"){let V=Y+1;while(++Y){if(J.charAt(Y)===",")break;if(Y===J.length)break}W.nsp=J.substring(V,Y)}else W.nsp="/";let z=J.charAt(Y+1);if(z!==""&&Number(z)==z){let V=Y+1;while(++Y){let F=J.charAt(Y);if(F==null||Number(F)!=F){--Y;break}if(Y===J.length)break}W.id=Number(J.substring(V,Y+1))}if(J.charAt(++Y)){let V=this.tryParse(J.substr(Y));if(HY.isPayloadValid(W.type,V))W.data=V;else throw Error("invalid payload")}return FY("decoded %s as %j",J,W),W}tryParse(J){try{return JSON.parse(J,this.reviver)}catch(Y){return!1}}static isPayloadValid(J,Y){switch(J){case H0.CONNECT:return W3(Y);case H0.DISCONNECT:return Y===void 0;case H0.CONNECT_ERROR:return typeof Y==="string"||W3(Y);case H0.EVENT:case H0.BINARY_EVENT:return Array.isArray(Y)&&(typeof Y[0]==="number"||typeof Y[0]==="string"&&Dz.indexOf(Y[0])===-1);case H0.ACK:case H0.BINARY_ACK:return Array.isArray(Y)}}destroy(){if(this.reconstructor)this.reconstructor.finishedReconstruction(),this.reconstructor=null}}t0.Decoder=HY;class X3{constructor(J){this.packet=J,this.buffers=[],this.reconPack=J}takeBinaryData(J){if(this.buffers.push(J),this.buffers.length===this.reconPack.attachments){let Y=(0,K3.reconstructPacket)(this.reconPack,this.buffers);return this.finishedReconstruction(),Y}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}});var OY=a((BY)=>{Object.defineProperty(BY,"__esModule",{value:!0});BY.on=Iz;function Iz(J,Y,W){return J.on(Y,W),function(){J.off(Y,W)}}});var RY=a((j8)=>{var wz=j8&&j8.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(j8,"__esModule",{value:!0});j8.Socket=void 0;var o0=s6(),r6=OY(),jz=d1(),kz=wz(Y6()),A0=(0,kz.default)("socket.io-client:socket"),xz=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class U3 extends jz.Emitter{constructor(J,Y,W){super();if(this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=J,this.nsp=Y,W&&W.auth)this.auth=W.auth;if(this._opts=Object.assign({},W),this.io._autoConnect)this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let J=this.io;this.subs=[(0,r6.on)(J,"open",this.onopen.bind(this)),(0,r6.on)(J,"packet",this.onpacket.bind(this)),(0,r6.on)(J,"error",this.onerror.bind(this)),(0,r6.on)(J,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){if(this.connected)return this;if(this.subEvents(),!this.io._reconnecting)this.io.open();if(this.io._readyState==="open")this.onopen();return this}open(){return this.connect()}send(...J){return J.unshift("message"),this.emit.apply(this,J),this}emit(J,...Y){var W,z,V;if(xz.hasOwnProperty(J))throw Error('"'+J.toString()+'" is a reserved event name');if(Y.unshift(J),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(Y),this;let F={type:o0.PacketType.EVENT,data:Y};if(F.options={},F.options.compress=this.flags.compress!==!1,typeof Y[Y.length-1]==="function"){let I=this.ids++;A0("emitting packet with ack id %d",I);let G=Y.pop();this._registerAckCallback(I,G),F.id=I}let E=(z=(W=this.io.engine)===null||W===void 0?void 0:W.transport)===null||z===void 0?void 0:z.writable,A=this.connected&&!((V=this.io.engine)===null||V===void 0?void 0:V._hasPingExpired());if(this.flags.volatile&&!E)A0("discard packet as the transport is not currently writable");else if(A)this.notifyOutgoingListeners(F),this.packet(F);else this.sendBuffer.push(F);return this.flags={},this}_registerAckCallback(J,Y){var W;let z=(W=this.flags.timeout)!==null&&W!==void 0?W:this._opts.ackTimeout;if(z===void 0){this.acks[J]=Y;return}let V=this.io.setTimeoutFn(()=>{delete this.acks[J];for(let E=0;E{this.io.clearTimeoutFn(V),Y.apply(this,E)};F.withError=!0,this.acks[J]=F}emitWithAck(J,...Y){return new Promise((W,z)=>{let V=(F,E)=>{return F?z(F):W(E)};V.withError=!0,Y.push(V),this.emit(J,...Y)})}_addToQueue(J){let Y;if(typeof J[J.length-1]==="function")Y=J.pop();let W={id:this._queueSeq++,tryCount:0,pending:!1,args:J,flags:Object.assign({fromQueue:!0},this.flags)};J.push((z,...V)=>{if(W!==this._queue[0])return A0("packet [%d] already acknowledged",W.id);if(z!==null){if(W.tryCount>this._opts.retries){if(A0("packet [%d] is discarded after %d tries",W.id,W.tryCount),this._queue.shift(),Y)Y(z)}}else if(A0("packet [%d] was successfully sent",W.id),this._queue.shift(),Y)Y(null,...V);return W.pending=!1,this._drainQueue()}),this._queue.push(W),this._drainQueue()}_drainQueue(J=!1){if(A0("draining queue"),!this.connected||this._queue.length===0)return;let Y=this._queue[0];if(Y.pending&&!J){A0("packet [%d] has already been sent and is waiting for an ack",Y.id);return}Y.pending=!0,Y.tryCount++,A0("sending packet [%d] (try n°%d)",Y.id,Y.tryCount),this.flags=Y.flags,this.emit.apply(this,Y.args)}packet(J){J.nsp=this.nsp,this.io._packet(J)}onopen(){if(A0("transport is open - connecting"),typeof this.auth=="function")this.auth((J)=>{this._sendConnectPacket(J)});else this._sendConnectPacket(this.auth)}_sendConnectPacket(J){this.packet({type:o0.PacketType.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},J):J})}onerror(J){if(!this.connected)this.emitReserved("connect_error",J)}onclose(J,Y){A0("close (%s)",J),this.connected=!1,delete this.id,this.emitReserved("disconnect",J,Y),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach((J)=>{if(!this.sendBuffer.some((W)=>String(W.id)===J)){let W=this.acks[J];if(delete this.acks[J],W.withError)W.call(this,Error("socket has been disconnected"))}})}onpacket(J){if(J.nsp!==this.nsp)return;switch(J.type){case o0.PacketType.CONNECT:if(J.data&&J.data.sid)this.onconnect(J.data.sid,J.data.pid);else this.emitReserved("connect_error",Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case o0.PacketType.EVENT:case o0.PacketType.BINARY_EVENT:this.onevent(J);break;case o0.PacketType.ACK:case o0.PacketType.BINARY_ACK:this.onack(J);break;case o0.PacketType.DISCONNECT:this.ondisconnect();break;case o0.PacketType.CONNECT_ERROR:this.destroy();let W=Error(J.data.message);W.data=J.data.data,this.emitReserved("connect_error",W);break}}onevent(J){let Y=J.data||[];if(A0("emitting event %j",Y),J.id!=null)A0("attaching ack callback to event"),Y.push(this.ack(J.id));if(this.connected)this.emitEvent(Y);else this.receiveBuffer.push(Object.freeze(Y))}emitEvent(J){if(this._anyListeners&&this._anyListeners.length){let Y=this._anyListeners.slice();for(let W of Y)W.apply(this,J)}if(super.emit.apply(this,J),this._pid&&J.length&&typeof J[J.length-1]==="string")this._lastOffset=J[J.length-1]}ack(J){let Y=this,W=!1;return function(...z){if(W)return;W=!0,A0("sending ack %j",z),Y.packet({type:o0.PacketType.ACK,id:J,data:z})}}onack(J){let Y=this.acks[J.id];if(typeof Y!=="function"){A0("bad ack %s",J.id);return}if(delete this.acks[J.id],A0("calling ack %s with %j",J.id,J.data),Y.withError)J.data.unshift(null);Y.apply(this,J.data)}onconnect(J,Y){A0("socket connected with id %s",J),this.id=J,this.recovered=Y&&this._pid===Y,this._pid=Y,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach((J)=>this.emitEvent(J)),this.receiveBuffer=[],this.sendBuffer.forEach((J)=>{this.notifyOutgoingListeners(J),this.packet(J)}),this.sendBuffer=[]}ondisconnect(){A0("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){if(this.subs)this.subs.forEach((J)=>J()),this.subs=void 0;this.io._destroy(this)}disconnect(){if(this.connected)A0("performing disconnect (%s)",this.nsp),this.packet({type:o0.PacketType.DISCONNECT});if(this.destroy(),this.connected)this.onclose("io client disconnect");return this}close(){return this.disconnect()}compress(J){return this.flags.compress=J,this}get volatile(){return this.flags.volatile=!0,this}timeout(J){return this.flags.timeout=J,this}onAny(J){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(J),this}prependAny(J){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(J),this}offAny(J){if(!this._anyListeners)return this;if(J){let Y=this._anyListeners;for(let W=0;W{Object.defineProperty(AY,"__esModule",{value:!0});AY.Backoff=k8;function k8(J){J=J||{},this.ms=J.min||100,this.max=J.max||1e4,this.factor=J.factor||2,this.jitter=J.jitter>0&&J.jitter<=1?J.jitter:0,this.attempts=0}k8.prototype.duration=function(){var J=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var Y=Math.random(),W=Math.floor(Y*this.jitter*J);J=(Math.floor(Y*10)&1)==0?J-W:J+W}return Math.min(J,this.max)|0};k8.prototype.reset=function(){this.attempts=0};k8.prototype.setMin=function(J){this.ms=J};k8.prototype.setMax=function(J){this.max=J};k8.prototype.setJitter=function(J){this.jitter=J}});var q3=a((c0)=>{var vz=c0&&c0.__createBinding||(Object.create?function(J,Y,W,z){if(z===void 0)z=W;var V=Object.getOwnPropertyDescriptor(Y,W);if(!V||("get"in V?!Y.__esModule:V.writable||V.configurable))V={enumerable:!0,get:function(){return Y[W]}};Object.defineProperty(J,z,V)}:function(J,Y,W,z){if(z===void 0)z=W;J[z]=Y[W]}),bz=c0&&c0.__setModuleDefault||(Object.create?function(J,Y){Object.defineProperty(J,"default",{enumerable:!0,value:Y})}:function(J,Y){J.default=Y}),hz=c0&&c0.__importStar||function(J){if(J&&J.__esModule)return J;var Y={};if(J!=null){for(var W in J)if(W!=="default"&&Object.prototype.hasOwnProperty.call(J,W))vz(Y,J,W)}return bz(Y,J),Y},yz=c0&&c0.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(c0,"__esModule",{value:!0});c0.Manager=void 0;var _Y=d6(),fz=RY(),gz=hz(s6()),r1=OY(),mz=V3(),pz=d1(),uz=yz(Y6()),M0=(0,uz.default)("socket.io-client:manager");class $3 extends pz.Emitter{constructor(J,Y){var W;super();if(this.nsps={},this.subs=[],J&&typeof J==="object")Y=J,J=void 0;Y=Y||{},Y.path=Y.path||"/socket.io",this.opts=Y,(0,_Y.installTimerFunctions)(this,Y),this.reconnection(Y.reconnection!==!1),this.reconnectionAttempts(Y.reconnectionAttempts||1/0),this.reconnectionDelay(Y.reconnectionDelay||1000),this.reconnectionDelayMax(Y.reconnectionDelayMax||5000),this.randomizationFactor((W=Y.randomizationFactor)!==null&&W!==void 0?W:0.5),this.backoff=new mz.Backoff({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(Y.timeout==null?20000:Y.timeout),this._readyState="closed",this.uri=J;let z=Y.parser||gz;if(this.encoder=new z.Encoder,this.decoder=new z.Decoder,this._autoConnect=Y.autoConnect!==!1,this._autoConnect)this.open()}reconnection(J){if(!arguments.length)return this._reconnection;if(this._reconnection=!!J,!J)this.skipReconnect=!0;return this}reconnectionAttempts(J){if(J===void 0)return this._reconnectionAttempts;return this._reconnectionAttempts=J,this}reconnectionDelay(J){var Y;if(J===void 0)return this._reconnectionDelay;return this._reconnectionDelay=J,(Y=this.backoff)===null||Y===void 0||Y.setMin(J),this}randomizationFactor(J){var Y;if(J===void 0)return this._randomizationFactor;return this._randomizationFactor=J,(Y=this.backoff)===null||Y===void 0||Y.setJitter(J),this}reconnectionDelayMax(J){var Y;if(J===void 0)return this._reconnectionDelayMax;return this._reconnectionDelayMax=J,(Y=this.backoff)===null||Y===void 0||Y.setMax(J),this}timeout(J){if(!arguments.length)return this._timeout;return this._timeout=J,this}maybeReconnectOnOpen(){if(!this._reconnecting&&this._reconnection&&this.backoff.attempts===0)this.reconnect()}open(J){if(M0("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;M0("opening %s",this.uri),this.engine=new _Y.Socket(this.uri,this.opts);let Y=this.engine,W=this;this._readyState="opening",this.skipReconnect=!1;let z=(0,r1.on)(Y,"open",function(){W.onopen(),J&&J()}),V=(E)=>{if(M0("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",E),J)J(E);else this.maybeReconnectOnOpen()},F=(0,r1.on)(Y,"error",V);if(this._timeout!==!1){let E=this._timeout;M0("connect attempt will timeout after %d",E);let A=this.setTimeoutFn(()=>{M0("connect attempt timed out after %d",E),z(),V(Error("timeout")),Y.close()},E);if(this.opts.autoUnref)A.unref();this.subs.push(()=>{this.clearTimeoutFn(A)})}return this.subs.push(z),this.subs.push(F),this}connect(J){return this.open(J)}onopen(){M0("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let J=this.engine;this.subs.push((0,r1.on)(J,"ping",this.onping.bind(this)),(0,r1.on)(J,"data",this.ondata.bind(this)),(0,r1.on)(J,"error",this.onerror.bind(this)),(0,r1.on)(J,"close",this.onclose.bind(this)),(0,r1.on)(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(J){try{this.decoder.add(J)}catch(Y){this.onclose("parse error",Y)}}ondecoded(J){(0,_Y.nextTick)(()=>{this.emitReserved("packet",J)},this.setTimeoutFn)}onerror(J){M0("error",J),this.emitReserved("error",J)}socket(J,Y){let W=this.nsps[J];if(!W)W=new fz.Socket(this,J,Y),this.nsps[J]=W;else if(this._autoConnect&&!W.active)W.connect();return W}_destroy(J){let Y=Object.keys(this.nsps);for(let W of Y)if(this.nsps[W].active){M0("socket %s is still active, skipping close",W);return}this._close()}_packet(J){M0("writing packet %j",J);let Y=this.encoder.encode(J);for(let W=0;WJ()),this.subs.length=0,this.decoder.destroy()}_close(){M0("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(J,Y){var W;if(M0("closed due to %s",J),this.cleanup(),(W=this.engine)===null||W===void 0||W.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",J,Y),this._reconnection&&!this.skipReconnect)this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let J=this;if(this.backoff.attempts>=this._reconnectionAttempts)M0("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let Y=this.backoff.duration();M0("will wait %dms before reconnect attempt",Y),this._reconnecting=!0;let W=this.setTimeoutFn(()=>{if(J.skipReconnect)return;if(M0("attempting reconnect"),this.emitReserved("reconnect_attempt",J.backoff.attempts),J.skipReconnect)return;J.open((z)=>{if(z)M0("reconnect attempt error"),J._reconnecting=!1,J.reconnect(),this.emitReserved("reconnect_error",z);else M0("reconnect success"),J.onreconnect()})},Y);if(this.opts.autoUnref)W.unref();this.subs.push(()=>{this.clearTimeoutFn(W)})}}onreconnect(){let J=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",J)}}c0.Manager=$3});var O3=a((q0,B3)=>{var cz=q0&&q0.__importDefault||function(J){return J&&J.__esModule?J:{default:J}};Object.defineProperty(q0,"__esModule",{value:!0});q0.WebTransport=q0.WebSocket=q0.NodeWebSocket=q0.XHR=q0.NodeXHR=q0.Fetch=q0.Socket=q0.Manager=q0.protocol=void 0;q0.io=a1;q0.connect=a1;q0.default=a1;var dz=aZ(),a6=q3();Object.defineProperty(q0,"Manager",{enumerable:!0,get:function(){return a6.Manager}});var H3=RY();Object.defineProperty(q0,"Socket",{enumerable:!0,get:function(){return H3.Socket}});var iz=cz(Y6()),F3=(0,iz.default)("socket.io-client"),W6={};function a1(J,Y){if(typeof J==="object")Y=J,J=void 0;Y=Y||{};let W=(0,dz.url)(J,Y.path||"/socket.io"),z=W.source,V=W.id,F=W.path,E=W6[V]&&F in W6[V].nsps,A=Y.forceNew||Y["force new connection"]||Y.multiplex===!1||E,N;if(A)F3("ignoring socket cache for %s",z),N=new a6.Manager(z,Y);else{if(!W6[V])F3("new io instance for %s",z),W6[V]=new a6.Manager(z,Y);N=W6[V]}if(W.query&&!Y.query)Y.query=W.queryKey;return N.socket(W.path,Y)}Object.assign(a1,{Manager:a6.Manager,Socket:H3.Socket,io:a1,connect:a1});var lz=s6();Object.defineProperty(q0,"protocol",{enumerable:!0,get:function(){return lz.protocol}});var x8=d6();Object.defineProperty(q0,"Fetch",{enumerable:!0,get:function(){return x8.Fetch}});Object.defineProperty(q0,"NodeXHR",{enumerable:!0,get:function(){return x8.NodeXHR}});Object.defineProperty(q0,"XHR",{enumerable:!0,get:function(){return x8.XHR}});Object.defineProperty(q0,"NodeWebSocket",{enumerable:!0,get:function(){return x8.NodeWebSocket}});Object.defineProperty(q0,"WebSocket",{enumerable:!0,get:function(){return x8.WebSocket}});Object.defineProperty(q0,"WebTransport",{enumerable:!0,get:function(){return x8.WebTransport}});B3.exports=a1});var A3=a((K6)=>{var b0={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},MY={silent:{level:-1},fatal:{level:b0.fatal},error:{level:b0.error},warn:{level:b0.warn},log:{level:b0.log},info:{level:b0.info},success:{level:b0.success},fail:{level:b0.fail},ready:{level:b0.info},start:{level:b0.info},box:{level:b0.info},debug:{level:b0.debug},trace:{level:b0.trace},verbose:{level:b0.verbose}};function NY(J){if(J===null||typeof J!=="object")return!1;let Y=Object.getPrototypeOf(J);if(Y!==null&&Y!==Object.prototype&&Object.getPrototypeOf(Y)!==null)return!1;if(Symbol.iterator in J)return!1;if(Symbol.toStringTag in J)return Object.prototype.toString.call(J)==="[object Module]";return!0}function SY(J,Y,W=".",z){if(!NY(Y))return SY(J,{},W,z);let V=Object.assign({},Y);for(let F in J){if(F==="__proto__"||F==="constructor")continue;let E=J[F];if(E===null||E===void 0)continue;if(z&&z(V,F,E,W))continue;if(Array.isArray(E)&&Array.isArray(V[F]))V[F]=[...E,...V[F]];else if(NY(E)&&NY(V[F]))V[F]=SY(E,V[F],(W?`${W}.`:"")+F.toString(),z);else V[F]=E}return V}function nz(J){return(...Y)=>Y.reduce((W,z)=>SY(W,z,"",J),{})}var sz=nz();function rz(J){return Object.prototype.toString.call(J)==="[object Object]"}function az(J){if(!rz(J))return!1;if(!J.message&&!J.args)return!1;if(J.stack)return!1;return!0}var EY=!1,R3=[];class N0{options;_lastLog;_mockFn;constructor(J={}){let Y=J.types||MY;this.options=sz({...J,defaults:{...J.defaults},level:PY(J.level,Y),reporters:[...J.reporters||[]]},{types:MY,throttle:1000,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let W in Y){let z={type:W,...this.options.defaults,...Y[W]};this[W]=this._wrapLogFn(z),this[W].raw=this._wrapLogFn(z,!0)}if(this.options.mockFn)this.mockTypes();this._lastLog={}}get level(){return this.options.level}set level(J){this.options.level=PY(J,this.options.types,this.options.level)}prompt(J,Y){if(!this.options.prompt)throw Error("prompt is not supported!");return this.options.prompt(J,Y)}create(J){let Y=new N0({...this.options,...J});if(this._mockFn)Y.mockTypes(this._mockFn);return Y}withDefaults(J){return this.create({...this.options,defaults:{...this.options.defaults,...J}})}withTag(J){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+J:J})}addReporter(J){return this.options.reporters.push(J),this}removeReporter(J){if(J){let Y=this.options.reporters.indexOf(J);if(Y!==-1)return this.options.reporters.splice(Y,1)}else this.options.reporters.splice(0);return this}setReporters(J){return this.options.reporters=Array.isArray(J)?J:[J],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let J in this.options.types){if(!console["__"+J])console["__"+J]=console[J];console[J]=this[J].raw}}restoreConsole(){for(let J in this.options.types)if(console["__"+J])console[J]=console["__"+J],delete console["__"+J]}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(J,Y){if(!J)return;if(!J.__write)J.__write=J.write;J.write=(W)=>{this[Y].raw(String(W).trim())}}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(J){if(!J)return;if(J.__write)J.write=J.__write,delete J.__write}pauseLogs(){EY=!0}resumeLogs(){EY=!1;let J=R3.splice(0);for(let Y of J)Y[0]._logFn(Y[1],Y[2])}mockTypes(J){let Y=J||this.options.mockFn;if(this._mockFn=Y,typeof Y!=="function")return;for(let W in this.options.types)this[W]=Y(W,this.options.types[W])||this[W],this[W].raw=this[W]}_wrapLogFn(J,Y){return(...W)=>{if(EY){R3.push([this,J,W,Y]);return}return this._logFn(J,W,Y)}}_logFn(J,Y,W){if((J.level||0)>this.level)return!1;let z={date:new Date,args:[],...J,level:PY(J.level,this.options.types)};if(!W&&Y.length===1&&az(Y[0]))Object.assign(z,Y[0]);else z.args=[...Y];if(z.message)z.args.unshift(z.message),delete z.message;if(z.additional){if(!Array.isArray(z.additional))z.additional=z.additional.split(` `);z.args.push(` `+z.additional.join(` -`)),delete z.additional}z.type=typeof z.type==="string"?z.type.toLowerCase():"log",z.tag=typeof z.tag==="string"?z.tag:"";let V=(E=!1)=>{let _=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&_>0){let A=[...this._lastLog.object.args];if(_>1)A.push(`(repeated ${_} times)`);this._log({...this._lastLog.object,args:A}),this._lastLog.count=1}if(E)this._lastLog.object=z,this._log(z)};clearTimeout(this._lastLog.timeout);let H=this._lastLog.time&&z.date?z.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=z.date,Hthis.options.throttleMin){this._lastLog.timeout=setTimeout(V,this.options.throttle);return}}}catch{}V(!0)}_log(J){for(let Y of this.options.reporters)Y.log(J,{options:this.options})}}function AY(J,Y={},W=3){if(J===void 0)return W;if(typeof J==="number")return J;if(Y[J]&&Y[J].level!==void 0)return Y[J].level;return W}A0.prototype.add=A0.prototype.addReporter;A0.prototype.remove=A0.prototype.removeReporter;A0.prototype.clear=A0.prototype.removeReporter;A0.prototype.withScope=A0.prototype.withTag;A0.prototype.mock=A0.prototype.mockTypes;A0.prototype.pause=A0.prototype.pauseLogs;A0.prototype.resume=A0.prototype.resumeLogs;function sz(J={}){return new A0(J)}W6.Consola=A0;W6.LogLevels=b0;W6.LogTypes=EY;W6.createConsola=sz});var _3=a((w1)=>{Object.defineProperty(w1,"__esModule",{value:!0});var a6=B3();class N3{options;defaultColor;levelColorMap;typeColorMap;constructor(J){this.options={...J},this.defaultColor="#7f8c8d",this.levelColorMap={0:"#c0392b",1:"#f39c12",3:"#00BCD4"},this.typeColorMap={success:"#2ecc71"}}_getLogFn(J){if(J<1)return console.__error||console.error;if(J===1)return console.__warn||console.warn;return console.__log||console.log}log(J){let Y=this._getLogFn(J.level),W=J.type==="log"?"":J.type,z=J.tag||"",H=` +`)),delete z.additional}z.type=typeof z.type==="string"?z.type.toLowerCase():"log",z.tag=typeof z.tag==="string"?z.tag:"";let V=(E=!1)=>{let A=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&A>0){let N=[...this._lastLog.object.args];if(A>1)N.push(`(repeated ${A} times)`);this._log({...this._lastLog.object,args:N}),this._lastLog.count=1}if(E)this._lastLog.object=z,this._log(z)};clearTimeout(this._lastLog.timeout);let F=this._lastLog.time&&z.date?z.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=z.date,Fthis.options.throttleMin){this._lastLog.timeout=setTimeout(V,this.options.throttle);return}}}catch{}V(!0)}_log(J){for(let Y of this.options.reporters)Y.log(J,{options:this.options})}}function PY(J,Y={},W=3){if(J===void 0)return W;if(typeof J==="number")return J;if(Y[J]&&Y[J].level!==void 0)return Y[J].level;return W}N0.prototype.add=N0.prototype.addReporter;N0.prototype.remove=N0.prototype.removeReporter;N0.prototype.clear=N0.prototype.removeReporter;N0.prototype.withScope=N0.prototype.withTag;N0.prototype.mock=N0.prototype.mockTypes;N0.prototype.pause=N0.prototype.pauseLogs;N0.prototype.resume=N0.prototype.resumeLogs;function tz(J={}){return new N0(J)}K6.Consola=N0;K6.LogLevels=b0;K6.LogTypes=MY;K6.createConsola=tz});var P3=a((w1)=>{Object.defineProperty(w1,"__esModule",{value:!0});var t6=A3();class _3{options;defaultColor;levelColorMap;typeColorMap;constructor(J){this.options={...J},this.defaultColor="#7f8c8d",this.levelColorMap={0:"#c0392b",1:"#f39c12",3:"#00BCD4"},this.typeColorMap={success:"#2ecc71"}}_getLogFn(J){if(J<1)return console.__error||console.error;if(J===1)return console.__warn||console.warn;return console.__log||console.log}log(J){let Y=this._getLogFn(J.level),W=J.type==="log"?"":J.type,z=J.tag||"",F=` background: ${this.typeColorMap[J.type]||this.levelColorMap[J.level]||this.defaultColor}; border-radius: 0.5em; color: white; font-weight: bold; padding: 2px 0.5em; - `,E=`%c${[z,W].filter(Boolean).join(":")}`;if(typeof J.args[0]==="string")Y(`${E}%c ${J.args[0]}`,H,"",...J.args.slice(1));else Y(E,H,...J.args)}}function O3(J={}){return a6.createConsola({reporters:J.reporters||[new N3({})],prompt(W,z={}){if(z.type==="confirm")return Promise.resolve(confirm(W));return Promise.resolve(prompt(W))},...J})}var R3=O3();w1.Consola=a6.Consola;w1.LogLevels=a6.LogLevels;w1.LogTypes=a6.LogTypes;w1.consola=R3;w1.createConsola=O3;w1.default=R3});var XG={};tW(XG,{clientLogger:()=>B,audioManager:()=>y});var oW=function(J){if(J){var Y=function(b){return[].slice.call(b)},W=0,z=1,V=2,H=3,E=[],_=null,A="requestAnimationFrame"in J?function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};J.cancelAnimationFrame(_);var t=function(){return G(E.filter(function(N0){return N0.dirty&&N0.active}))};if(b.sync)return t();_=J.requestAnimationFrame(t)}:function(){},w=function(b){return function(t){E.forEach(function(N0){return N0.dirty=b}),A(t)}},G=function(b){b.filter(function(N0){return!N0.styleComputed}).forEach(function(N0){N0.styleComputed=L(N0)}),b.filter(Q).forEach(C);var t=b.filter(M);t.forEach(O),t.forEach(function(N0){C(N0),U(N0)}),t.forEach(T)},U=function(b){return b.dirty=W},O=function(b){b.availableWidth=b.element.parentNode.clientWidth,b.currentWidth=b.element.scrollWidth,b.previousFontSize=b.currentFontSize,b.currentFontSize=Math.min(Math.max(b.minSize,b.availableWidth/b.currentWidth*b.previousFontSize),b.maxSize),b.whiteSpace=b.multiLine&&b.currentFontSize===b.minSize?"normal":"nowrap"},M=function(b){return b.dirty!==V||b.dirty===V&&b.element.parentNode.clientWidth!==b.availableWidth},L=function(b){var t=J.getComputedStyle(b.element,null);return b.currentFontSize=parseFloat(t.getPropertyValue("font-size")),b.display=t.getPropertyValue("display"),b.whiteSpace=t.getPropertyValue("white-space"),!0},Q=function(b){var t=!1;return!b.preStyleTestCompleted&&(/inline-/.test(b.display)||(t=!0,b.display="inline-block"),b.whiteSpace!=="nowrap"&&(t=!0,b.whiteSpace="nowrap"),b.preStyleTestCompleted=!0,t)},C=function(b){b.element.style.whiteSpace=b.whiteSpace,b.element.style.display=b.display,b.element.style.fontSize=b.currentFontSize+"px"},T=function(b){b.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:b.previousFontSize,newValue:b.currentFontSize,scaleFactor:b.currentFontSize/b.previousFontSize}}))},v=function(b,t){return function(N0){b.dirty=t,b.active&&A(N0)}},p=function(b){return function(){E=E.filter(function(t){return t.element!==b.element}),b.observeMutations&&b.observer.disconnect(),b.element.style.whiteSpace=b.originalStyle.whiteSpace,b.element.style.display=b.originalStyle.display,b.element.style.fontSize=b.originalStyle.fontSize}},u=function(b){return function(){b.active||(b.active=!0,A())}},z0=function(b){return function(){return b.active=!1}},F=function(b){b.observeMutations&&(b.observer=new MutationObserver(v(b,z)),b.observer.observe(b.element,b.observeMutations))},n={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in J&&{subtree:!0,childList:!0,characterData:!0}},s=null,r=function(){J.clearTimeout(s),s=J.setTimeout(w(V),_0.observeWindowDelay)},B0=["resize","orientationchange"];return Object.defineProperty(_0,"observeWindow",{set:function(b){var t="".concat(b?"add":"remove","EventListener");B0.forEach(function(N0){J[t](N0,r)})}}),_0.observeWindow=!0,_0.observeWindowDelay=100,_0.fitAll=w(H),_0}function i0(b,t){var N0=Object.assign({},n,t),v8=b.map(function(l0){var v1=Object.assign({},N0,{element:l0,active:!0});return function(h0){h0.originalStyle={whiteSpace:h0.element.style.whiteSpace,display:h0.element.style.display,fontSize:h0.element.style.fontSize},F(h0),h0.newbie=!0,h0.dirty=!0,E.push(h0)}(v1),{element:l0,fit:v(v1,H),unfreeze:u(v1),freeze:z0(v1),unsubscribe:p(v1)}});return A(),v8}function _0(b){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof b=="string"?i0(Y(document.querySelectorAll(b)),t):i0([b],t)[0]}}(typeof window>"u"?null:window),QJ=oW;/*! + `,E=`%c${[z,W].filter(Boolean).join(":")}`;if(typeof J.args[0]==="string")Y(`${E}%c ${J.args[0]}`,F,"",...J.args.slice(1));else Y(E,F,...J.args)}}function N3(J={}){return t6.createConsola({reporters:J.reporters||[new _3({})],prompt(W,z={}){if(z.type==="confirm")return Promise.resolve(confirm(W));return Promise.resolve(prompt(W))},...J})}var E3=N3();w1.Consola=t6.Consola;w1.LogLevels=t6.LogLevels;w1.LogTypes=t6.LogTypes;w1.consola=E3;w1.createConsola=N3;w1.default=E3});var $G={};JK($G,{clientLogger:()=>B,audioManager:()=>h});var YK=function(J){if(J){var Y=function(b){return[].slice.call(b)},W=0,z=1,V=2,F=3,E=[],A=null,N="requestAnimationFrame"in J?function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};J.cancelAnimationFrame(A);var t=function(){return G(E.filter(function(O0){return O0.dirty&&O0.active}))};if(b.sync)return t();A=J.requestAnimationFrame(t)}:function(){},I=function(b){return function(t){E.forEach(function(O0){return O0.dirty=b}),N(t)}},G=function(b){b.filter(function(O0){return!O0.styleComputed}).forEach(function(O0){O0.styleComputed=L(O0)}),b.filter(Q).forEach(C);var t=b.filter(P);t.forEach(R),t.forEach(function(O0){C(O0),U(O0)}),t.forEach(T)},U=function(b){return b.dirty=W},R=function(b){b.availableWidth=b.element.parentNode.clientWidth,b.currentWidth=b.element.scrollWidth,b.previousFontSize=b.currentFontSize,b.currentFontSize=Math.min(Math.max(b.minSize,b.availableWidth/b.currentWidth*b.previousFontSize),b.maxSize),b.whiteSpace=b.multiLine&&b.currentFontSize===b.minSize?"normal":"nowrap"},P=function(b){return b.dirty!==V||b.dirty===V&&b.element.parentNode.clientWidth!==b.availableWidth},L=function(b){var t=J.getComputedStyle(b.element,null);return b.currentFontSize=parseFloat(t.getPropertyValue("font-size")),b.display=t.getPropertyValue("display"),b.whiteSpace=t.getPropertyValue("white-space"),!0},Q=function(b){var t=!1;return!b.preStyleTestCompleted&&(/inline-/.test(b.display)||(t=!0,b.display="inline-block"),b.whiteSpace!=="nowrap"&&(t=!0,b.whiteSpace="nowrap"),b.preStyleTestCompleted=!0,t)},C=function(b){b.element.style.whiteSpace=b.whiteSpace,b.element.style.display=b.display,b.element.style.fontSize=b.currentFontSize+"px"},T=function(b){b.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:b.previousFontSize,newValue:b.currentFontSize,scaleFactor:b.currentFontSize/b.previousFontSize}}))},v=function(b,t){return function(O0){b.dirty=t,b.active&&N(O0)}},p=function(b){return function(){E=E.filter(function(t){return t.element!==b.element}),b.observeMutations&&b.observer.disconnect(),b.element.style.whiteSpace=b.originalStyle.whiteSpace,b.element.style.display=b.originalStyle.display,b.element.style.fontSize=b.originalStyle.fontSize}},u=function(b){return function(){b.active||(b.active=!0,N())}},z0=function(b){return function(){return b.active=!1}},q=function(b){b.observeMutations&&(b.observer=new MutationObserver(v(b,z)),b.observer.observe(b.element,b.observeMutations))},n={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in J&&{subtree:!0,childList:!0,characterData:!0}},s=null,r=function(){J.clearTimeout(s),s=J.setTimeout(I(V),_0.observeWindowDelay)},B0=["resize","orientationchange"];return Object.defineProperty(_0,"observeWindow",{set:function(b){var t="".concat(b?"add":"remove","EventListener");B0.forEach(function(O0){J[t](O0,r)})}}),_0.observeWindow=!0,_0.observeWindowDelay=100,_0.fitAll=I(F),_0}function i0(b,t){var O0=Object.assign({},n,t),v8=b.map(function(l0){var v1=Object.assign({},O0,{element:l0,active:!0});return function(h0){h0.originalStyle={whiteSpace:h0.element.style.whiteSpace,display:h0.element.style.display,fontSize:h0.element.style.fontSize},q(h0),h0.newbie=!0,h0.dirty=!0,E.push(h0)}(v1),{element:l0,fit:v(v1,F),unfreeze:u(v1),freeze:z0(v1),unsubscribe:p(v1)}});return N(),v8}function _0(b){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof b=="string"?i0(Y(document.querySelectorAll(b)),t):i0([b],t)[0]}}(typeof window>"u"?null:window),TJ=YK;/*! * jQuery JavaScript Library v4.0.0 * https://jquery.com/ * @@ -34,10 +34,10 @@ * https://jquery.com/license/ * * Date: 2026-01-18T00:20Z - */function eW(J,Y){if(typeof J>"u"||!J.document)throw Error("jQuery requires a window with a document");var W=[],z=Object.getPrototypeOf,V=W.slice,H=W.flat?function(Z){return W.flat.call(Z)}:function(Z){return W.concat.apply([],Z)},E=W.push,_=W.indexOf,A={},w=A.toString,G=A.hasOwnProperty,U=G.toString,O=U.call(Object),M={};function L(Z){if(Z==null)return Z+"";return typeof Z==="object"?A[w.call(Z)]||"object":typeof Z}function Q(Z){return Z!=null&&Z===Z.window}function C(Z){var K=!!Z&&Z.length,X=L(Z);if(typeof Z==="function"||Q(Z))return!1;return X==="array"||K===0||typeof K==="number"&&K>0&&K-1 in Z}var T=J.document,v={type:!0,src:!0,nonce:!0,noModule:!0};function p(Z,K,X){X=X||T;var $,q=X.createElement("script");q.text=Z;for($ in v)if(K&&K[$])q[$]=K[$];if(X.head.appendChild(q).parentNode)q.parentNode.removeChild(q)}var u="4.0.0",z0=/HTML$/i,F=function(Z,K){return new F.fn.init(Z,K)};if(F.fn=F.prototype={jquery:u,constructor:F,length:0,toArray:function(){return V.call(this)},get:function(Z){if(Z==null)return V.call(this);return Z<0?this[Z+this.length]:this[Z]},pushStack:function(Z){var K=F.merge(this.constructor(),Z);return K.prevObject=this,K},each:function(Z){return F.each(this,Z)},map:function(Z){return this.pushStack(F.map(this,function(K,X){return Z.call(K,X,K)}))},slice:function(){return this.pushStack(V.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(F.grep(this,function(Z,K){return(K+1)%2}))},odd:function(){return this.pushStack(F.grep(this,function(Z,K){return K%2}))},eq:function(Z){var K=this.length,X=+Z+(Z<0?K:0);return this.pushStack(X>=0&&X+~]|"+r+")"+r+"*"),N0=new RegExp(r+"|>"),v8=/[+~]/,l0=T.documentElement,v1=l0.matches||l0.msMatchesSelector;function h0(){var Z=[];function K(X,$){if(Z.push(X+" ")>F.expr.cacheLength)delete K[Z.shift()];return K[X+" "]=$}return K}function ZJ(Z){return Z&&typeof Z.getElementsByTagName<"u"&&Z}var DY="\\["+r+"*("+b+")(?:"+r+"*([*^$|!~]?=)"+r+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+b+"))|)"+r+"*\\]",IY=":("+b+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+DY+")*)|.*)\\)|)",WJ={ID:new RegExp("^#("+b+")"),CLASS:new RegExp("^\\.("+b+")"),TAG:new RegExp("^("+b+"|[*])"),ATTR:new RegExp("^"+DY),PSEUDO:new RegExp("^"+IY),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i")},I3=new RegExp(IY),w3=new RegExp("\\\\[\\da-fA-F]{1,6}"+r+"?|\\\\([^\\r\\n\\f])","g"),j3=function(Z,K){var X="0x"+Z.slice(1)-65536;if(K)return K;return X<0?String.fromCharCode(X+65536):String.fromCharCode(X>>10|55296,X&1023|56320)};function M1(Z){return Z.replace(w3,j3)}function b8(Z){F.error("Syntax error, unrecognized expression: "+Z)}var x3=new RegExp("^"+r+"*,"+r+"*"),wY=h0();function h8(Z,K){var X,$,q,N,R,P,S,D=wY[Z+" "];if(D)return K?0:D.slice(0);R=Z,P=[],S=F.expr.preFilter;while(R){if(!X||($=x3.exec(R))){if($)R=R.slice($[0].length)||R;P.push(q=[])}if(X=!1,$=t.exec(R))X=$.shift(),q.push({value:X,type:$[0].replace(_0," ")}),R=R.slice(X.length);for(N in WJ)if(($=F.expr.match[N].exec(R))&&(!S[N]||($=S[N]($))))X=$.shift(),q.push({value:X,type:N,matches:$}),R=R.slice(X.length);if(!X)break}if(K)return R.length;return R?b8(Z):wY(Z,P).slice(0)}var k3={ATTR:function(Z){if(Z[1]=M1(Z[1]),Z[3]=M1(Z[3]||Z[4]||Z[5]||""),Z[2]==="~=")Z[3]=" "+Z[3]+" ";return Z.slice(0,4)},CHILD:function(Z){if(Z[1]=Z[1].toLowerCase(),Z[1].slice(0,3)==="nth"){if(!Z[3])b8(Z[0]);Z[4]=+(Z[4]?Z[5]+(Z[6]||1):2*(Z[3]==="even"||Z[3]==="odd")),Z[5]=+(Z[7]+Z[8]||Z[3]==="odd")}else if(Z[3])b8(Z[0]);return Z},PSEUDO:function(Z){var K,X=!Z[6]&&Z[2];if(WJ.CHILD.test(Z[0]))return null;if(Z[3])Z[2]=Z[4]||Z[5]||"";else if(X&&I3.test(X)&&(K=h8(X,!0))&&(K=X.indexOf(")",X.length-K)-X.length))Z[0]=Z[0].slice(0,K),Z[2]=X.slice(0,K);return Z.slice(0,3)}};function U6(Z){var K=0,X=Z.length,$="";for(;K1)},removeAttr:function(Z){return this.each(function(){F.removeAttr(this,Z)})}}),F.extend({attr:function(Z,K,X){var $,q,N=Z.nodeType;if(N===3||N===8||N===2)return;if(typeof Z.getAttribute>"u")return F.prop(Z,K,X);if(N!==1||!F.isXMLDoc(Z))q=F.attrHooks[K.toLowerCase()];if(X!==void 0){if(X===null||X===!1&&K.toLowerCase().indexOf("aria-")!==0){F.removeAttr(Z,K);return}if(q&&"set"in q&&($=q.set(Z,X,K))!==void 0)return $;return Z.setAttribute(K,X),X}if(q&&"get"in q&&($=q.get(Z,K))!==null)return $;return $=Z.getAttribute(K),$==null?void 0:$},attrHooks:{},removeAttr:function(Z,K){var X,$=0,q=K&&K.match(Y1);if(q&&Z.nodeType===1)while(X=q[$++])Z.removeAttribute(X)}}),B0)F.attrHooks.type={set:function(Z,K){if(K==="radio"&&n(Z,"input")){var X=Z.value;if(Z.setAttribute("type",K),X)Z.value=X;return K}}};var v3=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function b3(Z,K){if(K){if(Z==="\x00")return"�";return Z.slice(0,-1)+"\\"+Z.charCodeAt(Z.length-1).toString(16)+" "}return"\\"+Z}F.escapeSelector=function(Z){return(Z+"").replace(v3,b3)};var{sort:h3,splice:y3}=W,KJ;function f3(Z,K){if(Z===K)return KJ=!0,0;var X=!Z.compareDocumentPosition-!K.compareDocumentPosition;if(X)return X;if(X=(Z.ownerDocument||Z)==(K.ownerDocument||K)?Z.compareDocumentPosition(K):1,X&1){if(Z==T||Z.ownerDocument==T&&F.contains(T,Z))return-1;if(K==T||K.ownerDocument==T&&F.contains(T,K))return 1;return 0}return X&4?-1:1}F.uniqueSort=function(Z){var K,X=[],$=0,q=0;if(KJ=!1,h3.call(Z,f3),KJ){while(K=Z[q++])if(K===Z[q])$=X.push(q);while($--)y3.call(Z,X[$],1)}return Z},F.fn.uniqueSort=function(){return this.pushStack(F.uniqueSort(V.apply(this)))};var W8,V6,y0,jY,q1,H1=0,g3=0,xY=h0(),kY=h0(),$6=h0(),m3=new RegExp(r+"+","g"),p3=new RegExp("^"+b+"$"),vY=F.extend({needsContext:new RegExp("^"+r+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+r+"*((?:-\\d)?\\d*)"+r+"*\\)|)(?=[^-]|$)","i")},WJ),u3=/^(?:input|select|textarea|button)$/i,c3=/^h\d$/i,d3=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,i3=function(){K8()},l3=F6(function(Z){return Z.disabled===!0&&n(Z,"fieldset")},{dir:"parentNode",next:"legend"});function n0(Z,K,X,$){var q,N,R,P,S,D,j,k=K&&K.ownerDocument,I=K?K.nodeType:9;if(X=X||[],typeof Z!=="string"||!Z||I!==1&&I!==9&&I!==11)return X;if(!$){if(K8(K),K=K||y0,q1){if(I!==11&&(S=d3.exec(Z))){if(q=S[1]){if(I===9){if(R=K.getElementById(q))E.call(X,R);return X}else if(k&&(R=k.getElementById(q))&&F.contains(K,R))return E.call(X,R),X}else if(S[2])return E.apply(X,K.getElementsByTagName(Z)),X;else if((q=S[3])&&K.getElementsByClassName)return E.apply(X,K.getElementsByClassName(q)),X}if(!$6[Z+" "]&&(!i0||!i0.test(Z))){if(j=Z,k=K,I===1&&(N0.test(Z)||t.test(Z))){if(k=v8.test(Z)&&ZJ(K.parentNode)||K,k!=K||B0)if(P=K.getAttribute("id"))P=F.escapeSelector(P);else K.setAttribute("id",P=F.expando);D=h8(Z),N=D.length;while(N--)D[N]=(P?"#"+P:":scope")+" "+U6(D[N]);j=D.join(",")}try{return E.apply(X,k.querySelectorAll(j)),X}catch(x){$6(Z,!0)}finally{if(P===F.expando)K.removeAttribute("id")}}}}return yY(Z.replace(_0,"$1"),K,X,$)}function Z1(Z){return Z[F.expando]=!0,Z}function n3(Z){return function(K){return n(K,"input")&&K.type===Z}}function s3(Z){return function(K){return(n(K,"input")||n(K,"button"))&&K.type===Z}}function bY(Z){return function(K){if("form"in K){if(K.parentNode&&K.disabled===!1){if("label"in K)if("label"in K.parentNode)return K.parentNode.disabled===Z;else return K.disabled===Z;return K.isDisabled===Z||K.isDisabled!==!Z&&l3(K)===Z}return K.disabled===Z}else if("label"in K)return K.disabled===Z;return!1}}function b1(Z){return Z1(function(K){return K=+K,Z1(function(X,$){var q,N=Z([],X.length,K),R=N.length;while(R--)if(X[q=N[R]])X[q]=!($[q]=X[q])})})}function K8(Z){var K,X=Z?Z.ownerDocument||Z:T;if(X==y0||X.nodeType!==9)return;if(y0=X,jY=y0.documentElement,q1=!F.isXMLDoc(y0),B0&&T!=y0&&(K=y0.defaultView)&&K.top!==K)K.addEventListener("unload",i3)}n0.matches=function(Z,K){return n0(Z,null,null,K)},n0.matchesSelector=function(Z,K){if(K8(Z),q1&&!$6[K+" "]&&(!i0||!i0.test(K)))try{return v1.call(Z,K)}catch(X){$6(K,!0)}return n0(K,y0,null,[Z]).length>0},F.expr={cacheLength:50,createPseudo:Z1,match:vY,find:{ID:function(Z,K){if(typeof K.getElementById<"u"&&q1){var X=K.getElementById(Z);return X?[X]:[]}},TAG:function(Z,K){if(typeof K.getElementsByTagName<"u")return K.getElementsByTagName(Z);else return K.querySelectorAll(Z)},CLASS:function(Z,K){if(typeof K.getElementsByClassName<"u"&&q1)return K.getElementsByClassName(Z)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:k3,filter:{ID:function(Z){var K=M1(Z);return function(X){return X.getAttribute("id")===K}},TAG:function(Z){var K=M1(Z).toLowerCase();return Z==="*"?function(){return!0}:function(X){return n(X,K)}},CLASS:function(Z){var K=xY[Z+" "];return K||(K=new RegExp("(^|"+r+")"+Z+"("+r+"|$)"))&&xY(Z,function(X){return K.test(typeof X.className==="string"&&X.className||typeof X.getAttribute<"u"&&X.getAttribute("class")||"")})},ATTR:function(Z,K,X){return function($){var q=F.attr($,Z);if(q==null)return K==="!=";if(!K)return!0;if(q+="",K==="=")return q===X;if(K==="!=")return q!==X;if(K==="^=")return X&&q.indexOf(X)===0;if(K==="*=")return X&&q.indexOf(X)>-1;if(K==="$=")return X&&q.slice(-X.length)===X;if(K==="~=")return(" "+q.replace(m3," ")+" ").indexOf(X)>-1;if(K==="|=")return q===X||q.slice(0,X.length+1)===X+"-";return!1}},CHILD:function(Z,K,X,$,q){var N=Z.slice(0,3)!=="nth",R=Z.slice(-4)!=="last",P=K==="of-type";return $===1&&q===0?function(S){return!!S.parentNode}:function(S,D,j){var k,I,x,g,i,d=N!==R?"nextSibling":"previousSibling",q0=S.parentNode,V0=P&&S.nodeName.toLowerCase(),x0=!j&&!P,C0=!1;if(q0){if(N){while(d){x=S;while(x=x[d])if(P?n(x,V0):x.nodeType===1)return!1;i=d=Z==="only"&&!i&&"nextSibling"}return!0}if(i=[R?q0.firstChild:q0.lastChild],R&&x0){I=q0[F.expando]||(q0[F.expando]={}),k=I[Z]||[],g=k[0]===H1&&k[1],C0=g&&k[2],x=g&&q0.childNodes[g];while(x=++g&&x&&x[d]||(C0=g=0)||i.pop())if(x.nodeType===1&&++C0&&x===S){I[Z]=[H1,g,C0];break}}else{if(x0)I=S[F.expando]||(S[F.expando]={}),k=I[Z]||[],g=k[0]===H1&&k[1],C0=g;if(C0===!1){while(x=++g&&x&&x[d]||(C0=g=0)||i.pop())if((P?n(x,V0):x.nodeType===1)&&++C0){if(x0)I=x[F.expando]||(x[F.expando]={}),I[Z]=[H1,C0];if(x===S)break}}}return C0-=q,C0===$||C0%$===0&&C0/$>=0}}},PSEUDO:function(Z,K){var X=F.expr.pseudos[Z]||F.expr.setFilters[Z.toLowerCase()]||b8("unsupported pseudo: "+Z);if(X[F.expando])return X(K);return X}},pseudos:{not:Z1(function(Z){var K=[],X=[],$=UJ(Z.replace(_0,"$1"));return $[F.expando]?Z1(function(q,N,R,P){var S,D=$(q,null,P,[]),j=q.length;while(j--)if(S=D[j])q[j]=!(N[j]=S)}):function(q,N,R){return K[0]=q,$(K,null,R,X),K[0]=null,!X.pop()}}),has:Z1(function(Z){return function(K){return n0(Z,K).length>0}}),contains:Z1(function(Z){return Z=M1(Z),function(K){return(K.textContent||F.text(K)).indexOf(Z)>-1}}),lang:Z1(function(Z){if(!p3.test(Z||""))b8("unsupported lang: "+Z);return Z=M1(Z).toLowerCase(),function(K){var X;do if(X=q1?K.lang:K.getAttribute("xml:lang")||K.getAttribute("lang"))return X=X.toLowerCase(),X===Z||X.indexOf(Z+"-")===0;while((K=K.parentNode)&&K.nodeType===1);return!1}}),target:function(Z){var K=J.location&&J.location.hash;return K&&K.slice(1)===Z.id},root:function(Z){return Z===jY},focus:function(Z){return Z===y0.activeElement&&y0.hasFocus()&&!!(Z.type||Z.href||~Z.tabIndex)},enabled:bY(!1),disabled:bY(!0),checked:function(Z){return n(Z,"input")&&!!Z.checked||n(Z,"option")&&!!Z.selected},selected:function(Z){if(B0&&Z.parentNode)Z.parentNode.selectedIndex;return Z.selected===!0},empty:function(Z){for(Z=Z.firstChild;Z;Z=Z.nextSibling)if(Z.nodeType<6)return!1;return!0},parent:function(Z){return!F.expr.pseudos.empty(Z)},header:function(Z){return c3.test(Z.nodeName)},input:function(Z){return u3.test(Z.nodeName)},button:function(Z){return n(Z,"input")&&Z.type==="button"||n(Z,"button")},text:function(Z){return n(Z,"input")&&Z.type==="text"},first:b1(function(){return[0]}),last:b1(function(Z,K){return[K-1]}),eq:b1(function(Z,K,X){return[X<0?X+K:X]}),even:b1(function(Z,K){var X=0;for(;XK)$=K;else $=X;for(;--$>=0;)Z.push($);return Z}),gt:b1(function(Z,K,X){var $=X<0?X+K:X;for(;++$1?function(K,X,$){var q=Z.length;while(q--)if(!Z[q](K,X,$))return!1;return!0}:Z[0]}function r3(Z,K,X){var $=0,q=K.length;for(;$-1)R[j]=!(P[j]=I)}}else if(x=q6(x===P?x.splice(d,x.length):x),q)q(null,P,x,D);else E.apply(P,x)})}function XJ(Z){var K,X,$,q=Z.length,N=F.expr.relative[Z[0].type],R=N||F.expr.relative[" "],P=N?1:0,S=F6(function(k){return k===K},R,!0),D=F6(function(k){return _.call(K,k)>-1},R,!0),j=[function(k,I,x){var g=!N&&(x||I!=V6)||((K=I).nodeType?S(k,I,x):D(k,I,x));return K=null,g}];for(;P1&&zJ(j),P>1&&U6(Z.slice(0,P-1).concat({value:Z[P-2].type===" "?"*":""})).replace(_0,"$1"),X,P<$&&XJ(Z.slice(P,$)),$0,$=Z.length>0,q=function(N,R,P,S,D){var j,k,I,x=0,g="0",i=N&&[],d=[],q0=V6,V0=N||$&&F.expr.find.TAG("*",D),x0=H1+=q0==null?1:Math.random()||0.1;if(D)V6=R==y0||R||D;for(;(j=V0[g])!=null;g++){if($&&j){if(k=0,!R&&j.ownerDocument!=y0)K8(j),P=!q1;while(I=Z[k++])if(I(j,R||y0,P)){E.call(S,j);break}if(D)H1=x0}if(X){if(j=!I&&j)x--;if(N)i.push(j)}}if(x+=g,X&&g!==x){k=0;while(I=K[k++])I(i,d,R,P);if(N){if(x>0){while(g--)if(!(i[g]||d[g]))d[g]=s.call(S)}d=q6(d)}if(E.apply(S,d),D&&!N&&d.length>0&&x+K.length>1)F.uniqueSort(S)}if(D)H1=x0,V6=q0;return i};return X?Z1(q):q}function UJ(Z,K){var X,$=[],q=[],N=kY[Z+" "];if(!N){if(!K)K=h8(Z);X=K.length;while(X--)if(N=XJ(K[X]),N[F.expando])$.push(N);else q.push(N);N=kY(Z,a3(q,$)),N.selector=Z}return N}function yY(Z,K,X,$){var q,N,R,P,S,D=typeof Z==="function"&&Z,j=!$&&h8(Z=D.selector||Z);if(X=X||[],j.length===1){if(N=j[0]=j[0].slice(0),N.length>2&&(R=N[0]).type==="ID"&&K.nodeType===9&&q1&&F.expr.relative[N[1].type]){if(K=(F.expr.find.ID(M1(R.matches[0]),K)||[])[0],!K)return X;else if(D)K=K.parentNode;Z=Z.slice(N.shift().value.length)}q=vY.needsContext.test(Z)?0:N.length;while(q--){if(R=N[q],F.expr.relative[P=R.type])break;if(S=F.expr.find[P]){if($=S(M1(R.matches[0]),v8.test(N[0].type)&&ZJ(K.parentNode)||K)){if(N.splice(q,1),Z=$.length&&U6(N),!Z)return E.apply(X,$),X;break}}}}return(D||UJ(Z,j))($,K,!q1,X,!K||v8.test(Z)&&ZJ(K.parentNode)||K),X}K8(),F.find=n0,n0.compile=UJ,n0.select=yY,n0.setDocument=K8,n0.tokenize=h8;function z8(Z,K,X){var $=[],q=X!==void 0;while((Z=Z[K])&&Z.nodeType!==9)if(Z.nodeType===1){if(q&&F(Z).is(X))break;$.push(Z)}return $}function fY(Z,K){var X=[];for(;Z;Z=Z.nextSibling)if(Z.nodeType===1&&Z!==K)X.push(Z);return X}var gY=F.expr.match.needsContext,mY=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function pY(Z){return Z[0]==="<"&&Z[Z.length-1]===">"&&Z.length>=3}function VJ(Z,K,X){if(typeof K==="function")return F.grep(Z,function($,q){return!!K.call($,q,$)!==X});if(K.nodeType)return F.grep(Z,function($){return $===K!==X});if(typeof K!=="string")return F.grep(Z,function($){return _.call(K,$)>-1!==X});return F.filter(K,Z,X)}F.filter=function(Z,K,X){var $=K[0];if(X)Z=":not("+Z+")";if(K.length===1&&$.nodeType===1)return F.find.matchesSelector($,Z)?[$]:[];return F.find.matches(Z,F.grep(K,function(q){return q.nodeType===1}))},F.fn.extend({find:function(Z){var K,X,$=this.length,q=this;if(typeof Z!=="string")return this.pushStack(F(Z).filter(function(){for(K=0;K<$;K++)if(F.contains(q[K],this))return!0}));X=this.pushStack([]);for(K=0;K<$;K++)F.find(Z,q[K],X);return $>1?F.uniqueSort(X):X},filter:function(Z){return this.pushStack(VJ(this,Z||[],!1))},not:function(Z){return this.pushStack(VJ(this,Z||[],!0))},is:function(Z){return!!VJ(this,typeof Z==="string"&&gY.test(Z)?F(Z):Z||[],!1).length}});var H6,t3=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,o3=F.fn.init=function(Z,K){var X,$;if(!Z)return this;if(Z.nodeType)return this[0]=Z,this.length=1,this;else if(typeof Z==="function")return H6.ready!==void 0?H6.ready(Z):Z(F);else{if(X=Z+"",pY(X))X=[null,Z,null];else if(typeof Z==="string")X=t3.exec(Z);else return F.makeArray(Z,this);if(X&&(X[1]||!K))if(X[1]){if(K=K instanceof F?K[0]:K,F.merge(this,F.parseHTML(X[1],K&&K.nodeType?K.ownerDocument||K:T,!0)),mY.test(X[1])&&F.isPlainObject(K))for(X in K)if(typeof this[X]==="function")this[X](K[X]);else this.attr(X,K[X]);return this}else{if($=T.getElementById(X[2]),$)this[0]=$,this.length=1;return this}else if(!K||K.jquery)return(K||H6).find(Z);else return this.constructor(K).find(Z)}};o3.prototype=F.fn,H6=F(T);var e3=/^(?:parents|prev(?:Until|All))/,JW={children:!0,contents:!0,next:!0,prev:!0};F.fn.extend({has:function(Z){var K=F(Z,this),X=K.length;return this.filter(function(){var $=0;for(;$-1:X.nodeType===1&&F.find.matchesSelector(X,Z))){N.push(X);break}}return this.pushStack(N.length>1?F.uniqueSort(N):N)},index:function(Z){if(!Z)return this[0]&&this[0].parentNode?this.first().prevAll().length:-1;if(typeof Z==="string")return _.call(F(Z),this[0]);return _.call(this,Z.jquery?Z[0]:Z)},add:function(Z,K){return this.pushStack(F.uniqueSort(F.merge(this.get(),F(Z,K))))},addBack:function(Z){return this.add(Z==null?this.prevObject:this.prevObject.filter(Z))}});function uY(Z,K){while((Z=Z[K])&&Z.nodeType!==1);return Z}F.each({parent:function(Z){var K=Z.parentNode;return K&&K.nodeType!==11?K:null},parents:function(Z){return z8(Z,"parentNode")},parentsUntil:function(Z,K,X){return z8(Z,"parentNode",X)},next:function(Z){return uY(Z,"nextSibling")},prev:function(Z){return uY(Z,"previousSibling")},nextAll:function(Z){return z8(Z,"nextSibling")},prevAll:function(Z){return z8(Z,"previousSibling")},nextUntil:function(Z,K,X){return z8(Z,"nextSibling",X)},prevUntil:function(Z,K,X){return z8(Z,"previousSibling",X)},siblings:function(Z){return fY((Z.parentNode||{}).firstChild,Z)},children:function(Z){return fY(Z.firstChild)},contents:function(Z){if(Z.contentDocument!=null&&z(Z.contentDocument))return Z.contentDocument;if(n(Z,"template"))Z=Z.content||Z;return F.merge([],Z.childNodes)}},function(Z,K){F.fn[Z]=function(X,$){var q=F.map(this,K,X);if(Z.slice(-5)!=="Until")$=X;if($&&typeof $==="string")q=F.filter($,q);if(this.length>1){if(!JW[Z])F.uniqueSort(q);if(e3.test(Z))q.reverse()}return this.pushStack(q)}});function YW(Z){var K={};return F.each(Z.match(Y1)||[],function(X,$){K[$]=!0}),K}F.Callbacks=function(Z){Z=typeof Z==="string"?YW(Z):F.extend({},Z);var K,X,$,q,N=[],R=[],P=-1,S=function(){q=q||Z.once,$=K=!0;for(;R.length;P=-1){X=R.shift();while(++P-1)if(N.splice(I,1),I<=P)P--}),this},has:function(j){return j?F.inArray(j,N)>-1:N.length>0},empty:function(){if(N)N=[];return this},disable:function(){return q=R=[],N=X="",this},disabled:function(){return!N},lock:function(){if(q=R=[],!X&&!K)N=X="";return this},locked:function(){return!!q},fireWith:function(j,k){if(!q){if(k=k||[],k=[j,k.slice?k.slice():k],R.push(k),!K)S()}return this},fire:function(){return D.fireWith(this,arguments),this},fired:function(){return!!$}};return D};function G8(Z){return Z}function B6(Z){throw Z}function cY(Z,K,X,$){var q;try{if(Z&&typeof(q=Z.promise)==="function")q.call(Z).done(K).fail(X);else if(Z&&typeof(q=Z.then)==="function")q.call(Z,K,X);else K.apply(void 0,[Z].slice($))}catch(N){X(N)}}F.extend({Deferred:function(Z){var K=[["notify","progress",F.Callbacks("memory"),F.Callbacks("memory"),2],["resolve","done",F.Callbacks("once memory"),F.Callbacks("once memory"),0,"resolved"],["reject","fail",F.Callbacks("once memory"),F.Callbacks("once memory"),1,"rejected"]],X="pending",$={state:function(){return X},always:function(){return q.done(arguments).fail(arguments),this},catch:function(N){return $.then(null,N)},pipe:function(){var N=arguments;return F.Deferred(function(R){F.each(K,function(P,S){var D=typeof N[S[4]]==="function"&&N[S[4]];q[S[1]](function(){var j=D&&D.apply(this,arguments);if(j&&typeof j.promise==="function")j.promise().progress(R.notify).done(R.resolve).fail(R.reject);else R[S[0]+"With"](this,D?[j]:arguments)})}),N=null}).promise()},then:function(N,R,P){var S=0;function D(j,k,I,x){return function(){var g=this,i=arguments,d=function(){var V0,x0;if(j=S){if(I!==B6)g=void 0,i=[V0];k.rejectWith(g,i)}}};if(j)q0();else{if(F.Deferred.getErrorHook)q0.error=F.Deferred.getErrorHook();J.setTimeout(q0)}}}return F.Deferred(function(j){K[0][3].add(D(0,j,typeof P==="function"?P:G8,j.notifyWith)),K[1][3].add(D(0,j,typeof N==="function"?N:G8)),K[2][3].add(D(0,j,typeof R==="function"?R:B6))}).promise()},promise:function(N){return N!=null?F.extend(N,$):$}},q={};if(F.each(K,function(N,R){var P=R[2],S=R[5];if($[R[1]]=P.add,S)P.add(function(){X=S},K[3-N][2].disable,K[3-N][3].disable,K[0][2].lock,K[0][3].lock);P.add(R[3].fire),q[R[0]]=function(){return q[R[0]+"With"](this===q?void 0:this,arguments),this},q[R[0]+"With"]=P.fireWith}),$.promise(q),Z)Z.call(q,q);return q},when:function(Z){var K=arguments.length,X=K,$=Array(X),q=V.call(arguments),N=F.Deferred(),R=function(P){return function(S){if($[P]=this,q[P]=arguments.length>1?V.call(arguments):S,!--K)N.resolveWith($,q)}};if(K<=1){if(cY(Z,N.done(R(X)).resolve,N.reject,!K),N.state()==="pending"||typeof(q[X]&&q[X].then)==="function")return N.then()}while(X--)cY(q[X],R(X),N.reject);return N.promise()}});var ZW=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;F.Deferred.exceptionHook=function(Z,K){if(Z&&ZW.test(Z.name))J.console.warn("jQuery.Deferred exception",Z,K)},F.readyException=function(Z){J.setTimeout(function(){throw Z})};var $J=F.Deferred();F.fn.ready=function(Z){return $J.then(Z).catch(function(K){F.readyException(K)}),this},F.extend({isReady:!1,readyWait:1,ready:function(Z){if(Z===!0?--F.readyWait:F.isReady)return;if(F.isReady=!0,Z!==!0&&--F.readyWait>0)return;$J.resolveWith(T,[F])}}),F.ready.then=$J.then;function N6(){T.removeEventListener("DOMContentLoaded",N6),J.removeEventListener("load",N6),F.ready()}if(T.readyState!=="loading")J.setTimeout(F.ready);else T.addEventListener("DOMContentLoaded",N6),J.addEventListener("load",N6);var WW=/-([a-z])/g;function KW(Z,K){return K.toUpperCase()}function h1(Z){return Z.replace(WW,KW)}function y8(Z){return Z.nodeType===1||Z.nodeType===9||!+Z.nodeType}function f8(){this.expando=F.expando+f8.uid++}f8.uid=1,f8.prototype={cache:function(Z){var K=Z[this.expando];if(!K){if(K=Object.create(null),y8(Z))if(Z.nodeType)Z[this.expando]=K;else Object.defineProperty(Z,this.expando,{value:K,configurable:!0})}return K},set:function(Z,K,X){var $,q=this.cache(Z);if(typeof K==="string")q[h1(K)]=X;else for($ in K)q[h1($)]=K[$];return X},get:function(Z,K){return K===void 0?this.cache(Z):Z[this.expando]&&Z[this.expando][h1(K)]},access:function(Z,K,X){if(K===void 0||K&&typeof K==="string"&&X===void 0)return this.get(Z,K);return this.set(Z,K,X),X!==void 0?X:K},remove:function(Z,K){var X,$=Z[this.expando];if($===void 0)return;if(K!==void 0){if(Array.isArray(K))K=K.map(h1);else K=h1(K),K=K in $?[K]:K.match(Y1)||[];X=K.length;while(X--)delete $[K[X]]}if(K===void 0||F.isEmptyObject($))if(Z.nodeType)Z[this.expando]=void 0;else delete Z[this.expando]},hasData:function(Z){var K=Z[this.expando];return K!==void 0&&!F.isEmptyObject(K)}};var l=new f8,w0=new f8,zW=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,GW=/[A-Z]/g;function XW(Z){if(Z==="true")return!0;if(Z==="false")return!1;if(Z==="null")return null;if(Z===+Z+"")return+Z;if(zW.test(Z))return JSON.parse(Z);return Z}function dY(Z,K,X){var $;if(X===void 0&&Z.nodeType===1)if($="data-"+K.replace(GW,"-$&").toLowerCase(),X=Z.getAttribute($),typeof X==="string"){try{X=XW(X)}catch(q){}w0.set(Z,K,X)}else X=void 0;return X}F.extend({hasData:function(Z){return w0.hasData(Z)||l.hasData(Z)},data:function(Z,K,X){return w0.access(Z,K,X)},removeData:function(Z,K){w0.remove(Z,K)},_data:function(Z,K,X){return l.access(Z,K,X)},_removeData:function(Z,K){l.remove(Z,K)}}),F.fn.extend({data:function(Z,K){var X,$,q,N=this[0],R=N&&N.attributes;if(Z===void 0){if(this.length){if(q=w0.get(N),N.nodeType===1&&!l.get(N,"hasDataAttrs")){X=R.length;while(X--)if(R[X]){if($=R[X].name,$.indexOf("data-")===0)$=h1($.slice(5)),dY(N,$,q[$])}l.set(N,"hasDataAttrs",!0)}}return q}if(typeof Z==="object")return this.each(function(){w0.set(this,Z)});return F1(this,function(P){var S;if(N&&P===void 0){if(S=w0.get(N,Z),S!==void 0)return S;if(S=dY(N,Z),S!==void 0)return S;return}this.each(function(){w0.set(this,Z,P)})},null,K,arguments.length>1,null,!0)},removeData:function(Z){return this.each(function(){w0.remove(this,Z)})}}),F.extend({queue:function(Z,K,X){var $;if(Z){if(K=(K||"fx")+"queue",$=l.get(Z,K),X)if(!$||Array.isArray(X))$=l.set(Z,K,F.makeArray(X));else $.push(X);return $||[]}},dequeue:function(Z,K){K=K||"fx";var X=F.queue(Z,K),$=X.length,q=X.shift(),N=F._queueHooks(Z,K),R=function(){F.dequeue(Z,K)};if(q==="inprogress")q=X.shift(),$--;if(q){if(K==="fx")X.unshift("inprogress");delete N.stop,q.call(Z,R,N)}if(!$&&N)N.empty.fire()},_queueHooks:function(Z,K){var X=K+"queueHooks";return l.get(Z,X)||l.set(Z,X,{empty:F.Callbacks("once memory").add(function(){l.remove(Z,[K+"queue",X])})})}}),F.fn.extend({queue:function(Z,K){var X=2;if(typeof Z!=="string")K=Z,Z="fx",X--;if(arguments.length\x20\t\r\n\f]*)/i,B1={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr","tbody","table"]};B1.tbody=B1.tfoot=B1.colgroup=B1.caption=B1.thead,B1.th=B1.td;function j0(Z,K){var X;if(typeof Z.getElementsByTagName<"u")X=W.slice.call(Z.getElementsByTagName(K||"*"));else if(typeof Z.querySelectorAll<"u")X=Z.querySelectorAll(K||"*");else X=[];if(K===void 0||K&&n(Z,K))return F.merge([Z],X);return X}var rY=/^$|^module$|\/(?:java|ecma)script/i;function qJ(Z,K){var X=0,$=Z.length;for(;X<$;X++)l.set(Z[X],"globalEval",!K||l.get(K[X],"globalEval"))}var HW=/<|&#?\w+;/;function aY(Z,K,X,$,q){var N,R,P,S,D,j,k=K.createDocumentFragment(),I=[],x=0,g=Z.length;for(;x-1)R=R.appendChild(K.createElement(S[j]));R.innerHTML=F.htmlPrefilter(N),F.merge(I,R.childNodes),R=k.firstChild,R.textContent=""}k.textContent="",x=0;while(N=I[x++]){if($&&F.inArray(N,$)>-1){if(q)q.push(N);continue}if(D=m8(N),R=j0(k.appendChild(N),"script"),D)qJ(R);if(X){j=0;while(N=R[j++])if(rY.test(N.type||""))X.push(N)}}return k}function BW(Z){return Z.type=(Z.getAttribute("type")!==null)+"/"+Z.type,Z}function NW(Z){if((Z.type||"").slice(0,5)==="true/")Z.type=Z.type.slice(5);else Z.removeAttribute("type");return Z}function U8(Z,K,X,$){K=H(K);var q,N,R,P,S,D,j=0,k=Z.length,I=k-1,x=K[0],g=typeof x==="function";if(g)return Z.each(function(i){var d=Z.eq(i);K[0]=x.call(this,i,d.html()),U8(d,K,X,$)});if(k){if(q=aY(K,Z[0].ownerDocument,!1,Z,$),N=q.firstChild,q.childNodes.length===1)q=N;if(N||$){R=F.map(j0(q,"script"),BW),P=R.length;for(;j=1)){for(;D!==this;D=D.parentNode||this)if(D.nodeType===1&&!(Z.type==="click"&&D.disabled===!0)){N=[],R={};for(X=0;X-1:F.find(q,this,null,[D]).length;if(R[q])N.push($)}if(N.length)P.push({elem:D,handlers:N})}}if(D=this,S0)qJ(R,!S&&j0(Z,"script"));return P},cleanData:function(Z){var K,X,$,q=F.event.special,N=0;for(;(X=Z[N])!==void 0;N++)if(y8(X)){if(K=X[l.expando]){if(K.events)for($ in K.events)if(q[$])F.event.remove(X,$);else F.removeEvent(X,$,K.handle);X[l.expando]=void 0}if(X[w0.expando])X[w0.expando]=void 0}}}),F.fn.extend({detach:function(Z){return J9(this,Z,!0)},remove:function(Z){return J9(this,Z)},text:function(Z){return F1(this,function(K){return K===void 0?F.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9)this.textContent=K})},null,Z,arguments.length)},append:function(){return U8(this,arguments,function(Z){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var K=oY(this,Z);K.appendChild(Z)}})},prepend:function(){return U8(this,arguments,function(Z){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var K=oY(this,Z);K.insertBefore(Z,K.firstChild)}})},before:function(){return U8(this,arguments,function(Z){if(this.parentNode)this.parentNode.insertBefore(Z,this)})},after:function(){return U8(this,arguments,function(Z){if(this.parentNode)this.parentNode.insertBefore(Z,this.nextSibling)})},empty:function(){var Z,K=0;for(;(Z=this[K])!=null;K++)if(Z.nodeType===1)F.cleanData(j0(Z,!1)),Z.textContent="";return this},clone:function(Z,K){return Z=Z==null?!1:Z,K=K==null?Z:K,this.map(function(){return F.clone(this,Z,K)})},html:function(Z){return F1(this,function(K){var X=this[0]||{},$=0,q=this.length;if(K===void 0&&X.nodeType===1)return X.innerHTML;if(typeof K==="string"&&!OW.test(K)&&!B1[(sY.exec(K)||["",""])[1].toLowerCase()]){K=F.htmlPrefilter(K);try{for(;$=0)S+=Math.max(0,Math.ceil(Z["offset"+K[0].toUpperCase()+K.slice(1)]-N-S-P-0.5))||0;return S+D}function $9(Z,K,X){var $=E6(Z),q=B0||X,N=q&&F.css(Z,"boxSizing",!1,$)==="border-box",R=N,P=Y9(Z,K,$),S="offset"+K[0].toUpperCase()+K.slice(1);if(RW.test(P)){if(!X)return P;P="auto"}if((P==="auto"||B0&&N||!M.reliableColDimensions()&&n(Z,"col")||!M.reliableTrDimensions()&&n(Z,"tr"))&&Z.getClientRects().length){if(N=F.css(Z,"boxSizing",!1,$)==="border-box",R=S in Z,R)P=Z[S]}return P=parseFloat(P)||0,P+V9(Z,K,X||(N?"border":"content"),R,$,P)+"px"}F.extend({cssHooks:{},style:function(Z,K,X,$){if(!Z||Z.nodeType===3||Z.nodeType===8||!Z.style)return;var q,N,R,P=FJ(K),S=BJ.test(K),D=Z.style;if(!S)K=NJ(P);if(R=F.cssHooks[K]||F.cssHooks[P],X!==void 0){if(N=typeof X,N==="string"&&(q=g8.exec(X))&&q[1])X=lY(Z,K,q),N="number";if(X==null||X!==X)return;if(N==="number")X+=q&&q[3]||(R6(P)?"px":"");if(B0&&X===""&&K.indexOf("background")===0)D[K]="inherit";if(!R||!("set"in R)||(X=R.set(Z,X,$))!==void 0)if(S)D.setProperty(K,X);else D[K]=X}else{if(R&&"get"in R&&(q=R.get(Z,!1,$))!==void 0)return q;return D[K]}},css:function(Z,K,X,$){var q,N,R,P=FJ(K),S=BJ.test(K);if(!S)K=NJ(P);if(R=F.cssHooks[K]||F.cssHooks[P],R&&"get"in R)q=R.get(Z,!0,X);if(q===void 0)q=Y9(Z,K,$);if(q==="normal"&&K in X9)q=X9[K];if(X===""||X)return N=parseFloat(q),X===!0||isFinite(N)?N||0:q;return q}}),F.each(["height","width"],function(Z,K){F.cssHooks[K]={get:function(X,$,q){if($)return F.css(X,"display")==="none"?_W(X,EW,function(){return $9(X,K,q)}):$9(X,K,q)},set:function(X,$,q){var N,R=E6(X),P=q&&F.css(X,"boxSizing",!1,R)==="border-box",S=q?V9(X,K,q,P,R):0;if(S&&(N=g8.exec($))&&(N[3]||"px")!=="px")X.style[K]=$,$=F.css(X,K);return U9(X,$,S)}}}),F.each({margin:"",padding:"",border:"Width"},function(Z,K){if(F.cssHooks[Z+K]={expand:function(X){var $=0,q={},N=typeof X==="string"?X.split(" "):[X];for(;$<4;$++)q[Z+S1[$]+K]=N[$]||N[$-2]||N[0];return q}},Z!=="margin")F.cssHooks[Z+K].set=U9}),F.fn.extend({css:function(Z,K){return F1(this,function(X,$,q){var N,R,P={},S=0;if(Array.isArray($)){N=E6(X),R=$.length;for(;S1)}});function u0(Z,K,X,$,q){return new u0.prototype.init(Z,K,X,$,q)}F.Tween=u0,u0.prototype={constructor:u0,init:function(Z,K,X,$,q,N){this.elem=Z,this.prop=X,this.easing=q||F.easing._default,this.options=K,this.start=this.now=this.cur(),this.end=$,this.unit=N||(R6(X)?"px":"")},cur:function(){var Z=u0.propHooks[this.prop];return Z&&Z.get?Z.get(this):u0.propHooks._default.get(this)},run:function(Z){var K,X=u0.propHooks[this.prop];if(this.options.duration)this.pos=K=F.easing[this.easing](Z,this.options.duration*Z,0,1,this.options.duration);else this.pos=K=Z;if(this.now=(this.end-this.start)*K+this.start,this.options.step)this.options.step.call(this.elem,this.now,this);if(X&&X.set)X.set(this);else u0.propHooks._default.set(this);return this}},u0.prototype.init.prototype=u0.prototype,u0.propHooks={_default:{get:function(Z){var K;if(Z.elem.nodeType!==1||Z.elem[Z.prop]!=null&&Z.elem.style[Z.prop]==null)return Z.elem[Z.prop];return K=F.css(Z.elem,Z.prop,""),!K||K==="auto"?0:K},set:function(Z){if(F.fx.step[Z.prop])F.fx.step[Z.prop](Z);else if(Z.elem.nodeType===1&&(F.cssHooks[Z.prop]||Z.elem.style[NJ(Z.prop)]!=null))F.style(Z.elem,Z.prop,Z.now+Z.unit);else Z.elem[Z.prop]=Z.now}}},F.easing={linear:function(Z){return Z},swing:function(Z){return 0.5-Math.cos(Z*Math.PI)/2},_default:"swing"},F.fx=u0.prototype.init,F.fx.step={};var F8,M6,MW=/^(?:toggle|show|hide)$/,SW=/queueHooks$/;function OJ(){if(M6){if(T.hidden===!1&&J.requestAnimationFrame)J.requestAnimationFrame(OJ);else J.setTimeout(OJ,13);F.fx.tick()}}function F9(){return J.setTimeout(function(){F8=void 0}),F8=Date.now()}function S6(Z,K){var X,$=0,q={height:Z};K=K?1:0;for(;$<4;$+=2-K)X=S1[$],q["margin"+X]=q["padding"+X]=Z;if(K)q.opacity=q.width=Z;return q}function q9(Z,K,X){var $,q=(s0.tweeners[K]||[]).concat(s0.tweeners["*"]),N=0,R=q.length;for(;N1)},removeProp:function(Z){return this.each(function(){delete this[F.propFix[Z]||Z]})}}),F.extend({prop:function(Z,K,X){var $,q,N=Z.nodeType;if(N===3||N===8||N===2)return;if(N!==1||!F.isXMLDoc(Z))K=F.propFix[K]||K,q=F.propHooks[K];if(X!==void 0){if(q&&"set"in q&&($=q.set(Z,X,K))!==void 0)return $;return Z[K]=X}if(q&&"get"in q&&($=q.get(Z,K))!==null)return $;return Z[K]},propHooks:{tabIndex:{get:function(Z){var K=Z.getAttribute("tabindex");if(K)return parseInt(K,10);if(QW.test(Z.nodeName)||TW.test(Z.nodeName)&&Z.href)return 0;return-1}}},propFix:{for:"htmlFor",class:"className"}}),B0)F.propHooks.selected={get:function(Z){var K=Z.parentNode;if(K&&K.parentNode)K.parentNode.selectedIndex;return null},set:function(Z){var K=Z.parentNode;if(K){if(K.selectedIndex,K.parentNode)K.parentNode.selectedIndex}}};F.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){F.propFix[this.toLowerCase()]=this});function y1(Z){var K=Z.match(Y1)||[];return K.join(" ")}function q8(Z){return Z.getAttribute&&Z.getAttribute("class")||""}function RJ(Z){if(Array.isArray(Z))return Z;if(typeof Z==="string")return Z.match(Y1)||[];return[]}if(F.fn.extend({addClass:function(Z){var K,X,$,q,N,R;if(typeof Z==="function")return this.each(function(P){F(this).addClass(Z.call(this,P,q8(this)))});if(K=RJ(Z),K.length)return this.each(function(){if($=q8(this),X=this.nodeType===1&&" "+y1($)+" ",X){for(N=0;N-1)X=X.replace(" "+q+" "," ")}if(R=y1(X),$!==R)this.setAttribute("class",R)}});return this},toggleClass:function(Z,K){var X,$,q,N;if(typeof Z==="function")return this.each(function(R){F(this).toggleClass(Z.call(this,R,q8(this),K),K)});if(typeof K==="boolean")return K?this.addClass(Z):this.removeClass(Z);if(X=RJ(Z),X.length)return this.each(function(){N=F(this);for(q=0;q-1)return!0;return!1}}),F.fn.extend({val:function(Z){var K,X,$,q=this[0];if(!arguments.length){if(q){if(K=F.valHooks[q.type]||F.valHooks[q.nodeName.toLowerCase()],K&&"get"in K&&(X=K.get(q,"value"))!==void 0)return X;return X=q.value,X==null?"":X}return}return $=typeof Z==="function",this.each(function(N){var R;if(this.nodeType!==1)return;if($)R=Z.call(this,N,F(this).val());else R=Z;if(R==null)R="";else if(typeof R==="number")R+="";else if(Array.isArray(R))R=F.map(R,function(P){return P==null?"":P+""});if(K=F.valHooks[this.type]||F.valHooks[this.nodeName.toLowerCase()],!K||!("set"in K)||K.set(this,R,"value")===void 0)this.value=R})}}),F.extend({valHooks:{select:{get:function(Z){var K,X,$,q=Z.options,N=Z.selectedIndex,R=Z.type==="select-one",P=R?null:[],S=R?N+1:q.length;if(N<0)$=S;else $=R?N:0;for(;$-1)X=!0;if(!X)Z.selectedIndex=-1;return N}}}}),B0)F.valHooks.option={get:function(Z){var K=Z.getAttribute("value");return K!=null?K:y1(F.text(Z))}};F.each(["radio","checkbox"],function(){F.valHooks[this]={set:function(Z,K){if(Array.isArray(K))return Z.checked=F.inArray(F(Z).val(),K)>-1}}});var H9=/^(?:focusinfocus|focusoutblur)$/,B9=function(Z){Z.stopPropagation()};F.extend(F.event,{trigger:function(Z,K,X,$){var q,N,R,P,S,D,j,k,I=[X||T],x=G.call(Z,"type")?Z.type:Z,g=G.call(Z,"namespace")?Z.namespace.split("."):[];if(N=k=R=X=X||T,X.nodeType===3||X.nodeType===8)return;if(H9.test(x+F.event.triggered))return;if(x.indexOf(".")>-1)g=x.split("."),x=g.shift(),g.sort();if(S=x.indexOf(":")<0&&"on"+x,Z=Z[F.expando]?Z:new F.Event(x,typeof Z==="object"&&Z),Z.isTrigger=$?2:3,Z.namespace=g.join("."),Z.rnamespace=Z.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,Z.result=void 0,!Z.target)Z.target=X;if(K=K==null?[Z]:F.makeArray(K,[Z]),j=F.event.special[x]||{},!$&&j.trigger&&j.trigger.apply(X,K)===!1)return;if(!$&&!j.noBubble&&!Q(X)){if(P=j.delegateType||x,!H9.test(P+x))N=N.parentNode;for(;N;N=N.parentNode)I.push(N),R=N;if(R===(X.ownerDocument||T))I.push(R.defaultView||R.parentWindow||J)}q=0;while((N=I[q++])&&!Z.isPropagationStopped()){if(k=N,Z.type=q>1?P:j.bindType||x,D=(l.get(N,"events")||Object.create(null))[Z.type]&&l.get(N,"handle"),D)D.apply(N,K);if(D=S&&N[S],D&&D.apply&&y8(N)){if(Z.result=D.apply(N,K),Z.result===!1)Z.preventDefault()}}if(Z.type=x,!$&&!Z.isDefaultPrevented()){if((!j._default||j._default.apply(I.pop(),K)===!1)&&y8(X)){if(S&&typeof X[x]==="function"&&!Q(X)){if(R=X[S],R)X[S]=null;if(F.event.triggered=x,Z.isPropagationStopped())k.addEventListener(x,B9);if(X[x](),Z.isPropagationStopped())k.removeEventListener(x,B9);if(F.event.triggered=void 0,R)X[S]=R}}}return Z.result},simulate:function(Z,K,X){var $=F.extend(new F.Event,X,{type:Z,isSimulated:!0});F.event.trigger($,null,K)}}),F.fn.extend({trigger:function(Z,K){return this.each(function(){F.event.trigger(Z,K,this)})},triggerHandler:function(Z,K){var X=this[0];if(X)return F.event.trigger(Z,K,X,!0)}});var p8=J.location,N9={guid:Date.now()},_J=/\?/;F.parseXML=function(Z){var K,X;if(!Z||typeof Z!=="string")return null;try{K=new J.DOMParser().parseFromString(Z,"text/xml")}catch($){}if(X=K&&K.getElementsByTagName("parsererror")[0],!K||X)F.error("Invalid XML: "+(X?F.map(X.childNodes,function($){return $.textContent}).join(` -`):Z));return K};var LW=/\[\]$/,O9=/\r?\n/g,DW=/^(?:submit|button|image|reset|file)$/i,IW=/^(?:input|select|textarea|keygen)/i;function AJ(Z,K,X,$){var q;if(Array.isArray(K))F.each(K,function(N,R){if(X||LW.test(Z))$(Z,R);else AJ(Z+"["+(typeof R==="object"&&R!=null?N:"")+"]",R,X,$)});else if(!X&&L(K)==="object")for(q in K)AJ(Z+"["+q+"]",K[q],X,$);else $(Z,K)}F.param=function(Z,K){var X,$=[],q=function(N,R){var P=typeof R==="function"?R():R;$[$.length]=encodeURIComponent(N)+"="+encodeURIComponent(P==null?"":P)};if(Z==null)return"";if(Array.isArray(Z)||Z.jquery&&!F.isPlainObject(Z))F.each(Z,function(){q(this.name,this.value)});else for(X in Z)AJ(X,Z[X],K,q);return $.join("&")},F.fn.extend({serialize:function(){return F.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var Z=F.prop(this,"elements");return Z?F.makeArray(Z):this}).filter(function(){var Z=this.type;return this.name&&!F(this).is(":disabled")&&IW.test(this.nodeName)&&!DW.test(Z)&&(this.checked||!_6.test(Z))}).map(function(Z,K){var X=F(this).val();if(X==null)return null;if(Array.isArray(X))return F.map(X,function($){return{name:K.name,value:$.replace(O9,`\r -`)}});return{name:K.name,value:X.replace(O9,`\r -`)}}).get()}});var wW=/%20/g,jW=/#.*$/,xW=/([?&])_=[^&]*/,kW=/^(.*?):[ \t]*([^\r\n]*)$/mg,vW=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,bW=/^(?:GET|HEAD)$/,hW=/^\/\//,R9={},EJ={},_9="*/".concat("*"),MJ=T.createElement("a");MJ.href=p8.href;function A9(Z){return function(K,X){if(typeof K!=="string")X=K,K="*";var $,q=0,N=K.toLowerCase().match(Y1)||[];if(typeof X==="function")while($=N[q++])if($[0]==="+")$=$.slice(1)||"*",(Z[$]=Z[$]||[]).unshift(X);else(Z[$]=Z[$]||[]).push(X)}}function E9(Z,K,X,$){var q={},N=Z===EJ;function R(P){var S;return q[P]=!0,F.each(Z[P]||[],function(D,j){var k=j(K,X,$);if(typeof k==="string"&&!N&&!q[k])return K.dataTypes.unshift(k),R(k),!1;else if(N)return!(S=k)}),S}return R(K.dataTypes[0])||!q["*"]&&R("*")}function SJ(Z,K){var X,$,q=F.ajaxSettings.flatOptions||{};for(X in K)if(K[X]!==void 0)(q[X]?Z:$||($={}))[X]=K[X];if($)F.extend(!0,Z,$);return Z}function yW(Z,K,X){var $,q,N,R,P=Z.contents,S=Z.dataTypes;while(S[0]==="*")if(S.shift(),$===void 0)$=Z.mimeType||K.getResponseHeader("Content-Type");if($){for(q in P)if(P[q]&&P[q].test($)){S.unshift(q);break}}if(S[0]in X)N=S[0];else{for(q in X){if(!S[0]||Z.converters[q+" "+S[0]]){N=q;break}if(!R)R=q}N=N||R}if(N){if(N!==S[0])S.unshift(N);return X[N]}}function fW(Z,K,X,$){var q,N,R,P,S,D={},j=Z.dataTypes.slice();if(j[1])for(R in Z.converters)D[R.toLowerCase()]=Z.converters[R];N=j.shift();while(N){if(Z.responseFields[N])X[Z.responseFields[N]]=K;if(!S&&$&&Z.dataFilter)K=Z.dataFilter(K,Z.dataType);if(S=N,N=j.shift(),N){if(N==="*")N=S;else if(S!=="*"&&S!==N){if(R=D[S+" "+N]||D["* "+N],!R){for(q in D)if(P=q.split(" "),P[1]===N){if(R=D[S+" "+P[0]]||D["* "+P[0]],R){if(R===!0)R=D[q];else if(D[q]!==!0)N=P[0],j.unshift(P[1]);break}}}if(R!==!0)if(R&&Z.throws)K=R(K);else try{K=R(K)}catch(k){return{state:"parsererror",error:R?k:"No conversion from "+S+" to "+N}}}}}return{state:"success",data:K}}F.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:p8.href,type:"GET",isLocal:vW.test(p8.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":_9,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":F.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(Z,K){return K?SJ(SJ(Z,F.ajaxSettings),K):SJ(F.ajaxSettings,Z)},ajaxPrefilter:A9(R9),ajaxTransport:A9(EJ),ajax:function(Z,K){if(typeof Z==="object")K=Z,Z=void 0;K=K||{};var X,$,q,N,R,P,S,D,j,k,I=F.ajaxSetup({},K),x=I.context||I,g=I.context&&(x.nodeType||x.jquery)?F(x):F.event,i=F.Deferred(),d=F.Callbacks("once memory"),q0=I.statusCode||{},V0={},x0={},C0="canceled",e={readyState:0,getResponseHeader:function(Z0){var O0;if(S){if(!N){N={};while(O0=kW.exec(q))N[O0[1].toLowerCase()+" "]=(N[O0[1].toLowerCase()+" "]||[]).concat(O0[2])}O0=N[Z0.toLowerCase()+" "]}return O0==null?null:O0.join(", ")},getAllResponseHeaders:function(){return S?q:null},setRequestHeader:function(Z0,O0){if(S==null)Z0=x0[Z0.toLowerCase()]=x0[Z0.toLowerCase()]||Z0,V0[Z0]=O0;return this},overrideMimeType:function(Z0){if(S==null)I.mimeType=Z0;return this},statusCode:function(Z0){var O0;if(Z0)if(S)e.always(Z0[e.status]);else for(O0 in Z0)q0[O0]=[q0[O0],Z0[O0]];return this},abort:function(Z0){var O0=Z0||C0;if(X)X.abort(O0);return P6(0,O0),this}};if(i.promise(e),I.url=((Z||I.url||p8.href)+"").replace(hW,p8.protocol+"//"),I.type=K.method||K.type||I.method||I.type,I.dataTypes=(I.dataType||"*").toLowerCase().match(Y1)||[""],I.crossDomain==null){P=T.createElement("a");try{P.href=I.url,P.href=P.href,I.crossDomain=MJ.protocol+"//"+MJ.host!==P.protocol+"//"+P.host}catch(Z0){I.crossDomain=!0}}if(E9(R9,I,K,e),I.data&&I.processData&&typeof I.data!=="string")I.data=F.param(I.data,I.traditional);if(S)return e;if(D=F.event&&I.global,D&&F.active++===0)F.event.trigger("ajaxStart");if(I.type=I.type.toUpperCase(),I.hasContent=!bW.test(I.type),$=I.url.replace(jW,""),!I.hasContent){if(k=I.url.slice($.length),I.data&&(I.processData||typeof I.data==="string"))$+=(_J.test($)?"&":"?")+I.data,delete I.data;if(I.cache===!1)$=$.replace(xW,"$1"),k=(_J.test($)?"&":"?")+"_="+N9.guid+++k;I.url=$+k}else if(I.data&&I.processData&&(I.contentType||"").indexOf("application/x-www-form-urlencoded")===0)I.data=I.data.replace(wW,"+");if(I.ifModified){if(F.lastModified[$])e.setRequestHeader("If-Modified-Since",F.lastModified[$]);if(F.etag[$])e.setRequestHeader("If-None-Match",F.etag[$])}if(I.data&&I.hasContent&&I.contentType!==!1||K.contentType)e.setRequestHeader("Content-Type",I.contentType);e.setRequestHeader("Accept",I.dataTypes[0]&&I.accepts[I.dataTypes[0]]?I.accepts[I.dataTypes[0]]+(I.dataTypes[0]!=="*"?", "+_9+"; q=0.01":""):I.accepts["*"]);for(j in I.headers)e.setRequestHeader(j,I.headers[j]);if(I.beforeSend&&(I.beforeSend.call(x,e,I)===!1||S))return e.abort();if(C0="abort",d.add(I.complete),e.done(I.success),e.fail(I.error),X=E9(EJ,I,K,e),!X)P6(-1,"No Transport");else{if(e.readyState=1,D)g.trigger("ajaxSend",[e,I]);if(S)return e;if(I.async&&I.timeout>0)R=J.setTimeout(function(){e.abort("timeout")},I.timeout);try{S=!1,X.send(V0,P6)}catch(Z0){if(S)throw Z0;P6(-1,Z0)}}function P6(Z0,O0,P9,uW){var C1,CJ,u8,H8,B8,W1=O0;if(S)return;if(S=!0,R)J.clearTimeout(R);if(X=void 0,q=uW||"",e.readyState=Z0>0?4:0,C1=Z0>=200&&Z0<300||Z0===304,P9)H8=yW(I,e,P9);if(!C1&&F.inArray("script",I.dataTypes)>-1&&F.inArray("json",I.dataTypes)<0)I.converters["text script"]=function(){};if(H8=fW(I,H8,e,C1),C1){if(I.ifModified){if(B8=e.getResponseHeader("Last-Modified"),B8)F.lastModified[$]=B8;if(B8=e.getResponseHeader("etag"),B8)F.etag[$]=B8}if(Z0===204||I.type==="HEAD")W1="nocontent";else if(Z0===304)W1="notmodified";else W1=H8.state,CJ=H8.data,u8=H8.error,C1=!u8}else if(u8=W1,Z0||!W1){if(W1="error",Z0<0)Z0=0}if(e.status=Z0,e.statusText=(O0||W1)+"",C1)i.resolveWith(x,[CJ,W1,e]);else i.rejectWith(x,[e,W1,u8]);if(e.statusCode(q0),q0=void 0,D)g.trigger(C1?"ajaxSuccess":"ajaxError",[e,I,C1?CJ:u8]);if(d.fireWith(x,[e,W1]),D){if(g.trigger("ajaxComplete",[e,I]),!--F.active)F.event.trigger("ajaxStop")}}return e},getJSON:function(Z,K,X){return F.get(Z,K,X,"json")},getScript:function(Z,K){return F.get(Z,void 0,K,"script")}}),F.each(["get","post"],function(Z,K){F[K]=function(X,$,q,N){if(typeof $==="function"||$===null)N=N||q,q=$,$=void 0;return F.ajax(F.extend({url:X,type:K,dataType:N,data:$,success:q},F.isPlainObject(X)&&X))}}),F.ajaxPrefilter(function(Z){var K;for(K in Z.headers)if(K.toLowerCase()==="content-type")Z.contentType=Z.headers[K]||""}),F._evalUrl=function(Z,K,X){return F.ajax({url:Z,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,scriptAttrs:K.crossOrigin?{crossOrigin:K.crossOrigin}:void 0,converters:{"text script":function(){}},dataFilter:function($){F.globalEval($,K,X)}})},F.fn.extend({wrapAll:function(Z){var K;if(this[0]){if(typeof Z==="function")Z=Z.call(this[0]);if(K=F(Z,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode)K.insertBefore(this[0]);K.map(function(){var X=this;while(X.firstElementChild)X=X.firstElementChild;return X}).append(this)}return this},wrapInner:function(Z){if(typeof Z==="function")return this.each(function(K){F(this).wrapInner(Z.call(this,K))});return this.each(function(){var K=F(this),X=K.contents();if(X.length)X.wrapAll(Z);else K.append(Z)})},wrap:function(Z){var K=typeof Z==="function";return this.each(function(X){F(this).wrapAll(K?Z.call(this,X):Z)})},unwrap:function(Z){return this.parent(Z).not("body").each(function(){F(this).replaceWith(this.childNodes)}),this}}),F.expr.pseudos.hidden=function(Z){return!F.expr.pseudos.visible(Z)},F.expr.pseudos.visible=function(Z){return!!(Z.offsetWidth||Z.offsetHeight||Z.getClientRects().length)},F.ajaxSettings.xhr=function(){return new J.XMLHttpRequest};var gW={0:200};F.ajaxTransport(function(Z){var K;return{send:function(X,$){var q,N=Z.xhr();if(N.open(Z.type,Z.url,Z.async,Z.username,Z.password),Z.xhrFields)for(q in Z.xhrFields)N[q]=Z.xhrFields[q];if(Z.mimeType&&N.overrideMimeType)N.overrideMimeType(Z.mimeType);if(!Z.crossDomain&&!X["X-Requested-With"])X["X-Requested-With"]="XMLHttpRequest";for(q in X)N.setRequestHeader(q,X[q]);K=function(R){return function(){if(K)if(K=N.onload=N.onerror=N.onabort=N.ontimeout=null,R==="abort")N.abort();else if(R==="error")$(N.status,N.statusText);else $(gW[N.status]||N.status,N.statusText,(N.responseType||"text")==="text"?{text:N.responseText}:{binary:N.response},N.getAllResponseHeaders())}},N.onload=K(),N.onabort=N.onerror=N.ontimeout=K("error"),K=K("abort");try{N.send(Z.hasContent&&Z.data||null)}catch(R){if(K)throw R}},abort:function(){if(K)K()}}});function M9(Z){return Z.scriptAttrs||!Z.headers&&(Z.crossDomain||Z.async&&F.inArray("json",Z.dataTypes)<0)}F.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},converters:{"text script":function(Z){return F.globalEval(Z),Z}}}),F.ajaxPrefilter("script",function(Z){if(Z.cache===void 0)Z.cache=!1;if(M9(Z))Z.type="GET"}),F.ajaxTransport("script",function(Z){if(M9(Z)){var K,X;return{send:function($,q){K=F(" \ No newline at end of file diff --git a/resources/radio/client/screen.lua b/resources/radio/client/screen.lua new file mode 100644 index 000000000..0dfa4fe03 --- /dev/null +++ b/resources/radio/client/screen.lua @@ -0,0 +1,407 @@ +-- ┌──────────────────────────────────────────────────────────────┐ +-- │ Tommy's Radio - 3D Vehicle Radio Screen │ +-- │ Renders the AFX-1500 screen on the vehicle radio prop │ +-- │ using AddReplaceTexture to swap the prop's screen material │ +-- │ with a DUI browser. Zero jitter — the DUI content renders │ +-- │ as part of the 3D model geometry itself. │ +-- │ Active only when the player owns a vehicle that has an │ +-- │ attached radio prop (see positions.lua). │ +-- │ Documentation: https://docs.timmygstudios.com/docs/tommys-radio │ +-- └──────────────────────────────────────────────────────────────┘ + +-- Server has nothing to do here +if IsDuplicityVersion() then return end + + +-- ══════════════════════════════════════════════════════════════════ +-- CONFIGURATION +-- ══════════════════════════════════════════════════════════════════ + +-- The original texture dictionary and texture name on the AFX1500 prop model. +-- AddReplaceTexture swaps this material with the DUI content at runtime. +local ORIG_TXD = "afx1500" +local ORIG_TEX = "C_Screen" + +local DUI_RES_W = 480 -- DUI browser resolution (width) +local DUI_RES_H = 240 -- DUI browser resolution (height) + +-- LED texture names on the AFX1500 prop and their lit colors (RGBA 0-255). +local LED_TEXTURES = { + power = { tex = "C_Red", onR = 255, onG = 0, onB = 0 }, + connected = { tex = "C_Green", onR = 0, onG = 255, onB = 0 }, + transmit = { tex = "C_Orange", onR = 255, onG = 153, onB = 0 }, +} +-- Dim color when LED is off +local LED_OFF_R, LED_OFF_G, LED_OFF_B = 20, 20, 20 + + +-- ══════════════════════════════════════════════════════════════════ +-- DUI STATE +-- ══════════════════════════════════════════════════════════════════ + +local screenDui = nil +local screenTxdName = "radio_scr_txd" +local screenTexName = "radio_scr_tex" +local textureActive = false + +local screenActive = false +local screenVehicle = nil +local screenProp = nil + +-- LED runtime texture state: { [key] = { txdName, texName, currentlyOn } } +local ledState = {} + +-- Cache of the last message sent for each action type, so we can +-- replay the full display state when the DUI is first created. +local lastScreenState = {} + + +-- ══════════════════════════════════════════════════════════════════ +-- LED TEXTURE HELPERS +-- Creates a 4x4 solid-color runtime texture for each LED and +-- uses AddReplaceTexture to swap the prop's LED materials. +-- ══════════════════════════════════════════════════════════════════ + +--- Fills a runtime texture with a solid color by setting every pixel. +local function fillTexture(tex, w, h, r, g, b, a) + for y = 0, h - 1 do + for x = 0, w - 1 do + SetRuntimeTexturePixel(tex, x, y, r, g, b, a) + end + end + CommitRuntimeTexture(tex) +end + +--- Creates the runtime textures for all LEDs and sets them to the off color. +local function createLedTextures() + for key, cfg in pairs(LED_TEXTURES) do + local txdName = "radio_led_" .. key .. "_txd" + local texName = "radio_led_" .. key .. "_tex" + + local txd = CreateRuntimeTxd(txdName) + local tex = CreateRuntimeTexture(txd, texName, 4, 4) + fillTexture(tex, 4, 4, LED_OFF_R, LED_OFF_G, LED_OFF_B, 255) + + AddReplaceTexture(ORIG_TXD, cfg.tex, txdName, texName) + + ledState[key] = { + txdName = txdName, + texName = texName, + texHandle = tex, + currentlyOn = false, + } + end +end + +--- Removes all LED texture replacements and clears state. +local function destroyLedTextures() + for key, st in pairs(ledState) do + local cfg = LED_TEXTURES[key] + if cfg then + RemoveReplaceTexture(ORIG_TXD, cfg.tex) + end + end + ledState = {} +end + +--- Sets a single LED to its on or off color. +local function setLedColor(key, on) + local st = ledState[key] + local cfg = LED_TEXTURES[key] + if not st or not cfg then return end + if st.currentlyOn == on then return end -- no change + + if on then + fillTexture(st.texHandle, 4, 4, cfg.onR, cfg.onG, cfg.onB, 255) + else + fillTexture(st.texHandle, 4, 4, LED_OFF_R, LED_OFF_G, LED_OFF_B, 255) + end + st.currentlyOn = on +end + + +-- ══════════════════════════════════════════════════════════════════ +-- DUI LIFECYCLE +-- ══════════════════════════════════════════════════════════════════ + +local function createScreenDui() + if screenDui then return end + + local resName = GetCurrentResourceName() + local url = "https://cfx-nui-" .. resName .. "/client/screen.html" + screenDui = CreateDui(url, DUI_RES_W, DUI_RES_H) + + local handle = GetDuiHandle(screenDui) + local txd = CreateRuntimeTxd(screenTxdName) + CreateRuntimeTextureFromDuiHandle(txd, screenTexName, handle) + + -- Swap the prop's screen texture with the DUI content + AddReplaceTexture(ORIG_TXD, ORIG_TEX, screenTxdName, screenTexName) + textureActive = true + + -- Create LED textures and sync to cached state + createLedTextures() + for key, _ in pairs(LED_TEXTURES) do + local cached = lastScreenState['setLED_' .. key] + if cached and cached.mode then + setLedColor(key, true) + end + end + + -- Give the browser a moment to load, then replay cached state. + -- Skip 'alert' — alerts are transient (3s auto-clear) and should + -- not be replayed on screen activation or power-on. + Citizen.SetTimeout(300, function() + if screenDui then + for key, msg in pairs(lastScreenState) do + if key ~= 'alert' then + SendDuiMessage(screenDui, json.encode(msg)) + end + end + end + end) +end + +local function destroyScreenDui() + destroyLedTextures() + if textureActive then + RemoveReplaceTexture(ORIG_TXD, ORIG_TEX) + textureActive = false + end + if screenDui then + DestroyDui(screenDui) + screenDui = nil + end +end + +--- Sends a JSON message to the DUI browser (no-op if DUI is inactive). +local function sendToScreen(msg) + if screenDui then + SendDuiMessage(screenDui, json.encode(msg)) + end +end + + +-- ══════════════════════════════════════════════════════════════════ +-- DISPLAY FUNCTION WRAPPING +-- Intercepts the global display functions defined in shared.lua +-- to mirror every NUI update into the 3D DUI screen. +-- Cached so the full state can be replayed on DUI creation. +-- ══════════════════════════════════════════════════════════════════ + +-- dispUpdate — main display text, zone, channel +local _origDispUpdate = dispUpdate +function dispUpdate(btn01, btn02, btn03, btn04, btn05, ln01, ln02, zone, channel) + _origDispUpdate(btn01, btn02, btn03, btn04, btn05, ln01, ln02, zone, channel) + local msg = { + action = 'dispUpdate', + display = { + btn01 = btn01, btn02 = btn02, btn03 = btn03, + btn04 = btn04, btn05 = btn05, + ln01 = ln01, ln02 = ln02, + zone = zone, channel = channel, + } + } + lastScreenState['dispUpdate'] = msg + sendToScreen(msg) +end + +-- setBatt +local _origSetBatt = setBatt +function setBatt(status) + _origSetBatt(status) + local msg = { action = 'setBatt', status = status } + lastScreenState['setBatt'] = msg + sendToScreen(msg) +end + +-- setSignal +local _origSetSignal = setSignal +function setSignal(status) + _origSetSignal(status) + local msg = { action = 'setSignal', status = status } + lastScreenState['setSignal'] = msg + sendToScreen(msg) +end + +-- setGPS +local _origSetGPS = setGPS +function setGPS(status) + _origSetGPS(status) + local msg = { action = 'setGPS', status = status } + lastScreenState['setGPS'] = msg + sendToScreen(msg) +end + +-- setTrunk +local _origSetTrunk = setTrunk +function setTrunk(status) + _origSetTrunk(status) + local msg = { action = 'setTrunk', status = status } + lastScreenState['setTrunk'] = msg + sendToScreen(msg) +end + +-- setScan +local _origSetScan = setScan +function setScan(status) + _origSetScan(status) + local msg = { action = 'setScan', status = status } + lastScreenState['setScan'] = msg + sendToScreen(msg) +end + +-- setWarn +local _origSetWarn = setWarn +function setWarn(status) + _origSetWarn(status) + local msg = { action = 'setWarn', status = status } + lastScreenState['setWarn'] = msg + sendToScreen(msg) +end + +-- setLED — also drives the 3D prop LED textures +local _origSetLED = setLED +function setLED(key, state) + _origSetLED(key, state) + local msg = { action = 'setLED', key = key, mode = state } + lastScreenState['setLED_' .. tostring(key)] = msg + sendToScreen(msg) + -- Update the prop's LED material color + setLedColor(key, state and true or false) +end + +-- updateTime — recompute the time string (mirrors shared.lua logic) +local _origUpdateTime = updateTime +function updateTime() + _origUpdateTime() + local msg + if RadioState and RadioState.power then + local hours = GetClockHours() + local minutes = GetClockMinutes() + local period = "AM" + if hours >= 12 then + period = "PM" + if hours > 12 then hours = hours - 12 end + elseif hours == 0 then + hours = 12 + end + msg = { action = 'setTime', time = string.format("%02d:%02d %s", hours, minutes, period) } + else + msg = { action = 'setTime', time = "" } + end + lastScreenState['setTime'] = msg + sendToScreen(msg) +end + +-- setTheme — sync dark/light mode to the 3D screen +-- resolveTheme is local in shared.lua, so we inline the Auto logic here. +local _origSetTheme = setTheme +function setTheme(theme) + _origSetTheme(theme) + local resolved = theme + if theme == "Auto" then + local h = GetClockHours() + resolved = (h >= 20 or h < 6) and "Dark" or "Light" + end + local msg = { action = 'setTheme', theme = resolved } + lastScreenState['setTheme'] = msg + sendToScreen(msg) +end + +-- setRadioConfig — forward model name so the DUI can load useAlertLineTS +local _origSetRadioConfig = setRadioConfig +function setRadioConfig(model) + _origSetRadioConfig(model) + local msg = { action = 'setRadioConfig', model = model } + lastScreenState['setRadioConfig'] = msg + sendToScreen(msg) +end + +-- showAlert +local _origShowAlert = showAlert +function showAlert(message, mode, color) + _origShowAlert(message, mode, color) + if not mode then mode = 'none' end + if not color and mode == 'none' then color = 'black' end + if not color then color = 'white' end + local msg = { action = 'alert', message = message, mode = mode, textColor = color } + lastScreenState['alert'] = msg + sendToScreen(msg) +end + + +-- ══════════════════════════════════════════════════════════════════ +-- VEHICLE OWNERSHIP LIFECYCLE +-- Watches playerOwnedVehicle (defined in shared.lua) and +-- activates the screen when the owned vehicle has a radio prop. +-- ══════════════════════════════════════════════════════════════════ + +Citizen.CreateThread(function() + while true do + Citizen.Wait(1000) + + local vehicle = playerOwnedVehicle + + if vehicle and DoesEntityExist(vehicle) then + -- Check if this vehicle has an attached radio prop + local prop = getAttachedRadioProp and getAttachedRadioProp(vehicle) or nil + + if prop and DoesEntityExist(prop) then + if not screenActive or screenVehicle ~= vehicle then + screenVehicle = vehicle + screenProp = prop + screenActive = true + createScreenDui() + end + elseif screenActive then + screenActive = false + screenVehicle = nil + screenProp = nil + destroyScreenDui() + end + elseif screenActive then + screenActive = false + screenVehicle = nil + screenProp = nil + destroyScreenDui() + end + end +end) + + +-- ══════════════════════════════════════════════════════════════════ +-- EVENT HOOKS +-- Catch LED changes that bypass the global setLED() function. +-- shared.lua line 9914: radioClient:setLED sends directly to NUI. +-- ══════════════════════════════════════════════════════════════════ + +AddEventHandler("radioClient:setLED", function(mode) + -- This event doesn't include a key — it's a general LED mode toggle. + -- Forward to the DUI and sync all prop LEDs based on the mode value. + if type(mode) == "table" then + -- mode might be a table of { key = state } pairs + for key, state in pairs(mode) do + setLedColor(key, state and true or false) + local msg = { action = 'setLED', key = key, mode = state } + lastScreenState['setLED_' .. tostring(key)] = msg + sendToScreen(msg) + end + elseif type(mode) == "boolean" then + -- Boolean: toggle all LEDs on/off + for key, _ in pairs(LED_TEXTURES) do + setLedColor(key, mode) + end + end +end) + + +-- ══════════════════════════════════════════════════════════════════ +-- CLEANUP +-- ══════════════════════════════════════════════════════════════════ + +AddEventHandler('onResourceStop', function(resourceName) + if GetCurrentResourceName() == resourceName then + destroyScreenDui() + end +end) diff --git a/resources/radio/config.lua b/resources/radio/config.lua index 4bd2ea7e7..c2d5a0347 100644 --- a/resources/radio/config.lua +++ b/resources/radio/config.lua @@ -1,9 +1,11 @@ -- Tommy's Radio System Configuration -- Documentation: https://docs.timmygstudios.com/docs/tommys-radio --- Config Version 4.0 - Use a website like https://www.diffchecker.com/ to compare configuration file changes +-- Config Version 4.3 - Use a website like https://www.diffchecker.com/ to compare configuration file changes Config = { + communityID = "egrpleo", -- This is so player's settings are unique to your server + -- ┌──────────────────────────────────────────────────────────────┐ -- │ RADIO LAYOUTS │ -- └──────────────────────────────────────────────────────────────┘ @@ -35,8 +37,18 @@ Config = { ["Air"] = "TXDF-9100", -- Per-spawn-code overrides (add as many as you need) - ["fbi2"] = "XPR-6500", - ["police"] = "XPR-6500", + ["fbi2"] = "XPR-6500", + ["police"] = "XPR-6500", + }, + + -- External vehicle resources that ship pre-configured radio prop positions. + -- Each resource listed here should define tRadioProp 'filename.json' + -- in its fxmanifest.lua. The JSON format matches client/prop_locations.json: + -- { "modelname": { "x":0, "y":0.7, "z":0.38, "rx":-270, "ry":0, "rz":-19 } } + -- Positions saved in-game via /radioattach take priority over external ones. + ExternalVehResources = { + -- "my-police-pack", + -- "my-fire-vehicles", }, -- ┌──────────────────────────────────────────────────────────────┐ @@ -48,33 +60,33 @@ Config = { controls = { -- Primary controls - talkRadioKey = "B", -- Push-to-talk - toggleRadioKey = "F6", -- Open / close the radio UI - closeRadioKey = "", -- Alternative close key - powerBtnKey = "", -- Toggle radio power on/off + talkRadioKey = "B", -- Push-to-talk + toggleRadioKey = "F6", -- Open / close the radio UI + closeRadioKey = "", -- Alternative close key + powerBtnKey = "", -- Toggle radio power on/off -- Channel & zone navigation - channelUpKey = "", - channelDownKey = "", - zoneUpKey = "", - zoneDownKey = "", + channelUpKey = "", + channelDownKey = "", + zoneUpKey = "", + zoneDownKey = "", -- Menu navigation - menuUpKey = "", - menuDownKey = "", - menuRightKey = "", - menuLeftKey = "", - menuHomeKey = "", - menuBtn1Key = "", - menuBtn2Key = "", - menuBtn3Key = "", + menuUpKey = "", + menuDownKey = "", + menuRightKey = "", + menuLeftKey = "", + menuHomeKey = "", + menuBtn1Key = "", + menuBtn2Key = "", + menuBtn3Key = "", -- Misc - emergencyBtnKey = "", -- Trigger emergency / panic button + emergencyBtnKey = "", -- Trigger emergency / panic button -- Radio style cycling - styleUpKey = "", - styleDownKey = "", + styleUpKey = "", + styleDownKey = "", -- Volume hotkeys voiceVolumeUpKey = "", @@ -92,20 +104,20 @@ Config = { -- Final connection string sent to clients. Include protocol and/or port -- if using a proxy (e.g., "https://proxy.example.com"). When empty, the -- server's auto-detected IP address and serverPort are used instead. - serverAddress = " ", + serverAddress = "", -- Port for the radio voice server and dispatch panel. Choose a port not -- used by other resources on your server. - serverPort = 012019, + serverPort = 7777, -- Secure token for radio authentication. Change this to a long, random -- string — it protects the voice server and dispatch panel API. - authToken = " ", + authToken = "changeme", -- NAC ID / password for the dispatch channel. In-game players whose NAC -- ID matches this value can access the trunked control frequency and -- trigger SGN alerts from their radio. - dispatchNacId = " ", + dispatchNacId = "141", -- Enable Discord-based authentication for the dispatch panel. Requires -- a Discord application configured in server/.env (see server/.env.example). @@ -126,16 +138,17 @@ Config = { -- players who haven't set a custom callsign yet. useCallsignSystem = true, - callsignCommand = "callsign", -- In-game command (e.g., /callsign 2L-319). Set to "" to disable. + callsignCommand = "callsign", -- In-game command (e.g., /callsign 2L-319). Set to "" to disable. -- ┌──────────────────────────────────────────────────────────────┐ -- │ GENERAL │ -- └──────────────────────────────────────────────────────────────┘ - checkForUpdates = true, -- Check for script updates on resource start - logLevel = 3, -- 0 = Error, 1 = Warnings, 2 = Minimal, 3 = Normal, 4 = Debug, 5 = Verbose - pttReleaseDelay = 350, -- Milliseconds before releasing PTT to prevent audio cut-off (250-500 recommended) - panicTimeout = 60000, -- Milliseconds before a panic alert auto-clears + checkForUpdates = true, -- Check for script updates on resource start + healthCheck = true, -- Perform HTTP health check after server starts (https://docs.timmygstudios.com/docs/tommys-radio/troubleshooting#health-checks-failing-despite-working-panel-toc) + logLevel = 3, -- 0 = Error, 1 = Warnings, 2 = Minimal, 3 = Normal, 4 = Debug, 5 = Verbose + pttReleaseDelay = 350, -- Milliseconds before releasing PTT to prevent audio cut-off (250-500 recommended) + panicTimeout = 60000, -- Milliseconds before a panic alert auto-clears -- When true, pressing PTT on the radio will also trigger proximity -- voice chat so nearby players can hear you speaking in-game. @@ -178,32 +191,32 @@ Config = { -- applied to all received voice. Works well on its own as a -- lightweight "radio sound" without any vocoder overhead. - fxEnabled = false, -- Master switch for the FX chain below. + fxEnabled = false, -- Master switch for the FX chain below. - highpassFrequency = 250, -- Hz (80–800) Low cut. Removes rumble/low-end. - -- 250 Hz is a clean radio sound without - -- eating the low harmonics of deep voices. - lowpassFrequency = 3400, -- Hz (1200–8000) High cut. 3400 Hz = telephone band. - distortion = 20, -- (0–100) Tube saturation / analog warmth. - compression = 60, -- (0–100) Dynamic range crushing. - midBoost = 2, -- dB (-12 to 12) Presence boost at ~1200 Hz. - inputGain = 1.2, -- (0.5–3.0) Pre-amp before the chain. + highpassFrequency = 250, -- Hz (80–800) Low cut. Removes rumble/low-end. + -- 250 Hz is a clean radio sound without + -- eating the low harmonics of deep voices. + lowpassFrequency = 3400, -- Hz (1200–8000) High cut. 3400 Hz = telephone band. + distortion = 20, -- (0–100) Tube saturation / analog warmth. + compression = 60, -- (0–100) Dynamic range crushing. + midBoost = 2, -- dB (-12 to 12) Presence boost at ~1200 Hz. + inputGain = 1.2, -- (0.5–3.0) Pre-amp before the chain. - -- ── P25 IMBE Vocoder ──────────────────────────────────────── + -- ── P25 IMBE Vocoder (EXPERIMENTAL) ──────────────────────────────────────── -- True IMBE encode→decode loop. Produces the -- characteristic P25 digital radio sound. More CPU than fxEnabled -- alone but bit-accurate to real P25 Phase 1 hardware. - p25Enabled = true, -- Master switch for the IMBE vocoder. + p25Enabled = true, -- Master switch for the IMBE vocoder. }, -- 3D Audio (EXPERIMENTAL) — when enabled, radio audio is spatially -- positioned in the game world instead of playing in 2D. - enable3DAudio = false, -- Master switch for the 3D audio system - default3DAudio = false, -- true = earbuds OFF by default (3D enabled), false = earbuds ON (3D disabled) - default3DVolume = 50, -- Default 3D volume (0-100), saved per user - vehicle3DActivationDistance = 3.0, -- Min distance (meters) from vehicle before its 3D audio activates + enable3DAudio = false, -- Master switch for the 3D audio system + default3DAudio = false, -- true = earbuds OFF by default (3D enabled), false = earbuds ON (3D disabled) + default3DVolume = 50, -- Default 3D volume (0-100), saved per user + vehicle3DActivationDistance = 3.0, -- Min distance (meters) from vehicle before its 3D audio activates -- ┌──────────────────────────────────────────────────────────────┐ -- │ GPS & SIGNAL │ @@ -214,8 +227,13 @@ Config = { -- Recommended: 50 (smooth), 100 (balanced), 250 (performance), 500 (low-end) gpsBlipUpdateRate = 50, - -- Signal tower positions used for the signal-strength icon on the radio. - -- NOTE: These do NOT affect voice quality — they are cosmetic only. + -- When enabled, audio quality degrades based on distance to the nearest + -- signal tower. Closer = clearer voice, further = crushed/garbled audio + -- with dropouts. Affects both your outgoing mic and incoming playback. + signalDegradationEnabled = false, + + -- Signal tower positions used for the signal-strength icon on the radio + -- and, when signalDegradationEnabled is true, for audio degradation. signalTowerCoordinates = { { x = 1860.0, y = 3677.0, z = 33.0 }, { x = 449.0, y = -992.0, z = 30.0 }, @@ -282,10 +300,10 @@ Config = { -- doubleTapOverride = true. bonking = { - blockTransmission = true, - playBonkTone = true, - doubleTapOverride = true, - doubleTapWindow = 1500, + blockTransmission = true, + playBonkTone = true, + doubleTapOverride = true, + doubleTapWindow = 1500, }, -- ┌──────────────────────────────────────────────────────────────┐ @@ -342,22 +360,22 @@ Config = { alerts = { [1] = { - name = "SIGNAL 100", - color = "#a38718", - isPersistent = true, -- Stays active until manually cleared + name = "SIGNAL 100", + color = "#a38718", + isPersistent = true, -- Stays active until manually cleared -- Per-phase tones: loud triple-beep to activate, quiet single -- beep on each repeat so it stays noticeable without being -- overwhelming, and a falling tone to confirm it's cleared. - tones = { + tones = { ["activate"] = "PRIORITY", ["repeat"] = "PRIORITY_REPEAT", ["deactivate"] = "ALERT_C", }, - repeatInterval = 15000, -- repeat fires every 15 seconds exactly - -- omit this line for the default random 5-10s cadence + repeatInterval = 15000, -- repeat fires every 15 seconds exactly + -- omit this line for the default random 5-10s cadence repeatShowBanner = false, -- true → flash alert name on radio each repeat - -- false → play the repeat tone only, no visual flash - deactivateLabel = "RESUME", -- text shown on radio when cleared + -- false → play the repeat tone only, no visual flash + deactivateLabel = "RESUME", -- text shown on radio when cleared deactivateColor = "#1a8a38", -- colour of that label }, [2] = { @@ -370,12 +388,12 @@ Config = { [3] = { name = "Ping", color = "#1852a3", - tone = "ALERT_B", -- non-persistent: only activate phase matters + tone = "ALERT_B", -- non-persistent: only activate phase matters }, [4] = { name = "Boop", color = "#1c4ba3", - toneOnly = true, -- Plays tone without showing an alert on the radio + toneOnly = true, -- Plays tone without showing an alert on the radio tone = "BONK", }, }, @@ -400,7 +418,7 @@ Config = { zones = { [1] = { - name = "California Highway Patrol", + name = "Statewide", nacIds = { "141", "110" }, Channels = { [1] = { @@ -440,7 +458,7 @@ Config = { }, }, [2] = { - name = "Los Angeles POLICE DEPARTMENT", + name = "Los Santos", nacIds = { "141" }, Channels = { [1] = { @@ -480,7 +498,7 @@ Config = { }, }, [3] = { - name = "Los Angeles County Sheriff", + name = "Blaine County", nacIds = { "141" }, Channels = { [1] = { diff --git a/resources/radio/fxmanifest.lua b/resources/radio/fxmanifest.lua index a5d715543..2aca6d076 100644 --- a/resources/radio/fxmanifest.lua +++ b/resources/radio/fxmanifest.lua @@ -4,9 +4,9 @@ fx_version 'bodacious' game 'gta5' name 'Tommy\'s Radio' -description 'FiveM In-Game Radio Script' -author 'Tommy Johnston' -version 'v4.0' +description 'Realistic Radio for FiveM' +author 'Tommy Johnston (TIMMYG Studios)' +version 'v4.3' -- Lua Version lua54 'yes' @@ -21,15 +21,19 @@ files { 'client/dist/imbe_vocoder.wasm', 'client/radios/**/*.*', 'client/index.html', + 'client/screen.html', + 'stream/**' } -- Scripts shared_scripts { 'config.lua', 'animations.lua', - 'audio.lua', + 'client/audio.lua', 'shared.lua', - 'blips.lua', + 'client/blips.lua', + 'client/positions.lua', + 'client/screen.lua', } server_scripts { @@ -41,7 +45,11 @@ server_scripts { escrow_ignore { 'config.lua', 'animations.lua', + 'client/positions.lua', + 'client/screen.lua', 'client/radios/**/*.*' } +data_file 'DLC_ITYP_REQUEST' 'stream/afx1500.ytyp' + dependency '/assetpacks' \ No newline at end of file diff --git a/resources/radio/server/dispatch.html b/resources/radio/server/dispatch.html index da7fbbe98..90537b21c 100644 --- a/resources/radio/server/dispatch.html +++ b/resources/radio/server/dispatch.html @@ -1 +1 @@ - Radio Dispatch Panel
Connected
MUTED
Loading dispatch panel...
Connecting to radio system

Settings

Configure your dispatch panel preferences

Update your callsign without re-logging in

Click and press a key to change PTT button

Volume for tone, background effects, and transmission sounds

Volume for voice communications

Choose your preferred theme

Configure Endpoint

Welcome! Please configure your dispatch server endpoint to continue. You can use the default endpoint or specify a custom one.

Dispatch Access Control

Enter your Network Access Code to continue

Send User Alert

Send alert to user

Change Callsign

Set callsign for user

Leave empty and click Save to reset to the default name.

Disconnect User

Are you sure you want to disconnect this user from the radio system?

\ No newline at end of file + Radio Dispatch Panel
Connected
MUTED
Loading dispatch panel...
Connecting to radio system

Settings

Configure your dispatch panel preferences

Update your callsign without re-logging in

Click and press a key to change PTT button

Volume for tone, background effects, and transmission sounds

Volume for voice communications

Choose your preferred theme

Configure Endpoint

Welcome! Please configure your dispatch server endpoint to continue. You can use the default endpoint or specify a custom one.

Dispatch Access Control

Enter your Network Access Code to continue

Broadcast Alert

Send User Alert

Send alert to user

Change Callsign

Set callsign for user

Leave empty and click Save to reset to the default name.

Disconnect User

Are you sure you want to disconnect this user from the radio system?

\ No newline at end of file diff --git a/resources/radio/server/dispatch.lua b/resources/radio/server/dispatch.lua index 7b82a194c58e902a25ce8ffeb8af22fdaba71b60..c86ec05e737abe81dd2fe6b819720d8e0cad5b0c 100644 GIT binary patch literal 3276 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 literal 3276 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 { var engine_io_parser_1 = require_cjs(); var debug = (0, debug_1.default)("engine:webtransport"); - class WebTransport2 extends transport_1.Transport { + class WebTransport extends transport_1.Transport { constructor(session, stream, reader) { super({ _query: { EIO: "4" } }); this.session = session; @@ -11293,7 +11293,7 @@ var require_webtransport = __commonJS((exports2) => { fn && fn(); } } - exports2.WebTransport = WebTransport2; + exports2.WebTransport = WebTransport; }); // node_modules/engine.io/build/transports/index.js @@ -13413,7 +13413,7 @@ var require_websocket2 = __commonJS((exports2, module2) => { NOOP } = require_constants(); var { - EventTarget: { addEventListener: addEventListener2, removeEventListener: removeEventListener2 } + EventTarget: { addEventListener, removeEventListener } } = require_event_target(); var { format, parse } = require_extension(); var { toBuffer } = require_buffer_util(); @@ -13737,8 +13737,8 @@ var require_websocket2 = __commonJS((exports2, module2) => { } }); }); - WebSocket.prototype.addEventListener = addEventListener2; - WebSocket.prototype.removeEventListener = removeEventListener2; + WebSocket.prototype.addEventListener = addEventListener; + WebSocket.prototype.removeEventListener = removeEventListener; module2.exports = WebSocket; function initAsClient(websocket, address, protocols, options) { const opts = { @@ -13892,9 +13892,9 @@ var require_websocket2 = __commonJS((exports2, module2) => { emitErrorAndClose(websocket, err); }); req.on("response", (res) => { - const location2 = res.headers.location; + const location = res.headers.location; const statusCode = res.statusCode; - if (location2 && opts.followRedirects && statusCode >= 300 && statusCode < 400) { + if (location && opts.followRedirects && statusCode >= 300 && statusCode < 400) { if (++websocket._redirects > opts.maxRedirects) { abortHandshake(websocket, req, "Maximum redirects exceeded"); return; @@ -13902,9 +13902,9 @@ var require_websocket2 = __commonJS((exports2, module2) => { req.abort(); let addr; try { - addr = new URL2(location2, address); + addr = new URL2(location, address); } catch (e) { - const err = new SyntaxError(`Invalid URL: ${location2}`); + const err = new SyntaxError(`Invalid URL: ${location}`); emitErrorAndClose(websocket, err); return; } @@ -23374,3458 +23374,6 @@ var require_main = __commonJS((exports2, module2) => { module2.exports = DotenvModule; }); -// node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js -var require_XMLHttpRequest = __commonJS((exports2, module2) => { - var fs = require("fs"); - var Url = require("url"); - var spawn = require("child_process").spawn; - module2.exports = XMLHttpRequest2; - XMLHttpRequest2.XMLHttpRequest = XMLHttpRequest2; - function XMLHttpRequest2(opts) { - opts = opts || {}; - var self = this; - var http = require("http"); - var https = require("https"); - var request; - var response; - var settings = {}; - var disableHeaderCheck = false; - var defaultHeaders = { - "User-Agent": "node-XMLHttpRequest", - Accept: "*/*" - }; - var headers = Object.assign({}, defaultHeaders); - var forbiddenRequestHeaders = [ - "accept-charset", - "accept-encoding", - "access-control-request-headers", - "access-control-request-method", - "connection", - "content-length", - "content-transfer-encoding", - "cookie", - "cookie2", - "date", - "expect", - "host", - "keep-alive", - "origin", - "referer", - "te", - "trailer", - "transfer-encoding", - "upgrade", - "via" - ]; - var forbiddenRequestMethods = [ - "TRACE", - "TRACK", - "CONNECT" - ]; - var sendFlag = false; - var errorFlag = false; - var abortedFlag = false; - var listeners = {}; - this.UNSENT = 0; - this.OPENED = 1; - this.HEADERS_RECEIVED = 2; - this.LOADING = 3; - this.DONE = 4; - this.readyState = this.UNSENT; - this.onreadystatechange = null; - this.responseText = ""; - this.responseXML = ""; - this.response = Buffer.alloc(0); - this.status = null; - this.statusText = null; - var isAllowedHttpHeader = function(header) { - return disableHeaderCheck || header && forbiddenRequestHeaders.indexOf(header.toLowerCase()) === -1; - }; - var isAllowedHttpMethod = function(method) { - return method && forbiddenRequestMethods.indexOf(method) === -1; - }; - this.open = function(method, url, async, user, password) { - this.abort(); - errorFlag = false; - abortedFlag = false; - if (!isAllowedHttpMethod(method)) { - throw new Error("SecurityError: Request method not allowed"); - } - settings = { - method, - url: url.toString(), - async: typeof async !== "boolean" ? true : async, - user: user || null, - password: password || null - }; - setState(this.OPENED); - }; - this.setDisableHeaderCheck = function(state) { - disableHeaderCheck = state; - }; - this.setRequestHeader = function(header, value) { - if (this.readyState != this.OPENED) { - throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN"); - } - if (!isAllowedHttpHeader(header)) { - console.warn('Refused to set unsafe header "' + header + '"'); - return false; - } - if (sendFlag) { - throw new Error("INVALID_STATE_ERR: send flag is true"); - } - headers[header] = value; - return true; - }; - this.getResponseHeader = function(header) { - if (typeof header === "string" && this.readyState > this.OPENED && response.headers[header.toLowerCase()] && !errorFlag) { - return response.headers[header.toLowerCase()]; - } - return null; - }; - this.getAllResponseHeaders = function() { - if (this.readyState < this.HEADERS_RECEIVED || errorFlag) { - return ""; - } - var result = ""; - for (var i in response.headers) { - if (i !== "set-cookie" && i !== "set-cookie2") { - result += i + ": " + response.headers[i] + `\r -`; - } - } - return result.substr(0, result.length - 2); - }; - this.getRequestHeader = function(name) { - if (typeof name === "string" && headers[name]) { - return headers[name]; - } - return ""; - }; - this.send = function(data) { - if (this.readyState != this.OPENED) { - throw new Error("INVALID_STATE_ERR: connection must be opened before send() is called"); - } - if (sendFlag) { - throw new Error("INVALID_STATE_ERR: send has already been called"); - } - var ssl = false, local = false; - var url = Url.parse(settings.url); - var host; - switch (url.protocol) { - case "https:": - ssl = true; - case "http:": - host = url.hostname; - break; - case "file:": - local = true; - break; - case undefined: - case "": - host = "localhost"; - break; - default: - throw new Error("Protocol not supported."); - } - if (local) { - if (settings.method !== "GET") { - throw new Error("XMLHttpRequest: Only GET method is supported"); - } - if (settings.async) { - fs.readFile(unescape(url.pathname), function(error, data2) { - if (error) { - self.handleError(error, error.errno || -1); - } else { - self.status = 200; - self.responseText = data2.toString("utf8"); - self.response = data2; - setState(self.DONE); - } - }); - } else { - try { - this.response = fs.readFileSync(unescape(url.pathname)); - this.responseText = this.response.toString("utf8"); - this.status = 200; - setState(self.DONE); - } catch (e) { - this.handleError(e, e.errno || -1); - } - } - return; - } - var port = url.port || (ssl ? 443 : 80); - var uri = url.pathname + (url.search ? url.search : ""); - headers["Host"] = host; - if (!(ssl && port === 443 || port === 80)) { - headers["Host"] += ":" + url.port; - } - if (settings.user) { - if (typeof settings.password == "undefined") { - settings.password = ""; - } - var authBuf = new Buffer(settings.user + ":" + settings.password); - headers["Authorization"] = "Basic " + authBuf.toString("base64"); - } - if (settings.method === "GET" || settings.method === "HEAD") { - data = null; - } else if (data) { - headers["Content-Length"] = Buffer.isBuffer(data) ? data.length : Buffer.byteLength(data); - var headersKeys = Object.keys(headers); - if (!headersKeys.some(function(h) { - return h.toLowerCase() === "content-type"; - })) { - headers["Content-Type"] = "text/plain;charset=UTF-8"; - } - } else if (settings.method === "POST") { - headers["Content-Length"] = 0; - } - var agent = opts.agent || false; - var options = { - host, - port, - path: uri, - method: settings.method, - headers, - agent - }; - if (ssl) { - options.pfx = opts.pfx; - options.key = opts.key; - options.passphrase = opts.passphrase; - options.cert = opts.cert; - options.ca = opts.ca; - options.ciphers = opts.ciphers; - options.rejectUnauthorized = opts.rejectUnauthorized === false ? false : true; - } - errorFlag = false; - if (settings.async) { - var doRequest = ssl ? https.request : http.request; - sendFlag = true; - self.dispatchEvent("readystatechange"); - var responseHandler = function(resp2) { - response = resp2; - if (response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) { - settings.url = response.headers.location; - var url2 = Url.parse(settings.url); - host = url2.hostname; - var newOptions = { - hostname: url2.hostname, - port: url2.port, - path: url2.path, - method: response.statusCode === 303 ? "GET" : settings.method, - headers - }; - if (ssl) { - newOptions.pfx = opts.pfx; - newOptions.key = opts.key; - newOptions.passphrase = opts.passphrase; - newOptions.cert = opts.cert; - newOptions.ca = opts.ca; - newOptions.ciphers = opts.ciphers; - newOptions.rejectUnauthorized = opts.rejectUnauthorized === false ? false : true; - } - request = doRequest(newOptions, responseHandler).on("error", errorHandler); - request.end(); - return; - } - setState(self.HEADERS_RECEIVED); - self.status = response.statusCode; - response.on("data", function(chunk) { - if (chunk) { - var data2 = Buffer.from(chunk); - self.response = Buffer.concat([self.response, data2]); - } - if (sendFlag) { - setState(self.LOADING); - } - }); - response.on("end", function() { - if (sendFlag) { - sendFlag = false; - setState(self.DONE); - self.responseText = self.response.toString("utf8"); - } - }); - response.on("error", function(error) { - self.handleError(error); - }); - }; - var errorHandler = function(error) { - if (request.reusedSocket && error.code === "ECONNRESET") - return doRequest(options, responseHandler).on("error", errorHandler); - self.handleError(error); - }; - request = doRequest(options, responseHandler).on("error", errorHandler); - if (opts.autoUnref) { - request.on("socket", (socket) => { - socket.unref(); - }); - } - if (data) { - request.write(data); - } - request.end(); - self.dispatchEvent("loadstart"); - } else { - var contentFile = ".node-xmlhttprequest-content-" + process.pid; - var syncFile = ".node-xmlhttprequest-sync-" + process.pid; - fs.writeFileSync(syncFile, "", "utf8"); - var execString = "var http = require('http'), https = require('https'), fs = require('fs');" + "var doRequest = http" + (ssl ? "s" : "") + ".request;" + "var options = " + JSON.stringify(options) + ";" + "var responseText = '';" + "var responseData = Buffer.alloc(0);" + "var req = doRequest(options, function(response) {" + "response.on('data', function(chunk) {" + " var data = Buffer.from(chunk);" + " responseText += data.toString('utf8');" + " responseData = Buffer.concat([responseData, data]);" + "});" + "response.on('end', function() {" + "fs.writeFileSync('" + contentFile + "', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');" + "fs.unlinkSync('" + syncFile + "');" + "});" + "response.on('error', function(error) {" + "fs.writeFileSync('" + contentFile + "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');" + "fs.unlinkSync('" + syncFile + "');" + "});" + "}).on('error', function(error) {" + "fs.writeFileSync('" + contentFile + "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');" + "fs.unlinkSync('" + syncFile + "');" + "});" + (data ? "req.write('" + JSON.stringify(data).slice(1, -1).replace(/'/g, "\\'") + "');" : "") + "req.end();"; - var syncProc = spawn(process.argv[0], ["-e", execString]); - var statusText; - while (fs.existsSync(syncFile)) {} - self.responseText = fs.readFileSync(contentFile, "utf8"); - syncProc.stdin.end(); - fs.unlinkSync(contentFile); - if (self.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)) { - var errorObj = JSON.parse(self.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/, "")); - self.handleError(errorObj, 503); - } else { - self.status = self.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/, "$1"); - var resp = JSON.parse(self.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/, "$1")); - response = { - statusCode: self.status, - headers: resp.data.headers - }; - self.responseText = resp.data.text; - self.response = Buffer.from(resp.data.data, "base64"); - setState(self.DONE, true); - } - } - }; - this.handleError = function(error, status) { - this.status = status || 0; - this.statusText = error; - this.responseText = error.stack; - errorFlag = true; - setState(this.DONE); - }; - this.abort = function() { - if (request) { - request.abort(); - request = null; - } - headers = Object.assign({}, defaultHeaders); - this.responseText = ""; - this.responseXML = ""; - this.response = Buffer.alloc(0); - errorFlag = abortedFlag = true; - if (this.readyState !== this.UNSENT && (this.readyState !== this.OPENED || sendFlag) && this.readyState !== this.DONE) { - sendFlag = false; - setState(this.DONE); - } - this.readyState = this.UNSENT; - }; - this.addEventListener = function(event, callback) { - if (!(event in listeners)) { - listeners[event] = []; - } - listeners[event].push(callback); - }; - this.removeEventListener = function(event, callback) { - if (event in listeners) { - listeners[event] = listeners[event].filter(function(ev) { - return ev !== callback; - }); - } - }; - this.dispatchEvent = function(event) { - if (typeof self["on" + event] === "function") { - if (this.readyState === this.DONE && settings.async) - setTimeout(function() { - self["on" + event](); - }, 0); - else - self["on" + event](); - } - if (event in listeners) { - for (let i = 0, len = listeners[event].length;i < len; i++) { - if (this.readyState === this.DONE) - setTimeout(function() { - listeners[event][i].call(self); - }, 0); - else - listeners[event][i].call(self); - } - } - }; - var setState = function(state) { - if (self.readyState === state || self.readyState === self.UNSENT && abortedFlag) - return; - self.readyState = state; - if (settings.async || self.readyState < self.OPENED || self.readyState === self.DONE) { - self.dispatchEvent("readystatechange"); - } - if (self.readyState === self.DONE) { - let fire; - if (abortedFlag) - fire = "abort"; - else if (errorFlag) - fire = "error"; - else - fire = "load"; - self.dispatchEvent(fire); - self.dispatchEvent("loadend"); - } - }; - } -}); - -// node_modules/engine.io-client/build/cjs/globals.node.js -var require_globals_node = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.CookieJar = exports2.defaultBinaryType = exports2.globalThisShim = exports2.nextTick = undefined; - exports2.createCookieJar = createCookieJar; - exports2.parse = parse; - exports2.nextTick = process.nextTick; - exports2.globalThisShim = global; - exports2.defaultBinaryType = "nodebuffer"; - function createCookieJar() { - return new CookieJar; - } - function parse(setCookieString) { - const parts = setCookieString.split("; "); - const i = parts[0].indexOf("="); - if (i === -1) { - return; - } - const name = parts[0].substring(0, i).trim(); - if (!name.length) { - return; - } - let value = parts[0].substring(i + 1).trim(); - if (value.charCodeAt(0) === 34) { - value = value.slice(1, -1); - } - const cookie = { - name, - value - }; - for (let j = 1;j < parts.length; j++) { - const subParts = parts[j].split("="); - if (subParts.length !== 2) { - continue; - } - const key = subParts[0].trim(); - const value2 = subParts[1].trim(); - switch (key) { - case "Expires": - cookie.expires = new Date(value2); - break; - case "Max-Age": - const expiration = new Date; - expiration.setUTCSeconds(expiration.getUTCSeconds() + parseInt(value2, 10)); - cookie.expires = expiration; - break; - default: - } - } - return cookie; - } - - class CookieJar { - constructor() { - this._cookies = new Map; - } - parseCookies(values) { - if (!values) { - return; - } - values.forEach((value) => { - const parsed = parse(value); - if (parsed) { - this._cookies.set(parsed.name, parsed); - } - }); - } - get cookies() { - const now = Date.now(); - this._cookies.forEach((cookie, name) => { - var _a; - if (((_a = cookie.expires) === null || _a === undefined ? undefined : _a.getTime()) < now) { - this._cookies.delete(name); - } - }); - return this._cookies.entries(); - } - addCookies(xhr) { - const cookies = []; - for (const [name, cookie] of this.cookies) { - cookies.push(`${name}=${cookie.value}`); - } - if (cookies.length) { - xhr.setDisableHeaderCheck(true); - xhr.setRequestHeader("cookie", cookies.join("; ")); - } - } - appendCookies(headers) { - for (const [name, cookie] of this.cookies) { - headers.append("cookie", `${name}=${cookie.value}`); - } - } - } - exports2.CookieJar = CookieJar; -}); - -// node_modules/engine.io-client/build/cjs/util.js -var require_util = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.pick = pick; - exports2.installTimerFunctions = installTimerFunctions; - exports2.byteLength = byteLength; - exports2.randomString = randomString; - var globals_node_js_1 = require_globals_node(); - function pick(obj, ...attr) { - return attr.reduce((acc, k) => { - if (obj.hasOwnProperty(k)) { - acc[k] = obj[k]; - } - return acc; - }, {}); - } - var NATIVE_SET_TIMEOUT = globals_node_js_1.globalThisShim.setTimeout; - var NATIVE_CLEAR_TIMEOUT = globals_node_js_1.globalThisShim.clearTimeout; - function installTimerFunctions(obj, opts) { - if (opts.useNativeTimers) { - obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globals_node_js_1.globalThisShim); - obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globals_node_js_1.globalThisShim); - } else { - obj.setTimeoutFn = globals_node_js_1.globalThisShim.setTimeout.bind(globals_node_js_1.globalThisShim); - obj.clearTimeoutFn = globals_node_js_1.globalThisShim.clearTimeout.bind(globals_node_js_1.globalThisShim); - } - } - var BASE64_OVERHEAD = 1.33; - function byteLength(obj) { - if (typeof obj === "string") { - return utf8Length(obj); - } - return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD); - } - function utf8Length(str) { - let c = 0, length = 0; - for (let i = 0, l = str.length;i < l; i++) { - c = str.charCodeAt(i); - if (c < 128) { - length += 1; - } else if (c < 2048) { - length += 2; - } else if (c < 55296 || c >= 57344) { - length += 3; - } else { - i++; - length += 4; - } - } - return length; - } - function randomString() { - return Date.now().toString(36).substring(3) + Math.random().toString(36).substring(2, 5); - } -}); - -// node_modules/engine.io-client/build/cjs/contrib/parseqs.js -var require_parseqs = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.encode = encode; - exports2.decode = decode; - function encode(obj) { - let str = ""; - for (let i in obj) { - if (obj.hasOwnProperty(i)) { - if (str.length) - str += "&"; - str += encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]); - } - } - return str; - } - function decode(qs) { - let qry = {}; - let pairs = qs.split("&"); - for (let i = 0, l = pairs.length;i < l; i++) { - let pair = pairs[i].split("="); - qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); - } - return qry; - } -}); - -// node_modules/engine.io-client/node_modules/debug/src/common.js -var require_common5 = __commonJS((exports2, module2) => { - function setup(env2) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require_ms(); - createDebug.destroy = destroy; - Object.keys(env2).forEach((key) => { - createDebug[key] = env2[key]; - }); - createDebug.names = []; - createDebug.skips = []; - createDebug.formatters = {}; - function selectColor(namespace) { - let hash = 0; - for (let i = 0;i < namespace.length; i++) { - hash = (hash << 5) - hash + namespace.charCodeAt(i); - hash |= 0; - } - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - function debug(...args) { - if (!debug.enabled) { - return; - } - const self = debug; - const curr = Number(new Date); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - args[0] = createDebug.coerce(args[0]); - if (typeof args[0] !== "string") { - args.unshift("%O"); - } - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - if (match === "%%") { - return "%"; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === "function") { - const val = args[index]; - match = formatter.call(self, val); - args.splice(index, 1); - index--; - } - return match; - }); - createDebug.formatArgs.call(self, args); - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; - Object.defineProperty(debug, "enabled", { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - return enabledCache; - }, - set: (v) => { - enableOverride = v; - } - }); - if (typeof createDebug.init === "function") { - createDebug.init(debug); - } - return debug; - } - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - createDebug.names = []; - createDebug.skips = []; - let i; - const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); - const len = split.length; - for (i = 0;i < len; i++) { - if (!split[i]) { - continue; - } - namespaces = split[i].replace(/\*/g, ".*?"); - if (namespaces[0] === "-") { - createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); - } else { - createDebug.names.push(new RegExp("^" + namespaces + "$")); - } - } - } - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) - ].join(","); - createDebug.enable(""); - return namespaces; - } - function enabled(name) { - if (name[name.length - 1] === "*") { - return true; - } - let i; - let len; - for (i = 0, len = createDebug.skips.length;i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = createDebug.names.length;i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - return false; - } - function toNamespace(regexp) { - return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); - } - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - function destroy() { - console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); - } - createDebug.enable(createDebug.load()); - return createDebug; - } - module2.exports = setup; -}); - -// node_modules/engine.io-client/node_modules/debug/src/browser.js -var require_browser5 = __commonJS((exports2, module2) => { - exports2.formatArgs = formatArgs; - exports2.save = save; - exports2.load = load; - exports2.useColors = useColors; - exports2.storage = localstorage(); - exports2.destroy = (() => { - let warned = false; - return () => { - if (!warned) { - warned = true; - console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); - } - }; - })(); - exports2.colors = [ - "#0000CC", - "#0000FF", - "#0033CC", - "#0033FF", - "#0066CC", - "#0066FF", - "#0099CC", - "#0099FF", - "#00CC00", - "#00CC33", - "#00CC66", - "#00CC99", - "#00CCCC", - "#00CCFF", - "#3300CC", - "#3300FF", - "#3333CC", - "#3333FF", - "#3366CC", - "#3366FF", - "#3399CC", - "#3399FF", - "#33CC00", - "#33CC33", - "#33CC66", - "#33CC99", - "#33CCCC", - "#33CCFF", - "#6600CC", - "#6600FF", - "#6633CC", - "#6633FF", - "#66CC00", - "#66CC33", - "#9900CC", - "#9900FF", - "#9933CC", - "#9933FF", - "#99CC00", - "#99CC33", - "#CC0000", - "#CC0033", - "#CC0066", - "#CC0099", - "#CC00CC", - "#CC00FF", - "#CC3300", - "#CC3333", - "#CC3366", - "#CC3399", - "#CC33CC", - "#CC33FF", - "#CC6600", - "#CC6633", - "#CC9900", - "#CC9933", - "#CCCC00", - "#CCCC33", - "#FF0000", - "#FF0033", - "#FF0066", - "#FF0099", - "#FF00CC", - "#FF00FF", - "#FF3300", - "#FF3333", - "#FF3366", - "#FF3399", - "#FF33CC", - "#FF33FF", - "#FF6600", - "#FF6633", - "#FF9900", - "#FF9933", - "#FFCC00", - "#FFCC33" - ]; - function useColors() { - if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { - return true; - } - if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - let m; - return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); - } - function formatArgs(args) { - args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); - if (!this.useColors) { - return; - } - const c = "color: " + this.color; - args.splice(1, 0, c, "color: inherit"); - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, (match) => { - if (match === "%%") { - return; - } - index++; - if (match === "%c") { - lastC = index; - } - }); - args.splice(lastC, 0, c); - } - exports2.log = console.debug || console.log || (() => {}); - function save(namespaces) { - try { - if (namespaces) { - exports2.storage.setItem("debug", namespaces); - } else { - exports2.storage.removeItem("debug"); - } - } catch (error) {} - } - function load() { - let r; - try { - r = exports2.storage.getItem("debug"); - } catch (error) {} - if (!r && typeof process !== "undefined" && "env" in process) { - r = process.env.DEBUG; - } - return r; - } - function localstorage() { - try { - return localStorage; - } catch (error) {} - } - module2.exports = require_common5()(exports2); - var { formatters } = module2.exports; - formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (error) { - return "[UnexpectedJSONParseError]: " + error.message; - } - }; -}); - -// node_modules/engine.io-client/node_modules/debug/src/node.js -var require_node5 = __commonJS((exports2, module2) => { - var tty2 = require("tty"); - var util = require("util"); - exports2.init = init; - exports2.log = log; - exports2.formatArgs = formatArgs; - exports2.save = save; - exports2.load = load; - exports2.useColors = useColors; - exports2.destroy = util.deprecate(() => {}, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); - exports2.colors = [6, 2, 3, 4, 5, 1]; - try { - const supportsColor2 = (init_supports_color(), __toCommonJS(exports_supports_color)); - if (supportsColor2 && (supportsColor2.stderr || supportsColor2).level >= 2) { - exports2.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } - } catch (error) {} - exports2.inspectOpts = Object.keys(process.env).filter((key) => { - return /^debug_/i.test(key); - }).reduce((obj, key) => { - const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === "null") { - val = null; - } else { - val = Number(val); - } - obj[prop] = val; - return obj; - }, {}); - function useColors() { - return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty2.isatty(process.stderr.fd); - } - function formatArgs(args) { - const { namespace: name, useColors: useColors2 } = this; - if (useColors2) { - const c = this.color; - const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); - const prefix = ` ${colorCode};1m${name} \x1B[0m`; - args[0] = prefix + args[0].split(` -`).join(` -` + prefix); - args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); - } else { - args[0] = getDate() + name + " " + args[0]; - } - } - function getDate() { - if (exports2.inspectOpts.hideDate) { - return ""; - } - return new Date().toISOString() + " "; - } - function log(...args) { - return process.stderr.write(util.formatWithOptions(exports2.inspectOpts, ...args) + ` -`); - } - function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - delete process.env.DEBUG; - } - } - function load() { - return process.env.DEBUG; - } - function init(debug) { - debug.inspectOpts = {}; - const keys = Object.keys(exports2.inspectOpts); - for (let i = 0;i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; - } - } - module2.exports = require_common5()(exports2); - var { formatters } = module2.exports; - formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts).split(` -`).map((str) => str.trim()).join(" "); - }; - formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); - }; -}); - -// node_modules/engine.io-client/node_modules/debug/src/index.js -var require_src5 = __commonJS((exports2, module2) => { - if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) { - module2.exports = require_browser5(); - } else { - module2.exports = require_node5(); - } -}); - -// node_modules/engine.io-client/build/cjs/transport.js -var require_transport2 = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Transport = exports2.TransportError = undefined; - var engine_io_parser_1 = require_cjs(); - var component_emitter_1 = require_cjs2(); - var util_js_1 = require_util(); - var parseqs_js_1 = require_parseqs(); - var debug_1 = __importDefault(require_src5()); - var debug = (0, debug_1.default)("engine.io-client:transport"); - - class TransportError extends Error { - constructor(reason, description, context) { - super(reason); - this.description = description; - this.context = context; - this.type = "TransportError"; - } - } - exports2.TransportError = TransportError; - - class Transport extends component_emitter_1.Emitter { - constructor(opts) { - super(); - this.writable = false; - (0, util_js_1.installTimerFunctions)(this, opts); - this.opts = opts; - this.query = opts.query; - this.socket = opts.socket; - this.supportsBinary = !opts.forceBase64; - } - onError(reason, description, context) { - super.emitReserved("error", new TransportError(reason, description, context)); - return this; - } - open() { - this.readyState = "opening"; - this.doOpen(); - return this; - } - close() { - if (this.readyState === "opening" || this.readyState === "open") { - this.doClose(); - this.onClose(); - } - return this; - } - send(packets) { - if (this.readyState === "open") { - this.write(packets); - } else { - debug("transport is not open, discarding packets"); - } - } - onOpen() { - this.readyState = "open"; - this.writable = true; - super.emitReserved("open"); - } - onData(data) { - const packet = (0, engine_io_parser_1.decodePacket)(data, this.socket.binaryType); - this.onPacket(packet); - } - onPacket(packet) { - super.emitReserved("packet", packet); - } - onClose(details) { - this.readyState = "closed"; - super.emitReserved("close", details); - } - pause(onPause) {} - createUri(schema, query = {}) { - return schema + "://" + this._hostname() + this._port() + this.opts.path + this._query(query); - } - _hostname() { - const hostname = this.opts.hostname; - return hostname.indexOf(":") === -1 ? hostname : "[" + hostname + "]"; - } - _port() { - if (this.opts.port && (this.opts.secure && Number(this.opts.port !== 443) || !this.opts.secure && Number(this.opts.port) !== 80)) { - return ":" + this.opts.port; - } else { - return ""; - } - } - _query(query) { - const encodedQuery = (0, parseqs_js_1.encode)(query); - return encodedQuery.length ? "?" + encodedQuery : ""; - } - } - exports2.Transport = Transport; -}); - -// node_modules/engine.io-client/build/cjs/transports/polling.js -var require_polling3 = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Polling = undefined; - var transport_js_1 = require_transport2(); - var util_js_1 = require_util(); - var engine_io_parser_1 = require_cjs(); - var debug_1 = __importDefault(require_src5()); - var debug = (0, debug_1.default)("engine.io-client:polling"); - - class Polling extends transport_js_1.Transport { - constructor() { - super(...arguments); - this._polling = false; - } - get name() { - return "polling"; - } - doOpen() { - this._poll(); - } - pause(onPause) { - this.readyState = "pausing"; - const pause = () => { - debug("paused"); - this.readyState = "paused"; - onPause(); - }; - if (this._polling || !this.writable) { - let total = 0; - if (this._polling) { - debug("we are currently polling - waiting to pause"); - total++; - this.once("pollComplete", function() { - debug("pre-pause polling complete"); - --total || pause(); - }); - } - if (!this.writable) { - debug("we are currently writing - waiting to pause"); - total++; - this.once("drain", function() { - debug("pre-pause writing complete"); - --total || pause(); - }); - } - } else { - pause(); - } - } - _poll() { - debug("polling"); - this._polling = true; - this.doPoll(); - this.emitReserved("poll"); - } - onData(data) { - debug("polling got data %s", data); - const callback = (packet) => { - if (this.readyState === "opening" && packet.type === "open") { - this.onOpen(); - } - if (packet.type === "close") { - this.onClose({ description: "transport closed by the server" }); - return false; - } - this.onPacket(packet); - }; - (0, engine_io_parser_1.decodePayload)(data, this.socket.binaryType).forEach(callback); - if (this.readyState !== "closed") { - this._polling = false; - this.emitReserved("pollComplete"); - if (this.readyState === "open") { - this._poll(); - } else { - debug('ignoring poll - transport state "%s"', this.readyState); - } - } - } - doClose() { - const close = () => { - debug("writing close packet"); - this.write([{ type: "close" }]); - }; - if (this.readyState === "open") { - debug("transport open - closing"); - close(); - } else { - debug("transport not open - deferring close"); - this.once("open", close); - } - } - write(packets) { - this.writable = false; - (0, engine_io_parser_1.encodePayload)(packets, (data) => { - this.doWrite(data, () => { - this.writable = true; - this.emitReserved("drain"); - }); - }); - } - uri() { - const schema = this.opts.secure ? "https" : "http"; - const query = this.query || {}; - if (this.opts.timestampRequests !== false) { - query[this.opts.timestampParam] = (0, util_js_1.randomString)(); - } - if (!this.supportsBinary && !query.sid) { - query.b64 = 1; - } - return this.createUri(schema, query); - } - } - exports2.Polling = Polling; -}); - -// node_modules/engine.io-client/build/cjs/contrib/has-cors.js -var require_has_cors = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.hasCORS = undefined; - var value = false; - try { - value = typeof XMLHttpRequest !== "undefined" && "withCredentials" in new XMLHttpRequest; - } catch (err) {} - exports2.hasCORS = value; -}); - -// node_modules/engine.io-client/build/cjs/transports/polling-xhr.js -var require_polling_xhr = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.XHR = exports2.Request = exports2.BaseXHR = undefined; - var polling_js_1 = require_polling3(); - var component_emitter_1 = require_cjs2(); - var util_js_1 = require_util(); - var globals_node_js_1 = require_globals_node(); - var has_cors_js_1 = require_has_cors(); - var debug_1 = __importDefault(require_src5()); - var debug = (0, debug_1.default)("engine.io-client:polling"); - function empty() {} - - class BaseXHR extends polling_js_1.Polling { - constructor(opts) { - super(opts); - if (typeof location !== "undefined") { - const isSSL = location.protocol === "https:"; - let port = location.port; - if (!port) { - port = isSSL ? "443" : "80"; - } - this.xd = typeof location !== "undefined" && opts.hostname !== location.hostname || port !== opts.port; - } - } - doWrite(data, fn) { - const req = this.request({ - method: "POST", - data - }); - req.on("success", fn); - req.on("error", (xhrStatus, context) => { - this.onError("xhr post error", xhrStatus, context); - }); - } - doPoll() { - debug("xhr poll"); - const req = this.request(); - req.on("data", this.onData.bind(this)); - req.on("error", (xhrStatus, context) => { - this.onError("xhr poll error", xhrStatus, context); - }); - this.pollXhr = req; - } - } - exports2.BaseXHR = BaseXHR; - - class Request extends component_emitter_1.Emitter { - constructor(createRequest, uri, opts) { - super(); - this.createRequest = createRequest; - (0, util_js_1.installTimerFunctions)(this, opts); - this._opts = opts; - this._method = opts.method || "GET"; - this._uri = uri; - this._data = opts.data !== undefined ? opts.data : null; - this._create(); - } - _create() { - var _a; - const opts = (0, util_js_1.pick)(this._opts, "agent", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "autoUnref"); - opts.xdomain = !!this._opts.xd; - const xhr = this._xhr = this.createRequest(opts); - try { - debug("xhr open %s: %s", this._method, this._uri); - xhr.open(this._method, this._uri, true); - try { - if (this._opts.extraHeaders) { - xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true); - for (let i in this._opts.extraHeaders) { - if (this._opts.extraHeaders.hasOwnProperty(i)) { - xhr.setRequestHeader(i, this._opts.extraHeaders[i]); - } - } - } - } catch (e) {} - if (this._method === "POST") { - try { - xhr.setRequestHeader("Content-type", "text/plain;charset=UTF-8"); - } catch (e) {} - } - try { - xhr.setRequestHeader("Accept", "*/*"); - } catch (e) {} - (_a = this._opts.cookieJar) === null || _a === undefined || _a.addCookies(xhr); - if ("withCredentials" in xhr) { - xhr.withCredentials = this._opts.withCredentials; - } - if (this._opts.requestTimeout) { - xhr.timeout = this._opts.requestTimeout; - } - xhr.onreadystatechange = () => { - var _a2; - if (xhr.readyState === 3) { - (_a2 = this._opts.cookieJar) === null || _a2 === undefined || _a2.parseCookies(xhr.getResponseHeader("set-cookie")); - } - if (xhr.readyState !== 4) - return; - if (xhr.status === 200 || xhr.status === 1223) { - this._onLoad(); - } else { - this.setTimeoutFn(() => { - this._onError(typeof xhr.status === "number" ? xhr.status : 0); - }, 0); - } - }; - debug("xhr data %s", this._data); - xhr.send(this._data); - } catch (e) { - this.setTimeoutFn(() => { - this._onError(e); - }, 0); - return; - } - if (typeof document !== "undefined") { - this._index = Request.requestsCount++; - Request.requests[this._index] = this; - } - } - _onError(err) { - this.emitReserved("error", err, this._xhr); - this._cleanup(true); - } - _cleanup(fromError) { - if (typeof this._xhr === "undefined" || this._xhr === null) { - return; - } - this._xhr.onreadystatechange = empty; - if (fromError) { - try { - this._xhr.abort(); - } catch (e) {} - } - if (typeof document !== "undefined") { - delete Request.requests[this._index]; - } - this._xhr = null; - } - _onLoad() { - const data = this._xhr.responseText; - if (data !== null) { - this.emitReserved("data", data); - this.emitReserved("success"); - this._cleanup(); - } - } - abort() { - this._cleanup(); - } - } - exports2.Request = Request; - Request.requestsCount = 0; - Request.requests = {}; - if (typeof document !== "undefined") { - if (typeof attachEvent === "function") { - attachEvent("onunload", unloadHandler); - } else if (typeof addEventListener === "function") { - const terminationEvent = "onpagehide" in globals_node_js_1.globalThisShim ? "pagehide" : "unload"; - addEventListener(terminationEvent, unloadHandler, false); - } - } - function unloadHandler() { - for (let i in Request.requests) { - if (Request.requests.hasOwnProperty(i)) { - Request.requests[i].abort(); - } - } - } - var hasXHR2 = function() { - const xhr = newRequest({ - xdomain: false - }); - return xhr && xhr.responseType !== null; - }(); - - class XHR extends BaseXHR { - constructor(opts) { - super(opts); - const forceBase64 = opts && opts.forceBase64; - this.supportsBinary = hasXHR2 && !forceBase64; - } - request(opts = {}) { - Object.assign(opts, { xd: this.xd }, this.opts); - return new Request(newRequest, this.uri(), opts); - } - } - exports2.XHR = XHR; - function newRequest(opts) { - const xdomain = opts.xdomain; - try { - if (typeof XMLHttpRequest !== "undefined" && (!xdomain || has_cors_js_1.hasCORS)) { - return new XMLHttpRequest; - } - } catch (e) {} - if (!xdomain) { - try { - return new globals_node_js_1.globalThisShim[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP"); - } catch (e) {} - } - } -}); - -// node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js -var require_polling_xhr_node = __commonJS((exports2) => { - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === undefined) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.XHR = undefined; - var XMLHttpRequestModule = __importStar(require_XMLHttpRequest()); - var polling_xhr_js_1 = require_polling_xhr(); - var XMLHttpRequest2 = XMLHttpRequestModule.default || XMLHttpRequestModule; - - class XHR extends polling_xhr_js_1.BaseXHR { - request(opts = {}) { - var _a; - Object.assign(opts, { xd: this.xd, cookieJar: (_a = this.socket) === null || _a === undefined ? undefined : _a._cookieJar }, this.opts); - return new polling_xhr_js_1.Request((opts2) => new XMLHttpRequest2(opts2), this.uri(), opts); - } - } - exports2.XHR = XHR; -}); - -// node_modules/engine.io-client/build/cjs/transports/websocket.js -var require_websocket4 = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.WS = exports2.BaseWS = undefined; - var transport_js_1 = require_transport2(); - var util_js_1 = require_util(); - var engine_io_parser_1 = require_cjs(); - var globals_node_js_1 = require_globals_node(); - var debug_1 = __importDefault(require_src5()); - var debug = (0, debug_1.default)("engine.io-client:websocket"); - var isReactNative = typeof navigator !== "undefined" && typeof navigator.product === "string" && navigator.product.toLowerCase() === "reactnative"; - - class BaseWS extends transport_js_1.Transport { - get name() { - return "websocket"; - } - doOpen() { - const uri = this.uri(); - const protocols = this.opts.protocols; - const opts = isReactNative ? {} : (0, util_js_1.pick)(this.opts, "agent", "perMessageDeflate", "pfx", "key", "passphrase", "cert", "ca", "ciphers", "rejectUnauthorized", "localAddress", "protocolVersion", "origin", "maxPayload", "family", "checkServerIdentity"); - if (this.opts.extraHeaders) { - opts.headers = this.opts.extraHeaders; - } - try { - this.ws = this.createSocket(uri, protocols, opts); - } catch (err) { - return this.emitReserved("error", err); - } - this.ws.binaryType = this.socket.binaryType; - this.addEventListeners(); - } - addEventListeners() { - this.ws.onopen = () => { - if (this.opts.autoUnref) { - this.ws._socket.unref(); - } - this.onOpen(); - }; - this.ws.onclose = (closeEvent) => this.onClose({ - description: "websocket connection closed", - context: closeEvent - }); - this.ws.onmessage = (ev) => this.onData(ev.data); - this.ws.onerror = (e) => this.onError("websocket error", e); - } - write(packets) { - this.writable = false; - for (let i = 0;i < packets.length; i++) { - const packet = packets[i]; - const lastPacket = i === packets.length - 1; - (0, engine_io_parser_1.encodePacket)(packet, this.supportsBinary, (data) => { - try { - this.doWrite(packet, data); - } catch (e) { - debug("websocket closed before onclose event"); - } - if (lastPacket) { - (0, globals_node_js_1.nextTick)(() => { - this.writable = true; - this.emitReserved("drain"); - }, this.setTimeoutFn); - } - }); - } - } - doClose() { - if (typeof this.ws !== "undefined") { - this.ws.onerror = () => {}; - this.ws.close(); - this.ws = null; - } - } - uri() { - const schema = this.opts.secure ? "wss" : "ws"; - const query = this.query || {}; - if (this.opts.timestampRequests) { - query[this.opts.timestampParam] = (0, util_js_1.randomString)(); - } - if (!this.supportsBinary) { - query.b64 = 1; - } - return this.createUri(schema, query); - } - } - exports2.BaseWS = BaseWS; - var WebSocketCtor = globals_node_js_1.globalThisShim.WebSocket || globals_node_js_1.globalThisShim.MozWebSocket; - - class WS extends BaseWS { - createSocket(uri, protocols, opts) { - return !isReactNative ? protocols ? new WebSocketCtor(uri, protocols) : new WebSocketCtor(uri) : new WebSocketCtor(uri, protocols, opts); - } - doWrite(_packet, data) { - this.ws.send(data); - } - } - exports2.WS = WS; -}); - -// node_modules/engine.io-client/build/cjs/transports/websocket.node.js -var require_websocket_node = __commonJS((exports2) => { - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === undefined) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.WS = undefined; - var ws = __importStar(require_ws()); - var websocket_js_1 = require_websocket4(); - - class WS extends websocket_js_1.BaseWS { - createSocket(uri, protocols, opts) { - var _a; - if ((_a = this.socket) === null || _a === undefined ? undefined : _a._cookieJar) { - opts.headers = opts.headers || {}; - opts.headers.cookie = typeof opts.headers.cookie === "string" ? [opts.headers.cookie] : opts.headers.cookie || []; - for (const [name, cookie] of this.socket._cookieJar.cookies) { - opts.headers.cookie.push(`${name}=${cookie.value}`); - } - } - return new ws.WebSocket(uri, protocols, opts); - } - doWrite(packet, data) { - const opts = {}; - if (packet.options) { - opts.compress = packet.options.compress; - } - if (this.opts.perMessageDeflate) { - const len = typeof data === "string" ? Buffer.byteLength(data) : data.length; - if (len < this.opts.perMessageDeflate.threshold) { - opts.compress = false; - } - } - this.ws.send(data, opts); - } - } - exports2.WS = WS; -}); - -// node_modules/engine.io-client/build/cjs/transports/webtransport.js -var require_webtransport2 = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.WT = undefined; - var transport_js_1 = require_transport2(); - var globals_node_js_1 = require_globals_node(); - var engine_io_parser_1 = require_cjs(); - var debug_1 = __importDefault(require_src5()); - var debug = (0, debug_1.default)("engine.io-client:webtransport"); - - class WT extends transport_js_1.Transport { - get name() { - return "webtransport"; - } - doOpen() { - try { - this._transport = new WebTransport(this.createUri("https"), this.opts.transportOptions[this.name]); - } catch (err) { - return this.emitReserved("error", err); - } - this._transport.closed.then(() => { - debug("transport closed gracefully"); - this.onClose(); - }).catch((err) => { - debug("transport closed due to %s", err); - this.onError("webtransport error", err); - }); - this._transport.ready.then(() => { - this._transport.createBidirectionalStream().then((stream) => { - const decoderStream = (0, engine_io_parser_1.createPacketDecoderStream)(Number.MAX_SAFE_INTEGER, this.socket.binaryType); - const reader = stream.readable.pipeThrough(decoderStream).getReader(); - const encoderStream = (0, engine_io_parser_1.createPacketEncoderStream)(); - encoderStream.readable.pipeTo(stream.writable); - this._writer = encoderStream.writable.getWriter(); - const read = () => { - reader.read().then(({ done, value }) => { - if (done) { - debug("session is closed"); - return; - } - debug("received chunk: %o", value); - this.onPacket(value); - read(); - }).catch((err) => { - debug("an error occurred while reading: %s", err); - }); - }; - read(); - const packet = { type: "open" }; - if (this.query.sid) { - packet.data = `{"sid":"${this.query.sid}"}`; - } - this._writer.write(packet).then(() => this.onOpen()); - }); - }); - } - write(packets) { - this.writable = false; - for (let i = 0;i < packets.length; i++) { - const packet = packets[i]; - const lastPacket = i === packets.length - 1; - this._writer.write(packet).then(() => { - if (lastPacket) { - (0, globals_node_js_1.nextTick)(() => { - this.writable = true; - this.emitReserved("drain"); - }, this.setTimeoutFn); - } - }); - } - } - doClose() { - var _a; - (_a = this._transport) === null || _a === undefined || _a.close(); - } - } - exports2.WT = WT; -}); - -// node_modules/engine.io-client/build/cjs/transports/index.js -var require_transports2 = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.transports = undefined; - var polling_xhr_node_js_1 = require_polling_xhr_node(); - var websocket_node_js_1 = require_websocket_node(); - var webtransport_js_1 = require_webtransport2(); - exports2.transports = { - websocket: websocket_node_js_1.WS, - webtransport: webtransport_js_1.WT, - polling: polling_xhr_node_js_1.XHR - }; -}); - -// node_modules/engine.io-client/build/cjs/contrib/parseuri.js -var require_parseuri = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.parse = parse; - var re = /^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/; - var parts = [ - "source", - "protocol", - "authority", - "userInfo", - "user", - "password", - "host", - "port", - "relative", - "path", - "directory", - "file", - "query", - "anchor" - ]; - function parse(str) { - if (str.length > 8000) { - throw "URI too long"; - } - const src = str, b = str.indexOf("["), e = str.indexOf("]"); - if (b != -1 && e != -1) { - str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ";") + str.substring(e, str.length); - } - let m = re.exec(str || ""), uri = {}, i = 14; - while (i--) { - uri[parts[i]] = m[i] || ""; - } - if (b != -1 && e != -1) { - uri.source = src; - uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ":"); - uri.authority = uri.authority.replace("[", "").replace("]", "").replace(/;/g, ":"); - uri.ipv6uri = true; - } - uri.pathNames = pathNames(uri, uri["path"]); - uri.queryKey = queryKey(uri, uri["query"]); - return uri; - } - function pathNames(obj, path) { - const regx = /\/{2,9}/g, names = path.replace(regx, "/").split("/"); - if (path.slice(0, 1) == "/" || path.length === 0) { - names.splice(0, 1); - } - if (path.slice(-1) == "/") { - names.splice(names.length - 1, 1); - } - return names; - } - function queryKey(uri, query) { - const data = {}; - query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function($0, $1, $2) { - if ($1) { - data[$1] = $2; - } - }); - return data; - } -}); - -// node_modules/engine.io-client/build/cjs/socket.js -var require_socket3 = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Socket = exports2.SocketWithUpgrade = exports2.SocketWithoutUpgrade = undefined; - var index_js_1 = require_transports2(); - var util_js_1 = require_util(); - var parseqs_js_1 = require_parseqs(); - var parseuri_js_1 = require_parseuri(); - var component_emitter_1 = require_cjs2(); - var engine_io_parser_1 = require_cjs(); - var globals_node_js_1 = require_globals_node(); - var debug_1 = __importDefault(require_src5()); - var debug = (0, debug_1.default)("engine.io-client:socket"); - var withEventListeners = typeof addEventListener === "function" && typeof removeEventListener === "function"; - var OFFLINE_EVENT_LISTENERS = []; - if (withEventListeners) { - addEventListener("offline", () => { - debug("closing %d connection(s) because the network was lost", OFFLINE_EVENT_LISTENERS.length); - OFFLINE_EVENT_LISTENERS.forEach((listener) => listener()); - }, false); - } - - class SocketWithoutUpgrade extends component_emitter_1.Emitter { - constructor(uri, opts) { - super(); - this.binaryType = globals_node_js_1.defaultBinaryType; - this.writeBuffer = []; - this._prevBufferLen = 0; - this._pingInterval = -1; - this._pingTimeout = -1; - this._maxPayload = -1; - this._pingTimeoutTime = Infinity; - if (uri && typeof uri === "object") { - opts = uri; - uri = null; - } - if (uri) { - const parsedUri = (0, parseuri_js_1.parse)(uri); - opts.hostname = parsedUri.host; - opts.secure = parsedUri.protocol === "https" || parsedUri.protocol === "wss"; - opts.port = parsedUri.port; - if (parsedUri.query) - opts.query = parsedUri.query; - } else if (opts.host) { - opts.hostname = (0, parseuri_js_1.parse)(opts.host).host; - } - (0, util_js_1.installTimerFunctions)(this, opts); - this.secure = opts.secure != null ? opts.secure : typeof location !== "undefined" && location.protocol === "https:"; - if (opts.hostname && !opts.port) { - opts.port = this.secure ? "443" : "80"; - } - this.hostname = opts.hostname || (typeof location !== "undefined" ? location.hostname : "localhost"); - this.port = opts.port || (typeof location !== "undefined" && location.port ? location.port : this.secure ? "443" : "80"); - this.transports = []; - this._transportsByName = {}; - opts.transports.forEach((t) => { - const transportName = t.prototype.name; - this.transports.push(transportName); - this._transportsByName[transportName] = t; - }); - this.opts = Object.assign({ - path: "/engine.io", - agent: false, - withCredentials: false, - upgrade: true, - timestampParam: "t", - rememberUpgrade: false, - addTrailingSlash: true, - rejectUnauthorized: true, - perMessageDeflate: { - threshold: 1024 - }, - transportOptions: {}, - closeOnBeforeunload: false - }, opts); - this.opts.path = this.opts.path.replace(/\/$/, "") + (this.opts.addTrailingSlash ? "/" : ""); - if (typeof this.opts.query === "string") { - this.opts.query = (0, parseqs_js_1.decode)(this.opts.query); - } - if (withEventListeners) { - if (this.opts.closeOnBeforeunload) { - this._beforeunloadEventListener = () => { - if (this.transport) { - this.transport.removeAllListeners(); - this.transport.close(); - } - }; - addEventListener("beforeunload", this._beforeunloadEventListener, false); - } - if (this.hostname !== "localhost") { - debug("adding listener for the 'offline' event"); - this._offlineEventListener = () => { - this._onClose("transport close", { - description: "network connection lost" - }); - }; - OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener); - } - } - if (this.opts.withCredentials) { - this._cookieJar = (0, globals_node_js_1.createCookieJar)(); - } - this._open(); - } - createTransport(name) { - debug('creating transport "%s"', name); - const query = Object.assign({}, this.opts.query); - query.EIO = engine_io_parser_1.protocol; - query.transport = name; - if (this.id) - query.sid = this.id; - const opts = Object.assign({}, this.opts, { - query, - socket: this, - hostname: this.hostname, - secure: this.secure, - port: this.port - }, this.opts.transportOptions[name]); - debug("options: %j", opts); - return new this._transportsByName[name](opts); - } - _open() { - if (this.transports.length === 0) { - this.setTimeoutFn(() => { - this.emitReserved("error", "No transports available"); - }, 0); - return; - } - const transportName = this.opts.rememberUpgrade && SocketWithoutUpgrade.priorWebsocketSuccess && this.transports.indexOf("websocket") !== -1 ? "websocket" : this.transports[0]; - this.readyState = "opening"; - const transport = this.createTransport(transportName); - transport.open(); - this.setTransport(transport); - } - setTransport(transport) { - debug("setting transport %s", transport.name); - if (this.transport) { - debug("clearing existing transport %s", this.transport.name); - this.transport.removeAllListeners(); - } - this.transport = transport; - transport.on("drain", this._onDrain.bind(this)).on("packet", this._onPacket.bind(this)).on("error", this._onError.bind(this)).on("close", (reason) => this._onClose("transport close", reason)); - } - onOpen() { - debug("socket open"); - this.readyState = "open"; - SocketWithoutUpgrade.priorWebsocketSuccess = this.transport.name === "websocket"; - this.emitReserved("open"); - this.flush(); - } - _onPacket(packet) { - if (this.readyState === "opening" || this.readyState === "open" || this.readyState === "closing") { - debug('socket receive: type "%s", data "%s"', packet.type, packet.data); - this.emitReserved("packet", packet); - this.emitReserved("heartbeat"); - switch (packet.type) { - case "open": - this.onHandshake(JSON.parse(packet.data)); - break; - case "ping": - this._sendPacket("pong"); - this.emitReserved("ping"); - this.emitReserved("pong"); - this._resetPingTimeout(); - break; - case "error": - const err = new Error("server error"); - err.code = packet.data; - this._onError(err); - break; - case "message": - this.emitReserved("data", packet.data); - this.emitReserved("message", packet.data); - break; - } - } else { - debug('packet received with socket readyState "%s"', this.readyState); - } - } - onHandshake(data) { - this.emitReserved("handshake", data); - this.id = data.sid; - this.transport.query.sid = data.sid; - this._pingInterval = data.pingInterval; - this._pingTimeout = data.pingTimeout; - this._maxPayload = data.maxPayload; - this.onOpen(); - if (this.readyState === "closed") - return; - this._resetPingTimeout(); - } - _resetPingTimeout() { - this.clearTimeoutFn(this._pingTimeoutTimer); - const delay = this._pingInterval + this._pingTimeout; - this._pingTimeoutTime = Date.now() + delay; - this._pingTimeoutTimer = this.setTimeoutFn(() => { - this._onClose("ping timeout"); - }, delay); - if (this.opts.autoUnref) { - this._pingTimeoutTimer.unref(); - } - } - _onDrain() { - this.writeBuffer.splice(0, this._prevBufferLen); - this._prevBufferLen = 0; - if (this.writeBuffer.length === 0) { - this.emitReserved("drain"); - } else { - this.flush(); - } - } - flush() { - if (this.readyState !== "closed" && this.transport.writable && !this.upgrading && this.writeBuffer.length) { - const packets = this._getWritablePackets(); - debug("flushing %d packets in socket", packets.length); - this.transport.send(packets); - this._prevBufferLen = packets.length; - this.emitReserved("flush"); - } - } - _getWritablePackets() { - const shouldCheckPayloadSize = this._maxPayload && this.transport.name === "polling" && this.writeBuffer.length > 1; - if (!shouldCheckPayloadSize) { - return this.writeBuffer; - } - let payloadSize = 1; - for (let i = 0;i < this.writeBuffer.length; i++) { - const data = this.writeBuffer[i].data; - if (data) { - payloadSize += (0, util_js_1.byteLength)(data); - } - if (i > 0 && payloadSize > this._maxPayload) { - debug("only send %d out of %d packets", i, this.writeBuffer.length); - return this.writeBuffer.slice(0, i); - } - payloadSize += 2; - } - debug("payload size is %d (max: %d)", payloadSize, this._maxPayload); - return this.writeBuffer; - } - _hasPingExpired() { - if (!this._pingTimeoutTime) - return true; - const hasExpired = Date.now() > this._pingTimeoutTime; - if (hasExpired) { - debug("throttled timer detected, scheduling connection close"); - this._pingTimeoutTime = 0; - (0, globals_node_js_1.nextTick)(() => { - this._onClose("ping timeout"); - }, this.setTimeoutFn); - } - return hasExpired; - } - write(msg, options, fn) { - this._sendPacket("message", msg, options, fn); - return this; - } - send(msg, options, fn) { - this._sendPacket("message", msg, options, fn); - return this; - } - _sendPacket(type, data, options, fn) { - if (typeof data === "function") { - fn = data; - data = undefined; - } - if (typeof options === "function") { - fn = options; - options = null; - } - if (this.readyState === "closing" || this.readyState === "closed") { - return; - } - options = options || {}; - options.compress = options.compress !== false; - const packet = { - type, - data, - options - }; - this.emitReserved("packetCreate", packet); - this.writeBuffer.push(packet); - if (fn) - this.once("flush", fn); - this.flush(); - } - close() { - const close = () => { - this._onClose("forced close"); - debug("socket closing - telling transport to close"); - this.transport.close(); - }; - const cleanupAndClose = () => { - this.off("upgrade", cleanupAndClose); - this.off("upgradeError", cleanupAndClose); - close(); - }; - const waitForUpgrade = () => { - this.once("upgrade", cleanupAndClose); - this.once("upgradeError", cleanupAndClose); - }; - if (this.readyState === "opening" || this.readyState === "open") { - this.readyState = "closing"; - if (this.writeBuffer.length) { - this.once("drain", () => { - if (this.upgrading) { - waitForUpgrade(); - } else { - close(); - } - }); - } else if (this.upgrading) { - waitForUpgrade(); - } else { - close(); - } - } - return this; - } - _onError(err) { - debug("socket error %j", err); - SocketWithoutUpgrade.priorWebsocketSuccess = false; - if (this.opts.tryAllTransports && this.transports.length > 1 && this.readyState === "opening") { - debug("trying next transport"); - this.transports.shift(); - return this._open(); - } - this.emitReserved("error", err); - this._onClose("transport error", err); - } - _onClose(reason, description) { - if (this.readyState === "opening" || this.readyState === "open" || this.readyState === "closing") { - debug('socket close with reason: "%s"', reason); - this.clearTimeoutFn(this._pingTimeoutTimer); - this.transport.removeAllListeners("close"); - this.transport.close(); - this.transport.removeAllListeners(); - if (withEventListeners) { - if (this._beforeunloadEventListener) { - removeEventListener("beforeunload", this._beforeunloadEventListener, false); - } - if (this._offlineEventListener) { - const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener); - if (i !== -1) { - debug("removing listener for the 'offline' event"); - OFFLINE_EVENT_LISTENERS.splice(i, 1); - } - } - } - this.readyState = "closed"; - this.id = null; - this.emitReserved("close", reason, description); - this.writeBuffer = []; - this._prevBufferLen = 0; - } - } - } - exports2.SocketWithoutUpgrade = SocketWithoutUpgrade; - SocketWithoutUpgrade.protocol = engine_io_parser_1.protocol; - - class SocketWithUpgrade extends SocketWithoutUpgrade { - constructor() { - super(...arguments); - this._upgrades = []; - } - onOpen() { - super.onOpen(); - if (this.readyState === "open" && this.opts.upgrade) { - debug("starting upgrade probes"); - for (let i = 0;i < this._upgrades.length; i++) { - this._probe(this._upgrades[i]); - } - } - } - _probe(name) { - debug('probing transport "%s"', name); - let transport = this.createTransport(name); - let failed = false; - SocketWithoutUpgrade.priorWebsocketSuccess = false; - const onTransportOpen = () => { - if (failed) - return; - debug('probe transport "%s" opened', name); - transport.send([{ type: "ping", data: "probe" }]); - transport.once("packet", (msg) => { - if (failed) - return; - if (msg.type === "pong" && msg.data === "probe") { - debug('probe transport "%s" pong', name); - this.upgrading = true; - this.emitReserved("upgrading", transport); - if (!transport) - return; - SocketWithoutUpgrade.priorWebsocketSuccess = transport.name === "websocket"; - debug('pausing current transport "%s"', this.transport.name); - this.transport.pause(() => { - if (failed) - return; - if (this.readyState === "closed") - return; - debug("changing transport and sending upgrade packet"); - cleanup(); - this.setTransport(transport); - transport.send([{ type: "upgrade" }]); - this.emitReserved("upgrade", transport); - transport = null; - this.upgrading = false; - this.flush(); - }); - } else { - debug('probe transport "%s" failed', name); - const err = new Error("probe error"); - err.transport = transport.name; - this.emitReserved("upgradeError", err); - } - }); - }; - function freezeTransport() { - if (failed) - return; - failed = true; - cleanup(); - transport.close(); - transport = null; - } - const onerror = (err) => { - const error = new Error("probe error: " + err); - error.transport = transport.name; - freezeTransport(); - debug('probe transport "%s" failed because of error: %s', name, err); - this.emitReserved("upgradeError", error); - }; - function onTransportClose() { - onerror("transport closed"); - } - function onclose() { - onerror("socket closed"); - } - function onupgrade(to) { - if (transport && to.name !== transport.name) { - debug('"%s" works - aborting "%s"', to.name, transport.name); - freezeTransport(); - } - } - const cleanup = () => { - transport.removeListener("open", onTransportOpen); - transport.removeListener("error", onerror); - transport.removeListener("close", onTransportClose); - this.off("close", onclose); - this.off("upgrading", onupgrade); - }; - transport.once("open", onTransportOpen); - transport.once("error", onerror); - transport.once("close", onTransportClose); - this.once("close", onclose); - this.once("upgrading", onupgrade); - if (this._upgrades.indexOf("webtransport") !== -1 && name !== "webtransport") { - this.setTimeoutFn(() => { - if (!failed) { - transport.open(); - } - }, 200); - } else { - transport.open(); - } - } - onHandshake(data) { - this._upgrades = this._filterUpgrades(data.upgrades); - super.onHandshake(data); - } - _filterUpgrades(upgrades) { - const filteredUpgrades = []; - for (let i = 0;i < upgrades.length; i++) { - if (~this.transports.indexOf(upgrades[i])) - filteredUpgrades.push(upgrades[i]); - } - return filteredUpgrades; - } - } - exports2.SocketWithUpgrade = SocketWithUpgrade; - - class Socket extends SocketWithUpgrade { - constructor(uri, opts = {}) { - const o = typeof uri === "object" ? uri : opts; - if (!o.transports || o.transports && typeof o.transports[0] === "string") { - o.transports = (o.transports || ["polling", "websocket", "webtransport"]).map((transportName) => index_js_1.transports[transportName]).filter((t) => !!t); - } - super(uri, o); - } - } - exports2.Socket = Socket; -}); - -// node_modules/engine.io-client/build/cjs/transports/polling-fetch.js -var require_polling_fetch = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Fetch = undefined; - var polling_js_1 = require_polling3(); - - class Fetch extends polling_js_1.Polling { - doPoll() { - this._fetch().then((res) => { - if (!res.ok) { - return this.onError("fetch read error", res.status, res); - } - res.text().then((data) => this.onData(data)); - }).catch((err) => { - this.onError("fetch read error", err); - }); - } - doWrite(data, callback) { - this._fetch(data).then((res) => { - if (!res.ok) { - return this.onError("fetch write error", res.status, res); - } - callback(); - }).catch((err) => { - this.onError("fetch write error", err); - }); - } - _fetch(data) { - var _a; - const isPost = data !== undefined; - const headers = new Headers(this.opts.extraHeaders); - if (isPost) { - headers.set("content-type", "text/plain;charset=UTF-8"); - } - (_a = this.socket._cookieJar) === null || _a === undefined || _a.appendCookies(headers); - return fetch(this.uri(), { - method: isPost ? "POST" : "GET", - body: isPost ? data : null, - headers, - credentials: this.opts.withCredentials ? "include" : "omit" - }).then((res) => { - var _a2; - (_a2 = this.socket._cookieJar) === null || _a2 === undefined || _a2.parseCookies(res.headers.getSetCookie()); - return res; - }); - } - } - exports2.Fetch = Fetch; -}); - -// node_modules/engine.io-client/build/cjs/index.js -var require_cjs4 = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.WebTransport = exports2.WebSocket = exports2.NodeWebSocket = exports2.XHR = exports2.NodeXHR = exports2.Fetch = exports2.nextTick = exports2.parse = exports2.installTimerFunctions = exports2.transports = exports2.TransportError = exports2.Transport = exports2.protocol = exports2.SocketWithUpgrade = exports2.SocketWithoutUpgrade = exports2.Socket = undefined; - var socket_js_1 = require_socket3(); - Object.defineProperty(exports2, "Socket", { enumerable: true, get: function() { - return socket_js_1.Socket; - } }); - var socket_js_2 = require_socket3(); - Object.defineProperty(exports2, "SocketWithoutUpgrade", { enumerable: true, get: function() { - return socket_js_2.SocketWithoutUpgrade; - } }); - Object.defineProperty(exports2, "SocketWithUpgrade", { enumerable: true, get: function() { - return socket_js_2.SocketWithUpgrade; - } }); - exports2.protocol = socket_js_1.Socket.protocol; - var transport_js_1 = require_transport2(); - Object.defineProperty(exports2, "Transport", { enumerable: true, get: function() { - return transport_js_1.Transport; - } }); - Object.defineProperty(exports2, "TransportError", { enumerable: true, get: function() { - return transport_js_1.TransportError; - } }); - var index_js_1 = require_transports2(); - Object.defineProperty(exports2, "transports", { enumerable: true, get: function() { - return index_js_1.transports; - } }); - var util_js_1 = require_util(); - Object.defineProperty(exports2, "installTimerFunctions", { enumerable: true, get: function() { - return util_js_1.installTimerFunctions; - } }); - var parseuri_js_1 = require_parseuri(); - Object.defineProperty(exports2, "parse", { enumerable: true, get: function() { - return parseuri_js_1.parse; - } }); - var globals_node_js_1 = require_globals_node(); - Object.defineProperty(exports2, "nextTick", { enumerable: true, get: function() { - return globals_node_js_1.nextTick; - } }); - var polling_fetch_js_1 = require_polling_fetch(); - Object.defineProperty(exports2, "Fetch", { enumerable: true, get: function() { - return polling_fetch_js_1.Fetch; - } }); - var polling_xhr_node_js_1 = require_polling_xhr_node(); - Object.defineProperty(exports2, "NodeXHR", { enumerable: true, get: function() { - return polling_xhr_node_js_1.XHR; - } }); - var polling_xhr_js_1 = require_polling_xhr(); - Object.defineProperty(exports2, "XHR", { enumerable: true, get: function() { - return polling_xhr_js_1.XHR; - } }); - var websocket_node_js_1 = require_websocket_node(); - Object.defineProperty(exports2, "NodeWebSocket", { enumerable: true, get: function() { - return websocket_node_js_1.WS; - } }); - var websocket_js_1 = require_websocket4(); - Object.defineProperty(exports2, "WebSocket", { enumerable: true, get: function() { - return websocket_js_1.WS; - } }); - var webtransport_js_1 = require_webtransport2(); - Object.defineProperty(exports2, "WebTransport", { enumerable: true, get: function() { - return webtransport_js_1.WT; - } }); -}); - -// node_modules/socket.io-client/build/cjs/url.js -var require_url = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.url = url; - var engine_io_client_1 = require_cjs4(); - var debug_1 = __importDefault(require_src3()); - var debug = (0, debug_1.default)("socket.io-client:url"); - function url(uri, path = "", loc) { - let obj = uri; - loc = loc || typeof location !== "undefined" && location; - if (uri == null) - uri = loc.protocol + "//" + loc.host; - if (typeof uri === "string") { - if (uri.charAt(0) === "/") { - if (uri.charAt(1) === "/") { - uri = loc.protocol + uri; - } else { - uri = loc.host + uri; - } - } - if (!/^(https?|wss?):\/\//.test(uri)) { - debug("protocol-less url %s", uri); - if (typeof loc !== "undefined") { - uri = loc.protocol + "//" + uri; - } else { - uri = "https://" + uri; - } - } - debug("parse %s", uri); - obj = (0, engine_io_client_1.parse)(uri); - } - if (!obj.port) { - if (/^(http|ws)$/.test(obj.protocol)) { - obj.port = "80"; - } else if (/^(http|ws)s$/.test(obj.protocol)) { - obj.port = "443"; - } - } - obj.path = obj.path || "/"; - const ipv6 = obj.host.indexOf(":") !== -1; - const host = ipv6 ? "[" + obj.host + "]" : obj.host; - obj.id = obj.protocol + "://" + host + ":" + obj.port + path; - obj.href = obj.protocol + "://" + host + (loc && loc.port === obj.port ? "" : ":" + obj.port); - return obj; - } -}); - -// node_modules/socket.io-client/build/cjs/on.js -var require_on = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.on = on2; - function on2(obj, ev, fn) { - obj.on(ev, fn); - return function subDestroy() { - obj.off(ev, fn); - }; - } -}); - -// node_modules/socket.io-client/build/cjs/socket.js -var require_socket4 = __commonJS((exports2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Socket = undefined; - var socket_io_parser_1 = require_cjs3(); - var on_js_1 = require_on(); - var component_emitter_1 = require_cjs2(); - var debug_1 = __importDefault(require_src3()); - var debug = (0, debug_1.default)("socket.io-client:socket"); - var RESERVED_EVENTS = Object.freeze({ - connect: 1, - connect_error: 1, - disconnect: 1, - disconnecting: 1, - newListener: 1, - removeListener: 1 - }); - - class Socket extends component_emitter_1.Emitter { - constructor(io, nsp, opts) { - super(); - this.connected = false; - this.recovered = false; - this.receiveBuffer = []; - this.sendBuffer = []; - this._queue = []; - this._queueSeq = 0; - this.ids = 0; - this.acks = {}; - this.flags = {}; - this.io = io; - this.nsp = nsp; - if (opts && opts.auth) { - this.auth = opts.auth; - } - this._opts = Object.assign({}, opts); - if (this.io._autoConnect) - this.open(); - } - get disconnected() { - return !this.connected; - } - subEvents() { - if (this.subs) - return; - const io = this.io; - this.subs = [ - (0, on_js_1.on)(io, "open", this.onopen.bind(this)), - (0, on_js_1.on)(io, "packet", this.onpacket.bind(this)), - (0, on_js_1.on)(io, "error", this.onerror.bind(this)), - (0, on_js_1.on)(io, "close", this.onclose.bind(this)) - ]; - } - get active() { - return !!this.subs; - } - connect() { - if (this.connected) - return this; - this.subEvents(); - if (!this.io["_reconnecting"]) - this.io.open(); - if (this.io._readyState === "open") - this.onopen(); - return this; - } - open() { - return this.connect(); - } - send(...args) { - args.unshift("message"); - this.emit.apply(this, args); - return this; - } - emit(ev, ...args) { - var _a, _b, _c; - if (RESERVED_EVENTS.hasOwnProperty(ev)) { - throw new Error('"' + ev.toString() + '" is a reserved event name'); - } - args.unshift(ev); - if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) { - this._addToQueue(args); - return this; - } - const packet = { - type: socket_io_parser_1.PacketType.EVENT, - data: args - }; - packet.options = {}; - packet.options.compress = this.flags.compress !== false; - if (typeof args[args.length - 1] === "function") { - const id = this.ids++; - debug("emitting packet with ack id %d", id); - const ack = args.pop(); - this._registerAckCallback(id, ack); - packet.id = id; - } - const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === undefined ? undefined : _a.transport) === null || _b === undefined ? undefined : _b.writable; - const isConnected = this.connected && !((_c = this.io.engine) === null || _c === undefined ? undefined : _c._hasPingExpired()); - const discardPacket = this.flags.volatile && !isTransportWritable; - if (discardPacket) { - debug("discard packet as the transport is not currently writable"); - } else if (isConnected) { - this.notifyOutgoingListeners(packet); - this.packet(packet); - } else { - this.sendBuffer.push(packet); - } - this.flags = {}; - return this; - } - _registerAckCallback(id, ack) { - var _a; - const timeout = (_a = this.flags.timeout) !== null && _a !== undefined ? _a : this._opts.ackTimeout; - if (timeout === undefined) { - this.acks[id] = ack; - return; - } - const timer = this.io.setTimeoutFn(() => { - delete this.acks[id]; - for (let i = 0;i < this.sendBuffer.length; i++) { - if (this.sendBuffer[i].id === id) { - debug("removing packet with ack id %d from the buffer", id); - this.sendBuffer.splice(i, 1); - } - } - debug("event with ack id %d has timed out after %d ms", id, timeout); - ack.call(this, new Error("operation has timed out")); - }, timeout); - const fn = (...args) => { - this.io.clearTimeoutFn(timer); - ack.apply(this, args); - }; - fn.withError = true; - this.acks[id] = fn; - } - emitWithAck(ev, ...args) { - return new Promise((resolve, reject) => { - const fn = (arg1, arg2) => { - return arg1 ? reject(arg1) : resolve(arg2); - }; - fn.withError = true; - args.push(fn); - this.emit(ev, ...args); - }); - } - _addToQueue(args) { - let ack; - if (typeof args[args.length - 1] === "function") { - ack = args.pop(); - } - const packet = { - id: this._queueSeq++, - tryCount: 0, - pending: false, - args, - flags: Object.assign({ fromQueue: true }, this.flags) - }; - args.push((err, ...responseArgs) => { - if (packet !== this._queue[0]) { - return debug("packet [%d] already acknowledged", packet.id); - } - const hasError = err !== null; - if (hasError) { - if (packet.tryCount > this._opts.retries) { - debug("packet [%d] is discarded after %d tries", packet.id, packet.tryCount); - this._queue.shift(); - if (ack) { - ack(err); - } - } - } else { - debug("packet [%d] was successfully sent", packet.id); - this._queue.shift(); - if (ack) { - ack(null, ...responseArgs); - } - } - packet.pending = false; - return this._drainQueue(); - }); - this._queue.push(packet); - this._drainQueue(); - } - _drainQueue(force = false) { - debug("draining queue"); - if (!this.connected || this._queue.length === 0) { - return; - } - const packet = this._queue[0]; - if (packet.pending && !force) { - debug("packet [%d] has already been sent and is waiting for an ack", packet.id); - return; - } - packet.pending = true; - packet.tryCount++; - debug("sending packet [%d] (try n°%d)", packet.id, packet.tryCount); - this.flags = packet.flags; - this.emit.apply(this, packet.args); - } - packet(packet) { - packet.nsp = this.nsp; - this.io._packet(packet); - } - onopen() { - debug("transport is open - connecting"); - if (typeof this.auth == "function") { - this.auth((data) => { - this._sendConnectPacket(data); - }); - } else { - this._sendConnectPacket(this.auth); - } - } - _sendConnectPacket(data) { - this.packet({ - type: socket_io_parser_1.PacketType.CONNECT, - data: this._pid ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data) : data - }); - } - onerror(err) { - if (!this.connected) { - this.emitReserved("connect_error", err); - } - } - onclose(reason, description) { - debug("close (%s)", reason); - this.connected = false; - delete this.id; - this.emitReserved("disconnect", reason, description); - this._clearAcks(); - } - _clearAcks() { - Object.keys(this.acks).forEach((id) => { - const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id); - if (!isBuffered) { - const ack = this.acks[id]; - delete this.acks[id]; - if (ack.withError) { - ack.call(this, new Error("socket has been disconnected")); - } - } - }); - } - onpacket(packet) { - const sameNamespace = packet.nsp === this.nsp; - if (!sameNamespace) - return; - switch (packet.type) { - case socket_io_parser_1.PacketType.CONNECT: - if (packet.data && packet.data.sid) { - this.onconnect(packet.data.sid, packet.data.pid); - } else { - this.emitReserved("connect_error", new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)")); - } - break; - case socket_io_parser_1.PacketType.EVENT: - case socket_io_parser_1.PacketType.BINARY_EVENT: - this.onevent(packet); - break; - case socket_io_parser_1.PacketType.ACK: - case socket_io_parser_1.PacketType.BINARY_ACK: - this.onack(packet); - break; - case socket_io_parser_1.PacketType.DISCONNECT: - this.ondisconnect(); - break; - case socket_io_parser_1.PacketType.CONNECT_ERROR: - this.destroy(); - const err = new Error(packet.data.message); - err.data = packet.data.data; - this.emitReserved("connect_error", err); - break; - } - } - onevent(packet) { - const args = packet.data || []; - debug("emitting event %j", args); - if (packet.id != null) { - debug("attaching ack callback to event"); - args.push(this.ack(packet.id)); - } - if (this.connected) { - this.emitEvent(args); - } else { - this.receiveBuffer.push(Object.freeze(args)); - } - } - emitEvent(args) { - if (this._anyListeners && this._anyListeners.length) { - const listeners = this._anyListeners.slice(); - for (const listener of listeners) { - listener.apply(this, args); - } - } - super.emit.apply(this, args); - if (this._pid && args.length && typeof args[args.length - 1] === "string") { - this._lastOffset = args[args.length - 1]; - } - } - ack(id) { - const self = this; - let sent = false; - return function(...args) { - if (sent) - return; - sent = true; - debug("sending ack %j", args); - self.packet({ - type: socket_io_parser_1.PacketType.ACK, - id, - data: args - }); - }; - } - onack(packet) { - const ack = this.acks[packet.id]; - if (typeof ack !== "function") { - debug("bad ack %s", packet.id); - return; - } - delete this.acks[packet.id]; - debug("calling ack %s with %j", packet.id, packet.data); - if (ack.withError) { - packet.data.unshift(null); - } - ack.apply(this, packet.data); - } - onconnect(id, pid) { - debug("socket connected with id %s", id); - this.id = id; - this.recovered = pid && this._pid === pid; - this._pid = pid; - this.connected = true; - this.emitBuffered(); - this._drainQueue(true); - this.emitReserved("connect"); - } - emitBuffered() { - this.receiveBuffer.forEach((args) => this.emitEvent(args)); - this.receiveBuffer = []; - this.sendBuffer.forEach((packet) => { - this.notifyOutgoingListeners(packet); - this.packet(packet); - }); - this.sendBuffer = []; - } - ondisconnect() { - debug("server disconnect (%s)", this.nsp); - this.destroy(); - this.onclose("io server disconnect"); - } - destroy() { - if (this.subs) { - this.subs.forEach((subDestroy) => subDestroy()); - this.subs = undefined; - } - this.io["_destroy"](this); - } - disconnect() { - if (this.connected) { - debug("performing disconnect (%s)", this.nsp); - this.packet({ type: socket_io_parser_1.PacketType.DISCONNECT }); - } - this.destroy(); - if (this.connected) { - this.onclose("io client disconnect"); - } - return this; - } - close() { - return this.disconnect(); - } - compress(compress) { - this.flags.compress = compress; - return this; - } - get volatile() { - this.flags.volatile = true; - return this; - } - timeout(timeout) { - this.flags.timeout = timeout; - return this; - } - onAny(listener) { - this._anyListeners = this._anyListeners || []; - this._anyListeners.push(listener); - return this; - } - prependAny(listener) { - this._anyListeners = this._anyListeners || []; - this._anyListeners.unshift(listener); - return this; - } - offAny(listener) { - if (!this._anyListeners) { - return this; - } - if (listener) { - const listeners = this._anyListeners; - for (let i = 0;i < listeners.length; i++) { - if (listener === listeners[i]) { - listeners.splice(i, 1); - return this; - } - } - } else { - this._anyListeners = []; - } - return this; - } - listenersAny() { - return this._anyListeners || []; - } - onAnyOutgoing(listener) { - this._anyOutgoingListeners = this._anyOutgoingListeners || []; - this._anyOutgoingListeners.push(listener); - return this; - } - prependAnyOutgoing(listener) { - this._anyOutgoingListeners = this._anyOutgoingListeners || []; - this._anyOutgoingListeners.unshift(listener); - return this; - } - offAnyOutgoing(listener) { - if (!this._anyOutgoingListeners) { - return this; - } - if (listener) { - const listeners = this._anyOutgoingListeners; - for (let i = 0;i < listeners.length; i++) { - if (listener === listeners[i]) { - listeners.splice(i, 1); - return this; - } - } - } else { - this._anyOutgoingListeners = []; - } - return this; - } - listenersAnyOutgoing() { - return this._anyOutgoingListeners || []; - } - notifyOutgoingListeners(packet) { - if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) { - const listeners = this._anyOutgoingListeners.slice(); - for (const listener of listeners) { - listener.apply(this, packet.data); - } - } - } - } - exports2.Socket = Socket; -}); - -// node_modules/socket.io-client/build/cjs/contrib/backo2.js -var require_backo2 = __commonJS((exports2) => { - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Backoff = Backoff; - function Backoff(opts) { - opts = opts || {}; - this.ms = opts.min || 100; - this.max = opts.max || 1e4; - this.factor = opts.factor || 2; - this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; - this.attempts = 0; - } - Backoff.prototype.duration = function() { - var ms = this.ms * Math.pow(this.factor, this.attempts++); - if (this.jitter) { - var rand = Math.random(); - var deviation = Math.floor(rand * this.jitter * ms); - ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; - } - return Math.min(ms, this.max) | 0; - }; - Backoff.prototype.reset = function() { - this.attempts = 0; - }; - Backoff.prototype.setMin = function(min) { - this.ms = min; - }; - Backoff.prototype.setMax = function(max) { - this.max = max; - }; - Backoff.prototype.setJitter = function(jitter) { - this.jitter = jitter; - }; -}); - -// node_modules/socket.io-client/build/cjs/manager.js -var require_manager = __commonJS((exports2) => { - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) { - if (k2 === undefined) - k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m[k]; - } }; - } - Object.defineProperty(o, k2, desc); - } : function(o, m, k, k2) { - if (k2 === undefined) - k2 = k; - o[k2] = m[k]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - } : function(o, v) { - o["default"] = v; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) - return mod; - var result = {}; - if (mod != null) { - for (var k in mod) - if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) - __createBinding(result, mod, k); - } - __setModuleDefault(result, mod); - return result; - }; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Manager = undefined; - var engine_io_client_1 = require_cjs4(); - var socket_js_1 = require_socket4(); - var parser = __importStar(require_cjs3()); - var on_js_1 = require_on(); - var backo2_js_1 = require_backo2(); - var component_emitter_1 = require_cjs2(); - var debug_1 = __importDefault(require_src3()); - var debug = (0, debug_1.default)("socket.io-client:manager"); - - class Manager extends component_emitter_1.Emitter { - constructor(uri, opts) { - var _a; - super(); - this.nsps = {}; - this.subs = []; - if (uri && typeof uri === "object") { - opts = uri; - uri = undefined; - } - opts = opts || {}; - opts.path = opts.path || "/socket.io"; - this.opts = opts; - (0, engine_io_client_1.installTimerFunctions)(this, opts); - this.reconnection(opts.reconnection !== false); - this.reconnectionAttempts(opts.reconnectionAttempts || Infinity); - this.reconnectionDelay(opts.reconnectionDelay || 1000); - this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000); - this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== undefined ? _a : 0.5); - this.backoff = new backo2_js_1.Backoff({ - min: this.reconnectionDelay(), - max: this.reconnectionDelayMax(), - jitter: this.randomizationFactor() - }); - this.timeout(opts.timeout == null ? 20000 : opts.timeout); - this._readyState = "closed"; - this.uri = uri; - const _parser = opts.parser || parser; - this.encoder = new _parser.Encoder; - this.decoder = new _parser.Decoder; - this._autoConnect = opts.autoConnect !== false; - if (this._autoConnect) - this.open(); - } - reconnection(v) { - if (!arguments.length) - return this._reconnection; - this._reconnection = !!v; - if (!v) { - this.skipReconnect = true; - } - return this; - } - reconnectionAttempts(v) { - if (v === undefined) - return this._reconnectionAttempts; - this._reconnectionAttempts = v; - return this; - } - reconnectionDelay(v) { - var _a; - if (v === undefined) - return this._reconnectionDelay; - this._reconnectionDelay = v; - (_a = this.backoff) === null || _a === undefined || _a.setMin(v); - return this; - } - randomizationFactor(v) { - var _a; - if (v === undefined) - return this._randomizationFactor; - this._randomizationFactor = v; - (_a = this.backoff) === null || _a === undefined || _a.setJitter(v); - return this; - } - reconnectionDelayMax(v) { - var _a; - if (v === undefined) - return this._reconnectionDelayMax; - this._reconnectionDelayMax = v; - (_a = this.backoff) === null || _a === undefined || _a.setMax(v); - return this; - } - timeout(v) { - if (!arguments.length) - return this._timeout; - this._timeout = v; - return this; - } - maybeReconnectOnOpen() { - if (!this._reconnecting && this._reconnection && this.backoff.attempts === 0) { - this.reconnect(); - } - } - open(fn) { - debug("readyState %s", this._readyState); - if (~this._readyState.indexOf("open")) - return this; - debug("opening %s", this.uri); - this.engine = new engine_io_client_1.Socket(this.uri, this.opts); - const socket = this.engine; - const self = this; - this._readyState = "opening"; - this.skipReconnect = false; - const openSubDestroy = (0, on_js_1.on)(socket, "open", function() { - self.onopen(); - fn && fn(); - }); - const onError = (err) => { - debug("error"); - this.cleanup(); - this._readyState = "closed"; - this.emitReserved("error", err); - if (fn) { - fn(err); - } else { - this.maybeReconnectOnOpen(); - } - }; - const errorSub = (0, on_js_1.on)(socket, "error", onError); - if (this._timeout !== false) { - const timeout = this._timeout; - debug("connect attempt will timeout after %d", timeout); - const timer = this.setTimeoutFn(() => { - debug("connect attempt timed out after %d", timeout); - openSubDestroy(); - onError(new Error("timeout")); - socket.close(); - }, timeout); - if (this.opts.autoUnref) { - timer.unref(); - } - this.subs.push(() => { - this.clearTimeoutFn(timer); - }); - } - this.subs.push(openSubDestroy); - this.subs.push(errorSub); - return this; - } - connect(fn) { - return this.open(fn); - } - onopen() { - debug("open"); - this.cleanup(); - this._readyState = "open"; - this.emitReserved("open"); - const socket = this.engine; - this.subs.push((0, on_js_1.on)(socket, "ping", this.onping.bind(this)), (0, on_js_1.on)(socket, "data", this.ondata.bind(this)), (0, on_js_1.on)(socket, "error", this.onerror.bind(this)), (0, on_js_1.on)(socket, "close", this.onclose.bind(this)), (0, on_js_1.on)(this.decoder, "decoded", this.ondecoded.bind(this))); - } - onping() { - this.emitReserved("ping"); - } - ondata(data) { - try { - this.decoder.add(data); - } catch (e) { - this.onclose("parse error", e); - } - } - ondecoded(packet) { - (0, engine_io_client_1.nextTick)(() => { - this.emitReserved("packet", packet); - }, this.setTimeoutFn); - } - onerror(err) { - debug("error", err); - this.emitReserved("error", err); - } - socket(nsp, opts) { - let socket = this.nsps[nsp]; - if (!socket) { - socket = new socket_js_1.Socket(this, nsp, opts); - this.nsps[nsp] = socket; - } else if (this._autoConnect && !socket.active) { - socket.connect(); - } - return socket; - } - _destroy(socket) { - const nsps = Object.keys(this.nsps); - for (const nsp of nsps) { - const socket2 = this.nsps[nsp]; - if (socket2.active) { - debug("socket %s is still active, skipping close", nsp); - return; - } - } - this._close(); - } - _packet(packet) { - debug("writing packet %j", packet); - const encodedPackets = this.encoder.encode(packet); - for (let i = 0;i < encodedPackets.length; i++) { - this.engine.write(encodedPackets[i], packet.options); - } - } - cleanup() { - debug("cleanup"); - this.subs.forEach((subDestroy) => subDestroy()); - this.subs.length = 0; - this.decoder.destroy(); - } - _close() { - debug("disconnect"); - this.skipReconnect = true; - this._reconnecting = false; - this.onclose("forced close"); - } - disconnect() { - return this._close(); - } - onclose(reason, description) { - var _a; - debug("closed due to %s", reason); - this.cleanup(); - (_a = this.engine) === null || _a === undefined || _a.close(); - this.backoff.reset(); - this._readyState = "closed"; - this.emitReserved("close", reason, description); - if (this._reconnection && !this.skipReconnect) { - this.reconnect(); - } - } - reconnect() { - if (this._reconnecting || this.skipReconnect) - return this; - const self = this; - if (this.backoff.attempts >= this._reconnectionAttempts) { - debug("reconnect failed"); - this.backoff.reset(); - this.emitReserved("reconnect_failed"); - this._reconnecting = false; - } else { - const delay = this.backoff.duration(); - debug("will wait %dms before reconnect attempt", delay); - this._reconnecting = true; - const timer = this.setTimeoutFn(() => { - if (self.skipReconnect) - return; - debug("attempting reconnect"); - this.emitReserved("reconnect_attempt", self.backoff.attempts); - if (self.skipReconnect) - return; - self.open((err) => { - if (err) { - debug("reconnect attempt error"); - self._reconnecting = false; - self.reconnect(); - this.emitReserved("reconnect_error", err); - } else { - debug("reconnect success"); - self.onreconnect(); - } - }); - }, delay); - if (this.opts.autoUnref) { - timer.unref(); - } - this.subs.push(() => { - this.clearTimeoutFn(timer); - }); - } - } - onreconnect() { - const attempt = this.backoff.attempts; - this._reconnecting = false; - this.backoff.reset(); - this.emitReserved("reconnect", attempt); - } - } - exports2.Manager = Manager; -}); - -// node_modules/socket.io-client/build/cjs/index.js -var require_cjs5 = __commonJS((exports2, module2) => { - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { default: mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.WebTransport = exports2.WebSocket = exports2.NodeWebSocket = exports2.XHR = exports2.NodeXHR = exports2.Fetch = exports2.Socket = exports2.Manager = exports2.protocol = undefined; - exports2.io = lookup; - exports2.connect = lookup; - exports2.default = lookup; - var url_js_1 = require_url(); - var manager_js_1 = require_manager(); - Object.defineProperty(exports2, "Manager", { enumerable: true, get: function() { - return manager_js_1.Manager; - } }); - var socket_js_1 = require_socket4(); - Object.defineProperty(exports2, "Socket", { enumerable: true, get: function() { - return socket_js_1.Socket; - } }); - var debug_1 = __importDefault(require_src3()); - var debug = (0, debug_1.default)("socket.io-client"); - var cache = {}; - function lookup(uri, opts) { - if (typeof uri === "object") { - opts = uri; - uri = undefined; - } - opts = opts || {}; - const parsed = (0, url_js_1.url)(uri, opts.path || "/socket.io"); - const source2 = parsed.source; - const id = parsed.id; - const path = parsed.path; - const sameNamespace = cache[id] && path in cache[id]["nsps"]; - const newConnection = opts.forceNew || opts["force new connection"] || opts.multiplex === false || sameNamespace; - let io; - if (newConnection) { - debug("ignoring socket cache for %s", source2); - io = new manager_js_1.Manager(source2, opts); - } else { - if (!cache[id]) { - debug("new io instance for %s", source2); - cache[id] = new manager_js_1.Manager(source2, opts); - } - io = cache[id]; - } - if (parsed.query && !opts.query) { - opts.query = parsed.queryKey; - } - return io.socket(parsed.path, opts); - } - Object.assign(lookup, { - Manager: manager_js_1.Manager, - Socket: socket_js_1.Socket, - io: lookup, - connect: lookup - }); - var socket_io_parser_1 = require_cjs3(); - Object.defineProperty(exports2, "protocol", { enumerable: true, get: function() { - return socket_io_parser_1.protocol; - } }); - var engine_io_client_1 = require_cjs4(); - Object.defineProperty(exports2, "Fetch", { enumerable: true, get: function() { - return engine_io_client_1.Fetch; - } }); - Object.defineProperty(exports2, "NodeXHR", { enumerable: true, get: function() { - return engine_io_client_1.NodeXHR; - } }); - Object.defineProperty(exports2, "XHR", { enumerable: true, get: function() { - return engine_io_client_1.XHR; - } }); - Object.defineProperty(exports2, "NodeWebSocket", { enumerable: true, get: function() { - return engine_io_client_1.NodeWebSocket; - } }); - Object.defineProperty(exports2, "WebSocket", { enumerable: true, get: function() { - return engine_io_client_1.WebSocket; - } }); - Object.defineProperty(exports2, "WebTransport", { enumerable: true, get: function() { - return engine_io_client_1.WebTransport; - } }); - module2.exports = lookup; -}); - // client/lib/imbe_vocoder_glue.js var imbe_vocoder_glue_default = `async function ImbeVocoder(moduleArg = {}) { var moduleRtn; @@ -28545,6 +25093,7 @@ var host = ""; var authToken = "radio"; var enableLoopbackTesting = false; var doUpdateCheck = true; +var doHealthCheck = true; global.radioLogger = serverLogger; global.createRadioLogger = (tag) => serverLogger.withTag(tag); var channels = new Map; @@ -28879,7 +25428,7 @@ io.on("connection", (socket) => { dataLength: data?.data ? data.data.length : 0 })}`); } - if (user.speakerChannel && data && data.data) { + if (user.speakerChannel && data?.data) { const channel = channels.get(user.speakerChannel); if (logLevel >= 5) { serverLogger.debug(`Found channel for ${user.speakerChannel}: ${channel ? "YES" : "NO"}`); @@ -29231,7 +25780,6 @@ async function testConnection(url2, retryCount = 0, maxRetries = 3) { const https = require("node:https"); const { URL: URL2 } = require("node:url"); let httpResult = null; - let socketResult = null; try { const parsedUrl = new URL2(url2); const client = parsedUrl.protocol === "https:" ? https : http2; @@ -29258,64 +25806,19 @@ async function testConnection(url2, retryCount = 0, maxRetries = 3) { } catch (err) { httpResult = { success: false, error: err.message }; } - try { - const ioClient = require_cjs5(); - socketResult = await new Promise((socketResolve) => { - const testSocket = ioClient(url2, { - timeout: 8000, - reconnection: false, - auth: { - authToken: "health-check-test", - serverId: -9999 - } - }); - const timeoutId = setTimeout(() => { - testSocket.disconnect(); - socketResolve({ success: false, error: "Socket connection timeout" }); - }, 8000); - testSocket.on("connect", () => { - clearTimeout(timeoutId); - testSocket.disconnect(); - socketResolve({ success: true }); - }); - testSocket.on("connect_error", (err) => { - clearTimeout(timeoutId); - testSocket.disconnect(); - socketResolve({ - success: false, - error: `Socket connection failed: ${err.message || err.toString()}` - }); - }); - }); - } catch (err) { - socketResult = { - success: false, - error: `Socket test failed: ${err.message}` - }; - } - const overallSuccess = httpResult.success && socketResult.success; + const overallSuccess = httpResult.success; if (!overallSuccess && retryCount < maxRetries) { const delay = Math.min(1000 * 2 ** retryCount, 5000); serverLogger.debug(`Health check attempt ${retryCount + 1}/${maxRetries + 1} failed, retrying in ${delay}ms...`); await new Promise((wait) => setTimeout(wait, delay)); return testConnection(url2, retryCount + 1, maxRetries); } - let errorMessage = `Started - Health Checks Failed -`; - if (!httpResult.success) { - errorMessage += `${colors.white("HTTP:")} ${colors.red(httpResult.error)}`; - } - if (!socketResult.success) { - if (errorMessage) - errorMessage += ` -`; - errorMessage += `${colors.white("Socket:")} ${colors.red(socketResult.error)}`; - } + const errorMessage = httpResult.success ? null : `Started - Health Check Failed +${colors.white("HTTP:")} ${colors.red(httpResult.error)}`; return { success: overallSuccess, - error: errorMessage || null, + error: errorMessage, httpResult, - socketResult, attempts: retryCount + 1 }; } @@ -29720,7 +26223,7 @@ function displayServerStatus(updateResult) { if (configItems.length > 0) { boxContent.push(`${colors.white("Config:")} ${configItems.join(", ")}`); } - if (doUpdateCheck && updateResult && updateResult.hasUpdate && updateResult.missingChangelogs && updateResult.missingChangelogs.length > 0) { + if (doUpdateCheck && updateResult?.hasUpdate && updateResult.missingChangelogs && updateResult.missingChangelogs.length > 0) { boxContent.push("", `${colors.white("\uD83D\uDCCB Changelog:")}`, ""); for (const changelogEntry of updateResult.missingChangelogs) { boxContent.push(`${colors.magenta(`${changelogEntry.date} - ${changelogEntry.version}`)}`); @@ -29797,12 +26300,13 @@ on("radio:log", (level, message, tag) => { taggedLogger.log(message); } }); -on("radio:initServer", (hostParam, port, auth, debug, updateCheck) => { +on("radio:initServer", (hostParam, port, auth, debug, updateCheck, healthCheck) => { host = hostParam; logLevel = debug; authToken = auth; serverPort = port; doUpdateCheck = updateCheck !== undefined ? updateCheck : true; + doHealthCheck = healthCheck !== undefined ? healthCheck : true; serverLogger.debug("Server initialization event called"); startupComplete = false; pendingUpdateResult = null; @@ -29830,40 +26334,31 @@ on("radio:initServer", (hostParam, port, auth, debug, updateCheck) => { serverLogger.debug(`Dispatch panel available at: ${serverUrl}`); startupInfo.dispatchUrl = serverUrl; startupInfo.serverStarted = true; - (async () => { - await new Promise((resolve) => setTimeout(resolve, 2000)); - serverLogger.debug("Starting comprehensive health check (HTTP + Socket.IO)..."); - const connectionTest = await testConnection(serverUrl); - if (!connectionTest.success) { - startupInfo.connectionWarning = `${connectionTest.error}`; - const httpGuidance = connectionTest.httpResult && !connectionTest.httpResult.success ? getErrorGuidance(connectionTest.httpResult.error, port) : null; - const socketGuidance = connectionTest.socketResult && !connectionTest.socketResult.success ? getErrorGuidance(connectionTest.socketResult.error, port) : null; - const sameErrorType = httpGuidance && socketGuidance && httpGuidance.errorType === socketGuidance.errorType; - if (sameErrorType) { - serverLogger.error(httpGuidance.userMessage); - serverLogger.error(`Technical Details: HTTP: ${httpGuidance.technicalDetails} | Socket.IO: ${socketGuidance.technicalDetails} (${connectionTest.attempts} attempts)`); - } else { + if (doHealthCheck) { + (async () => { + await new Promise((resolve) => setTimeout(resolve, 2000)); + serverLogger.debug("Starting health check (HTTP)..."); + const connectionTest = await testConnection(serverUrl); + if (!connectionTest.success) { + startupInfo.connectionWarning = `${connectionTest.error}`; + const httpGuidance = connectionTest.httpResult && !connectionTest.httpResult.success ? getErrorGuidance(connectionTest.httpResult.error, port) : null; if (httpGuidance) { serverLogger.error(`HTTP: ${httpGuidance.userMessage}`); serverLogger.error(`Technical Details: ${httpGuidance.technicalDetails} (after ${connectionTest.attempts} attempts)`); - } else if (connectionTest.httpResult) { - serverLogger.debug(`HTTP endpoint test passed (status: ${connectionTest.httpResult.status})`); - } - if (socketGuidance) { - serverLogger.error(`Socket.IO: ${socketGuidance.userMessage}`); - serverLogger.error(`Technical Details: ${socketGuidance.technicalDetails} (after ${connectionTest.attempts} attempts)`); - } else if (connectionTest.socketResult) { - serverLogger.debug("Socket.IO test passed"); } + } else { + const attemptMsg = connectionTest.attempts > 1 ? ` (succeeded on attempt ${connectionTest.attempts})` : ""; + serverLogger.debug(`Health check passed - HTTP (${connectionTest.httpResult.status}) ✓${attemptMsg}`); + serverLogger.debug("Server is ready for client connections"); } - } else { - const attemptMsg = connectionTest.attempts > 1 ? ` (succeeded on attempt ${connectionTest.attempts})` : ""; - serverLogger.debug(`Health check passed - HTTP (${connectionTest.httpResult.status}) + Socket.IO ✓${attemptMsg}`); - serverLogger.debug("Server is ready for client connections"); - } + startupInfo.connectionTested = true; + startDisplayTimer(); + })(); + } else { + serverLogger.debug("Health check skipped (doHealthCheck = false)"); startupInfo.connectionTested = true; startDisplayTimer(); - })(); + } if (doUpdateCheck) { (async () => { const updateResult = await checkForUpdates(); diff --git a/resources/radio/shared.lua b/resources/radio/shared.lua index a09973763b3997ab7fa6e75b985be6a3f49dd786..fed80251b2ba0945dcabc3241fa66e99bb8b66d7 100644 GIT binary patch literal 176021 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

-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μ8CzJyG028i<$ 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%0A`R{*JY5Pht7ei;@- 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 z

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%0A?FTb)|$@<7RG6ZmN@^`smN?Bs;*lL5X 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 JDy2TP`2@?cLz4gi literal 175567 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

bHktz;Q&GIjp)fx)Sa!hNf>pG=77ow2I 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 z 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 X5@=?+AqsOv%dPcr{>nAlbz#EdC&n3n diff --git a/resources/radio/stream/afx1500.ydr b/resources/radio/stream/afx1500.ydr new file mode 100644 index 000000000..d2aa5e30d --- /dev/null +++ b/resources/radio/stream/afx1500.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23a44fbf9672ea2b29d8de4e19d6c15b39bd4584b9d73457acfd52dfea42a115 +size 12264525 diff --git a/resources/radio/stream/afx1500.ytyp b/resources/radio/stream/afx1500.ytyp new file mode 100644 index 0000000000000000000000000000000000000000..3e6452daebb7c443cf624a5b13592773a090e962 GIT binary patch literal 495 zcmWFvb~a~XU|?WjVBi2!3Xd%W-yS$|;6T8E0|E?7BzR()n6xAn7*y^ZU=s9CXucr5 zz{DznX;s=WwMJ%xNejwEdYS?aY#cw&&-V4sd;2Oqq45L1!|By$fqP zQ)AEbPWbV^TVhLFI5!m{?&%xy!iO(X08cO5?R%)r>qW)|GtsQ zgWd4M<0;P>PA6a2&%Jw8gK=7V({Fd??plL=-tPN)86#}9yKFkX+n2As{aRZ;SoXjt z0cnT23!dA~)O|Gu@%x`YI)|6+i}qwm|pf<_wT9PeEZ=019<}Ff9pN1+1iBt6n