From e1aebbbdd00e5d4fa4346baf250ff05e75b4f96f Mon Sep 17 00:00:00 2001 From: richardscull <106016833+richardscull@users.noreply.github.com> Date: Mon, 20 Apr 2026 13:54:44 +0300 Subject: [PATCH] feat: Add firewall warning --- src/assets/img/safety-firewall.webp | Bin 0 -> 26974 bytes .../docs/getting-started/installation.mdx | 83 +++++++++++------- 2 files changed, 50 insertions(+), 33 deletions(-) create mode 100644 src/assets/img/safety-firewall.webp diff --git a/src/assets/img/safety-firewall.webp b/src/assets/img/safety-firewall.webp new file mode 100644 index 0000000000000000000000000000000000000000..17bc9398a1b5e25a0dec382e6415659227b97ddb GIT binary patch literal 26974 zcmYJaV~{1l(gk?iwr$&-wlQtnwr$(Cdm7WWZQItg&AactZ)3Nj>R&}6&pDYHSy9T; z5)$fG0Dy+Lh@!e8wlIHmX8jZG3dSl5O@U)_y*Pk zfzQCcAE1Hrw^p1^%hh^^%b0s@_Hii`s$H+U0}&Eld03=nmPC7}?cQ`lh%%aKP@RWg zMuI8TB~-fK=kR!ZZ>W0ZM2Jozek*KW$6uptCYChsom|prY5I4YLp?jx-vciuNTef; z@2_ucxF4ueJ*VHI4F(-Hr{l-NiXZQNIp`IdZzCfNXo4Y+uF)1vmb)D=d8tW{iHEzB zK2-|L!bexlgcAfTz{A9J&xP46-QPD>b^%=#>4sKc+87-*JS`S7pcHO{gw6-iX=_lZ z}G~}4S@Q~XO1Cq247eNMBFR5uNew30+IkbdfqivY( zVzf@Jl~umW*h%1gZD?T+!hc9l15l*(W~i1R{uMhbYaP|wAG)bS(A*SFrG(lr(A59* zQff&X6n-GjTG45i&?_Gn+Z(Si7ocM!6c1@Yt2t8AG`R(o6pA7IQKe#io$KJx$z9}1 zHjW7Bx~MVtm-bFV?>-za#$y|pH;aprbNoc_D7)k%WdJ$dh~wuKUMz!wu4Mg4^7?ffJDCsXQkx3JjXm>IW2k&iIv zL9zY?AvhlVx1OjNy8&A8yuib6F{Vl@^c(HZ8M}&zf0qKaq1Knb!VCf4&?v=R%kgPB zlmY?Q^Mo@ZC~w;E_-(jVvl*fLW)Ip^eAePU-JZb1GszZ2q0K-luC!2^MGUvl+3w?x zgV@h07k=D^>gmEtF0eOV{m0eD6shJQhgvzpjqanBwihi`vH%=`OR+a-UJ zRufYdP}{D$P=_R}7Lf8aAiOmAvrgc}#UFZ9;oO|T=BEwvP&}8QvrQ&ya0v&)4^i?^ zA13hf3VgKS$)J8$JIV>ed&T{ai*WeN1S?ygVAH#6V#l2fDljM=z}9CGJb&%|wF>G$ zo>l*gVK4OlO#kcb2&rQs$x)pI46_8-(ODAs$nn+oXDPycId7#eFt$WdyMZic9X_34TYghg zpugh*y#_{7{ZVj1w_0OT0NLAlY_3UEz_$bfwqV+u0mmv*>>L7Izbvlf4~KEzvlXwS zfFIRo&75EV$C6AMcu(o!g6jS^K_$6cF&6rE4alQKQbuv`KVF3P0_{thODp+l&=({j z1>qHD2RIPm7|LF)*^n?O6-!+yiIkybRa>F9=8!n?k;CW$HOlzJ*|sK%WpjZ`TeMJ< z$!>8b27y@Nh+wQv1}#`vD{;zb2s9_%->?cb2~{ZENueV!`2KaFsp!#82vcUN0+9R8 zvLIwr+h&;e5(5O0%;s%MNZ@`3s2$`|bY}>5?`X3QJ5Red%)C$en=m4u4()zV8i5cp zSQtDVE_^X}jKL^bHa-6Uqn|FcsZ-kaAUFSMh=L!EdF_6P+WGs+zl$TYp_qi<4*P>IRmr4(0RNFi`7!$)GsoKRo zWJM>f-TlZB?g+auqeKIa)f>3q+FamVNOLFz=z zYvCh9TEnz-SVutY+dNy^qWGJ+C;tR}EpOs&JQz*ldblL7_;7Dpsj`&r=i=m?M<o{Kwa@fS%!R{9a@T-H z$s5k7#@7j=M@jmfcjvn7<{Dxn4*sKx*4C{jQ71CWPfj+Iz;+6QBdtA|nPCP_Xgb{` zlB_?FF&7Fhus_A6?CcJKHXlyJP9i;HG9^Y6WRqoR+ z;rslJn8$0&r@OJVFO%N@&l}7eMs1Ij;>h}_(yfb<%;O6koW!T*PZ(Kk;;+;KM!Y+ifIIyI z?9!%))zWc^Ca|xCuJLdn*3UdrBZx)#dkI$(LgqA4rye&W#~Yg(_u}j0S*4@Up3IA; z1vHfJ5TUmQZ>MV0nUoawzIh(s0psF9!3e<>=|x~fhp0#NSj;~!75-g|IrxkDUMi7Y z+hjzb?xB5^0XOK?hKV_>`%#%$J_oi9+dsK`O60G^>DxTpb%U+!iC z+EPi`x18>SeYv6|xNW%KW=hBH-{?@h>E7txQ{IN|5602{DoCI9E&P)vR8CiJjV>yF zTbL*j28QY$JD9oowkk|?urXAgbWNj4J>2?D6wEoKV+8yx5o}i;IhBPS40dqE)O|== z$~)Ow5!c0OH14kJs3WB=2Z6Uj-<6P?AQY)D{JRrG*DT9*36jYHoAKF%t^2@`(I>4-t}Nr>*q?p}Ap7UJ z$yptRdwSj=vt`d(uP8$vEW^=QH+lR34wc=IMXvQL5}zab-)$iIrnngaKCb9LU9@AI z{(xe=r;@p(RA+Z=u%N3r;NRNH9<e*`Uj9#wzdti z6^qTq($sYxoHxP3dCJYL+4zhkqEk(xR}r#@>*6r!1-EL-aCJmO{jrV}Q$BypXi6V~ z23JYC+4tXjqQArI7mM4cj$vwNjJ69=om*WkP4l8BwibG7tUy{%>?tcAao13-eMUR- zT>g_)96||~Td9n{UuOY+lJFE%RnrNV-bF@ZO9$hTny-L-t7C$4!&y z?t}=&9L5futWh~xbkGr7RC>F!o%)`^Ztr+GvD!eUq%u|~s3}7=8tj{s1J}kkk;Cx^(W&y1?^kp}U{?ixDkN`u6M1om@QcvL zRyeb!hnalB{+jFlU8IRqFs916Q1nZd5?q};1f~r^AIsq&JlaEO?+ewArm~5d%6{W* ze8_$Odde99o{?NP2`1K_4-6vc6wH#K?fM3`yVohD4D;N|(*RJY_G{mLR3)6WP;KaF z>Nixr2e4BPX4z5FFCWBp+jugNg>ap)+cgP?Y&<&|56l;AUcwG(ENmpI2M97f*X|gG z0oFhyVK!)>4F(J$!_w%8Q=P~!*}OHi8G2D@$I02c%Z*pta19@dPKkF~YG zWnJsP00{~_mKkjCKi}TM-Zsy$L5^PlCv^>^ALPE9_p8Mu>4e0{B}MMl60;6bld|t* zR3Y3~CogM(ciy0aAT`6J6>GuRiOA|}pI+d60PyHw49?QE5b1@xQ%-@oZdEg{@4hx| zX}&^(yYAF8n)&bD+KWQOfrIh_Ga8TE+HDf9=DX2@0$mU|gsY*+Ivk!YqqudHBB7s+ zUyI0iK%LSXRpBT62gA;{68T+W{zNB%WQ>B2>Yi9VDE5h{-N9Shj0oY|Phvu?ACO?{ zxc;*I+>Xpoi^$+7Uljy+&ZZ%rMT=6YsBwN2x`g2^%n4fs+Ep9t!?v}f=~E*bRKpT{ zqE6&teUu((n~@AlZ{>=T4r(^lC50Pcm`n7?R^!LafyJ2_u~)-kxWjzi$av;ZH`9=( z?QFBz(Z7wLnCu1dj5EjVe z+0!`TJ<70PYnBO#xw`6CZOzXHB7M8&!V5=g8AQTwP;aSnHAtY8$+28 z{9n2y#sSa$OE>;UKY8ajfw{#W%+NhQdK*0wXd4wR&Tw?hUly{QW4=17qjW66zYw@r zcMl5)2a?M1yYk-*yi4nn)$x6}Sf`9}{7cq~Uia4*$6N1W%kAn+WI2aG#Zk1FNar4I zSZx;SLBn5%B4O*u^RYa%6~PP^xL;7jyZ>32AH)q+M_Gz9GVAi;Z>Y3&0IC6-fxj1W zOYOwoarzsrP;jn^l#pWK2G{?zw*_iN1B_V*v^kyIXIJ4`dVT;Up*HU$u8LA@soxo)4%i-$2Hf5+^~I78uPk zD@R}xtua_yO?8af)T}-3_+gs4oS~Q{4O;7#NeD{`gw&BJdI~QM&x^MJ?^POcTnJX2 z4}?4&5o-yefhH799mrr!a|Q7V+VV~Fs#(`_y^MQnM(FaF_zU>n?nTZMJ@}xI7R{@O zAX~`#KhCB6e>7J(LHTuteCaVtmpnEEs7?#QtKG2+yTT5Lx`=q(Px>A5eN=g|pcs?m5Lzn|_$?#&+vU8lX^0jua6*^l zL*c&=eDEgSHPNu7dOu8E``+qB)P~lCjC~lIiu?Z>B~BU3)_> z#H!X9kpw~BuUYU(qQwQ-F4p(5h!6?~)0hb$0_>8EFnV_hj5{f#0_at1S_piJr-S&@ z2CrYsg19Yil&HTW;E~TIpwgrZR`J9-H;lv=+w@C=%MDdbhl4R*T05=49W1Bz2bekb$J2BV#oNsZ42j1K#)5D%@AMduu zW=5O9)(_Q>$BD*NeCsFC%vfgMT|naZ7Le{S;T!7TUdP<>Zok1Ia0uA{8S&Qt%ykO) z67iC=3-`TO4ZPhg?As9R`cI|s_(l5r;sx#};O7X~*X;4rw?h=}@Xz1{Xy;en_v8Zz zcz;>DV7j<{MVct^*4y=``mBE|cq!QPll`(eCF%%p1`_vEY*# zi5cffjUb*l>32oxe-8_?T`K>sU?ljlL-fw$8l?&CKmg@n=};XdA2j z`eDdpvXnBXYSM&XVxP2~k{`}#kC6uhxw7k2Q1rTKX`%UdJMPP!fG-J@x4!=#MpTTd zynfTqGd+L#G{&cUyzIX=_%kF*<@JL5bRt+!TX18X#8iv0>gxcSWR&msX4D4((}NYY z8CWV!l+*@08yZ5;GDxC-n&QI=L-oM8sWczy-x&!OL|Bj)_bKvT@hHb0OZJuZe|NxC zWXS2fw@WUy#o%$n8}YP1+)VOQ$!d)FZ10HoemPjyNUaGc$+!0Cnrhk)0m3A~a6uMNF85 z$bU)gdGoja)dA$E()h+mS27cy05eErV_X2DlqXt#`>i!=^uP_|57Rzi>Hp+JboOqb z93qopQP~n?+EM)5HtCb8^;8oqo{x4;cF;eXo@dWyH|kB#&2$u#b31! z=V@id<62n%v(YWnS-G9+V~9ZYMQDm>5&P&sm0LD@$YAJsCXYmo_Y4@_zLHzvnJk^SJg|2Yj%<_W$z_W4AkD5!jkKxpgED3IH< z@5?XAP0B$it{n7vYN&=K;+*#c&ni$rIFw|P)q~F!R#$Bzmb#PRrN^Zz;f{mBLFATn z7QZR?o*Cte2TG>jwo%`I7H6^bmjqK+3r+Z$Qrq0a>m3`Rl&u9YY<>jdHaS@Bm?FGs znljgBy4ADX{`rwwRjCkZ218@`O7LtzM^BBA{|%+#5Y2ry3d(0@yCPBNFB>{fYK5ft zJLp}?LQx$z)|FJ;Y7EJKElBeOL`Xo)JhQNbz*G!jUzFSrgu3(Asc{OUj^q}TMxKrG*7p6t|80Ot-d(evv*r~$lL7X-j?P$A5qy|LABvxpH2DFF#afEyy0c zkju&7fx6mX`di?(XV83n@{xDju^$lw@^fcurvLsIl&+c~4d8eHHF!&tlZx$!$N~3# z6LtF6z*3b>ZDQw-2ByARSrF4;)}NPo{oK8bXz6!%!v?p|I9420FG`ki0jZ6qc4k!U z|Ae)8*KhhJ5pFs#!*fl`*1vcqxnFzPThIF~f4w;no%a5Xg>s+VzHS>98(hTGp;v`! zwm%}}AqcN|{$G4#tRIJSonQmwJSk^83syagEAWuydxAf+gV#K+-y6;%sX_R{gKB;* zsIGcZQopTs0$Sz@y5}>LI%@u&2NUUHx8hdea^#NL$2(-s>j8(|R>I@E?)_4>ZWb zh_zI}z}$;!3>HJdH15l4Y@PGL$y~dZnn(X|fb+FYCL|5!Oy{XOMdQ*Tq(sQ9o(#|V za#%bmNh9UVjCzwrn1N#VbbW#0DZErx;`($k#!HrM!#(W=_n6RSLj-hOnV4Yq$8VhR zPsX%UavY+~t-_P_dSL82_+Hun&z5U~?|10O9>p{e&DjeXlVuCW%bu1kKugC!^E!+q>C&N|rA z@^yU&4*^vv1vX1s@?(HqF;AQBH(FfH$ABUK59A}`9Ko~L#bM_P?T^=Selvx)8R5yl zCCN8O^4c5NbZUaDjRqf`Q$>XLf?<(ZOTp_AHAEK-;Yab0{YCiI<4C4LGCrxT3;#T# zi4W=Gx4Qs(rI*GNux&r2Lv&0tp`s10Fd!-t?!1Wf_f)<%AnDFTE|lTN)w1(+!-v8e zjMxpYnfxqgOj*xqOxhvi`6BKLG6K_L3TDFAR3K0n#KT5chlJI}RWI10S*9|wH97mw zen-3jC7Il+Z_W@>(Ybb6oHPd6i3y<^C8#sG)A~c#%VJ;4e@EMg4a+`nI%ZGP?wdvd z%oXuw8GhTob$LVDjne2XKc{KFHUBsjq+L6p4YZoP?l1MZ^*}`o_;?Zm@^$X;cJ(MQ zttCPbjHEM1tTI|PYU*?JP)bal6Uepcw5$Vzh!8ZkR+_^7{bmukQcx$!_vp9zX5nJ+ z0MyQeXK#6AOp>Qrm^+8d#B%$LuwQAa57rKaG;2N%Zz}})ZX!a@mMSyXQEz&1fvWpX zX6(F>UhRqF7*_@UtP_0}XIY_w+qzQwBWonaAp4~S1SEa%m+sg*1bXD$$8tTW1PL}q zC~l7Zyl^%h;C>#TaCzn3-0#6T&5r%318yg(kgt?ilulBS>|DwWaJLaX@bRVr8_QzA zoR2loYJTllCpOyxsK;L+*Z$l%v>!IlaVP}DM6CHs;vG(hrHb>Qv$Rq;XW3t z+XyXRkz8&_Y7IwW7_i!>!weXlMq7+aQhCeHxzk>jRp+i7Qwy>T{O07_!t`GM&cO2x ze5G=&bSY4bWNjKB{8nktNR>iKndiwzeF?(b>rZf`=n@DS3*{U5Er!i96@iBdy3{R3 zAE&c)QyEliId^#e$sTP|#yFEn8bU8S_fmNfI9^#qrS!HO%=E1|IkR||)PzdKw(u01 zx@QWcn1V0*UH|Jl3l^d?vpIM0gou5nHRd`EHc#?YhsVI8x18#RCpP~OW4a@04PFz- z2HNAGXc4Gb_@c%#9-BP1c|i2ZPdDXnb}{bKLuoLw3QmmV_wWaQyDyzl3+K1fK&c(` z*>j-rvflkuZ1)*#uRU#ulsHSZVTd_O;7zbu#p+h~En+SXjy)it{}U~eO_7~WCMpa@ zjogcNG>J+9?oG?P@7-Hgfps5*vOt~fr!h03f0+Ei(*$$9hx6sMDoLZ!UbZLU%W%4~ zUDPCgKXAA(0ar}U@z7&=Jnb&bm-$see+&nCnLj>%w|ks^-P?rek&OS9OERiOE)FRL zs(~Ci6^M}RQQu%jN)*VpeYNB}B*KsyjU1CrfddJEHpK;(ch zY6c%}DWiUu^dLQkdSIHMdlWYtj>pXXJ*^XnO_q1@r9yIJhFYM+^WDc3eAq6mC#Ffe zpP6@;HITE7E7!zPJ$aA0ZSQCJ=W*HjHyi?TEomN|yBV>y*F|Ue&(slol?w8?Iw#ku z3~7&9I?ZJq@f@Qq zwiiZFz?Mi- z@vfLLzi1a|(?6-}5twOxTfJrm#Qo>9*dQFAJdU=FDq5qm;lLun0KtYWCh7-x*v6T^ zJ<&OT65qxqOR^Bs$FJ4P3jRGa3miLw_pKLc`0XfG+Di-=>PJ;{w8j}wf9i*{kW>2Q z+#FIM7l4hYL~llNP|4>Vlp;pIX(I=BG6}ZyGsOk@R1<(2)@EeU!1QG(i@>i4ZAs>T z5_McQq6{z;PO)BnUw@ILiWJ1BbvfH=AV?60)x!>g$R><@*p6+v1?#xNMXaqVwMH`K zC;+Bg-Avs5v&jrBdbA(wGz9_5^rH)DaA)8KE*rDNBK6SYO>^Z$leJlQGglA9dh-w? zaDb~XiX696-Xgz1FjnuxCBE{AUqxoWTH>=1beE1IX$S=7^ms|C+c$RGBkvDhWHMYA zXqFJUsaKti@76?~du^C4UvM&6ate~a%i&>~~3ao*>}{Sdo)QLII`4Al(X z$h3==V+YOok3@01dyM?#da`Qa|lHofE!NRP>P7O{SA`7}wcc$}PxhpFK zcd(N~lR<95YP$T?B`%ZG7Crc#saK`&pqB8>nPT~f2y91LhTYzc4G(rmeY`AbfJ)@TIqd7N<3e6Tl<8n`JD~F3s z7Pgz?xAW-PeQ78GNfjGzrvXBrLfN3jvq3@A`9VbO1(Bq+?BLpQ{RLQ zARMZRKgaPMa=-72^GdjhgH^^wikh*7=O$H00U%j3aVQVsaSW1K49e@Kn2+l>dmA`! z3_IU&wETvZL;9DsorOs3uNa$DW=rKlHd5#~OuCCgCNbtg>`2iXYRTS+1lPi=)1NvP ziS=!%NIlw}q8788a{=ZYfA-Gw_1R9jd5|{OI{tzZMPMsu?k0z*=uWIdR3Dv;AU|4_ zAZ@7Cdea&^U&Vk7Yvy*)pD%_@UH^)2u&N>$P5`*N)@eT-?2TlR^n%^Vq%#Cfn&5yIORlc=X0uFqY7X-@}9=ECHALZc>p4SVLU2O4V*16lFvhtYyPGvjSh21 z_Tcnal86-Id73+V(+#I(sa+FIUvrR&XI!YWbI_`Er(>#AS$-seab87wkL6lof^#PZ zfD&b*-5G)0llHy^N4|x*8iZ^J_F6h~MWU@Qe9cxUmvHU=F#qw+CbBICi5*wh4JcZ+ z+a}2Z8JLz(sQ($lP(h5@mtuul z`%i5(&jRcduYQn+=Gv3I;7P$0u8(k!F}r!=C1}1`YQN3i*U8~qiQ-Spaq4XF?JWBq zTex&29Yk5@0Dl98s67R?W#97QeKC%8>738ey#S_7KXOq=6bK1hc0(_G9{v@j{Y2lg zDP3D$_gE#BLbh^!s9yxrZP;$4h`NAsQT}_akvOySk-gKhIUKIpa~|IH?+Z_1&LFHR z$GhuRZ@vSvIIkCo2Bo?aK#jFb2cz#IG#(BMYlsgB2HzA+o^ycadvTl@pq{r5&tD$Q zlmffgnx8c)5GI~~fvGyw`Z=pnhRYcG4(W*bW5)DWP zt+7(#U8K^Bl!>50iiq*N+iHsl3eKx3Ner4(Ejt`(@rP}jTfD+%{lV z>M^+g4M2_0{Wfg{@hWUQYk|!|=?+mLv2f6g=j=h)_zkyZvuki2C(9Wf>1eTuu;{ z*o*wlf`_Rbhw7@;{Q^>M@o>BAL7J)!E?BkTkJ9J zoRtAyUUFy8V4l8pR*yNC-ta6B^*Q9S8;Li^?NTJ9w%Z4tERH0-j@uC<4nLMEt_w+M z=SC*J%G21MNY6D`c*oa;(NtSR2^xL$jcLven)PS_Nurt@RNjsT$-BN-pYH%M3E*Yn z?RH+V;O6g^1z%B%IhTziJI9=)BYfq&isf66w10V$cs^+Pjy^>};#hoALDmnb(Gc5u zt%kS+zef0HZ;ZW~3|)KbiEr#eqO!0Mdb$O%ehERQyTXiI-{R`GSRgnwa$T;&F&(dY zFaPPj63?y7HxfLGtjn$;&4P$%4f2guWv%Y3A(Yup{(YpvsW;xp7tqwFQPfNk9J5ZzY*7)Su{1# zt^p}1j(Q#Z!(yXh(W@ImIbRHqvO#jWCel|9$<3kxx)(e8uj+0Zd)%|PdS&D)4+2K~&{v*9}< zat~6pMAFu0what2RBHi{sc^}~H?S!L63`rnJr=YI#?zy78-}hsCpPx@-N-ePqhxX2 z9!14>XN!!FHasS}LPdd{0gxxHfe3-cCYbZEg%(v>HM2hEREMaswA1Q%q$*hPofYGG zv1`gesG)1{x9N|SZ3DazQk9z2kXGU`7@}wX-Ph1J!NFlZ% zza#~tWh^pDGVcJ@yHvC)wt3^MD&bd9I$}FcELfF%2S9^9OY#lG@Mh0(wIzoWy4J+U1JhX(kq+ z&h3v!ZBA9w1Y1+5Of}c7Kkhtv;fMk5;y&hmlX9ty%z6&*_vaiKt3uxS6}CvFgh2_Y zUMW-o=Iv3>?-?u762i2wV0;Gmuu{q^ajLn?W}~ZA8$<+&2B7vn{R$6G>&cNp$k)wy zZWH>4J7NgMf%PwviTS3wDQ78FMq;F$qa%+he1I0Mxz^CW+7`?WzH)0AUUD#we{f&U zo&pqtzfm$G+>hW266B^`3gSx%Av69XUw`v(-yL3{GXVQshhLVd zKTysmwHh(A;W-+!+keR>b_=-kK|JTKl+YP5F^8x)1gSL+Xh;pBBq_i1Zb2J+$ErRx z`L^=$bJm}5CUTQC*uWt*uVfCZ_vwudmk;u(^ADu^brUXL2}-iV~VDVh;FcvR$d#xNo%83Ise zr>toLU1cKyQ0=v=ntNi&SWtyq|LY_)=9QBS~tDn3Nb;cz|0L&*84NWK*ZzZ0$>;W z(?QBCn*<5uRMzvvDa^c+MXtYQQ;Ann@%S5h%#;)S=f68Imw_!42rw&3BMTA3tr6?$i| ze>OS-5Etprt8!i8`&A#7BzeLbLMH(Iy=3@RSFKjvj^>K#X_LJ5zPnk`f@)Eiw@T3b~MQZlNjA@>)yCe+=JcSOJY7W3@TbL$DrgtV!FgdpO% z40*8QGxFc6zJCzsa5y1*0>*6ypl`zS_S*4u9lc>9nxB2RlAoN*w~87(;Ls)E6CW>0 zS3tIRPo#^5$&Z|;bz7hZD*R?#{(0`jlx&aFK3e;T7dvcwU6QIku{QcDSN>kiwTg** zzm)fGIuZKQyfLL_K>Pd~h;z(}NvTH)o{Ec8lKb;rEhP0O^ei$O7!5xrrk#B^9m%-u ztk}NTyLYKeYT(7DWl#?Kl6vD(I28Qu@NrmsQm5)YafLrq#PmU$E}})ZEIIpH7yo)E zh__s0PkW|A0q&o$%2axSmN3?U+Wx#f$h>f0d(xj6v+caiVn_nPBx4dd&T!Mhk+7 z3uU4);Sc+V<6kxCFW%Q<^YQK(UdZ4e@Xh(q&Tn6G0xti-JU(5tF3V2h5pf(kS5uJI z{(mU4>~lfM13F&YyNZQb+iuuPE3vq&ypehLMd>ldD2+@>>In?BS$Hyvj3%4Tqad}f znY|8?WTNBCilRz=AvbIZg`Y!ntV@A^i-kN(ex{7@9yIV}TnK@fp4OfR-SMsO@&8c7m&qBl|U!1}bvaqStp;4J|s(`|EEY{rGQBa!8i zHCcODes7cK!NL{YQ0PvpV3f5p94Fn83OP&48aejuTv-{!5d}}YHV`bme~PTFG7X+I zr{NXW{l;H%-cUl8UJJoxaO6WF_r4|2K@<==G>iO3cK|pPjyVU>(;|WG#eFsA1gAIf zFS|bmsoG*%uM^yrLW3)M6TReTUhN){t~h>#L6F1qI>9q3d&u+B^=b)9z`Irp*XW+>-Gb^Ql%!74-~H={k0*gESak^^WN~ zsKDF`rOi~(+lIHs2ur0vFJoeUk96?kAGCF7U?Cjhr%x_oIBPeXo!+GT;$&^*mkXKW zgEz!SaRo+QEXYdS9kCTHVJF6qh2D;tv(fK^B3esV*K6BfneS-NrXwSbK^d-;sr5gQ!$#s!TTwia_nywi9!nnGk=$SlA>>Mc z)_l{KCjFc%X4(}$n;U4nD*MZ|V-pyjf-iE}o^q%)bIjbLxCG(v%?CqFlp`VT%AG3; z8JTl!tn#|4Ikyl~ED1=W9_#R1U>?`7QJp z%<%mD)1068EfU=8KS32VwQ8d#nArytJH#Gl2F-NRa!c2sNFG{43m_r}cY|}?$yibH z@0!0nPKnOy9A~ehP0=feI72ll5&*ztvWQKnPH$V$;OA6)I+hO^_OQwayV8zFPfZJ{unK`=cwE}Maa#xZsD(DR4n zhi$220yxKK`aO%VG8!(8Ph;%#?3`N2I&~X+)48ITtai=50dCpca@39Z1nrh9ENotb z)-SAZ5Mt03B`h{V<-G$Tk->enNaIn~OJ=mQ&4w)J&i!kC&7ewW?%a=br%hgJf1DC) z&xo0+TJ3Alrz4$g!LE*{W~aZ=<&CNX;2fL#%(x_A82X6;nmx*9!5tQpx#&wQgi7g7 zkWx;6B6!}VbA^lc7R5cKS=S?!)BPnJwlu1Y7r9Ztx<{AvTD1@*XVb8-T@}?p~cA zw=~2$k97z3LyWsBLWRkIaM{mD_{FijBRZS`05vn0e9hFts8GLk??e zhdl9@QZ)6>zS$a|z1CaqW z0@uMNKcCZV4b_wGsAs>Y$q=A07L3Cgt zfA?rv+4q}}vRg#!Z`#EGAP8Fh@Bx}78Rd}bVN$JL#eARelnzS7F>o*;BU7#2V>naz zsv}1Tm;7y=om-AUsnq?RcXj6OoB+c;~-w!#N>QN+FhGxzZ0F3s5rB@&ck(hVDPX z_f7wB`t;Wv@6G8}RzXHkHE|EK>N?p4dXLl9pg2ig#Zs^#5XfmCt9A5XjjlCoFMeou zy#_do^0J~5VQR|k7Nv9`zHo3wG)7Y39yeFQ$@yrwpHx8jY>JGi5qCnPt_~oII)2^; zZ8mH9$YuHr__VJ0vfEGidwReWGyn17be&dHYBk33%CqdZSmWcpKlVyzb16HM0Jmbf{?y-`3)LaPd_KI4lu~ejM&9)#A`zmj*G5k<@Ri zN(b(s9jQfACY zZ36ce2Kdj(J*Wh=-$uCuVo``rprl6t^r7L4&it2q@$U!0 z-*5N18S`fcU@9~rK9FIv^+FSC($zY%-aU*+EeP-PKs|)3zw52{7@Oixu7V%}j_sHL zejEqjHTX(W>-d^Nrs8s(UyjGxJC`tt*IxKKau*^OVV~WQ37bXY0-s^$x^Yfy&y@fg z5?JZ|oTvugAWz!gCom8OfEOk5)c~g(PH&eM&)a3dV#g^)7CI)o$-@2kX&_Utr%pIH zxr;a`e|M*N{jdbUA1jHcgd0I5TT{PLKp`SLX94iM)MIi^LvWONSquoJT>mH_KaNC1 zdI_i5UoHFEpFJg{R>aB}Ou|`F!96U4gyzjFLc{l?~GiRNa>vkiNutF~q?ZfC*&AWw1!sKYTA*E^N<~OUb z$+RF-i=09;`zLQQQGeEl^wTT0P;Z>UYKJMH=^a8TY`1Upw6~GX#7N#{6m*$p1bZ!y zMUuj6w`l|ZjOD$$$|Xrro~qoW_7h0_v8H(W$Jn`5&m6o4>V|4-v7lS&f~}ehVu&9( z-W0tg;_fWUwg&S9F<-eQU@^}tQ#zv9T(x0ub3*WK-y=il*A)}s;&EPHDmUW& zmo|xQVK_P4nkPTCmh`>=)0Eb@umQvjJXCF|%?3%xsw+0-lu^teh4FUV3K&ifaLP?L z!rDu_E(bQk0ZnB8P=j5ou=dHhCV+2 zx)$%bO&~7G1LI04TBC1=;x+~Dhk_^w_ehYzRNsrNc#Iwf3mkg-Ps&1fgQ-7 zs|d3ou0;B0R9UHt*5%M0_WH8in&P|-_vaJ;`5nM`wuP) zJjdJk?XV5w1{hkqsyL$@)8-Y#Js8xN-t(p7I_7CmjFMK-cu$tkdHtgiJ$fA?qiXJry_6zB(VcJzz2$LFuu`%bG zJBtLa)_d0sl)p>4$TVQmFD(+l6%Ug!i#SK4dE0;?J9M#l7nEd15?1}(aYQ%k&RIbL zU2o&9pPr>6?vRkK>w%^H`r_j~WGrdlDD!U#dfL6fK5!%riS3k(@3qnZKxQaSC_a;( z)D&?w{Eyrt$=BR!wj7*Dn4iK5AFzVa#>?6p(v5Q>Ge%eL;je+knekLs#G!w=Zl7h+ zT>eJqtWKYX#j6A?2M=0=cvq=WCg$QRq3jq!k3Ylb0cGly`~Dd=Ou<;G78h6tbB+GW zM$@arpt#l7H#Ll_uNsh>7ZRsjG>xDK=Y6uJR6IP`l|`r9qc7qK!cF$3kXxrdxi98( zCZ{iKFJZM!KC$EEzw2~VA!^bs=?A%aM?IdOhiBB$S(6a7k@YtE2_9BNJ?Qnw+i#(Q zs!TT*GAaf{p6<28;Ri;6ezJ$@T;%`+lrXSZzC4R9?a{!2o71OFZD`F@7eL5Mh3$^w z2D2qC0U}!&%Q|P{1KJC#-c(dRw$5LTRsi>0YgxbAhE?RPk?GHcPhcw2(DK!Ebr{e4 zOVW^0#H6{28{0t4vKLvtHg?%_?2w0HyW}2ptO>`#IW(-@pFv!t3Z}|zl)n&;xpGP* ze$m6nEV>)#=&%n#C5($4n+<=3H$*RXOo?(UfDr^JA}-!grG_ zFfm!yJy1ZON41>b0^LxzJG4?|O$K3)gCgtS?k2l$-~se3d=tPqcfPA6;w%g z6`>4QIv5%IY%&}-ENMhh#fS>VQqJEOZG7bm%IfZCGS33Qyr|JZ_vU=WV2-gWJzlAv zm(SUuum2F2MLFr=o${HS45U#*7ykB+Mg?_Nx=5LqCaPJwVT#!e-GJ610nr}p(2A-YY8pG0k{_%4}thy-grmPM2Sr*P}< zCWFMz?y*FQ3(F8RJbuMHt;b127%!ksdaB(yv?4jjeR0MAd7p%ZzK~fWbzZ|ve^PTB zZ`f20f0{H^0i7+rdQFr%mEMZ)ta!Of|U=T-fwdPaku4Z@_-GV=EsBPh%J)=sTK9F37363c&80&uP!8{N6Y2cJujgsZ6QKX?(P zQrOdO>Qds+2~NaW7j67SJYy7ZRS{EsJl-2+#5f=OnRy1` zJL^y6M2*uwKxRwy*{jT!NGnK|5Kp{d=+Qkae01>{@ei78^%ewsV`JIognt>EwPu z5GF&xQjhto`@y=}hETubm`4b_{mlvAqU*U2E`5N7Ek@O>xBYW)@~RpbZuXB1lYck1 zZb+k*mvDuQgYy%t?@ zcz#}zZ=)uVYkTO$e6)H#hyZX1kd@(yImY~DtCcB4hkT&S){h45xzHNmudYx&)%n?f(d+-^Lii*mN%`s@OMjfAvnvdV$LA}5 zlxo$UdLa&PJY%CkSmm^E9!;@;iC1$^v)(yH$`?(a#ofr8(v6P1?PoxpjrGeU$L(_+ zh6&WAK;RpY0V6Qz#~2M)6%h;=0B2t>RfE96MO#E_c|yaRRdi~s1^Ax9ZWY>eAeL`( zDz8Mm*M?Q>bQ-wsWtWiChqgxs&;LPHW)TL~oLeW)Z_&M;J<*hhy*=G$!^G}4Lnl{^ zh~A;$Oa71IK`ZMhxAcdA%eF>fAX7P9^>hPa;Fg%;*$08i|L8~0S5YA~1Kb(N9SRzR zui!Vcx8zCAf~;b9{_?@V2t8&yyGaQ|t#40oj~;7?KF+mcub}^F^9byiKKJCljOAzE_ep@u8Da6F zZPwqH!L!2vTD=E;(1u=`7ijEhBIWanpL3~0Zbe6*K$5ZdHr)X_8VZR3vC(!ts0}f8 z-5SYsGq+0GrfiG8i%F!1-@RtvKJj1eiRQCwpf&YtI~M7b#Apnje|$}sCoK1)>+amp>W1oLDAbdU}8 ze2lIfRw9LHH!|ajTvs}Ok=y1)r1Gd3+@-LOviMNQVKjL12ug8?AEcLu}}c`qtY5Jo~S`uQSMy89PBq zI-z^Wb!o7l5<*BXgpOh&cEWd}o&*0Avwg4kE^|nMN87*{CJ@z%&Qi0?&E1c>!RG1I z5BBQ-Xbt!Q4XsD#*RZwD+kZJojd|gS1_U&bCl`Y%?=Fkw5CzAU2yxiZ+Qspg(mRUX z^Z(nlPws~F%m8=lTmMAB$F5zSdF;UW^=pTI-jJzw`$&$Mld38?ynT?nLIWW$a?{Xz zF2K@WsNp^cB`&>Z+qiBmg9{(Xovm0`Bpold)?M!C`E#;nqTHBO#HAeu&)^Q_gnjHd zsRrACNlt%4sh6=#OQJv*Knc~O%wSRw$lh0jGC)`u^V#?~K@H9rOh_LeQlcH}6J#QF zQ&9;(6!@>&MRi$ua%2h!aQOMIatwLYq7QwNj^w^A$GtW~bD_BSMPD0>35WyEZB}ce z>Dy*$x;tR4mdu1)r=LN;ftY${E%O^*?wILU0=q;Io$+0S9!lu(;l=`K+3UjjS?&hA zC;FH{%FCBFn6^rG4xg-Y!H3E9)cWLl^GfOQi^!MpV2ZP^&Gt!G(N(KUs(7}vpGf~o z6`O^r2c!QIcdBx9q!*H1D72b&C^C#th^45GrY~??*!m0Lf&HoCmSd{16X?4+_kLfl z8N@b{BgfqEPPnz(_0DVB)^||G`|o253DfNz zBibu(|CnjpNC?Km$rbN^mC#%ChX1+ddw%Xhb1ceY$lLp*c@FAK`S(Y_o|WGUaFoLX zowGbo%;oPhM|((R`>O3Dmu~HNYhVDJ6aYjDylr@=WFH97KPuHl-if)gIx2#`6B*ej zepCOlsNYQXx#0NCevI+fgRCq=D0a6UL1S!4q|X5B4w;Is(0DQhY?9fkD|yOLc_VQQ zf2O-v9ChH1nck&Pq;0MVBI?jDU&|?>y{jFlJ858bu|_Q*%H}W*0(`bhvV-spg}&LLPKE+28NP3_4RUbLKg`Dx()relGY6u71;q^7%hxoXyPHXY zdTelpN>;>9JoyXfYpecD6X~%PzY4T^BJ;%jq%jF==4+~%B5pK6Bsm#!>X`QJDYaZ3 z*c|VR!QC;MMO{+ly85bQt>1o}y^f?cbg7nq7D&6@A+2uhA(V&jt$sjT&Q1#dc*Yti z023&>g`r*BFIIHc`2-8g<0ACPw&D4rwL(dCD=A)-|LcxcDCzh=fM;v^=iY$F5mg0i z0Ad#-jSg!m`tpw!Nad);e?i{CU91x=HqT4Bikwv1z*{FT{WpUwvB+IQ@$}eZ8>HiA z?`~AEEFkt(ym(Y4;PvAkU);QNH_r!L3m)P zgl)F>wIz^2xzPX(2~)K>T*ky5&nhWa%s;0_;=>i-1Y9un~Ut>y4Z0TIowaT%kZQarB0AW`l*xiAvzs z;RLuVpT>Nuy1FhD!yN7kxrfTv~Xy;6IM@5tQ zHsLH`Dv=nS&ydn{N_w10rvj(lqO3ETdPb|D$0jZ zu-Gz)AN7E2bsQN&C=}hgJO`wjKqtG<0Z`8NMzt9;S`Yyj~rWOjIA^7&S?_$m@(Uqi|0C9WeZ*a$i9rpOY+4v z_83k2o+t{U??rK5J~Izl*{4i#f#Q*36Q2FPb3Sel3Hb`h7CW|w&Kv)whiyiIGLV11tpL6N zQ*dHV%4m-2$2e9}4cMmoBEIANnZU?dpfqQYJH+_nss2&(|5>H!X0Jj_#_DyVW($n- z#0JqdE>07x;}3{i*?W&O9Rgx;ns%|_cUX)_WwKzz{h(D>pX_sYp89{9H_z)x7j$$ zPR{wO`Je!kqot#|#JR*R+7`@RmQ~lOhaMrAnPqPj7I8)dlB$=?Ah7Y$$r1)VK1I{; z!paYqeX<%qRR#Eti^qiCkVu*7L-}QTxypP6m9E<_fCDs_YX$IgSm7*Cc2Bms-EwoF zl$gWV84l-u1I$&kS$~2Frsc>~pS1vqXZ%NesBzo=uIN&~lP~OnhWESKz#E z?3!fgxShsp>>WPo3fkcS$VX(HjWYBKQufgQhH*Rprah{5;Ak7GMClv@osb?dK`3mU zbAZ;?ss1PPGMnoV8c@M5a?p5N)j5`R$5TxK;J0SAS`!O7tV%PIfZX6`GxqjeQiS-Muj!>AuD zep=L`5N4AU_CJsBiCP>U@VyLO8t}+4btA3*>jhz$Ei7%w)-XLu2m-+p(>CSTPs?JK z;U{}j8?Uq+Np^ZEsa7BljxQK;Q=~^~5j%hpH;RI3;MxAxcs6G!fX+aB`~BLh$JqSu z2)padSiUdve#DzhP@GEFptGkZry)3Vj#jdUKEB8`y_}=I1NM$i*K5u(h6lSx1Oe^t z7g*)7ZXci1F3KtIU`@co4)OE_KXwnz|+ahzBEEDrv-+o7>IT0y?sq7*fhELuG7?5Pjk#< z)*4J>6|sV8$&|>Olrof2-8XJ@Y!^AaIjm=%YMbg`;!4xT{gPiX(=OjK0qCp%vZ7bR zchMFl-r?x+s|@?CJTJZ>v3CC&>YR#Yx6z^^-)zM)3I!46^|Vd{G1^DnRX&wVbVFB_6~w2I^Nq7lg2DoDr4 zM9%)R-o5qNJnlF_ME>M1EmWNO!5bO4K4HQ$TxC0DNvopEHOx%u3lA#J_{|R=@#rdI z#rw;5vdgC*&74gIBS}U)hBD}1SfRg2{aW1^6orK=34Zq2p+7_K>d z;5rHtygkBf!J@B2V3aVpv~z9vl|oDZF?mpwpXmRPg5TKkKW#yZkw0&S9K&xguhJeNscGSCcps0N{P= z&OqlYO@tGXQxSta>UI#UG}m5%x2wxc&9huUDoZeSXRdl?z>0J-)0n{#w58h0rC zfLVu2WIrm(COn$>ZfWfV9oXcdDZ~i|($Oxgkvu+eax3qB+YJm`m(@HB%rT z%X4&!uc6L-?#6h`(ZV?yiX`x&O2$a%b%+Rz*ESm;4Le8hZ%_vo#l7D2%w^A;L7Gkv z!&u#weZxxnF{vA42wRP@?Ky8YF|^bNjwrs)|ETeF1R8 zr3dt8DZWA2g(vB@*bjT)Ce~X6wfzdNARzLJvde2w@`$QbpFmu;k|$StzM9!s%JEHh z)1QByGIfJn$jegqjv$8rfk7)!WwZcrW<$of*Lr~QzqsG#BvasPXvr9K@G+bpcr%^> zi%5i^m!D#;sw|ox`To2lA0DE{Z2HXTQ|V)!S*C#71^6l=8Tj|_kZ!L%Il=w0*=OzX zDL7>rAtMR8&RcZ$hG)2DNL|)K>&dX&YYlV}h0q#4$~Lx*Zau?=LTwCm-m^!^Xv?9m zc?GpWC@RqD9;>afTps$qz0SJUM6ZQ#EmiBs=yXApi1P|xh+H2 zpjSSZwyDjC9Fqn}9I9~<7mQrm@z=41tjw6N5DRv9^?-WY@0}_#!M5^8A~X8hff<~H zg(S$PonUKdI9SbL)nFsdoT?>7hYJ~qmgJB^8#Gf$yopdd*+m$uP8XjCCu$2%4H)2embBHqBQ?NhMCaLLe)64f`t+vs z4a(E@JwN&{7+3Dh-u=)<8q=EWwjs3|-Kd@aPgbj=2;9Y99S`3m$<3!JklkVU83V@Q zuiUeA@BO==F}?Uh#xcIvA|&5wf3}M1`?^d?QZ`cH zZ27~hK)Y+p%;=h(G(YF>UTw3ri-fhtH;>Yhewf|!w2H|06vJlT)H5M=8^%}{zV3n` zCda7wr$!AZcScad*YYw&(n*xTAi~};sl&Ll>EIz%^(U#OT1EIQOMI+7UFSOzsmZ{U z^fJEcHvu#9oN(^HAyS3%9Zma&ps}=kX=NJ^by8ZdI;J9XY`q+qYN2sv>(qbC@gb;GC-m& zM@Lc~!4!T3tG$nrVP*XXi=S@UlPJY}p+?it5+#6`hDhSNMmQZ^lbQIrg~)g#9)3;_ z34q3%KYji8&+j)Mo2gsu6aRm#;;J&O-|N-y3}@(B5G{s$UczmyLKe!*yQ5~yB68Q+ zJU{5=9!`YOw!U4iaVbO2Rmw1NC$f>v-(hcI1oO;DJ1GF0cB~GQyz?2_Yq5eD&DXR? zeFg304!Sas<93+zC?Xu?F9tcmL6iR2K^^mrgD1g&7Um-%3-k~0{?1vwVF)_VAiR!> z!Z{nh7ZY6V)c5Yw&|(bfJ8rfjTD~dJ$|L{V60|3A(OD1~`Pzo4kZR#y^A#mvqF*e{ z(>i&Qp$T|H#MFJxv{23!lgb$nXLY9S^2zK&gadk^haZ1>Dr0a@Oc=B`mTdTIy=eYi4pec~-0ZTv7uLK`xmY?Wtp~bJR9&`mE;S*hx zxLVAZ!dmiK^$>pTx989SYHZsSrMpr>ZJDUrC|t;`i4<}Bl& zrW(I22BhvZkn}`lj3+UN2Y8P2NR>oALfwlK5DByoQARBZ{=F_6)NexqSY!3z>=BZ} zxnIKm|Bcp&=G71s*XN?y9@3`!0?kG%?3x8uHStHA)RgdJ|R`xRJl%jo~s3I(*D*3hz2aiu5&YryUW84GhZL4*U*3^>gRZNI;ZS` z#L^O^3&gTTiTHll{=BlCZY)zC3Eo>6cFYxIwk!YkHW=+;=_oW`ateJ_=V)yJqu`R# z9Zz25kkbT5X@k3vTI~&{yv|+$I?3QmGO1!uMcTk-e)D`W>$`PqYWcuV-4)*#c6+|XIf<4qtl-VxghRa@9&Ex3~ z&z`$6E;wPIE1fAj6#QAd4Qu9K+bsJp5e@(7`Kw{JL^Gz&21q8~Q>{S3%ZSo7h+ zWnVON3+{E*VOqTyMkyN^^UKowA3o$>FA3KXK}kI?ofZZN{yGD60oyw#oi?y^py&fK z%i7&X7g{U3c=RNRQ9H@`u;v;fzacq%;{k#M8`D5xU``)FYVAVyu8K{NJn}TgQ!YBZ z-i_r3%kzei(HQU@hrQQ+o5^!Am$&yJi(Q5ak+QBYD%mffKE)Q?0v9lr9}?u{&=?FN z?wb)S$Mrs=hA@XiM=HNATLajy=En+UR0<9j{XK7Zu${qB*OtQJ7`8yr&gDA6Y|P^r zX2%7Ydv^oCRF(F62!jTF5;JK?_eyqZ>3_fP$;bHPMp-h%DBZj~(Ru2fJw=!xqOPYm zK67@qeldLiVx8cV5&RV#DFDp1tX(VeIyMpf*Xwx;e^%5h3WYa2h==8r?nB8!=oL9; z;({F#SFnNOiE=d!U!V1KhBk~N_9=udNf0E42!xsJQnOA>yowSDC~Xj8>x_!cc<-b9 zc~OVlgCUTL9u{wkJWAEAe0p>GR3MQ*oNs*`h z9({^?5HkAw!P41;z-3_X&?i%kg0X&!lbiuZ>2rHWR|65X;i21o-c780 zsm48QZqxf8+0s#FWLhh90Z^(tnu0Tre7{VWgy8RwS0Ke`V^tGyNh zA=JQ4qhxu&WMp$0BED;P>QfH;MP0;=rtpg`SCWKUd&jS`wym`J#7TpL~6d7J_Pp3`q#_NJg@W%_R?wm+KCsDbFl` z2c%E(7De|;#^}xM#npSo$b;8#W)GVWeZrJ7r+ZnmGD9!s{%axXK^s1pT*WIa!Cp$~ z?J*f?sd6J)wMU-xS9W6>rs4A$nBkpWF669lG-}yBv+*$bbr6wQFbVm=qMH2j_pK!H z>$G^Bt-gGzmL3JwX)MU%Xk9EpGeKR4?+H0~3TZ5S?dn!($X^s~gERAlnO;S2_;^C* z07IBbj04hl(roFFin1CV>7_CwP&U~z?D*`2s-h>CTrK^m52b&L5+=kMzMm6=-9Ow6 z9Lk2z4!-xBF6_0-xpuB_%X&1;(E)$G$Wp16DlQELPF$F9)osSK8b81KNpGAXXiD2;IX7*8m|M4a75+b)ND;f*SndCYSCt5aXUeu+S zM781ruQrjU&LdutbJmR9+)70()czJDNzHoLN^H*}lzWgQDQLODTu`BG=YMFm-SOj+ zG&085aqmfk5qRwDtyA=NP|3E#p!fKMDCYeuc%L1bi8E%NyHa9eY56Pa_PL@&i)}~8 z`5%DAfo(MCY{h{e{eb59&TdxUHVA?B3yL-J)LB(!hKOD$QcPvGT}363nh- z^qL^mtWlWoV? zL + allowfullscreen + > -From it you will learn how to set up Solar-System and how to customize it for your branding. +From it you will learn how to set up Solar-System and how to customize it for your branding. ::: ## Prerequisites @@ -85,6 +85,7 @@ You can customize the configuration files to match your requirements. For exampl ... } ``` + ::: ### 3. Generate API keys @@ -110,13 +111,29 @@ You may be prompted to run multiple scripts during setup. If you are using **Win ::: :::note -If you want Sunrise to use the Bancho API **(highly recommended)**, fill `OBSERVATORY_BANCHO_CLIENT_ID` and `OBSERVATORY_BANCHO_CLIENT_SECRET` in `.env`. +If you want Sunrise to use the Bancho API **(highly recommended)**, fill `OBSERVATORY_BANCHO_CLIENT_ID` and `OBSERVATORY_BANCHO_CLIENT_SECRET` in `.env`. If you don't know how to get these values, follow the instructions in the [FAQ](/docs/faq#where-can-i-get-bancho_client_id-and-bancho_client_secret) section. ::: ### 4. Running the Server +:::caution +You are going to start your server for the first time, make sure to double-check your configuration files before proceeding to avoid any issues later on. + +Additionally check that you have firewall (ufw for Linux) rules set up to allow incoming traffic for **and only** ports 22/80/443 (for Caddy). + +As we are using Docker, it is known issue that it can interfere with existing firewall rules. We recommend setting up ufw-docker to manage this. You can find the instructions in the [ufw-docker repository](https://github.com/chaifeng/ufw-docker#install). + +**We are not responsible for any misconfigurations that can lead to security issues and will not provide support for such issues, so please be careful and double-check everything before starting the server.** + +![](../../../assets/img/safety-firewall.webp) + +The best way to confirm that everything is set up correctly is to test that you can't connect to the database ports (3306 for MySQL, 6379 for Redis) from outside the server. + +You can use online port checkers for this or try to connect using `telnet 3306` and `telnet 6379` from another machine. The connection should be refused. +::: + Now that we have everything set up, we can run the server. Start the stack: @@ -141,39 +158,39 @@ docker ps To make your server accessible on the internet: ### 1. Configure DNS records - - Make sure you have DNS records pointing the following subdomains to your server's IP address: - - - `*` (wildcard) - - `api` - - `osu` - - `a` - - `c` - - `assets` - - `cho` - - `c4` - - `b` - - `grafana` - - These subdomains are required for the server to function properly. + +Make sure you have DNS records pointing the following subdomains to your server's IP address: + +- `*` (wildcard) +- `api` +- `osu` +- `a` +- `c` +- `assets` +- `cho` +- `c4` +- `b` +- `grafana` + +These subdomains are required for the server to function properly. ### 2. Start Caddy reverse proxy - - For simplicity, we use Caddy as a reverse proxy. By default, the `Caddyfile` is configured to host the website, server, and Grafana. You can uncomment additional configurations in the `Caddyfile` if needed. - - Start Caddy by running in the `Solar-System` directory: - - ```console - sudo caddy start --envfile .env - ``` - + +For simplicity, we use Caddy as a reverse proxy. By default, the `Caddyfile` is configured to host the website, server, and Grafana. You can uncomment additional configurations in the `Caddyfile` if needed. + +Start Caddy by running in the `Solar-System` directory: + +```console +sudo caddy start --envfile .env +``` + :::caution After starting Caddy, make sure to visit `grafana.*` subdomain and change the default password for the admin account! On the first login, use `admin` as the username and `admin` as the password. After that you will be prompted to change the password. ::: -Now, you should be able to test connection to the server using `https://cho.` in your browser. +Now, you should be able to test connection to the server using `https://cho.` in your browser. ![peppy shown on cho domain](../../../assets/img/peppy-cho.png) @@ -193,7 +210,6 @@ For example: After that, you can launch the osu! client and should be able to connect to the server. - ![](../../../assets/img/how-to-connect.png) #### Opening the Website using web browser @@ -217,6 +233,7 @@ Now that you have the server up and running, you can start exploring its feature Please follow the [Configuration](/docs/configuration) section to learn how to manage the server. You will learn how to: + - Update website branding (logo, colors, etc.) - Recieve admin privileges - Manage beatmaps (rank, love, derank beatmaps, etc.)