From cfbf50e3ebf9be36ccfb353675fc89730bf1a24b Mon Sep 17 00:00:00 2001 From: Maciej Czajka Date: Fri, 27 Jan 2023 01:30:57 +0100 Subject: [PATCH] update mobile app for iOS --- .../UserInterfaceState.xcuserstate | Bin 69573 -> 71521 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 162 ------------------ .../plate.imageset/Contents.json | 21 +++ .../Assets.xcassets/plate.imageset/plate.png | Bin 0 -> 59477 bytes .../LicensePlates/Controller/Api.swift | 66 ++++++- .../LicensePlates/Data/PlatesList.swift | 2 + .../Model/LicensePlateItem.swift | 4 + .../LicensePlates/View/ContentView.swift | 20 +++ .../LicensePlates/View/MenuView.swift | 2 +- .../LicensePlates/View/PlatesListView.swift | 32 +++- api.py | 28 ++- yolo_video.py | 70 +++++++- 12 files changed, 224 insertions(+), 183 deletions(-) create mode 100644 App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/Contents.json create mode 100644 App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/plate.png diff --git a/App/LicensePlates/LicensePlates.xcodeproj/project.xcworkspace/xcuserdata/maciej.xcuserdatad/UserInterfaceState.xcuserstate b/App/LicensePlates/LicensePlates.xcodeproj/project.xcworkspace/xcuserdata/maciej.xcuserdatad/UserInterfaceState.xcuserstate index 78b5e0807fef87d9b9d8e6e1fac7532944dc7739..ac57e0e2001739c128a6d7ce80ed026ab671dd4c 100644 GIT binary patch literal 71521 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 BhJFA5 literal 69573 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 diff --git a/App/LicensePlates/LicensePlates.xcodeproj/xcuserdata/maciej.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/App/LicensePlates/LicensePlates.xcodeproj/xcuserdata/maciej.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 6d6c711..2b5fa34 100644 --- a/App/LicensePlates/LicensePlates.xcodeproj/xcuserdata/maciej.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/App/LicensePlates/LicensePlates.xcodeproj/xcuserdata/maciej.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3,166 +3,4 @@ uuid = "D6BB566A-C242-4B4E-B55F-1FA78A3A061D" type = "1" version = "2.0"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/Contents.json b/App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/Contents.json new file mode 100644 index 0000000..0634ddc --- /dev/null +++ b/App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "plate.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/plate.png b/App/LicensePlates/LicensePlates/Assets.xcassets/plate.imageset/plate.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ead0a40632bf50cf9657b9ed50de1a98b36868 GIT binary patch literal 59477 zcma&O2{@Gf+dj?^V;`yP%tVATw(QFoWoNRJkZeiFo;{gL*2%tv$`(SAeeJ1`HT%BA zpdtH~{rB;_-}iaH$N&F*c{`42ZZr3Nf41v$UFUUP=RGfOYOBytvQQEc5z(lrUe_fe zf?|n?h{K^|;FC8Q3o=AR)N=MpN;lP%l;AgAoo($O*bot^zKAm-H`e=pA!$4r`Pi4jox&1veolA&;*sz3LE{oK^IL5!HkWoMnWdV%Kc- zC~xRev;H{yg%n|a`CF3f?MvSXt~Exp44kb`Drkrj%UIy7H zNu)evQ@Ii*5V47hj%m>URo^jHa(*}QzKfyX*{|n9+QUd+yoBYWf8WG0FlMhX zo4)!M%C<(YaW`uxMTxDIk!-JZ^W$4;mz(eZs=rcn=U(05>=j}e-Joqo+i%aC7lKP& zq>A@{-u}?)hY+DB)#`kvg-ctpqmQI@Z zwQN}RxpUw68mC@7eW=*7xk{~L>0Tp?sgX=!V7b~!Zb9}JF%>D1G_E0@c1=+n=Du-l z>$8A21~y3~+)V0sr|8ZzW$y1j*cB%7(9h|xRmIOMl7S{j&U1=~3qk@4!@<-h&MzNa zr+ox*;ee70y_nX(NhH<>Y zI3^S|f{fnrq5mlP_FrFqcF~FRz6$cCZlA7J_(}05W(D^!^~a40IklS?5BXZ5KhA6h zpDR^8`goz@Qm^~B0~hCav~e!%w>bx=1%+rCwx7N$r*|RY%cd>O_C8zsrqZVO3foo*Zy8MHaq2hiyK^78 zjJaN0HGSlH&o0CN?Mwc`#|IuXH^Sm(Vn{qlk3uBe?Xu#oJbdr*+hhOYvH%_vSC>I7 zU?HY;rMZniQ}ice5XO$Gk~ZU)cBFO(k!n41ZD1gUX~>JD%l@dNeUF4_c{(^a_<6nC zn?6Vb_w71V{n)eko} z9y7k?tRYFKCq*FivCn=X8bi+9eJ+Wh{z^`9{jZnC+-KC3MCcJ06>Z_`I9Ka4#T-LV zdf|IGTRgWb2jRLC*O)4Djb#UW_Z?;4QW1gWHF`Hq!GA@&_^Xot8ve+b2U-)ZtHWSmqj&@if|6+8CcPjOeqxx*~7!t?GmP zZ!Ybx_LA)7&jln&F%6Y}to<(3FOUd=9670Whas9G3CoAo zMW3;h`3d_e<`?e+T@JbambNSO7j62tb9cpEq+NtvNIs@LdNQcycbyIXQq_lBCR&0o z^ef_gw7S}YYPDLEnvtqpCY^eVdZW6wx}tinIy&oY7G;*1dQ)uSWjTXgO+#K&oZNRE zYYuM~Z$59<%BOxWMwJdVyIvdX)bOpwK4`h!a!Z|kMr?*-CZf2wIJfw@Yj`orJ96#T zOl`|tY;~MM-o3oRybt<~`KtQy?|$EudgE$3LldW7nz^f^m;1E$QZLIq-#p1Yxj}MX zFu!SBj!es#N`Oth;J;_VjT{$J>2%U?vveL6Pt5z>XXgd33=AlcJB&Hf_PL}glBSp#*N`L^2~Dm^{X|=dp`DBF5u^{^bHlcDb4jjztFeQ@6(4V z_eNBROw}%_nkksoIVCyOE_sY$eB5hMwQRLBJ`q0Kn=byQ2TTWiyR4g-h3$x57Q(e? znc@fd!$@S90-mZ0SqKDFoqZ3FT~KsbY>f7Q)FMt-pt-^zidlgLS15DTVQ)I z+c--S*x5z`>(4`TnAV+)&l< zZZb{RGs_sOlFzfnSMM*}Pq8tz_x(;=>Q=%q==foQ?FQ3~u)1WPPp_8mdEadRm;MF* z<-w6k6-qCZGQPBS&1UGSAUXX#HzZVynr=5aMtU{fi=<%J6Unw|bKo`QE!4~Exn`H= zhFgCy$1`Un=qc!z5FuE8+rE&#km|OnS$$Py^^39jQJ=B)v7XWVQD>1)OkLsM!reGX z=>nsMI8j{zrOkH9wr;~~gK>{@EwFRVy4^Yz+5mY%(gKl&Tq9wC43Nu1 zMQB>6^JwPjJZaK6{4Qc)XD<}X;(11J?KT4+_LRny?4Ff9&BcCuT0rN^-+-6 zh2}C;9u4~xa!y%XIq0%yZ_B&AF2k;v47w(m)mtlmtF*6?FH-4!#Un3B@HrWcRzEuW zleOx_@ScI2qTt2-7t;(5XD4{ia2Ke~t8=8vitgME4G4v2@x{d^CsxUM+_^nj(KqeW zSRILE543vHhs|Z^!1Sgk%B=q4E>(M_M&1pzSF^9~u6y`avhP)pyQhzVk3zyXvoHRi z*QX1nHrHx*1pZ(|YeWsLWm`8oZYK?;%%m8+?Bl&d(NAS=^W56GB_N$4u7t}@NP@3i z9>a&cT4eH$uZ_NJhIIzhzI<-zh58M%7&+dev{582gEJCE$#YKZ{Qb|IJDx8}@r-I- zFEKhcUC;Sm=+SESCGx)-mT&hQert~j3l0rTiNwrlJEvNTSS^JwCAB4)+9FE2?Mgeu zQ{)0YJ6}yo$;|1_&bA%Ye*I{D=AW0 zKYXxyx&GE8tS)Y~MKD$--Y7QEq|MCl=YVj1;ep3PwZ`bkEGG>KK`ucC!Rn8rUOOG< zSp-6jWN$HlEVexFZ!nZsp3hq#Z}C(2qdkpHgtgYd@JgxHLfgPq(`_67{@sPR!?;ZY zGJ~+Zapy_LisCM3t1+H0S~Dr~ju#%(m0o(Jp;T()@y&3m|7`)L?2?nr9_w^@^5X7D zYkA-pVzjGN)YHy1!dI(ZFxX7Pq3f2KtJ_d!sMc z)8naI@{&R%zG( zSCQAaYK6a8qTIZ`Yb^^_O?Y`gWdK%+f#`Hb)quxIy^I4m% z!GSvmedFn)6YJ{x_g6NjBz&AbYdpM1q+xO^lV;=9oy)EAzx)SxUaqeG&dJ1J6fisJ z-QunM_JMe3%ZVkLSsL0<$-9xijfjG2+M9_cH))C9@e%!)JPa4nt~-ihzBp0R0{eq8 zu2YFkVkPoeIg-n!I~*G&y|XM{aqwjK{xoq&HUzdzeA903r}!tMm_>msW$fPL_AZN_ z_3qF0!aHf}&uaqZNpkb3{_N}{my7)3sugt-Kt2&_W2|PYrA5RKj-f=P#4JQ-z!5Qc z$rH2wbF55!nTX`?&mlxa&+Umw|89`0FfqJ$eoK@3W!U z*ChXaOdJlrBU02;Qd0x(dRDGBHcoE$oZV{`bBw?T6c1HR+=z%STsnRctLbvDfcp>F z>l?cpYiUYbIXenkT07sh5q#wM@c2GNvX7*}p`(qvCH#@&11C4>M{*bcK0_KDAAgLz z2><&OcL%wP##%SwO3tn}aB)E)L7|KClyEp)*45fpTKBs0zb*%V$z8nX?*333iS+XF z67&)kbau5v3QI{zA%#ScA|hA88CTuBo!l)SU3GHf`mdY(_kFJ0xLLW{KXkWuc7h+@ z*Yd8jhr8Uxi^mQ9^Y6dK``56*0FlSvAcX~mkpJ8pTq=9~sq{_zM>Y>k zuG>3;IRkCTi%N;h{(b)c@0i>JGft!u1lCvXd(_Q|5 z*6Uvv|NEE!x=NEl(+n{AbbRDTOkrzJhgRv%ikf2k*ej{{Ghp z{=W=f$M4{U34Oo4qDe%AB2v4qsQ-xg_t;1RcV8-UD>cbrj7IE-J69^R12?G{gtYCJ z`Lt+6?KFFgU17D8pi_nHCEm^ zy(A)rkV0W_)Z_nnu)r_G5tYF+dcm8VjuQLndB1h7&uW#lj}xSo3l1xmU2aJ|`@dcL z_iZN;XVfoqLlET`r*-afTsrK!V&yiZTWAz{rT!`f%=jU35bjK%qEpm=Z2g~(@p9q5 zz`ZkZ`}PpT*fSY=SP)Jy+ym0e2m0`8x!sK65bXJWcGO{q+w5q@-x=CWCy^3o0nMwafTZ8N~mxf&Q!S z4P0k`ok6#_3$_1%_q|nMQcT(1`-`^5>UM>;&q9BpRNHRirfLKwO7s-ZMUH{0Lag)4&@} zxRWi0_v#N)wE8cu=W=V8k{eX6p;d>B1h2w$xvx-MdHNXDtXsn)p?0#h#GC^*Vu)Pr zqIvqYke^kTmaruAedNalVn_}TFt_`kSa?qCe8XGH>u`K4|Duj7=d_~v0+|AEE8^uU zg7fPYNC@dJm_~p4`cwAc8bk|jJxWa~qUr(XR`8;IsxSO9PG#jWso^a!gIN|u&$&+S z#1$}KCj4de#+Sf>flo@>(~~Do<*ejivBE0%=O%-6+?~p?Z0*69+&PG!4DZVwG&avWxjAk9b1ECbc~tJZN~Oaa zVYV*%QBHaW^{n`Zx?`%FGP~w;Mm-P4b)DtrJv#O)0^s;=C!Zx>zS<#Dw7I`WF9lXp zVWc7*Cbj#e7vWA#9uT=B>P~-!hWRj*<5+?2#Z` zR1L6^G3&*YSob1^ku&Hj_(F;KW?1&LW?EGb=hkNVcSTX7yf3_C!iKJJ?n75bM-s#) zal2)gw!A|JReQ}Y*Qg{HZ0!K}QF=5fn&W5nL%x%DpX|k;cMnwHnZ4!td0sm%E9`8Z z*G(m(*0=~86&fkqTy7dr`OW^2r0X53nOIz)ZbvZ)xBq8v_jV_@SK*Ry`|@FS zRmyB2i-+@-g5D$JDwPB|s+x09lgWhX{*zt)LurW4(Bb{6DgUnvpDwKudPdyU#Pr$4 zYU`cqh77N|vSr#kcHiSjf8%8?>Z;Ut&v}5}dB{=&`J?6!Khs${Q3^6GY3&1SZF*m$ z>wWnG`TO&Oel5LQvx%RrvB@>%UzKdlUQ1chGXj_S$8eP46qjiL=O1aJ!uEO@&PfWR5Qpz$`9;$G&Ue&(&y3GW%xaoj8wgj|a5l6TI* zd}~x2_~lest?#Suaof$h=V;zyr&`XXxS#FT_K)xVxmy=@pQD=5^&Ao^Cwr70SjhaA z5?Da7r%j4`Ze4OwHL$R%nlynW@6g1td1u&}-(u%^zN^I5OM2?Qj%t@D-SP;jGTOA9 zFYr)k8FPN++I;U^;1^@$+^5#!e#Zd5>NJ#Uy}%!>lbelW3`yQLAw}OG@cH!o@;5qH zn6=E|QqJcU?fp8=ov5+PU2{0qgIvn3)cgCH#ul_6ZtDeU=Oms@>{FU2yZ~p{l+!0= zy1m@2xOvr0D3dk>zur>$F&wXYkbfxu>%Lxs`6td22%V1~ZOHC>qs@lItf$=e3O9o4v#Ts?`?~B4_G*778JM<7M#U!Cckg)~ge*Ww`%SZ~yV64Wkg9O?h*8=GF3n^Xp|-IDL6!*84p% z+e`C8s^Qck<7$lQOqtGszFcPh_KAn{MU8~cdIp;vXcD#S59@A2r@WD^AT2MXm4Dos zygK3PKm&HW#=;sxN2=oPT5Ig#ro~ow=b;Pl*uG?zsRd0>?VinUqWNWRX-mR0gBa0a zvwOB6Dh9|oMgG&J|9FstfO#zKkRY-o$7|oHMflyf8<1E{XMbU*u>aV< ze>`mtFD!0p2ZE^W{)6wxW7(-otwpJpDnymRMw;l!)J9glkY)k4ICH(kSS}#Vos=8d4EPoRa9M-BhGfd=SZ&9O*jyWy)x_TV)ReP{^Nn7i348&*Bvtb4 z&Pi8><2@;`_*|JHo&f*>TyxM0QfTv&XUqWE+(^jUZc zJv#ZOYGosF`&M;YK1}ThZ=J)kvPJ>`Z);Elrx+L3Z_8c* zCL(8}IWiB3Bs$}o(qISzr0MDVe{_8|`y!ZL&UxGtW)7y7pgkRg^kRRwA>>k`lx0N4o}9k)n0OVXijLAb;Ik?hC?MB4N6PiKg2o zc0t_?Rb+Ha=cQ6&JKF+5*y)QE7DlUv@>w?5vv^g6K3Q8G{8A>taXKO2Ax*< zDJ9KUFiQd;sA+zf$UG@JoAX@)UD7y#@nq-#z49K_TRBIA#YgX2rdK^Sk9+chHi-!ZigbYF23cEvhsi+CISVs9Hd}tF-!>j`5@fppYmzG6O#gC-k^8c z={9ig>~~CGp@;+!q)JKAf{n4l5X3?+#hh0i)RnAB12Doa-AL3Yy8@` zK#z81t(70IEO~0Sc;MTr*9hF@?-5t4lkHTJK1hlLv6F0&IZe!nY`VVQcfTlPT;Qfr z5H3Ny+thi6&q^@6-p?u!jwfdPeMMxm%C8A?s(* z9PS#ydH8V|{^w|)8+(^;=6qu9`8MjD6HX5$RPIP=OlAV_=Dd`he)x$3>!%Mvq;wgj zpj2BxmX*$Y;N5Q-_6cNcFUOzxo|a$J!=T>WZGx_@kg*>+v@Dx{DSK}dr_ZEz~^;uY4&kj%03p}7*-YgovMV5YxbCC_|HO=d$eZq~G3kG4W)v!1v__I(xY+Ec@!J`+7XGcyG*or=@}tTXSGYiXIQVSi9P|BgRJ4 z{lUU(`DjVZ-h<}Mu+xD2KCwSHx#HT-9cPDp4g`L8vzic0SJtf}u@);V1!4|4zFr!p z>$OA(>piHf9o2oWby(Y{Cq{w2^3BvO<`fIK9CSHd0T2!9ftrkMa}-$WZch+V&O?V( zoehF;Vf0Wb#vmM1hNVzOm4a1|5{0C<)S2vRvps6jT@|TMSoCppNvS4qWni`{`e|j(yoVTARgWn z$rw;*jDa@2P8Q@z?z2w#iKOVaoHJk6FC$FLx4PR?dtlz#1J9KB|3$i-`{INx_1;$Jt^s>DI zMS%r8A|BeK8%T3)L_SK7(6_m>T6>!_2sh(nu@rwYFy@6noC?C_`to~h6t@}d+#khh!>u1mm{rPZ z8x_T)nqxMh2zn?pHTe`=?{$E_V#b}zX7leZx{;$Vp3{w@jxOr0zE$}m!+igJ6mW_Q z5|g{9YzaI>haexsXO-<#&6k$I;$vdibp4Xt;e|wTv=!D1^^SJi`|RtLa2(o*Ba3HH*WI zLPMvwn!?sWA(lg&V#rLwdh@+Em`AW39a`-!@*Qn-F zD0bf%ZvAsSf%O!;LjeV5ZApS~^r)eHiZ4!mw?arXHLx1_| z7)GI*Uu!aprfD*-ANn%p^H~j}RHcNGZXb^xKMAa>=wzY92k7iJ?+4-N01V**rH;Q( zAviehonI+#&$tLHes&}%D{>;xS`ZWpgj?q+r%iKa8Jp|%2jR#+0=xv;ZGMBRCald! z!`8M&7s+=(E4nHLAg z)D4a|uZku?ARRNy$MZ-Kfji0)u-Ijv+yCj@?s%4u$bq>5`%w`7n$z3J3kk^2Uzl(RG($y7lT4C+|XIuAq1KI3-}Z zj4k8_akb}Vh99u_zFZiLxThikD+boQ4*awuJkvBB`E9%SL6N;ztY%i~L9bJHWZ_E~|o(w2NFNEZ6xj+zE zD03wFjGe4zy|Ve1mb1cTShNb%`{E)U);)B^j(T>jmG@@V9AFb!Iln;>>3D#A1$oGo zT+>?vcYb%HhvI4O`d8`AMTG6pLrvPYrwUJD6GI_7eQ99qq0=@d6Jx(8RbtyyzGOSh zm1Kv12LlSiN!)Eo?7Ey~nN*rlbzQJ=4#@QaA&+A_B*r=y zaH_Py_&wujc|KUQMLgY!h6&0PcREn2e31z=^zWzK{ z&;CP6sh?0r*Jf!bTkkqqjE=0W0G?jK_6%D7&t&UHmx>G_h6ff6(8;ta7XT5XN4rMh zj(ype=2IYu5}Bt3r>wkX(7XGcV4oLax2f=S-QUk_5TM}b{>KXxl2(eEX-;;qlbL7U{&nyn2uJv!Vk(O)Po`R36yCfAK#L6) zS4|F_4n3uP=aog1!V=UA+YK6ybI|YpLLf8SDNjZQ)hgH!&=uK(jfL&mv~ns2f}I6sHf`;Xq!W;d=dHKC|e4_r1t-SxZg z0-qHrx;VR&>ugA5f(leh7tS3qRl!D@p*kbUysT)r-3Ez^wvm;$7sJ|0|vReHK{xX0MT3X)3zOo*L&R!PA?X`haQ6hgkP zGNBNY9ZraVx!wdg>>-)M4*`P~f?rNxe>1F+?K7Rubg^xE=8!PqV{B_6IC zHy2V=P~g*&cow?zDSP7h>5v8ZNqJ1j1zo3+S7H6yXqDiO1gnw+wY5Q;+e z@lFdM-GrskeMDky>>B^=%glnM{ z-7;ncTuR_IgC+Tm?|Y>yNp_8muD45X1-RepI5YoQo6Soh-m81270ioENzyT!;`|De zp&G2I3?+yQuP3LL6%>}CC|EbsMgCHW2^bhMs?soz*FifuMgU^W6vMo}ZIK=21nPr5 zAno@Ir`3&s>5`*eMJtE+)uIFS(`(+0AX3`HYG6!L8Z zWgFi?M}gfhTArgvcjWw3h2x33uT6})S2zh}sym9w6%71T-+m84R8}{(98*w^fXf0z zj~~z|1pWd6D#b;ggO6K6U&3(s-OrK5&E-pfE;KTSKCm_fseEDnBRG@r8xGJ8BGO4-JVTOW&NK_An`ei&0 zr5Z5n=f25kQ8@>q_u)^UG?8qO==EU4ft!a0iv{5T22XTfoDFp;L#e|5oK{hILiH*D zp2_*^9SU6kiQV!zSE>c6rnyfpKs8<%L%l|7tNzHuYuVJ@KZL|1O8a)s%z60c@Z9_h zZeY!|d*eLii~ROq&IU}}o^gCu0EdD5)asL?%Rrtnk5YB7(uQYpT*?f1((UIFwAGX= zH~vEW0T#zF(+iXdCs|p%BD`ge7x?zvFBqF^Esg$X0djw!;#dpVq!*~>zWfxz;&E~Z zHr@=Xxq{;jVmLRYWrAG1YMEdBeHE&_oP8Xr&SZTbi%S%l{Q|P!2v!+F4+e0pYwp6+ zmJKu+%hw#Wud#!4(6H9ZTmHn}K(EvS*V+k(=|&iT=pjWfWeX&1cheO*WtM~B709U9 zSmP;3qar01-MYP+bPm*j@G7OP165S9H&uI(EuDPvBAXiKwB1Ig(;IseOIZsbMos`A zB_ThomhR^%m>vE?NR1-T4@j7 zigFB~(|BjlAQku_LEA#1%id8106p<04=%JM^($Kvz*&G054a>f{hJRYXeh9kE92T$!zr+uY56ejXG(4p)g4uP=@Vfh9<=| zUfx{I^E40m>hEb-ydHKgyUV#%AXig8yFwdI9dv1%jEP6lyRhWYT~1( z{63IB{5_(nrTF|bX2Zk&{i6QCYvnRN_QETz!aH8HkMQ;F?%OHt8#$d4-JJo#sz*&n zB{A~5eagG|urNaZ7?r(qjm}dvFjCr=cyZ}P{rs$h!BT3FY1%x}SUN>V#mf(iTl9t? zY(7Qm!k6bn-&Q((t}&HBE__rVN0S)Mk9s*>FmGYj#bhGOvov(W(uQm?zlukGKa3#yX%0chxI#s2T;&(w1xrPS|U3xR~gET=d+S_j1Nn&1+^hq@fGJ5|5HHWSJFs&==T99 zfoU5d+-_vDh`*Or?r4Ik6DTwA!(0_WVh>{7`bKR;3ZXQtUR}XwRw0X1KM1Fg$@^^E z3j3@o$mLanLVIU-@=P*?*w|~9O0Mnj3=oUDIP=v)?%Dq*3@Diq+!N>= z7IV96*-H*TXoB6h^i!sLt3v7-GlD_Z^uQ3*K+@`}S6zG-zguM2S8iay1{jJ^$ZmQ* zl6v9&*~EGOn2(B8V;_2CcyD`~(mwtDmH8NXtQ+r+al_VbormrKMWN}m-BcnQ6!^i7 zA1>imq8zao){85vaaJNE z01WTFCr{=A<++bc;@!3Gf5d}%SU=af%l+W_JAY)QRS!o%zIh#PEn?Hwzd%n-AVUM{2n-D< zv&y@x-=b9Cl%C#&L?kSlbLus}Uv3iT?(0p(FNv`kG}zI6KoXjRp^&2k;z78b0GJ)T z?YOGk-~F*LT-gDsJo*%b(*boJz;7sw`8a~0zZeS$+O9cQxHXeqM3w(0jqJDi(sURcY%MoQ5S_py?0LZPO#nm#Za6;K@#J7?d><&-vI6{_ z4lhGg=&-UNcCG`qGgt(zdfReH3HV7B0#D>ARTp&%Al2+$*bpiKdPpC=M!-rMN_>ns zc@6|Ffz(*HsOL-DSr`;#ZhgoHrq3{3(I&BJ%v;ZF?& z@f^(AzPry%oDNHbQ_jzaGBhHFbE1()=u@HY8W`M_2^qI0Hy}uD1N+1qEW8oix?>#w z@MJG|R54rAwf zmH+26=1~)=8pn!g`n;?ejX|n(CNx^^7R*tjwP%>Kp=wv^A=2k zP>4h|w;mg}y9~|q5qsQ6>2#NU#=oAQysV`07;vAR@g$ivJro>l><+={)8?rb%u{zg znr;OSTK+E!F59?y64z*M%j?r~@F+#fm4IQeorQXrb0EIP3e)v{dv%IZ z`Y8iwtiovOnKqD_;#a`zf<520C?;mprsgHLcnXo+2KH7*`1n)KzpcMHW8R_gl)>Eq zHe?bj@l#$~>+iw!N+&!!86tgn4F*TGdv~<|I~W`k`|7rH_bGb#cqOphQsXhzeo*2d zkn2AGC9i$5{F z@TuiJQM!C*4D_VGmi+zabt*9G_lgqRAt!e!5g2#U)QZ*lzlUJ>(ZZMKWQW7X^8p3e z2CX86oz@MBghS!lwLe8YC9Hw!QFLCk)n0p0HnqPkL6!ZR;>m3rBZ5S!u+&X5_FQ9_ zIWn)Fna^{CYE~er2m|FAO}O<_>A{P#EkQxJB2ZYW-MqE?O~R;W+4Jb4V??@|48d<$ zE5%-xDa(bWzdW7Qc(xN*Ns>jnFYk$xi3S(aSvu@jX1(;v(3#E8!IvxPGB(W5paH@E z3^a{QMKwEz!$h9`Zu$ZR)%@G4_0`)28|%*VsOC)YrPlI#~7l!wTQasUvBm$M``6IeEsB369rv52P$$# zwP#ll7?+zae;!}3Wv@d5k(r(rvmSsuCR)tv{{>eMV>vjNzP5|q*vW0At(ZiVI}OZJ z=-0x}Qe{c#n{l6|(KEZm;fstM3Y%GyjM5O*v{;h85QMYKr$-k8q5(jOYETy*p@$9u zB?_qGFZpI|{x&M?t4EKQH>86q38Ohv_VLq2UK0RoPfE<4rel5pviEdtIR16CH;2pX zRFPTp*zpBavzLT?B%f74Qh+(MymZh3$KevJ#)TYqW1n z0>MeojU7U?Kl^c&{Xr8G^>z*fQDnAnu-hei6dSNI=nUj%O;GFuFODh>KI^K|4ySwp zL7|2AxwQDESGfv32Zb}uR?osSrf0eoJ@3ZikX{^^`ud|q=o3E$v-&tt-pZa>4#;6a zSo87-4;Ltt6SSEb9Ir(fO-IF2l_ePez7~Z07ND?nn$#2yvssc-hJKg$QB<`ZI^9#f zkUE{%n6dYr;Sv73jPkTE;Wpsk+9okzuS)0vu(Hz@SO}5@r+tK+a83Hc!R93m#enYK zjku~sQ;Qox*~s=spSl@%%re|G#}ky;0QAd%VnO(=1`E$PA)653v(N|1ojCcSgRoC= zf;Wm}2LKugU4Q1{I(C0d+o|Gqf!oU)7U!WR8xr`#lSAjjDZpfcG|RR5>ThIR(=VD@ zAyxTWN^Ce6pvPdY5)cF+4j$}_*SfAs5GKrby{mQy>oWy1IssiLQ@iFX%5vQxVL$q@_dp$tPAzTq;w{Z2njnAqFsbMqYIZPNTbu zy9VLs*1nIYH`QZvdOBVMhjN@@i1j_RcXJ*3W&vz>-wRKBa(I0B*D)1afois#S>>p zvLl9=CNLQ4I&CAsegwK4#<*`zwQtPL$!lR~6)=o{^-z7tv=i9+ z&u6NaTrxh%jH^!kmP@M}_2xNP8ZYk-JeZXsY>!N6TZAKXWTu-ki~t93eU2RnH`VEu zw|)-xA5>BU?aDD~;yR_<`hb~S4~LzNTgg-A$Xe6ZskxexP?{~Izy*t5mgh8xs)xP7 zt$Io;RHO)Ij|lTOGZH3V?a9j3uHFczT{9RC?^2qdUhqtzu*!3+gZ4tQI%i%f6L>d^ z_gk7~P^yQm8Q4+Ibc{vQCt={|Qsqay#T^&rQtKkS6yNe13TOG<2C3}aOr*KAuUi2$ z?Mfd|)#jQfq?`h2)S%aGd?Qh+ypuW*#6kBXv)I6gaPD*?Eq2lIh*hQ~mCJZ@A6b8P zu3*3OmbfA=YFCM})0=kN?z?@ewwfG-^(Pc>t?O(N^O4D zhyP#ep2c!1K;zw*(O|Aj&L^SQGJOfE8}$LV9k1(S()hCdzQ6Y2%cw%0^$=G-O$37? zu10e;f!zMGU3{Et!Dv;d4~1s^-qt{7ls=ocFHjLZ!$-`7NI&V_s?hm86arV}VCDvO z(!F$$-Vci<7KCKuC*{E)b0HS?=j0hu4b zg22h%Qoa8d{Oa9tRyiSUwgIKE*u>_{#jU|h#(*F?Tf<#`idG=zd`R@R8h8Tldu`~W zSfBkjUdf&Bs5YdCbklX8qqgpnMps!|EZ-Y0q%G`xSGIRiNDsc9P^M7ku=v>#*&-*1 z;fhh1X_n@XF2|Spe8pAS%{nf+Y!+o5*P%iO@I0qDzi5cgnRFzqIIt!0wkq=5Mg}>0 z`1!lm_2B#5IOFAKih04wWh49nzImlU$tHax>C3z1maN6FGj>PuH96zA%71tk9)7&U zp&Osoo^^{7d!=u|wd7LUb+ui13dIj+lsasK9d3x~{ zcdATp#7qP^gFJ$evkCY!pHceFmB}lU27eSg!0J=R?pdx&~3ILod4$PZRXB5 z5nEfdl-Lc-;w#=yO2+yp$ zZ{Op}PFf|G5iky_260Xo?IAjmf~|u(VARAhX^eUun%W_8xtwF{shg77aoF=5%qSFf=s?VhJ%oqU~B1y+j^ zHEy((;26Kae{(Y{PsUxwvg`5zcYMrPyZVp;ZR#y;+O%P5f>%#!nO7U+aLwI1kBEp) z{rI;4Kuw|{VJiLP5Uf%@i=CwXblXwt=8rC zdks5~2Q}{{0|4h&^symR!ock9NIs?d@5={#&eES2@auM^I>Yx_ew7W3mA+f}zb-_} zbks$d?)-}5$6B-e^n!wqUX*`QQL6HJv`_J&hi?oHsuU+25I?pujPt8*RA-U>+R7n+ ziFaFA*C5JWOqdzf_O#r$QtNu#AI{y6; z1-8wvQ~cx-%AL3~Z~u-j8XFEj$A))^&uj+-)sihr=sPKC;AJ-(k`C51@$+i=5L`WZuVIE;Cdr+}ff*Hlb@l*N2%eQ@)nXINmYC z@u&Z8v+MQ1z#%8K*Bp`A6H0HR;t=w-WXiY7tD2Db${U`MUx+%&hahC^ zg$5&=YEuLiN>a=pStb^mRpZ9}=W;jJ1ipx|jA?)Q=_y*EHJ3sKmb1QLeY>?VJV=qZ`B9Toyc7` z_#FSf#hmYU?*cctP}_N=J{KH*vAh3m& zqdnQXaDbn@Si8fe0yDlCRJHr{{-zQ5dc6slZ^LaAh{e(sWayc8YL|GC=shH)Ob$76emVZ}agd+KJ#Pz4o3YvIGpEjQJ z$K?4(#(9^1V_Ltn z-2|v)0B5;6{^GQ!?wBb+;lQv>n4XFgLK<%hE~=bJuRew7q@bkk2G5dN1>qRP`pyNF z0IFV!)ywFVG!t^noKI@FXplyN>Y3{mao&@Q26v9BW5d+~pX|+ZiGU!TqRMbz9NyXJ zkildnSa4)@{W`8&>h)b$>6}z#r_MhajvHSDJK~a$3HWiAHxLy{?5Ni9%7Q0U72)`s zH)T%TP4Evj$90pvrBSIM`yilzK}L3`3&R&fa!_Z>}3fm0k$e7<7;$cJ>YS}ljF+bAeD;@Y2;O~nh&IT{~u-V z9S>*sy^TIeNJbwmBHE1J1wlle(FvkQk6xnp5(J~S5k@c3ql?}pdX#9vAP5oBMH`)S z`@Qe){hV{&_dH+cpM3n0x$nK#-g~WUUDsOs{&x@XdJ>R;w6|k?vW@^5M0e41_v^pg zd=wbRdf}o+p8fl7|O;W9nAB9E_z4Zu1L7mhw2{1H8K&WMv(M zzz6O>K}`MoZm7C@6AAv3h}{j8!Y0HA)RSF+=#>E0EpbHU-!}$l9$*{3c7fv;uW5lz z?p^zz1UuBtd5xG}gMz5(fvpXSHT?H=ex(dNcJggyR-`0wjn=r{tN&06kOnA+WnZH( zDQ|9WYU<@#%=_1UQB?s~15e*@L?8SIH=7NZ zN1TKTRF(q#5!v=K?msBA4*-uMitZ=Ab-3UK#uFR3N_JQ2rfNd7a&Y+HPv%cX;0G#j zH7cx!x`5k@UySwr4;C#343mLdDvQI31mkhwCI|gylY``M++jaog*ISqqE}i-{=s-RDfD54=^O?&V`^DFU+|ht`YjCp|dlXI=c5umG=7m4&%l?KeGX$}`ay z9k8)R*H2aaAjyC3g5Ujv1^MUB|M#Dse0OM$=|N2i5>I@C-^CCk-YNtku+jw{=X;qe;Y~QKSAItFvO{dR1)k`6kvjR@Gpk>U%z{O z^OAJr=$$~3Xkc<8Tfx;dw|bor%R9)*YIN1R&kM}&Am)w%61idjVKx5irA~Oj{C?bh zS}6Hil~@v7T_jHN1%8XA1UJ&${E#s6Pvt(3l3_=8b>j!II$p_}4vbSRTZ{ zY+KgMz_|auZ~ljQ0^`B}lf;GbmrDLjU;w6@U^X)FzbyA}V-|w32<6>@} zK_Gw!`?nwb_bx_r-K>5R4~!ao@(~09oqp_JrntqfdH1=339!ku|Kq#CpY7>^u?hxu z6WnT&ZBoGQTsYO1#tqcJndDR>FW#-*NXzU*g$3>D$NV18)wRyyuwF4^`lrp`r+jpq z@J#ZAahrM?p`@4~eN$ZCKvtQGtgF@KFCmJ*%J3Y@EHry`1ou@y!x6fGvMNXY|roL(7;oYXCjw+BPbERF?PE^X9iSuk&nyXjcad*|cH%v+m8 zBj|(xR#-payM!#l@7!v2#bhOmHtDp%d_D-Ca|mZq|XNT~z3FkXukynI2+1^(QfxWKxK-C3)*>Obv|N&u8MnfYq~Q z!-a7UiXEnkGQIhJ0&fTD*U^v_1Qs+-lpYpt1%d(nxIWRhJ0uBMZp~MFxbXc?{^HAV z-%D67{10~>-@-$qIiKw9IMuzF6xUx>m(_)+k(;lW92>?aXBIE}Z?@M+G90c}xuhyf zrBZpntmrLYl)noSs@!2x9^5Q=7Zj(Lgmi)EJXJgYS{lmg!jQf)>LQZ-Yq@m)s|Sj& znefXSUDVQ?SLKG;bTOXz4^}wrQZRY(DAlmzyi<`#bqG>8Mhi!iL@7G<{H}MriM#dhIunjcl0i|PaAJj6nLz9(*s~AQ`-V}K#yDgca_S9hVY+LezIZnLNMy!?bgVq#D z@`f-6HC=jr!a+6TJbUGDL8(jmuO?o)ZM)vbvCy;ouAH*euK6{Hwz9Adv13Q7c*#iT z+~NGG#E*7FZN(;02nx6b=68=mZ*!)c{t%BApA%w1*S9*le+Gq?Jci;ostLYex%jQn zem3zkYc=e;iT1MhG{+boRL1m|!$NUh#>4o&dU-VA>LYW~64ai{Ql#=EYC8Ctshdi{ zwhH;Ht*@6&-!By1-B6;Mm@tA8p(`F~^+cT&^UYDit8OlHqEp-Sz50UX+zZ-*bVV6g zM+nH7?u+k9@!NzA*_sA$5`M5fXJ|Zg-hQ5s$gCw55x?@}tF7Vu3A@N`AU0IfD57r% z1@b^^t(Q_Dcqi1)`)&5;6Jmey-s4XLUTYOb#P53*VIeIahqUVA$)GSW$=lz~4Q({4 zOzod`Ha4~Noh`LSm-Dpn9H-{I>!2ZzbNKFNliNQic0Al57jp8J#ylDhdTnYxyz-eP z-xFQaBv>6*a{fU)f@ZJfV-^-ou_xa3?J#~ZsoQ!WhDP>(=|Y(|EanEnIngrQi_BMANwB#P);nw<&jFs5Z&n`8y64bvjG~0 zRS|~)6HIDnYC#G?uqVPM3{7UAgzYQH3&lU2U&*t<29hi=Qo$kK;_)XQ z2T2ZQsI)aj)*eG7eaSE3_GU=;C0i%8Irk*-w!mX{Z_L_G$+nBj#?ZFt^q>Kqfb-na z90-2TPlzG}QEI>ZiqbcY_L%BYkn!TlwwUbB`Ei?YR6m1?0&nr7i2NVU>uCeSH;_`8 zf%A4g!UW50q5U2#+)+Gxw20qV;#;M}4CJ_XFP9ycP5J3VELuOxV@A$3UH;a4C~gi` zyARIC;A%x{BZjD#)#ufmnMq>5ICQ0Xsbh!<|MX#;TJ`W!U;KbPI?Xt|ZxW10{iAuD zCnvZv1sg2Bu^bj!2dBg$PNOPd7FQ)~4X=CkwWDD7$CAZbG>wf>d8KWM&k_I0OS1Qx zF)mxE_EzZ>YEQGNX`%H^5qGIn8R(hmP92}{8Ak|&`#w$(m`A@ldb=4S?fO>FL*sna zY`L^d)*T-JVP+pjv2TMX)9j zF}D>x@HNAo9uLl#ERSdZ@WaYv0|S{;$d?!_sB?UoRDV{OMFt%L_lrD+J@2EGh_hNa z-YfX}5i6FnSl8|}bVQf>2bD8YpBW8XsxB5gy4KwDYd9e=gphR9M#1-gCA{S!`HaOY z-_>kbg9+6wny7Uc5te^M?<`-dK|Hlb_n@#d+aUDIYw-DLn=oJwAu9y-t>U>z^gER) zi3~`$x7{BvaRs>fcIRCM+V@^xWUw?eLby1eZuQ59axKi)o_Z%s%de|c81iQcVKs07clYRDu`ngRV&nAEVWtfz;wu1ri^x^BZTLvGJ(e<-1azwYr`P)zl z(czKN<&(d5#&tkISbA4M6aUxDwwwnWBKR#^Enj`D}ge~Y>ADjaYGAz3ewXerw;7&ydhiijd0h3~cW zo*ej{Jl41}J@V)%u)O?;F?Ma{EDcWzw=GLR%26kkznKe1p1CdykLhqWf9jY++aF>p%83lu%sRpZm&M~KpHnY>TDW69CEjtSf@zSkN zn;jAco*34wOxL{gN+P4^=j3wVp46G%O77U0Ehq>qukgkoXBy?QvsbZ=n{+Y7>b;a) z$H$ciDp+?*e|&sdj02zAUKdy+wYGSJ6*XW;$3|MovYi|&axjnzSLn=54la0 zuPOqq9eP;>A>aO>9*H?HaeFSqO|-G8-KAlHqe15#R$fkuKb>w&r0?Vt=&1-8kJ)~JGWK5z`w%PH?X?AyJaU4 zj@yor9LzfV*6Mdus<9EJ3*V^u#ZIhD7Toyr_i)2=OhZ76t;B`eod1<&-$KA5HuOPl z!#cHg8@}(jDr;Z)OQA&xt~)r-?mn{Dk8zGJ2|^ZPK|P_M8HoUfEwWogWppK$ThIj* z3tIOAOu4ic=qFx=ai&uW0!P3Y}m>wqvw4muH+^Ta+zs zO?1^onV$Xzo&P>1`fSk4;K{EUm;ssV(sHQS@ecu!gU+aZEb7#T{u|}^3pw4)N&v z9v3dW^RzX4Xm`bJfv7aI1rPq5BzSF-{9zx3zQ^??Hz+kK2zjnIWvd9z6%yBi%D;Mc zq!YaYJB#ao$rry&T zw$Q7|e{aV34iOlHyj?#F-Qa2(CH>P))1Bm#XaRpu7~z%(HP11N^7PDwtfb~)MuQL7 zq{63YevMuVS2*w(Wx6hPMrMlpea(`nvHdebRLf%+!QZGPr~sz-^(0+>v_yUWw4Xsf za0`SJKN!&BjlhSdVlmyubb)?Sl0|(D5D**DWgm^aV-L6LKA(};IEWH%0M6ww+mW!2 z3wZM_>nxTJ(FieTl#Bbzu6U~5pn_a4(UzM)z0bN>y zw;`p*AozU}=zJp1bxi?G!hbW&uixasE=%wnJ63)YgeD)t`tpewk8v-lw^rJD%UKRK zv<9=1fakGqu5rDf&G>DD88!yq{8(@P3{G$hUkBvF9{hJQTLP$qz+At=fUBXy%dw%0 z04LiH0exMS(vp0r`)u^bW@q3_)q$uCDu&n=EP8pow*#20?UX_9CjVja<1=+splyS! zt+IfNNa9(%VE0+GQ9<4i)E-AFDd|3DO5e|Sd(!=UUA1zS%CT(D(ccVnbNP^~*Ay}pQFW$<4-)EfJ1zb$n zDS`PuT7e>JHaljl+B~!C9dyC!=m^pT%u$%tHV(kj9>#^)OWlIt^L&1XWg+!86YfUe5E zv>W#S8!T{sN;U5kGc-_A5y!SF;HYT(zOa5b3g{qncuHK$Q(pKsmz=Plr@%7efnzPePtYY);>Ozbc!7t>X2L<2LHw1c2(6~c>S@KQX?WawyGK%l2C!>;q$?27lO??c zTzi5zOfPSC@!Y_R=;u&gxsL2H) zwhCFS(MnY9xBgkq%4sbR9=9%=+3P8s54g@jLRX3tq4_iFv3S{fgF)cuLDD&g!s-#r z(de1cAC1i`P`05Iwfx5u;laua7Mrdd8gFHrHn*NN0wg95O@Uzwt-^QWfB#=rgtE&2~7bP|{2@4uU4(pd9K@4eCMmrPD)RnZe1hlllJIND3<~=GB zo?o*9`~^Vpq$EqbQ3?8VH;bWi z`r!CSKYZO`3heJ?xZ6_SdQDqb75JrTKTOBxNK$Z97eiF0O;1HQlNG#_f%Xdy%6D2n zjR-sYs=A}|9tkOXrO#!zzAvfMS2nkJar9vCEJdir;Zplj-#N{%jp1kmPE0GLp2U;Xo3lUT3*qHI=2HOsEH9K&x?eZ zKOtpt=o!D%{&j%y_aE5R2!Z_7@)t)y@^QnT-!3A-fQZy02i`C5`!jUo&Kb=?HiZ+{ z!~iXL-#I5xT%$_S-I2`ULs6~*X!{~zJ|-*u&)ygx`drxeF{q$2&x6cO^MSe{rt8R+ z!N~mArHRqUMnl?ZNuzH2A1MEUqwy50*;mFwzUSK&muq2EnDIdlOlRux_OOs|ef@K* z%vj)5y-E0D(qnR0ADK&U(Y%uQwl?cqZYX!P-ez#V+6=yDvmig7i+mG<@p zwuR`7BADbK&3j5m)Qc%Oev?}M*&7v?M3z|8fZ_(Zwc?gZy(Q=vByBZ4@1PS?S?b^pJ3Kv+vmdXydd0-eBORyiVW6k+Jb7;5uge z-HUpg=}J`&rT$g|coNdKb;s%ZdP;li7yQq)DGQ<9kisEuJUki;cbhPLsOsW}VhxNK!KPR{D-&)Z1>#yMi-_uBK*D)Ee! zH!nSM(zclrL0SMr766>xV-f_l252|8zESD(&yBE(knzpiGQb5)Y4OT z_tH*?z=@FToU2YvRY*@yuRc9ZqIve(xa1&87V6=#M3fBs*3uB1tn=h$jMA9hwIX0&6t~YZFPo_i}?AlnS+{~ z#4SM)K}gC=KWRD>e>VBA3-7PT@Ey~uC7oVIA+5F`4rnfPG%Zf0yXCGYQR*4M0D6N0WHwxqQlBy3oFp+qIQ=8%E? zB}$k9P=FcoVx*Q4l=_{V1Bj=%A};w=sx%y1=ud?UI3k#01=NJc8ggru2|xZrryr`F zV=45RD03V1>E$7+F^?g>M+69&yH^#CJem469hd3H+egzr10;MLgd{y^#6r@8w1vot zms$Z=MrNU=(@&)OUxKRv{F0zO2zCJ|$^d?fzd*J&QmII-jxNN9>ba%pGH=zB%n&S> zzuJ!4NC_}r5{dIyt%#nX2q3h(m9v*by;GU?jDxJ~^;vBf@4lGv(}IO>J}OZqLEz_; zuF0!bx2mHDd3a_5&H%ip#8ZwQ*uOJpO*cx;ctAqF=8%+@mcPM@!(m`t6%xZ;h$CAE zhIh%}O69=GoV=#MiyBth$9OFs_OClmV=7`#P3EpTI$9khuGD}} z38zRyxgunl-Djfk%o4eJ_(M**XBkHF?goh(aX*&@yBvp#ouU6L9{B#v@!lS+?4-P} zZ&(m5fCvA^A=U4iy#0a=G)68o$zj$lIHbCqPOZY}2zH$R`^^ywYC7oP6+zsFu5pUG zIrJK^@Jdawoyv->u%m@qqlUEItq z>lS4o3z*4VFZij*)0s`bn4{X{SOl$Mgp}achl;4Ca}5nl2oEP(r`<VawA+)M1ZkAz@qb#X!*=Y?ofnBF}$kX0=3<$7u4-t(~`vWOy5cAhcO8kOr zbYsV95rgYOR;Fwsa3;U5ax6~wUm_hLkd<%Oy<6a0VGk~nQJixXENHu;%#$b0){ja+ zJaG3KzpfsVsf3rNQmId;woY;@qP+onq3@4+C>RIM7#bcF9@$Z~5Dt;n>CF)H6~=`d z8PseJhB1MJ^P@>0Fg|f2mNx3p-4H7==~FAuxwcTEiz_W*DdibZ5YDpO-Y$W3pC8@l z4WDMh#nJJQHVKb{Gqd;z^3Nxn0S(M2>hNLWc%CJ1$==$E&f3#>~M_nYIO(-d$fFxiH5EMRNCPfs?qdy z_W4#KKmdj@M(U0paqweWj5BH(fN7b8QMFVe~_#A#2e``Oqn_&UCpIB#ix zW>C{{F}OI}6GfwMs9&YhS5qKQMuNrX{pVA(kxO=8Ms6iR_myl{h$w9hAL7S+eP0PB zeAV3|x}t?GTXFK&fe>)gSz!H?IB;%*wYhO73lI*lf1kDg{f^BxqsyM4+%)B14k*f% z##w&1$uPlhUI zSil&_4KA~{0I{8^fyd>G1*(x|n&9R0k5NReMQ8a2)HY_5L(~OY_St+xC86VhKrVu{ zJOgiTh8HGOAlKQH6itr(EP83rdwFrBR^3Bh493#fv!;hjLzRc|-r!?HyP_%gw?*?O z8~y!W@3#KZSu?2XIEgZzBk~`uC#s;SI;ww_&*A36*i;rm+phe>Iy2(f8($07FDnD) zvpUEN0vkhw>3Bf8>Vl*ch_!)~NC;z}0H-UW>AO6>vvsxc8xS0`nQXOqtI`|?MaiNq zK>qADiwpvF@bxkRH~8QMA>l#DdOSGU)r_ke*ag#5Z+L(Y<-W0tpcocX8cPibtQ6mC zvAcGjjiB&zMnb3;$PYpi6~l6l#~o_)pd!NsBJVq#EL4Wb_=IQbPn!hJFBad-?237z zX?@n-UFL=T*~;R1QDU4bp1wpdijibBzn|7Iey;s)Su9doPQ_Yc089c4Y$+>GBPaa@y0+( z5*vSS;ny!s#`iSv-PQ+W$s{wx00yde+)8%~3Yz{H3SlvSA{5`}B{__Qh$tVe?a(O7l-M2!@dt z?Y1&Tl9>fS_VE&|{w?N{_gjApAYgi{1c7^m$PhmY#D>1pM`Uvg4_vV?O~xFX-~qExrDcSl!s%{mYuQO}z!v2&X$v6T{Ho1sBFsBa>rA+SG98Ne=`fdYUiRkTfX^^+gd&k&}WUDYBn`QEx4o6iMB20dk`Htue@pgEc2 z*(z@k+^W3xnQ1@1B==n!s=nNqCIvt{3XnY8PgW1<*rvE5!9`JC08=nl6LK1hV5c#p zY@*%K*e@tr`-@TNLc2)(8dxav?AS-{^r23cQ@u54= zulS6JaJ|T!T+^bv2;>ZdFTO))`+)ntk9S>_ykEf&+ox|6vb+H;3DCsjHn` zTpaEl?IfhP@<@VfF;0`7yV2Q^%7`ibPiRdPA3`2n?InT@1yXBD2ngrIb3Yhj&Qe=- zI}NWAB#-O#00jSL^hsmH5*BVu=_vDp~XIRawo=8;ez^rv&HUi>6Re^VzG(j^_^7YdOJ!rE{9hEECUj`o+bj z!##lzFgT5OzAbX^eBroawx(#Ip01VeWhhc6g8QL4%1#U`z_uOE;Hh071YxY2wU+?F zJ?1E&w6~%bTSDKF{o@%4SyA@g+iC{HKXwrDW?AOROZ4x2=B)m2veINtb4mqU{gg5# z^J8im6cw>J?+K3=b;@~``bvgJ49DttNimMs+q?3QT+oDc4(Ori6>4$&1n_5_h#>Id z#;l&nZihtGZou`u^SJA!X^)*BpPOkcKl|HJPB9(P|-L}U1n72}k;%0-1hS^FLqeDy!^ zdU5698&X%G(CFk3Fn$f@R$0b%QGf9Cmj_ayWtrcB!dAq?`rEk{@;jM77ukZ4`fYrL znqogzx(0VbRY}yM>%QiKDPAy&=*S~j>ZLdc1gJO$(0{WoFFPDDJlAom4`BUY6Szct zYRLXIt~KZn=BReB#+5mRtvn$z46IB zRpEQaNlM26Uk*O=dv|mv9MI#0fJ_>IOZ3_3V8{xo)JW&8hVLPAM*+M8)Gah|cx-4s zL{QgzoL3=;9vrGLU6Fs0`pEoSMpLw(Ic{-h1T|IM7}rejRao6PkC;CcVR>dFsKW$m zGC$7Z+#<@pNEEv&m%`LlD$fHo3U4E3%qthdSXP+xdOHZY%5=U= z@c?t)5s=J>pstmp&8i!@{H8eorWc{SuR3FB1dqM2O*(R~NjBE2v${Tvtgu|49Um_% zuXthe4Z$p^l{E0aaZFU={9pk0Om4F+0|3|w3Z!VF@2Fu2& zrdT9LD6K}oGlZk`r!YIJ7%iG_#?`(%>oXEpEMdTopo$xw`y(MyaAp06+s{M1W5nI@ zxEW9~1~^JFRsooHEU1|8aa%Dfh>a1%I|2@Zn4i#KtO;QKw3ki@g4@tZKl4~1G+#2g zLC)diGtwl+(zUjY?{lf++8TC+p3ylcn?@YBcNb{9IGv)PKs;pxopw^3VafyEvV!34 zr!m;)z5zVA@O+$zxB-Ks*cD+*&=`uB8+7UlNG&>{NYBOedK5~5a(zA?!sxR)@aRv~ zAT3ZKzZDE7yp1;soR^aH2@=r-^Kp&qGRK!{;e-T$V&Xi!k3F&mzE=$-`LpvjF1}8V z_WRhH%wRM;K8oTUUj5w+SxE;JWkHHyb1nssUl#5mM(up7zqQUM02t-FJB;42ZRfLW zp@fTm2Y=8Wtz$5tWFTx=12%7z`2C#QZC*pHe5S?;Z0KDhEu|lpSFl9hX6YTy9x}6s z1cGO5J&+ygzzt*vWks}ZHP6M)=PLzZ1XRs@tDX*kts4v}ZX`e@o=S905%=7Il}~-` z(>HHQCnDu_ddZYg3_88hIAdLL`jpn1l~_=M&6!Sk-$M!!%$gY~W@tig`%BoWoqxND zMnZKgsqMmB{VN}X?bw-+0}hX~CMH9R8e57Hih4Jj-upKSK0&u_f{ooxlgO0aqgxfO zSB>DTozTMi?XRg=Wr)>bKQxyiCbGY6){u*p(KY~T=ka%beZ6%Y7s_Eq>uo+Iek^QA z$*^c5tH)r4SIj-J{jk2?0SIK(mwR*o1y6!#4X}Xu@#_`WF~GvZ9@ZeDap8hsgl793 zi@FSWKjO8O+O1BIZ{TNIas-(+{^R;FZaeP+z;RTfvon08EaoZh$i*7 zh^AFlRTD4J%iEgKE!a@vuc6PIHPp}L#dQU}pFX2!6BNl(%K{t+oFFyo zFA7G&z9m@3gr{19AUI!+p~gZ9WX0NqrTwXmadQ7!1PkHXZkb7W($#93q3TNw-x3@< z+j~!Mg%u@V>i~4cwb3A$o;QTB9B-XeP>`&x6UbDBS;u-b$%5?w^<0`r7f+{B(hYzt;GNSn8Rw3Ep!JW*r zT|Zz-z!^`hxKXyZr2r0o1g!3Bu!6)UstdFiG+uvmJN6GL0GF2s!eN5*!tH-gViMSL;Do$SJTYRj`ExlaH_z((3h>xc1m{ z%)!?R&>@&`e-aaWDETH7lFulGeXC5BMoE&T&sPJ?_m{(LHqvM*TTF-^Gy`a%0g`(7 zIPmcquZQN1wK*m0=$T|1;+I$!vWL`%q*_)vW@r)7+>vhkSBT@a|6|48=n_^Y8)3Y7X;2bfG<;Tvq-Q3 zx-K_u7Bs*4n#>sdP&0^VUf7g}7@@hgmBk)}oIl_Szg>YkH^YaCt2QRkUi2ewpTC}( zV3(=NXx(-tokD8dnI}MsP%IJDnlqGv>>(8S9*SSo^UsADvwJ8Jlef%8H|+NE3hUENK*Zal`7RQScRvHNeZ|cTf3P_0ULy76XT0<`b zg=}YN#EqT{@b|*$*~zbEcteK^XPWw*-2p6&%3tn0B^S8_=yPxXN$xBjyY=ztWszL8 z)!@;-!2lJ|eBg5L8UF3MUKW8G!44g4C;<*UG6mWVsF@goIZjaO)HDiBU;4PS!9$?u zrJ5R5^UPwWlb)uLdBEh=C`;wet4nWIBZ9noJo$X&-)p#mt*-|%lrI>_4yMvx)sOhs zn-Gb6p#ijT4|9HPx6po4z!m{>6OIuX6i@gC5YIJ*_$%kh9b2=<*~Zf--ocyVfI8!g zT&6EQyg2YxxSQ6bj9UWR3SZi(W4~xF39KLawW1iPeiXI_RGd;W0M35?%O;K z3&igD>isjvB2%H#7+qRfG2=R7_-QvFKr0pAjM-_?Sa#MN9F~26Qf8sxEqtO!iQhJM z7bY*=Q0h;7<91-Tb2}cScQP@%%79+QHam$AEn298fOKhz5sfC>l!}m6k$yTCopQBw zGOC%1=bEJH`GK#KV-h}hZnu_hVK#L{`Q@RX`a+diMf$%4+lySSw*%3y2D9x*r{g^; z?$>Jafbgk>MrwNL{_lnPx{gc-lg-VL%ay)CjPdm{%}sgb<#IVr%UK{_Fh1jZHcRvE zxRJ<^KP;5u#S(FEIFBJ9O7&R*0RZr=YJfqv1AMZQw(r`wK)PxtRwDobuOZPuVXPSn zra;sZt#2gWBavj4k|(j#v>=*{17i{W{=j||tIn;q{cSae2S>#;+aI;haF`tR5hW57 z|M+=-oGCJEAWK=L*51;mNBms4<^e4b8pUfrY(bjYSED9Kf}h&?=v5O)To4_Ek;KxU z9&i!fC(t+K*xLUc*mf}>a9(-6>j>2M%-sOA(o($0r4OC`qUw?^V1xX{M=q&@jN6~N zM2&FXJmxlC2T+=vu9Dz?r?2b_z=?H4f6uqe>vB0Z`Wl3CsI2nn+xkBoSqb`<84|7G zJ286zLl*r9ek(cS4(Md>l9mi1pAH7}PF6b$nIL2hz-uqD-k@-xMW`E}``x2F&6kd3 zTG3ZbjB{mQd(+2EnbNQg8guVQL&DNCKBT`KmXRrkFU{Q~^dDt+z}wr{p{_p;0^+ zY2*Pd8;RijnNK)4FiT4xK$V|ap4Y&%bcj@zn#RroI-V7aO0C_Vmj;};M#1pQawmzg zAnprIg*~h#1>9B!-u~G%fC}~8b_6~nN?3~dMHc|5EBsXsj^FP436n;3rrF4Pkofg| zYiw#PHP?O!f-91>6ay)!kRO5R{~^m@uvt#~@4Ep0_e#d9Qjk1$RRb2ZA{=NeY~(8} zUjy>r>P#ODfgw$e!*m6mB0ze>97d#KX7+`YxI^DJ90%O{%ae;jAUd)Ic1JZDZ&-a~{-FJTLQ4^Td z5tZ3^27>f#4ND}B#r=4HhDr%`(B20>?8T`KJrkwm2bhU$JM{HM_8JHW^QH>e7QRVuiGy%Dsf$XzeIcu0LT3%$(H~^vYvXP z=LKrXrpd3Acns?$t`DZS3S3J)>}Plq3!Hfx3Y@lYo)u-FBbuYj>f?ACil7iLX@;6as3AmGeDFy zX;g*j4eBOwg>uM(-$ZA*I7XO>+}q)`ytkKzCy;iw$JaV;@Kis95RI3f>HzEqtIHHk zS)_tUMd|C4vfb?48B3d9o9C%K7Z^<1OkYS`5pHw()-xkZQ2=ATxHM!WVQ5G` zp`Dayd|6_~)A6IehNQdoCKp_$@DCXZa&O_sWsigfy_G3CmkRh2RZI72Xw&9y5E2?a zZ`fi1>zC9aRi0rW8c_sSLtyfxu>PH^ap~LLoY05mcGhuxb0YrYQ)b300F-l2l#aXB z0MAxu4|$!{qy&&mS19fcJyH|@WcFk({Uzd!p`LnBBeIL%_i5cqe)ZcIDi2A#YZH&m z^nk*nmUE2>kK3-)qM}np^qSkEEkt_ZG+z zhvx*F9=N`{Z3HbR8}0yqmema*C6TISj+88K=tjGv?S#*4fm`d ztWKV!r}3p{0rY*@dfFotfBC@XWy}-WiqLqk{9-o3o5GM)gQ^#pKlL(JV|L1gg`(%#@f21@+Lf@>7@Ko1V;_`E)M zT!wyOH!eHQceqC5$J$=0(M40Lp;MCG{KB86l&+fK7v?Z|a7ZIqnm(Q_LfYVv_`O^H zrk?pO_kP+;Trw~E6~ZIZ_vwYhbR~if5C?rcFxVXcHw=7f@ZR}k<@wakkOG)NAhJ5x zD>P9S9E2ceK>mDo{X-hO3`N07u%M~4S!{zG7C>>rtT||gpAIQ`i!PfxpdZiguwi3L zAkq}6@@z|vl{&2a@;Q8#BcQvHC6T#$p4t_0A4QvlZMAvXN(;p4j~I((h7Omed)MrJ z*oeceuAP?TzyT}Ohlw0VS_yWHme4We$S@q$x`;w`F8F!AmN?x@yZmk3?kI7w)O>kn zUsFm~TPE>$3!;(6W1+aDNVZsUUG(9QY)02EriqUkKM~N56v=!m`Lx06ZG4tV9A=mW z9VXLTt<4-gr0I(hIpXAstUasD`J)m?C-T1Bz%wTIh5SdKhAV7q)U5=84hJE58gCVF z$am&mS;G&+JyhZ(tEX}2YU{p-Ly*l)?)&STB`GmZT0@Ih!&<)Eb?sc0Lugqmz3H!v zyx|J?%NyivOC4mAeqwxxXPY7z;NF8ie?7tbw<3crvGO0GgM+|qjFE{YT|IA@m~oXe}&rmaX#+#(Dtd~Qt#-{vG!VT z66$wgHzdTcvC4rbF`%_%of%-=s_OKo2gzvhbtV+#%&I%^5<5T2!jzvVX&~HO z3!`H->1V+eqR&X9`1G6W#P{)vviv|>UOpDkD|mJ{QbN!P9lqZUKoGK1ZO%*X=rA}O|gI_PHbct)NzRNo(lTaYGmjaXAb(Zw+XS9?`~5`XjRYB=Ue zddHL{%i&fA&}^T{Z+8Dy>5>TIUF_~Lpp8s;evzsuvXw!CyCD`E;D&=Qkzbr_%VMb5 zFH6;_RMiun8WEyU%?Et<^$LwfIwPoERPW+a1RFH*RT*E~zOHOqcx;)yFs_`kKu@+6(*s#vYo(!bkR8&qRlnj+Y#b*nN?+K7^;=mt+;3e-oJZWx1w)pKr_D=@J4|!K@%pm8-19tIPM7lqbM?_1@ zDZ@sl_avV{V2 z^vEyyqRQ6WIH=#YJL2NB9YG~A-=x-(AJEh~S z)!ryP2J-P*1PYxW3Xi{ILv!+^SAQMh(>gm~$i$=%Rs`ICPXR^m!aAsu>z6z_u_*O_ z#(CU^qpa@oTHIwTEB9=hC!&N^_>VRW4&d%DwD_G*@|am7jjvp~7Q7p15cF*eiPb?b z-f&r9voYRfOC;~+4@OM?;$%>aDgk2sKzucca!H4G(SlAI6AYx&tEsRZ_&f+H_BS3x zd@K4=PD=96wXZ6886HyhV2^*7(*P8N_b2f|A1?DL)yvI$8AK?6|r7@M8_WYFhd!9@3g9xp#%ppP|)+YvoJ9@^$vY_{7z@kwcyfRWH< z=I9NVzOkcjL(vOJNOe#nxLa?w0S_h`N*y-EdAy?w3pInWlEMe-f6>$V4CFaST0NkY z*U5d#JXI4C5({+Hf9j)6ud>P#w}a7Y505H+y^BpC3-6$gwDfqd)oozS}-&O9fEkQYdxAg`hg(_rkW~*YeV7E z5s*-(${KRN=@&Cy+0%*c>a5kq%D)>dYdo!o;+OarD2LoiMblTXF5#Gyf7zrPt{^YWczYyEMGq2^h^A;#JCB zT<sdtFb(JKYe!EFx0g1vUa=}tA}sAK4sm5RBZO_b+*AHF)Tls4g@$*1ju}y`lTT;6 zay*r=eSO+Mvl-biGQjq5r?8!@oa#9tLhFfFmhT0CIiT(XIhHbjL+l=6QU51vL+r+f zjgz|Drx3#<-$qgTH+4IPquhqInH-NrsZ0b|JD)v}L;ONdaK2c@3SL2^$uHL;*bN{N zXsWe^sPxJgQl4dhzAO1jT&4Bjjk+^lSoj8a2M9$fUjdfGTalFMS(Q9%4^&er%t^zI z&16fwnlZaq2m5M|rM18A<~@H(n(*kbq*GVso1mcXmtW@Od^VlJSJFa;aOoivHVrtV zSiIyqGbkBi$Fw9O%nV`3t8LKtxA7yThpyGj^4doNbo*&Gg`*{D7sNc&Utt0appMd8 z{-v)m2+)K~p5UJvv%R=P$U-wL_6izff<9p}ejyWhiDxj1X8N!vdTDe1-F8`uLDa6v zgH(*wTlP)=d^#0YjvJZ_ez#ZN>~lN_q%vIU;BUu0>5*R#=In%M4-saqktSfuzw^gz zvMOI(LCf8E*p$w^XQu&^OEqSV%xzgT*R&38;5NC~9u;}{`w&x*n0W3LU5K2NpiJO9 z8FnF&i3N+XUw?yCS$UtPoo;GY5Fk!2aay#ZUB(LVR|?^E0tACNvpQ@ zPwWgjBVK-;45eap-wuf}+%Gu7rPQ0u8CIKg3|U4wm>T{L62U3Y zzuSH5DmtLj^yuVHev@jALOQ)mxfUg#dIc(&aEFS-`l$TAxrR$0OH%j) zX-Are;h^dSq8kW9Lec%Vmg}1Vti2r+8-mb?4^w#HKLr8C=*}mdtO&{|Tv7b|=Ub6J zhz!ql*ID}QFR5x7mMsp^=GT>cAVYYvLf+y8sS>M45H64Vp&u=Wxw~ZJ(Zh717C&+A z9X4rvooyyz?miEpKA$0SsUdLUi`#aKJ|4cC;XYQ6OcS)VvXX7+_11*92P}g5J2b5Q ztID3VpOaCbX`RTi2lZ~CbvaVI8Nl>zzQWXP*uMRjz6&qEJcKB)7t<0U-YY0%{cx3O zbpc^f9LV{P;L11vo>KGVE2zFH=RGfdk1{;BL~42?8xeFQn{)532G1MXwcn8==qG8V zDpc-rGC@0w4{wAA?exdYg+wzx49%{1lo9Tom7JifeUsdB+PrakEL%s2I4GG6L36_^ zts0;}Dgpc-)Na{(tET=_8AtJj({PI(K&2(TlOgsT#m6G1mv9~1OJzkM9bBjcbsQEN z2@voFkW^R@PqUf>k=!F0G7@?k89Cc*tkkD^MXv6gs@qMhl3G)AHo@CbhCUWPt|FR` zy+fYb2$ykZy?LOcUoOtktg%Jg2`HijA2ldMh)@*=6+UdO&{A#5+YbNKt8tk7{Oxnw z*>Jgw9OAOAr2tsC9RvzU{Q1zIz?N@(Y<)^kMy@dT6NW7PgJ6aQvArr~$voHgn%$?? zWQv)F*7V3+;?1a?=lXO(@b4!f7zs0H$K;5PUI+W3DK4&!tL>q^RaVAJ$HJrU5oVEX zjL(=MxC=~gq5tHwdJ7P;&=1$V!dy0oILNf(oTi8n_jsc|UDu@v*P>#V9a?RV{m9s8 zTWatsIV+|eGZwz&A0cl+ycalD<&&)8z*Nn?sCAegwYY)Ix;e9Ye{N3EL%dR$D@p9i zWCeiVvS>G(C3rz8u~(OY!6h`Bm{cy5x34-c>mAwzi0KBv0%PuBN!N{q9y zJt>kD#GCnL0u`a^G$w=sBaXLguaP3XZ@JdQo5-n!Z&A;j_j(cOJC>q7mAK!T`}14K z<{(+^$I3(_dgrXh7TXH_2EHP7E;f>r5}JTIX4m^N3PP*BYvgoa>x+5|xj3C|9UK}N zeQdDF9{br6yFU`UdW3DP)ty?DcQ||x@!O=&-8#8Xal$=ZxHtgA{=N4tn!D>(S_dVr zGc&urHOKoJ!OSFp(Nnw*ulgrtzkTBrJS-y<_#MuDC;Jl8P*uBmOv@0avGfS~o2mHO z=hUZi1CJJ1Yv0q`B{AUwmcubWcry@wPfO^Ur{ ze@J8$F3%#IuQGo8G0lP(Ll-MM&$$dMeecVspHO$_}1 zjeEanp~grWHvq&wy=9YJ=j)F(f(uNN6eKA5fqLucx#?1C;VZ^y7>;Fk>;Cd;sXk|H z=t-N9m7!!gMVGjcMW#R9(*hffF5~xjC(bIod3QQUi?Bx-7)`2!4gz&-&gNvVFa{?V zFaBHUQ2}UgbaI+e>Um@cD^mw?Vj3}*g%D5@KC;D(kX2A)cyu*90ThW6yyXlHgc$5Y z1*o-B1*ruqt{9r}-s2uuOit{`H7&B#<0*T{U0GVN{oGKf$ecN6B)uBV>`?ye32=i3 zgr1OjjfsF5X_$njEVML0^6JNb;`+~ZrxDRgBE%42@|}-_2$v5sdb}#sYWzy1!Rjy7 zu6IT_&710$gm>8RB#gYW4&I8x*Eu(6OKO{C87mh=YzG>6YXe>cT=$cE0*-%g|nkg z@Had^QJz3xN6r@7#rRQxz~7eJjl2J3?lGM|uXujD0&eCp7R5^+;GEI<)!95)qa*jC zt*~YQX`nv6tL3O%O|6AF!%;68y;j1KNK8~oJJnV%{ockNPBe-}s<+1NPnShW*?Pj< zOrEK~*{j|^;%{Y4Vh*CRKlEzj%HO;xsxh3s(`t0+qj=b-HFVPX3f3WCB4D!*S#i2x55s;-F;y zCoviZ!Z0UNx-trBCDx$V#P*k?fTcD2?hy^uhd7@d6`ityVhg9v>jl?(> z!#$RGkAFpvr`owVskPtnzuQ;DfXjq`&kE(v!n8v9%=SwLplENKY+cAd`Nek3AJPs~ zA3?Fh#rK^CLYeGGKqDRxZ_rPs`!ev77FQ`D$mzR**RTXpMFJ|&Qd~Qm&5Uelz(R1) z+^9yua~|>1YvV5zE3@@Lv8cq7TU`vE6saPVKcF9eF7G)nbN36&#)h<~OoIPJ!qDL( z!t^V{IdGOsOrNSgNL-_&4;Bzctcp~7rau++wgakNw`}Si6Hq&i^qWTCAVu8TiPdup4K(yAr+9T{+= z4}Uvse*JzPZP_p5x~UfVgr9TnWWsZQXOi;Mz((;rSlMPGeYMvuR2FU?=qKCtGn#cC7If)A(cMv;-Ji2LN@RcQr#c3 z@)@+VX^-Od$a(Ng7?g9=_K znzK2xzO%4RI*Nf$*AgO5K#e)S<>1n{9%5libo$G@)M&loMxhE1r-<6h_>5N<*ZN6h zJN%IM2$IfyWs6Sws&tLKd`*hUH*fvNDuswj! z3IhTWer1}XB((~6+pP$ zcayi{{ip7O=TPHHKevHhmLe?ni<~p}71RLcByI_sRIiB7Xg4cADKi)Sz(`?N3!e^Q zfhYpw7yjKKoqw-uLjRIe8M7NvI1x|6^`)?6fS~AB@W*&0i~KfkW2Gcs!{M=F-+*raamB zQVJTGd|V5qTnluI3e&gXF*nLZ53Cy(@LGGk-Ud!e*8_h{?bu~;KEi*=q?{wDN&G@i zgs4wwpLfX~3=3KAlLond@8?xQ#MV(5<3ozDYOPDJ8$)T0Pp2jcmKOzWw1K5UQ0(G~Bq zZqkpj>nSsGaa2uBvHSeG62^hl?240KZnd?Xuuz?>I~yp~8|6cBT$qpi{bpqkMT4w!Zj9d`%iI0fqjc zb_su4yCh3-nlW^WbVocIP^|>#Q3Z;j+M!fLh(3UN9=a)`ARQ;EgU{=yV`5t^j`;kc zh35Avli;_LTy2JoFXNnAb%8Kh$xh;FR6)VHgUg<}6>1XgfCkjWw-P<_{aV*|hrkHh(Dcuz4)>ytc- z?Xff$k;J^Rt)R+L?8i{9Z#~v>`^X`N@k=cH8)%1-QR`d%}p32Jv3JT?)@)i)X zV}Ac(F3^0!5R|WU#dj?kF`55yjDSy%frj_~;kvO=3}_{#eV}YjA>>188xd)y8_8M!X`S!!4VfS+ zBI9$NHAfw}?aR5zjAWK~!;+h`a*}h~!PmZ~Y|P>PS^Om{k3H`Z1~7{+XW!P2^C|9TDo>Uw;_n?8zogqaeYrI!8MVU{Z$+K>D}ehjNAkc422y%hLfw%F&4 z4u*XK--e7_ng>z8KE=w1y$mRGmW za3EvUxxpjnwci%iu6WJ;<&Zaib-~MGhIfQ`;B|(V1 zN%n|>-8P6ZEcAyI$B!0I ziV22MpvjDMT=UY1M4<2A_%2SHntHW!|!G?5|PO#Cq+piVtHIEMg{CDt<*)nhw= z*9vj5W?Yw%aCtbMlpC>@H8MNbDK+xgD6iThI&xiL2IiRJq%C5$a`62GDg z=5y~u&m8Ua^CQ(=w6ucT%Np|FU=rl)6Mi%pAoqk2Y0?(EO^Co(-hg5U@1l<&==4ZS z7hE9zSzByYifFiDkaTMV9$e$Hvn*MobZaxb0IVBYnNTUJ-#>t$4@K&BmY;M&9r-LE zRnYUvkKyTixM?>7{I=td-+v_2*sQm2{0To03?zTds-+ta^eg$ev2+oEJ#=m6Lw}Vac9v0E2`E(pP$2mItZJfNd@`-qK zO_Fr0r>K{!ph11@`($5h$+}H-LS(YO^1F9+&g*jY6|qg!0ovrQHUcQj&cun+es9>Z z2uNe5U=LP!vZM~5N_MA&*>kQ%@H`jhCtTESDtH`VN&Y;m-fjFVpJJ;qrjc)N?*@cw zva2g%O@gv#B+OP^8;!g%qUp2I;BR-*p@v)DWI3;)l?3^8)MNp{O*F&Ko{iO+{e}Ai zLieeFy8(rg8%b84g2L^fTvjUegC?8`oP~!zA||*EP~iLIJw6oXnOMLjAyWolb5;UG zWeo~5T3H_*t=-+S#{dz5RThY8>{Ks2T7*52@2FTd-?8_Z$>wx3cHVrnba@hY|5;&H z6Famtu|CEU0?5?zCLyw#j}=-92;6)37wvq*ab*}*)py@xzsr6(L+Xe(fUSEFg;_RF zOS3utFeH%c@zM)V9?2wg+$8^#+4ng;eHM0PWPaBmInZ7zy0r}qBV5xLx$?eYZ{L-^ zDlg4-UF}|yTeIZrUoKNaVOojKx1fBA_h4sJhQ$+O3KXWWWp~vXHo;w9JvWNNltW(U zFL6V$0*}EAKuU;iJQ%=Pj}ao76FvVr*J$9`K{}(Wm+pQ&-nI6vEk}3jTPlbmC1gHI zy7d7evYiY;2@#>@M<;r}G>x^D3$(Pg#T@UsxnWiP_7y!>>ZGzJkL*OotFM;?cGc=D zldIa8K5l1v@y@nzZ0NUPG9AmlI#G(FW!~|0##5E_nHlQ&!GehSFv=HId-M07JP9&4 zSB^#x`ah%D{@Y*5ZmvdMK)})^ z0u7q+moyLb1%nO05!Eq3z}=4>IP#+fF3)Ul-1RohNu!7C-KpCebgcGST;#pO164oV zG1r^WrH0_D&6KGjZA#6bjNEbdzE?aR$AsuC&TZqjoHu5VHuvW8N*X9vIDXUczH5fR zqSE@A>d}%`FSV;JnCrIcH4~o8^wbG+AaQN8kG9ftJ}pe0(BN@j&+$&u=2}bDIgo-|y)WAgU&}_(OTv`3VZ_g}B3u#@3jjrOe@^XAk9y6-14bAme3L5pw)U zgP<0Yd?k+@BOaJWk3cxkFOKl^6h^;8@BOd*me_YZiONHTU0GGJk3Jf4+f{%m8SrTp zPT0oa-26<8A2kYdP#~>f$ak}+`;p&$)77ddEOz+vgPEj?nf0WFuJ*l~Q0zNtg&-KR zo4YWxBaAC6%d{=FA&k{D**&$!Ou3{x!YWeL*D_AReuERS6SK(b_ju?AOKI{2#8%a| z;LJ!4Zr1XdPy5u&ZwA-Br41Rhj1YEIsw%KURRZAu~xn&8?+akZP zwUW^hb1+|Yynyt~yolCsU_@bJl|QDiX+9%vm9K0q#VJM7P z7a1a9Tv{R7!=%6YS&_u>#KQJ=4PL3TNKntxGXa$Huky(%5F#1tP6ecAJt8g9J~kjQGt5@r6MDF>Ah&Vkk|V$H4g}`vB+&;fvOy9+$rYv8ow4dzdL0P;`mG3Z72O zk4~Q$7d`FIE57mC6S!AHs+uT_p%evXu2>o-R1`41$SQh6g-R)e^B#P<0GNstSUvmZ z_q-7V2uk9dQ7bUn)yvK6bD<3h68nUX8@AyL!YaI6_u*!~3DOF)g%kP?_7yXCOlKc8 zeezo{GFrCr)*}fg%0Y4o+uLQj`Id)IxKFuyZk4M7bx?F~Zx6!5)hw7bC1zwa>iJ`# zMDK1L7j$oW)uPewV!=(<2|-!Vdcpc^b#2^CNG=Wtfdk1XVhmLZOE>Ik6HA&R^ZrWEl+!^^eW@>3)k z#S@|a6N^*bF5|frJ-w&O5(v5oVC%+N_+!p7ykQtwR--%V=uPBWNn;gRmN=GtqDA3X zxu8G))Fa5VDxqsv!q?FWGqE@0xxYpa%!T!XO&J=<-jl<}JX^(k0-6RYOQT` zbSfpp^A~0&541I*5UaPNf0-}ah$sfKn@?Kud_E(dQH=797Tk>M8=NC&vO}qP6YEy* zR0xV2oBF`mT5k_Vsv?r6ycv_!x8h2z+e*#eTox9AtfuOmeZ9w;M{PUyqm2h z=63{WJydkQmKfUUD4LBo$eJZex-1-cy2!tX1i@wv&9=9&!lrM5aM z0)cpqs%J}^y&4pjtF00pb$DW=Z}{{(B5aRUx87kd+!6T7H`sIHswErXPzHpLyH%TkNlDJ15Qm?fZs+1Fd za*FzOZp)Dd;;~fX+kQ&VopGB;u=f$~_=Lp_Urv}tbI;<{g$560UnhPo6sAVWye)Pz zU3juK#m-ij&m!MmiyEX{?>@aIb#1FMS41?Q>4o#&?uDLN2SOxL+}Y%D%x*NR=>zz5 z8yEr`38F00Q-T1fO0G^j^GNl$X#dk?y?Xrb#~NFLeXEtu#S2ah-@{6dB?iHf{Z0bB zbxL(YLfnAAWXjBxkFqnuKi6(8CADy{jXcGuKXvxF?Xl{*yJE|V)Y<84dIy}PrT^Pp zU$eKh`!91HZ!?rZGWlKiY$FF6dlTgYK`#l2CI!Uk$#zzG!ak?~4LzwU0$tyon(Nz1 z(NzHDETzc^76OC^XKg(5$Lf17k8m^RcV*b1>n)q>9U{S(A0D4!M z9xdLKt}fHkEO0x}volCy_iK*lY~ru6B|zMc-fR1aX=(yn&Dwa+3%Daf75FQ+AzyV` zWUTY^<0mb63>StuuKCGoDWv9V81)}-MGl6UCHT4NNwGrTW7$&3)FotF@tbK(14_;L z_K8Kn1t3ONhiF!X9VRCICgu4|_i`=4bs;n*@rC|zT~n|)0fO55%3nr(5)--7LfXzH z@h*t-)%E>xuK(bq#$YRl14eoacMtF+=JG(r&2|$tB_uA-64Dk^Zm$;qwzO-vkdp$7 zO#+E#CeX9`P^dx#>Ieo{&n-%~?!MF);oZ;) zrTY4cfmDPZh3N<@1ml+1w>H01TVmt3$q;XtmwQe7VhJjz$r-iGLs-B3uA)co+{i-Qnt&pPfnVoGUE;UGiiUf9~ey z6pE1mK{4&{{tRXTe=56Gd?2kL{}C295uf|aI*JlsTJX*Zo<2l~Tn{E z6ThKX`{a{W-9jo?`F)~+%l88UN{2jOE^M!58S+_R?C!&-lZ=3z9dd-5N%#f;LcA8G z@F*Polv%(I=@mwJfKsjN|PG9JBfgYA(yKbO?4; z@flAp3@Wcw05-FTDYG2vOAE7;gPTbnjZYc?h|E>232*_|%{uIY^LNP<1Bj?66h>(6#xM;mMNID*GNKrl6*E_n^1LRmIl{!V_T!T4-cx6h=A02~-^T$~D z(c#J1gOeGl6Un2)IS#A&W!$II(rYM86Au%lZ6{mQVDkB{+`!AjRjc^l`fm9XtFK_= z^MuGjQ;*m!=QZqo&)-FJeSZ64VREr^&UI#;-oD2UMWX#0W)GS_lHT`LY*x1&cI3Xs z7#U4rDKnz_ z_EGr05b{~nV@u<_DhK>XktL0uOA(WXdx(B>58v3|lS`LxD|rmPaIe0dte@xA^_5Yu z<6^m;x^I|~cQ{s_=`yxvWkN~n0GEPoVVaX}MS82spB_O#Q_ zQzz0jA6VI8AH&Vw2l4%dlRkX`vS;g@3#_>?;Fyj6A!B7XFN%RX+w!7fUAc}OOH(j4 z8&Q5iUcGvCD;AcX(j&Y>Cv>I7LtI>lQc8h-vF=mFh*HXgzGB1i7JgHa6IW90 zC~9ky7$lmNC#rV=QB~wplU5&=Y~h~knVxAVcqfI2W2?O)SKz?U|0_BKKB~;7+FyqD zo-)dGKHAT5-s|;^mnw!bAxrAq*2%8l-nz{QbY>4#>$DqF+03HkteVJ?ze zxfhRLaC=T31|-oH*Rw~buNFg=_@M7eviTqKyGuC~Hz*BVujw9|DVD|!mZ@}h*{4Ua z31h#-g*b1IS&O=`TcrMJ5gvNCDNp`#dNg#TUEYaznDHYfr0SD*LyX-x9q@ziP6U75 z>56bLPcFRC(|SkJJ$YsPI5;KDseqj|QoS(SqV5(6MThG(NZTFC!$3EFsfOro&it&6 zuzYQP|ILHvGIhAxH2or)^KAiZ*B`W~a4+~)L{D#|xfu>|;}Vz41Dqp=cxns#{~604>k?95{8ypCdXGK~Uch}ZNA7=g)v7s{0{932~RtXDhSt`vXK&ma$5 z?2DE~VYpaG&pw$uiv%^7&}6UA+eUl7^jv?ry*um@{Bq7&p3HeC7q#Y@iK)G!_(0@Q zarFKgD8w*r024(Y4cJfeth9`KQf{|iz*CaKz6;$umrjbBE@g+jw=`|7qf3cG1i9{i zD!n+>Gay>7!NKn=nOyxUd(uF#Mu{A@`B>Jid?fSA3g@>QB6*L3*I5UihrZeu6ygt% z+q2`ljNcBWD-WuQWV$EbZwzht~6<;$`YEk(~z(K6K zH+rE!gPJF4{M-6;NmoAXE(x00<7UiZ_rlb!7+?22(8v*IaX_nHE;wj-@WRn6K!1cV zdf}x;GG+R)>nnu;<_h1ujCYMB4B=54TiY)#AVh*^&Ypn|%m_qr01%3+eDBA}W-Ha1 zrWy|lGzu2mw}>2;a<}v0b>rQuy`Lm(m@6d)kB6VmH@z5Lm~bB$%z3&M@H~t1mQqTj zw4AB7jseGC zY<{Of+#QzA-C{b*#XLSW6tkaUl4!4e`|E3cu9(W)%R5Tccw06oRbgrZ4q$3SeV*^}U z6^nkFoWuiyGsZRh)a@-75HZB_Bjp-7!2NdA`#$GhFj$e(|} zX!p?WiKL5Xy3#M?2nZ1Jgew(<BuR2-|U{&!vbZ6zb1sR8?j4uM}lWeDLa#De_wS z%R3N;27pJexvP3A8n1x&_o{SaJ^OS+bHD;#ABXCPKb0;)(B4+;G-sd79S-ohW$QO3 zNKklikQEVXDrcTNDvkyUiNk3xeuW4SfOt7b$6(wUduMsju|ntv(f4e z4bh&j3r9W-Nw~_L`HANVT4ceExYx4Pu@t+ZY%d@zZ$L|LK}+3qwW-cbW*A!&5h63U z2mV|``A}WEgw_YqI?zPR0A%r&OsYN0Y0F;6BFs`g37#ztP&rVrrJ$h?)P&@ZekuV+ z0_1>_Sxw1Txt_)UPj_BP9ZP!d+{H9SIT_9Wykr17pvdeoyZb*Ogd-@-@sabq3Ge|Y z$8?@?!JLE%5P3Pmf41#^EHaAyO}b7Yz(N*H*GO|fv0>7!O~9?$FMk7mI@3U^ zJXxcI<7yK2DIto0D%@QELKT?`(r~jNL;phPT_}nRg^4UQlDZC}frx1w|2&9t&k`cZ z(S~VfM_=!yb*YOr!T;gnFP|V_K}W(5ioYy~2T%B@Rzrzmrh)=UwtMAY0$9Bl!N!v6#HjBw zfRk!;aHT!_0m|Xv0axnC3=l8ifC)*y<*NNr4U-AKgb?(z| zd!J3u!$827zL7isf9>H+4N_bt&66?uI?`lH_T?8FKy;n6UR#=HKg0c{G>gnK@Q~+J z-v)cQC6HAOI`9VoQ=nCW%?tH7&*>~8PEL|il zBJK|#?ka?X~E-P9lR%0%gBETDUa2-=KtjM+~m_j>uCD<~hZ04J~f@a)jnPj?8&H*do;CWbcwkcVVP2h&1*D{E#_k@aHcX z7IH;6$d!UD`R04+RzzFPWmMy-FyOTMo0RK^fWY!t3P8$9xAxbU=la>V z$3TxVTmX^0Mk|>GbJO?%)B6-^Nle#An5BPSJC!eKF&TMhU&k;L3WPhT;f;?J1jeS3 z3wochaJ=Y&lV1T8{^AD#URvSAu-ch710+bY=!LIh%X+voIkY{k?CfrD9X!t&+Mi3V z5&U!L_f^JC^Wf}9!NH~|Aywn?i1Yy)L8$)yfDTvAyVzX2m~*JxG{aP28s6e$Hwwc) zk7FW5E6?loah<(;Z&uVzXla+gxdG?%tYqrT5weKUejY8Gi_lm`6iDFNRXg7%Kn&3? zz>vP~gJg)ljm%B-UvB;;^gnqm>X9puxRc01cLS{)!V$qj>`oh7%P z77Z!6sGBW0gXC90$9a?$?XVCOWD%_VT=wP9lz6B*Qn~6W*NENLjxS`6V`;|%Vy|Tu zon3CK0E_t+jw;soR3BeaYED$~bDC1#|3yIyAPPtJk0{Q5x#H(21vdcTcyNw|4Y_c1 zSSi`=H#Mq>+ZxxGe);9sC1qgyi4h=#fnq-~_{@B^(FlkfdmVr~Zp`=Q^)ZU<^X`9F z(}H%iPWKTYnCZL-GYx?GFfxfbKAT64dkD;DVhruY=X*K$(Vs@S--cB?`aG=Tfnr@t zRexSP6+f?I(%+p;Q^N_;7tzysqaQJbxde#ua|%0GS!J;Ou*fMpE_p(T@~MFvS$}Q( nY#Zv!@x@4E1@br3D<>q0lXfVd300zV;7jqIid-Sm_|^XcC3UtQ literal 0 HcmV?d00001 diff --git a/App/LicensePlates/LicensePlates/Controller/Api.swift b/App/LicensePlates/LicensePlates/Controller/Api.swift index da326d9..4401f7e 100644 --- a/App/LicensePlates/LicensePlates/Controller/Api.swift +++ b/App/LicensePlates/LicensePlates/Controller/Api.swift @@ -57,15 +57,75 @@ class Api { let myUIImage = responseData.imageFromBase64 - let image = Image(uiImage: myUIImage!) - ResponseData.shared.imageData = image - PlatesList.shared.imagesList.append(LicensePlateItem(image: image)) + let new_image = Image(uiImage: myUIImage!) + ResponseData.shared.imageData = new_image + PlatesList.shared.imagesList.append(LicensePlateItem(image: new_image)) // using UserDefaults // PlatesList.shared.imagesBase64List.append(myUIImage!.base64!) // UserDefaults.standard.set(PlatesList.shared.imagesBase64List, forKey: "platesList") ResponseData.shared.uiImageData = myUIImage! + self.getPlatsNumberResponse(image: image) { res in + if res == true { + completion(true) + } else { + completion(false) + } + } + } else { + completion(false) + } + + } catch { + print("Error: \(error)") + completion(false) + } + + + } else { + completion(false) + } + case.failure: + completion(false) + } + } + } + + func getPlatsNumberResponse(image: String, completion: @escaping(Bool?) -> Void) { + let parameters = ["imageFile": image] as [String : Any] + + session.request("http://192.168.5.129:8080/getPlatesNumber", method: .post, parameters: parameters as Parameters, encoding: JSONEncoding.default, headers: nil) + .response { response in + switch response.result { + case.success: + if response.response?.statusCode == 200 { + let jsonData = response.data + do { + let allReplies = try JSONDecoder().decode(PlatesNumberItem.self, from: jsonData!) + + if allReplies.platesNumber != ["None"] { +// responseData = responseData.replacingOccurrences(of: "b'", with: "") +// responseData = String(responseData.replacingOccurrences(of: "\'", with: "")) +// responseData = responseData.fixedBase64Format + + for n in allReplies.platesNumber { + PlatesList.shared.platesNumberList.append(n) + } + + UserDefaults.standard.set(PlatesList.shared.platesNumberList, forKey: "platesList") + +// let myUIImage = responseData.imageFromBase64 + +// let image = Image(uiImage: myUIImage!) +// ResponseData.shared.imageData = image +// PlatesList.shared.imagesList.append(LicensePlateItem(image: image)) + + // using UserDefaults +// PlatesList.shared.imagesBase64List.append(myUIImage!.base64!) +// UserDefaults.standard.set(PlatesList.shared.imagesBase64List, forKey: "platesList") + +// ResponseData.shared.uiImageData = myUIImage! completion(true) } else { completion(false) diff --git a/App/LicensePlates/LicensePlates/Data/PlatesList.swift b/App/LicensePlates/LicensePlates/Data/PlatesList.swift index e997de1..c694661 100644 --- a/App/LicensePlates/LicensePlates/Data/PlatesList.swift +++ b/App/LicensePlates/LicensePlates/Data/PlatesList.swift @@ -10,6 +10,8 @@ import SwiftUI class PlatesList : ObservableObject { @Published var imagesList: [LicensePlateItem] = [LicensePlateItem]() + @Published var platesNumberList: [String] = UserDefaults.standard.stringArray(forKey: "platesList") ?? [String]() + // using UserDefaults // @Published var imagesBase64List: [String] = UserDefaults.standard.stringArray(forKey: "platesList") ?? [String]() diff --git a/App/LicensePlates/LicensePlates/Model/LicensePlateItem.swift b/App/LicensePlates/LicensePlates/Model/LicensePlateItem.swift index 540dfda..77da880 100644 --- a/App/LicensePlates/LicensePlates/Model/LicensePlateItem.swift +++ b/App/LicensePlates/LicensePlates/Model/LicensePlateItem.swift @@ -12,3 +12,7 @@ struct LicensePlateItem { var id = UUID() var image: Image } + +struct PlatesNumberItem: Codable { + var platesNumber: [String] +} diff --git a/App/LicensePlates/LicensePlates/View/ContentView.swift b/App/LicensePlates/LicensePlates/View/ContentView.swift index b13af19..7715ed4 100644 --- a/App/LicensePlates/LicensePlates/View/ContentView.swift +++ b/App/LicensePlates/LicensePlates/View/ContentView.swift @@ -197,3 +197,23 @@ extension String { return UIImage(data: imageData) } } + +struct ImageOverlay: View { + + var number: String + + init(_ number: String) { + self.number = number + } + + var body: some View { + ZStack { + + Text(number) + .font(.system(size: 50)) + .font(.callout) + .padding(.trailing, 30) + .foregroundColor(.black) + } + } +} diff --git a/App/LicensePlates/LicensePlates/View/MenuView.swift b/App/LicensePlates/LicensePlates/View/MenuView.swift index a5e82ea..26275d3 100644 --- a/App/LicensePlates/LicensePlates/View/MenuView.swift +++ b/App/LicensePlates/LicensePlates/View/MenuView.swift @@ -12,7 +12,7 @@ struct MenuView: View { TabView { ContentView() .tabItem { - Image(systemName: "viewfinder") + Image(systemName: "camera") Text("Photo") } PlatesListView() diff --git a/App/LicensePlates/LicensePlates/View/PlatesListView.swift b/App/LicensePlates/LicensePlates/View/PlatesListView.swift index b45a7e9..2b7f955 100644 --- a/App/LicensePlates/LicensePlates/View/PlatesListView.swift +++ b/App/LicensePlates/LicensePlates/View/PlatesListView.swift @@ -15,21 +15,45 @@ struct PlatesListView: View { var body: some View { NavigationView { VStack { - if imagesList.imagesList.isEmpty { + if imagesList.platesNumberList.isEmpty { Text("No history") } else { List { - ForEach(imagesList.imagesList, id: \.id) { item in - item.image + ForEach(imagesList.platesNumberList, id: \.self) { item in + Image("plate") .resizable() .scaledToFit() - .padding() + .overlay(ImageOverlay(item), alignment: .trailing) + +// item.image +// .resizable() +// .scaledToFit() +// .padding() + } } } } + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button { + isPresented.toggle() + } label: { + Image(systemName: "trash") + } + } + } + .alert(isPresented: $isPresented, content: { + Alert(title: Text("Do you want to delete the history?"), + primaryButton: .default(Text("No")){ + }, + secondaryButton:.default(Text("Yes")) { + UserDefaults.standard.set([String](), forKey: "platesList") + imagesList.platesNumberList = UserDefaults.standard.stringArray(forKey: "platesList") ?? [String]() + }) + }) // using UserDefaults // VStack { diff --git a/api.py b/api.py index 18acceb..6d3e708 100644 --- a/api.py +++ b/api.py @@ -13,6 +13,8 @@ app = Flask(__name__) """ Automatic call while FLASK init """ +# def deinit_yolo(yolo): +# yolo.close_session() """API_address/ping/""" @app.route("/ping/", methods=["GET"]) @@ -27,12 +29,10 @@ def test(): o = {'str': 'okokok'} return jsonify(o), 200 -"""API_address/detectLicense?img=""" -@app.route("/detectLicense", methods=['POST']) -def detectLicensePlate(): +@app.route('/getPlatesNumber', methods=['POST']) +def getPlatesNumber(): yolo_model = YOLO() res = json.loads(request.data) - print('ok') # decoded data decoded_data = base64.b64decode(res["imageFile"]) @@ -40,9 +40,23 @@ def detectLicensePlate(): img_file.write(decoded_data) img_file.close() image_path = r'base64.png' - base64_b = yolo_video.detect_license_plate(model=yolo_model, img_path=image_path, i=0) - print(type(str(base64_b))) - res = {'str': str(base64_b)} + base64_b, texts = yolo_video.detect_license_plate(model=yolo_model, img_path=image_path, i=0) + res = {'platesNumber': texts} + return jsonify(res), 200 + +"""API_address/detectLicense?img=""" +@app.route("/detectLicense", methods=['POST']) +def detectLicensePlate(): + yolo_model = YOLO() + res = json.loads(request.data) + + # decoded data + decoded_data = base64.b64decode(res["imageFile"]) + img_file = open('base64.png', 'wb') + img_file.write(decoded_data) + img_file.close() + image_path = r'base64.png' + base64_b, texts = yolo_video.detect_license_plate(model=yolo_model, img_path=image_path, i=0) return jsonify(str(base64_b)), 200 if __name__ == '__main__': diff --git a/yolo_video.py b/yolo_video.py index 4b3bbe8..0278800 100644 --- a/yolo_video.py +++ b/yolo_video.py @@ -64,20 +64,36 @@ def compute_skew(src_img): def deskew(src_img): return rotate_image(src_img, compute_skew(src_img)) +from keras import backend as K + + def detect_img(yolo, img_path, j): try: + # processed_image = cv.imread(img_path) + # final_image = cv.imread(img_path) + # processed_image = cv.resize(processed_image, (3024,3024)) + # img_path = './img_to_detect.jpeg' + # cv.imwrite(img_path, processed_image) image = Image.open(img_path) except: print('Image open Error! Try again!') return None else: + # Before prediction + # K.clear_session() + r_image, pred = yolo.detect_image(image) + + # After prediction + # K.clear_session() + r_image.save('detected.png') processed_image = cv.imread(img_path) if not pred: return None i = 0 + texts = [] ## FIXME : better list mapping for prediction in pred: x1 = prediction[1][0] @@ -86,17 +102,36 @@ def detect_img(yolo, img_path, j): y2 = prediction[2][1] w = abs(x1 - x2) h = abs(y1 - y2) + # print(pred) + # print(f'x1: {x1}, x2: {x2}, y1: {y1}, y2: {y2}, w: {w}, h: {h}') img = processed_image[y1:y1 + h, x1:x1 + w] img = deskew(img) + # gray_image = cv.cvtColor(robot_img, cv.COLOR_BGR2GRAY) + # # gray_image = cv.bilateralFilter(gray_image, 11, 17, 17) + # gaussian_blur = cv.GaussianBlur(gray_image, (9, 9), 0) + # edged = cv.Canny(gaussian_blur, 255, 255) + # + # image_file = './img0.png' + # img = cv.imread(image_file) + gray_image = grayscale(img) - thresh, im_bw = cv.threshold(gray_image, 125, 150, cv.THRESH_BINARY) + thresh, im_bw = cv.threshold(gray_image, 125, 150, cv.THRESH_BINARY) #the best = 120,150; 100, 150; 150, 210 no_noise = noise_removal(im_bw) no_borders = remove_borders(no_noise) + # blur = cv.GaussianBlur(gray_image, (3, 3), 0) + # thresh = cv.threshold(blur, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1] + # + # # Morph open to remove noise and invert image + # kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) + # opening = cv.morphologyEx(thresh, cv.MORPH_OPEN, kernel, iterations=1) + # no_borders = 255 - no_borders + cv.imwrite(f'img/img{j}{i}.png', no_borders) text = ocr.get_text_from_image(f'img/img{j}{i}.png') + texts.append(text) if i > 0: processed_image = cv.imread(f'final/final{j}{i-1}.png') res = cv.rectangle(processed_image, (x1, y1), (x1+w, y1+h), (0, 0, 255), 15) @@ -104,13 +139,36 @@ def detect_img(yolo, img_path, j): cv.imwrite(f'final/final{j}{i}.png', res) my_string = 'ok' i += 1 + # with open("final.png", "rb") as img_file: + # my_string = base64.b64encode(img_file.read()) + # print(my_string) with open(f"final/final{j}{i-1}.png", "rb") as img_file: my_string = base64.b64encode(img_file.read()) - return my_string + return my_string, texts + + # text_file = open("base64.txt", "w") + # text_file.write(str(my_string)) + # text_file.close() + + # decoded data + # decoded_data = base64.b64decode((my_string)) + # img_file = open('base64.png', 'wb') + # img_file.write(decoded_data) + # img_file.close() def detect_license_plate(model, img_path, i): - str = detect_img(model, img_path, i) - if not str: - return None + str, texts = detect_img(model, img_path, i) + if not str or not texts: + return None, [None] - return str + return str, texts + +# yolo_model = YOLO() +# for i in range(18,100): +# image_path = rf'Images/New/IMG_25{i}.jpeg' #95; 3909, 2491 +# detect_license_plate(model=yolo_model, img_path=image_path, i=i) +# image_path = rf'./Images/New/IMG_5016.jpeg' #95; 3909, 2491 +# detect_license_plate(model=yolo_model, img_path=image_path, i=0) +# print(ocr.get_text_from_image(f'img0.png')) +# print(ocr.keras_ocr_func()) +# print(ocr.tesseract_ocr()) \ No newline at end of file