From d58c56ac59dc40ecadaa524bac24e6e81ec321b9 Mon Sep 17 00:00:00 2001 From: Michael SCHAL Date: Mon, 8 Dec 2025 20:53:09 +0100 Subject: [PATCH] fix: add tasks to address EPG overlay interaction. --- lib/features/iptv/screens/player_screen.dart | 35 +++++++++++-------- task.md | 15 +++----- verify_fix_log.txt | Bin 0 -> 84028 bytes 3 files changed, 24 insertions(+), 26 deletions(-) create mode 100644 verify_fix_log.txt diff --git a/lib/features/iptv/screens/player_screen.dart b/lib/features/iptv/screens/player_screen.dart index d7238ff..f087d41 100644 --- a/lib/features/iptv/screens/player_screen.dart +++ b/lib/features/iptv/screens/player_screen.dart @@ -752,6 +752,25 @@ class _PlayerScreenState extends ConsumerState { // Hover Controls Layer if (_showControls) ...[ + // EPG Overlay (Moved behind controls for Z-ordering) + if (widget.streamType == StreamType.live) + Positioned( + bottom: 100, // Move up above progress bar area/OS safe area + left: 0, + right: 0, + child: PointerInterceptor( + // Wrap with IgnorePointer so EPG text doesn't steal clicks from controls + child: IgnorePointer( + child: EpgOverlay( + streamId: widget.channels != null + ? widget.channels![_currentIndex].streamId + : widget.streamId, + playlist: widget.playlist, + ), + ), + ), + ), + // Volume Slider (Left Side) Positioned( left: 24, @@ -953,21 +972,7 @@ class _PlayerScreenState extends ConsumerState { ), - // EPG Overlay - if (widget.streamType == StreamType.live) - Positioned( - bottom: 100, // Move up above progress bar area/OS safe area - left: 0, - right: 0, - child: PointerInterceptor( - child: EpgOverlay( - streamId: widget.channels != null - ? widget.channels![_currentIndex].streamId - : widget.streamId, - playlist: widget.playlist, - ), - ), - ), + ], // Clock Widget (Always visible if enabled, or only with controls? User asked "met l'heure dans les options") diff --git a/task.md b/task.md index 1f84bc1..6e216a8 100644 --- a/task.md +++ b/task.md @@ -1,13 +1,6 @@ -# Docker Build Failure Investigation +# Fix EPG Overlay Interaction -- [x] Analyze `Dockerfile` and `docker-compose.yml` dependencies. -- [x] Attempt to reproduce the build failure or gather more logs. -- [x] Fix the build issue. +- [ ] Analyze `player_screen.dart` for overlap issues. +- [ ] Reproduce/Locate the code responsible for EPG overlay. +- [ ] Fix the touch event propagation issue. - [x] Verify the fix. - -# Audio Investigation in Movies (Paused) - -- [ ] Investigate `player_screen.dart` to understand how the player is initialized. -- [ ] Determine differences between Movie, Series, and TV playback logic. -- [ ] Check for codec support or transcoding logic. -- [ ] Fix the audio issue for movies. diff --git a/verify_fix_log.txt b/verify_fix_log.txt new file mode 100644 index 0000000000000000000000000000000000000000..89a25584424479a8f8f896677d3ac855d91f6fd6 GIT binary patch literal 84028 zcmeI5>vCL2a_5h~I>PVJ9!FRla{!P42@rH}!V)hUj%Fk+IWl9cuqj+gSiE2WP$KQ{ zKE%Gle%`n6Blscw0RFtY|6gS%s_Jx|?&`)lxX=s)fbMgtyjE6bR#w&j`@etH+-ye8 z_sv1`ra5W$nj`(+YF;(}sH?A!ap&v)0^dzR=Yh&9Z)vL(8J$?oorsF9KZ%UytyRFF9&R#)@9v&JLV~Hr{Q%=_h<3^wIH4dJ22#b#N~x( z*%1~7aYdgG^zBIa9}E92(RVD$_VpRMO)u{T%()lk0TwxyH}zE1jN50zGL@%e`bwCV zxes4+?0}wQw~=ADUV&XMp#w?qO^~Pe4ch3|$Q?av{rbJ0GF`kaxligL?c})96C)=# z0VWxf8VVQS(GS^!K{9IM@D85MPRitFj5}!gfb+Zm9iT*@qo*{g$rp z>h8Y&-)uIU4PE8?Exog=t2gwW=WgiEEm;-%`IbK44)^x;&P`q0&=Whlc01hT3T>?F zDsWZ>Z!_H88TSMzr|%q#m#>4@6L6WPI>YX6^#5*5%_oam>y{5(-SRoMxew#|jn|C4mh`hHEpWeKsrgyo zw@>*6q%MA$2R4bt?F5ValE=5rAJq!JAzFl{?5J;i5X{%oh>ZB%tO&6x-S50Dyo;s$p zG?g~G+BaWlvi{Vw^N97bb1;o3%vUC?ZtZCfCuY@Sz?@wWK(M%PWI{>@>`vebA~ z^uS5FHWIobwB-QDTj$-}lCDak+_fiG$Ch-m^*c%H^Ki{t#ImocZF-9RJd@6BsmK4N zzW-65-|4?uA-qAX23kcNi)FT0$RjwrLmXm}QyPEJ3O0op_O0Gq&L}J4LHo#!H;8~= z1x+^1CJrV(dJ}ZtAifFm!!8i(@pjvKfFEAyNOpoA_EO)7kbuL8gC!z{GK+MmZwIpe z#J!9U_^{Klc1tkH+yB%2uRr^*=HDl1z9p@}sy_*>n}_V&WQ+nQXyh+Zp5d@uz+*l5 zS!mH)QTIkTTlT?QI~4zkRJTqkDYb&PkL~8?d9WwX^@im%J~aO#_(!^KaR!pW@~mr2 zAoIZQsJSMJh}ix6Rv16wpD0`;`S-fCHlNCls09XN}(`n)wlfH}WN@Y?v3N#!gskaLXQj`TTFW02qw z)G+>?4HA}v><)GYEi#UoH298x)h`_5AvEIMAQ9)E`M~yVUaIh!u$J^W%fG-iWMh(d z`M5^R-#&HUUFp-s%oJ=7fy@=;AK2FZ81%8ZNck0 z7Pc0DA&+-@1N+F+*cqs^E8Aftdnu|;bSJ001Z%p*%tyJX4QL!VB75tn=mX!d)ALHH z4aLSrBy=d6p_Bdz1a!&*Y=UouHYHZ%MXJ9rw{b*tI!AVe(2@T)pL-tMe*kII1V<#MGQ>8=Z8O}_O{zD zc~DLva)Z0krp0fIXmS~Lx$pGTS0^FjDccxMZ#BD(ro@rYt@!aI^1w2Ub-Tc~MYu`3@1&8~?dQR7#!Ey8k(c!|8^ISFS@ZUdE{j483Vd?wW1b0d z;=Fwg|ATQ0Jv>yuGL6HU#lFn9ntn{oU@?%#rC9sPyc4m!#n&E_x)1n-7fQ1ckj z@YNY_kykRmEP5FmQ{N%iiuT#40k@}df@j~06Yu2VIyLmNY45m4WzX9PSo8ezkV~+9 zz;2M1jWf0Ih$E4-XAayZOy{A`?>cp}wd1vT!dubCP1g*tf+~Z6&oP~U(YD$f&@r8c z_{OCF1hiRFPT$8ynSY1&y9CyzN<6oq;B~bXg>bXFK*N4D?@tN!yqa+bljIT{Pvvk6uS8%Wl z+~KJ{fx~p|AX;QR!-tPm3=Vg??!HscKL~LJTF7`i9hUh5&fjTN-4_M$0YAm!7RK1F zY}@46@t2(%i5}#6wo!nE{l_B$NBn7GNvwt0YVIN<>^O5#)(5OkBW5Z~7=F;37IB)S z$xV?5I2O0Mbn6d-%zHlsiI~mzth&WNKJT`xXJX9>GeGF0;c8Ve=EWNoImA4dy(x^q z$8o}QDrL&gp3C-3;+Mjf(X30VQHJ1xo$xnHG9-S}B2uG&(5qa3!4aLI+6CKTKj%Ml(uD`T)GWefoH;3B9cND3ciS^3 z+-Kxr)`3y_d(D-9txB11LdDFNl4guOO^VD_d6f-(p>pm(GCff%9?krf+VqyGRIxeG z#alMJj5T*1+iiX&Y;6YWM}4AhW?l9^*D5G;_^Gzpb!u|j6n`76vX32>H9>c0Q9Vh! z#k3Y(79#%wN_50UdA#Uteb*Vn{>NvS`U%&mr&T+)H^hAw&jmwGR4QMZIW%4z-L zR9CzWv(b2f$NI7Qlo#SU(e%rpL2(2?hlo3DkXt?k+T+Y}9VCbTHUAmw0sJ;w~6 zi1_ixQ_gwaD>igbkr;lQ&1K*-F*l0cr;*BU+G!q(3zD-P9F;W!ZJ=&mbTl)51`%wX(8vs z(9g_b-U#D9_SojqqR;F$FIw1Kn#_0IkSxt+K2uHB6O9zu^e@9$QJ1-71jUxZxfM}I zOtKra^yfh7p00X*IeCQ1`&8t>6Do*PX{GpCrNxmT?TCxiax;$M!Tz9k^Z9qY@;rhV z1+Js*mg&W7w_0|tS#1NeH0JGp2wqJImP;~ky_>6D)O_B;m?}JrxZdeMaaWrHYOBe1 z66?jdklvqi$?>ag&1Q?c+v~#r+aO=;J(%XTh>YN|!URk_zgjD+w1(lAYRhH=-CMOD z+J)HyHIxq&|$DrQccH=emXbn7MRY;?*`eFLE6! zQyKY4ZOGekOl18UJ3{3PUXx+cg{@^ZXv-p7tB7;#ST|wbeI6rQWvH#haS9mo$fQz1 z0AB~ZVKI*(ST0RpkF+c9uP2+F3W$DI; z3Rvzc>$^wn*%+85&AsXrQXK~OC1rdn*Htp|HWJ}sn>RJ7J!tbZ@7VD0 zQ8|sU`hYi^H>^%+M_nmSle{V6`c#&Y)iP8mzyo|@>TfMuYGc{$put{gI12t$+jG69 z9sqRSw!8!W#&HuXJ{SYL@Qaz0)i8SID@?eCrbl1TD;vzGvNa|?Ki3{t@VLo7zd0Q} zXw9=8^r4H&dUWA&xw9T6tYg-reYc(U@cV1BiiVO_r3pHmSM8*r0cV~ z`c8a{*pw9smUG09vR-ALCF>Wc<>%XyEG_r@j}J zlI*d2HrBrRTzFEnm{MZ>)^a-+)o-V@FXuF$~pI zjOkxV7AK)jjk$9hn=d;pxfHGj|DOe&XWxXM#r3P*3mENoF0?l@4w{z|N4`<;QrdQL z+Nk}zAd`3U5iUv|ebezs;{(|ca(7#@Ow4(-IWpuJ*bhBXzdjCna(m@DGkmP8Dxq$Q zh^2`vUx>C3@}-IMUP&K^8&mqxxyQouSo=I23*)QTV?JTONCfpsb3Ri{`$_MqCz&ty z?niSxOF*8UeLI-3JWtz0Rp8mZsBZ)I*nRQ_#N_<-eE^2B`_x2{CvxnshYH6Q&q74HZfBN5{ox6^5YWBBSvB=!yDu(ey9_ z=AO&q{UskoE-tHpgodW*e6tGF?^|^;(!o08DKBE5(K(yHIiGpK9P_AK^XEp-dtMOC zt>!Jon$KtReJ^%ia44!SgGb+&ye`tC_x%t}=W;)+Ykvjv*GJ>rZN4&rya3fB>|O0P zkydTC-Yv*|rD*Q)1zM}T8hRIKQS8er<+tqOfvxl}5pSlLXi8#Mx~ouy*pwVvM3 z<|J)bD(WY;RP~V8^0c32O~7rnvn~8sXT)kCYI~@d*pUTfKV){$-qtntQD!aJs=nXU zUEbW)eRh#xRq74>vP)==jqi23B#fCQT@I_B4udsiZ)RV4{4&&%{DazKPI9aHt)AW1 zuBJ~lGx<#Ug|GDeq2T;h6kpf(pH+W!FRSOE8rP^`Y^BPCoy61nm3idJo-D@SbZwlk zvR+laH~hL4#)Mb}iS!+hG((i@Rd*c?E5hInD?0i6C;dem;2it+=Db}IhnPoaXMN`5 zSR2Jj0r}2~y!YQhpQy;2pIbRc)4h7&d0H<-wKA*Ne2k)22px-lL2WJ5Cn+y(HO@!M zd2Q9=Rbh`Z%bZ5FLuN}%Q*#=kPc^SMmD4a(twp~$Uu;&SUs__+n(EJaWJUU=*MZfxg-nABB&)Vm_)`B%cp35p{Grm{WflSq*{u6P`pT*cx?uxUPEc+32 z9llFN-1Cd|X})^|`7ZXqSrT+xG4VmIumbH^Sn%ZJ9v$h9oS7xfcYeKmdI|t3iv*Ay}UX&5za_jwvd z30}G?l3X5peK1!a_wi@N*tC5%r?+aSAG}d6&rXN3-R0P002sE%40{ut4Tkjt(@opO z(K3@zV~~)cttdS!q;&tf$T7IYx^cMIHyq<3G%k7?MoC6wP_a6;+RwR$L~Oqomyc`2 zygI{7eXP(Kgq~+Q_q>hH*Bim+3T&5+(atX0VUb zFlwN*_mc8G3f;oFO<2UjG2=AUX&5Ei`aKP!1i|$AY^PzA+GX!QdI}zia~ykrO=GI> zOf$btel5FoGM)uGQft^;<{*I@RJ)9tn{?~c=LOwVh_X@|>h!CrZGJyaN^ zu{JpjylvatH10>kK85UouorwXDi*f1_6|!OXS84HDkBb~1o1fgCa^=oiY$ul7RUb5 zv5tWK6VO0*janH$!R|fm$Hr;Hb?`Vr-p+(!H>Y+aP2C9g%WEO?RUC^`dtOv7h4Iy* zgEDo<)v3!f&ht|@G*w28@8UH)J=nIN6bHLbqnSh%>|{E$mUcll9p=;oCn?Mo+*)9_7yMFyP0S(7O93_+x>}nfHO607iLa<=8El{)1M`( zfn{{s&fFy`*F(N#-hNsG8T*U3Z&g|6OLZHzalx_|WiBwrI~VerwQk+ElR#dM<;)Hu zHZs`QGX(AR5RGEHH&G4ZR*=^=0qs=ys?n{bg(K=R~-y8RKVwo^HF7^A%AE2eyKd#J$ER&a*LEw zR`zgMuNOzT>-ttV%6Y8rJ?Ls=jiEM=;p*b{S=9C=%~^1wJWDxos7ptqu%Fhs05jpHdilQ=o@vcCeodDghj8r8(QeQ9$IETgk4YkWsq zomR!x_R|{3?ab|YQr(6ftyRe%hYP8<$cH85q4iRPt))S%_!~48YAc2x9ZP!Q=2~ATyLGGl`t@l zbY+d<$Rhq&9X`3I- zbUW0P{!-Q$S^GX0&|RNptIL>Q_N+1VFXF*=Tj2iWyja$leM=VcR=X)0)|$@?H`?&B zm)bw|!&vTVbmtJ`INlY7-O1+pYioD9bGm)$a5seMSz~lK9f|9$(yUx=Uz8!evt*6g z7boqdwKB`|yM0lUw;KI}@@ToKY(N|>Yh{ze$TPab(2>KKkE&W9piNcYbBCfUhmulO z&Ke`JILf1I^sd>N{_Z@H*Y;n=T4VM@%KKJbWHXD}zN9$|PLyXUYYcUZYhon2YuHkGwf zt%2Om+@2@ZZP?LTmHctIkY<@`xiHN;zT8=3C{D8p_5P8qNuO3p?@|4E%bQGflyfPM z(5AXp&UM-zbDHN%d4wCO@6z(sKO>8aOU%ZIuwYG0JsK})ly)SH&# zVCY@M53j?ZZ%aQP)Rg|RwI7!D%bqnx_Nm8SJH~fg;QsV`v8*u^rE}f&y|)YARmvI< zL49sLhnH_V>WkxeIcp5fxu05B{n?$c6dl%H9sWNJ&WsR}+{n113xLP|@Y$^_4 z#P)Pav~3@TmT()MNqkz?m@|K(#A`?Qnz+9&T5Dh#o!wbu+b7mnfYtWX8p!R;?Riq& zh8?X{IiHrVsjB5dcYM``-xuxm5RKxlT4Q?iaCxb!8fwfrp9Pt&>nX|982l$Nr_PU#}KvO0cWwXE^*92q9}P$!KXcG?5lS!3rz8qwBT zfVzBUe^$Px+BMCZma@jf(|dWd#!mYpF-V=PStEXVcc^gs)0m~!gYCA!{pojC7T5Z3 zX@?4@XptDCo1&|dH6Duk+{c`?%LS#r=)#9P1Yv%h{2b6FS&Ge_8vj*(pII zeP=J@QL@62GkuE;xmgRmnDEsVmaZSBj%ZuqpC zVnNJtq-WSUirrhD>F>6l;3wUQ&>*iSd34rTr5t&zme~WwcG^D(r)C>`&W+(5@KN9e z@b(IAr?sQ>kF?eqtbY>rM1^qB_IMr%(|4h5c9-7OXJBv+IdX#Y$NHP&z-{`5Rs1S$2zlFWNcZ{I%fys`zyKER1czM4B$^L$&bF`ZmeIl*%YMtFJO#o(ltX zzy+NL10Zt9LSV_*NN1%Tr>^=V(T#Jl>-dF?lJl}|U6iDi~yvS%RodAJEr zjFjfe3)ILMnn>AjJpa;UeXrgO5pomFG!a2U_J&sopM+T#KTowwYh zUtuARCBGg0kNt{M4?gIZ9`{;zOaq|}ZC?p8$6mNy`?sRbGftN?!EJkozM$g<0V>VX za^4Jkf|(8Ym%tg~q&LE%)XP#oA@(yW*}Rt-MYi+2*%N$rvs7j!`t5I#r(cPCADV7G zNjZ?)IQB;SAR6r4C)cs%V5R2K*0dL1roJC}@D zvX*&IkG3)&sd8Irx?0Bre|C7fyEV5oO5}9+XW_QPIJ6RM0{vl6)`*c4pNn&0mV?!@ zGZD*HsoO@lHG7^|LL@WWB9tMezJJ*oVPUcMocl;Di(Z+Ht%EyH?~f9>dXk*Cw_a9D z7e~zV^Kx>_U>@qP)N9-qz6hKc(apEFb9Oo1g->Kbj^%N1DjweJPa5}@Pp@7^tg%6y zP=h^x7ks5j+KlH|rVo08sDTr1t~NDS7kk&S%Sb_YA0V#0>=<7S+j80MN!v1BCF@bf z{j%$AKHAXJu7a&jZN=5r5x2-CFFHMUjr<_FSj<8kxD5y2mN;L<*KEN@Imm26@`^WD;V&*jgp0Qp){K z+sURYUYf-TW~^dv2u`q)!=?I2xP2^V2a-RB+B6c(^XH3G+t*A`cSWuBuQ+GYuFQ7o z7MTs|f;u!+MoqagdkA`n>aR{^wsRm|S(Rrl7SUI{g8ok&>e8TcO+dLa+v&|~0@69C zZhC9#$@;rONCQm9fjm@o@*=RKwQ5&p8yE6wiCQj9tN6LR`*}FU_!&MA z!)RMG*4Fa=^6dg$qPkYjbyW9Xr93a(*;*d`t4RCDwV#K}xjUbKHrqXHEnl6)_fLJ{ z=%q(HzpkulJDQ<_VmOWrGm_WwB8Q#!fKp{Pd`P|S*bAobYZ7ZOuFlzk-V+w_!|Uk1 z+?CnLI`vp<$GBSBFMDM+^yf8ebz^+DSJRi@+6}?_Z&zh@o1*&Oi=8Z;hB&M>@20a1 zH`?$nFEx!w`k+3yp2N$x9EEjPW|Iv|eU{oCg}dvf`=YTM!t}~)C`w1-daHC*Dzl+5 zw>!`~JCB#w==LS2yw&I*lq$1tO4k;tn$Kb6Rnx=Jk;9mes#?3zrfL{lF&#=uS-CPB zndKHD&7b>RKvxy*?3{GIt830X&vdVb`rf+QoXOb?D9HU3=<)tS1@fLU^HksybopRNBaZKhcl* zEiYdYTpPYqDy~!FHG4xZnInHPc_~=b_rVr_9Pb(E?_0%WD3ioj9ZP{+ELF2SNT$ z@OhuPjvw_)jrAM7L&f$xwZmEE&-M4AXnCw!HK&Br8L7u+ z=al_WBTauPVf0Y6fE5&#TG~=1wIkZt!GgWlH#;$VAiSOg>PmdItUEei!s3~re-Zfd zG~n@6bUjvkvm{u0@0s3vDh{DL)D9z`=}_CEG@c*Lw)yJ~$&*RiOqWQf&HC7x27zOJV?ge@m2Z;9vo`oF8I>l$mfg}x=hiL-=!dnf8&>AKGs9*GjKp!PT3>VB$qOQM46FtZBZjC%rC>6r(@ ziE88}QJb!*xQIG3t6>8&72Iw=@W$iXHnUmNtKIT9p6hMqL#YdAEe`gP@5ZkkUEd4T zzY#<@aj~^@ldBjeb3*yJ(>1pFJp5V4x6~iZ;auGK=5(3-a#{DS9Z+d2zv%aImfgmO zx9U~i|L#eLCP&<1$Jgiute#d?+L`274IlOM{?s+X`l^XZ8|ywu&4|3DzBC`lSYhO~ z981EQRr7G%d?q-W_Wq?XmL6y%aIEg?%E7oVpBL;Lr@P{G>d}~9&Wp=|>@gWEEIRf( z?#GO!X59|=%u>(K z>IJ9tN3S&f^dMk)qW0Xc8L3_GC+D|XXHv)7`I@-8+M^!)^^3r@9ew5Xqbbk5`Xq9k z>u^Ptoyu?t6> z{b2oP*Q`PwJ(uPk+B;cLlew$hUEHrCerM*vR$a4N+(-Dk!iiN0HCfsvrV1yre zulcq99*bv(0qbQwTju|@@W$Ut4!PG-gEQEFt@c@o182Hnbm2Nl0oecR+*%j;XrKOR z?iNaZ|805SoD6|Cj#rNtj)zkA`#1FzD_rpUITf19mHE7Wpul(Y{kx-v-%8@lqC8dm zXdPN^n2mx>u{k^Dddg9N%QnuzVvB(HS~`PA>ee96^E!V#ODj;}Ab8Q|O>>!<#d4v=7Ddqqu@Jr^*XP0udRR5iTtiz|Bm6GB+8SctbBlU+ zoPh-nc?T>CJ8amVU6!dh7-uXFl=s;QSewO)7IY*TVnxXwL{8onHMXY~yBo1@4}H_~ zmS%&lNo#)D(%eYd;uJ7X1E-lyg}?0eh0gq>PsgHyt5CrmoB95r??<9Ay_-_FcBLqU z7FNkHB0!_%+2IL0EZCg2-%qLB7=+4l4ERjgFw&qgmaX=T4{`V#UF9z`t?e;6YDl@| zPkrxG-y>IYG1ldB^}Vjqq1w1}^-;KFs6&hsEz5ONOm}k0;ci6q-gnKEk zd6$YQw~XChK^dFqJ$6I>B;yLJtS}M5Mw+fk4_j9bP{vAK$m7ehLUSZ(~z zhF!`9^K_^xW0c3&JJM%xqKBaGFHRwI|3KG%8W?yW*yK07wK zlO@u(*#_H}7Wp#|VOlZ|e$Ins<@waB z%VSyEBd7Ih@;hMn1KR(AUM?@$;EW4ue9IliOK9xv{B z#65dhmC&{S&~(VN>5FF}T6R38@7q8ZUN<^!K3_UZ%~kV~CwiBe z9RmMFA;fGNz8Tp+hv0NumJ9D`@m=YOx zdlEcrj{?Ym+Bi!5Lque&37BmF-h321)p%2Ghv=*=hxyuO*57iTrV%mcNxOJxBSjWz zn-9X;jE8||8+(k8>xv=;~pYX-;-N?e;OXQ6H zr!#1i8j#*Ki<3f+7~Ux0XBM)JAFI|4KVQZ1Kyw>UT6mz}4vBWALqaFvujg0YT3Ad; zd}18(7Q3Ej6_DjZV;xP+vuGi!(QipY7SCg0W81 zSmSM7UDM~=g0-q|WblbMnYCiCe=3_;m&kY9>HntgGOJ32$NQ{`+0xItKC`}px9DlC zxZsp%Dv&rgfEf_hWT21B`kjX+blF!BwCQ0*&YG}cB?0FbK-H?gtqUUSY{17>K;H_O zfj9JT=xI(jfc~4|4s$b5MCH`Ju26#u7gzNpZvbOM_xHwBK^;;1{PYk{VRKE3xXyJz>2qOpzm$Z|X17vGuty*H`ER=AaD?5QADB0H)q`nqf+7Emn zu7eLZ0-dx2#c*|PAzCMCBC08A<}KldPXMox6{~iTk$q=&!)Qi6=p~tp+W|{77V5!! zOYdx}CG;2ES?@zTw0=jl!!IPep{L2ZP>FX#S8guQvo0$ovviV7qOCu|i|`y7`9kyX zmL;LLvZxk+lH(w&7Uw+T%oe#nn*|~ZN4D>--m-jw$(YfzZMVo`c^)FSs+N818;jIt zo;PfK6Z59ZHaw0&?7Lys9()~VET-j(--@%$Fxg0ND>IojN19|z80%xMmq?esj4Zao z9Xzr)e$Z}&?KTXksSM(}o44w-K*0MSX;h>_J)Ps6)C8W3o**rMEM-=gW<7yoJ@UFfO~;5iP`nYVxn|v{pKCJ;6%1BcU@PtHe3JKy|CyO(J=#g2 z1u6Zy`RfGc|7_0h2i~~X3%&P))X1k3i+l)G8c5ckN&myCuXT?Th=@IQ#7SoRu$SDs zrr-Icbyuy$bwJcpd@t{hi2q5DI`H-PM&e>9*Q=+ z$0N~)?2Hoh)%In*uY0e9mqqS5K5a1UFV9%55B