From 57955bc1bb02fb2e3cbac4d127dcb1f6d1a4c722 Mon Sep 17 00:00:00 2001 From: nnegrey Date: Tue, 3 Mar 2020 11:02:50 -0700 Subject: [PATCH] vision: move samples out of branch --- vision/cloud-client/resources/kafka.pdf | Bin 0 -> 87215 bytes .../example/vision/BatchAnnotateFiles.java | 115 ++++++++++++++++++ .../example/vision/BatchAnnotateFilesGcs.java | 110 +++++++++++++++++ .../vision/BatchAnnotateFilesGcsTest.java | 57 +++++++++ .../vision/BatchAnnotateFilesTest.java | 56 +++++++++ 5 files changed, 338 insertions(+) create mode 100644 vision/cloud-client/resources/kafka.pdf create mode 100644 vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFiles.java create mode 100644 vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFilesGcs.java create mode 100644 vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesGcsTest.java create mode 100644 vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesTest.java diff --git a/vision/cloud-client/resources/kafka.pdf b/vision/cloud-client/resources/kafka.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ffa2e2fac2f4654bfbb97340753b416878e44ff7 GIT binary patch literal 87215 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 VrJZxVn(Wynhs2PJCDP>RYhj%Q*fgKZDH2}uu8 z#W%bg-HJ9!1656O5s}D4ef*yF8f#M`aMfT${LmcL-lY@Uq-Jf|Q?kO_7X92mFzent z)v_A>J-n@Se^3<|ASY371}dOUe|e66f;Iw9gDG2;DB=s!6LbNC=bgUvlEbe#5^PZh$GK)=LW@N(ecw z{ud+QVUg9o#V35e( zu3R6aqgi0Kd|IG}ZTp8<^E+JX_V2NHrxu)1Y;QUwGD<9xrVN4aY+Sb`i#9D;LZ?$+ zrY=A=(fFGf2LK)Hu zT^`(aRci29Q4uJWfOLT(`Ng59FP;I8_H+v*?QP4ge13D_n=1k*9Eeww=I(0G%Zy)a z9I~a9r**x!6g6OngzYH7zDV1Bl-be@quQfwYD1C@UTMfB>Ir?ZL-&gfz?n+;N8Egy zWp@zkv;omKlqxQjXx@R!fN@&ePia*ufaF@|RR4Vjc zS;n12Psow#A84gFSKScA>#!aM3D&rF3&_`KCKyK&VEvt9A^Ey`bEZ$lx7DLgWFAhf zFt5>KT}J%X0z$7{q!)}zfYZBN7pL-BWcw2_=b?oGX+FiRh;DBNJ|z1WkZxQInHuq? z3?}b*qP{UB9>s5@f!*Zuy)^qjVEt`rjeU~>Ob(&%_KA2#c|K-f2b3l);Fv+sS^0CQ zQupBtpvmW(B<7Qecnz1#YxITprbk|&2Ec8T7oF&9*}}3#-KjKCYk^EM=0${zNaR%- ziWQ(L>96y_mss#}&%dpg*%%o7CFSpkV|dkflO&-i2GFLjq0syTZ1X^Z&?zR$5-%vq z^CHoxgOQ~WP0zq>cfKmFaz36f6|;wiz$&JV&UY?fi?GkCGH~rhmV^gXVD7Jlmwwoy zR!wyowVV}@eJdT?K$u(+y!e+&A_?d1YlZe-xxX;E$6AcsJ#AlMzwPu9_nS?bA_)k7 zL=!2R#Q!i$Rn~L%R)6|N$42`d`1V^K3p#0Bn5?BbvVm1m@?+h(&*_KeHi=jNS#Sow z0nTkLH=3Og(zrG_bC<)~JRdv5vnbMZmJqWG@`K(8s0&2L92Au)|8zbjEXM@#Xso*@ z?J#YIDopx2@hE(kDAD;o#y~8p69|UzD#w2q8)fz?ov)E;g{K3dOwe~TyFWaq11nL6 zqU(pPSPiE=AeY^c$l%Lpe4d(1Vny}^l(?N4Hne+SNdk$ia`~52kO0IM@V$J>P=6F~ zanT%LS9)`vJ|QDkh&7Sk%T2?H5Lcs#|f2pc4aRB2a+poof8*aBBAPVA3q4JRW;J%7Y;g!DRErkSO!Ty0T6_ zC@nfI>dE|Fzz9E3nrR>P^ik=fwLC;oR>YFOWz#y7jhd9sZ>nzvBRKzIY^g< z&C1qpTwr-CMVYQ+**$-AAG1v~(W|-NqmWK9?@7INdgYmD;R{fIk5q=e{aa@3eJ1Pn7|xx(W>!tp@9fsqa87S#=9>IX6au^>7(*N2AX zc#=QS;_#CZ_s{~U><2W7JSP5qe4m3|N5fBxd~4|Av6|J65(@hA{T(_GfM~r*jEd^svt@rTK!{84kDZj`b)54%{1pwvA_=zv z+%2FnsuUk`Oc@*G@X23!Y~gbVjzH6!Jc#rHWL>s0v2A^-M5Ccj@mq(KKhWVg=)@_v z8x>!_g@1$o?y*4Bt@sIqER)t-PhVigj=Stx2SB)ZYGdIF=BtUD9#ba(M=+9U2rBqA zDo*Jb7~vvbWYt-8Jbna^`_r7==T7j0DKKD~mhvISrnJl;-?{VR2O+!n-zgZPsLr?1 zp+PN~cGYXe*ufoyfkB^nqcauoDi|WzjWUo9ub(PfnwW&s-yCG#Uoo;F(Y-{7E;*n@ ze(LVtyN`<;{`Byr;Zmi&mO6fiL+V( zhSmm6>al&NMAcA8g5~n%Uj%{&_}lF}zr9HA#q?1pny%@)XO@u_e7?l{Fm`=56fw`Z zelZ=zi5>YPf_KUdKu%;C$WLja5rZ_Vq6ACY>m0S*4wgJL%^S8KY^Q$G$2Ef&yDnZ< z7$a=6FSJB$^^kYRlZdi`jF*)xCo|(AT4KA==lQjD)cXI7+j=2fZt)s{=4~=n<$y zUtluWP_HdB106r&?|uE*2nX}go^D@8_d}JRwk9-*K&YCr%^KJdGdza&dCSd*TbpsG zI6|j^UaxtU1rt8QY!~`-3UnZXc{@rD5(W~Ye0>VW7m}>oMl5K!X$t1p_ywjM z27X78M$Z9N9@ex*43W5PB^XJ4JYom(dyvg ztDq!Hb)!zUd4I1;+H&`G=eLdn6;i{{YZe9n61#&~;W4J)`t$Dh{27^;P!#L=JSKsw zJo94I?%&XaRa69jS^KcoA+i@VRdmi ztanx=@Jr`aE*&~=ISgrHI;kKL!6u&z&7gmzy68h!`src34|nI82J)@{tiAXEOOf)# zno71QQH;#7>2}n~c0J8msGs&kmE*aMUc&rP33RxgMc!uf3Q$>tuDmDAk0kIYJ#P2O zJ33v|14MzO`0@HT+8ByqbKw)a)b8=mP5gV&aNWHla25wykJF85OCHGfl}sh|o-0(? zr~lKU$<;R0a?k-n-Xw4s)eZ1oceL-mPT-y4vuo&^nN|WxnNB%*_dA@@irvs-IbYfZ71jLqj0aN)cmLYFkLKm}Sl?a~PA*95x82{99G_-owx(z4R zL&2yr)k8PLK?@wEpM2ottBupuC(3GH^^wjW)u8A;QOP^03@oC%+mxO!PxP6PS-97NERk-sR5vX98eX-NBT+ZU}CiP69qW}hdS&Z$bU zcNq!ipY%ME;{vZ00T3k~Tv^YsWQqKxf{k*h~`sw~O&$?qxW!caU*2 zgFm%PAZLEtoMz7j$P+I(pCvM(XU zgS?oi1_3XRvoXnneRhj*7t;OtL=(ah_dQV*tg8)#vz~ArVE_G82l4^~kb-}p1#6G( z_RX#fAN zwEX2iW>8?W`wIxp2^Vn)g#Pp4|3Ci!9{7K_2l%j?7j-@V_XC3S|1=;(9qe6!mJ2RK z%v}H7DnZiO!Oaoq+#ss@U(O3Ek|K<%jB3tC_AZV_&Sv%|UIGG)@@A%1Mj{SCw~GJa zaq(YX6~F?nL@fWks{iRv0jy2}_&fi3VJ7-7O9lxRBJTfI3|O0zk*lkjvpw)U@Ey=G z;y+FrDn$P|;p||dYUZlTs3a!AsAlHrst^3~zkDq$%>EZciT^bJe~j|~jZcJ}nZ1Rp zB@r7pGpm4ri>tGlksUm&XHJjaL>ze={MNJPB+GOWU6ePNM4*+Acd|U#&xDq})o2JN zB+4pZKZJ9QCHg#X*R3n}pQ{9usZ>$>2MI-IhKfeeFUJcHf|rL+;Uu?D;XD5RZySX9 z{(f&yjDlasf`Z>q=Vkd{{9oDvpYLUcb(3F*@rnU{-d}Gi6H49}`Of2_RE558Z_i~8 zhWnI>#2d49eSChHeS^n>es6E_Wh`VBaQZPH3ejmVW*^G^vo15|h9>v{uXjrt)=uTr zeP} z)4GJ2eBkA?*Fg>QNg)$pQK(bNbBL_`q>lUUxkN3~$U;?#N`~-exC-A*vu7#Z3~9ad zGSIni$P+L3p|7!h=B%<}h~=(pQ0$A(jw_Cg>liX+`$-Z_V&hh(OdCU9PRK5!?cggU zXw9|k3BwXnnh5P`xtoO@d0=%{UyWjD{|+Pivul4{wM-eNpRb|(Vr{zF*-rFYTnZt5 zTFM&-r}%CBs7P%!m;wh9Jv($Y45eE#%F6h!+|s8bfWG?)z*Y_zJ}zw}P+LzB3Trhe zO>GgMXDnNX=_DkrQmkfH?208vg7G ziUP+zC&b8%gd;;23VC>{bn|D{YAMoe)duE^Gd4P@Uwc18F{L>Kw8-@6=!MC~IrNXx z?Qf2+*_76YLFa5zEqrHFmrOqeJY$mZYd@J7B;$(7{v}J)y)$o>^&^rJ?G|2=tQ5^w zY}${q%6Se_4jqTDPjg9RAW-$0zCO1|;=6ytoP0^soFe+wn+N$)FFtgCQrkC~h9XMb zQElAUk>Pfe$%i{So_YL3E^6L#%Vg7$n(Mdvj}YRbdl)x7LfQz<0tlpZ`pTMPK@>&n zz!?_4186ZRRz(~ZudFD;BZ1AO&(zd65&} zx6|5%$XlJfDJm~XtN_Od2743 zQpcGI@>1af9Zo3tHQQmOp~G@mo!K%kCUqENIr3-|N})&j+&LziM|VmTpOGSU zR9o!fLqqtn>XiCgBg_Yq)GT9C`v+3&UxV7-k)dmoqdT?w(KQvIPAONbr_ztDass}b zL4A9?3m)wiFVM#v`8@*WT15iaDLQ|#&UBkTsULMEwi#493rU}Up3Xufs+uwt{$PYE z6vd1d)NNgb#y!sE2k1EZyTNi}%MCLFowj~>^P7`K*(imsb@$}~1mPU*^|B)hlT2q< zOZ2G*KAhc|1#Vy`ZGCgS#iC1CVTJ|BIPz%pGPEm=$`2xir0CEDWz&Fo(|U>MoaM`(_e2nJkH28jhm)7uVAv;e zjM9iu^}8NHBb%0j+MqfwE&1ne(a?1)lz^DexTnca2@>58MA;$x3lxmLzBatKd}i8j zTY}B6%&!U0P%S?t@Ee8m(=KwaVP~`-H_3qg{amwPyMbZSxdj*hiMz8Jp(G!Gv=Vj7 zC65>EmCb$_9hUu1J&e}fMX)}DAdzICopi#&S#uV61EJQ5xNG*tIV<#cTas<}Fqg3v zFIzp%A(st(5)Zf5gEn9sbt~ikw2#!tw&{G4U9y{3G=p1$4muPOV-S8^TTQIo>>jYI zG-+g0ecB!21A{soPR&Nt&A1Lh`q}|21aaAgO3@OOGeA^@>sX=`b;Zd6IdEdgJI0Ly z1FOuI6D`YOJRIR@IySmEb5*ZoK=bZu3V~G>-Mv$x@~~r+N%$2@Z46PmOp|@@@sItV zIhi<)YsaMCFszt2ZM6I298Xogwu+O0>Tl3$1s@p0UAX+~RTWk4u!v~(=3k>eZqn)3 zY#<~jC<`idhJzweWk^WK{S692zKBJ4bxs+`kwW1O_aYU-jmc>H%V~qPE}=?K_{T?FqN8w0@0=RX;6Hn4~Hc`b`zv9%eoX0v4prQQADd8|V>RI!r z#^hO#{c`(e#;+y17fcdI$SOPvD~((j|JIVNUeC;tbN-{d^7PxSPpIYSHDjB><#%tX zf+E!J=c1<)Wl$mqNc7Ed!RjkTl-CRs=rffO1X4K}SIy}})rcliKKmIrFYscl=BBTx zx=aYw`Khpxu+AUBG>vTh%p*fefsh+pO`W>St-@Lp3}ES0N2Qh_5E5GFG3^6o));*k z;CadkkfbD3$XsrSx8yIdh7E%>J}5=o5;cw~F2t|4)sxKvnSa~|TJcB6a9pg$L=RTW zJsKx$*O~PZPl$|POE*-z!HqAo5i%K(ibbD zhTx#a7II9_UiLO1`DF9J&6{H3UmK65K~Ugwjx$5~SkKKJ&yHnWa0I`^m}Gr<4fmO- z_OwaIr%#sau3sG#GBDBxj9^LQQPQ{74F%;^4T#pbnf0kSF|_0p)MKk4M0S+u;eWAU z6k{G!+J@qI60hal@Zy$WJl3scA&ou?z4H9aY3gl2i#F+8DTIub`yiP`t!hvkbmRO4 z#2x$7|HEEUp_xd1fK$mX3tFSfhVO`&L*57tJuLjw41JC5&f(X>5G=)F+*Y;Wo(M5I zXIz&5Ztc@BAZ91Ed~hMH< zS~Ln4^?aQ7TY@Hm{H*|hUIn>YMEwff76JGw^-qT|;--=~6LZan?ciQt$Oku*b#FD; z&56^z45HL~^?e;~;9yDqOf9uBn15ASHS8$n#dg2cUDI!wGS&84nwZy}nHqJ^9^^;v z=-!%lFm>~fTpPP!zsWsxKntgjVVk?;))zmH?$Nsb3N5XZu6f-{!thW3ojIpkqGJ`l z55xy`UP<$uvgC;krJBDQ8W<4yd<6V1jcOo`J(BYrmpvK#BaT?-GX6>ZOYpdVT0gw! z4++7-9edSzQMTd#ize7cN4JC+uxdQBTu)au)Flg!Gt3!w*|}QB?notMFGK`1ep%6t zku!TlxH9WtXLqBgoPwJA+bW#!=*vopcu^xiRO|J@lI~DMhoo(oX?VCr?}Z(-!$Zff zxx(WEBHb7!LC3$SwSBRsLW_&SfQcwYL+k7`bMUVFcu^v*DbPM~Sw*dtBwoZzeWt*} z%R!M)brX_!X-Pe~0={%*uP9}09^0+O+5`-`#3rJzYir*54<+i>DiB{) zk|6-6eGePo-1NH8H}1UKs{I{oL)|_Y&J6+{sPi{{>tD-i!Z62l92*`5Z-BKwL1VvI z{49*ypgeqEJ(R{Sk;2)DJDBSh%5~2i6#H5=mcQvn$KT zq*~_c7p_y~JR*J-I%F&2LDZX%XGpaYzCK{R8lMCya7B*BQ2aIB81qWgh_|lTc5*2d z-Xw`!8dzaMr)K_=kP4$z&ytoKUAP~THN}KBKW2IQ+!ChNZ&Q0ufM#2X?fjV%cpLR- zdv~!?m(bQ$hWWlUQYnwTzRa!$XG2ZBa-Qv1Z-~!;ed-YJA4Ha1%K>nu#EwmU@==h{ z^&!_S#2gMoz`=i8I={2T7On8jS-vs2Y{KEBKvFwNRDOW(Y*3$giI9s)?tzqG{6(^r z@9W6=Swi7-9x_^krgN7nJJ4f2o(H~(vA%H z5C@U%Fnv#ZA^0}lVk3ODq4l{+KP{dfcUqzAH-K5kWarZ+|5Kr3+I9C~FfO3vlqAmp znPmDoKS!R-lwh52>}V1PuC+8{0(Angd8vLV@lC7wDMZkL36@J37%mANIJU(=asG>%Ww`OI00ws?F=OSNM;gPl^(MP=o4c4J~UMJzAPt zWayGv+O!u&Ev&AfX$EqNIy?CiKd@ugG1vbGP#qe7OA-%OL%amXlX z3}N$5^yt~r-dH$GypxRfu4F_u!!`A<(n5m792YC*&C==M2mpIXTNIe zI8_WqpPv*nDelq}?m<~zCrL{h{(Ik2BG!J6?6kRSLzu)Kv6|;cw0 zOT2qCI@lsr@i%P%rA$Gm-FJTCER_@J{hC|?FSS*dwKheADRFq(LZBKE(CS+0SISvf zC-fSrE!wUJ|L)^OqOWU{$9Ei9s?DN`lx6I}%lqYXSaoE<6MPMTb_j%$8@VO?%_i_t zXkjLx*oE+pb92v~RT6y-4J+4OM+naU^fnTXsIDu!36_~o>jY35!U~>~*K(tEElt%t z`QFG2|KlH`eg!b_)gQ; zKyILXgS2QBqnEYqMLj_jEq_o?H>RX zBh5kQ?scdl>(x%5a3gcQkl=i~7(BF*yk@NqwYv~o08$~p4}#?tL&s8(?YPqNiQ!9D z{vmJHPb?_81SV>Sa}PVdhW-}`jO(w5G{32Wv&4v*KeDY)oW-&V-21tI_+QURznq^>}iT*IE$os0~~F* zL|Hkm9Uiv@@PD4_e$%m#;lDjiEUXB8yuM!UC|V_CEp*ci`(2tOD2WgRe0`LjFR`Sk zBx_&WzyLY%DQUUd#{Akjgx1i;7VqhiAhT-O8K;E`=SS87H)cJxb)t7;3!PJaalg-$ zdSr7aAlnSMQVWNWEcY~d%i9Y9o0hX}2MHWf3hvh{kDEH-<%5|W3wPRMO)h3{|H6O0 zrj#|M2^Zyp_f~ry_6SKaqqh9}X(cKjy7uaYhXT0*hRi+(_h>Vu>)-m=NsZ83A`|}O z6t#&Av0})T%EEAccW_95y|8yq#%rAqo_dI%qqI=nV${v5Mc0u9f)Vk|`>&D67-8*s zv@jHB1YM=S=RE3Kb$ShQHD<#^|5FdMA$DWC(C@p!X{&_dLWvh-9DpH%Ydi6wH=Qxe zuFX{DbXgo#Xp1Y^1X2kyvo$7bfG#{`ZFyK>6U!v&$8q~>UY5vC!y2@&lo@iTVL zsh^<48Cb5CrCLNzUB0h~(OC8ii*3@yu52}cX7IFYB4E8E;8KZBDJz(s>0(u);q0Fe zKBK_i`t9?5Ky5-%ckA-<#3GKp%4NTMfriN38LDoA4uc;f;LjRMO~d;;(Jeu-v?oD= zWd9loZT}kq7&BkL`1iSM!aYY5$Y+^0JC5=v5+xy9$UaT3Me@%RlkDKT%)lMc_q2QP zD`7WXZgQL{hi<5L*Stw{BH8_7x`f*-nH0=`^3_L@BliGoOG@fU4~N{^a?lU1UkHcl zo=!?DJUb$Mq9&4Qu!@;Uyf-xC=K)w)Ll_7IoNOdrqx6i0O_0p6M2?uLM(NDQ!w-?f zSfyZi^qXXM)AgzT2<=!C`T9>Y*5BwUXAlUP%rcY3{X?28{zF+!0Af%WN`xJ8I-*1k zN-@9|2w#TPEcGhP6A~El9#Zp+k&L-K{qG@?4=QM-j1v2lf9Y&3C50C4&rnBdKJNFW%5zCpOH zK1uXs?2<5Sp+k_@emhEhDEe*z=W#FWW9 z;>zY@>@~B@ER;siowhK2j`ji%6;} zaU^P43UyICiHt|Xr3|=r)s+Iy+A%OdApIHPC=ea?!#MJpuT|#O{?Bb@NB0&+QnE}AAx=L#eeMJonr$qcgW9hjXrzG&_r4JFj#+em7G zD)mI|7Vd++h`kc_^go?90d)`?!JKB2G3~oh&y@|7Yb3-nEnB|?AOe4ve{-@=EgsHj zadW}@@qvtpji6$ThZ&U5hoX*Z%2vG7*`FgGYc!@~**tBsiN`;)z&nOoL&Ap|5gng@`8md)T{rf zM@j@J#62FG|FM9;dd%X&;lzh9q1_nXdn-K8Kl-)kWAX%(BjwhZyB+_iPoPKp`!h$1 zgX4H#Ci0}kj;8t5k?g_Awc3^1xDBOM{HLs#<80pGNrb^vDgqr>^Jq2rTm*dh;(`=5 zXdi29Fr|1Z=IpwHU1w`dbNy!3v3I3uJw9Ti4jU_I9ioyqN|o-2h)A zb-lb3OuvhnE}Vk{V&U*~?z>&qgB!}^QSPyx0XueMTTK_NR=EOGfxQVUG!+;Slik~e zwdJrgbr+gHy?D#~uRQz?we~jda%e)35@D)1&*{{B z?lJ*$W_98Cq`++*Ww9iV_apmr@eCQ8eG*mMz2(}>P;5>NzSL-}DUI92{@(Q}NBy6! z3_9f#a^KV!o!#XfQwHfxX`%vj5b6Dz-6l%@`E}Pb7Li3GgwrR!jtzTQ9uivkuFtkta@?QlTv3`nie1k}JI)#@$uV7$yutwU)9$7s#!O}k|Rpb7#dw=OQFyjLL@6>dBcw5tIfP+JvRK6y-nlRxdWPO z#rRM^tRoSDn^%5unoUy>yQ99biPYRp(09WT>uU;D$Kk6`r)xN8ETRv1NVLp+t_^>a zlU=^5aj-d#mDIU5xNE-%hx@96hw5IdWt-rp6Txjg7w%X&(VKZ*qrsibpOg~fE-~k$ zfC`yz+;){K^DgqkNQh;?){{!YN2UCXTkFvootn(FTvHcyM+d?vk}xmEkLc0AbdPzY zNYgY7a~ir6>2pwzRn2>5Z=8C34(qm~f)(V++95C#7;QXX=MWoDB)JUc)_-kEL~~ac zRZwX%h1@o7o>cgiNUS_%SLH+b&G-JOj9MAZ@H<*!vj3AGy%T# z3Oy+gofy5LK9stWkQQB-MjBS})E=QlD%}`?rVpumf2Vv(m8oT}g!^a&n1ccOG~*N1!>V z0}O^9gjWOZLlg+J)k!ufBQ2xEcyK5pHK=haCL;mTM7emYsR=IX*K# z#PHhhP*UG;tHCHkT4y}6n|3<#a?fY*ZnU3m;FzY6S&l`Ti35Z7!{)woSFMpnHi>4# z>}&J}9PbJkIcDGIbU+xj{FvB$lc;63frFeYFdht8r<(m+l!Pz}-T?QO`HfsAtn$UE z_j=W79W!cnj@VbD9<_x-9)^O;_GzgYw!G|yP(M`V5~7;QAKZ+h$8%QaD{?ky!s z*BBS&IqN6O1H)^I7@D>#!OC;F*Rhxu2M_ZUyj6HCGuMfV7foklc^b%%1iOrI&-J7; zq&T`mM@2xW4MK5bJRgekNx2&`(xt`Osv8gB5uCk$kn(FcMT8*-wV+hO<7pze`a-&1w>Z|!Y~brtvcXg;y~?rvK0JHMb6+U{DOlg> zy=+|j<+MBeR1?UL%IpC%C%f2CmGesVSe#2GfV9{H zq*$z8tz~Ljxs_}5cWTIDPUm7`>`nRthi&P1-Aw1sFG6=oLZ6F=s8G&1iKbP-Ll=$l zIkc!A^|tx0>tpsv9L#?OsPBGAfiS4a?uu-HwTkaa5UANcN69xm&Na(Eo~s`P>wbvB z6_{j^`6VF;QbpmX`euZN80Kf5 z&7qt2to?Hh3m*r19+M^FEPK1Lh`{GSf1AjzUU@E4ID_bvp8Dnqo>1|^5iTDeVx|AW z%2ZsO>qTkW^0qJh#9w9O@-nH%s@91}Ja*dJd06M^NASOpg&MBiQIM(q9B0$OH^jD2 zY=8P$8X(KofZ>HPmn<9cO7OUNfXG3AysbL`_^nkycQV>aW+P zyC%uHce$J2UM~A;GoAH3aX=Yq{r3b64oYI<%wjE$@ziWYM0tn^n-A5Zl8QW9$mnffT>Lb*fk|7Pe4CXHNZJgD%pKsq6dMlkQW|j z&-wV45$Cp-6Q|o=frw?t1ea`q8m;EL3^!;3wK;oTX|Dx$iAs+3rK3OdyVEwFXUixC z#!|p(Cg-3ysK{4dS)_npP{j3EvAbbI@I=+#RCZ%5wWWu1p4w`7^BEPbm|orbt2sm- z(4FRN^^fp2kSKQ*|LzUXd3>m5>Q-%--+m>rS6jxSn|=6pWvP{SWU&#e-|sWU7bEu3 z9rD;-Mrr|Sw7gkkU&g?#c_(T63M@3!s}los1nLaW<`4q~0^}WN02r{~0U(hu@vARB z3^N*!rhtKVwQ-fb1?T%z%1GM&6U!<-fvw6*WzRu@b4;`9Tg9{B_T<&Un|Cu*G^p)q zgBwpsK;__3#x?w&*L*@F6uGlqiKpvghR!Oy`|?kMtJq?f^yr0Y;j-mR?~VLa%-ijz zgzfLm1#xYTOdXzut-qxj;SbZ8eBVEMv#g?Zbu{V4Y~6453j!=5u#W0=%?ffg%;hjH zDu{%j=I)fN4*9vdaZu{)Y3vSWB0Ylu4xw%x=uZ{tPX@FMcQtv7oz98o!jw9c@Fz%A%yh+Bc|tYId#&ZNL(_-Z z!&qi_!AVfVeB?X(soBJw6;iB>vrjWPHz~QEIDn`)m+hBE=D+LWK`M!d+OZ$3tDzNL zV6cWXnVh{YB}AYkp7jazsx9?n#m&`A0O#6SP z+U@3X8xz&`$tBlZkH_oPd++y6`nCVZdAwn5dhf^Ae6j#RmG-*jLw2*D-e)v3@+VUr zPoVjKOA%RF{#%Opzg5EjsTA=)$N&F95xKay|ErbQq9+?q(1zM`UAOYs2lPk4 z(pvXH5(t!6ZGbNE^eWTqkhK;dYOy3e%2*< zk8>a}Kr8A>aeE+WgSlN$suUWLT1bVa$E83BO5KJ^Lo(U#Gdqgb%wCloXPF5uB!K6t ztg;ve8?{XnEfGjMoYI&gnxyD)MxEDeX&aco&Y;3*k*1_Y_Wc~?ODKDM|3UABxv}#( z88m@(k5W0qAIN9q7eN?_1qEY3j;6lKeEYBWI#G8T>1VepaUtf^{DWmEXGj{b_8>EI zJj1MxMOeikR%?iKv44S7F2N=uE#y>$RBh~4Y%oSG zy#||JowLe0ivDD?UBJul#mv+Nv!Cq#L zQ$kwTK5Q79cv~WLW?DEegcsDbTt>-_xhsCm|6aIQZ;$=wgEU=-^ZB>$`}~yYPXv_6 zeH#$+S@}m<$_T5<=KXm%h8?-29Lo{OR*NGDIe2&!8vuU=Ocs+9 z2%HLjpO#`XzJ3c6q9)>o7492|#Uw{$GO4)D-z36aSHZ~<(ozzi+?$@vK>_JlWHz0h zWHj>NB~M)pMU3lGa3KT~H7nc6DZ+)?je1(p+(1`jWgekVN97i&o6G%D8YpJG{-R1t z4RvI}X3tv0(FOZ<5SBwBv&{+23U0(aH&Ik<_Ls`$s@HZJ9sK3sWUNu)!}gQlLEr7r zKCo%t*`zKKEuIa}S2K>OKIHuK9jjHoNj@@8NX|mC$wu!l=6o(@2d+x+OlXb$4oPNv zO?U53RPU(J(^_!gn2`sn;=dV@kG(zkpO~4gudGJO{6nd#qfsbS7v94=Ae8!3KGLS6 zrvN3Du^e2RE+ATrczYJTGcZC#o)+#iV-{tVxqws5ZwkGpco-X`I$ot)S@e@S zZ~h6z(=3c}iS7+TOijZ({}mBE{>9x;7k;A@?BG|jwOgT>s~bQm_W*G^jKUW=)u>VY zSqNSs0#wsun&^Z%O{XI^4bRz}(0_o$H2o}WvTqeuhP;c7uH4=g^UA8z!lVmEj5Y5u zpM3HrYS4PdH+KPgmvBFc^*#C`f`*J~o#+RzP?2uIzEhDwGvsdFU1dH}j&>mw7K8_M z7krxx9lu`;qXN>>`Z@{bni3@Ss$GMETX9I^rHzFxh>N38U9&YljM{|&4H=8dLePOrX`MF2@3;qd=yvmJ94OMGrhbA6JSlSSwm+E6z7Qz7R#Wr|_Iv<0nzxNAe<@E}ZIICC;%lOPn( zS6igd3j6iNzK>-5q3agDuELFzqU&a8JNKQkr|m7fhgdBlHlhwq?WXwheq-Ln|XlpYjQ6?2@@v!Q-m2)^6)YphSClND#$yr=}A;B zz0^FvG{I^_~Zn=2i+&D`2sJC8b zXhTl=A_$>OWHZc^d|ue41+zQzT!V^s%gmq`?N@+cbO;p}Mz7S$Ac@iTn^sRNh`*(M zNa1^dtd0dy!Id~0NE)wj%}%qAs^yHkBM*o)WZ*A~%Oe$x7>Apb$jRKmQf@yJY6NNv z7ep`XwF8upI5vxSba++*NhTkMB-n%;K$~?aM88_R%+}10b^%HwZARGH@YaJ2;jWXV z=}=6}ip;w66%_e^S?eZc?pT~(l$KQB(pD%a^2bP`a!!#$xdcKtaH@0U>#xxDU(C@0 z$A5DiVsptNkJO>wDcsGuUnsPHmPS(7oO%I(*f2p$VjJyj7W$|yeJ?X#8pEoe0p)2~ z#*&b=>mE?3G=U^;1PwGw3cov^C5Y?2EMw|paB}Eg`uJbY)=oPlQHBZJEN#ig`D)}% z$1m0%SjJRk51_Mb+ZHZND%f9zjoD#fL?z6&&^4+cC+Z_iYCI8d(p?&ta)5~vm_kCC zrAQm}PH;b7f;xmQ*|}WJMHmE#7cGny8M`af29+zA4A7OVCoCK_Txc~CBP8Lx3#U6E zJ9`>fVBABiG_*+x=d#>yZGAaf4}n&5%_-Nma|q)_&ui@ldiyh04{29C{I+LOC3g#- z6OAq0vpxm=mm{T;D?bM_*!7vLWEcldSWWmCL-B3Flf-SLKin4J5Jf}RC!52ulO^UJ z;@r=2CktZN2$Xap196=a%K4~CQQiJ(Z^mzy;KkvVf{Jlosjcg`mFd&fC)iiX`Xq8? z<1a>RsV6n*g7~R|8#V4+J^wx_DXd>prerDfrOA+RF|)$2i*CpoVh4sB0)nU}CZ*dFIDFSox^ zeK#gN&R+1lT@i&Hyx>B4sUMtM=pJmvIl~g66YEcV35Hq_cuA$ty=*r$YXIWk+HzUC zkPcA4izO@afdL6f2>%M4)g{Rx|BGNZZy9s>$LBA7bjZ@7rN}^}Mb!JSpV(r}lw)~V z$LcOZYHc1ogdsw6kJJ&mGeYCJv4(TG&D@}|T%I7Su_{Nv&=r?}?;+c>So@>I>=7mz zDZ8OxT8z1)7Wj3`a^yVs0bEgEVzRf{t8gzg4uBFd{8z1-;#2lXLi;wSC6*&0R630* zPF#(lU669g(8{_*v~|8S)m*{lX*gn2CWEdh^S3E;6qq)DZ~YKKfcGkJx%)S33=2xv zAQ`d{NZoT=fzQ4pQT4jfT_c|7&eX?}bP zVDvoDR)Nu%H9L334nIX595H=;0J$I8B9c^f(DKBSERK1NA;E~O$ zYMQs_N^t`AYzMf*PR6)cz5BULOhp2P{*hHEMo0qcZaR}7EX?oq%=-Y5GbbE&VgGb23td{Lk6>7|? zV}i);@Jk6Onjdk`R?>+6&p)cZJbhrZ(wD%>VPJdJNhexRGVY&_7{TuIGzg{Q%=LhNnw$+i)V)ONj(Yvo-oB9=S z#)aOCSW$ww#3Jv$Qr(Gz#ww%O-KKbZdRgjReJ#OrY2qIa7>f*jo~ zg;K8OPkdfc?{&v%T7{-(x`*Q94K^FZvP!j1!)Lm(Nz6U#-c<&c04(5D%f=tVX|*ch zu;?F9&w+n+&X9wrro!%INxSCTtkIhVLbNk$41%(v^5N5l-A9?ML#f+Ey!pOUDWOqv z_~pNmS`my({aS}^1KlT&lO8pw$J-s`YLgtp;AhJ-pKMJhL6|O4D+Pw}Q@4vRg`XfW z&9)yJmWC>YG{IVG*X`N+e()$h-)A`8E#sp+c8qGef4!qetI75Vp#RJz-H_^Xn#4^e z+sJ$SdX8PAa1|Tkk(UHN!;(Fecr=@?ES6KWiuC||GV1@D7u@r%ZDI77qOE3{kac-u zA41#~{Y!-+#+v~>5r)Y)<1R!2z-xVMRg$-xsJ+tvYdnORfju3k-DbGdCGa{~1##S5 z5bbK1l6G9*yvmn9a5g{jHB>?cUz48_oj6>RliFj~cX?BPl?;v%zOC&Gn}yoe{OI{- zu)lQb1)AnOr#WK^g2>NezSj<05k6ZlqUU(=Ay)sz4ANhQa21}{E7xwSnbQ5J$X+813zM<&RXi1cS{FWn$82peRtQKn#qF1I=e7r*W^UOZQr+0i z`*_%28bttGW`M1a2=Lm=B+yW!caA8u_j(>2Y9yVr?ql8&qk8yqbS8muatge*t{j{??9|&Q7Y# zPx1y-SJk{6_NX`Cu2!K&@+R|?Sm?3g)#o)PTNXOs<4$;cP^@7>a7otZ63!{JH)L|# z2Wrca6rzjX*ASLg>tUi2Fv+W0>N+5G;jfscH)Y#gJC<@xz9jrIJe}!$50F|&wG0+j zJdRm)Gl_`-f0;Gx)e{uq6{rj}e=R2dT4Dy0-8`O#w`~jhzhB4azMSGW*c^Y{EdMq9 z{(K$ri=6mi(zizK$LNTOyC3}qT|cJN{qI5Ef6}}Ehk5;99gzKhwhs88pcs&mG6ToXpoS?3d_|JS_(8_YGg)P|BlZ&Ti{_}uRce!uJ=Z~OT^ zzdpZS-(5Zb?Tz~<1fGZY^8fVnlJXp%YICP49Wzhg_I+C(;3EFyOQiY7@_K*zoD+S2 zT+R3XYgh1HDL2_@BmFD*(^o}CymU#2GljXoH-97|Tcy@ga6NtVB8*t3f?f9r)$=Y8 zyN3*aFRorHH!4{yCArtOQf^37bp6?QtFwzdrAc|r=7azhOL6=9KVoB(J`+X$g zX`nLSMCxkPR|+L)vof6BL^cmdN&GRA-Mprz>$EBVs>EEtp)*yNeaHR`n?fAiHCwAH zM=?uNBa%k_RL1+AP^xzrlg|!mVewM-8qVB-MPDJQ`RomJr0qx`l0Y5Z#@;?E?2(rb zQKasC<`c;_hv15&ci~h;v1pNqtV zZnt=4`L5gNestXCj;#vf@<;{6wv&)YlnrrTd!6aU)a`F}asKJ|Jhq$VJAt{46ZHP` zdP3?X>8)Aj$cGXrA*O=oN}7G=MeR<;HM8-4;vNlwy;~G=V6;f9kjbCQ@h)FME}!Hc z)1SkI*8&(Jiglw$5<#4y5T!QrrmmN!X_>Kd#0>$0Ecanq#|ea0bZS_pYQ8FPH*{yp zz$Rm-iK#hmA;;zn?+syrMOd|Pl5VLf?Mi?IVF(Uym6p$4gl%l$dK*#!VaJ-PN~1I8 z7gQQ}XR(In(4{otOQBLH0+DWhY+QxQy9dinW6$aDqZC3Gmi(H&OvSH0pwEO##nF@) zY6)%C@9 zFdZ=uL)o4UWZW?Ew=O7pH>7KMh*dT0Jg(7zv!kiB!j=PjUnb-S+%v3d(a>#qM(-{s z>^Lj-Kf^o&PLKl#kheLcq!MpAw6+b5jo>PZw~HM=8t2lI5$yKnaB+Xr-UP$&3_AZl zH$ynU?mYesbZ}7UKPm2vJp zdJgQRKb@OYLxUB-`I_-3)?cKr;b~$>I)OBr0n_9cXc_EL8(C*;5A|SuVIlyv>NaE-rEdLi4Ug!(XJ}0J`m%vSLyFw!@J!*_&&30;?4W+=A?z}*zq$URt#qWi zXA`@|y9pBW5ywv66`sv!jrChKd++n>oqb4}!Zi_2l!q|8ra zvRZV4^L^`hvYCvQvN?nzZiim#7b>jGN2mRAWQjZnxE(ANMy2r=g-0Q@V8tjm9SfFt zaSX#4iuYbZW$oD{kj^jCwD{YPR2DBgW#~y#UgC}AUFzfeq_>jQ$q)jIFvwJ~3v@+z z;%VJ67w(o5VZo|lOL0PnToXA{YV_d6X)|+`>La*!RtN)z0^_I9n}x(9SLD%Q#cke7 zY5f&fyA*TJD=M2%p={`?^@0v(I1qg&%2j0H1_j zgN!(HmDPWjxpAibt+_UY2ZDNN?jmt>I_AU~S)uIC|}mV69s zzrfEFR&iiyXhmnVwZ->I86Aj-|LOf($mgM|l#t1?&;WA5`p^70#RVHkO%~VjYYtI` z9e5u+IJwN1LB}i~9Ie7?(h1;k#j@wPrb-ahcUL6HUr^E%zl*sDlZ?$mJ=?@8_G~W; z#Lr1&P(h4rd+xHH5+-UMrtn1<&bF=w6pmeP#dh`)>h;@3A!qSfYV%GrxxVt*qvy z!I-`%tQ!W3G`Wf%7>#D3tvw%>GoL-rhauvprfv5_SmaiDPHuTR7ro^2Xek(!M}2#~ zY8}YVCW8Aj`m$(lX$od~S5azIpi}3}8jBA=PpjU&UmiO8%!hz=`IHzna*iu?*v+kR zO5cK3#R&m-(RS8SNyr`sNmf7@1Y#TUtNMVuB?lb&{N%(u%lN}Pl>4>0lP0UN#XRly zByhEy%uLqHVfhDnYs&FD2*@8X%R>$k$YxP7I9DYdriK%!$z553h2H34E(Hk_a>9(y zBcwRW&JA{D|0Z69YJF(^ha(-9bH9ak8GAFBwL>U1VR)@}l;-}@a8r+No4Zv-Me%Io zkfoXIo?OF_?bu?H24{>-pOv+L-y$aZ-SbZM=f<+^pmbY!ho6CT+D+$NEGAIFc^POVA)3w3@0*^_U?6=WyJsO|6Tc`!efkhO7LmG{&)EX_AeWGkOuM3P@{-2TOq)$> z*Oec*^e?pp;B@d5;@Ob=TGH#4 z7c$*vhjeQ^tC`1WT9ij3G{Wi8D5A`PW#00op>kGSTFJBPw1&S>9DC2b^s z6kXaVi`g$Q0LS!=P1AKslz&il8@nJ9Zu|k^LxThHcl zul5XZp+GpniOd;{J2$S0Jvbr+$ETK|FeMIm3Pl^F1w6TTJJi}@6dG;_E zIGQWw^}$gfHyGjTY1$fqm-h$1$l=&5a;jVQ3ym+@$7mB*7$=| z1l#C6`0!Nws`Egl=z^Rou>7DwH&?H@vL$QBraE&5b?fFjCCptx)|*`zX3TpX=hnT1 zN}(DLKEe*)WOrgG==-s!=?&1I{{1l|S`Juca>&uCX}PbsETYlE))^%4(jkkKKRy@wxmn#g|=rraI)yw0Ne1Y)i1IlP<4EC*)H52d(F#U!T2%f-|so7N7X4h56Kz zpEI@`s5e`=AK*9BiCMzS+C2O2W;>Ppk$bVNXxljd5wH&4qSLT=>Jy1jwPCprLw5EV z846)~l*J%_XZ0u}Ah#H`y1)UItxHR_$h?m}-r8eIV+DBx9Iu73!ZT&KOx1EG{oJ z&ZGPPoc= zWFWuos*n}743D6@TWC5l!)izY!$#iUEA3=%OM3Qne%P^eD6NSly2?*ZC^E%r9oPDc zq|Ebh0s>?_I(}#_Q8;`b}1>6ql; z@pa>9G%Mj0pSsNRFBp{eRqIyMjtjA)Y*bu^gvylm9x<0@nU z<1H~t`g8>e%pkBod#B8K(sG1`o}9}OgE`Lcp3m`JJr&g4)pK0%-5%i$0KjG|uD6GC zjr5wZXrhs-fCE|=jp1xj+1n2`TJ7*y+jqT-jKHTfiK7PEo*vsMKZJG!kp0KVyM`n{ zRWNQOP&Ts_^?2(8lHI!n&MC3gv|2d&LAa1q?d`+1?U#)?$ffwy>u= zp`;_AE_89nBfX5F24}Rh&pf7J_~6$}{neq)f{{;Ym)EbmtYwj+A$h)RPaE1~7Xnvx zrCEw5a|&>d|)?bg%F2zlbcz6nP&Vx zJ1Y(&Qd^YrrE*{%?$aE$_S#;SIxc;a-hBBR4?fX@9EreVkwzoaUD5qSLHfYy*`v8< z{ryNbErF9z0bQ2g%UuLeo{(tK$#YZB96lr|f#Z~+PX9C-WF8m0ODn^Ti{h|~j#@|> z$L!efN$|1N< z)m9p*^>~+gYK`gjKx$6+==0)RKT|n>QmtkdA24z?@HnI-m&kqC#=NFk@SFe$Jg0s0 zqJdME#%I#R*+xKyGN89NKNp@!$B5f@=wY94gG7p@33zrB$9L9rUA~4;diL5nllr4b zF)yOXnO^yZMvudaW}^=xZIWg(g7CC{8jG^Ru4?##B3rkWNEKZo3<449v;-{{Hndp= zRps}%2j*<0n`CB4m?zzgOpG^MdCm>#-S#gj7+@Cu z8l0Zy{G;OOg>d=~VUg^4%9I&^Y~={Y=)vasaaVClM|@+EM#MkxI#$$!U^*<>rE;u? zGskh?D|QSU5_G|)+uz1inyTKRf7I3Acuc5_+tVeW~HPpYT~F|L(-WaGcrnvv9qE8CfY_l3aLQ(`*&^Y7j>r>SP{xnv0H& zYT*HleHpXGVsC@WELuoG88(mFJ14$*h>{!c28KQ?*=3RF1O^zJN(~CHBu(Z^RqGPs zu}tV)$w=%<#54{u6NxNJ(~(oh+&7;9yPe7*fJiL2+xw1@=yhtjp1kUb8i$oW#*eIL zt7AIR@Y3q>@TW$HI(|VX9Nfu-p|->DITP+hW*Uc>8Z)c`R<1S0_l_~{+q4B?`&e=* z%$r*TruCTH#o9GBG~C1cPSs~t*vCYof$DuLDCY0K_0JY%6E**$w|?ZYr>^5kzleX~ z<~^A|8le$&_Stm0-pCFg^P<9iQ>Rsr!;S#{3}64eYB7;dmZB7v>Z!8L^twf*U}zQ& z!gl*XN`i%1nA&YA6G9BrJyUS6)v7|FTIW<4a&uI(?7-bpPn?pxD$c9YjsjwcyKtRk zc6-c^U8ld5KCogFI+W=V0S=TDfPF^t@o5$LF5UET}+k5 zb5+j>?1GdS2Hkps=3%fpETgD`3#-!>Ml>}gGyAgIYDpQfKPi9N(gBfx?Hun=hGbVd zVu#`M-fi3pKRM~ab0OCu&{fjO`RN=A-;1nQ7YnmIg64DM4++E*#I7l?&vPYc{xWke zW%+f-SAQXdhkzj8VH0)i$$1T4*1C7J-`Dz2S&_-Wwnte6vd$tUZrgv?WT^V})Jo|0 zJA1u{$*Akd1M}xO?i0k=q+y?}rfskBT!W^is7a2#pIS%9S z5Bi-5ynIuhlf}|PZq?5(EJ(FXuS&nJWrT4W$QcMS1XcsZTZhg_u=AfO?6 z#iXbdjo6=webhlgf#mQe!JTbVXfUukd#9hjN4Xs!$DuV5N3|-&fxQ$5AFnQ#i@+h3 zcmAu@eW-TPiS%)Ah=x@oxS2rj!L~aQEp=9lCxo~rB;plNh7UaGXQcfUJ?%;$ zD2*?|dU`?yLT9xjsUJF!e$;Avm*c%;nm2CB2=_py`-EC5kk<~iZ%#aaAqhinEo?1;Q{ zYJ^EwYItvZ1D7Dps^-V|^(Fr2DhvoJ6KROQL_=0!E}Ml;%>j9Ymc5%cN+Br_FRL8C z??D0yDe17#QMVa>r5aFGRLuCLFS>-Z;bMnKX12EmFh6PR1jB@)R`z=dpQ!w2)FJ)#dRHnWlxMZO1B}L8oVr3EJv>~g1p53 zP#kjla}@A9RoklYb2x_wOhZ;*i;}AFpxMr=wgKT_m6D*+ZueN8>85kbe5cRi7vAQemV$`anM9i!1*9vjwONLF=|mgO0kj){khxuMXM z7qzlO_CH#{|W-Q@% z^LSDjbAXZ#sQicBJ{MwN4Jn2|4n-Uh9UR8sLQWahmLCA!UqCSA25$Il8bWdZtI9k| zsLdU@?nLcgt&OfTUr)RMnvN=x_#V#81-F{R0>);8f!QOrbhKwvvyu!LDR8u@)hR_)A|}LhAder}G5L$B&VV?se>DYypXHG* z`V@pfDmh3?3E=iVT_VBu$bV+%*3&Z+=Irvu?=nU_CdYM?hU)$)eJs9_-1plSh&ZFx z?kV|o);*+0eil1@v+Xi3Q6Q~iV*JWG3NXWb@9j>3V=o0TzOQaqA<0m~88D%)no(IH z_K0tdWxI}qgM{8qb|bGq_+uv8@2u4j`0bUJDcRLd&VTPl^R*yN&V{`?JwbzqqTX%H z8qgk;!1&3`k66Lm!jk%3VT-~DXbM#e8%%%XlIApQ5kf#7_^=S+_{XeYlnA}JY2n;Z z3@S_z@d=_-H|amjGTUR^yzz)Y_|4QS1HpF~**_B~hc?O#P)|PUcadtLI3~vDHUEaT zAS-W_LDmx-I9;2okgu=90~#63>7QF^%X9}|SiDBa5^0;ROh7Yr7)sUi{;K+jRk*jd znft71-{qX%W=`_B%=e2pCaq)O6tG_`ZY;i4E%qkADcgHyq4wo$7Qfl%NvkF=M!?Op z?v)i$l%z$zb{xA?L_4?FzLSe}p%B4YbQLsDhb`dPaQ93mmMF|6yZInPOG1hAN?A(r zIY9gqh_ADMc7Q||_No6xGW-rlmwywq z^H=Jf?ejz2{99QC)!6$eB`pY(n=mk_Py&#RJ~|b>659aPyHgW>*12;{N%!Im@^A*~ zwzdEJhe@vhMG^jiwPl0Q3K22d>Ho2T8`FPbSBoe}NP@Zjc9`Xfn!DeBc9Yl#Va0a0 zG+zzPENPP3ugL|nVL9U(JCg^^V?MMhz2m!QdV!qX+uIK&&`jc9hrY(v`B1LcTs+Av zIRV_DwSSHR!ICeUVI@9QaT54n)xBeIEpN9ynqHb$U;q7KRrOp?KWol@dR29g9&-#d0=&3DH5?J{VZ&3Z@{VgEBaM13 zf(VdXi~33Gy2oq3KB3^W{Fa;qI8aD&YAfmk@W2|2D!R^X<=4v)E9j@y%lv}e_mmjY z;HDz4xbcy!`I1F~?OgEjldTJh3U5p!4SDl@SHt&x*oM;t&BElJn$xFAvI^Z}$YUfE z$#Q`Ko%ktpIDO~FwRKIRdb%XvA(bl(>D@M0G2MxQn2in?ndH(L)q#z~8C-IaT7{h}X1Cy?Pb2#G+bkTXR}33vccO~fmI5O*b23b;`a$wFxpKmM)NC#n*YV*f7^BPl)x zZe~oUbr`uDn!u**mS&K{lDtkEY4b;s-2?PhuV167o!LsvUd|i`fx)MYK^ygf|Y6nO*qH!DLpKn zO*b~JECRaumdpF*&3nVzPxo6@uE^)|EvB+ChT*y?a4bNgx7b+o$^~z?6--nn&3I3H z2E|*(rB18fRggfs*_gfYx$nmDM4N;}z<70+2GvRir^zYj1Cd-Xc8!BWj}AM$hAqt< zd_C_pLEREx6;fAZr#E)&o_zn6`OO7m{87R7bZ`Nowtc6%0_g@`M`PR?lKPL$jq@c3_LF zTpy#1g;iNCN@aF?HUWb~j=e4|grf<0~Uw6lbwgUV0}erF6Zn3;YVzI%cq@ zL+e>+1BO2`%*THKjX`gVx6L_EK2@h z)9OaWC*n$)=6D`+M~=LwbO_#4Wp|-fQk3vxV{~BMD`U!&J-X-+9b~3w4uBYWsQABtx7e{o0Ct?Kb>mk=;$9n}r1!Fzu6_#r%TNA9+;xgd{PCHBQ)+7OFDwaSD= zvuY`!h0W2hx_wc$dNOAioh)%(4IoHOniP=GeZek2lT^OlEsa1d&1iTvF!$pLvAlUR zUr6~?k5E1epn|SJg`1onm^ens6(9BVO+8usV!H>BeM|94De?xf0SW{y8pk2 zz7i8OU4nWB;QR$<&0L|YI97=O+g*ay_HtW~ON65uZL{Ed5q8Rp-o%d{wg8|-y`B$; zzec84_#l9wUym!LyqzCk_qKoEN3yBcMvNnK??Zb&J}!L!evEvgw!HRS zW~7qVCpOI)udZ_Z*r;_Xc6 z8E<{+2A=T4(}?UhOtw**>*Mt{mHYMeueQ@tJYKKA_b)A8FR$---$odFE3&>m9$$aH zjWF7u5ZI3hlH_>2UPl&ec`hLSWrRWd%}T=p4DWoS?6svlNe;SbL_JH`i9DrTUsO1} z50}0x9`Dq!84>T)n?CNZ1}AZOg5%8XfnHcSrQXVg8>}ghT2@(-RX#RUZ}!_9smHNL z%`x6$;%*!?)ww602DGu*U|8lT?; z*-0!#F?v0OP;;Wt2Zlwp;vhgtqG($vexT5Pi{4PXy)zmiZLII?@?_6O-G zVxwvAV8QW#PaiH;>+_F|JQWVUC7TKEHYqOQZ%5sp9%GxFm~F4Xa~ht)b{<+F&l54t z;jmoCL}hWjbQy*51?y3D5llpug!cKHIz}FZ8y+9&BrtjFs;3^o?)I%7=oa~Qnh#^Q_9w2kj3bGP ziFwJS_J|!|YZHGWCSS$^~M94Y)Qa8xXDF$`r15J?v~*mP_`$N?~cBv0B!7 z_@KIOR;qQ{vXV8Z;lSm{em0)c)W~k+Rc!bLr*7MQ~VKRaok zM7=W5UvxZ=Fqn=E*!ovt8vF-t6(9q#QL^r>_+W>fvR7PSYjxZAuiO znm#fC?Ta5*;`RF(jz}CU6&Cw&Y-Rf8n_$;Jjf+aPB!hZnuxt-rDO|{jNaGI^G1%`R zguxy3BPR%TXA)_gVneu~X|EH`%e@hAlUUoEWH@<2W^7}Dj&o;(3O`qRJ8X9fCV{9O zPn)g9QMCFCuY==1Gl7HQkDR`-pB0S;M}>(>L-kguGzO{vF7 zSYRpqPDb5L17o_P_ydJEY1EfNz%wu8IYn*XX=<-RDSREZ&{f4>=Y8Cp! zz&1MO+1CWTNa!}7a^be%2JHuKO3Q<*7nsqG`NY|5Fl6v1UACccgB!Hh^}b9nYb}%>JVVJC&6acQ0Z8uu)8ju zy&M@tf@ko0{_{sGc>?|A9!h!?e?sOPgFLzqaXf-H#KRP{9cpDQnQl^!=crC_EbhT& zOc0<5rpC&iRcxa&Qwmu*Kchpuz5^?Q1S+18!#WUE@)!mW%Qx|4EjT=g8=uRQthd>s zb>x0;R$x=!u(lmdU9YQiY_}xbZFfSv0DnDXoFQHXQ2=bYia!0O+>Q{L?oUOZv1VaV8PXTh(3b>q~%fe(SDU({NnYJX%}>n+BlXHd{)VP zT7FbwWdEuQ(!1Z18ZgAC^oaKdYNY^Y5%>}JVkH*kRSuj|MX(*P=wB*iYu5TB6Z^(J zg^M)gQDKDd^0jWv2-wD9bLibVy9QK2143_gVk&GiTm~=7})74WI1ghBp7pkW(WDjIp(tL`! z^oKFyL$-@aVFxCRJhtE3O89^XzBhYCYSa8QJJI@40W>zoMMF#CFRgxOK}DqEA>K&0 ziU?^N$pZ9?O`i3Z*fY7|h#gJFmhJJ_VwkG@*Cr6?;|aSsXm^TW&Zk%dJaIc2mT$RV zI+j7F?|l-uTnw#q&;|_)fjTj|klOHdvA+Q|OQzNfacMwUb1JKy8I}IiGmBOf(xc8(9Vo79 zn3p$=(S^I7NnN>3i$N{#ro8tw3@V*!OZ#}pp^R7ceLrE1B%!@R9cb1goG;%Kb@BaH z=Id8;e3t5u+5wR~b%OagPvVB`Wf@mW5_+|jqb?|e>umrJ;GVY0hS-GI#lC8r%o8nzBL#}4Q zNIOmDFFCNhxG%z_=jZvQL zC4+b}xp>~mBL#;M?S?jN*3SiE8vpaKk){ZCv#<==2ApL9n_%yrjp5(JMn|aK3*rk4 z`ZoYH391#r-$Lh1F64*YP$5X`h|4E<7eEMZpGDJ7Bm4qI3tHaDEs);7FIGZeMFbe> z8gL!2?5N>}pwWEJE4kNXBBTA+c+&YJ3zkc z)0=$pEl;DsTrXn6e)s_5SIdKZS(l}AZkp&oxyT;NAxCzS*`2byo@>7~9WDSzNyAWRoR&47 zsk+IqxO8dI?8WuiidS!S;1=y_d@bsX$*dpAy?j5aA4+t(?6P$w#cbC{$lV#nxbQOL zPh%v@mUqV6Ry!F5leGU~X9@J*-tC{ciu6{_c%QvsVRPXFJOWP2dNjS-AkEu8)p6GnuC*pHl|ag^upl zA)DtlntY&SXH>pBVZPg6MK--H$ZLk5GTkxp$2W#-YzqF#8u|tb7KW&o^wPI=8p<$H zy~wQZhw)c01>txWE1m?tP+0-${&o>x`Fz8?sWud2dpgo)Rn< z7<(b?zZ9s$-2ctiWhj3-OCL8tN)6GIL{kJ{k@L$sQdQ2WGq6~zz#Qjk@&vF?7R>z^ ztXH+FIVK$(Xu85`%;wost=p|8v$0VFz^mvGjN&vhOPVJRHUFw=ncfenm%er%8##g8 z&}7jcxB0tXt?XW+mZpr`2~&isq!Hj%!So0-TCH1)CoFk5L!z#a$m$qrm90?^q1HC1 z{}+NbDGMZ^_UZRzE;a3|PyNVv>JMq{SlT%Yd^K04$9bdEUEX@&r{q09@)pI zRGZczY#$HOfas&z01@2dn1;^xhd^BKXLH(~c@A8c=FasE4ImBH-!)rmjGH#4c0@D> zE|&0Nh`)G0N1=5*y)2~d@*uL`noI(`BOOj(hu*o~2_?rQo>$3}?|hv$Qe~R08-t?b zvWTn&f03advuQxJg!?)MVy&TZeZ+Myvgq*|u1>vdOSa~(G#YbyONfoE;}Vi_z!v}I z1pkFhSbYyrWW#)e-@HULTP`;zhKvO;YVnN*}qn zf!6y`x!QCZvQY_x>5Tul!ZT)A!l{Y9i`sPKIC&&}3Ue|U8zD#r<_@84Ra)j0+cM}) z!Nb{$KG96Ov(?<985-1cwIYVwuhp`Qr5yq5%Wy=~$Q_E(h6Nry8UNSWw!%3d>{1}q zG5L>(nLS$MgTqT)sm2^QjW_opGvIUdL}Zy;?un%bqPUACmyXVG3mGKuk*zJg(ZYF; zJE(!|w@iQE2~f|un7wBT^|O{jG?^|@yU{=X4K^M$y>sjL z$B$>p5WO~Z7{z#n51b_MFjvEer=uli%^$tVV(xxKWVAd`B53b=fgSJqjzSIH>ZUeV zSW3y)tznv--VetTI$^w2i+ffiOQOPdBIJ4*M-rRWF#{DCE$E``r7apPd|+39eR);< zEb9@Z0{jnJXnR&&XQ;Zd_UHqoh{TJxxTb_D>C%pd{yW{KqHi96#ljHNTvBLZJ3ZlZ+| z;QPLJb|afgE87NJJn}_giTh2c8%Xu#`Fz3V4TD_^@p-*EDv2$S9&KN0$V4@HNP%bS1k~yC<&E1itZqx-jaJ2BF(tWfZg4Ywdh$$%N zR1PAc%S7cS@K`6zDnp%G(AM0yc@SvN{4t)9y(A)qzfW01cWX}iLGWCna&QC5@ywsi zw<{TXDDEAL?qWdVV0w8&P9aIPfi!@bK%(f(ecQ@{bO~`lL+~2yq(2} zBn7y#nYFK|JbotivZ{_? zkn3dMW)A1jUms}}^8fo&=D*JsLhjV2fEsEhsgFrC#yM0 zZqp;K7XL5Dqz*#Q(98AbL@02(u2PtF1||o*?Ti+=7dqB!U|ZlY1HQ17^yalazKyoq zenZ5t-*xUg*A_gy0kN3YGeKVSI8WTqYZZT(L>m-?9g$GP8X#@pm0SA-Gmwfh~ zvVB}eOK8{Rz&6C7dbOQ}!Uz_0nasNKo#eec2APThrel|K+4is|tA3W;`HssNHqyUa z&yQoo7W~nJ8IH2d!X=?`FZj%q_2+Z|iI}0wKLJFwn@R5BcDqJ~a+k=ApZfisUWxB= z6MBy|-NR-sa!FzP0i=fTW!3v&r~&zfqwK*AuYIryoO%v|9Q$hI;MKo!4~&n2eas*r zp(*)LSXrAan{kHgSLvDCyXTr;7pDl@Fj)4ZHfLfip>&`}px`GKjd0-}nEhG+sJgpE z(89!F0aBz5c;{)qdrhh#;n;gWU}}LggalU6)YJYzK1)XC{(QDlDO1Yvyf3K6BZewk zgJaIgDamdjaBjdL+RY$JA-%)B;*8O^HiN|_aIp9^@yXE&Vzw_a6aRMF~Uyv|?m3d^$IdMz|s5 zzUb>$E8JJo105;cc>5QL(?ia6OUb`Z;yJgRX_n;LN@YPibuG3aAxw!9Jui%~lcgAq zApSU2Ak9X-8ic!YTEMfEb<`HUulbc&P^L|puqqIwgWKR^3v2|ev1JN8PWSkD- zG;10=YtuFR!3pf#uWabdMz7mi7OKt>`BlpGU6JenXV>ox6*s5Mgz3%5tMW&Au=OWm0Df)6*# z0y3T1)@+*;N28lsH0+8`j5q2{(t1Tq!RndRw+c&QxTTn~@X16q#X`_?WcKt44Us}k z#YT#tU@xCZOw&ww^8=pu>(WyR`#M{<;cL`WN9XnKynDDOrB4UWK5Iolw@dpi9sJ5& zz;qfQJFV&%yEQt-QxA;Q}`ghCf_HmhW3{U^db+w$balIy$rUThGaff==^(@+{u)9)h8g%_BC9In z&siNMS$TOP%R=#Jb^rLm-0gRVTdu|ai~QI=89{(v#QF!2rf-_MYv-%SozdBK#7iHo zj!km`+&Y`BAn;xRqMo^ToAX4~C~P&M6nn7|8zd|TJ`esmgQ)7f>*lys%=>I{bBAYU zbiFY*7Qz}@5xWPIIQcWu!Ne4+8e?Xvon?2)B%~(?Nph`ZX@j#IO&w@anR^--Au($1!pp@6xFg8+jr*_41)GMm+^Jbr+3WR^PQq5M+v#nzkrw1t1jm}Qxr zOd>w8k<$b8h4GFWBvNYzsv&WK=;v>`{re*!#qmzx5reQg*8N5IkH{BRpzOCZTD=FT zjA$H3osUk0(BT0>6j@D?3$AS7DvC)?3u-<@Af}8{uM>FP`Cfnis(^#F zTN`p~BvZGm=2gE!_;xHke|4MWWMer0YAM5~Z}Y&HBD*?l6x-e6*1mi&W@5Q-g;SH> z4WpljB!Y2>=PuAnj3@YrHkC`TpXxeG_f3PgM(bV=A*)qlg@(bodyQGJ>b57R30r3~ ztf2zC)$yufeh9|W3Qgt)6d2xRGzO4T%kTWP+X~vgdH`3UU;OoFQ@_ca(}(B>?PPbF zj}00+kWeUC4-MGN>cUerm3O3QmMm(QW^fB5I5tA(+fG6v9+rs3!Uy?BhQ()e z3DVgY`q+4cKqDE2aGg*w1^X>Gv{ufrC8f5;B?RuF;!P-zQiTF_!1S{eoB&_#>hDGz z?7g?@g~=zI^}5=AG))>;y;_pR&p(reb%R4`DFhPnoIH{B9_#gG5A$!~)!NB_t}?Ew zaAvXr1t%cBsM4;Eoli(*f@0C@4tydaJS#G?nwDiN*o-6V8XOMEy6$CkJLhbxv{`u` zH?-{`JqNwIj?Q;;4>SR9mz<}v(V1!W_@h<%Z8i=SUTRQvH^7%6H!_0V*q~yxutG&X zJ<3a6z(PB06sf07I`)5tcpI&c_*Ec(if$VkMIwDXIHq$8Q6Q7dZOT^W97wM@&ZM|k zRUhXKEqHgrL#iCeg%0c_zQPXycLR!2`us>#^wPBnm198Rg>PMp;R-*FF9h(nskY+*@ky;sHfV!gU&@| z)2-(4?voJ)BVn<9AZ3LsHX|5gE_#hp_GPL~ZzAmE+oct~Egf&Jq5{jlFO2D)GI&aI zsI8Bfl-o3gf*V!FK}ZPUj~fHw#m($Kk!7 zSvUYYRUDBC1@*8UN*F1_X#K0r!W#2WmbZO@!q5o)%l&t z&)=HrxZXX~osa^W=dX@l87`on`KS#KYPSnG+TB41awAZ;> zcr~C(7ja7Y2ad&40Y?)7rrP*kR>);@oc8eYjFjxlLY!h*XW@#_`F6iKsAzJG$9ko@ zuMXw$(ub49QJsi*s|xR_oZkUJmL1|grvGHew1(s@Ec8i+QTKRf#ylg6tN5)3 z=g^HnKbUwo%{GGciP`CQ4o}6F*}L5mleQN0zlZNQe+8tg%~@tYScm0X-)tzX2*+t1 zsw7r#E3r(hZvg24o#kkX_g435oA0}Fq$5v((t{0nOSn*ph3ELq!rxx_)E`>-{4I`V zHy$_#mcEc5@N=wARvPWHRDy@>D`Y%IEN$J>g)3HdJITHn@vzrN!-RjlJi!&v#djuf zbolqA;b(lb3ZeGdvifFR^-yfmHgi+$N9}%{){*fqFJn%1e3yx7)=NTbj0FJU)b4Xd z-d%jBVUvm^)vzHu$#q*@V3L<#KWe+-_frIeJe-C?&>gO(GQKO_s5NcnMmzOEI=;;D z!%Z4o5wc`07WXRED#zq~jDNU2ugJ3{!b>b#1(!mkIqr0_9x8f1`vWllt z3o}9Ap7&5gI1BoD`F2lxvyU`OWR2A&$;=Uhag7y+!&Yy{QmZmk#@}gl*=Cn* z%aD8Bhqm;d>q&+}ROg_q)M_hPK6>O`dnHn(tV*Z(HRJ`eexS-{^1YatPP=MpEOF&- z0{z0!3Yz~(Vn$d|K~M25WN`{&R#Xw)UOm!TEW9LF!cNokw~Uk{-UnnzS1r=Sv>TzV z*S1xyy#szhXw#lGnnmMwbe5axW~PC$SE5qOJPh=E0B1cq^JOt2B2}Rk{cvcn?SZH`8|H4QgVco2* zQ*_^oIxno&A=%l%bxtl*E&34;Cd9efl&SR9XC#$$6l`h-(jkm}=-Ih+_rEQGQcEj* zr>BLTWwpU&p5{L#m!s=(u{bZsC@V^_zpq{`jL2HDZ;3pyB)ZWN0kLQ=zqFVvW?%=| z4q{xInT*<^5DBU6z6vQI#Rc-uZsb1$&wg~dq}*y&`hsgSk;9B;R%$-&su>XxKCHKC zEO!|3Tq5D;$*M_7M|Hlt+8A6Ke=gq|b^kD{PCITNBOChZSdemf+}#DvKuE0Rzcar< znQoEW0;=(+q&!j%Cm&V&ILH!ZsaBVO5Xqjf2w#Vc1`#IGtDo78;ho+djXGvo2=eHz~0M_OQ z#Q0swk#fJury~b&{>Ab|Q_d%DOm!M?oI}EO<|pPMQhViWmvLSc)z!ka)c)w zdq`Gh5x|?HLvX{aE_GV3b|Vw(9v+-Sc>AjxktB_g5$T;=_RzPf%SUk*~6@(;-i1Wdt(A=>@~Lk%mj6k zU89C}vFMWm#V7BkSht?Xktz_tU3q(D{qD5|6?v*J%ZFVqk2nzCO00n3EU4P9$$wLU=`^%15S_qUU559`8Tfr*xH4~Q1ukFSY^o^H?Y zX4h|vj`tZ}-`CF;R^2c3zgIgScSkLh0N>B+Gd$TFUfypjS<)-%|FV*0&Ha1-@JZ%= z@EPZHdZL@VEs;bh-mkmu^>vf@lE2hW6|-k62qixLaxpT~Zbqrr7_RdZ>~D@lz5$3|_rlvVnRdH?SJd;-Te? zK2)DIL^I3F>UCR$8O=fSB%xU!-1ZDaW(!DS30oLD}! zltQ^niuimp>(KzB#zSWp^vrKGYsk6tTCb#bZPIch(2^qQD7mHE!E>t`jS8$Ha1+5^ z9=vG1;{0F*PlxCda4k)zXw?pR>=0z=4S(|GG^&D=C9262|1iv8a&s|e6kKC9#R)k} z2d3l2I_uh15;_)TPVdH=HT4VCP}E1lmLH!8_dNFG``8$>X3yg?>I0!F`V7dLpZGFY zX#^B$1kPfGUzr4WWM3Vq9-LX?zqK#O*#UUQ3@)=4Cs^i>MN&0t?=~p%30MweUR7eM zG;R9#0?+JY?m&j;>7PN}F;4)~+p1cm`2@IR`!_HU@n&MI_*8;cA*vOuZE_@78S<#X0rG6@;ki{zQ?d-87v8vcN{Y{1xg@)>V-YMP-sur1oubO{ROCdVP`D`{cG9z z)X-CyA8A}T&>Ra2ocu_2yCe|Z@0pB2bJ9m@R>Wv*98&dMtriEp#%b~+nlql&olj1f44z{`h|QQG=Km3!#TQyfVA#Z)d!u^CGy*;52{nX!r6{Ym1HPpU+G zGT?p*W~_d}x^g5yktDRzsr!YG<$r##gXUV+T|E84!g`=tpj!e@))(m6cE@!Cv;#p> zKk_VXGPLF*XBB7bmHBqgIe@B zmx$eRJn4ZDL6yNeug$%<_~;Y5!z}#At57Ym^WoF&c00mbq^Splp*9Sfp~vo$n?2pR z4!Y)lC&$=h&<6+Ta>>dPxoKuqJv+^iDhx>BDU)4}#Rzo`a%>bx&_qRdTAot}sdQUJ z5|>fHFntdC%J4#Fk^#v55cY|6m;&{;$z`yJQ$GH5k=0Y~($iB?Xr!yF7ku*$XwOx- zg76~k?dx%WgyyADx^twZZn@!;rd4z>_n>e~Hvx3rtgB%eG884}+Hf`i0MSWCOkg`? zB0ApO9tc%-iEgRI^L;~0vW*`uEO6_W?WK^wkwi?I`L-czZ2sLq;Jd7Z-W@|$3`}q$ z&2}u)D8hb;VL@jVw5x6%Qi4F79JYc}%A81fJnl@4UfK}gJ0ZxxIXq*b>MpBSw#r_JVwZ~&r$k{BCSM{Ivdb59G8uxMZl zoOcS!CGn%>V4nraR9G%1BY7CTk{(vOkw8N^Y7X>S$60@sW2XVcv@FX}$aCcaB8^=^ z=)Cq!Ls^-SddEqI#>-b^nvmtR3nX=(VaX-ds+k9(m)xc1h@EGVZbV%|982ZW_t>Vg zpS`+8N)zxLmMxabo3KSZSlQ%tTj?}2uS;Hpa$&^%Ghk{P6SVqf^5IGsEV;BEe}U<5 z;TXk%&)0^mx@=<7yipB$zb5BoGeIgj%3N?ql-XFk}F^j zf(&D&1pxez2HkO(3nt2{etC%?XpE=n38UDK?n6v0##qJ)ttnOkV;cTy`e4MfHR2?e zF{asBFBV~_1@0zmIAcJ3kadx2j@WV75cETb`b%VQC3H9I{Udn}6^LdJh6f%$eP=2n z&49_adkmr(y?${XGgKn_3ab)LEek}jCgV*-^-0{ZY)g0m8S#@7C-G6%hq&bLqU*~)LdnN zw)s^VR>+@v^wR`RhyG#2uU}1xYPj zFgcHT8{IdrF=6+b7B5jDTBfI(_6uZjZR+CTN5EZ;go)A8KuWvBME9+S3D!A8so6-C zv}#^Hof|&aX$9_Lo^rrwly|-7(hJ6J_Uq@;W+iCeGOFNARZ}Nk2FY5GR|X^va{7j7 zeWpat9B5iN_C!5)mIZqp<-YieOf5%mxLdW^qr~o}P7)%bT#EFk(Xw4#LGVx4AL&4x z=3m^TGs*lGkwU%2kfMODwne_oXJhDEZph>iD7W}!9~i%FDV1wV5;*S3$mVG^k4=ag z)DD)Ua~S*K9JoHV-u9m+xl6RW0H7b^fmWk=Ls_eE7MPc|53`d=r|KSjwG-jsR#dt4I zQ?Pur6p-Wl9V^AwkK_W##*&he(kV6Zp1p&AZwyBjHOZ5Yn`hKm?D5ApsuR?t%HNqP z&{-5M5)ciuNNxsRGr4MLIJ<K?i_Q)$EE>N&Q#%oDZ1j`P_7E@;yz zquYs&=iklY;IMSOoj6Ng1W!fb$>4@(j0pX;fnewuqZ!y)B3(AZk84NmBc5}b)9}lt zb{Vzt*;*WQQuRV}hutDdOj)&1Yg4ADa*swdx@Ynsy9yeGt{u@V?*`vHI(&M5Wy(SE zAjN&5SRq4=?#t*N`J@0*1H;V}e`8mL@IbT@%b&Ev@cp&~W*#A2 zcnogGKj7Z=sij%|ERh{gV{pmi=bS4|jn8SG`3?NBk|~wkqPI{|ROkc$B3agHQkgSf z#XdW%MXa`fo2S>-rPr`_wo7=y-)yRS%wG;4$TwXxd2j1*Z74ghq|#Qz@OvoaQ$cM! z7B(4!*4~7)>n3R@Jf8Q_1O)83P_s}glGYR9CT+JOrj)hoTj#JyG%H-?xT4T6+8Bn4 zjkMEZTv=vbM&t)5SlC#h>pf{%^tQZ4m7)HgOLu)s1$J5j(k!TPI>%$8UEK!8e<^_L zPl@O}7IrAZ2B9*)E3>vAK{tqBzJzFLT9Bb7-OLEi?qP@fxGK5BFaktAMCOM@Ywiq_ zkTSuy?qToLH*dc;0a#(D#Cb(DIgU|WZUrZ`Cox!yY&wfoY#zmat~9xpP1NStQYpipw4`IICo+%mZbyy|ika z%NT|WENrK58_EQPpi*LX;aerO(ELAtpz}bkG#n-e&i}}u;3LN zAo|(hu5&3qZP3W|VtdaTqJ~-C2OQ&;v-{tAbaK1ap>zt=2yd`ppZ2ugN)iOfLMI~w z{%AjM^JPn*kXmZSRwh$si3}r^FP&b2v^={yQk9Zc<68dC8js6*Llpdee8Y0)rx7X8 zyEn7G#Alnpk8=CHBp_+`wK;&s%yAYtYAAcW#LcCX#q6F9-8pAb!c2=wqy(`W5Rgsn zj`TQRtiZxGsuEYr%{otWkw<%ZnL-xfds!bNX*+y*pi)rE=+LUYG*YIQ!JkT9_Jb4A zdOlyK>*@u@PSS&zy5@5esvdHIGatiL>m|%XKy<6Xkv+#5WwG9$xgkudVU3lc8bm?C zjgL>|h!Lwh=MQ_2cd~Pt7g?}+;-XYbn~VDIuJ-z+zPY?c{8*{orOl>Lem%A`UA+pyxQ-0DY34F_J$01_xe8o4STy-`V4*CRKDuMw z+eFMP?Q-^t1p2(NF`nsrR0-E5|2aZvvtDy5u8d5C)?@ z-L=q~vQq&LOMYgz9ogx-?er!#Pt$nA-LG4(&4;8a6*GtkwEQmX$Q*noq+Se6CzA`Q zhw5;z7qc8&Ng)u{x}8-ig^WLME=TDz_*T{8)Ra=S=B4Q{tr6swKm&42cPk5s6b$| z?$xSP=yWhOD>k+}pHX<^` zH=XN9RuaUw^dAH%h#0M7aD0YVeKToO>K zD4w6f5g#nEmto|Mkr+ZXQx0O4TI-sr0^)eMpmOR=yneP+Ek^vP%80hgQLAm2;@Tpr{pUwhZR`xp#J2DQirA$GI8*)B!$xlB8gq{v z*qz(B%R8Hoo)Z?H6P}5De1jP-8>40ZvKarWcbxX;vHpU*_Y0*8Jm#fjR0_Pe7aRLE z61@xS9-w!21Uru($fs>82@$lp$d05IUPE4xTR{qWBs;VLU-%?DeqH z$>M@PBRL_JWz}q2Mo`(4A{!(sXLTdH>BOR*tQ_gQ?S%mCv$^o=kFl4ka)VDWfaw#& zVt#MOSHXyP>g(|=6OY&D%Vm?E-wsac{dg;u_w)Y7_w($e=kw#r<#ppmH)mKBPuMaH z(_*ysjnx|W%@=m?EAT&Ja&8XBCUDSn_>7F-pa1WM&%(^i$c+E5Z~mW+{=1X*UmL#7 z{}*HVR(tzLjGpb^V+^d{o)P~T$Hew+x$r+@jO=XRNZ|jBF|n|GGy47!V`KW3&ikJ+ zHfFYe%a5JzyMlj=V`uocIvD8a82))I104&~KXYNAV`KkkZ47kmO#iHniJ6}MpS3YD zv$6lP4ki|Q`hWfgGdNf%Wu<3e{^vPhrDyuLHDYC9WclV?{*U=sS(yLrI$)z`{I@k{qi1IS zZ|mmdpl@zv>;MPN#RUgVt6*#Eg#RxTS>by}+{VNf|6g__|JqSB_b~pxh-t-zG`WP? z1Q;0vgqZ1>1Q=O_MVOeGMEL22`2|JTg@jpzSVegL|3_%^@W4SkI_Wz&{oj8OHWo(q P?-p|s5@A^pIOzWiR$k6N literal 0 HcmV?d00001 diff --git a/vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFiles.java b/vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFiles.java new file mode 100644 index 00000000000..e2cf370d9da --- /dev/null +++ b/vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFiles.java @@ -0,0 +1,115 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.vision; + +// [START vision_batch_annotate_files] +import com.google.cloud.vision.v1.AnnotateFileRequest; +import com.google.cloud.vision.v1.AnnotateImageResponse; +import com.google.cloud.vision.v1.BatchAnnotateFilesRequest; +import com.google.cloud.vision.v1.BatchAnnotateFilesResponse; +import com.google.cloud.vision.v1.Block; +import com.google.cloud.vision.v1.Feature; +import com.google.cloud.vision.v1.ImageAnnotatorClient; +import com.google.cloud.vision.v1.InputConfig; +import com.google.cloud.vision.v1.Page; +import com.google.cloud.vision.v1.Paragraph; +import com.google.cloud.vision.v1.Symbol; +import com.google.cloud.vision.v1.Word; +import com.google.protobuf.ByteString; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class BatchAnnotateFiles { + + public static void batchAnnotateFiles() throws IOException { + String filePath = "path/to/your/file.pdf"; + batchAnnotateFiles(filePath); + } + + public static void batchAnnotateFiles(String filePath) throws IOException { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. After completing all of your requests, call + // the "close" method on the client to safely clean up any remaining background resources. + try (ImageAnnotatorClient imageAnnotatorClient = ImageAnnotatorClient.create()) { + // You can send multiple files to be annotated, this sample demonstrates how to do this with + // one file. If you want to use multiple files, you have to create a `AnnotateImageRequest` + // object for each file that you want annotated. + // First read the files contents + Path path = Paths.get(filePath); + byte[] data = Files.readAllBytes(path); + ByteString content = ByteString.copyFrom(data); + + // Specify the input config with the file's contents and its type. + // Supported mime_type: application/pdf, image/tiff, image/gif + // https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1#inputconfig + InputConfig inputConfig = + InputConfig.newBuilder().setMimeType("application/pdf").setContent(content).build(); + + // Set the type of annotation you want to perform on the file + // https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1#google.cloud.vision.v1.Feature.Type + Feature feature = Feature.newBuilder().setType(Feature.Type.DOCUMENT_TEXT_DETECTION).build(); + + // Build the request object for that one file. Note: for additional file you have to create + // additional `AnnotateFileRequest` objects and store them in a list to be used below. + // Since we are sending a file of type `application/pdf`, we can use the `pages` field to + // specify which pages to process. The service can process up to 5 pages per document file. + // https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1#google.cloud.vision.v1.AnnotateFileRequest + AnnotateFileRequest fileRequest = + AnnotateFileRequest.newBuilder() + .setInputConfig(inputConfig) + .addFeatures(feature) + .addPages(1) // Process the first page + .addPages(2) // Process the second page + .addPages(-1) // Process the last page + .build(); + + // Add each `AnnotateFileRequest` object to the batch request. + BatchAnnotateFilesRequest request = + BatchAnnotateFilesRequest.newBuilder().addRequests(fileRequest).build(); + + // Make the synchronous batch request. + BatchAnnotateFilesResponse response = imageAnnotatorClient.batchAnnotateFiles(request); + + // Process the results, just get the first result, since only one file was sent in this + // sample. + for (AnnotateImageResponse imageResponse : + response.getResponsesList().get(0).getResponsesList()) { + System.out.printf("Full text: %s\n", imageResponse.getFullTextAnnotation().getText()); + for (Page page : imageResponse.getFullTextAnnotation().getPagesList()) { + for (Block block : page.getBlocksList()) { + System.out.printf("\nBlock confidence: %s\n", block.getConfidence()); + for (Paragraph par : block.getParagraphsList()) { + System.out.printf("\tParagraph confidence: %s\n", par.getConfidence()); + for (Word word : par.getWordsList()) { + System.out.printf("\t\tWord confidence: %s\n", word.getConfidence()); + for (Symbol symbol : word.getSymbolsList()) { + System.out.printf( + "\t\t\tSymbol: %s, (confidence: %s)\n", + symbol.getText(), symbol.getConfidence()); + } + } + } + } + } + } + } + } +} +// [END vision_batch_annotate_files] diff --git a/vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFilesGcs.java b/vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFilesGcs.java new file mode 100644 index 00000000000..3eb98ce5cbf --- /dev/null +++ b/vision/cloud-client/src/main/java/com/example/vision/BatchAnnotateFilesGcs.java @@ -0,0 +1,110 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.vision; + +// [START vision_batch_annotate_files] +import com.google.cloud.vision.v1.AnnotateFileRequest; +import com.google.cloud.vision.v1.AnnotateImageResponse; +import com.google.cloud.vision.v1.BatchAnnotateFilesRequest; +import com.google.cloud.vision.v1.BatchAnnotateFilesResponse; +import com.google.cloud.vision.v1.Block; +import com.google.cloud.vision.v1.Feature; +import com.google.cloud.vision.v1.GcsSource; +import com.google.cloud.vision.v1.ImageAnnotatorClient; +import com.google.cloud.vision.v1.InputConfig; +import com.google.cloud.vision.v1.Page; +import com.google.cloud.vision.v1.Paragraph; +import com.google.cloud.vision.v1.Symbol; +import com.google.cloud.vision.v1.Word; + +import java.io.IOException; + +public class BatchAnnotateFilesGcs { + + public static void batchAnnotateFilesGcs() throws IOException { + String gcsUri = "gs://cloud-samples-data/vision/document_understanding/kafka.pdf"; + batchAnnotateFilesGcs(gcsUri); + } + + public static void batchAnnotateFilesGcs(String gcsUri) throws IOException { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. After completing all of your requests, call + // the "close" method on the client to safely clean up any remaining background resources. + try (ImageAnnotatorClient imageAnnotatorClient = ImageAnnotatorClient.create()) { + // You can send multiple files to be annotated, this sample demonstrates how to do this with + // one file. If you want to use multiple files, you have to create a `AnnotateImageRequest` + // object for each file that you want annotated. + // First specify where the vision api can find the image + GcsSource gcsSource = GcsSource.newBuilder().setUri(gcsUri).build(); + + // Specify the input config with the file's uri and its type. + // Supported mime_type: application/pdf, image/tiff, image/gif + // https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1#inputconfig + InputConfig inputConfig = + InputConfig.newBuilder().setMimeType("application/pdf").setGcsSource(gcsSource).build(); + + // Set the type of annotation you want to perform on the file + // https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1#google.cloud.vision.v1.Feature.Type + Feature feature = Feature.newBuilder().setType(Feature.Type.DOCUMENT_TEXT_DETECTION).build(); + + // Build the request object for that one file. Note: for additional file you have to create + // additional `AnnotateFileRequest` objects and store them in a list to be used below. + // Since we are sending a file of type `application/pdf`, we can use the `pages` field to + // specify which pages to process. The service can process up to 5 pages per document file. + // https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1#google.cloud.vision.v1.AnnotateFileRequest + AnnotateFileRequest fileRequest = + AnnotateFileRequest.newBuilder() + .setInputConfig(inputConfig) + .addFeatures(feature) + .addPages(1) // Process the first page + .addPages(2) // Process the second page + .addPages(-1) // Process the last page + .build(); + + // Add each `AnnotateFileRequest` object to the batch request. + BatchAnnotateFilesRequest request = + BatchAnnotateFilesRequest.newBuilder().addRequests(fileRequest).build(); + + // Make the synchronous batch request. + BatchAnnotateFilesResponse response = imageAnnotatorClient.batchAnnotateFiles(request); + + // Process the results, just get the first result, since only one file was sent in this + // sample. + for (AnnotateImageResponse imageResponse : + response.getResponsesList().get(0).getResponsesList()) { + System.out.printf("Full text: %s\n", imageResponse.getFullTextAnnotation().getText()); + for (Page page : imageResponse.getFullTextAnnotation().getPagesList()) { + for (Block block : page.getBlocksList()) { + System.out.printf("\nBlock confidence: %s\n", block.getConfidence()); + for (Paragraph par : block.getParagraphsList()) { + System.out.printf("\tParagraph confidence: %s\n", par.getConfidence()); + for (Word word : par.getWordsList()) { + System.out.printf("\t\tWord confidence: %s\n", word.getConfidence()); + for (Symbol symbol : word.getSymbolsList()) { + System.out.printf( + "\t\t\tSymbol: %s, (confidence: %s)\n", + symbol.getText(), symbol.getConfidence()); + } + } + } + } + } + } + } + } +} +// [END vision_batch_annotate_files] diff --git a/vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesGcsTest.java b/vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesGcsTest.java new file mode 100644 index 00000000000..ff73d717469 --- /dev/null +++ b/vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesGcsTest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.vision; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class BatchAnnotateFilesGcsTest { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testSetEndpoint() throws IOException { + BatchAnnotateFilesGcs.batchAnnotateFilesGcs( + "gs://cloud-samples-data/vision/document_understanding/kafka.pdf"); + + String got = bout.toString(); + assertThat(got).contains("Word confidence"); + } +} diff --git a/vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesTest.java b/vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesTest.java new file mode 100644 index 00000000000..e6dfc9dee0b --- /dev/null +++ b/vision/cloud-client/src/test/java/com/example/vision/BatchAnnotateFilesTest.java @@ -0,0 +1,56 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.vision; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class BatchAnnotateFilesTest { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testSetEndpoint() throws IOException { + BatchAnnotateFiles.batchAnnotateFiles("resources/kafka.pdf"); + + String got = bout.toString(); + assertThat(got).contains("Word confidence"); + } +}