From 17c72e76724228ee0ae70e8250ed543c600180f6 Mon Sep 17 00:00:00 2001
From: seastar <2229029156@qq.com>
Date: Wed, 31 Jul 2024 21:38:14 +0800
Subject: [PATCH] first commit
---
.idea/.gitignore | 10 +
.idea/codeStyles/Project.xml | 7 +
.idea/codeStyles/codeStyleConfig.xml | 5 +
.idea/compiler.xml | 14 +
.idea/inspectionProfiles/Project_Default.xml | 36 ++
.idea/jarRepositories.xml | 20 +
.idea/misc.xml | 17 +
.idea/uiDesigner.xml | 124 +++++
LICENSE | 201 ++++++++
README.md | 136 ++++++
dbnet_crnn_java.iml | 2 +
imgs/det/test1.jpg | Bin 0 -> 118297 bytes
imgs/det/test2.png | Bin 0 -> 441200 bytes
imgs/det/test3.jpg | Bin 0 -> 29566 bytes
imgs/test_imgs/det1.jpg | Bin 0 -> 109491 bytes
imgs/test_imgs/det2.jpg | Bin 0 -> 263827 bytes
imgs/test_imgs/det3.jpg | Bin 0 -> 218573 bytes
pom.xml | 119 +++++
src/main/java/CRNNTest.java | 30 ++
src/main/java/DBNetTest.java | 28 ++
src/main/java/DetRecTest.java | 60 +++
src/main/java/crnn/Recognition.java | 136 ++++++
src/main/java/crnn/RegModel.java | 49 ++
src/main/java/dbnet/DetModel.java | 14 +
src/main/java/dbnet/DetUtils.java | 431 +++++++++++++++++
src/main/java/dbnet/Detection.java | 209 ++++++++
src/main/java/object/Box.java | 32 ++
src/main/java/object/Boxes.java | 28 ++
src/main/java/object/Model.java | 119 +++++
src/main/java/object/Text.java | 22 +
src/main/java/object/Texts.java | 30 ++
.../java/utils/common/CollectionUtil.java | 51 ++
src/main/java/utils/common/ImageUtils.java | 451 ++++++++++++++++++
.../java/utils/common/PropertiesReader.java | 33 ++
src/main/java/utils/cv/NDArrayUtils.java | 225 +++++++++
target/classes/CRNNTest.class | Bin 0 -> 1942 bytes
target/classes/DBNetTest.class | Bin 0 -> 2007 bytes
target/classes/DetRecTest.class | Bin 0 -> 3055 bytes
target/classes/crnn/Recognition.class | Bin 0 -> 5334 bytes
target/classes/crnn/RegModel.class | Bin 0 -> 2161 bytes
target/classes/dbnet/DetModel.class | Bin 0 -> 379 bytes
target/classes/dbnet/DetUtils.class | Bin 0 -> 12742 bytes
target/classes/dbnet/Detection.class | Bin 0 -> 7774 bytes
target/classes/object/Box.class | Bin 0 -> 1231 bytes
target/classes/object/Boxes.class | Bin 0 -> 1294 bytes
target/classes/object/Model.class | Bin 0 -> 4201 bytes
target/classes/object/Text.class | Bin 0 -> 978 bytes
target/classes/object/Texts.class | Bin 0 -> 1297 bytes
.../classes/utils/common/CollectionUtil.class | Bin 0 -> 2366 bytes
target/classes/utils/common/ImageUtils.class | Bin 0 -> 14026 bytes
.../utils/common/PropertiesReader.class | Bin 0 -> 1361 bytes
target/classes/utils/cv/NDArrayUtils.class | Bin 0 -> 4957 bytes
52 files changed, 2639 insertions(+)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/codeStyles/Project.xml
create mode 100644 .idea/codeStyles/codeStyleConfig.xml
create mode 100644 .idea/compiler.xml
create mode 100644 .idea/inspectionProfiles/Project_Default.xml
create mode 100644 .idea/jarRepositories.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/uiDesigner.xml
create mode 100644 LICENSE
create mode 100644 README.md
create mode 100644 dbnet_crnn_java.iml
create mode 100644 imgs/det/test1.jpg
create mode 100644 imgs/det/test2.png
create mode 100644 imgs/det/test3.jpg
create mode 100644 imgs/test_imgs/det1.jpg
create mode 100644 imgs/test_imgs/det2.jpg
create mode 100644 imgs/test_imgs/det3.jpg
create mode 100644 pom.xml
create mode 100644 src/main/java/CRNNTest.java
create mode 100644 src/main/java/DBNetTest.java
create mode 100644 src/main/java/DetRecTest.java
create mode 100644 src/main/java/crnn/Recognition.java
create mode 100644 src/main/java/crnn/RegModel.java
create mode 100644 src/main/java/dbnet/DetModel.java
create mode 100644 src/main/java/dbnet/DetUtils.java
create mode 100644 src/main/java/dbnet/Detection.java
create mode 100644 src/main/java/object/Box.java
create mode 100644 src/main/java/object/Boxes.java
create mode 100644 src/main/java/object/Model.java
create mode 100644 src/main/java/object/Text.java
create mode 100644 src/main/java/object/Texts.java
create mode 100644 src/main/java/utils/common/CollectionUtil.java
create mode 100644 src/main/java/utils/common/ImageUtils.java
create mode 100644 src/main/java/utils/common/PropertiesReader.java
create mode 100644 src/main/java/utils/cv/NDArrayUtils.java
create mode 100644 target/classes/CRNNTest.class
create mode 100644 target/classes/DBNetTest.class
create mode 100644 target/classes/DetRecTest.class
create mode 100644 target/classes/crnn/Recognition.class
create mode 100644 target/classes/crnn/RegModel.class
create mode 100644 target/classes/dbnet/DetModel.class
create mode 100644 target/classes/dbnet/DetUtils.class
create mode 100644 target/classes/dbnet/Detection.class
create mode 100644 target/classes/object/Box.class
create mode 100644 target/classes/object/Boxes.class
create mode 100644 target/classes/object/Model.class
create mode 100644 target/classes/object/Text.class
create mode 100644 target/classes/object/Texts.class
create mode 100644 target/classes/utils/common/CollectionUtil.class
create mode 100644 target/classes/utils/common/ImageUtils.class
create mode 100644 target/classes/utils/common/PropertiesReader.class
create mode 100644 target/classes/utils/cv/NDArrayUtils.class
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..81b2fd6
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..919ce1f
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,7 @@
+
+
+
+ + + +
++ + + +
++ + + +
+bszT$;-pr@7gPy4+2+Eik97H3=DpP$Ak)NpubFT$`kIj)<@&$h_M=j@IqUE*)# z-ftTEa`UU#WM &y1gxM1Px zxq8Pwh6d94@oCeA6`G^?x<7Q-+}IwP?4410qQmx9+k?D+TaP|?^f*T+^yp=z&MfQ; zr5*yAAH@Te@jPy(AxF_m#Hf+tNtkI2cuKfb?p O>bP96wNBK-RiT|KoXl2iQc{j0 LL_g!uJqzdC`Lw zQ{)$u(r=yDG>jxUKiZ5x5F#tKx{Hpxi1T7N4AP8-Bh+0(gt@fR8N2?M3ekgJ4>Xkr zCI%jGf-#bE#fQfH9T}v>!vx03;#`Oa+S|f&ne)lF#*wpDPo@?c?b)Cni8A~7>X8dK zSCDGOV8< ak%BKT2U2=EI&CIdN?^CBUS3>85bjiX1qf z5@!4Ntyr+*$DAa}mjuEwLy_!IrjL>YD)P$e>Z8h7RK*Z#o5&q>)rA3-!aj0Lg&`WK zz%bU4-}!7a?ju vQnb}iFMtaN#kg4H~LO|Ndj-q^$&2xnj?2_eln3|qpW(dHLXaaLgW|9VCEMo zwoh9smdTlUhj@lgD+_mvSr<12kVJ-+P)bjCIdg)7a%n&IVSYzlc1u1x(PF Y z&}=U^SV;i;KRA2qs5qLpTXcXB0tpf%xCIC>1b27$!8JheWPrgXBtVcrkU<6r9$>Hm zg1ZHG9bAG2cMFodr}KWl@7#0FI(OZ*?jJ)pPd`=NUHx=bb=BUxU<{$>Y(|en`j1vB z$xwyI*VMg uU?xRYUF?<0GgDw(V--A)QG{y?NR<#Rbi5gGO|dJ#nL5HvySv zAyz0&{6*oP*tr(vDdGOJ*P?V(w8`u09|=^zbSK*LDt)mY^HJ$`2?qP)=4?+x5_xsH zqQmY)VPF TT)-n}Mq~$SI`KR@<_|-9STzgk_?a=sdUZj3guXu8KA}HiAJ13F( apTy~Zc{ACbe)9} z1LyjeUQgUg(bS|_`w&|8+1{1!jVmBOOh_R0K0qJbQ#ii2VjOr{D-uGpE z^g0s!$Xm?!)96x?JO4`B3Yuhn4`2OjMs&m!fnHqxY0g(!u-$9eoX@u5mj$&&p)~?! zg``Kjz;J{r1{!}d%-6x+(0sBZiE{+k)7r^jadhj2S$@$;-FjSO+b`{=_xeYRHksam zZncjm(jqYI%_E P_}DWY`7;W{xiB)|NkoCLj6~ZkT>P8rnY|izj-L{9WZ*2?W}3 zUa6FSRy3*|SzsPHS(?0vU~ah^l8AV81>qk~tQhS>$c%y~>_VpNNcUgA1bwB|25xPA ziRR=^SyZsvrty0iro1L2N%?U0byhJgv_x%s2wN44m5Eh^_7akjOxd!t|89QWYi%e! zfsTgRQ TRAMltVTOh01-BPu{MqI1t6jxI>TA^0 zTI#y+rg!{8xwfF1oE_pXgsfXs#g<{37oF2b_HR$tW!XH5eEhZ(j>KI1NxCA$U|-TZ zTAC=NR%6{*1@*9KWKIf0j(!RuwEj+Sn%D2v+f=n{l3aHwUk*EckRoU5dDtdOaJ%dO zHRme7q704Thw4?^K5?jigq5YG=jUw{X67V_98YCm9!95z+4lM=0;|M0}Jl^z#SP#xeCaH;(+ ynr7Hf3jwan<{ zY_0%>bpaft?x@BmdcbQGM>B;;mi+X+zgPTR5obRwcHubM-(B-R^Dh6_4Q-pJ?mwWi zr Kf%Tji)#kEjPtSj9M~?U($D9NAAn$ZUXFy9a z)|95r9AT* h#gxYbKi;RWS6Q?CP>c=!T~1bAU9QBg22d}!fS@;I$$uR zKf~unFFnACCvS`4Pnk60?K8;x{ (x+@bQ{WBNy8pMdm#oeQ_}gA M6`ed5xUQm;}Dc| zQu_aZa{r$6u?lVESs@H98^5uo1RRpyNj!-IKX$}oW~B%F&?*2Bs=wGNJ#=`ITNZIZ zrC!Ghtm_w$kqM|T3f3Q-aer >`z$)_U zxn6IZVK6^o`t)Qw@ceRH8$zw~fZ5gL!s$Szc%EDl+P`C(P|HaB+#Qk^MoPcT%53OR zEul>LfLNcv>FlG^b;G-&Rat6gKOm?$!o`(zl9J7cL&SKlK^wR<5#$oSM!CdE#md2= zhTFjBbKw?#tP`F7!}OnUuq%n8T|aMT(h{Q22?Bp4-@{M_I>(j#Xk8x$b<5)RblY@r zvB~mO#c`7;VpDe1w8*u@TT*$c=q+D4ukI?9Q*Vw-qs0bIG;YQdPkC6tnGe=u(}OnY z9kPIXWh58zYCIijCgY7y>a$cu3r+=$Cc9KkjG-6~)IqZ6-?;Lga3(zO!?iuF!*Zgf zs!-CaTN>T)uXbaiT+?F1&p9GyZ?Ry $BAHVcP5!YrC{`VS^n}Of)Ub#`B&eSbP&zov7Z&M zDtAg0FB2dGfQsgCwelgnO8HU$N$E#NCW-$F L`*P&uPhvqY-#L{{r|v=PGxm zi7~%p2LiTyy921Vu(k}j04K-4-kE)nX275X VF %Fw7joAlg%vSOYoejjFPV?5r{X$IQcV~_h-c(4#kim zh0e_3z8Ro97xsW(Yx*5~s;1)j{#fy~kU+{;h0ai(k;yg6qP@T#c6P^80-D3dF*}Q= zu}`C4cOogH*huY5qW)EL;+KI~*xd;W-!Yw&?h7Ou9~b=m2W0!+COD?~mh{5`>seX( z!gPJyH2|WR0{|5QB#Vl`+{vO680?(`jCU@?6g|;ZLIY1jCofo*;Ao-EA}N;ZYu!NG zP*vUTWwhbsep%>UusoB$do5;S+Q#iOn^za#OYO-L&?(fPqR%#*@?jYNfZpwhQ!ur) zXe8tQ@dDJ1Vr3~ondfnM@?w3i3aWTJ1dy z%q?@EcXG)~$2zY~ z=^KkLz~Ya%5G*FxOj+W4kvmZnbZa@O{_ZsJv+RT{VRJ|lgx(l*yac+{8*0mpoz85S zXv$ERXU&HXCivo!G+=$OV+hJS%X#C9HoOsPm};_`r0>JC=rFtw#){uI<9>A*ol|^s zIu37(&f-!V<$2#&&g~coOHcPouIY>OZ)EO*AH0uG2xY~k?Pp!+d(UBVsT?p-ngm{1 zOWdy~>84sA*yj*k|EVP5+%K;A=O56+spnXHG^RgNSE0#iTKajziAxz+CR*s^JI_U1 zqvhYwo*qF!69I{ls4qW@C_8f8cc=3T{c6rBkH=Z_H7SQJ1n73}W!1fUInT{A>-8SX z$OLakU8b#{U4`)x6PS{65y2yV-~`Kp!4~|mH?7rVbXY`xyx*Hf`=lm|%ctO$7|Bei zFfy?y6oEiD@#c4OnxFTl`E4tgQlrmE8&hzhsC=`a3`~Q@8*le-;&N2Ydz@O!(|Wdo zc$<&$u~ETQ@LV1ot6ta&wk&$RCB@8XB8!}uEQB}uh-2PWDBI78o{uAOZvf9#cc*t< zt&x$~g_#o!R;H38kUgfU6Sy`St2N^VpW`_%?m{~C6DstPG_1I)ls~M`N?!WBK|eAa zm?dlOqkB$j$w`z87Z&$9G^>joUV>I`RUnfyWlVj02?#k+3HvIe3KO?kf(66SQwv+p z0Rl3*Ooiwm{>r6o(Sqc~>6vH6l_vDw&pFr8#aeE4a*--B)Z59p_m14;t@012-RioM zY9q;U#Msu@*4HH)PjY9Ath8H3Yx^L#o6Pxbcy1(FW sUo7TS#(Tk*+ON1~Q92#eS0M5I$Xh8i z*W7P1r(WoRAb11zWqQF*In?1Z#{kVI6{DFZp$df*s9mU<#xrx3eTZQW7W8)xf1UQr zYaQOHrnKe2*t-*YRi~8X?~tnvb`fS@TPlxd=6)*cv3s;yup}bowO10V4a!cDb!8G= zecCnUkwb}^WR1ABgpLe^0bdv$qy*8e^rMp%Wp7O{rU#!dyrp}V@DGS8@(?UKAbFGf z?ISHBe#`Pnu>?~@O7Mt(mNLzrm0>tCbOq@?oLk9KAm)`BLXz;1FTkhl*wQR%P1)Sx zW;Bk*n9+EYBXR$;?SzzIV+3WoPlJ}iZXk&-#Mt(9)jM>Hk*NhPJmTEw7ALK1oV_!} zj#$c2TTqa~uE@`^<4~c_?EP7eV;kcYDbV!1E#kBKs>jFoSWEBTs0|cZTiA}dJRj`# z5u;0?kV8uz(cM%1#Aol#@mKhQKMOr9Fg2`Kc*mXlM7TQ%^zgnz@^Z@^Mprx)-!wh= zG?BMFcY{}+-SKV-tU?_EmmLe#AV4{w>lTw#-6{RpV~FMQ8a5(AVa%95(hH=A#MH2S zkuc0Kcc!|w4|R;6G?qEj!l(Tjm}Ust!q=6}DyQMGG)W! gTw&SI$-#%&v=j<;Q9z3Uact8ZE398<~`MhnUtCtH4#HzH9lmgQ1x3oZxftu3|lH z*2o8k-5d$I15~ta|A6e`-Q?_kEF;hz9t@itl+r}hS@%@+eUmU<%)!V}6}_vU6BEhV zrm~j2{WNUQ{-32G1F&ZKFd J_xEm_USO3G*`uKZzJG zR(rB|1&%pge!>0-+V>#kms~h8Pkh5EeWr`$%URXicI{>Or?Om3T0Cp50Clh|2rIL3 zdslXxsEt*`Zv%&Ry3*iKq`526o*D&vO8$ugnSme$v<|dz`%(CRoA>{;^8f1w6VPD6 zS8|lt`k?FqUR%ueavyQ_EU%dK;mPS4lxH{N44-^ t)#2nACLH zO^XfNQ^SnG5F!j_@B1C%9TmQuU21`VVvaPl{rFkrK)<%@Oc~n)R{wK#8SmL53N7ph zbOr`Z@0S;(8~n?Z5e6>V_1-|IB&UWc)88mfbjB|y4O OlidoLx8E)?K#L4JbMXZE& zft2GjOr4h0@9{b`!BokYzkfThWV!I=!>K^8xhs?e8y63;h8yIXqL;q{TjI`Xt68fn z*uQaU18JjwmT=0-G_Qh1yNIEY-%Ti>+gotPn{@saL1?LAF-<>U_PndQfbcp+Y2eeS zl76lzNk8kC9}Sa3t<^UaJ(JterWcY(lq=pEr %vyoz*iS;66HGJ-E zlW&G4A2RDKAmH7uWzNJiOk*1c@M|Qy&%A7Q-L8+Q- zqd%jXfBOH$c6432yIv{(1b^YL{|6)+_j}<3c)rJZaqKSX-#$qirIv6WS*%Z<`1l|| zX`#$}9uAOL{uVxf>HuVIo)ijhF~g&ye~Zo*D9QyH_J$isS`?dBeTNX|Tn@_li&UB| zyNCqHP@lxwW<~@W Yi|=(Wu@%*`_v z+4*U%vtHGd`Vg$06<9o4r(Du?FWzajc12h6rRWg^yv|F+-*Rgj>}yFN^zkh`->kA$ zQKMC>nD5`9e(O^v=%g<9O|7Y%S~5^|jT >d{Es!cXoSSYHaEi_h!kp~+@)1l}rr{E0W? zJ&m7+bfc% _-t!4aGCe15Uy?kT9^b4m>^xq?RN^Ix_%<{N@mT z+HwB0r!fCXiH;Y?Z=1en#44lHK2?tUlDXoQ8_I)*>zOQFiQVO1yM$_H&tFaXLaQQG zU!w>}4o+;dUg;Tf=?5()0JG=rLyUHH6m*MWl|6MGQ8^~GrfK8BZ86#fyKF)!WSt@r z8+9M3jv+O*bsC@3kG@WGtuL5;SnM63&=UWIjP;k8IyT-gr41o_$k#AWW6O#6gPF}W zF>^15gW~;iQ73mw?P!CRT!yolK}VM?^Fio+Gpv V2Q|H#6%b^+%k@=>}xd$1zHAy~j#v^$RJ2I`g>v^!gEzqU)xy+owfrV%O#P z24B0sj7WX-WW~>a^1gIqd$bBY$;B_Y>8)E>pk+UYRVG3j%0EeaE2l5Z{8k7DX4G8% zCD=U$ieLoqmK}Q@xMhG!U%x+%vb_*!m`p&F;pr@^h;O%jjI_vV69sF*6X4ZcueEu$ zDU9tIbj>$ErZukMO=TN9)Z}N4Q $Ueiuh}JcS5Ju=#{5Z`Xk-6}0x{ z-J?N7Bi4IMvf`aV5~#oIOz-PVXLlN>7xFo<(4+*2ctn`zr(5sG sY%T=pr^zzX$4DmP-il=FNXQ@VU>dtn43onquVk3`m0djlGc zgr^MWXP~bO%Ia;hYUw5z=?2elE9yl^F0=_}nrPzyC6`L<+XDVd^zKlJdVX=&UH5s9 zYbKMk{^qb5*gT1$E`qd54dR#YOMAZ)`+A28y%Zzr+@ke}EovybSMBs5BoKKxB+;hS zM37Twme1#)@lJ4}Fn>4WS|@%u2q4$VwQlTurU`IBrA8Oz(1di-Ff!A ;XB z-GnG-V#kGsy-W%cztfZ*u7NfNs_X1I`H-*Ii%yG8R_RpJR(2xbepp@IymN{Y7s~c_ zrjP*uEtzt3+=r*%BP1q=u-cHEc0%6@%@^nP#dyh0Q-)zbTzCb7D9;&+7ItPSgrZgY zZTNhtWY*M_nS=WY5txZZjQsEHr`hcy<5<+KxUEheID}qD$23kIjWj!1^l5)@7>Iao zChOYmfwT@RLs2Y_rm;vcJUPqR_!FO7Fyc35SxOj5;u5tFb~?gty)7ifHR)A?SvF %&xtMqJO15*0#jp=l^Im_4K>tEBR7lUhpJ2zmb@Su!-Hu-Lp zHzK(G*2pSAv*UxtZP;efVpGHCP6ARLlCII3tO=orBcaAIK4gDgNNP9A_AokrK}KRX zex!z(BeQqN&t@K`*d$yAD4Nwb|H62H1RdbSx`X>%(7Rv!D;J;;x@36gO2S#PQBom0 zjq_HwnpXGJm#k>dmPS`qf8wrh#D%_ergG>2U}~}O>J5I~5Pnfz|6!kX%?Xl?Hj6bA z2YlgFST;L?V=v6img+
JIIvktC zp}tRs=UJaUJC|YIyetTjT22enFlJ)E!y*4b>#4ds>{g<(Cy!3yxjAsv0f~VTY;he~ zSG`;LT4grKT(waBish>3=lMtdhnp%#&l7HCr`$LfKFVKe2^0_2kv`7fe3%^YPNuy2 z;XKvTSB8!ZWp+I@M@Tx`nbr;M&gOO(?>BaDg8l&+TYZcrTaCUU(c!UXDB`AIt*$W~ z@k2gf%Sam&;7j9pg8r!FZ3lc;n-@eyvDpde>&mkOQ-PG4WTZNSnAN6d1&{V{*;xgT z9 hZOCG>WmHZ*rEQWA7vpb_G2$ZbtZn`Jj+vnR zrtBh`Q(8<__-b&R@E=e?yvcT__DBEv$7vW+-_J|KCRqOvN6a7|#4=r!HsV!>es2}H zOnZNDgMOR<{GA;2)GMb=>R(E{b{LH_VLckl @>gTAxw|v_pjd6}Nkx(0BOv4!afDl`EaoT6T z$N78bt5Tld{Dn~x3TIUQ1Jd5__5y9;(& GSWA-=O88Ds zQoD;>MgceE=|6N$nEApyb!5;f!nQ7A`9WPsDQqK4{3h0*q7)=j#UI39w~f$btY;$e z(8A?Jxl+Zuy*=*8Q+3dcd`MmOQ`K3(UY1K_JqY)k%F)*=oqaBrnI#MrQ(-)u_yYK1 ze0?cIROsEFq;1AgnBQayol}*V5z&ek4khlu5#_e=3k|z(VSL75Jhl#)ILCvHY{?jb z@TJ(10jvX#(VV5JYqh@7B+mmxD0v!(L;}r&w1I7%sW)aQHKHK3q`V-|wvh_7A8oE1 z1OFx_b_?p4YuQy0Uid;;zupk>1ty^atHoxHy^p$lK;<=bl77ZV{_OgSY+I(0sS@uT znR$s>XfkJy`t*x{gWk9h2nlW@aBu0U9k;|6{~l?~mVIvHLf~;%6=bTm@M?Br0JT-N z2_X=obx~g2*8deZg+TRH>o?g1zN8Jetok>KZU06w;6mLc{cr6-_pjMRQ7pFq|BT}K zC$0Z_|NDCFLY3{**T2vGZ%*RQ0nXYq!a_D~e%(0?(b4B+gQ~875`J7c&6U6VNh`8c zwMd$KB5fLn5TGeG*tpreFYelUm%TTMWo-gAE`%3 zrx0FTX2=pZOerilLL&ZU}A(Y)&bK(Ju#8^d}fo`p-YeG4!@bR09FMzCC zdCk!3pJF&MX)Q)HW`5Bub&BKQZ$8eMMM~J=nEYznbCLl &8@@y>aR)%hur4>XN zeu^H+OeC&d?Oj)J0M_zgqGhSa!PT7HYCZ`oBv;)Ipzs>1P@uA^>-as=od~5_lH^im zrS<1cEW54f1{2B*W)>py|KtFyC8oE86wB<_4bz7nCw-Ht{z9?gM@=Jvj}PtFItwz4 zh(MU$XJzD%aW6U$MPraa9fLSWwyifJtkuqyPC`sw4X-8_SaFye?7#~7q>RHMlCdUO zB4vg=sQJy-Th 0poy$AOd%$U#YB8e3et-SldLMg)$yA- zY7$KvgoRr+U2t7EuW@KAwZ@_G&fy!87nzs~FPhRllD94OtPdMHCox9FBg-uOcu_SY zI4l`u2#d EU#(XB<4i{y6a6nbz3dx_^F3qIXogk z&nC5mwiBFh;0Bq!iqmyByy8(5$P?)cDEa#iq#=Kz2+9%X+?obc 9~H`Fx?i z*YFLPEw8SY7>^LlR`Ou7RrgNZ?a#r7VfGxPf8mw;#_zd*K&kquCqV0?`1&sYkHOBH zUhWGe=_c(h%V`5L0bLDrH!xPiuOX{QsweROv8&U`d)L81@uPlAUs?tBTM_9(^3|NR zmZuokPR)%ptju`nbutEO=enM< !bI0hKjYk=gd}7KXxN;bs$}f-JNThA3 zyAYQdetzq4RDCRK;)LXWOKuQEz&j+^8c?ZRv$KB_bue89TZY%ue27$qu`{!a<5#QK zE=5+mE{Of$44+fKmihJD(TGSHuR>AuA_f+NrD8$GX;-Ui-J4Fsx&X5Z&3QL~*|@Mv zb34~rF4nHa4;KGcy%#q8gmV(>TNnfOcKd^y88o$RF}Zqp8t-yC9oEl)Q;UEwuvw}Z z6ozpW;{M(NGi4XP(KOSE7O8)xj}niBxi`Rd Ypoa$n$%J1f6C2Hd8)kp?vZUSFKL^HOZ)kub$(#dIy1=IXPn!-Cs3e2w9C3Ro=xRblR8ajj;4oA}g5)FXic@~pad zkbt;4afM)cu8@e^UUPG3s&XOIujwUwZwB6@7_tf#SwjqLW86c^=e0JA4)a`1FQ&a8 zRN@63ba|d6Y%nq)6)=L7d=@fx=O; S`X#*c8Z%jH zPG2S%2hg*)Wy{tLg - I2Eu6Q0?t%EoPiA z`j@J wJb|<|UDUK|k_w_*{gH1O0ZVx!QXu zKeXBY14q;?fj`035|&&12$**BspZUet3wgD+m}k2ox^fQc!e)%ML+@p4%gn Di~*ZGG-N zRO<21rB>{RRX`8lgS1)b6n;CS^2d9w4Jyo?@?-cAH8~kXwl5FzVtv(Mi7U=yD5#o0 z-_}xLn7q^Dz_%)3Xij{BdlFpb7;n@$fG4N7NzzB(g5Nn~t9IsOsgc9ilU 7enPN?6?de zp|M=@G^l(heBNiBV=7ZqG-my3QFKZ5#2 z`p=4bG${*YWdPZ^a;JDjKsj)PkFDq54KQN~=-d5IBjE9+KvCIF6X-bTZR#p&L*=;x zK3pUNVkTOBP!?e5QSC2)>F}F$;@0jd#$b}Abe8sD`hA%5U^p`yyD~*_-}IZ5#t_>x zGJ&q?_I71d`-hYA#XeddOP>SQ4#SwedCXI&_YZgLMxN#Gz)B*NG{wg#V7l{0pBlyx z%l~mr6X^`=Qe|Y9k)i7c5yFd^SOuH+j(^; ?xE{u5MRMtm$}VM3>m;CD@w8; ?6))kj+V2HbwZuAxwz5o5j_l+s3 z-cwgC$#Z4Y)M;9Jm#Ky9cM9g{vzsZpoa|^cwZAIeLbwEb3v z>dfD%68%hFt0(|z(XE%lGypc861C gby=a8iU!W*)nku0R zU73>H(tO$t9p?qG8TZ$MRj9YK4!v+xOVAK5Bdk--%nPh~U4MX5M)kTI&Bq#G;wj+} z$FirUmV1weyRbg?Zk|4(Q7BeZf6~v0%e)C!rS>&yz7?EJWAo5;CJuW-qsGK^KmDGF z_#tr>j)YB^3{JxNIVo^ xbPpPsE2;y*k#Jq4}l=)mK-|EBJprL zd&x3T+Zv$+#+EoPOM8-*pz8t2OYhIt@4@0upX%eH3a58}jR;4Nk~Wjtq+UL_SBlNa z{xrS9mDGgT3nIt>1Wml9f0Ehl;r@zYogSae6qa5T&mrvAZ&^b+P+$>DN$pA_{0+OQ zeR($E+xG&0435##?|~=#N|E={?bi Ab!_#cDX zE5PG_H2_)s|2KSerJVl|CLCV-Rkq;aia7Z%egEcb;AF1&PX1SK|5Su15jrOv@wj&BtDZwC361IKYiw}m_nMHpG1oAA>i&TW55B8;i+l45lWZ2-Zr>E zs&EgBgpL@S&M#0|FKSf~`RVD!8_UeY$@ji%cBx#pbzvw`!+;hJuNZy@=anUjic}jy zBFGmz3C2;{lk(FH8efCbMFGL|`6xD~C zh({D{IDdpXZizC}dHw?$IJ87KyFkD58P*f8o4(9pI3dN}`YX~HM%2-1_;s%Os=dk?&A_@LdfcN@&s6ImQ600J zT4g}4yBpzp&Qze-GvNS5H*GawL_7;2jqk~XKY9SHol#7&(?N;VEZDwRWBaG#c*w<) zOzN8o#pA6tRoj=ypOpnlKkohkg(;)LeO|3u2uJS#Z;jB!)l0O0`+o&1dmw4o^pAER zdfNfL&|d~CR5M{@?R)=#{y3~D1C{rOlY*0(8n&{3Kt=$T 7c-QfR={)GhFf>#helASv9&@Z&lI!S+kl`6RGvJc9X>-_e)(ybd;Tm)%CRD z&y4*cr4PTwr{9zSYj&MY{Gr{;9R_sJ)++&kmbQ&l5_DNlQQQ8hj+QtF`1?q>miJL% zCH63lTjE)%d`HIXdQy}wUu`EO6?U~`$Fd~gX5KeH;xXXUm;X&o(y>K#FNGahxCra& z4X$95?52q#D6f~3+=w}maF$OGQsOtC9GF`6YMB AI#gGM_I{?1xgpF6W$&T4!xdQy!WB6tCAZA>h=vZaW~#d)Wln-}g+xTl zO$sd=%`Yuh)}UFlBzSx7sjui|3L!!;R*HV@M zSDE192mhGI{^ H8fv*aK- zh0c-yjtxf4O@_nZ7oOb#KMCUliMT-f#GXI3edWSFEI%%W++3~|ipHSC=@QVderl>J zqnL^94l!O=vUs|p-?wCU PtXv5Za05o O=3jx z{%;3#Wo%lOjWFGL(=NUVSLp^X){7AeS#I>XX#Y;T0{3_jDv_IzYdVyn59%|cyV1gw zk4@O* tnTxJ%VPta z sTY){{s}<~
m_tkgc^78GL+VFnXkZ*+D~Vb%R96E%i8@GyaTJlQKZHy_DM zwZ@grc7Ek%yA};|@%(9JIN~KDh*%pJ=UoUsjyZQe2Odphf;Xwit=^bxrbnyP-mzG( z^P>0arnuTIsS0;itbAyI)9NU&BJv9R&w_U9w`A4$<<+ncm#{BdJheV3@dvR}TZyvv z&?A-&O3>;rs_S*i?;V0;o@MPf+;21a^ebV_14hQlNm97$i?}kZRybRRn!?3p3$fgq zZ<12*o|$>&@@%M46Xp2On?A;-D55EGd>*a89z_8#;_WW-c4cG#?_2pNFh#qIQdI#S z-VJ5K7!?8gsOZ;qab;T0LdOLPu0QlH^GK}>G=OEzb1OaVYHhLB%mXIr^HO=gntRcu z!GG8N>NoG$e wTqM=hT`xX5)}|<4;A5*2v~4>e)9oW?p2BQuNg zO@$0j1P;v(&Cch%*+5R`hCw;K=NbwUt5^wxJ}5q%Dh@g7mwnJDd`XOK+L$_7s+z70 zTjDyZCACBU)u7d+q0HM||4V^|(7&n_r`2TqF9^xF0T+u5LHg*ZxDh+FQv(7>Vhdz! z@0yqYwtnB|Jz3hV;N5lYK(9l|6l2R4e<`?_(T6bx&fWj4FqD-ud1n2fIQ`vGmMTXd zp3wQ0EWYV+Jaj0+!T-k-hE2}5#eNbpC?+P423E<|+KrO*M$@-G9Py1RdNI{mkp&Sg z-Zav$2ETpkoa)Z9Pgq`R=6qxGgHGx``7D^?cx_w9-M7~sapCi{S#i8IFl!ap%39X7 z3D8(rab9U+dS*mn$|d}!dlo$eq=7fVmq(lThbrxb!^1b_Lrnwl!-?0NYO&=X zQQ3ctl|VmgHh;4hq K;UeCG!Dqkc_GrP&RgF2xMJF!Wbv@ zJM9J8T@PCQwIbuR;8b_>1tDhvI*Bzbg^#2s;cFfLqUB0LPP1p_(l;OY^J-dl#j59@ zmQtQ}uSfJ$fV`hfXYCevVITTKhiX!t;-MLKEd|t!k5! W8dzZ@q!hFXJwySNrft=Gfe&25i)ebiNYBCNsb+W!oa z{_Z=|W4XZmXlo`c7XuFm@$I1+UAkI9Qe8cO--)5>m2!ao0cexzm8h4t+ZX%?X8qqS zW`Eh64;O$U>R+k4_`kR}o&QDW?tk*FWTQqOI!Wa=*V@;pXR|oT!^RC&4@Kq(iQS}X z2DMwV% +$7C>*8FLnlyTf|||a{e4%rbdv`oc$-}_#aSjiS|w=yHxB; zS@}P}O!9$K{=Vmz6QrWQ9AxN_9qE?mMw)<2c{39eHMkYtMYl+7Iy0=>xsZVsX?`V{ z`r{<$V*0Ixouav!cxg9eQZ}Ko+w2tgP;xQqCzTNMo0;_LB~A_hMtsKJUkc;$BXEd( zP`)kPBkSJCpt|D=9@gO!tEAvGyZU1oyDEkPJlhsO9ClV>ly^w(R<%n(^g_^uk4o)x z)Jq)PfibaQm(*IbpO) ySX zIQx>aNW-Z|L8It9wcW_8WuJhiw$y {i8l})8}#v z)+b9@)eHHiGc7{sMm#RD^T4(Nae||FBjDh#->!VqOf``@wo6dnq^_8O!L+M-2@xg= zCd|@g75`S@Mq%}B-5qqNu?vlP=*I-LLA2`8qM+QN9+hB<(km9@+eH#4B` RmGpC3CMns?ChHS79T_xh2h(bOTf)dw(Cyk0RS1+W&f>s}zQPs`(}N;wl@HgI^| z?b{lI27;$QLLM%M6pUFlcV-RW@KU_DYhsAOXZ#0bomtQ9@TE_xL(`Uf8XgZt6u#8t zRIhiFX3>=LovCH|8065tV1#(lI{bc@v%u<`q^&5;17@-T*F0?1t$Mt{#NjhkMmpKd z{)ee+ze6PlltRK%=vP@MwPf9{PA%1It;?L1_-4})1j;|RX}P99p`PYSzy2ALjrp1t z){3o#U-$FoJ&D_30q dw zGl$v=O@#Zq(*cc8BwF35x8kAfsTLa-U)~ZV|HV>jkzCL^fx`;*l@S=-1l`9!SMCZ) zCW y+1Q3zMf zwetwA^;nC*Uh$k?pFu!Eb@?HMG$0~yZ3q2AkYU}W`a _c}`=9Ml#oOR3RL~r7=A>bA9 zo?owY>HI|ngg7@rhS~ijzgImc;AaIfjmY4r*6$zMznx|^#}asi7IKgeh-7|v)G`w` zff&^o97N}S>2s;)V8b%U2xnb?J74}dIFJAoSUT2Y9~@Wwc&$ptxbmF13f4fe6h+3k zDznkMoHqyn3A~Bo=fqJjnJBPa5k|v(u;DCAifv#7epto#DdMdR!#3rJWs{4qj3fes z9cP(xOI2*@i&337rRc$;v}rucR0E`VT5~i+N0b?_pGXv{f?%JBb38vR;xq57%8UQ8 z0QPb(*q%Qv&VR1nBD!9@&vmbqX-J(lk)}9f@hgVb?#HL8^7O2q3Hv1ffWo&w034_a zz{eipT)1qQ-VmT{-*?}c>ACD2^zEAB{vS{}Fy(pwO6*%t(w=oy7E`t3J!-a0@-)pW zJ@Zum6v9+^1~fvtA68l5f$-b08~yuax&-uPOh4G=7z)p>{Ihl(CtfD_K9ICjsvs zz hs&Zev2wUk|rfZ30@HrnS1zC;8S47;8%6i7FF}c9vH@ z0}nQ^emiRPc`qHgfq+#M^(qdKtSg!nO2SyAa8*BLFAmq`xnCYd`YA%}#<<6Z=si^9 zab;gmaL etM^Xy-X(hU-h$O5L=U2~dW+s`w9hm7e4pp{yRPql z&p&g`IeX7B=A5}_=A8R}y fYv`438T7-~-nNvyEPUauDx*n @UQp7&E9+BhLZ%1!Q8YK@30SgQ5c>7 zOvnzn`izn=y3m>PJ&_5d5g<)&TD2m-o!U1VJ&8Fx90O%BxHN$W7n+jTu8Fjs lJ%0EAGy8(^0c&94o^Jp=3;!PW_W}(b7l4lM z*;sTvHngctSK76OcUxA7+5p=GEw2oP8JfFZb;fq_d0?Q6-%hzhKE*d9x*(Cn^CGk2 zns~}-t{Ddb%P-DKn3I+OY;wVtPWa&PTB$(kVV-l@!H5ry-4~g@#KlHYRslu>GMV#g zTLto%ZqKL}%U`b)B8zqO *_o#&kdjqf=o6bGA z(~swV{5qVvg jaAAY8e#ZDKPFQO$eQ%X@j zqgKGqk-v90(4u5nTGh|qV+m+TzU;|4;h8tI5r_VEi+1MZGSU6Qc~(dqS^rBB9(P}n zPU=4<+!Rx!hc i?tO5D!nf0#hR0thL2}3SJjCszbjf)C$OVB8l zyr_LuDf=n{EZSoJc&eAy7?v8h>zuiZ36Xqr+7-CyIH^m?p$LZF-@yhf`rmyd TZ6Wgpg<;IBD^=uw5PeBvK$NAD^&`=*55 z(Mh?Nx|M$2Dg{q>qjaeXc}&oP9a;bcSfRn&oM9g5`e#&jNP=eEYpWz5HIDtkv!B@- zMb-RQJ>&Xmd&K+JGS;ALPpL7{7|)Cm#I0P72F$0B9Ua__G#S+XUfO}4Ywc>Q3x+PO z&h+KA8@+z@{9UmH$S$Q1&e4!BrOxPnh614ucx711^@0<5!EDejFT)N}iq5O_F=S(T z((cw MkRkVlYXy 7M-rmA5B%*jLRM}fyG6S$NVDhl^BU7-D8fD zvl{)g_y_X%r;~qhF3UnGH5!Svr5Y)LsgD2J#4!Xq!XkIswS_E{)}%ek4b$|T(y`Dv zaP)9csGGiz7^k3;i3&=*1Z~n}&F_AZiArI+&h?|FbFpX|dx^hyfF8_WdDd(jGopXg z`r{uImfu4kX$!#cHBy<;BBoK|oR 2uC?^?nip+|w7&bB4||Edg1A4E zR27lO`U8P-3cl7Ootjz5r9Rn*OetloUTFo&gTbSi6HS%%QJ1dIo;~x6Xu8RU7xCuf zgeiIRp~ca6`lk*dXGmG~ThfbEL)lXMntOc}^ojivatQKP#d;ZEoR_y7IXR_UM!Rd) zC4HV8h{l^bxu_dt2p22Iz6ukkKx&2?4z_pTp6CP1$C{lJTKS3TVp&!VC7Ym#@PHGw z0*lDg2-xZXoQe&yK!rmt!MQkrKSBwSa(|a*xX*QqlF;(JK|M4Hp9p&{@mt(Qw1REK zS2z!KyJ0~jo)}#bR#y*Rl`hM-d8&Q4=u-auo}o4YH#Y<@FM)@muR(^@HFv$eZTJt$ z_>`XFBnMZ3O|E9KMXKl>jLc@Lv#x7Zbn*u_roYd0B51ytPpmhz{;^y=Ze(p##DhXw zla__eMxjnlsL!Vksv^g{PuA}|G_0vky_!sQAQM0)7UIvRK69??KIr;V@A=S& 8=Ry9K_6mK6v+WY-toLDrgf{f+!wNo-;0rMsJLb z F4&Ia2*%z5NK@w;B~1jFhfvEJo!^ zKjk`P7wmKCK+{4nU%E8*BZmCu#Ap?Z!ywfh-{&kKgGV6ojBK3alBtm|;Jp#q2$^Uv z5ZM|wC5!J3gahpZ4Ekj%GMAW_!R^DZLDz}`R5EOhL#WUO10Rom^2DS?x^K+IioQ%D zM_j_Cm7oH--Nw8w3hu{+4P%$acLOT2hWn5LOvbcqct5HE-1#|63&ZC>5HA8k&uM{d zA@cq_J|Z4=cYRW=z2KpTlsNFU*LG9gH0i!dxawDU>yXD3q5hlJ^qXvVRcrw4aP6}3 z4dnBV_oBGr6FlvjGo9?H-{866dRCXyRuPkpl2eQc MlMor?`kuF{(?}H{(5I~AlO5p|uIq)Jz ~_xpU_#0s7^$% zQ79nkh4R0=zxU BB zJNq8PUcVY4#BD!r*hJr=ksfBqPXAdEx*F_d=jid99kRH1)S9a^Sl2Lb`9xpiP;~u7 z5bFNtywKgJU>2>MdYWiVyWywi>kB;xwpFEOM*%&?1JH+us%Z10y-+#5X#BZ!MN}pS zHZZ2hL$&MRY%vc>DuO_aAt@6dow0)QB>AU~P!M$~zn4xd@W4R&2GbQQyi^AgyM2U4 zJ*X5Yai *O5=3{d6##Fq!q&r~-vJ`__ByzvgwZ_|+WUT*9Or!K0W zrBJ|T#W0=`V7!6~L(j`|Cf(T}hjp7B^imMRq;-8Ua*>lF!K-km5!+oodB0AB$zNgA zvMqQ;*b!>A>BK}*Xnuiwq16*JB~t jarAO~z zKE3q>7CiWK%owf9YKls=*ne13VK#?q9xX#5J;M>9 Y5UsK%~K(Cg&&jY|!kCO&&aJ1I3tF3A~bt^(Wtz((=@v508F^DM(Jf zEW74V_77!q`blX6Pn!uzNqv1(kTV`=t8BCv>3F1mI1`#8oSx8fCM~7>IxFOhY%r?c zSo~N0&iJHE!{Gx1pV!YA!Ki8I?zJ0ZXouNhyOdFyHE)RE-u?%lDw!#jm>kj}hJNe$ zi9vyo?6xt>4+{@W(JmPsYo+<~pPOFNLcGB^GI_;3UUVcmqq=Aa5?I&b)zwDrwGMTC z2LrgA5za2mezYV_N 0sGgXp+C1*H}Ka7(0 z3tzR6S%!IElz4H>{eCsf0)U`9$m8*I3mg@AXRtNOI>=x0Y9k|-i=)^YF`h=@8E)E1 zKc-|j=V)cTyeOP3Jga&0d7*DK+34T*XH_<_6=rF!CEYbK#MoNVJS1lim5i#r++|&~ zVj=3>G$bt3E1cYe2|=WuClb-C0ngCix1T^z^Wfbqfnf$tj8vhu3n59wIZA9G!9@$R znwC= 1~I z;=gVuz~36L98QiW>*BcLhZ090YQ6@9`{$_bgm)eJr#>xcIM%c3KdH#wxncznP@P%< zD HVh3Ow*y|?*-d2jGIMk5v2 z6xqf^XJzSVJOT35^XHG#(WDk>##s$Rk}%n~P2J7iR8F!MR3GcM5q`GDxw-TRjwaF} z>NPB_lK#EV;O)3+cB-(RzDggOV^CN2KPVT)xYJJF(x?;f2ajI9ASjvlWWNmUc9}ps z-AuLWYiQU UYucB(VCP zc0SS_g;*AH+NJ^NiCmrh!8hFN&0V2!i~KXGBs5bssrkWh^ G#P6zI(uXdqyDnt}F;jrmPo1ej_c#ItdukxSd%SZ_+KwcUSGATANg z-Ar7g^*FK^0DReLr~n3#4(&Sur^o%aADYaRrvN#t@gW3=KVqM0H+P`m7e5rsdD2n# z35Rtoeofvt0H-B_^=~tj9*-n`Ponsb?^zeVos<9qNq=_%8#T%Nn43ppU`&+K9dRXy zI%VW}Yc_<=(Yn8QBLtFd-jWiZh{s0pP2&2Ky`Se7fb*O)AXJ%2}PYz_7v^N` zlPA|Wm2S}O=$z#c%&lUpn?I~p 7!T0y5kj;~PS@ZY^)Z(}NpA z2;@<=zxla!Om=$w(K;s|{Raiq9H#i?E7RanB-FD~PDv(KIGnrw_n&n|w6A1BqI)$( zhxp%ij<&3uyHkEOD}6#$QXnEiq=&k!m}l%*vS6~Dl!+>Jryk=Q0D8Y!Ba^lQ1NG!h zV{Tys$&Aensp9)K^o4{2D2mVk_oicNci=`>Hp*%c9h3b`4ez8Y;>p1$+{mKRzIIu- z(Xyf%TLbq?;3D%FRF_gRV<#xcqFsG%MRnAPC-f;#-gGDnLE^1m!eM*tzJD@4D(5pL zf6>$=6t*a=xHRA|ECU^`U)8b~CjW!tS@yKXhzZI^nQq{^<5Gp&!Y`bSI~ G*RP^2gX@al1fS<;rZTl&-v9U4(H-3~k6mley$ZE$ho zSh6OC2DdZXL$DTD5MM=O?QdfX=ifI`VuHzkmh}ogLf7NDwPUs$C|Yo7AIg=~9-{gZ zx$|{9oJ#DDB@^xZ4RtrMYz+euxgZgK`KKsby*V 1 zvSPM?*61jIw9&WBb9A+Tg8AewAwhK`M+gedr1>%-(7Q FvNc+HK$FLHii@__BU?NuuD zTBzOE+~cD4z2(~LLj?cm Q~jYH#v5hpt2@e0?kQh|g^X2m5YMyk@}tnJoHhlcwAd5CW8lXovQ z2%3IM*CHSZK3XCk6<+EGKr~rKMh~Cr PjKYt3>Md)B&L}tR({%z7qUN`dp>A zg|D7fO2M8?_E8Vp=rNd|QdyDs9&YQI+XsXi$_<6OMho*$ )o)_&n;skZS{;RE z$Op`rW1u~miXJRL_W;s+VTs3{9B}c`A#v|BLB1Z*j{dUZn%i^?N{kEH_tC{a+Pf@R zXf799dQMs9BEF?G@0Aw2wftBsoBre9%7<7-RDo%&ziy9sFpL+fhlcpqoATgtofnMO z|3BXtMm9AL_}fBO6W_b?4`gyufHJrH^iN8HfFkB>hE&Fn2`570TDzF09bWec&U*$1 zUABfYJ%|+FuAC_%Tymu=7nBq9El6B@Pu_Zsc;xP#Li~R!LupaYDzoYFQeOm$z$za* zC+!ry!jB0Syoww-Fud4=4$E@hf2jMgV{n5BFcrlKxAbc{UmKbUa6TLG=lM8iU`2N` zbL%Ksh&Y%L^?rIL7PO^Z5p6^9dm;hzxsDI4Nn3v>;B=|rUS!(6xXw(OL>chJw{&L#05KXjXu_J~Ib**8I7V0aJvJ~C!PW>^y!h85^XA3B z7G|QY{EviNx)&-|Osr>>Q|%5vxU@z3%HL5N*fx+NIeuEsrkv`cQemK=uH?MIH);TS zTwPh=pkyeNcg5MaBHQ@kRa3WFi&gMJadyV1&~34>s8;Dvl&VoF%=${`gWl6M*JjDM zNQ@h79AE~UO7d(?XoVM9{Hp&~W4s#)^$Xu94XvK4b )*8i>$E#t3)GpML_OAcZFX1fA3@gxJ7{}WvR9O90~x~K6FvR$BN z73vd481L!@ 7Hmlb*W;5H*wc$Wm)(LZ7S00 ze=dutPvQ3p`J;8gk$t176)pY^Ap}E!+c4>d)AD9@^s#loS@7lO5{V=Z$$X`!G+x_8 zVHrwkjTI&-L0P#tpDQA+fk`?{tjcIs2@5YBvGLm(mGzz5;$B%1i*zNpLun2hwjz}w z_)a7-_If4tz4DC?wvgb8y)o|y7x`0&OKsT><;@G_OS}=%XyUt%A&zpU4g~IFIN<&@ z{ae+&tz*@$=GK0wv!>A-x&Gd6aZeJ >(8a z2}Sjn@O)ZnOJzLQ;hhB>sRy$*l+%jigBco9O3Wnd*G(cX6q#YAxXK~jKSDV*vnf2u z85uW(G!BR}HTIpXroz~F)ymELcbSz?a)68qdbIZJ_?b-2XU#TW<}$_#99sCan_)L; z*A({e*sR}x-$8Y{a11rTLX>A@%k@DO`6F$HhutElD~KX?&(4IDlnOz*VE-4Iyfd$t zD4x?LS?^@B(J}EUBlfvBBZ=%aG@kq{nfM`u-x4aUib)hEmZ0j?G8XF9GyCh;n|LEn z^E&&q(vh%1CpDAAT3XPDjNZk!bBby>FlB36OFrn7aAU=X4DBVn*JU=;&v4M$dfAuA z4n(g`^2aI))E=bk+dkqpZ5Hc+#fVY_$OSQ}0sqKfTnF1p0B)F44u&-qE$tc(F(_5w zdre3Y7Mx(EeOItwT&7{>mQSpGxey7x)z9iN?WO-73{gc@^Bk4qQ8B%i{dJv`HU5il zER;_p05YIfh?VvfX|3RmomK*^u|a2(Av?PA+4~jwF2yN4p%5R2ZocQk*2ouc9Qox+ zQ*#_~QZkgfbcACz&ve5ccaio>D=cLPRn`HJsNL145Yd#M^7dyMq?6bDZU`65!y!#2 zE|ZYPe`w!>t3c@{jq<#prcHIVDs-)T722)Kn}}lGri67p`h3#-`n-e$)ZgGOMLvFn z^W0@)DIxLw=Qrq=Itpmf4m1 %bDhFo<*)=tS|bcxr+wjgs=DxR8H*6VRAqrRe(Ew!~4j zu)JHfE1f$Oh>bHUvBifdIG(799ZERh*AJtHFtkoC(K)dR3eA}W<1gIrHu6Rj+H|g| zlRF#~F-}_<>@{6HATC*n?CY^U5X;&dxt`I|w*bl%mR6tHG#Dr|?YQ`U;Pe05CcrsF zOH+tdDJ$gL$vjjX8!9PqpbAgLV|`8Jl#6B@NxltrF0R`KE-m0){(5xdML+^d2WCqn zMi~G&i~ LiHl3y#NdY6!h02yGFo<$8`3>cxl24|JE zcqll&l}XG%pdpYc{c%(ptx^#AHI(sV)RupO9lr=?OzKqS2??j<-ndrjjzN@H50EF1 z%@T1n3pL&mEaxn49Bbb<5=?ztqumWDYR{J^UcG)Q9{6Bg(h3 DI>( zu|mt4y1+$YM+rr38S%zlkBF*R{0GJU5YTk1kkdX206=0V$Le~MKcVkob!wKD3sSsV zABqEkSOFZ?QeNF@HybKRKq`PR$Evk?dRaT^c=y8~&96xTG>X?L19*3ea6Jcd7Bl%f zcO6SN#wUac?qkm_om-0MzA2M>La#EU>A$CxNwKmi8^VBRTA)}Z6)l=ZD%Z_%_oVwa z@z2%NJzS>7-~@?fE$5tr p9`46Z ~B{l5w+(T@*q3+v^B$dFA=U(CXP+i zZ}upQznkoKVm)UjbnBYF0U+y&5QLG9qO`HzC=oF#i(T?i-n@zRO_Pv*@cF?!(kCP> zUcRwLWYbw3(;HL#qn?s0`!jeUH wfQJ*Ov0`x5hI-{xsQmFO0>j$Oh2Qpi}z4E{m+(*JlU zkqU=aeY>UlH^hDVKYTiQpu>9q3eo~tIv~9e$eiYq+L9W+ToCwSOp$17s6g7(iWLbV zhAu?Wag4;{53UO_)Hfa?{TGV07MeZ>mF-%E$&7AwR}Hd|ccE`P3ap(}jhL2f8N0c9 z1SF3a=8Fiy);Pwya^w_O$)WzKUtIh&h}x>wl@nh7DiG|!Z9)c<)(hyL@GH)-i2cq( zM*3KKkRiwsr1l!iJsPc*Z}Wz}2G;^O0Bo`8uVoC2mlUn&Z;S1ux{RcC##;oalD{$E z-KqKWfO*4fbjOkUYgV=;roFC^S8wKflpG%$S!!3ee?Z5I`<0c(*KE~ohKJ$JPn~Na zRkcFnZ=K5E&YTopj+tM>W|ncyKBLx8guhDSih=6W?af$_=_hoj;}t%c`aRvfAKt)0 zw_&e`f)=G#{kirZlvg!4mPC;H?+lTtC5gwcs`TM@vg4$w11>>9sKHumgZ=XSr@U|V zc9US{JI^vj F;2LCgk(1E%Y4EB^GtY>UM7Ox;CX4>>_WmUQ|)7T$vlQ>I)IoTU*=ozKzE<{9d zGS&CYdh!dsweH~eJ}j2emT$$92_1|L3D2uPAJFi9m}sr0zMY%eQBjpPB dbYj&e-H_iXa*rYfj>2!&m&mY{G z^LIAP2_H|Co4SCAc9P?89H3?cQFDPSXAfvPHac3FikxANk}iT8T<;wKXP+i7OhM zxmO6mAWT83(;O|xv-HZ9bR4O;Nqgy*qU$AhQ%(H0X*0sI7(_3AqQzNET1fFM%y`(S zG+Y+@x@TL?9VbtQ-3(Gm9-#Jf-Y$I;+_OWxUUcp(J|$~Pyux>B>h5qw5{Th66!Hg# zEM%creG`e#CR9l%J=(dWOT<~c(?RIQU05-S*M>C9Z*US|VZxRh>)a4~)QTNqq+?=f zzuA $ws?VqLH3!pm=GARy$7hSrxm-Jq#=E|LG zF7Uba-i$A`Rx4;aH5NT*hyY?$kO~|v+R&}}im&`5Ot1WYzVlsFMVGL_c&0Q!Cba%t zq2s5;#LaAGh2uKd^3S`|MzMJiE5;jQ4pTwFB`G@8r6@0AL^*s0Yi58`{v)aK7(GUH zG+t8{3-*zQ@zM?7mm>J54x1eZdZ%sPMFf>nVk&R&ekfy{3`^R5>DyWf8z1!_$~(#U zOp&-%rRJBByGshs30XjlPJ~%kzpI3EEWaF@Vibi*=hqshGscu*X gC=2&kOjKignq27RnbP9n;A9G}0e8epPu(c1e<42Lmv;1m$!^9`!w3}TZ*J*ZQ# zGg3=tcP;y4enY}I6s;{U?ehU$ M8gvx4uf4iQkP=Q0U{(wY6- z#F#kA>v&3heoV-!w8Ljk{*>78vyd;TO^s+tc~7x~iV&S2m36CNsU->b;n`-KMAr?C z2}G)xa0eKAjUG%l?Pk{r%I;E@$|)sJboY@SFE7^ |iun4N zvVYFHcVkBr4eQ>(Z+Y-{#?@3$oIPaZ4qR4gTd mrmQH4fkIIls zlF35sNSc`>B+@bIWjfWtXb+l*gCw$h(;#EqWSaX8p~Em!FPog*MYs?)9Q+qCxOkeJ zH68u_wV~bjHs0FIO^=BK9WAHOBAH0Wo015^4e;fQs<+`B6iDhHJsJ=1c1-&XbXm+i zQ6VHNP3*-DDV*Z-tYmbo4#Rf8oIXKj9j7z;M7@mA%U;V`+J9leQrj0Cn@kJvuDQ~i zY14;aQ8K6zkUxO&Xrkv2AmKI)EFwuZs)_0z6HN`)772^Se&Ls&yUwaZigBcL(V}zY zSFWsuII4uR^)s~Y3iRPG qAGvrwLWA6Q70&q^euN#@HiGKHyYxt5tWzE1A>M(1QK{>eM@)_rl9a0=YguYr+z z9QOw2*=SU(`-dKqD%qxV7dtlm=3m`9p;YW>c8S4G3mLT~@QS{-^z0zAL1f1y@HX ;E_TZ*VIr~k(X1k8BB`U@BZ2Wd-v7A zi-Z?3!*S0XuPbmu(K`9|yVblPc@1wc5w?hVs?FtvFXm`mdwj^BN&QU44? )3OvSHZ2-$1Xg|ssy5=Y(aYaPx}@@ z%=MQ5-AM&@C4)PjsQh3SANXf{AKjN_G-J}!G*L6d=-)!g4AznO-*$1QCRTJAn*Y~k zrE4sfEfp4ZklMPz21!58LeY+s%<-f=+%R6QQ|q$6jPif6tzy%zOqeuEX<5kh^(624 z!#9fIa_-?#;V=s6^kX(wY?j}0=KI9=%z2BN$Y7X_%DTQOmi~>t63(>_*7rZNS#3T< z8LUae4u#nht7M=9LAqnT+g|c(JeoR%E}J5Ocng6pL1|COTVG-y4Eww-l!-AthQ_Dy zdUSptRcsn~3YgQPlYr9z$W-?%qty*avST^Ue@{%IQsX37*jD9BEOFZm>y27A&| ~Pw7 z#<0mhI*7{T6AIv0K(+GUzo1b0;v@rTKYS>5H=vRbnX0k>^pQkUAC4 szyyZ(=JI0zPW#TkTi`TfzaS;&&iN{s zg)QU_-f%C(vM);~{~#8ZFPOo*$N9T?3iRWpP2e!zm%Oxu#O{ gsFTkak(NbD zaD29+P{fazlQ-!Er^{b~R uPnKd12AVNumOR zQ{ojAs4J-_#GN*J-^toP6?ZGye|nb!^FG76R^hAoG!Jo3;_4Q~zbs>BfAchD1FT_b zXw7I*^276&6{BC0f8*2j_%?Aj*W&Smb5^JP)B;xZ?_FaAeXFw>uXq=YE5i)l`I;B3 zU3vP{{k@)O+YnBUdq$|+W@dk~`^})C!xUqhL?#o%+%fhMv4maRjvAOG9gBsylH;~JyKtmYdKrw#NCDghx^ZC? zN))!CSY$xdB`xS@pOjA_mUN0dPP1RWNaSG+t!~UgYz4iO8ti%Y8;b12{a;SRsf S#bkHyrg7lhy}~yB@gOXNx3$%&Vz@CRlO|pd !kp zETE6+=rr0P&*qdB_oF k=zQGc@bT;qp@mV2p$Q4s=j)%0ZZchO(c@N_V-~-;IsxfMugp z(Q>Uqca8A>97HxX6XRv=HA;YQ>z$@|HcKhw%bWr%{bb7t6uk`C);O!!_+ypZBONGE zMuL{@?RYlqOpIYd9K23c#80I@D5=wcIaKdUgzV<(@AmYJd+Ng;emh=rpkqt*yRhJW zB(S==&IZZSAIi|jcj`(>dB6mXiR-#;a35I|I&FOVjrF}C+^>(_n23>&h@0h2oHD$m z@V!}TEWmf4ql Sv3Jv1eoaiTB nT1H?(XdZ-{#>6kKx_liQs-$7e@5 z8Q Ju-Q!$S9p zLiV(9o6PosoIC<##IZavRopQa&AecL5SjzUHf*5nM`!Khmu9_>Z`?kq6m64gh7eaI z&~|(S*(+jE;+~^BjMYv*1Iwv=Gg`^#KaUHe`(eknG}MKC6* z3=X31y3Y6vlXu_0H%Q&vh1--Q9oGHeKZOWF@(VxK-A-z6G0>b+;^IwjEE&d+-!I%= zGMCG0!j)^rAh!xi%~17}60|PI^%^eZ)WN7hQtA^!xgs_gC7UKpsa}Ac@i68v%AyYO z9D@AN?{>u$OyStHjzdZu%JK=~l=z1N2&kjPWo65`Uo|Z)VsmPmDFo*B<)5yXUvbDe zwCL8%qQNd*CerDX$5~sAHLbtv&6zLvYIoR>7)Lc^H_Q8`Q^zQG&`_WVJL9wj+q8sR zr}8ttoz?Rcn0TU*;PGdoEv>xXz?3|x8cPP%w38Eq*80kvcy}g~$>a-@3_W_xhG==} zE}R2VXyC+(`EZ(0NRN`lvk9#4Hp>lH@)q&tB-Tx`M7Fb9%8-K;MY1bqg;vNg9Rn`P zIa23d!fjp|UXy0Fzn|_yH0O}WIILrjlJx$}I=~kJU8yz5&y!KQdqPVZO3RQ@?5aMd zlv?9*czsh9T92cK68|nd+x%}tW3 Y*>K$-^U05CAs=gG?QqbM1OanTN)%PO^q z{ZbNB@#3ARcA?HJQ;6S{uX_!{jGUZT-nkptS<04fFl=RITzdb5VrzX;y+Ij~*Bnfm zioxj9Z{CEVb2*WP2wl#~NOi?6dt1N}Q&Gr3GuGG|dD0Kc`@{p+7v23M#;zkcgMgZU z`fi<~cvXAklDHIPcxbO+1iQ0!ceRdDHJxQ*EDI^>s!qVSpiv;FblEcIZloeZT*2{O z!=xvS-N58BtOpx9^Xq**TUs|8l`tbB^KO4Zd&)u0P=L+{S>F6uN45n%tf>~Eh?3r1 zvS$l99~stz<6RVqWS^-DDx%pBWpYyUE^pvTzixg7DFD6q#6rh?vC@1}ReVH96LL{n z!^2f9nABOhs<)0plpQbXu0w^8d52A^_lC=()nH5CoAGUT(tA{8>0q7atG8Sk&HB|} zUrDwKVJeB?PxP>9atx^3$i}_O&*MR~bvoPB@6}6AleVM{eBEf@NX%W|nF=HItW{)V zAV(*Vf5>l7t$>4q%ea=j4Oj=(O~Xl{Qs39QJ-(M;wEYo}N9LlD4hOGuLQMJ;Xem;# zDL2f(>$lVPlu52j(Q-XaM(>d_Y#CwmWAeelI!W?f2|POH_?@5eT=CkA(CNFdo?Yo= zdC-jXzRoTEBGn=ld^fnBnbNcl#gR_ph7{yl ?DEQ!#o=91LIT zHL 7VdAjL1o%&cO|DBu94SqDS770` zSrIGy5~i<9p?~tcQ avaNP0gbT8m^Kl|M|EgJ5oC!Lewm5uOkQD};*7WE zQjPSs=wAZXh(WN9n2#+=@;tR7zcYEN^jQXEm0im?8Ov}BTcy2L@wy6UveoQ9lg`}5 zlMS^n6q>eRud;(TQN>3U9EBwGrFNN5UB23+e})gZFsn!xG<4aOM3|hi3yGk{?kmWA z_ffaD)e |r5e%dLw` zV@r|6QLtB08EmD%{a&2UC8t8dM+gxbSAgsN@L9M@3l!1J@bp6}pxv5Dd{rYkn#~-3 z98-v1W1NU?Ix5&wQN1YMzXue31$}eW!Vjj+`Ec#RtcRq^uYS7$JL;r-6p6@Uy|LF*sDW8o*BhUKs3$kkc+r{W+i>=T=M8LB zfLuF}QLwv$B#v`Oc8)z#-;Rmady2qdD5FlAQMJUt!t%)b0BKtiJE0eAE1DVH^1Ih< zqHM=IkOz8wqg))V7E{ni9PTA}4ng(jbrc+iYk8-K0%KAmZcE)&;j~u_)e8)-)F_A> zJJHNVrDRL&@2&c(t`+eN^ThC_)pWct5KkQySy(W44G8A!8LdzC!MJZjzMwTQF<`6u zqL9P{^rnui>M B3!D2tDBPg}|HI_4LyB%0H>z9X}7z&9H zFJn+JdDeZn3=RzD%=SU+lO{^Z-RV&9P*Sd|zxEcz7!mLFho`Mz`#2IsNTf@6F1{N5 zDu2;1q%6i}zv$z;g%96 lU&2)MB(w=a&ALi4=)Zb&mCh1X;JM=Zma#V~=*~^>z zwwocPA^bN7B&Cu`Ha1v H^lEV6? zU=&M}!aNjA?B84iR!w!Ggr78!u_SpvKJ-6>=h=nCfoU(cRCE|`HMM%Cxt3EM^tH)x zBysw_%ld#>+8r9b_bDMYNSGaZO@W&)$VPXwFsnpp6Ps+rLAps6(ZM#Lk!k9jX6UDa zPqf~q<*NcWDRKQ+JBGC&PEy9s>AYM%`9^SQ;%;1OY6hA@Z8J?Q9BPhSTVV$abuF6A z%Gt=N6oANC!Cn2Y;TZ-VlfXByR9i z=en|w5&hRT_o3cqu?8VpQ{!p@@3?rO2JYjH?*o)0`l5#C3+79{6%fYCSsjcwiajth z;IND0@c*p}CCQmG(Oemi=;!@VkBtA2^O#N;XFXzhFn%!ke`~L-uWXKYF8X8j6|y3LlBly*!>QuEq+OjS3v4`30aYx$+1Z =R;hNvJPmyeJiMp*WWhC2@W^=={w-Xc!YS)_xo$~ z#f;&xVjJU%-7`cRc_h9~3d%)nH$-cB)yf$(kt*AO YxNEnHG?fyh zj$9z4)LdvvtTW1pijJ)dzb#$0NNjyEjMhVPXg+ZzLKiUYK5!bHhlyiA?uy?_vr=WH zKQr&*d7T-eCVy+Aq3e$vQz7CmY!0MybVBKfm=^^C_LS
)dL^h-CD3xdTdx( z$#A@|=?
XX1$OO*TuY4QMS^IUdEhc^&ZITXJx+H8P?o zsY28Sg24N?A7+{g)@{LtS`*U~Sg=9x;oA0jxqqDf@= )|PeoJF34%RS=BnH2Qz32GG zE~xm6bor7(%;;|Fmov$$uk$*JI)JgZ`xYg|@&vG8{~*#=y|<-p@aZ3ves_SF4LNVv z4;w^yaK`KSKX9vY>Cw36DC5z;uL$t}Tf^5&R^{Q$8){traQnB>SrT;3w!}ivrPEEh z+_&7ucj-qN8shsnxTT53;tOw7^x!ERo}8@iI3CW$iMxA`m+J6;P&y3mjplke+Kg6_ zy6)Pe23+O^nQ;{%R=?fL7KU$mV