From eae206317f627e22a2bdef96d671ddea3d22b46b Mon Sep 17 00:00:00 2001 From: alirezaafkar Date: Fri, 1 Mar 2024 17:32:44 +0330 Subject: [PATCH] Add androidTv support --- app/src/main/AndroidManifest.xml | 4 +- .../org/bepass/oblivion/MainActivity.java | 6 ++- app/src/main/res/drawable/switch_ripple.xml | 10 ++++ app/src/main/res/layout/activity_bug.xml | 1 + app/src/main/res/layout/activity_info.xml | 1 + app/src/main/res/layout/activity_main.xml | 43 +++++++++++------- app/src/main/res/layout/activity_settings.xml | 24 ++++++---- app/src/main/res/mipmap-xhdpi/tv_banner.png | Bin 0 -> 15490 bytes 8 files changed, 62 insertions(+), 27 deletions(-) create mode 100644 app/src/main/res/drawable/switch_ripple.xml create mode 100644 app/src/main/res/mipmap-xhdpi/tv_banner.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index be14cd6c..bb2fe7db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -26,6 +26,7 @@ android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:banner="@mipmap/tv_banner" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="false" tools:replace="android:supportsRtl" @@ -67,6 +68,7 @@ + - \ No newline at end of file + diff --git a/app/src/main/java/org/bepass/oblivion/MainActivity.java b/app/src/main/java/org/bepass/oblivion/MainActivity.java index 4830bfde..d922e535 100644 --- a/app/src/main/java/org/bepass/oblivion/MainActivity.java +++ b/app/src/main/java/org/bepass/oblivion/MainActivity.java @@ -9,7 +9,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; -import android.window.OnBackInvokedDispatcher; +import android.widget.FrameLayout; import androidx.activity.OnBackPressedCallback; import androidx.activity.result.ActivityResultLauncher; @@ -179,6 +179,7 @@ private void init() { bugIcon = findViewById(R.id.bug_icon); settingsIcon = findViewById(R.id.setting_icon); + FrameLayout switchButtonFrame = findViewById(R.id.switch_button_frame); switchButton = findViewById(R.id.switch_button); stateText = findViewById(R.id.state_text); publicIP = findViewById(R.id.publicIP); @@ -187,5 +188,8 @@ private void init() { infoIcon.setOnClickListener(v -> startActivity(new Intent(MainActivity.this, InfoActivity.class))); bugIcon.setOnClickListener(v -> startActivity(new Intent(MainActivity.this, BugActivity.class))); settingsIcon.setOnClickListener(v -> startActivity(new Intent(MainActivity.this, SettingsActivity.class))); + switchButtonFrame.setOnClickListener(v -> { + switchButton.toggle(); + }); } } diff --git a/app/src/main/res/drawable/switch_ripple.xml b/app/src/main/res/drawable/switch_ripple.xml new file mode 100644 index 00000000..3182d879 --- /dev/null +++ b/app/src/main/res/drawable/switch_ripple.xml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/activity_bug.xml b/app/src/main/res/layout/activity_bug.xml index a86271a4..7b049070 100644 --- a/app/src/main/res/layout/activity_bug.xml +++ b/app/src/main/res/layout/activity_bug.xml @@ -21,6 +21,7 @@ android:id="@+id/back" android:layout_width="36dp" android:layout_height="36dp" + android:background="?selectableItemBackgroundBorderless" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_marginStart="16dp" diff --git a/app/src/main/res/layout/activity_info.xml b/app/src/main/res/layout/activity_info.xml index 6f97ac97..65544727 100644 --- a/app/src/main/res/layout/activity_info.xml +++ b/app/src/main/res/layout/activity_info.xml @@ -18,6 +18,7 @@ android:id="@+id/back" android:layout_width="36dp" android:layout_height="36dp" + android:background="?selectableItemBackgroundBorderless" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_marginStart="16dp" diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f36298ab..b65eff75 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -21,6 +21,7 @@ android:id="@+id/info_icon" android:layout_width="36dp" android:layout_height="36dp" + android:background="?selectableItemBackgroundBorderless" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_marginStart="16dp" @@ -31,6 +32,7 @@ android:id="@+id/bug_icon" android:layout_width="36dp" android:layout_height="36dp" + android:background="?selectableItemBackgroundBorderless" android:layout_alignParentTop="true" android:layout_marginTop="7dp" android:layout_marginEnd="14dp" @@ -42,6 +44,7 @@ android:id="@+id/setting_icon" android:layout_width="36dp" android:layout_height="36dp" + android:background="?selectableItemBackgroundBorderless" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="16dp" @@ -64,22 +67,28 @@ - - + + + + + app:layout_constraintTop_toBottomOf="@id/switch_button_frame" /> @@ -117,7 +119,8 @@ android:layout_width="match_parent" android:layout_height="80dp" android:gravity="center" - android:layout_marginHorizontal="16dp" + android:paddingHorizontal="16dp" + android:background="?selectableItemBackground" android:orientation="vertical"> @@ -344,7 +349,8 @@ android:layout_width="match_parent" android:layout_height="80dp" android:gravity="center" - android:layout_marginHorizontal="16dp" + android:paddingHorizontal="16dp" + android:background="?selectableItemBackground" android:orientation="vertical"> Z_PC2neXqXSe|d?DPLysIkQ73)D$jQUs)Gg5c=$ zL(xoA%3Mwkgzhs80|Ew$1_J&U^7(*-S%EdFKQmxzp0=?dEoyJ zgEagFLVaVH1_1$Mu~OA^)|8XwF|qs3Xk=<*h}t=tk#H~q7y)Dga3mxoe2%8(Jj!Ac|6>3A z;wQ6ocDCnXVsdkHV{~I>v~#pzV&>-NW&*G?>jg0MFocYPf{$}*wfB!6}nY-10Ga{lkFe%`e$~0e-q;@GW(CH|3LpOH;;m&mD#6A{|fFe{C|o27oLyl zuT=j-%KvP_f5d*ap#U5o(|_*|0&r?izPTVE+yzo%!m93|XW3S%1VhO=PLs>6MhE;b>M4d^tNiJAQk1@7DLYlbYla1!4&p!e9{Lz$wIAZJl%9_20)(LL$GQvS})i z$d!Ihj8Kvtt9Lp);Gg&Sb!{(>D|ag!GShB;*{?bK`2~^zQVbN{@P$AVjsXD4;E(+{ zR4>|uQ3LX8(!aPHOr;ylJ;0BT*IDK-2;u*O{;!B25R&L+W8;rrsH&Q|?x}k0=!d7t zHalONlE!@7Wab~{UprfT7t0Mr>v0mL z+0XaSL@%8Hj2eRGsoarGI2wWgAVff(ilQq?t3hqItIN- zp!B`Pf)jmMKx#mS_KdwnhiZcM%wk<3w_#0f1U@-;Cy3L+qw4+!$xaa7>_BqWy} zchvTitv8qK2EP1U*~0(_+5GmM!ynt#Mad_Zd&t%Y4b^ad^0d-wyz>jlXE(+FNbnD| zr%8j=zx<_30?v}G0Y}qK&%V0214EDs1n4$mrEc{ZZ6+hRIZSZw(90D9tT+}+bRwK4 z7a7A2Lq%^#5P2#Eb@PiW8$bzE+UK~#a2vTvi zZkX!;yyLmM)U(s8eN;X33s`qjab|LaXnvRE%s_T=;&FCfCirFNx9~aEZ0`?HMG&Ce z!Nt)M^}zWA;Hvj2G%@jA;H-Z8rlXPraA)RUf zlWk+~kJX=HL^YVU2d7KYi3pDVG%$49HrE2muW(k0Iu^)yQpr(vvlc4t+2jS-WKdU@ z@r#AtbULRPeKTVED1-w6kkLK(?M*4#F+Z&tv_uMXd9&#>+g|Li_ZBis<#VBdtNWgv z36ZF&h(nm8Wa{zk^xGYo@~|FjI+CB{uBCv%^pWM9~KJ>4=WEL zdH#Fd;~%mhV>SJFE+Te&5Kuvz!E&dn-ZNKlrAg}6xqer>6MaE@#dmjil#}@TW=cO| z<2-Hf;(ZpO9YLb;^@y#O!-plLv5+-nL>ecKnKBnG5x)xHFzSKY%#_M6pe%?PW`GUB zT;{n!`RExpLFRupS-l{}PY@bO{5H%g(s)v@WJQ`B1ntfG%XM}AFMiKYN#mtbIQLch z{5#Nn1$2?+Cp?`h^19UM^%%Jrg~?S6@lt&1*gRFNE*6bAl|I?K#hot6>y!!$ymtdU zMpZK&`s@arkBuZ%QVld0V{NY1DPR&!82%8r9UhR8))8|fH%eYUDB-M&F-eY>ZIeXb zZNZ!6H%sv8QBNCw@`Qy2ZM^O)Wekc3e8G#==?V+MKakJD{JoI>>~Hs+gD}DtC2%T1 zv*Ij0^RrK1?UBXbW zk+D#qt1t`-M>oh9Gp)VD9&g4Gk_sM!bVyFm?{}hgi4ug+>ar( zwf8^uv}5}}7Ice1Ifv-(BbQB$C-wZ|LWa`>>4K#j{Uz3>%zGzkCxifFLcs`-_Ig`! zLn5+Gv6`FABDt*7=R^ve?-(CGa4WG|I{URPYWFl8)b|o6S%`YMgT-aN&9l=@o0=Nf zRD~c9Y-|}4pJrt3hJy$Ke7ZW_q@J9N9yEiqkBID_O&lmpR6<_p=@2@DZQy%7 zrd;yEMhWkU#S&Yfwd?7Q7N;??4irgK-J#idf;waGGsw6qNt zW5cLlS-P@-FoHyBZv>Urr42H@N;N|e-z2IruW)-Cryjp^N!bZhLY3<(!dR=l4Li9` z8i7LO++`p@>Zbb$()YmL`?9*L?FBhk_s~WCh7SDf;XLMi-771lW7$Vh_sk9J-<$5>$O;`f0aP;s)4>Zc z96Doh^zmrWG!vco+ZXfKAg=2^NRpF2%08;`Gg5(mB5FG>rmgcyTlSRcZO`Pqw$WCz z$&Ok%v{VHi`BCO#A54Bmdo9uR*lRr2$J!qZ zs~ZvJDufC|IHDsJLHNmPRcPOc^Ff$AUr~%J^@cr#l!$uk@@vbV}% zHvc}~6)XQ-UU$1x9#n>y5f3d{<3{f{b~$Ss|L-m7a_7NNlrosEmgv$Vq9Me|Pn*N? z`o7Gsd*gdGy&o7{kWe+f8t+Lc8b&*4@>_2R2yxiVON%{xV{=eZRI2D<^;8MCBqxHQ zF!g!?o}n(T9&_h=JMb>+wlRv`V9ls3oqxhl&|xD^;So$v%_LEJ0x%L91T%K6;KZ7V z^tC}P$bFWA9DbuuJOxA*U^)mbHDjp7oi@t6Rw>X%hn^IXGC zZi5e;*>^q1!Wm6q)eEqRHizy>Ap2kXGQb9#Wd=D*z_mEUHiz!7>CYP1Au81xk1imxV2U!5l5+sr_D!lNWuDUTza{ErcB zYxF(AWK^F>EQU=6g=j9zt+0IW_fTs6{Q`6bd_Av34xaDsMwT9;WD&Bk14y9m!*?Pf zdVZC71pLBSL*!dZa*^{J*GPK<3bsEs#>!829@;>;2N}GS&Ne{W&vbEIQ+H!H7PpWE zrr4_f*lOC~@3cRXO*tB_R)O4_7LzBd;NTBDI0Ge&m~=0o)L=Cu!F$X>_ye5&ZXsb= z%BY~fZ?NI>d}@D?WS|H4mY@>-1XaWbrVwl&ZJ)Oke#cXJi2Plo+Ne%Kh|>#dnuonj z#7|$y&Zk+R6zg;z1af_IW~TcPs|xmthFQHQMbNP1R;KC3o%iMZ-Sp!Rw6I9ENSYkk zx$L92$_9E(o;NGOiaoGoRo9N*m9Fw?Yvmt1UxcKzrJ{}+L9$ICuKG>vZ6sH)a zI${^B%tJUs>|?8tfk|D@u8@MH=orhk)Lx{QsTgGP_Ly8q;6fJhMh>ymLS$Oz`tEeV zrFHL-mDkle9!x#hHa?Aw5(FO??S=K4dJ%?Ns-`|}v*p>Dld#hDsxy!T+0+48>vDAD z%Zfij2LhElMyqU@UIociEV?DdSW`}G1^c*H#Ls2x<>YlcpfQ|>@0!}HUK*)wMlV~) z0cwhV&Nh{rr&Jz*%XDF{Dz&^{_zv^CzFv2@l>DWBqSme{^zT#+5Voqq%1IDP(4HB? zmD_Z$sk`stiqrm1oBZex;~NS)k(Tt{o{ku&5(~utBTXmqle4_SRBQKJkW>;(K7;A3 z&c@mLitL&rfmpwuLJ&=tW9`TMlRnHg{pQPJov)1VQ(5p1Fd64^g}s)7c+1o~86LQDZfJTE{S2{Dek>CqREypFP{Ob%|ZbqO?#O* z93|l)ceM0Pems+CV^!l-s>ud)^>C6&=+QB6y9^ZBGI!8|Zqab;%W4?16#h5Z*5-Ia zKbx5QkHSGq;=$22i68@Q_nf2R!vlb6kTz6)kSt$@_MbS=`~VIO4fo9O+mX>fz-23T zk~G-~YrXDV3OG^Ra>D6oSm7DYX<0}}Q|1azqesh)_wQ+cCv|iTdo-Vrsqljpn!aZJ z2u+A~cgsx~0eO6Tk;5XRh~8fO{+fU)qX5b5u|E*I$K)A~2;JrcY3MAv`08IoJ=B8p z7j%wEWxTKU&Y*cc^atz>YnK*}T-*1m-0q#L7rqY}sdB?oo%{i86_#1eM~U0_O)e=p zVRcLXu-s(|WDc>}6l)Qo`c`ip1)b^r>^SVy7C=lr9L&Pii}0$5Vpp`I!3pLW4+3F0 z69WMTJH5=s)(6y`AIzXq!anp=J+Pu(APbAQCN#!GfZghABllBwt}8!FLfUKTyE5e( zcKtPkd?6THIJ~04$(W7bTvd(&0ikDYzTKr?;s;C0qe$LL6zn6&{J8~GknJUA^M|2z zg_j2$Z4Nr<0Lw9xBc`3Eu$?Bu_6K1rt=CT_;;7`|E@z>PNLwd1Iayet(!qYMl6_aMTIp}OB75-Jt zGk_5e>N8~#o`iye^4phC{MWfJ{`eFn8EBcP7UDM;ScaX#@%qg*ES)FvwPxI=ROyZh zVw?$C6atotvzIjH;{k%eT|-6s(>iET4i+bIflJwFi+;xgG+M+7nd(bXrqMe8F&cz< zeUGQ!Zl|G1SK7Kcr!0<%9U)xR;K1D%ufpmXUJXWu>^A#O%=?aSr9TIYG?n(@IUf`3 zE894o(I#rH}0D3Jni{P*##B@W;UT2BQc(yfb{r4Kp~O@h7#(u zDW36ufg5ZxlzQvx@7hpNJTWVKkt~lRZF>^&WbB7STX3o6Ej3Q#*g3maIRdp(oS5bu z4=Z9BOcw9&A=`C@D*IrV8-aa;36bB_cGQ0$KjSpk0ZXAVz?DNhcbt12f)STpM2ilY zx}M%SbJv%>QlhccXOb$euvno?>Qj@}+Bd#iZD7Q}kV$B^^>-DtVbzTqgQ;Q%Gub8`%_r zcI72#aVRg00@PU#$&D&h6CpBpaP;#$tnU$F(4k-7q_1P$nftoI=KzfbF71haX}p^q z%`T`2uW(FCdyuz{FYhrfP0|3`3!=+)VQ!e>EtL=jg0v}YTY8u0w!-&|5AVw*jlQBq znh`AK`Fw0z_(0d+^LY;5);}JuF+kU82KM#V+4P*Q4`2-G8I@M%Tw1vAC z___G9O1e9e%YHfeb3!NR=EW~HnU@&5WxzaAAQ|M&v_+3>2lI&0q;1zyo)NDB8GH-a zyvH=Oa>VpoJ9TrkEQm7PAqq^3FG9s^FjZ?~Q5w@Zcb&m*J2y%!6_oln1XpvTIRsl; z_Mwb82q8&{XjL969Q*vMC5EdrRybvEaveX1ea!oFB@umBVFGQqr2#rMX0yoa~ zBjq4C5MzG`oC$PcGz@?3?c?&QTHtN_XkR{Z?D!_nf|iE@gyEVmok|AiNW1=YXz)>%bnqgXRBekG)h?+=RM`^{mg`zzd@jKQS!h`g^~17@Do2E-^$QBjc z`WQpAm1x?l?uobWmj@Sa$bC~782)&>b6N3y@$pE4Z5}?rlk@)baM|a`*}R&VUHYXA z_oME72ru5W_vifr97p9z*W~T@L;PoHJoN(zh%;@Bq1-F4lB!$%!dRnE& z)f%Z-AkKL@h1)cg`!ajytfR9_N(3t6ND%kiBuGP?8~ihNrTXk-Sdgfs_ffya0pW(r zXss=pPh${iN={MHltmHYswIE$qw6*e1Uo+By0qiof*Vz0e)$Vc>{2e^p+|T&>4;*~ z@Yst6d#@t^NPWUaj@#=2(l5CmdoS5*#Zt>Ry*cxY^rij6hBpHxjnjAXzIV^FcI;2fR8A4K`{Fk2vWZTg&PlVG zkpii!_4qNHO(vz(!kEB^7E7Jp(IeDM)8^^1C@ox#k4mhtR9fCE>>dd0)F6QoaS~5z zq_T)T1rJY2)BQPn-ExXoAsn)|Xrbi68gY>E?~eyzTD8*UUus0GXB|yzz8Du(@I}@= zY;+u|>L@9Czit&f5S^bBBdJf?3gB*ZwuuuJ94LJ}8Ty#@RhLKusk;}y?|FE?yp($2 zwg}Ks9r@#Cy@tG72j`tiyF)br_?@uit=;owbpl;5pj=R8C+g1OT+J7<`+Yey>HMDR z;os)v>9dSOM#D!?g5=aS+USF9ZVZQRQgl=A2xXm|MFNn^CZhAj-1hO6)8ne$F0SU6 zrLX6YD6zHHM61$bhoE?o*q4W?8d4-ku-+iMnH3R?XoU5H-4FZnaM`e?Ddy=vb zC*HQ$F32vnFN6(K-ZH*Zv5wMEa^o>$hh!B>uR>dBR;Z?mHdn04)FGIRRK-uzCaPhE zRRkUPE=`2oye$%kQiigWd-iyh?TZIumNdS_3G&<>VQ1=iwWY5puwYpkaRju`eG?z> zq>)hYHp7rFks?U)VSn77sIRXm<<*C`>^nnGu{4I{6!RyZ9`p6}`FlzvaHj7;eK{qw zzp**BPcv>}7|a$E7zH+FOs&mW9DKyhto2J?VwNo{SzJgbKdBg3-B=Rm8_jT~fj>ULGf3yhH(8*jY1Fp6lObl=mO)$u`JL#>W$6PjQfAw;% z3OaTZz;AKQAy0^m9`eI+tlb*-ZQx!nV)(x2rRnYbUfSjn zjsdn);37L&$6imhx2OKW-|8uzRj>60Nzqj*!N7WzjD(;CaH<#LFUa#RwT97ZWYF4Z z2!Y{BFW(rpR|W-V9U)$F_uR(2JF%^R*v+y<{t-zcu|X9U-h|K`iy}0&-iKz>qTEX4 z4M2+N(TM`6GH0A%q@tM{_t_Mpl&v7zhkO*&`cfY@#v6SFV-J0^=-3ar)A* ze#}%n$^haZ;i~O)D$wiwxvHpSS8xi`Sfky$7Xd>dt6Su#kLm4(!Z>?U2~#RK4b)l= zeykoJ-Y)L-G+129gTBO6FK=ts4I>WT8Z z-zI9p8so=}Dx@+{z(YPXdnmNj)qq}cNkOn2S1<#7!@uX4mX$JHB(@GBeUaK-=?QLo zi`7wQ(pinf#z;t&h`eD>6%r$bt$uJjXt~^!v*PhWd*Nap4-Gr>Nu>$xE)9Cf+37P; zHz$g?|Ll$)v6dU{IlDk!Z=F2}2KI{m0t8uotNptUfY^q|4~_q>KX&%Y4jSGayu0fe z;a2weMJ!k~q9&%MD+yEFN!<5nSYUtT8|ELjZIAbUv9Uo^%8#)-zP6POJ?Z;CalCXl zSGP)T3hzo63!O^to)FCcXf#VCA4#H{LO{r6l>@(TM&+^Sve{P|FHwo9>rmsl&*b;$ z`<0!zDP(K;#yH~l69%q!tZpw~qxbaXtmk8o7ryq>ip*-F+PouKwoySJ?C2LDwUztF zR8NrPs3`{2@-mpPZh;8naaF)I63R#OnS#Q0?*U**Q})zs+bjw8Qo~`TL*DtQV$H!0<@5R z_JWH&R3Vo~sUFd5G{oGt8p~8x?!KP)s_lH5%WG@uGGENV`&706c%J5ovCK3;aW<7>tlz*Y#pQG6A^ww*&zjR3W{+572RA5dzwUy%E13b~2}Yr)bM(x#iZ&M(cdfg-O<~E5F4C`->w?SJ;67ONyb+-J;9sWWxE!FGnC!p^=fR3Ns;Db0ExX z0i_Aqj(8+gIbejoa6PyL!&$()QLEC-8h{n&s!?Memks zFP(2fucySEEHAzGRWZo4d#nJ%43DlOzE_v4f^88Yfsg=7Pgccz36q)}Y7GDN9{Iu1 zZ9rT=<7+sCsfoCHJe*2|6sD@UmPZ{%N5Lw^&i9m!bdt+p%KiYKq^dJUy< zBCmh1{tndfMoA4aMYZJMKsbPcy4RB6y6*cDrs?sKJs*??DX!po1F;FZ$XZraRqz+T z$oC_xnLm@Mt+p7^&-@I_G^3uES7YU__1NaN?JZHsF!_Af*Wv7bJ(vZ|%k1e7aXE;{ ztX!_}c1Tm$A}RRML#LY=5~1qyj06Ik)nvTF*jdZsmZc6JDSUB%(8u(&=DK|B{4xsT z(WOE!k*Tgc(hbcGD;r?N%rsj_h8IYG!zbVoqgPM&ksxsnV(-P3DwhO!$%54y+AUqs z=VT-i)PV@V-syW(-%9pb#>aaY{h)fatXo!K%K6>{k`!E;-CaC&M~`1CIDW%Cv5s%Y zgxuQqd+9v%#rN*<%}xE)(a)r1Eh0NbMDWKnas`Aj1UDfPbtleG8#Cr-^JEuhfW}KI z6YxO%)|oTO2^yF1cOUxRpL~A?c^W#X-0Q*NT7O|r0FNO!6+!T9)G5TMk*Jgy z_JGj!rfskejQ7Y<((%Zmc4!lnYQKWH-4D{YKVMDU;k(m<1&%;x9}^2`uX|>6vrO99 zIP1JrUM*R@EL2yS1fg$IDVP#q!EWTbFmY4){-{H{Sl-^|Ir0c(^wjPpee( z1Ib^BkEpijw(7)xVJAqIk5)(YG@9N%_SWhQ>l8%Q9x=tpav^sT{!*AWf2srickS~J zACl|NTMU~dV8!o?!EDdd^`840r=lyQ@A`ID4?)z{a-2`!*Ta1%(X+?;y=-!hD7`O=%nw5#DLcMq+Z54sAyq1;uUCXeF3E3GPH^Wj@lW-@=g3MU}vJBw`ZHB{~G}v4ndi;{op;$Ct1;h6?N=7p_NtroL zUtGl`c#h^)9cmByBKtmzB05l&G+r&VFh$66E|vTy!1)z+jw3J}gZkT036V>V)>v6V z4wQD|jL{moT5Y++44wEZ#|*EMy8VK7C>Gzixqk&esZR5!>3;zyv%v)_cd);9HitS$ zUyoszc%$6<%vI!bLe7o%7i`WhMVA;LAFrR}_4*or3T_;$F=HxHKAj#T!2QhSjatr% z=5J_UbWveSK!E<>FlvevG~d29h?|7=OI9Dk2;I0?v%s+qse)+O>pVPKWVI$(0z8?4 zct*K8gdX~RgpRT3^o6FC;ih*Iq1@zSb9&%$c@I#s5&$>n8h8G=&uKb&yP68R`9zn-P#nfj-d*+H1m{sMdvrwD{A zT3>d@7wcgY4o*RgxTNCNFY`BJaVHmi7-nNY=C2Ek3fARMjC3b2qY*OZlnQBxz8sB2 zp$f4l@C>`qJ?ZcQcFZm#cbp}!?;Z~nW4Tn7NCh_l14`+AL|8iBf?!8@z?ydLcm~2{ z5q@=#j0$NP*#EK+SlG~JCTREP++e;=Y6PuEV+m=nUbsfcX!vh$W)VZ-ozq7e&sn5k)auZ{sV)IUl%1H0v`Qxg@ z3N0;^e++^So}<^a4jCfXvZp7^=H?S9VWbyJ*sO~Og1^OA^W0cAPAl>etqHR03Ycyx z$-qRAmjeYiTnb}ImcU9~5xX^!9k!1n4omSvb3ZSsBnj%uT-BU!{M+q+Y>Y(Sh)7d# z%lxD#Q&l7*3q1(eT>3jK78Mj66^>Gxb(BM;dt)0zJC%N(rGi#(7b+kyg^2IgK!!t>i}G?&-HfLmXZt;1obe5Erz zR6umt{MpOxPlO{w?Q-o}s;PZlFZDc*-6X1<9SuOJprUj*S&DD|4k?W)Aa3sr%2^U! z!bz1M&#`q{t~DxP?`x$J$4bD`VMrueRf+)fDrj6qnmFbrslmu7zTW>BFolIvn(odv zHFoY@CjPSJ@@XS`ZT<1mwMMNgg^m$gjPCd)-HWC}pS{!j>b7ubGO|1=e^CHiE`SA& z0+|b&UjFK*M~$)q1jq{Cb7=iM3Omk$^p(9!sY-npSf0L^#c6frCKHi?K$ntIVkAI% zq!N1<l~?|45l&n+4m@X!ejY<+q^h?f3>V* ztpR~zKPbJ>!0))iyqw?C)EM0NU5!)KLgMAufh^lr5+%=0ywcPS5y z+u!nIz?e5l{540?a9dM-O+t&dUcOE{8DLJsOWwUC%I0=Ep3h#P-J|irI^AW-pC!?% zLDA^DgP?KAv}GG>lz4Q29_qsqIEHVo@tu3aO)GmGJi0q?TbOj8h)*P{1e|*YS*44p0sp1)da{gHV z!|i^ttW8}cpihQIGbZ!p>yo)d+0z}o+~OL#ayQsxFvM%mSt#oqg0y{xaB5UhQ(f}x z%rH}Dhc{ro)yr*^_L-4#*&5-<(^kl{MA|wZLC1_gzQSKBLt%FsoWtG}#S9ST7y6E{ zFz}dpjrLpC+Wr=AESTjNcpQmU8pXhOTDLu}Qo)y*`S{-zd7@`uSqS^_vyFXP!geAc ziNkkxS-=hD7>)ZRf~zdhZ$hjkM(m|^N7T|KK*b>kJKF>g%~B_u0K)j>?dH%e1w~Ya zeG3Ke$Ta4HIpJXQa6V+$Z;$5udm;rjR5Z9K)&>P7tL>G=D33`7zV2^P3U&c&qp9=J z`f0y4+1r+X|6B!@^heLZ)0k*HRG7_#Ss8fol*^o)ARt?4K(S0i-Q*dk+olGl{a%_d zMSI_>7}6=CcI;qYl$8k|k!ee$hN z?s9Y4IV~$b%Lb~Pq%Gx!f<_5SxmGb@Z_EW3gj@R1wy{fo&eQvr9;=DX3U689fzLk` z2hrs)%__ARlzz>}2tFMyYxq6ce%L$jtl?8|a3MLU_H)oVrt{iOYLle_s{&;*5F4z-WsZe4bCZ|-tOI(|r5fVw>ZQ1CA1fj`i>!)7IZLMVa?dz& zmEdZ|`@LJ2-^@o|q@`C?RTQ2*1q24l5LRKPzceT{$VKRw$6r;W=ZY{LFs@ z|FP`HZLkk7NYj+t!^1iMI<5kX8I zC4Zo=No@CbaYSiV?Oqv{f?m4mv^P_e;>X>fifnt;Gr<6;ZlLn^(>!J14Dy3RU zps4_;O${W6ISFR*@7WEPJVt2;h3}qm4*V;G$+j9!l9-^{U=@qxcA-q zyZs&p_lApJ?=$VRfrrbD@L$VnjQvTfDgsA?O-ZPuNTYVXWje6c%G8st1}gUD5Br4+ zyv(@iD3D=2&L)ay#|B`va%!9b@7~;Ob&J4$ulL-}2(IT+*>WOzu5mGe4;We{WA*K@ z%gt7&a}$)ZliX!FV4QY2HM+f#jmn(Lv_NiX))}@_rHP*6wP6ZWdYXFXB3?g%wk@Fi z^+hJz{iwj@0x)1tL`}ekCVTlC$_7KCMpI0*_1Uhx42(C0_U$r#_IIlq=kr${UlWgD zR40B@LnByU*}#BPmBs;?34I={U`4GdsX}{?to~dd*M}op)TSM)x`mi+2HeDnT@NeX zuS^C<2Ih^IhN;QKnr@GRA4ByY*O`;l=x%>_HMpm~vKJUFki>qwE^%o@mJCHy5y&|v zW^;TzF{sSZB7fKdS;5AZsT)#~O8|j0IQk}r0GZy=;E=5->x4DNgt{M0{LkL9=NjNI z2Uh7A8f+vGc)+tDNvx#}Q?=KYEq^)DwlJ7<^m&q2ReiUhp3?mjEwn`|nUR?pHz|3U zwXUJk)Oc)KUdD|_ib!CQ&+FUXU<|9(5tUSqe8k4(Z@yDkT6zVN12K9cI_UIbqMG!W zkC~xVzlWDtWxtaQt8rLn$KO+K9dwaHz7`Js4XqxOBG4ZG& ziIC&s=Yfz*Vma6$PcbL- z=_zU?+A5F*koAeXo6!WMSse^F!zdU6;-U;#=Mq4!*UOF=dA45`ug6;~ZKu)Uu^P{?>R2(O9#RhLtJhimr>mm z`{c`skTi438p9YxFI&;CKyGr$qFYD*70_n9El<<$cJRg)3eh`y!&zI64~>p z!=2k7IKa)}%B^l~CSR zOBMiLH5D!^8l=L?cY)8{ehzrH^(|bi;Cis=uR@G&Y(}v7-r^@F0NIxy$trBmG5)OW z;Ln3LGXCxu&|kK!10;7!AoF^?Ew&+D*GgBUy|}%6xY4Gxdlm|aJlTy*0)D@$gNqcc z^F|!lTAyxMvFBl<*DWGoop@t1OZsQ6&4Ef8q;rM*zJ5<>gEs&6(fW{f;@iHPskC@= zXZ@KU|Lb4Ar*-9lBY0_u+T&mD=MAU7pq`zZXIBfSH7iI_6pv->z6N{V0fp$$p=jMDj zy?OdHI_WwyK7Lk=}V$>OwWIKENX4k3Hp2Z5})>Q zUgDmGNCe454lhFlg~NJeub;Li;=khMdG{v zkmNaJHf13bSk@kPoX=orw~P* zz80j%l>JbmXxqdari1BGAo#vcaTrVj%QfP&|nrZtSY!erB<&iH(=e9gma z#xsi#M|71$kX4vy>r7tLpuJDC?Vl|6!8*@4L-`h;AH<~ZquF`boVC&OY{nd~t&(Q; z?AVq&ba#fKnjd9xlk2(2yCHo{i0>ggu1%nSFCu`T8g#+te2*v)T>R$I>U(ZY5S06D z5;M3|R=6^D7nsyC625kQjTgSa30KK}*e@D$OAn|Y(%UDHH+44YtD*#go9xU&j&jEu zKe@@Buqr(cfc^}5zMYzgl00U;gESA8OkM8!m$z_E9%|pDuk!~2nz4KR8MMO34Z0*Y zfgUF>xxn-5Y-MVpQ$4!m!fbsoh@bc9RP6hEo^>oiwi++f`N>U1>{!FjbAylFzx+FY z(aHpP{Jre9j?wg{1;_T!g9fY2I*c^V&n5mq&S53DSm~y;9=xVpSrBf&UE~z7GHZ literal 0 HcmV?d00001