// L'unique requête dont on a besoin ! $ch = curl_init("https://{$hiboutik_account}.hiboutik.com/api/sales/$id"); curl_setopt($ch, CURLOPT_USERPWD, "$hiboutik_user:$hiboutik_key"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $res = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code == 200) { $parsed = json_decode($res, true); if (!is_array($parsed) || isset($parsed['error'])) continue; // Hiboutik met parfois la vente dans un tableau [0] $sale = isset($parsed[0]) ? $parsed[0] : $parsed; // Si le ticket contient la fameuse liste "line_items", on fouille ! if (isset($sale['line_items']) && is_array($sale['line_items'])) { $items_to_log = []; foreach ($sale['line_items'] as $item) { $cat_name = isset($item['category_name']) ? $item['category_name'] : ''; // Détection infaillible de la Catégorie B d'après votre JSON // Le \bB\b vérifie que la lettre B est isolée (pas au milieu d'un mot) if (preg_match('/\bB\b/iu', $cat_name) || stripos($cat_name, 'CATÉGORIE B') !== false || stripos($cat_name, 'CATEGORIE B') !== false) { $items_to_log[] = [ 'name' => isset($item['product_model']) ? $item['product_model'] : 'Désignation inconnue', 'qty' => isset($item['quantity']) ? $item['quantity'] : 1 ]; } } // Si on a trouvé des munitions B, on récupère le client if (!empty($items_to_log)) { $client_nom = "CLIENT"; $client_prenom = "ANONYME (Vente Comptoir)"; if (!empty($sale['customers_last_name'])) { $client_nom = strtoupper($sale['customers_last_name']); $client_prenom = ucfirst(strtolower(isset($sale['customers_first_name']) ? $sale['customers_first_name'] : '')); } // Récupération de la date $created_at = isset($sale['created_at']) ? $sale['created_at'] : ''; $date_parts = explode(' ', $created_at); $sale_date = isset($date_parts[0]) ? date("d/m/Y", strtotime($date_parts[0])) : 'Date inconnue'; $sale_time = isset($date_parts[1]) ? $date_parts[1] : '-'; // Récupération de la facture $document_ref = "Ticket #$id"; if (!empty($sale['invoice_id'])) { $document_ref = "Facture #" . $sale['invoice_id']; } elseif (!empty($sale['sale_num_fac'])) { $document_ref = "Facture " . $sale['sale_num_fac']; } foreach ($items_to_log as $log_item) { fputcsv($f, [ $sale_date, $sale_time, $client_nom, $client_prenom, $log_item['name'], $log_item['qty'], $document_ref ], ';'); } } } } } fclose($f); $next_url = admin_url("admin.php?page=hiboutik-registre&step=process&ticket_start=$ticket_start&tickets_to_scan=$tickets_to_scan¤t_ticket=$limit_for_this_run"); $tickets_restants = $limit_for_this_run - $stop_ticket; echo "
⚡ Scan ultra-rapide en cours...
Le script analyse actuellement le ticket #$limit_for_this_run.
Encore $tickets_restants tickets à vérifier...
"; echo ""; } // --- ETAPE 3 : RÉSULTAT FINAL --- elseif ($step == 'done') { $rows = []; if (file_exists($csv_file)) { $handle = fopen($csv_file, "r"); if ($handle !== FALSE) { $header = fgetcsv($handle, 2000, ";"); while (($data = fgetcsv($handle, 2000, ";")) !== FALSE) { if (count($data) >= 7) { $rows[] = $data; } } fclose($handle); } } echo "

✅ Registre de Police prêt !

"; echo "
"; echo "📥 Sauvegarder en Excel"; echo ""; $start_url = admin_url('admin.php?page=hiboutik-registre'); echo "

🔄 Faire une nouvelle extraction"; echo "
"; if (count($rows) > 0) { echo ""; echo ""; foreach ($rows as $row) { $is_anon = ($row[2] == 'CLIENT' && strpos($row[3], 'ANONYME') !== false); $name_class = $is_anon ? "class='client-anon'" : ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
Date & Heure Nom de l'acquéreur Prénom Désignation (Catégorie B) Qté Preuve de Vente
" . esc_html($row[0]) . "
à " . esc_html($row[1]) . "
" . esc_html($row[2]) . "" . esc_html($row[3]) . "" . esc_html($row[4]) . "" . esc_html($row[5]) . "" . esc_html($row[6]) . "
"; } else { echo "
Aucune munition de Catégorie B n'a été trouvée.
"; } } echo ""; } ?>[sH0>j4-Nm2m[!%{Aa]_5y[q^s"vO_r2 @(3UUֳ߿~f<9fQ^urGƺ2m:=ϝR9|o'ıч͛{xr*JPJygC=Og/lӼuλoc٦LaG1kug^1oKC؎cmy-2@44]ۀ T\M5<>5oo@=ulT*[ڍT}ś; hLcϰi.Ա=]C }*mk4d_#`6`5S/uyjx3 Qo|j+TfamQ Xd:PNQNHkxwDCuŁ+i h觋"\x^Mr;v\5Яd_mz1ޞR⿡ ]8:N=Su.tvA,zMlˀwh{cib]u 'Ւ:bLLz7RXf*?T5o۟=.@5C r3<".C0mZQ&)Vn\,W jBR,$=W%*(Gq1WM3NuxDC2.CݻIDʀΞ: 돁Rר:Pl ,5 6dˣ ۾0QcՂv8(6Xati\:ynTLw,Ճ| _p\k4}_S{C]rR5 2!V ym(Ό)0}tGsqr{@-eΑ˽p[܇w&'<4\> Wc$9&6(f%{%^&ȖekVΑ=y_x< \DԫSnYflaμϲgbn˲_, y$YsК;[Юsg+o{rG9:BkM.pB)_,ӟ`@So*oʯF 2z_ҏGap`zbXnLc|m+RR2Âg?sfƇm}v^m}{aFh*bqrJ5qOw@;ic1LlxL0QaaPRQt @Bnkj]M (mKW`-ւja婆>0.j뎭}ҽiz}G=[ӿ+WM3J:;X9V1t{JOJi6 ?WTK }0J(R3+CIK`Mƅ?#1caj,xu'nPɰ'x^ȪkehrC^=%h -9-MϹY LOԋa{v{bb+^?ݸʇ@?0lwn94.4 V &j$7HT*(4.= (;_ T-}H/"@0j{EVd%},}o;p'J 5]4쉦iO[pNU:6̛#2mvnmKlcUӟN. }TϽhQ)7d (;d;NFlϱm/BLrؚl)d#٬5I g8%G}W/wjBu'׃Ҫ4,DT7JehxbBr'K-ԇ^ Ʃ=N\Ǘ.HucJ[Y?Ǻ\1S:;^Aż8$"h`f;cOSMm3_c0Y*+JN<)Eihg$&jH#iM;81"jAZ'Յp0ǭ# `!?I4}qM@ Z<-yBzA PaP}*R 0UF^i1ܷSb9´&ej@\\QTwkB(|XiTUj TQ{R*#P9ՕTW+za7lnTOќU-`:'E'FQARo\Zj8p3Qp!p;wiZQ}pڰt8a(ǺmV nE"8nU|?A( }PjYeb}=񝉉ZIO ̼)ܠypNXbT m碿Y.Uw-VޔjF ^Ulͬ7Iިbe]jbcT)έ=3x+ZPێQfF":LȬ9']|1`szgU]il!ۥڼ56+$ 0gVS8Ke-V)$*z8F%. 흹28&8PbzPZAsلFơ_ϩ *k;V5 :O t]*.,(햣 8IUM[z(@.q;y5&#Xuk/cJei*4إ\6:$^ x6cB pkM 8,(5S)0 c|J)X1_:xH@; U)e||-e+3@v42@R) )z0_p ʊQ Jt}=PVL)]U:洲3k}r/T8x,vĵ0ចYs wUQ/RTo!ԯ>_d \8 ӷ7,*7Qᯧ_?ʕXOyЀ(Bpl`\! ht Q W l*?t:e*eȖ^db^Ig(+U!P+"&Ru6g{3[O_'p$ %`&ggAt#t§ q)m𦖝_7WՐt*Ğ(6KcN[fwYR3rw)H F>ASQ5HT|K%]/&KR.IⅥѝ\AF}(\wfeݻ{Ud_ȥky+ _\֭|e Wi+r7Yv aԵZyYRj,.Vbl0ű"q(Ի"|\p&-RqBLM *yaKAc!gд;#c=\XSf,/Uz 1͒~pj"4)uW TOUJ]Zj ৵(9"1Ɛ^ZVX!/;B*zei8V=̊*P~Tzq-+XtVQH,ey}7C}fk gSʦNgU$ř84jtt]g5i`GMF^?f<} e(4s-iv!y&`!sY!5yp)w*?s.4!GyPw:SnBwm4;fpݭP瀱ɭlUKU-(:LQA뱃JpD+ .w܇ׯ=GHl&nFm2>Hi*3?l!3 @ZkkDҴqk•;lSWw@TLx }ζhe&oٞTkgk'h.:3>\䚏/U]i=cc=gsFa琉)a/YL+%-cA/hӡZ7se"/xVOn6Ġ"[Gs ;k3Uv>{\,RR ߰@sT *zTd7  UշsxyA;moh~^+ۤW9ojX!@tE݉-C۞DһvEWO0#G,>>H۷#rh'VWnEoG8΍{A@v9y b-qsg΢&JbYfE}#$ 8olZdOS @ %:)O4[=L;Q/eOFA e?Ako֙؆}M 'i2  m};=Jtє.lIϓd4A:,1~^QXbw1}=WMkʊ6/<*bG0 ~%*J3KkYyQ,V@?A_+GWyw9x|$`$=$+Wyߡz|Φ^Oų'#ͭwGsSܭ_H]Bjsn`c92e(]f~^Hnn qMn3_ώ3x*4VVөBrPt(I^ mS5#>2sAJjZiTz+%UkڎVhDNZ(5zh($8"U'FcY4+&XIpg]I\DԨTw9HO(<%t_Ϋ'(sJEV @#bn V櫹did;xjӼ џ&ϩTM KN5_$ P-$7m=Ѯ|<]|<99p \iLeݫk?wo9݊_ui7.zwUw_Rߴ ?;.v;˻~pnI+JV >tuRi~k}v2?錯KxXOCݛvck?*ǣF~#V',= 9RSAIـX VO^;SV#;{7,ky2}Hfb(^y,%''a&Qf +U%{#yjLh#}i2jdE>'=IL$X?}̲<$p? =+[ؗ߳B/Ukokx&S6Lc=tܣj{ݧ Ȧ.w=@"f¬C zb*P k+ γ2FUԾLxyr{sh}yY CVц8r840Asqc=# 6*zq 6Ni= F. Z|ûA`tXO);휜NY[̟'Oq9hR}0Y#"xѣ@8>yxX0b|3/+J(Yv t`\'(Y%DA.(by:34ͧ,|Ii> 󔘒x5*v<oL͌5Fgji a6l@7/X>^y*sSЧj1,7t'TK啍ewAWe`L:`ڧ\Q =!mO s(LEiv2Ja+?dh]d#DNuԧ>In&a..uO&0 g꽊b<1'l/LA5mRTb7QX\4X_wHm)G.h KYm`f_΄i~KsLdK>G;x Cxfl *[%'jiO}ٴ``lf+FQ2a8xRq!_yAqQ (uFx>id}""HhJ 1$eGMb%n% ~3fhh3|(YV5b|qgK>ޟϱƥ0+ L#urdz)|Q(ݧsZ1r:z.:31Tz+a%6yș}Ui<& sC`t0ބLg;ϳ;.|D* R llq I$ϐϓ:e99f!@GYfr*r"2"%s .7@Al ʢa6։9% 0 8)~ƌQ!XUh$` еXLیk/tDinQ<|;KeM!-0$08&WDft4 /E`M7Ytfd )?|y"QRƪR\6]|oօ77}%ŅƇFixS=[2΂у77F"Tj &}hGX1k_A] 5yޛmBl}Shc+y,Z·`SbʠI*ywbs%ܷ'/ԇ70 Pw0uH nk55͒`dސ ^iQF>Ȟ°DXDEǺ`" x 8"v*b%+w̳iF'p(ҔcXQ`8r&FPONKq₍|p. +e֞.UW\QBsJ 4bkB59%M.M3  -} )J ~ɏOc@셓,#$}fPA#3q+.BxԙjlBXʋ"8D-̈́b3)xG3I/ZdCl=il;V0;4噈TЌ deg<7'y"fZ"F/`ZP,Q4l_kˋ ȀHl#<MaՋ<1`]%`J ?`弸G`+~9ļm?qȝK𸒩LLou NIuݷf+k /bJ8=8-%JZѭ@7եY3mT DXbC|YTpIOwVARdeHɹ(|4Qc%>9T-|'bDR/SÁ0R0ǝ0,uǁIxbFY7Dq^8m&8P29`V6ȸ$/E,XE)@%GT;TP$V`+Y87dHLHתb{5coyxD_ 7#V,rUC%JsDm{Q 7DZ4_]^rA! E7+HǻdimX ).AAK:Ђu-ScɈ(b|L*=>_҃4'ېHޗM;?`L3~ }`,D) f\} POV[[^6"]5tݰ'k 4 9̂ 1޸A.yT(po2ԶbHgVYlϧBjln$cv󚕀_sΡh{ 362V!y&(ӬeC TS"Y-/ƹ΅-mI&Az`EǏE2Ϡc: 4%=!xSugi:=ۡ@fuwDHc%UH ij>&NY<ؙ=A Xpp x&͔a 2}şuT^!lE5TQ慧rD/ 'yqâH'RƻB𜃸} })?R}{rC[|Wtfwu93@=zq2E|+CE{AiCJ}"3(YMݮO2`85mU,Ģe rS\p,%WT=4543tYx"a>OKқ}mt#I0}[ 7Jۣ=njۣz"+vlSy$[Gs8A;K)v7ǛWI(W:eQH7Q!v jل QKǖإYWs KuWu?3CMuF/?G);d$iTiQ1ݽ)8Z掴 pļ$1mJ6II"b<&dryr?,*"`$f+459\_2ۦ輦<W: ;^uӛg4e 6ޘS%V@@aeZ$KRlx"!f #f/mJSd圉+U1)iXbәl/dE^)_L=glm],Y`-?;.%[>qcm g e=#_~VyJ1?.d!5wތǤ SLS'/# A=!TjsZzL'ϳq: lHx|S ,7.V(uIg]k2,$v'P\t! #q>qt9Qz ;ۅj7Tx/Yde(oTLt&/ܪ'y%@n :I)мS}}8Qn*S*1kXfq`őQ\ݓl9%,Zb5,2ź ru&D1 ;S?# DlP>Z%dxJT4rjPПG BHUSoF;݁ij.!G'cB\l+qe35<; ųJ]PqʰG3a"ͅ)^ #2~-sbq5;6WQ "> tFj$׎rX"  N)fAq8i=PQh&čX1`_|+7*5E/"tx'S̯snc&V+59ʛN"?>zV5)tr/ J⟓$Op -*sG3@xB$\ <ڐKbC-c^?[CbWz$ ] >ysW ,MQh*?? Iԥ+ 񹷸$!q3j 4&poRSvR( X[vJ|)A`j:f6HAYJ YInqF"&Fff#樢;J, QpSP+]*@}͹2L hҍ녥(xa'G,AG3H9(oMSJuI^#FyV0f1ʥZFbp|k"LJ5curtNgxVM9Mv۹f*w9fynwZK̵r^-:>)0hTSw0 kcNO:N.;8~y=̹X:pwUv'Nߝu%f/LPmm.`軆^wz?_@׾݁Pҁ,N_9>9㼪"_2 ;'o o;tykR;P1RIzl{-%|1Ix^u**uZ(J ܌ĮJNM'QsQ.Ί:+_.vWuio=JK)@WUZu{Oc/ؚq.x)ik[b{ Ui:z%S'T+jy䐴FW3W3K\.jVᖱo nz(Xd'G/[5u5*}S4êr%~q:f[ 0$ɚJ}5wKxJugKD;-E&sTY)U)#rIUkp)(R40~|"8)[Ǡ:RYV_cKGY^ZǷ n:qz!N/)c^`@ix+Pk]B M>:]^rQ{~Iyy婾T zcw_΃wZ]v@|wD7?rt Pdps(!w*oDMas3/eO-c;?LiV}cxw#[쎖R6d*rUVU8g[0(qN[{;Sk!|KuY V1'R)7 {0ܪ'+ o\"'gCcn[k$KU&y׊[teh\/9;j1v:jW?.4Y`**11 0u\)N^HkU&]0p!Xg0؛ `bCZk/Z]"-ODI -j˅ky%ּcwn("KnaɎ'/K¡|sͷ ߯a9|F U,lU$.j11P1jGv_,@!VPήjxhvIw 8q䟸chajcnXldx ճ~A7oǹɱ o_9v>1~6_Y;G\x9hW0S0SpGgcAЗwf/d{3۠5}~N1DDtLT(?L@2F <$yF7C1zVt웞1A)osV=-Q6S HJ~wᎶTrM8`9pwcBE} ߏkb!(9[ 2ER(J);¬\7/e+*.LSmBtw QŮ P0FT16YGTfOc.xfF䓔Ep52HsW6!RW3q`l tK ^S 3َ dkVMD1YdZᛠ x@p wإkn%7z>p\8\]SPY>ӅAcȿVxȘ/&1`Ѓ 䎏iԵ}d/ѿ].耳KGѮTW;Gvr:>TMڧ`{3pwHgm8 =Uu'qn^`gQOH9QwD\nڞNwGjMb Pd>o{:GIwJ>b/]53=m w(\S*fUR)_rUjkwvU/Uﳪ&X_6qcUDU*Gb& I=ѽR CRe*]\]p C:MFA+TS\qtʽTO+Dʛ1 ANۇg'b̤RRV5 ZAV zVk{P51^ jfE_ p僅nE<޻CWPjYCr6h;#:QNUͭmnwUjs+*[`R`jLEA,?p'/h7l[ReZ)^?ϡTA+>et.mc=˗k.UWW=!ӡq;Ff\AT n{ZlJޟ$ `⑱06;A4=ruUpnbV%[([*dojj i j i B)#k|qBuQR,230r‘7_nPBC$4V $̬9u1t癨ttgLk2a4qܓpclPg͞RpMkTZ ?V /\7,K\c\\+1GtAy .6> V ax^V#=$W])(rSwqw +!)%-m.&y'i1k+FVf ~ T 8wSE;*hUq _?[q桎6`94ln<9s6 6з7>ǰI.1=}MV͍Lrll@8:Ei/S_pQhp3^DڬK۷ƛ1V`3Z}8S#O/x8b# ZYCP180ŤVfM`0#w9%b_4^p ԋ # x6$?gױ挻~ qmTNX,vJ Culd*yL9@<)A76G=gnr{x"l5-r cB>ѺK v Ƿ{(zǒfM;ɢKzYq|:GFx;I -}䙕%1PQڑtDmha\c[r+5tyalDSohDAS oӑ궯5D}oꍀcuT'Ur_89.ÝF1hxN1\&P2Dn)ՊE^p[{%,:T^=M*^aX2Sh1:nz; %_lkW埴]ߦ]bC0o1jϘL i-p[Gi6Y3ƪNR|q=ZtikK%Vd,K3uQT<DР8neWH[ꊶ0 xFE*0 sM6 =2)0ԃ9WfɸQl&-"Ywi b}pKCr/>=8 Z6[3^=a%,"qFp>QGJʻ~@Vo44<ׅ⦣jFINT,%>-̺jCq#:f ďMה*̫ɠ xAaKduC$x&-%yl 7R<ΤؖE1Cj稗qG6.tL4 ~xcvyH+]]]Πcxs,@x{_<0< Ao#aТ #/U-CH[6Qg%Po(cW? |J";s D1GrOA&0S0NL.FIHp*Es-bd4䰼Jq Φi$dҌ-3My; tb6& ㋱qABЀRGAF7"쥎 }-D]eٗ"dwf`b@H(71q&AL{nE ](7 Aa~uZ :{r  S$|*^X icej[.;Jiu'*"]M-˭T!IH*8&iE񰃨dMpH4RYg?8TlfALFg:xjѩ&@ob aչx#M<Ն~##1wj\7ܛN9_=,wYQrTWUV-Qe7_:,Jk4FJ|(}%W@'d1O@szѱxS-B$9q/8gHQ=Pd4)' 9l0aDYvԊUVo[a |_Z0Yl&.̥z_0A|)[+JWR/Kʎ[WS%_p]*ߨJHXT|J0a*RXNVہok~TWJ0q {eg{'&i+R} ŗ'קjJݴSS~ݠD0qh|'?Y.j%;{/.g7%]8i|GI cP&$@C=x$l/?ü srC{բqPל 'ynRjԫbVޭă#SFpeozUCӧݦ=`~N5ٿnU"oUJ=ႌN\_ip29%>jb(fyZ*0ur?7v{u7ӷ[36#{NNg6 ?mn.UxBml>}ߟ[[;'!yZ6m0l̖8bp7|3N d+¶``6#$G$cH?ق#F[q^31eK uB4ͦy1%Q0 QƑC9iy!`PN4(Ю۹x|s񝹐׽Ҷ0J|afYL,$P[o$C^3U*75wՓۆ)m1 1MWi689<?9=mw"=0Vk[KpcX$:FA3T$׃z\-Z7E4_5V gju Ru)R+HI>M!|>} ?A4 )/ݸ[.]85Z5ȺS$СaW]o-qJ^7~ʽrY)@w>,P]C Tq8Uu"cb~ѭpA~=ȯOuxQW4uhbU0um4ZXWʻK<;hAޮu>$IDMQECT5埇CT!_2*jL&NI7dG&/u'=v?OTG@MC-dJq;@l Rý'{e{1=ܢ{O.D;-Hd ^gxNXrcC$#ґL ĭjoY8"/12k*x6^#JuY4TTӸ``wƏkL`H~LuΓ"-W!MjXYWYUW@āNɳ l[]JqaBQ7;ÎYcѯ'~0̰"+뫓!1u\aC3>X(7]거rLƐZ/kok۲7RO=RG$tFUP)Ũ$,&eB779L&cL5,L P~LQX"kRGF9B|nJN`tq׊ect"@xN\Z(*Sg q:NG3~ne'ܔ!1tNjs3m+1>eY [IezNI<,vmvB:+t#dL/۝v55@GPYx^sp5iNuCr$~&Ă77ndBw$BWݪiܩIj!X&q J:(&;X;4`-n%V(#ΰn*/D'f4mtee_u$ZQ}$31#򇪆w$dNU9l<8Sw% 1^_6ouU=i\gDLv/_Igs3'oň훺j1BF%@#k|n)Yoh  GJ@ec:?>1aJ&!'Ҫ$>7#llA\Vv$8'(5(v%ʷyA M蚤ⰙX 08 "I1xnH&MPQbr$L,睓S.AiypjHHF>7%l|? T$qLm -K(A;@2q상dsSe|Oj(q+nHsT&cuuϒ1Ceb;y4 Ϙ^a6~vm  i%2k贎#S,-(J,9x׭xsG2R4u{?f߳w^$!|nrL,.s2]Iρ#L N+=aZkGm fb$mB9@E*B}!H%>7P&QU(s3tMF00XNzJ)Cfb1Ҕf5j2SFT6[G55,x~biV8T&Óq Ʀ9n)˒&<y"$q'98 ! fhC0X|d9H\vN6 A5:o2|n L7 $ qdzNbJH{@eb:8ꜼL5y' l0OvI,N?\&QS]at6EwH&֏Ta|n ,<'0R& )EgJ^a3*K,M3ˏ ClGڛMu"#I%|nH&s005%Ass <wuߜ$J]6zs(>P&W!IsdaK`NZg 2qd|&[I@YX:86oVsI>7Cl\?^oɞfKc{enbԤYSn0Yr㸴!X&n7>vfH/pv}7$5FP_'!b̠4]"Z?2n^)֋i&!$l,H66V  ' Fc"Bdc8Mp&Bdc8%(#)y|n`ٸ”dIbdFڮdbUrcpM@ebM8e~^B0Krpg?hwA׊dsdcy`s#Y;H,W%lHL($v9 uڑ@x:/9 A8@-Ul d{X UuMZf6e'wW MV,:?}2mwmUYUYS:=9H`;$!I&21AH4 >79L6AҒa#tҞҼ҆ |n l벋82髩 E L\hDӸ|n ,7c8;aL+3QJs0^t!܌fl%\ɵMq~3*-sdb9oI[A Y߶񞴴56)h6-{6* 1v?V]f 4vg:p/f gb4>|nrl,mc$<7C,\Z/Aii[>7 $f+H|vejRL`٘: ˯*&d8svnj%AHnWעEe:Ӟ;%i>7#Ll5cՉmMW_CYRN'Ȯ/PxoTRD A6rA2ST e%%2S'MMuIS1Q{j}<(j?xҫ<#GyII+auL=Q]v\ST̈Tφ*_Fc[?,.nL2aK;Ml'Gא@xe\+>Fb.jW֖9>7;7Q$p1$^j"@ayc;q'܌`+ X(_!兩UAHY;V={+^>Q!iV`stT6b &i|Lr,mf1˒8l&Jj7$-$sSǓds3I]1eW(#x} |bu'P&yV水%w;=>{a'ۏOȊtSsp"YR2p8_p pG R|ːs06pqJJqlLeޱCۊ ]9ԼKC?e;;CU)2ڿY8!`WQX8uGss |.wI[fXE`7kBJ3YaAi\Ļ'ġ15@ 蚡qvrUЈ`s), W*M=S2W.159s8L6dFIGΤ<Ҏb#x׊ tDxl7<<=Z*Rt hΝ5H@)sS(q%ŠPTFgJH`&z-$9,_c4fIKB@sRM j!cnJђn&.gqعU;Ib )Uۉٕvs@p4ؑR"G+ZeF;mNh Ջ4Ӑܔ!l2T@ +뎗qInᜓ3mWKka2\>L,M3a6$&G*g|nONݥ=HR9i,Jb  L9|nBG zRL\* nȼv Y0$9XjԤ5|nH6 mبQW3IM^H,S=925i6>7 $G/ɒ!ӂĸJI Y8IJZ \S:9GJvm|nScCI ڑpi}i$(!XQ]:jFTdT.zUrJGxF"J/u}:/%fj$p7%,|/^cj9J|n"DĴoWX9I">7e,t U/M 4%Պf%e$-"h,Dps%YL2Б0YX^: dܕs3 =TW%( k{RM0Ne:I37'V[SīI)^L0|'hF:q)&Y@NOL@8Uuz\& %72HYTN_IYz 2 [ԯd>$W^tQ,Qa7P&wăG e:MiSMK'Om*"kŮ.>EY<^;$mQ/٫H;y9Bc1~e*뉣vJ.|n La83w+3xKRч /#Ϯ>6{Xu@p:$fߪNБIQAP>^ L5etb2~)\wم ՕGsR K`!ebZ;1jJŅ؉qo]G[U3)ڋPakFOĈ5hF>W4Sd1$٬RGKM wOu&vC,/ao%3{MAca4jTM2nK+Ym\-$kǘLRΫ*5^*Sb4 o\LXUVӅYJ {cԋt!~8+}B|wK8ط)}6[`Vj". vD@/pdH&0b{W]}X,2l4 ,*>BH%YOtߙQL_W5z_ua|g Ǹy e#HXQ'ǿjƪa |ď/mN0kx籫 CL}y+\mռ\ޝha uͺfN~tt7ښZWűiQLSʊf0+%!W,Qt'H߾fDz=UV*"jwh퍼TF !5/R1Fx6 +`}<8~nQ5&ذ&QGP+cnKA•mkx;^@ ULB5a6fJݞ(>08 P\*bZm-?!yA]i,{찖Űk>Ƶ; hڔ(پ >ȁ6chh ] C1\#y + XMXji" % t(xu Kg.X>W>fz#~ft"s-cM!7  za"U~~PEx fS3z~ѹ/:=jzhsNhД 5{S=ԧ9FC:`=yNuo,- >`gTDSPG8Rqm!~)M68`R T@y?,j͵lt.:U$U7,fJBwBU{A=υ#i=ǷFĐ pFuUkuѳi47WVo</6ϴP:|3*cdGBd'0nƌkц̴3D5`94$.nSN4(Ej'`@@c` ;:fVۧQu U1\W™̳7τCzY 2\U(2W fO$SS4}ޑ1FO ACC% bP)|G͆ee'ӨbE3m ȴ|Ca:.0汑 FH6!xv AJ}d#U\[ZP6MG+ڹpf$ 2>&?#{m sn* 'fsN [l~iWm~L{^>T!Ac4w[rt98ьέw؍EtB0yX~z*g(jWq=D'^M{vr>{Bq+:TL84oZN+2]\Ǵkh> -I ot r*;=9_:m7X\4mepq]IӟlC"7`+C_w6}XFYvrAk3X}]pKۼ' Du{ۓ÷m"{BetZ/]ۢ)VO٫N^89W[ո:{:xYRjEvy]DJLl:1)/1AI]f .SPh?q3ԭ>^kg" ꬶPgﵳwF6x6WŻ;cD=Exz9 S|5\+[|,zJ;1mnݗ~AzE]QZUP)m@gN߀ެ6+Lt[Zotkwϻ]3:>>?l%̚wd)4Y~'ul;(]nb]`FTz\#f}%Q8Ú]?1Vþ0.hqWıKKF\)K1_f]鼾i}Wẚ(|X,&&/)ꑰA췎A$Bjfܮ9MgvǠ3j7j0$}::KJG0b ݅( =AwQcϏggq9f>]MkXw`&~=ٞMQӊTA雓DTc(^6v'.fjfbb5vC5ccb﷎7~z"zf.iWoi=Jc=fb8#g]99}bJ6qsd9uگQkNGm+Ժ[{b)$ߏ0?= FEv֝j1mP=.74vfE~AW\B xXo=_o ׼8eNOoOMT)K#ήDWUƋ6rï991n^nO?R9A) cást88V\%H;L[(JohsMqAW9{V_1VWq|{z|:'{}~R6*+nXG.QTE,l_pl@d FD,rSI\Qt3 zÚ^K%L㇜Zn VdS7F4#"283eó&ش\!kbQ!LsT9X/{iQ@jn*ûK,ۛiaִ*}6AiLBdhC^{XwY;P1X/ DT. TyowD+'_nU~$TE@T1+#,rj70}ۂ )Jbj'\2ӸMRsLZi;|'k>&1V6 K:{uO;E6#5pc@Ӷ.82eyi pZlJhR|@W׋;bS)[aAِp O.B"!vn4(ZX ~`Y ow--0g0/оl8[wRY@ o8Mo}jw>-.5'\zѮ I\%G1Y0n2yB=(if7_np;uBuDB+8 UtDhʄJs&Y47בm39"}uHmBq*Ti6n0`~$^ajUmġާyÍ*..zZJY$Rp3 \h{ -hl Z!P?% L޷l}3J OK6 L=Q.' 6ؗG [ODևmO47xTi?Ο9Ftiv A%b׺.@>pcM/O:ׂyd({eLbQbӉ{5AoXyq'7$/xlT3pSb7?\SWQ-IV/lq_EҾ04OQjXBCDSEPgV0!YS(R=z=϶$m'b7Sxy/98 m}AdF|ܑ$4/#q18:lYaL@ĺKHN6Ð|f7 _* KM)lIj%LuJQL}%xutshW]>MՉԣqu ;5UV'"9οÃSF F~3&m 3Ru&Yx$ߵ("yŠe+6ې_~t7/['飔TWxCm ?&tܚZ ?[)'A/_*OKay ie$Qַ6SE*qr#y6?Y؏Dup'e<{´m:fUB5\shyȝ0 E7(=;uoq)x'W/@OnVXUjUdL (d>]C'ğ(ƎUoq_ToAԛ1]`]4Eܢ3k9-T C@ӚgT3ؓ_-V@\9*VA`;sN^$JWb [EѠXzu aK"_8[#ۥ.ڈ24XN'Cmp):`;F$EnБ덡x %%.ψhg,Ic TNqFW EeW"2?D0~,6,z@N $ 3FD  N%sm3Mo&"X-h; &#u[خdJ >.e4\l9Ddo߇x $ˮSW].PpD` @ۮ!,% /,~Ano86R/MCp.vÙPnW} +x˃ Jy ?鼔+ޞLŲrkf 3?R`q&Kk*j4XzȠԭ?V'Z=N ޮ6ԉNa*Xja֩{GZq@\Ij䃛d/i&k(5d.CnG: I(<5I_s> -LvUs6l3:R$hZ*!Ѝ˷`ha#c |}U6Ԍ _z,@kPy |>~9ş <0fQNh 2TA]AJm4(YWTa^W|Ulצ흢 PhH[43~g7HsG5|W>/?eŚX x\^4L/p#Yц@uw'3yK:q ZljZQi%Z=Ճ)~YKt@..? quJG%g O ڠDO" rv׆=Fo Ũc-Aai `* lcaߣ@>ӳ5O}&lö|"WxbKZ=c ?بT{WG6XkO<0ƪ.(jhbu⸈W$ta'GǑqT e@ . ĐJ #۳|ӄr+Яba!zi 0hS Q@&;!e=3KE E``ǭ%" )dXaWq r,fA=9  #2}шCohhƟ:[,_ *C.L8#sHsbm6R0񧀈CGJ\ 6Ŷv\rԥw^8U 5`<}6ˆMuH &hϘ-bh`ynB|Yc]H1ub~[W}x5f)a6/) 6ce;Ypk)Ⴓf |yw{:kλNpx Ǐ&"֛%85B'W%vfLu cS~}Ge8wG /} Dby/ o&CJG Hֵȓ+ձ@7% k~oIKmp\y(?& dZu` # %8r>nސ!|ze╅T@LA4wbs^:T* r >v!hf>~= |#U=#epC] ipױM UШ!Ҁ"-/lwё)610iRA5:7!w 0s$@AMl}|<;TתxB6#TE>,A~G{߸/ϯ> 3#?@Wt{&n@AcvI]R`ipl,߹ 3Kqot/z`5u:MT<2=sp+L8𩊨9{=X׆eX\nSo݉ڔz90Ԅis`F>lےYCdHϹGQPDR->E,$|s a~ZFM2LϹS\©*:?BCFSJq˻( EbnprL|";4LtN4j]߄) 8~x0̳{v 0 X7]W~bYKđ9cP3yH _L á  diՑ"=L;%B9*Psrܸb&7u( `jPHAN( gLD:/"W <+fqgUq?xH?"<@-1DzHh80K ILxCoMsف1% K}3psr$n`0 y:[N&O-$XSJ#̎p(hG $r e❘kaD54xhD aBA;*3 L0ad R Pϳv^]sgu@Z@]d, .ERȝ>?~Y-B;4.Jasˌ]lk:$5(8%0zQ"0gulTKX~'4hDSu1Oc&Y;|zQ2FGlAx64lQvl3"4]ZP k&^XtNR 4QA# +4&f<2SGYc8DH !0qLk*f K{ c7 L!ye|/wҩм5qr%!5Mi.  S N="U*${1^aX&5Y̕ݨF*O8}jhׇ@=27D SadbE`8v,h=I}L}!D_93:7uH(`vl8o*lxBPޓpU i5) 3;Ra4J[m8?+^2<&73Rv l6Cs w:!"96s7Q˅D)Q0o+ RT/׺)?m9nuL6-.fx:d`_+"L?Ǐ1 B_1NC/cc06G|0o ?B_Ic!ɔ%p"Zj jaV©AXHū#v驐I)͖dS(2'?b&#OTwĿb= 1XvSH&DI 7/;*t q3/,\7//tM>PP{xUdIִ19Ǖ>[F˄!-@*&D&;:߫OTeTCW '|+ [I0DsDT`D>uxb{)Fpӣ!2f"2 r>gɵrj8EV׹7RzGcҢ?OH9<Uo\d0@:XR `gXv'p.\W@LwG"/*6hQ>dQ[|L";E9/ LwMT!io% g2JP2QSHM  ("|(weTDU7k:L2\33/X3BŧpJ7$C/\ov. d:1o LMHS>F=xзIɡ'XQgt@"YES7mNT /Zmtt*@ybȳks]$=sy0$a:2ږ'TN?Z5r{wiZN_n; 7xWc|W|b( w|KLZ]KErLeMxbeIuE٧*]d, DK4:REVbY E r#=CiӞg(73 KУ$yd,ԋ| 8s8=Y&PF4YnΔvv$<=xlKa|*>M)m.L5/%F~&H_V!L#%Ο+!EHXo674SDGx?CK G fhd_* S? K)Č:=|(2*1H$F d4niiqx)'%J„%~ 0Q)DZ 廰[:t,97e\6SJ$I(//B*Uƃ'XY|fK:r~-aNKyCwEI@S䪄^JHljtn kXx$|Xp]džE|mePN/@O>#RB:̕Xb1>}zcRB9vۺo2( y[dt4S%˷p+oS )%Tkblֻ3IYn/XSK+CCy]\T{36tJ,Я{Ꭶ ]/yȠ׳(!?^8y\C0hfxJt+_ ھ+ݣ ~Ě%@ edӸ`TTsOYCu'`Mh(}19tK03*mRUWW;P*&>41ҪE;Qޅ} G$3#&>;C{csj\XRAm<]O0XDO8@ɇ]Hn\ _TF9Xzxi, fb(7-d`+n300tx)ɕi<7m7 ZQ2Drej8&E˔d-eQ SuC鍛5U]ݦ R)/hti@4S/}ڮVvj Z| 105huP-h^ANiM?C66, ڈ)4f60X]M95j>]BѥaS-ߔtdh9 7!)B$t6,o^^  ^2R4K\ʁ \(['‘1H_7p+Cl%JtJl `noQ>#\I\I>}sz}P7h3^MgpvwOON}g;Hۋn gəMĽ@sl=pRuG7 7(NeF ToOx 27hTgXNU*^.G^tNT.NwW\:p?>$URק+/ 8 'tND)/ z T ROG4Иෝ)QE =1h: +#C'1?DDaƀB5 ^]-:MɃ,XqϪ9VGEt*a+A %nARo|ٰVoe֝?㛂o41ֺhZkKGe; cdˌ֣(Qpw8,tGQ>RXuo. ޺e;Mx-uG5^)m96Cϕnpʸ}) 1Zo60krw 9a(Wzm[&x/6nof>xOܲMmI9\уOp(ăJ?ᎾMLz":踹IH|!~(.[a_Sѷ@Gͤ B*TtƲḜsJAٓ- zV|g(OVy}!ƺ7«'stٙe1v{ pWelۚG˲劶o b{,wn ǷR2?,5B6ro5: }C_"M+EGЏGr,=0d~>#N&ASdwt K &>zV \ L\ߔ'M ^I aL0sorMQl6|f> |jXBNN9&f`s攛~14N=aC S2n|+G٣N6MuS+<_E x`ϐa1EkGBkύ irɯhQM݃`YhTuUszWsxC B6+JԱhvUdܩg›?S8Xt}f/MtgO~?`Xor#ԡchI k%WSmm&5ÿUˠgXSنk8'8$4\bc8^+3}cb"kR Ɓ~m۪]1Sh^t}'Ұv߂RILhzD :߀wg;6ņ`*.'n00e1[r?KO/Njdz>D⨞rdOyG^Qؾm2tz@Vr/X1˻k6 9^4 BP ( ^j90 ܁V襥HWu8ǰ ݙ<@B>U@!p9}uV7K[OhPh' B}"!6~KxǶ28\b`^_la:2 _OnELëzfYex:y5xiͰ|0*n86ן9AB̷oVr埑}Snrg+i ]q4I<ǿ8ᵀ`a ?1OFX5O>=+69oә&}6UԢqxw+ES5-R P05a 4a>LBPH0ݡ=g76ܣ%