From eab2bb0d829a0c798a626eddddb12baf238615c9 Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Thu, 2 Jun 2022 08:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0excel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HaiLiangFeedingDeviceDriver.java | 54 +++++++ .../impl/ProduceshiftorderServiceImpl.java | 139 ++++++++---------- .../org/nl/acs/order/service/wql/order.xls | Bin 232448 -> 196608 bytes 3 files changed, 113 insertions(+), 80 deletions(-) diff --git a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java index 3f7792d..561d3bc 100644 --- a/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java +++ b/nladmin-system/src/main/java/org/nl/acs/device_driver/hailiang/hailiang_feeding/HaiLiangFeedingDeviceDriver.java @@ -26,15 +26,69 @@ public class HaiLiangFeedingDeviceDriver extends AbstractOpcDeviceDriver impleme String device_code; int mode = 0; + int last_mode = 0; int error = 0; int move = 0; int order = 0; int order_detail = 0; + int detail_qty = 0; + int detail_qualified_qty = 0; + + boolean requireSucess = false; @Override public void execute() { + String message = null; + try { + device_code = this.getDeviceCode(); + mode = this.itemProtocol.getMode(); + error = this.itemProtocol.getError(); + order = this.itemProtocol.getOrder(); + order_detail = this.itemProtocol.getOrder_detail(); + //当前工单明细号上料数量 + detail_qty = this.itemProtocol.getDetail_qty(); + //当前工单明细号上料合格数量 + detail_qualified_qty = this.itemProtocol.getDetail_qualified_qty(); + if (mode != last_mode) { + this.setRequireSucess(false); + } + } catch (Exception var17) { + return; + } + + + if (mode == 0) { + + message = "未联机"; + //有报警 + } else if (error != 0) { + + message = "有报警"; + //无报警 + } else { + message = ""; + switch (mode) { + case 1: + log.debug("设备运转模式:等待工作"); + break; + case 2: + break; + case 4: + //上料完成 + if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0){ + + } + break; + case 5: + //强制上料完成 + if(!requireSucess && order > 0 && order_detail > 0 && detail_qty>0 && detail_qualified_qty>0 ) { + } + break; + } + } + last_mode = mode; } diff --git a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java index 60e79a4..37cacde 100644 --- a/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java @@ -245,7 +245,6 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A for(int i=0; i0(U%y5Q52&H3MiNE;uR7vbk!zm z6t8G}9w^2&9*D`)5Klz&!~->nM~wQ32TGm?U-ir^mzejy@AqbYP1RKYtGc_or@DF; zZGnYWYnJcUjt2mOMYya0CL+Tv4{l2y&*5k- zlOtrzCv*W=!PmOrq_)F;EN4;~NlBPCK09a8C|1+yjwt(WD9PyZDU(^iepBWqo+Rcu z&2INGL)Eoo5*eA5w0o#g?1?-kbJlH6n%rZxd}5;^a9{~gt(7yI^6Ge`#FdBB_;ji` zcv`4j7d_2dH$Sa|vCfzQ7ZqQOZEa zR>#{6vTJ0NdW2@Ub^pg_YyB)P+O_ZY_RQin!=KM>{3^n34aWcisH!`gl{Gx)Khjr@%hPwhSWiyxK9O;Cufvzxj|&UDHk`K& znzwqA*F&y0b9QCFC7$x6l&bbKb}v0$aQnq4Gj7cP=(DNL)u+#<1{Th8xE&PW^!c(4 z1KcB@&M^LVR;MwC-`?9@_DzYEgriRm+LL`=6X?Wz24qi27s zeEIN>rh;yGthsdj)1XAR-5rN+j9*cEVBF51Rqj?so+|s&i_5t7TF*`&I*<3*KXZVE z`)@@XlOWqA^ZZJ6zl^(^=71gdHCa*O)wB4cySIx+Z5na;Upa%Oq^_BFNTxK}9|OZD z_P*Q0<+B&3{JTDOcddy$`jK%`<$y_B!`8~8hjv^O`al!E=gj7(Th3EmX!g&Oe#}lD zd^BcHx^h5jYQmnL#a|a(xbtMsbIrX|wTsW*IJje-{CuGOg(+6k)ix5Ik@fSdoqTh?_NK*>vJVEGpEU4{e!|-aOKl%zjQ-avk8OF*wuk%P?EmP*?DeA$9#1yE z7quqa|I>%mGUDd#Kf>ZxJWxE*Xz4Jt-UrfcG*9J4{!YN?!}nb3sY{qKACua((z?n4VEq&${a5uJU@S|_0 zRc(F@r6oJy>N4KEG@$U##OD=%Ea)|U@ck3Pi^o?z?lI}d>x)-aXPyhG$y*!K>Do7M zO3rq#b~zqFVvLH~#=HGKt zv7HHEhHvUNr0bCWlm$?Np+lYx@CxYyq*+D)uaQ1MdO8Q76vNPy*#LKq0hY}Hn2!O= zO#{%y1mG;v?~#tu0t~_M@C4~yq$Rlk#jOA)&jlEZ4ZcD8)C@GRWgftn<^X@2kMYF< z;0)5^NP8^+aKxCFv=HDE++2<#-G|imGk}h*0lq@I0_iiPzay1@fgNrO@EqxVYk)h8 z0Is$J_;xYC4%}kqF9FEJZDz(&fJt@$dzJxgX^*`v&j&cs0pK4P!M?M{##aCwaKL9B zK6eB-vJzl#CxBm90bK43(1v0I=&6_jfF2xn?n{6G40hAk0I1PpbS=O%^wfTI=OXmf z_OAdm=&9WG0He`UlQsbKM-N380=P^-*Qhq){)euavI!srU9)a8Kq`7<*B0zGdSb#> zfPTyqUju}p2R3X2n294kvK>Iz20OI_U^kA~WhVw)9C7L{fJhwa+}-F^9O;hYxB3b* z)3e90-#-9sJ*oSj>pP1Vo+u-lenONl0UO{k;0KbXw*pGQ4sb~C)C3X*ya7|d;Xx2# zMwksb+6W>|Z_x%0|DBp3qRUnRo$=J@PSOle=e3%Ji@Ku3jxI9DHvp=xAGNeizI@Z>iqNkrSZ|gRd z_o7R7l6YOv1rOb(6CHF)nVeeeB0Z`4Fd4nCVl-+02`W}1_6nA(SmN>dI?{)9`VXX+ zZrw#Q#Wj3V~%K|q}y@X$GoZJ;pNa~lEBL5lEszHwa&dGvAW`;X<`{W$OeQjWz#-La<*by z!m}0HlAO7=B{_4aB-coO6B}keX-NU!`WEGE)>^`|*P$}~!nT9uJ2*F@q-|Z-3 zxQEh99Y{7AMx*UXEQzLD?8z`B&+SPl5`PDQOO<5lIYHcO=dvmQEE(zDV|q zq>_;l^feJBNES0Pf)+6nLobQKT9G((7V1=t45AYliKKZV*(s88kvtcP zoudE=bR^pld0Tu^bV1=@>ehu+TWs?ua5|E}+A#zyrxgc3iL}tCDT$kHkCEhs;20 zp;6OFDpnt#MnYxyXp~A4EPcp7aiy_cZ8&h?Lo-uJAL2{DNhS6OIgv^{5OP_9#0U_h zG}5P|FR8{}&EZTT28^K(TdjhX7*L><;c0^2RY@;a&|8jrX!>}XV7f|#R7#K$0;FTQ z0EtQ$Ad}MtE7v5*NCEPV2)QCcYDCBt2@)qjd}cQ3U|f?9#<33Sb7zunGGa!jd_`O> zJW-2Hh$r40N2{{Pc+;R10+VwIT*)`Q02E&UPkmqxS;+N>BcEZ5Y)+V79C`1p$BE2T z;2h>jc(zHuciPEF{gThfV++KemGF3|{Y(7T)ntV6>h)v@T^_{SnOjZ0E__E&#oYX5 zFP*-g#F*fC0Wk9tzb4RI>v2o8WGM_v3M2UTx_p@{RqZA+1!iSJRxEsW(A_e!Hp0XZ z?$ONMB+`UnawlXy^|kU|D7nc~)l|O2@)R3-Xcuv!V+x5Wy<1Esnz`Z#%v!r~qY*`; zHxWCUvXNNP?~f7d4l*IX!V0`t;9{3qYfrAOjt<>KIy4}ycwqaecrhg1vXKliXNd#5 zen$yUqc#zHIeV-GI&m`@NU#4+6ja-TSJ3B0#I==7NHhc+^zmlWf!x$Be-;?@_7uUD z;gqWoh9y)Z&z!(KCPSVr3l>p9%ls$iD-xdm&lVD3xW(?-fVc?GGve(X-NiL5RnDzfd%@ANiI1mzy6zw|q<1=~BwA z|8npLh!a`8hlCMxntPtu3u~<(j^rlI+(RNc(yCtEYA_RvYk*c~^6jYgaiXOE*g%xV zRm>^Igl2c=)%1rA#6$j}0G3u{cY3IpEPQu>p_rHdN4~_teD`k$L&qK>ee_HAk>VD8 ziR}ZJ_wC%7kOc12PHXcpj_mI#(tN0)|e1s z&~t2L7;gkGvc{AW&!GMyFL+cX@9>5W>I5`B}#G>I*d`>up0_t>%2q(k8 zvxDG54T0D|24Gw7UvVs;qB^d_HK2rS2!SvN#=m|@y}=*c!3&>)!3Q~S@PGj1-BIF= zX~00_{IK2wd?6IE9%vyH_52`M1GCYXAKt!LLQyFIDKj<@O$7+Xypi)jE&wU2AQy({ zV8IM)(htJXUokC(ga-IGI+ZL4r>Co6Z|Q5#bDXhUYI=v#Lpkt1k4FRmhJ0m z&L8KrAqVi5+7x1qnK1OaIzNLD=@GWp@tQm@vfd=so+A!2<`!Cbjs&(fILOdU{QPK| zTt#e+V?-5dejYc@}A zE1F}a`4PI@(BH*eN(?s;)f!G`ls(#zy2$^MT~3^3Uu#N(zX-RiO0}x(A74w zQ(#NG4CZYbjw==-N;H4d1dl5H+}KfNgAB9^{5&UJ5-%Q4M7fexY3Z{vG6eGm)lZ}! zjo3mfs} zjd(09^%=9#OF8SOIuLJ*9WR44C8?Xon{?n*`gK7>GB%lP0e4C z4j8OPO9BTv=oPWRSswigznB2c6Ujj&n3vhHIEvXDTO5waOBvQW(wXAoJGCtE%{iEbb^fQ$7rD`XK#eLVJ+Le zu|Zr|w9JxQhI3*SAc|O5>?D3Z@~#rk0%(!Mvwl{Jyo`CJTH@J!);5yc^+f@?m|+|x zekk&;j7RseHJibBd9K3975j4CiYvxZ<+tXXaq`Oh(_?bZCiYf;0gfw4d?i`WnYXK% z9C>D@R^&NfTa=12BWAfQoDMVPY@91m zCar$B#p)ZqWKOwefMeFDwc}#hVlK1iF7s?rcjitrI@Ou`jnQZqu9Z<7>H_;N^ATKt zoiIW8%R!Ay{T_M#d*m!0i*{;cjzquLjXOLmHY6-K#4pSn&m>+U!9MQZco+$G5ApUK zh^G)Q58qIK4?KQ^`329;_QPX`UubZEpF5s6d;;9Py?yYY5#Zw&>>h?E3=d^UuwS@R z5fY$3wuQ3{qH|wxeg6yJL6kiEsMDH6(GU;5WOZL&yV`|MlYdI^yk37F@w|*2^ne7F&>P7?)K&T z6B&Kv%e%=j$tPqx`-iV~^nyRXPgnSCntpLOKbE+#gXx<=i#{Ut+dZ}?Ts)rPn3R1- zHKI>yIcGEUU;U-m_T`nFtk%8o?{t44A4a_BpMm^znVXt@xa`~vG4KG(a+<$|?M`*mqZ_1ZOK(_F*w0YPG%3$k~=YnU+5I zS7QkqHC^$u;`&TWE1Dm~E9snR{A^h!*qP9}R6h7XfBp}}|7if!JA&_N8IFfrZ{e_; zfX84zniRozWIGyrJ8NZhZ3ORRIiMNlOa!mQ5x$AwZ7o&J>YUYlR~Ii_5_NTE5DSTr zfOi@m%dPR$9NY{%4Z%I$1^Wu%kfvb#Y2vUNKbU#Z8*08|>(F;<%?9zVF3gQhTlNu* zu`_(*VSYG>?~10hgZR$0^I+baxf5xe|Ok9%s6FYEL+E4=DR)Z7ghI^E2_8*Gp( z7kP)5Z9Up$=$@BlAILkNSZt`cT=g=%^rw?ipGVGX)vmqkb=qeLZ{w0fW`Uek2C`*3 z7i3!eFFu@@Y2%U-jAY>%;}fQ8d&L7Uqf>|Q0|&|CLV}}bB!8MPKCR?fJTCLpv+e6 z#RvD2jYyoFIx2a_luweAr{w&`>SGfV64C;yJJj=@_XVDAisHwb#Edw5F&%w4zh^t4^8OMbl#Errt{XcB8~4#r=|1wlNB9{_4yS%7Pv*yRcVg*%6mu_QY5NpD6MYPHRSMrtV2-Bn zJ=rFCKLrtpY(Jg<8=sbzOw*_Hiwhiua>djvFitEv=yJa(aan^o9v@CIlP7| z20C*#A0uP=L_N;z5I)_;!Y-=H=66N~djxxh_=I?c1T-#A=B8oMAwf<7;Q^uk!QQwX zh4}gThWLvGYa>FjG9)0tf1r=jKg`F26+cgXzd8H@LQ6D!$bq@&KNI*WOZbh7*Ih7j zrls?7FImW^aV6Nfh5Q_&)7Xv4c}x E7so8`0{{R3 delta 41912 zcmcJ22|!iF{{PI}d+{Quprp88NJ~u(5EavmO~lkhv9j_dq$rjPij_-wu&n&0m4we@ zy;8KzcFdR9Yr|g8$QGA2(n@W6wxd~*mHa>7S?)de0-C=519RtlzVn^$e81n>=gc{$ zq$ILrP0N+N&u}xwIJ|UGj7_8WkC+>ZWC4Bb>z$e$5wxH!Pd?se^HS-be% zch_HA!>56yB&%$pdoe#$_N#kjco!hL!gnl-bGK_zbl-;O?f}`!Hy?TKjrUU&|$ z7&fA;s(U*=qAaIpyWSUqJ!kD1n;#vW>Pz*puyEfE-WYa+7ZHAUDQ~;@So!8QiPv^7 z>zozE$Ca%d+qEq1QXkJH$o1wZcUj)B&U}1X&bV{<#rW-5cHojIeo5KkOWJ$f$kVm? zu1n{f5>V#8YrS@hbZk7RA<;MbB(ArfL^q-Mpw^*5pMuEWeau+I^vLpIyY~$6Zah zmh8#qWLg(5To!-h8Iy>r?hL}X`SmlOy2z9JpJjyWR8~B5de1w{9y zV`GN?@K)WxmIEfY?|%Hv6}OK)ni2hOuRb#)?})#`otBwBCENQ)@A$$?*57$=RNC_L zCEmTU!^#1Gj51!pODJr?kuV1b${{GjOfB5*3GvgrQ$Gx-o?BAn@U;cR6xRn>J-}l5rbK)KlNV zchvqtzLcN$`%)&HMR4LZ%+UIj?4!~ zY}ojql@*`V^Q~vL9-BMo;8)AP*m=Pxig(L@#568 ztKPYb7qfyPTe7xaRruZF)|YSpDr^gTIPr;3`gPyqS^M0^t|F`CvXTdXSg~VQRf4=L=pFTYN$-Z$U8(@@2pz*(3Oh{t{nEtrZhr2v;lekj;?4o(cVGF_;tK1>Id8jnuG&0)fw&pZn^M=Z7x3u5Rfge|vds}EmH{ISnhm$hH;$t|}Pt$tZ>_2CXL_rGu8^n=^BZmM69 z@bh_HUt96ch%Ig3T-~p7#Amm?Q@66jdVl)|H@^LUuhva`cI`(Wd_4HexPNpzKJ=Th z3y*&B%%j7b_|8UFCWvTs&!U|vR@_fa@@Ateq_qypREuZU@GWg4>PpsNm-1f2IAFVi2^Y*ug zXAUUo>h9{wzPM^Y$)?T|9zT+@rR2ZAJ+$!sCtmpOjq^H`jAlKllkfD=kNOAHr7_GWHUB^?HQAAzZwOv4tMSenNN{;j1?=R)zlL>l+#SvKeE` z7BjXKJx_OwvAA%?wj+E6VNMBSqnd*b;g<+2moTVCh5k{6R2%kY1cN=4!qZwO`@NR_PB0Pk!{{J9w z8^*r7ow2WC82e;7V|&kF?5P!uJ=T`78}DFjK|98-xs$PJv5alJi?IjWL)zC@BGV3x zy;#cFa~&D`*WJjh6Ryi}-I=jxS24B;L({&$Gxh<7rwAJvz)~aEFxFErcEvr64MInE z^}UQ`!(uD{!PqQV>PeV$IV`pQe#R_VYT;VOCcsj8>lhmf3ymme>}(6B8ML0Ub}-G9 z4UDD3G=G19v0_-{;Rj(_SmJLFF*cYi@i1eVu)vx}7`qM{Kf95!veu04dJI}ZW8V|# zY@zXtCmFjCnl5^ZvCE+815Y!y1Vi3rZ(Ddst{sfRHv6_#Muu;HnXym*&Dh$_2VT8a zSp8)O{}OAf(%$^Cn|9^*<0Ehle_(+>M8)*^Arp zZoJv%(swOk4d!SFC`D9vl;U6>_zROIjf~j&9F0WMaL}C31Ak$_#xSZ&0USXJPxT`d zPu183KZK*fv6tfIWdtsV@JPvw>VHt8vP~cKZxM|7@q>&IOh!#8rmQA3)q4#v?LO>p z1##Abqt6JILF1|EG)7NNr7=92wlO@JQ{yddO=U5%Nn;7nDK(0xQfrK!+Gk^UYLCJA zNh)LXZXpp0PhDAX0)-Vja5eKrL-_DB`XRzVpBW9>=`#@PE5 zvR(yec9n6%Daf*~prh=|MNs{5?kAU(Ub=4{k$ZWe`9ItIrp2FFy z7jm|0B4^&pgm`{^_nzbU&(b9E_~mRIZ}P8l*Ki))0`$~#y@a(>r<2e(znK5gl8>+S zPT|uyzofFLfbSCsM-}pBVSKzjeikoAboDHr;l^cTF)wH}p1+UEMRjZ}y0P(gNijc{ zUu;(t^Nt{SvzRA>@iJY}wKBhbI^D%GT?NuX>I2tGk$zVsA8L|I zB*~ELB*~2Hh@^7ab-cS9HSMW|yhqE4a?ZioMEtqk_U8-v5Ht}bp)IP4+^y_S#SVRBoe_T2~Mwno&dho8H{p0k#Z3*(psVp{3n+^`R<<*{cRqv;Xc zB>d&FaV!U6QrYfZ{p{2u!tKF4fJFwM|qo6@3QXnp6D^K+1RKs-ibIRfA7hdM+VoET!~l=Hk!N-n~3UL+tzbZ;?%vShA2 zyZmL|X-EaJhr31vn4~D@h0tzUj4A>>pQMb8P7*}Hnc~o`8(D;$PFNr1K^*?Ha*R^i zGuHD_F@>P2b=TJ)LP#Syep5+`82i9_?(Itq2uYQkgf!RUW}0xRI0{jb;Os8zd55^p z%*VRp>ZbA@QY=MTU%wGF0vwLpaqD?Ik0jGZTy|CtEJ2LO^#$y7#GCL5!v1nS&+0NC zh*Uyqw+x|I!m*xOcWHjxRy4wTSP#(rF=F}OxIKFV?=YQrW4%!M$6=RE{qpikA?Ui0b^gp`bg+gj5cyh7y5tG3d|QaQQndTjQwSlAEptqbBEc#KX`u%Fl{d z!1ODt)m{dO_yard$AgnD^W>8{9Sp#dQzBO^gfS`?TYwB zhhWqd!c-nRX9K#jD<9!unb@8sB7fm;+Hp3&R*$Atrc)ikJ@EgQ^^D>tUW|SCsQe3_x#H@QijO z0aY{#6A&uL?H|hd8FtQZ!fhu!!Y8)iEEO@bUu65s@{bI$-+P2(j@TBv6}5ja@mv3*Y&Yp_X-9=!g%bE2+D4(sXrFy8{1N+;XZX2o zi(o;G62E@xrK?~=kpvr#hVSaAXbc{%}V4|UviZoS+RK%gf?|k3_!*8q} zeuo4NzZH}YoYe5!t}})nCu_+8vx1=7(ydDg@YyO({!&h==c#qeu{MMHBWImzbo?CL zVEo*#ni*-9CkIUXy=VEC7~4{1K7k)|Z9)@6b|B~PErQ@?jOJFMPK{xlrJWmy2^zwj z5hNP9(;UNkwQ$ZM2Lz^`v@g&yxM8=y0XQ@8I+G3bC$nFDO(aAt1>Mz3cDtfhoMEpz zf-Z&zS#L1Mc2v3FYOjp!;8-^HNPjg0rYaW|oT%G%p#LdN@n3@ACit7-X$p6X4$ETq zOt6dI6ftE>_w-i#a{t_uses@2^f-fP-vI5K@NdDt4ZpK&&^sMFzYpjGc%o>q|5Y~U zopX9q%vYMi?00>K>+dy=`X`zK5M5dII|&{Fj+f@Yj6EBhWg-U7LZ_B;)t|3O4Tc>| z*TB~Ah-aYMqw639WfSM_a`pd`jk`fM)v&)86YYZtm2)F-kG`8(r4KF_KJa_(j+t9QcIH{ zrJ2h1(?%9!yHWFKYEEts-~zi2sJ)I!glu$u)Ou!b3eeoY)kv84|qE(mK~tDC0=i9 z%$lj%1CDGBdwVHkz>%0*`V<`1felesT;h%L;?B3U5MY6OQ_@197pT?JLf}b@5NV*2 zaO%rx=$C_H-=1nve3wSWP3PbSOmD{eVS75tj(>rlb72*yk#W|@=8LW`JUphPPfn{z z-3NSoUC~FMi8EeG+xpw!eH)%{>kc2jKYCE%E2E!Yb;Vm(6z)hTA;&GhJoUrn1Jj>h z_SKgEyJ^LlYM>0ohH@^W{qrI{l`pi)!AP*&94b>9b8_|C8c>YFAyz}UNfcOvuTrs? zjgLBINVZXA%sO-lB=#CMV#s_DP_(euy@-MvhNhE=rZf;mH4x2)npS_n)X0(nr=$7x z!EXwhQaYf1_|1f;W|)q@MA_7m(a077PDET5(h;{opdNs9{Unqub0My2pcn+2KFBAX zvd$zxl4c+>8H{hlLX?~ws(CereX~Y4pI5P|y%DSj;?Fej7wD!Q-1M6-l+!EH z-LAv7jhn1%$5!zn?GNbOXu3tTc}sJI?@ZkIv1eBCcAa*GL`O!C7b_u**}v&Dq!!AO zGs5Tu^%X9TeGLywm9b3j;}94beTm3}pn_?22JLE(J_@7bHJZ|J*y<9fFIlLC%B|8} zSL)J>q&kP}(c5^tMl`rwM%UOkQgo;Wc}uU9(be{oh<0PENp59zOAg(Ls&dgLl$$LN zWG}558GVC@!dT~SGG(=k(z)4P4N{hfLZtLGnR1uQBU9prv~*Be=ebl=A!V3O*=fki zPUz%esZgWUxWc5_?FJl{iC7Oq>uO5h11`kj@4f~pSBN5{^fsCDkjpEjUe_SyN>PoJ z;Z3Hjb%kS5-<&>0+MZNMQ(>;i{K&7on<@VXUXFH+`Rjea=i|`^k$Nn3l zagVxBH3FY~2d+BE(JhGA3!)Y|)*iQC+Roc{sG(VRP<)lxiukJI_LXn)w(e-A%n;az zF2t4}rAR>BZTQ>jP`|S3O)9F^4HBiGL#0G1h#QB$3(&!lTZL6z<;u7DD(-H>LUW46 z9Fr2IB5o}HN}Y*{c2Oc6FI4s4Uz6&vK}LzP5toa(eb1ULE7fLucNsNq6)I25+t?z*0z(U}t5RNhzWr0ZfmWQEh)8*Q2s$swv`E|R-L z^H|7}0H3X{J5*tWU5V%vghX3}RUm~vdFZyS*xG^8#alIq--S4uyevcLY-c{CCww{Z zC6pMB+MmJCM_OmYGx!6b&r#%l`a0mY!kYn;_`+HBDHL=KFfIgBV&Ek70hd5@aAsDe z8PxYs=pcL!=%X~=Dey+%>l}^ShXZEPDwH8@TaY8hD@lkTLWL)u)lJ|ln!wX6g&a*S zec+!BpDr?051~pG)j{7Vs%f2#o;44ilFUcAv9r8kU?pfA;irl$ajRkgW~c-3#vXM< z0Oz#RN~ArY(Eb83^wmw^D}wQs%%F+{(h=0ie2$FEL-5{sv=DT`HRw4D5mIyxaGI?C z0B|Yrb?`Ylp5jUXuhG{&(68(Qx~?!3MQ-dOtx;O!w&nv*C~|$pT1?rGv5n$Yku7$} z2|FoR1)9bTQVYB(7iR^j0lr+9m(zgNT_IC2UKzxTh>}JM-UobPBlsNPa~i=H0-w?d zehu)xM(`zFEljQ&iKsw=S~@WW=hUnY_?kxWMJU3mM(_tfzg6R%mWTp<1>r4tXG9M~ ztZ9VNA>daw!YCE^`Hj#|06wn~{4(IP9e4}ZvQCx*NN_|Ld~6(g>qhWfiJ%euF5nOS z4z1vvmRkuvyBgxHdWMK<9pSV@0`OIh;Io0>*pQLTu)GoaJkT#|gnmBoMZa4zU67<3 z5iy~W1XaMNHi9P(JsQE+fIg}bd@b;GnDmj0w9xpBsR?nwMELQqhzd00Y6l*MmqnI> zW?iN6rdu@q(bfj|QF0ul*(NzE8sc+FEf2JR6@_JRBRE>RHTY@GthvB=5NNzrV}?6 zo$lgNdNl}IiZBYua^eJMdix&0kpOC|Q_*Duw}yzi2Ix|Nqx6O@PhVr%E*%L{1l&qW z2WR*%11{Ub4@O`=;YM69BdV?e!ZpAV14CD(uTi!9>2?8ELh0a428Vzne)#v(QT%-R z>8j`k`4CkH3SwXgDW0y)lF*nkk0RitDfKYE%6AC+DQ)rRVW@7}(fpApX^v^fDMP1Zxw%#PBb}ToEEeI~R zr}Zvzm5PwN#Je<1yTr8`rd{GXotSosWr^rrV(Jh~X0ZyEJJJaXmOIkf8m1lTJirzb z$jpjVgxr#*^#b83vo$&aWmc|Wxh1_(!BR81Le!e=()6_beMrNUnVi?@yrNu+KNOoR zC;BF{6cr)&zf%<~Gs{-6n}nF4;Yd`-JWWG8_eBnx`GD1-otCV`W%Iqfi#@NSpNy#uf{a-vcF@_xop@NjCyjUB#kqmGL+-dSE*wu;M zZEybro}U{visfJdMx+#7=&|FzrGsXp1Kz6X zvAf2q3AWvPc~1|tZpOCM@Ef?5hw7IPe-->>_$lxO@KfQZ!PCu(>F`&>Ujsh_ekS}Z z_}TC@(VK&CE_^ZkweU2BS&Z;{`1$Y);1|L#g1-U&M))Fli?e)vD@YbVOXj29a$PW~ z1UrhA@IBbWEL+jI`?Bq<$N`r-;9UXOzH={cH)1himy+c<;FS)zir|uPDo$CG zh`uFiX04_HY<~}S*f5IILie2oB= zHI`P7s2H(q2J-+cvR(pPxz!TgsVU2gDKqeHO{iN2xD~vksJa||r5Bx4GhD8lhC_45P ztKp^WDDR=+ZrJUv&~Pjp%4!r0jbm7?hC2YRbKqmolRPDjPs11C&U6ogQL0#avH1jt zE%ADK;N)J*!+f)Q23t1NKL0D;xf$&4W4nghhri@8yqkUeFmE>{lGP5CT=6JF7gncW zF@SAl-U}3-`nXgDy9uA|$A_^Jf=j|t@0^9}W6Lx>X|v`6JMLdN2zS>J-rW5q+j@b0 z_yCXTfy@+9^DEgz?o9;;NKO4$p@v&RprTZJ$#>ir^)M^Z*jVULk!o-Hj>n96m{lum zI0;{?;K+2g14r)}@e3#6vlZNe@Hu{b7+a&@Fwodjf0X^&?LVT9gxUY1tM~0senhn# zz*5ugk3Z${cE_W<}rJwPb_K~bar|iToWXm)>m1Ws`kMiMBpR@VHWG1*1 zg6cfXj{BVVjtXN{3X5*Z$Et_fOTOkYQIV_$Slv3<0boBzMTn|=_$QuA)%nw5kMg=<~nGYW5NCL%nS&^(6R-`H;U1n$MtuV6p9X`ihzJnf4$hNpcph5yODCbsgk zNb&sjxx@NpW(-Uih&zml{S%V*W|JpYIw@(CY$!jPSO-A%oo6z;)l&s1OhzUkvQ$t^DX*nrlC2f=dzY&aznz3&x4G#0RZ$}| zA*0z6{;$ARHtx&5CcZ{EO$@>BFP`oWZpgsN&2q5I;d5NH9N8icNw%cP9KR;igKZZ| zKpI-r!PIq9%m=0L7fOml5Y6bFqIZsY-9alXH^WlQB zB%%}zBk()N*>S5IbpddzXkrFu7?QTvg(-&XT|USW=mn|Vr-}KXQ1MG-{57sZ;MYmZ ztP`}sy-sYEzg76%j~mjLyTdUfTPf2K?kF#@a3o=^Bs2Al$YaKpKm>0zaW$$(R~f!C>@Dmdd)+)epCut4iTq`QGP*>%MLMujR>PO>xBA+ za+b`nhs;o!gfe`|MR0Hyq0Ay1GCK`kmXfT+X){}bBDo3vX85J>x4_>DPmh8vga1GH z+u@hPuYkV;{!aM2;8$`C)ujMv0roIL-27yJhhGhE!`}yg5B$CG|9~gD`w>11zYe|} zem(pK_y^!0gntNr4g6Mk+Q)bl{xSH+;h%sf9#0{B8oq+(;-ngYXW%!({}cWZ_$~02 z@Xx`&2>&nm=iy&~e+m8-_$qi}whiIGHT)`trTITt4GX_z6DD4H8fD+=WV|f2t)?nc zZ`8_KO#ER&LDei!<5dNW^5F4ZSplbsWKh+~_R$n|g=nU!UvN>aR%xt;iJW!3VWP%_ za$4r(LOH1`tVX43D3ogHN^jopzfYl6`v9aA95j_I%692RsjL7!djrC8ffj`$^8B6RM zfOnr2fVcUli9dL9)AhRVjx7UuJZ6KTo_D}6$ z358esM;p6>b{nnJwTn(Q5cZ(aVvP%!-_5r9*A94Q$pQ0zh8pu|2b|^*B7dN_vU=0e)j0bkv(G$Jr7Go=$yh zuWtg(A4%yGPLO_1Yr{*O6sObTUU^y|v&N%J>y_U_%{%+jK~fy6WA1U%O}c+!b; z?Hw|;V5vy&eCqI^L#N%2^mIzyc=Z$_oh4kLkFXe-QlV#*Ji*S}NLl4ioSrz69*GV- zopv`~=}D*Vrc<9lPU|@VJX^?f-c8Aw@8C(N=8ac!(uu|Cv67>oXDVzLCC`gDC1z0|4j1h!8!XHXzG9r8C`>4fu6dDA09bc*+) zw=DwC-HyET9k$=yOg?qmhO=X+-*kX>f!f6P+hv)QYyJu3;-++*I(L(MzH&uR#4xaR|g7Jzcop$YMYGM#inzA*;GvC3J9(pid@uahvgU*HufB#=!=h+p!_+M~i3aK=1E_L61dYV9w~A za5bC<5sTumO_tuxqRV;yZ6~^-?X+sNnQ7u-T&clb{^(|l1>tVVUH8Wu{JGzUysx6 ztSr1bCQu#?n#XBXtFTj0!wT7NJY7A4)HsFKVL3JkRS!NV?BC3cd^D)5jb?@2g^Dyy z&?I!bSS&Z40S3JhWCEv++EKtdR`W!}0;}@Crb78KOF!x4;Kk^=s?j;wcr%A^FgcV8nF)xEj&?3-|ejX!%Qs5gk z%SqnSL(jN4o#96~f}QTfO=edJr&uICVMTA!?&TpFpFSsgYRBnL%E|hdUTQDX3slqi zs3rX3X^jR*b$Y+6Bkm`4!u_N?xq+@4;4VCZr5cmEUsva$sWWGITurtqEMPG2CtPRT z!=vUnO&rAtwNA!waYd%qS)M|fgw`5s03DP!`LB^PYr>TSXG93TrKLnDkwXko9p!4o zCoX$DDfm^(4=*5Ee)tg5@*_h&Qm|TzQ0K8~aP*Ahfh~G&prfes&~bgW9HN8%MjUz= zfW)Dv1+XZ>Z|E|EaJa)J#UUyq4sqGzNx-iXhmN|DII##JjwQy+gZcyIv3!SNJViLP zt^}d;^hOXmb5DX)AzUY_@f#`#;fx?eWdtEEdpxQ5Rf5o=_-KYZQgmvb3^QJyhd+nW z;rAI~-=gfv#AI4BDd|Ugkv^0Ku_l&Z;|vZNo6Jl$Buz<2nGxb&6D6ow)5I#&1*dwt z*lET}?EU%y{wvFUi&z6CXieZ$<^>mtJWULx8EdVaZLF4rs^rbf8McitR0)l4P zGC<;bJU{7Ut0lZe(Blwadz#DgC($T-N<-O96GaV_X(TU88kgjxgs=lxtdqY=PLnyY zHklK=MU((RV>pRSsip~-3ZP9bD zmf5PFU<^-?nNXR2jr-9i6JkNxPZK_w8TE6fWUD2W>if2fi)5{*ohOyO5{cT`NStw) ziUO517OD}ABh!Q;rFvi(D$;C3PZL`uBN9h3ir2b1n-tXrwdhy_$h0V`yiK<#)c>`z zhc{gYwRh8H5Su+7(phyGWUFXotO|gH32j(kqoEPKu@_D|Vf)Oe7^=jXY>XvK=zrDX z^p%i@$4;h&k>4i^!C6G6%n27d23ASjmq_DOuMk+Q)J?Z%{l(+mond7DXk@7>b~{vT zj20+3RlW1v&E51=(l4HFIQv%hn?=oy9$)$qZ!My_s>+rgQ2K@rgdimH#w&!%4{Fo*Mji))iP4iX~?ua@1D~ z-IX9QO=k^YDya&Df5oUjhEva|#{RP)26|KrJsBD8TMwS=K!c*@N6pST+&YI?(jx($ ziiyFiuGZOuP_tYud8*!TiyoLBZloeMW0t=r{(myPD)qBvzt^x9xh>ggQZ;%_grQ3| z9c!Sc>!EwP6Y1d%G^kTl!#ec|q}soB7M2-?lp4n(Ne$JVQy&oAop+J3J7iA+B`w`t zdTK45T?O^$4K*tPw(0)-RC_|p^yjK^^nw^vy_B&VmKSaYA$!xiQzhIkzLy%QD(Khi z&#Gnl8{1#2*Pm6(qQ*uee5hWk&)+U^=g&WWDIL}C`=$iZm7ar@QZIQ1mbf^Jun^bk zt_9^|`jw4Yb>izi&uLoyYBb4XT`7S+^xVd6$bIEGXI&{RRHNt^e$rTT9w zNlG*g&qkO@l$jz?W@d&&u$mVt#%3bj*z8{I<2IqUQQHbRsQ72~CPPPK-kby3LaV6} z>Jq48W|2g>>5c)CCSmZO~jlo6}OE| z_eE=6H4gUicVBA#t7^}~(#pV4`O_p)4MT-s*Kh_$nfxy;o-|dph18>#Q7dZ(31o#D z&#AG|#;L2B@et0;i?&E@NDb51DJoh|QzxdDv1QP1FJ; zL9ebb{|%HyFq_Z8MorC(eHz<>sd0B;@h+OC&5>)`)pE2~YaJ{+kgaLPl#fw^VAW?> zCOW|pO>nhbII0;-zML|u&6v=gpmJE}D5ssE7hP(m==M)!%*2JVGd&Cy9Cb{3;)3;u zzkBsb!!@i%W;+Sv3`*@vnF2qKo%&do=cWxT>V`u0(r`oGICHE64>rPHc%eHCV&Of~ zkVwd<)rH=$$4vkj#KkJ)?@IYwjftX5zIg$p5~gYhndL7TRLCtWA^UpV50Dr#s*pQL zLcSzH$X6fWW`b1Wfc(wY;-Lw^;fS2Mn?P^sY$CUK=UZrB=Axbc|pZrXy8&dm<`D_8McOx2j{W^M7!D9dYi?xDIR9~`Q?pDn%>NFyRk9MFXlg#vVU6QcP>2q}Sfh~_2laQi zR|$yG!43g9I7RSPsAa-&9)BC%5LEVuX*$ydxqxX-WSQnT2p#Q{31phMxBz@Abtb~X zdCG(FfyDC6w7d)z#OUBt#M)lQGLd-1VR!ccpM$#HoJ=9hur-XR-fim_%bf0DPWDxq$v5+2{_%pA9v^Z7DjH!)zhRG8F~A z+q+HB``i0Fz5&$iR!}{L4~r~%8sEVB_iG|C@_u0aA9dI+=7p`r?$qIS_QLIAVa}6? z9H+b5gSz72@S)>_7Qx@5=!%aO<*+fhPaLgNQ9;vjXFTxY(x1HOK%cw_e2c@4b8!^E zH7GvO(XZ0+SUmF*6d&j4F6o#mrZGYB(Nue+bK^}dt~{K!4~joXg)W^N&r-Yca8xrW zK5&rI&FIK6!wWE+^2a$kB|0jKhv;g6>|v_A4{bW?P$^T0#Y21cFXs$*;1WDh0YpXQ>iTlFC0bA_Ux3Dv%!lIO&H>w*2)UGWoZ_7w;~zUwKu$A&z@>p|;vGDcB zS<~lD&z~`UVZl2WL0?TcDYIZ|{X5%$+nPe_sB)1w{oAAK_J{=G{;W^xT08k&k;yac1@DRr zE`O-DMO|&rBXhrL5$-$h-`gf^yDf1zYrTz^3@$8SbI;n6$Xe}iCuO|rKDYOvj~MH7 z-jh4JoEg<472`(1=+zw`>wjab{tH^suhlA@S>5otnzajBMe%2v;oDDrhX%fmk;;?{ z4TVB4ZY-=k{+{^OOCz^_k(Ub^si88AJ_>L~l!wt>bTij-GrQYh!jllU0qD9@D^yhel2g`F^16#`U4+=OJMn|KcWW;MPPriU$is66A^RSf?*Hs&)t>M{VDk-K%$@f(6a+) z^qf6%L+#&6#^e=zWawu-^v5IfJMKt(;*8w7_|kFB5|BI5mrwZY$m@^4e`VS|gZtlb zX41i5OoG*S&RF!!Jx7L@f4q5W=Gc+D44%RqBrZW>`i$}&ER4UJO7Kn0T@rX7sYWD1FZupGibE#_`RNKK1Cw(Ph``$0al|fU^1pl{xJoH4;8NuJ`Y5yclbeVp% z#_@q4mgtzNM!bxKo2f8Soa%c){}p{BI9|u7Tr4KK?OMo>X_8K1o=cflFfS8*+j#VCXnf@4Yf%XB4_K2_ha4u?_aHDk zEN0M|6zH7|4_XnB3lc4Pk{q#4NYh`@=q(KSb_hQo%M58Le}d7VKS9&)PtXhq&_qHK zzeM)R9U{gu<}@2&G=O7_Pt+ze(Je^_xQw|4`SS{978lQ%kvn#ji8YB;?3lUvXarzGYZnCOfdpsAdybTXQn41 z(j+#ePmz~nmZ4IQo;_vy)CGnnBm*!|@p|Q8(H$GO7UTJNG?;35dhfY$g#bKd`PX&C zcDwyc zC3LP`RWkZDJ%P5PbrvDf{93xiOj@ryX-zJBLvoR60!hZk5f9}|k`F?X#H;9*0=oh+ zUT+8oYnzTID$L5swRE{wL7*_NGfuPTri^A`n#olE(l;AN?AIue~@^()Wgv zm^PUzaDU+mDTVHSL$z{9Xc%&T(}$2V@K@X*<`R_240bKzwV`E4q6G?b)=L_@rK9{c zfh+Xui3T6~l|`+2ix^Cc@K!&?$p5QT1+>*hcRu27IJfC+HBnNsNi-YlU)7?MRyjma z*dypFDna+A5#12y^Z)h6zQQ;*f{jMmjANGpKN970Sx{=|ADy7Zk*7~6mrK%z4eXma zYLqEBVhh(&V2dA3NO*Ofi%0?1hjJeWzG-Ycetq~&L#b0u@FDLk{9c6mF&^PCHUXGi zz`3|m4aZ`QHh?@dfUyH)uJT8|bX8yaRHz%Y(8A058_?ZZI|JC>{#vVQ`vPVavpJ|U zy);jkdy#A*UT0}JE$<7me9xe(i~QVavnrtXMVL^J!k;#01l1ZJ+SD*u$4ZltWS+Bw zn4KNMECWUyjlW?qCsCiM--&|tqK7Dz=y#=~`-oL&y0t;hGX0`4BZWDrC{Cq&nBxdgHq4? zG7-Ke5>#*7nDfizTSlx%S@QCfogeoy^wF7uzG<3fm5uE6EFQl?rnFF{WevS&TS4?o zPQB$pLG&FfgENrn3W-i-pgsad9|ALfSX^D4s&h}392i5Wlr{+6`WjtpBh8=2>n?w> z33a7xkiNOjf3eBasx4z``>Y|zj)z=qn~}F-d8&+^*xRa zFIWt%8i!BwB^`bAO}S?5=G*hJlW82jX6_iM4V7Tq%sd%{r8sSD92MOXN9L~P^gjF! z@zj($-9&_S*bxydSQuM>uE{hob5XS@THBlAZ!U4FgH2l9qA1R&)0UO`ZzAF* zNC3u7%yvYmoKxpC2Y!hI-sXSbBIY>Y^$s|2 z_Y&>JfA{SuA+sDU|4Fe>m~5Qa`>jth(94&ty|2616Bh^DV2 zb`WXd>MD`~b2HHJH64+ESrph?&?G{)1SWR_`ss!%%<{{*YtU$lK|xruqhyp6gf>|J zGM#o2$eG2oF+{L5<~vrdAMmzaa#iw|W$Al8B3)gxjPoX9$7I^vd~2pJYx<0W;)%3Q zn>|ZkjGjJu?(E{(Q|I||3-jj|OqmEPkRRAL5rLY@7y^^0$QMll9{Gy+2~@o11{1c1p=c)LP&|2nV{&ZX`#iX z(`QYYeSPu7+y%v0{`X6os5Y{a`p%nil`*%eeJaYxy2NMzX2#;i(3>1_+$0CxO3GNb zV*=rfu%mX>^*MG$$EX*-z;Y+^lW{s5ae*QWR3BsU6W5+GSy>}8hQacqbH~su*rAKc zUlom(O*FbIloZ%tfe`+QwP_E=5Sttd1`MH$9k}C)cXH{GLFQkf)d~d05C{7XYjM|s z4pF!C6?rR0NBmQlnta(XQ9BB)*c4jU=%fUvmSzmnyN^cF^^%vizq(NQn{wN&Gb3!A zY5#zCDKhy>wA^28e-mNH?r$+|#0x(>J!$8v9cSsR#CbXeq$PV5Pnf4^pE_@% zl~z=0;~|5m+dLMv4HP>_jcB z)B5YpD1$s3lXtfx-YIWFh`h%7%w?T)KK;K>r=?k|KpT#!x=EK{T`SP}j2>k-L!H0ft+u)NzcBVAm*w?>3?>AK3p*~M+7_c+CB$u|b ztng!|HEasZts9IXrYm(e>8OB3q=EdyM}xeRni8rX4#P<&8ZF!uqh#wQl+@+K%znDb zr%`VHiI*7<={~wOPix_y0~8Q5J&L%h@4EkrITv<}vLD9Myr62i5$Ms%CC}Wj^wp8; z)(pNf@2uRjOva{n%<7l90C%gVPd3I4oGAuM4B##Xew4WHk(6E@(WMCv2l8xg3iF8PspJh^0CGsh~C?lLQb?BeZiImC^YE#$AojLf{#GwDZk=wSKG_Qkgl;%%)sL zM_ryZ?I2Idjzx<6j+l9>{`>St6Uq053 z{Z^bS#xi@vx8h0)AN^MJ6}im*@LRFKh1+iS#ovkU61ed@(MtgF=y#yNebx`Z6PM9~ z#_s>USibs8k?EmTbNk@ix4g!__Dhk=@tN6eyp0{Tjl0XrJu&={{nMAi;$Pd>{#T6g z&}zPIFh#@NLggDz?a6~NP_4ZHrU;++i*w_6i#&KUThHhd0hatR6XEt+TMq@N$3 zJRmu_e^SDLVZ-{RC1>_aS01s$GtQ4sOHLb*o-i!Ae?oG<{)yz%Gb(>QDsJI+$Ua$^_Zw^n_cJCUV5Kd5g!feX_2d}L9S*#M_CFu*Ey8}14T{x9;rd{%@ zC|Uixs9JqY%o7oi`v}rfePQ}NN?Oj#eYv=qXDk`gfhk5KG&a3_(bDqe0