From 266520741a4d0377f3bf5f7ad69eff77caeee4b1 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 18 Apr 2019 15:29:43 +0200 Subject: [PATCH] ctb patterns interface rewritten --- .../bin/ctbDetectorServer_developer | Bin 0 -> 165760 bytes .../bin/ctbDetectorServer_refactor | Bin 165544 -> 0 bytes .../slsDetectorServer_defs.h | 2 +- .../slsDetectorServer_defs.h | 2 +- .../slsDetectorServer_funcs.c | 416 +++++++++--------- .../slsDetectorServer_funcs.h | 7 +- .../include/multiSlsDetector.h | 61 ++- slsDetectorSoftware/include/slsDetector.h | 56 ++- slsDetectorSoftware/src/multiSlsDetector.cpp | 45 +- slsDetectorSoftware/src/slsDetector.cpp | 107 ++--- .../src/slsDetectorCommand.cpp | 43 +- slsSupportLib/include/sls_detector_funcs.h | 17 +- slsSupportLib/include/versionAPI.h | 2 +- 13 files changed, 404 insertions(+), 354 deletions(-) create mode 100755 slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer delete mode 100755 slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_refactor diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer new file mode 100755 index 0000000000000000000000000000000000000000..9d67955714fd61b37d3cadc8adcd9272c910d68b GIT binary patch literal 165760 zcmdpfeSA|z_V-Q8ODF+u0W}EfEwC#hYIrrgC}}~(ic+uwBD#T=7ZKN@RSTk|6%<{- zR8UY^H$~h;C?H`uR+H&&=F2 zXU@!=IdkUB-0^n~&6Xso5yD`}@PQ;H_1+{UWd$Tj=Fd{wzaz~s*7Mw4{IB<~>Er>b zB;AH^JHkMOJ9`+MS(d*((bWF&7tfXsQkSeqMmXahq<)B}4_EXowW%Aflqeio{mJ>p z_o#DwH%BnPB^^taBvUtes5-ZY3Bjh$>meazTkcio^_EApz;Ds^P^%k?B`Gq=+bl&+ z?U6Ed%ECpDj3^#2-B9dp7QQYM6r>5)fDTTe0t~z_udj|X;FWs#!TG0%_SS*>En??Q%Q)6?wg|Li>;nL%kj$I{LKh0EE z+?ax3w95;_IS!v>&-3+tKT}8d{Nr5ONzVDV8H1NvnF>hIomBHqzkq6?-MSq&;VFdL`}M{|-r$ z?ak~-h?%|G;d6K$rpuQaN+>myP^#sFB-Qc(FZDD^U8yUzy}{)xVWrv(E|i+{-xg^` z)V9!jmnAqcd|ClGa4x#)W`Dy^`a)AUf@iYJnkB|$MqoE zjf?gWJAk1Dp*wo57~Htbiv2p3LAzZ&?7(1U!?$7nXDZ>;&v&aP<-e@N&S*8GL++ z8L$VihryLgWWZYiZ)NboB}TwOz(EFAED^FRud#IOFOs!1oD(Q>*t5#4B@R;~Ih>=E zb?ylMqwfyxCwg5+)gejRy!UMC5=l}WZ`#Wsi^@b_lZ%a(X1N*2pG5E3L+-BXlE~sQ zJ-#3bLz3ffi-ToBk7W9-UC`q&^^+y-v&C``xj4;kH1>p4tY3y%5~PU*<#EY(Rk5VK z$=;W=vFMqdR~itg#k+g1vP87%+ECdkk7SQ%?IIyangJhq(@=Vg&)Q)mmVJ=s_jI`r zBOYUIaBQrt^Mvh&>=cW^X2gHnAj$N4JIY6+^3t4qRQd-MWsB7Kxa_LBBBRFmJzdpB z;KALN5f({%dS#$2fSUJAyUt&Ws-Uh^=MK?2A6br4QRl%cGt~T*NeI8Y zZ!OKks7$eBcp_SUt>iOc%tW-eY9)-BwW}np_D$lq(V|XDEt5TI>IBJ{a!5|~qz<#G zy;eyG@!q{?rKB!e8PT$8Wgo^l@H|~B1J9CG#x$F{0;wyInqI5;(pc)mS_P@Etg1mz zb0gJ_)E>1KUw4)|s@8(k8LNIqsvoI-q;{&c`O;bHkXjp3A6s<*shg0x38`&svwXu@ zYTw!{q>f#+6{!KF29Vmg*6tg}QoGjLk$Uf{FOa$yse6(7`^7xpG?v=FHV>({uUd`N zAX0-!J$liBIfZIus&ydsmR0{k>M^7qL+aj(eC~^A7cV-Is;qJ%wHm3_Nd4|2pQ9q$ z$%`(ermiYPss!Fit0G$2MLst~v>z_Ik(#vXNu-*PYC`JDi+BWGroTaY27(i;}%50=|Kxzl1&c8@fmT3O?Vi2jjR^EZs&PeTy)E6#t`54jO zyBI?1#+7{(>Vb>LWLnZNCRg2fpA6uNt z_}CJ%OFGs#0pG$!mm62Xgn1|EgKYc=vhgF;8_|Lnh<9DU*~W}_T~_|zs1oy}TpXSh zd&Vrg>6R1(Xam}f?{doRkh!3|w5GJ*$DWda&r=da2r&(zMVfV)+voNgOVR6 zKa)JL4KrHMha>32k-}`kqf5J&(jt)e5y_AZe9&1$I;SI^w`ikdc083ZJMN=5!X-ga z@J~j8xhNE)fImZvDZU>wY{qLv8wV8)8;K`JswGa5;Q>Kg#sh>s@vW~H6m48z*c5Ml zoouo6jnVp2wxIgk?6xBx1{HU^<8O1y6EPK`{1;jIMGn-Y#Y@AAHWs#ed06}{LFtRH z7HuplY>YBrOkSU{CF9DGfBO^olZqreQK-i!7Y}#ImUfn+jmZv!{iTuLk4&;Ow-Bx2 z5 zUv}+bOBi!DjJY7jT=1iGjJdy_7n1Ov^CSuX{sHt!pHqR%G>xo-5$~sYcO`HgFjC7v;?ZB`LHrvjaA|5WnMSa zPp6@rch8XwGC~G@eU9XJ)e48V6yt>EDQiig@z(Z*-tIn&XhG<_q@VUHmF$onkf)uX zvH5-Xpyd=*k|CXKLChu8T1QxG<-JbrFPWOk;Ebsi%iRmP(I-Y&OUu3ZpB3<-H?;Vn z4RW+-jy3F}8!`Xin2veFfFNnT{$*2VBW^b079kGl+QD~ey_u=5!fInxZ(5-?h3?NG zT4Myfw7QAQYa^qZsFv(OUyaL%8Oh`7hAHN=67s#CkZ+tW-@^&{UP#DSsLOYELcS>p`AT&8dMD%?nUHUtE?-(gzKn!? zsxDuPgnT#0@||0iy6oJlfJ=tt=iG^CXQ3m+d1%(T>k9Nj22ltl;{* z8tQHT{ZHL?x`MS6)^t9}Yi-#ItJn*8`@-soc6W^paWsbiUSq?%#s5J&qcs&DQDaGH z(=RS6J|)_wp|YiEsa^$birm22mKjmbt!iD2b<=;bZu)N;a9&-Lg;W~N18cH?ef)pw zw*SHeoKMz^bA-#L4gk&p3}+~82TmHzSJc>n)5>tB>v;TV0?r}z;(Q%AbAdCL;oKO` z15O&bzl8IEvn9hhPKR?~0?upe#km7G=K<$DhI45c^4D7koa@34;H>;N)xA)M^NIwV z)k?kmL`%DY)6H-`8Fm6^F>o#pJAt!|;VjYN{N;kajW*Yda|Cc!0A~fmIV9`?&Jy5! zJnRBaC&Rf;hjU#5PFKA+Uk6Uf4UNN1?S5_84V*qU@c%&l%5TO3KjTwpA7$k=0+M_Mvt1>dBig2jC=Yf8es{K#;VbmP)4fOv|#V?Vw4U8(Ba@ zw^CS#O4HS$$ThUI2ip5tgAME9F3>HO8f?`5%N5ntRDyJsnS`AT3#_E=f6r*o!d#!l z^l-=s*rTYlY~aa8X&lB}HPA|#uue1Bfz`8I@QG&V&X?dR0GyI(tUWU<275;}SCX_P zZ;LXiFN`tsdfC*az`eB80Bki9={kh{T7v`dgyp1LU9C71YDsuUjY(JipwVB-O9{Et znRVr**SNk{%xI`&G*I46$h#?;m*<@J8fHV3yf+$~3EPZUqIEr4F%L^Fl>e9Iq7IVw z(EDu^MJ+)~U>?MK7Z}AZW(OvUzhQP@({kv92FdHsh-jUwVWk3Z*7hbltLW=SQ)6ge z)~el+nF?fF6FpC4Xk5z25(VukiL_%{sV|ZIpyh}6Ix3jakcyz?N+hSK+*hOkQUmX` zLC=qtRvgjHzcY#6!e~~IdcYuK4ko!OLz}lojK(HrddjOc8h>n~e{T%SLGc~X>e(m_ zLAyyJ4VY*d!K}M)y{BK%u74B#3^@_BP0L}y#501{n%QfK##@=a_J#K(JJs7-xjQ1p zQKH@U?6S+*ZC5NH-L2h+_JR>RId4$?6g@6$Zoq8@Ky#7 zS&#+z7~o?Jwk;sL?FGOW7;IfYc3TH3rqZ=Fjmt`&0CpPvd+Zy+%?;uOU7yolktu1Dwa; zMe~Wz^8n9d@VxoNXBS`>gJ;htKCc11hQTxE6Q4H$-o)Vi`NZdgfDbZw>U`pJ2ylqO zx$}w7jX+PMPpSN|^NG)9z-9(#&nG^21Kf?lL+2BpZGdeI9<1Xt&5`kWrHNV6_6(J@ zaU-xc*Cvh-^K800`%~8Cvq`{QEB2R7%D zH0Etq0Q*pi6m|>ALF=k?)!o~GKr>~St(aOuXL4h$)<`zmA-f<0+`!|;-0fg9xq#Bt zJ0)YYYcT)vnABqI9H6GlKaFUoYsEVJst8G%4>9v$zA}oE<%Lhg@Lp9cFhGWDH3r!N zOD^#EKWznT`?gw=O0=dpT}x7FPDwm>y4r1^0fFymjVKPg#)GF(shA)iuf^J*Q<+%W zdRAH`N~>h0y@^#3?Kwp>Uu_Vj-B;2+Mki7Cp}`87evL#lnm&W|^)sUJxmvOAan*+K zR!`8#sTfiGA*>z5eJiuAB*o|(QT#JoQ(b9Ry@nPhIT)3lUCs1F^7LBsjS8%4CKGa` znq+fl?6`LM%s{~s@^u2#4G;pL4uE*c^BQISYi#HMQ=Ci;v6%YcTJU|XW2!I|19gB0fz9gaC;6G!qa4AmWn~5CWh}`IHVm-4o-}Tn{9xC(fti zcoP9{65SU7Apjz}jUEF9Kty+2KnQ?{?#_S^01@35KnQ?{?g4-h01@3o0U-b)y6u1v z01@2Q#6T0q+rIYXBhtBFfeRLI6aRZ2*J-h$yQ7gaC*r zs|17qh$uS_2m#P#dS0~OF=>)=F;(TggaBweASWOMK;Hsd3J3v^AJ7Uw2!OnR)&fER^f92VfDiz! z1auG(0-)u9jsrpf^iMz+03iT+6HwbSv~?LluL0@;2m#PsKm!0F04fAD6c7TS8G!77 z5CA;|r~nWGps9dn13~~a0gw|A0-#3#xd0&m8U<(#AOt{JfHna_0CYE?3P1>eG5`eu zApq(RCV0zv@vUqFihAplwdXgMGRKqY`YfDiz^ z4QLY}1V9S`1py%dng=KZ2m#O>K#jhDOvAo*$oB#uGav*&ByBB#5CD<1wE;o^MA9}3 z5CR~Qwst@WfJoX-1%v>Ir0r}#2!Kf1E&+r9h@|ZbKnQ?HYIy)503xZi6%Ya-k`0xB z5CD;Es0M@ph-8EDOUSn`2_o4b13~~qvY|5|1VAJktbh;zk!%mCs^w!5T`?VbgFM#OAD%!ckxUCh`X$kQXBiy7JzT60giH2zk%UeMQi zW$9w1-moC`cIsjV48SUBKtLBW_cqA<+vJbqc$VJ|?dSF^T};+MSo{Y%bumj2vt(dE z7gK42_F=gt$eBOV!1h z2SZyOELXMG#YuOdzIVt~ZFF(@h|5P@TU}gMCMe64tFF+;-GjJ$@0vLC>z-~qX+ zgD!3f;+7!p8eN=y6v`MSS6!=%8$AXqh%s{2b-K9VIP39C!=I3=Zq&uK%>z&K z*5X~?jYj&=;HF9LB40?s#|q& zj_I&BO_!^zx;WzuNj1)ptNQBVoQQKGuAeT>{2a#2b8=OGU0gom@)0*c7k2@17Z7)w zE^hWr^r4w@)$O`C)ALw6JTF%b)Wt1A+#Y|3-wsyijxJEL$F)*TV8*Lhmy%=`+z zVqcM+*%%h9oSVY5%JILA)k!Yx4DppdB&}kO zSno!(3T9U(%V`a>oX&eYj+gv0Y9Pz`>WZ&lxy?31-Skxw0$EteQ;9tDKG0$PAcl22 z!#Yl2J=TQb><7s%>}ir|Fmzs2D6&TrTCLn#eZq8Q92q&#b}(#XlxawaWdBJMya6GTY4^m z%KPPl5-WB#J@~!XTvJj|VlXzA`!4g~{~ZZ5dzKkZX5{vkoGa@HB%6yZ*Fu)hhy z^UFf+?xjzbep1@h($aDTXgAHdO1U(59&+c^ll!;X@z(n-X7|3D)#0PJsP($g>KALw z)=^$x>$}sE=TlS({=m?{?dNjj>>2jq+3>=cQ?#+&OFex(z57S@^Z}mT5q8GzUd7kl z7tTrZre~-53hX_+McMVecfap`ymvo)FT-cUj-Smp9Pg#$y>z@cg1u+XHRsCr8GB?7 zzH;!L@aeSs>|TnIhuLA#E`%5I>!3-}9(^tBB1<#*f9AYqEwQ$wJ(wka%rSm1toXBj z_hWCHc7m4wPF9Xv-y#o&!><`Fu-Iooo zLiUk$cvB${(h&i8Ne8@!l%{6#jo1O)zrEI4q374}{OfCiLNlIMqon!x!Hj1d<2IShnaU4r_{alJ<;_!e?R>zQZWI`4S4}3kr{&GsNj58=b%`c-M77 zSJixB@fhlVwBsRZX^63e^)cpX9?sWH3+0VyH=Tr4TaIY$f3sFKukEBnH0x=}lqwUx zQDZocbW5hCD>!y*t>BTokf)qps{l)!r@c-S7Hehm+WL80AMIP`XR5(ZQV`@~>S;FB zy$;&Jx`_5;wU|Xx7>EA3_%4fo68FLPxacH6L_2>fTGBC-t_|xeXUY6&m@H(68T(QS)^*^{A1HBigbH zcUf#Yic)~<<5Nsd#cX9M4bU|dbOjh)!z?AbT}XSBru(YhzAX4r!2c7}RD&-MRuiAd z^7ukEjmXr+0k7567JH>*PDv)2{A+TJEgRE+ZOem3_O7xX`#S64KYKyat{CHoopil- zklJm1G6IbZJ`+W>*DkC>Ndu630CIPZ)%k8#=YwzFWpUK0Z@*Jy1CF! zIW=gFb!Z2DovV)XcBnYx#43~OoCQjx~{cNnCL2E+UGuP8T@Z+&MzJ7+<^)GKmv}qy9 zq@X2@Ew5zl`SM_@HD(sPwS>JjB37$sS*=puG7AjJOTLV2g}?Z zqvgAahO#72Cv}K)b;>oef%$yrZ-j2VQCRQX$a$@@0>AAQ7kk#4o@e~8FxfmbvgupeHvNir^#PG_l@bZeVv5Br9pG-RlIU;7T&j-=9!6$X$iCm3Sjs88g{R*KSr5Nb#yg7tweqD zyPZ~0##f6TRfw*V5k}^(8Q01s?ZAk*?&}5(?yo=b2#F+V2WN@0;2(3!67}UboVEb# zqD8kWLC`K~4`Sr^N}w?4DYMJaaXYE*Mm@_KDc7qrlWr}GmsE|Cs!@^!Whv_NW^rx& zJza_Kow7yG2W&cJLx~S9Y8)-`bT&?MXm@All|4zk-2mQhD8-qFS5J`-0&(}hr?T)y zMwGjwH{d+ihB$Zk*92JmrzL3LqOP#TZGbIqLr3)~Nz&TBD&k4TljceK*sN1_;BUPM z>xU7%g@d3XxFMnqIYoXFM8o5!@{mV@S9*NKvM7~WwYXitlcp}k?$Nw<(>wu>!8o^_ z$VI&`&lBg>anOEz!%khRr0RH-dW!reh@w8H94PI(g*mKdU0A>An9wSs9N1 z9aS6ZxBL|mAJKk>Y$|5hTAgwN+p>j?SkKup9A^rK^Lmc{1~!>*u>K2ij|r^*LN4T; zw~+Vb+;5W9+;8H%?p$+q8uj6u%>hqGbwe|`*$oL?kJmI0Z{~gT3HU+1VuP+%EO{YL z6GQu4UI z3Tvr}x-uq){P4gauKpwBM;X^HydQk9nwl}LHbG4!?OYb^`B7|t7HgF$w)t=)I~f@t zV?m5eD!>IRNp0n=wNVrx<&$S`pn>HvE06n{3Z^A~x zdX#u!SkSW${|9H$S*&dG6D8Kz01Z{I)f68-z8P&R}`7X%)rU;WD`{8v3iC?ka z4%u(Vykp;}dd7QByGLN$uKrbM2RnZa0msDGyJB=K9s?a0+CUikCTRm-AD3}ziL@QI zON(_)L;AqjxpeB1bb?`)LY;n>cZ};gkNoO_1)p@HbzTJ}8nQ^=7>+%|8{}dyor>D< zEoQfG#SCdg&hCng-2(9QA6k3}G=;t;T@ZWqCxwqd@Fdaw6xM2A z{UVtL%5E=4oAz`Ul4X8)Xp*;nd;}GGg6$CtCj!UrV%YVC}T}B?;CF8ein8C&32= zzGxHVVOSG65wC5YAhqbs>>8KTURG_wF5#xlSTT=(Dc*i7P6%1I?F8|}?o5WZ?gYgj z{3hx}Bjb9=d*=iTN}4r6!SCx6Z0K*Bz_(4{+nf_(&GO+1>IJtsVPjJFB6TlPpE)6V z!8<3Y7u@Wm`HEX8_~@AbbG$4g&g`SNPb81fe;tj*<0KT$D_}Ik|H|oR&-m4h&RC9^ z&n%sL5V7^OiIKHQIETDpRh^vbP{l`83V6~|iD+GZOI(H1IJW*wXPx8i*0h1LcFdu2 zaC#ZM2!j`)peZb4(BibTHH_g%BBxe*bxM!biR|G5M}2+jFiNik-b&!D z{YA8KCx-X41sMO;b#b?e;ckdu?%6aGq7MOo82GpUBHH-OFVw~_Es(Tqy6+tjrzradrZAX^#H40%x;U;A|G($&j@D_PP{w zigGuv@nC~=tQU4FMD6SAKVQB`cA_lbIA$-xEgbB>#g|TYqlq$VS5Q)f+Hcml71Q%G zdHDA2n1!=8PRyT$uo0E|_#FWKj_$%u9sPdX6_FRxZ^x2_2y<)k{jtz%S*y`t=h*8j9< zW9pUZ?YgSD(5w3$tzhj@!P=vOwa5QIF?}m5qU}+E_MjS%8Uuf<&G5&H@}Hjrc>GzX zm;5L{V;oJj6xsS!?Tk3omM&*z-^!g4;_lyNMNPBy1C&I(1|-QMt*!i)(%qZkeb2iF z94Ef^_yRX#Kr0QoQ!U9B6I%A{sh1TC&dXV=_C)$t?Tz%U#D7x{Sg!U)`k8Kyt-@&C z<@DC%oXf%a{K3?Y)TVL4)tUmyU>$v;nu1OvAk*z|sp?)*clt zsve~l&40C=@nOi8WOc|EnybVzpDX9t)X zt@D_pPG6Bi)J{d2Q&HxGqe7#2^(fWmnpgeNI!{EM$6@78t!=a~8D=ob=IB$iCbA2@ z7RHvDaubE(Tu2>^ypr~EI`If+9)N!y@b`}Kbj(p287E%(8vVkL{qGEQ`IaOEvhF8C zg3SKa?X{S?B#cNg!r=Y41>S#K#*BlXht4Y4gz=i>!Hta9U%p~wwW~zwl_=c;j@s+! zUTrHyKN9wUWrpw{YM39*3g_6N6#LAGltys>)iGQ~OyOzhA)N zdl0u}VScJvJVqHd!jh2{f8+h=8w=SR|4bA4&zMpyKi>!;C#%8>66>#vZSZX;bXNonPn|@MJ)(qp?>ZmQ$Dy=2cu^A3$2wLFXa##E^f8iid${A z3b}zZCr^oSf%X57Vn+P%M;gDk&FzbKu_D@v5wI0|u|Eo#_V$l7{%(S$kn8Kh3N-JC zp88>CMtxOoZCBNa`ii}`j%b1Yhw&~fAR*taN(ko_m7+Yl&#_3X$kz&jZ`KU%AwD!jKg3=Mi{f_3q2Ox*}0Py*sLj&`{=I61ah*9i7 zAnTr;Y!GZ5dt9`$xc?BJ7dBP8%cQhC$UO(-y%W~GQ9U~T{X^_8e&~@Ge(32q^?!YK zK~uizsL^tlMVTmRjb4D4HQGD0b(E#!#P_^zXeEAj%N+S>;eMn_A(7WrQj2E4?DEp- zjwX=4gdw7Rb6oI&>_h)z+H(qKsrf2d;7R9RkM}~ixtO)_ncMBY953t(+hAYVMrD#s zQOrRTDn~>BCQU(J_+f7xzmL^1dT>3 zW(%XKw>%!>xD@67XIQLG3u8~vzj_8JK1T zr7{HEpS;vU8IMx`8cQS5U!eDzPSRNQcS8`+oFOy-ok6gS?;SYcAgmHrwTc zwtUbwOA|e3xkf$b)|dP^PdbWh%=Xu$>THWw7D*xo#lh9LVO>zQ|x_a z32cj;^HAcvZSda5{V203+jHb9bMhP8-6$2>Db$MytT2jlHacLeYsT|Y_|^&@OE2rB+Iv4A>A~ht@%MRJpm4@zFgV?U0uj z9~F5=sEue;ym5rusLPy7@2^|~8G&HQLm4*UhbK5noZ%x6mr6jD+onO5-E)M-7qw^J z5gG%@b7*ft^aiZ!p7XQQ;aBVmpbZ^$+A#YEQA=8>x5Eu-uto0EpU{3K1_i)v(SpM) zhDq=%d``SQqIiriOIVlc^aUBKOi^>;zqWZs-Lcr}2eMK%(cLFS{-6Rsjc4vfL>hHX z4q16b9l3uSS%pgXlU16x>`GPf^-K$6W!uAAchvqs4K@*~n#r zHp$n@7Y9)J!z}5O$Rg!odr?p6azBpTzu~?np1Z1^++%gQMw}h zJy?(Li?>7-a{nE>l|hWyECd_V*+*H5Cc+jAc~9j{zBLGsTnkdhMYRCZalYF}`V9r4 z;{;vy-dlGB+&$enE>xChmwXr>zL4iqKj;3i-t>p% zX8%ZfB5&t@(c28jp2O^(h!5xV#r+29*?o~#VDE>NqUthvoeu0`;a!`E_v9b@bvXL{P zzVc;wd}dUAJWei4_Us>-T*h0J`<59zR(P2i;AcmEWYn5Jprj zYKW0_F-M-|c{bT(3zNqs@e8E0AoCOR6 z3cJ|tJ_=ox*FEof>~xppf?F+3CUvsp+ma?1ZERi?wp&NsV3}ik$&_R%ur(gp+%nzP zsL4yF%qHoBaPJ2&BWS&++Uec}a{%jBE#K}9PqO>$nCo`6DfTP_k8+VO7ZeOSEIh#` zAI<{>=N+(tfPUF>3MZ|x_RmVvaf)thB~Dd6(d2%O3Tr}FA>NaduvT6KIv0V?Uk?deM%%+qVEB)t3+xya zx+>#6PkCJbXHK~ubHzAyU%m^RB0ZHjHO@nxdxBG|4+(3=&O>fcFwp^D?){Q!t1M}j z5q{`$@DjmJyV*1VzdhhvXvO~PSD+8AK&wuCOw0=rZQ>zeJ^06=0O+~aA?6QSD-_C~c@}$CcFgjO&=A_*QN0&?+y|eg`+S5SmlZpSf-amU{vM}^ zzh95Ng=Gn}Z&! zg<4|}MiMNs+qo6KDZJu9%amYrL>I**0{o4p9APqNlZ`A=o)W%xsNQEQd&Fb&+>Tu^ zT1Bv1N|`!>)*SOSD$kpjLh12`}Lc0X)s&mv@(% z|9w-0t1LxqwULecOR_&R_IL%OobD36OPz`InMi*UJMgp7%Co=U!R{h#eo$E0EeENk zzkUIIqf%)1!mg$4lYQ@cWp7KSE0K+e_DtHKjc#tRjn?GX-$t7%cpH6oz~XzR!8ZCc zoUXr(p7lM8HhPw|(RlEEn%C}|hCVY6cJpz*0{fFVH&$O8IbgHmZA7xNZX4Z=S;GZB zy1pkLyU7Ox7v~=!E-K*SRE@VE%~4^TVIseqnR_kZqs4o3jE{8sFL9kD#;90pwFUoz zq;u4m=;xuGd6+3cHMTZ=(NCL%wP|p1REb z&raTk75m*jx{nmLZqN}19Y5?Bwy;JANWLt7KDPg}hkVn~d$mUg@!g)b0q6$-*y8pJ zF8;iqxcL0@e78plB&$k*>L4s_ZM93+!rS-gJle2^ZO9j7GU^mWKM2&}?aXMMrtJ6Q z>>lyf3i_;|@97wQZ!`LC0&k}u!78ZEs{EBbH2ZL?2zgDkYG7}%6DX<4ffrwFZA{h< zTAOk|$(~V)()Q>1#=!Hl9GV+>f8vWd2oddu7_aZ!PrO!VQXYq|82z>{JOZ3iyM8Bd z{uWqBuyy^Bu85}&_CKR zesHN(1Dks>>nC*jm3Gf~KOy_cby2>w*k|!gQ%KU0-M!dLJIH+hxI=le+M)bE3A^Sg zSnHQFUGSEDG%D9W7tvaRGk3uH4O`kQeh+rsmKL{=4J}VnhnBwwFX+fDF*Y&(PZSai z=RfueEyKWCV$pL~L(+4bx@QR0fX?yq9yk|VoLe5z*6$S@Kf0GVKI1uz_2@3X=v8}n zS)w;vi@AvO1)-zVrzuREmbhae3ws1d$Ta4($;wnZ#Q1jTsi4*;c$+J{faxp|=M-8uso;Mxb3UA>02NEcSLp zN*F2Ogp_u{5^rmywB4DEpq~#+LEcB~O!9DV+>I3yZpI}k%=fffH89WG^Wytiv@dOl z&bJxh^pgSJBkX(Zz9ra;cKMv>74TEo2|tCMCsjzM zCo!5FXm9kO%eME_oj5_Xa~a<4Hz7WT`t1?z{kJ{T-lwMzg>Um8kIXeYlhidkKdCb^ zTj{X2+9O70uRYYl-%d|sBNJzy@1hl`O_eGn1gzC}i&ngD4~@ra1+vLsN7T-(t zO1l9S$?AZLL}|Bhw~%(8-Nem%rc*1?sS56$QoK_#W&eq`DyV>GSOv9JZf?A-a(4@^ zzOtLR+F|<5F?l!su0(ma7W`cc{$|Gb`^0YIZ_@Nnyc@i6xfn#gV8x}gOXXqS=WXco z)~I*W(49gq_Hwdb&*s|}4ai3A@4_Z8Y~oz+IJ=#5_{UvN+#O849A}zAO*N?gb(iSv zZFf^||4%_gJF`QA7Z~4zeCKX_TkY%p|0tmRq+d|F zP3?@lop)VY+sA3YoO#=eHOcNB!uNz}77glqd90SCWkI7uDb`)M%YK*86iRnddkrqY z*|57Q&pPi8P%{+yh9X}=6B&bex8Ge#2#Wep{61H|lsk z8B|OL6}@9TAG3>ie&Si24b|~HGDOl^MR`6O@63+!yj_g?+Zpxc&nEKRg}knMc>c+u zx;*djKl1#u$Aus`aBL9yo_Y3C zo>!C$o=e9X-2VkFZp`+yGcrym+h=d%z5K}vm+yK=R&kd=2y}#Yspto2{}?U*WVBeo z`I+Ss?jWEq#$gV=#B=-Qa^3D~gMG6jXsd56(kDt==L)eFX}cS1rQNUv#3;&U6dipA zd&37WU5gAVkFQ1OhS)z|YaX7;ecl4#6RkN5qkI~VIWV-9^Xc$TH%_dr_wMutG3WQ% zjhg^>$7gSCr)V`Jqw5{eb@YJfM`B(G2NKt64bk=bAJDZtO4sWNbd3gGqjhvGj?uMt zC-tUbpzEDW=vq~Wu7=j;cY?0EYxA*DdNOy4wfStc*=)4g12GzAFdABbh6gX9VM-uz zZQjs2wh?Hk!75fodzI*RG|f>un(U;$!=>vYP_hV=$T3QKGfFl+jc=!2LdjnO`o7Z; zFZ_=QIT0j0O$$q<}=XiF`7Q#K|LW8G`$I$XyvLfnz;V>@9)L@LhDw3{-JFH=O1o= z4Ey-sOQ!Luu!Nw@FnBO#2icEgjG$RN94N2#)3k@m_fqZnpNBv@r-f|iw4kITa`ubX zqstB%w|3f~F=HoT4|Wpv42Lx8j@ofQ!jU_i!1z->ygT3xh0BXgO3YqN-r+(sfydGw zcr5Lig58IWQ$#GjWw(PoQfV#GeTNH}Hsp(uT2R7$Y&v}}bTzU+FEdNplh+vSD{x}Z znxBUoFzMNjT^GC8n38O^L9friyg3%Mj@>g3v>qrIR(ffN8zn5vACGk@Su_huBHG5y zyuH?x%f9Uj!(wbD!$Rk!)3aE|y+d(^5jJR%Mp#W7D>j@IF#_)4&BGJ!(Z4oEA3O}W zh9GGFW_v6RwA1}gvq9JFJrT_bskn~S`_pooNr&Y3M(J6=4845}eQ_%bvF*n29apl^ z<2#7MNJ~-F2W^gFA$O9UeD!g6)cumy|3R|GxPjXZ+~dnh!z7Q6m&*gda&^A`eyBnC z&YQ5)8?hd+!HWAxn=Dx8_v%vUdrLT%2#lM6v2Quen1u0>@*pstddh;|z%_Yzw~-mY z+A)g3GsRmTiI;#cEy=i*6m5@SQD6zimwf>t0K!RIln~mJhIVRNP9v4d=vE#Amam=? zSVk0IjrAIhPwp*`!O-COqq0YBs(CN&)!PeSz<`hekpN+S{VCk#w2i(Kq4&z6JJRpC zR?@!jl&s($jZUI;@;(vmDrS#;+oIBfWptc<5_^O7&~bkP z9SxoDJ2@F+6D5pA2`ytK^kgM$LP2A9dyjEhmL># zPjpx>L&wl49sOc-_(6vsblef6V+y0=;xv3as~$QY{GaHko>YIk7^8IjzFo9SCFp=- zh-Qe<@mEHN7j!hPLkI0C~rtUR-#lsvv&^0i3QOQ(tO8SDnC zx`C=Ex7(s#28*{tdTU*$N!r%-lBuigP}_fQ!OVE}DeR*m=5lA)r|yHDXJ1Ek3U+QI zI;-0q+sXTYX5%T_vw->AsVCQT%M4ou$PM3whH>3z{l zXAmu=)8M}ma?|aUlJ@08amv5kCTuC%Hk$RG$?J<-68)@1e&a)TXbNstBKvQ=;W8yU zP@-f1$KJ0&UtygR=jckDvyJ*2@#@2E)ZcE)6VlKc)rOXCmZCOA{%zWZ*{d;m9HuCY5vQ6yC84qAQ9l&^H z93=|+F^+C~A`rEDUAbB8$+fqUW&}G7-sy~Y&TkcCP+?Sm@&wvbSm?Zs9M!fu8*TbdzMDDen9Q zFX<-9-?vz+T3u+77SY;(L+53l_f;SNPxnP;TIh}&=%c9DrUQkzK^6ADEu`1es;2E$ zH|qAEzjsw_AwdU~>OrX#1C0}WJa*u9NQ;o0PA_bEkW%Or5Y>fltLz6nLD*kh@MdV8 zAlC%fd0zVJR?37A;Hh!}v|Ip>S3>r$V|r^~3$=7kln&fibrAPe9W3%viLcjN;(sax zgHgfbTt7VL)6g6J-cI;6r=&K)9T+#_4vZV=YfT^IW~v+T#s>BsLi&zi4AQ=xEFhwp ztmX!L5?Xpv4z0pvc=z!Yc^=wyDtz7e$f0l0jm!~r$ZxFA;Hmi5$02;{;}G?$iKFqo z6r9`Ga3fD6uV_%!8&vfsX+-^X$z+l@xO)aP@jA(Ge4Bw7?TZO?!k$in%nyWV_o^OxqL7c;SOcvjSsXmNZ^02rw3)U0VA$*8hcFCyG81FLD z<--I!N6~k{x&iLS;JKsdJ76}zHU>LJ(RaYI0cSI~V3ZZ`WWbXdoHvTT12z-zOa@OL zMc)B)0(LUkK8n5rwjA(s29F+P2J8XsVQ|(c`VQDuz*`wSWE6b|EC@KrVB09s$4M78 zp_gw!FW+z@AJMI`uJ8N<=GGq~+VF_5zC06gp+7W6>pFeA(Y9h-Sn;(?n>qyfhai97 z2+3U1PacW5k^jVF@tnAi=m7zRbLeIg-akeZXSw3f#k%Jm;H77Zc!%DIm-<&-kNP$P zbIJp9k1O$wtT6t=n^Cjp;(Ihd;CnPbP%r1+w?Eekn@Xz)N#b`OquS87z(lWKhrYQ1 zb=mMk2Ka%~H8}0`J^Kb2$)f678WS(->J+DYIKH|i>eIRe-z}eFWv813=8d57L(p~= zX#01R#+IP*0%*JtD^1*#N4~-fYsDPysU>N87s?gbh|a-52_a4={|*?@$-e`3%VTtd zm6P>qafd(?$gaNF+Z254S3>=D$OA!N5PH_NGW3urjrg_&p!9e2~SyO(ISV zpYuBLO^I_j&F*C1k*EZ&%HAYxGJ%uulE1OMaJXCGCfVPd?Njo+sl}P9r%wukTwG|R zugu1A(5dN9ajUu?zM(u8ebPktR&v~}i|=MDJ|4*ZJ&gkSv$PRko(ntBi(dhV`H=KGQAgo4K#?_#@mE^X5w_=e##*3rwks& z>PCMfhH{a55^4N*T%?{<@hJR7Erk>43$RCU>H*&p#BD~RJ}3pXiBi1~-}`KAu!vnO z>U;F90s}1In4dq#mlEKanrzQhkD)z}^}e!rl&eRUDY0BenY$^-tpr0j)qF}l<+=HrHS_%ev9{bdWU3nQ`ilrV=o=LXe8((`}DyG&1-(> z2ed0#v{72n#E!9Oe`)0RBiH+OBCb3p0Z4zRd(_yMGx3FqMsgUxZEz+ph@19R=v{9` zpvm0pNBf8GC43>2aSHMCBi54XDDA7*SyukNVB;|CQ6%jB0=RmSWx!^=k`Y$Yr$B=d`n5HJlN$5$I5#%vzh5n8;FH)-UR`9%-;Tm6{8E(;J z_ze19#(Zf~;S-=j{+}271J&o<$nhd_;Cw0iv7#CbD~9EjO7>>#(81a|JV5dFy1_wblWYpWc#3KG<=agfsVp#jBZQKq>wj#gtf$M zxyRNVcPFH0TbH%7yohs7Nm=^39Axj|+bIb(EQd^_^Ma?m1toF$QYY-^M%!-y11p$-1~BZEGo8Q*V7D0^Y7Y%9v%**>lx z(>^Ql0zQe8`jvP};00WQ`-_(4LGIF*Nlw;M$~jj7Qanfrm*kaNm${><4@EBbUL&2X zh?lWWhshc%V=c;9htjDGDxH`7G^8QL$IFhtu?reUoPScZ4w-5QvqPx2$3-)LHJ+<` zhuL!&&*9!yNbOAZ0-i7QE@00R=0vHFCo0YPIfG=#CXR=`@XDX)n;k8{bAc5%o{Y={ zM#9RUIaayYKPWxBDP-P$wuXXyKBul1h#FH)F%RXr*@;`S#~+NzRPuQ=Ns3x{3--$+*r$UI z>c-sZ@+r8LKjd~pqaz<1uFn+?qkY}mYD>J(FhSv7P`LSb8rjree*K+B_6s>Ad79qM zd*)~8nG^p>J@X1{lDhL#-ZPhHkl!F=8*qei-imzn{{6cc{ae_Vt;Xb#mX13LhESVu zUs3WE^tiB>0PVc5-PnxoVUa5#`zpOIvPI8kw9pv+fYD;jA)lij3Te^SB1Ls1r)NVy z9bgy2BMJYp3N<lF${MN#JrgfAs*E5=;1 zL&`1A>hzrWJlz5PxkGd`DR@?*qp35VJ4Z)T7d&@~j;3yS?iL+Q7Cc+nXv$Q3;kj2I z>oS_xt$4QfDZn$Y6Rq)SjPbIlxA7+$W7pTv7~>`L`J0!_pLxmg@l_ob&s@**~3$!3|pTOhK}GUDzH0-8L~4*LN1RCVYSX{MY*T#p zGP=N7CQZ055MQV2@&6IlStZgqp3x-|S=fNFF@M@Ex-kpmi*4)DyRMV6Quz6W2N1I^CcA zD{I^~)eKzbAJ4f+7MZHWzJK@X0O<3>u1D5Q>I22zzPZJCHs9;=d0kd}IMa|#^SA>y zNEdo*CKdYpIfdTzk%fq(n-2>i#mug`J?Hu)L5sRe)QH{V$#n?(j|SC_8j%jc`R+O+>h;YT zs#iAZ<-qO7g8Nvzy5<_Mj=^%VY&kaxy91zP=8wdgS&UMe36?WTd)i4)n+oeA@W8^u zYuLz4vE!5(ACV3ccDXQ8+>iibJo$Z2w2u|5~;B}F*XG@ zI)4$-K1G@vJE5IrdV}t(S^;`i{Ajck!-LPJt^%}*LD-kTvj>#Yp6m^bZ$#^TjBkhj z*34druZYa}NG_(#k+^ zKZ5OW03^nM=)7UWvn@Jr494@|=)5rm&qJc~#!x&Djm{fcc+QH>8`*fyX7fhkT*2{^ z9N|wiSET+)2@&lQJ%6C;(@bSB7c=nJS(_(y7o*G`L`xaKtV#6f>6 zfE;Rs9_#nzV^1uAR^)Wj8h);^2_zKB!h+InN+u{Kswu_TECqdla`QO3xS+H>a)@_D zeCuMeZ;^&eeoTB;>ZnGfi1t}cz-t>6@X@)GwpGxftBAgVjOU~)=ANdpa0cF;f+x^2 zVtk;vg>!*s6wU*ZYn_y7qipyGg@Y52`vMsx`2`{RcY!b zP*}shWJR=Gd)f|KK6(UScCW&1oK-Vob_y$O2nDc4c$S4q!^=R~xc_dOemvez@ss26&)$anK?YgyuJJyb z&jt*wFN5K9-}*6(1cs@DvLN-2frrPc$kPgEHcyEa`pi=fU~LXg@S0H{=TFqf|5a_Y zSa9=O`be@}%&gX@6(bFOcQQQN6N_d0cf657rM;=D2A+5_%UgEW<#9DsPDHqar zJe&#M5&x(}{zN5COek>>N{pwCW+jdW*3l^Ow~(;eUVX|9j31!HsYsi8G~GJ_b^I~p zkNRY!obn_6EtJSxiAv;8RN_s*niZ>K3QCNpUB^mX0<23=;@Xgq<7y}XjCm+=71CBA zZFPu7F!jovp&-)6qcq;Ps5JgWrTu=!h?_JxKP%4YQ+`4UY$(8234AYw#O$*&6av0} z57X!n=jr&p0^AO78|1=x=Y5Xu;5AwdL&>`SKCtsxxwys^(f%2OTNjsjv2I98A4&O& zWAWIB0R6A%;52+c8Q-BeL-Pp9qE?V4e3VdKoS@ifH)NAWCTU;&4O}*b+GJv^(0HL7 zv(AvVAD$G9{veUYx?gw3`fuBP9+YMM&{GwOhZ!@;YW_fj z`e_(8{#&s>kxt)-j?6M-7gSZFU8*B95O5<8N*#R+Hn3lXjm-WljeuVtDnL5U?WS|- za|Y|<8W*jPA8VGR&ciMuolaPOE2YLQH#~M=FMLZbJ+Yj*C}%FpY07v@qp2I?t&f$H zsXD+vM<011Q5AOGfb?)J|6fq+_7T14DaO`jdV;4Iux&c_F=W9H>|0c%lQd#&vG5^2 znz)WZ{(v^s_!ImSf5Lr%Cxu)&dD4wKKK~G%55jk>Yn_my9gwTTPsPCb=}F>0Sqk=_ zB>q485a}+(7+KSj=xj!J%&ihzdl#ybqoaDH5$g4OA?8&pa9B~&qLV_Ncux{Hhdkt9 zzD1B#*zv?F9r=d-RD!Z*ofP`Pa`w%wo)5upiB$Vf%e{bJfAt z@+5f(6E}OFv?JeoV3V|Wm>n_J?(iSTu<31(N7<~WsEw1jO_2AjseL4E&A=e2tp*j< zKdGSh@Ch;ZC!fp%{@2IA*77rKEk8%JzzLcSsqEiQIFL3QG^PQ%?_vlzx*%7VpHBhD z+7n`qQ%^XNFKjC_E;45QKkD8-E~;w#13vS@%$Z@3 z0Y(`V8m)WNt`(TK%Q(FZ zXlQ1JT31s`MtnCD%L?#?=ezcqGl0E3_db98KA-20nK@_A-fOSD*4k^Yz4qFBFA*Hg+G`&okjI!@qk@M0?3L9CeEH9LZk(sW#Mjc&3@jUiUtoZvW1F^xyf=f8>{0 zgy%&;JAE;p7YD7dYCKm5t*{sH{6f$QTZ-qUK`U$po>yFAr)z0udJ^{2N$mCfUct%4 zaC&8CChDcSX*8CfXausgkqs}`LUub@IfgbNV7>yn5c>4@%Jl73Mp@VS;WYI(^0ktG ziEyz17YlG%8N#KB-C&jX2e=$RO}NOEkmnG+@%rerj92&{;PqLr@`P7+%M>hM31KPw znzhX50*wS*Q%+K(5c)sEm*n>@hVO+!g;(YpvZ5aj;<5Qgg+65K%N&Wq`lwZW8mpk0 z;1%%;Ey<;k^yXlxwV_hIIWdP}FY{jE#Kd5k=l`ILvsW3Vjl+Va9%4FPS!q+&8WDqs zww8e}U!PPgw$76+klQB<>pk$H!MEzJYG*#Qs{D0qwj72z)oOSSG=fTMzNP%=KeLb` z46v>i%1?4c`}fHwmKs=p66ZLdd}O8URbb#l|rTd{)rFw8+0McD2S`g!eMopXf~R%zy{dj$v__V%VsEo66di*Ka2d5Bs*dv|zJ`w2?Phky|!6mEl z69zZCpsRHcEYO2pLclPd_U#Oq6@++f63XSGTrSEz&M>E5`Nj#7R(rwlK>I}{O1O)I z&tRIIf>^#&h~+zl+gQfnHkL6IA)JS(VL3O~Ivw<=0MrUVox!jnDXd`F=#^F;o5pOS zMaZ`Z`K~{qjC>_0s!{t-`NISId)2O;2LBLpuRfI;*pK@6g9aa@l_Rc%GsS>oE%>hm zkouocVsWlN;Q^%W`4mh1LDxSJ*G>@c^`?pNbfY~ZGv$(&AD~Bnz*_Wi8ZXI)8+@V` zCF_DEpTyZnh$~D(wCor}%Z^b=F3d(g%u?QQg6I!8YxM^^QlHL}Ye@|_k>>n?X!Fl( z>LGGnxu`1_b!|RQV=vY9{c%5_KN_rS1|&qTh5F1{)KQKS2+MwLufLp;tK2D;$V{I7ZelN!o+Q&<|R}5Wy|iNjg!%oSt7y zMC>kNTl{QyLyDPetx@stW8>Ud{D$E-pyo{@deoeSnzPyl2PSg3=O^>Gb;ledy+U=T z90QkIH|PFQ-35uzCz=YJPmcY0_}zow;o4^0NB)_nWy6^bJUBQ(!}+4v&cLx6+E+=@ zy>!}9@*3oH6wd>BTa|GfzE}+(m@6+jb`(T0oU2 z{t%PC;0SzS_`pwoMA1R}jFB3Hl91~&u;b!SP9&L^J-K)t@N(| zq!mBOr-3}jpi$2C3|jgO(lR)MprTtj#BMECBjafb%bW^RBrAO2g>!C(GRT}au)W~*+iVDwtuY} zrEq8W5oH(f9Y-Jqt(`8&B=sND3BZ$(UpkAq`VqyeTX=-z`KU_>_&GXlt*f>2cscn6 z@oC#2+cs`ISF_K%LTX^vEEPW0h$-iMDle7DI!@oSkGE~0lj2o;oK@p(t4|HM&*Cnv zv(NX4Ui$U0Vhh9{sYSj2WY{efs$qXRt6-5jVdLWTa0PM#gPigk$hCl6+Y9p6!%81H zeVF>l;|%gF&?qvJqfZdmUyc#3k-vf10*EcWAg(;DNP5%ZW4 zh)0fH+IsWP(B41yY<`5P7toFCl&E#wxXQ0O_8t)>X%dXLRa_<7W<^ zN~9GYR%G{YhueUW$tBO&F8hNmg!Wn72*SMqaA$DWj;rG~0!|$=1hX4PXGWO7W!Fz?@!@a_!mEmgy z^$UAY|G>3GeSa_N-;qw#FTYk!PYtX91y}q+v^Imf3Ai&5KHBMKQTgA4|2^#g_-pBm z2sxehpWb|fQkr;kX0pti7Vw5@%n=jWjdHi#pg>v;NUMJ-5Y;T*n}+cKk}TWP8jfon z+T)HVEh7Hpx%1y#IPdic?cT=99NM?`7sP5FBwav#MAu6AzL-O{V(0X3cu~-KhmiXa za&JATSX!qK)*|=gxW%p>mU;ac*#iF%&mS^B1nsg4y|vCkKKYIEDO#`(&dE*<_{XU5 zq1!CjX;MpME#~)HBhC!S46L;o@o^N9tt~%$Bxh~+b9Lxh!1{M{Ey0%IHUn;R5NFdZlPU+yQT!9v+=HPQfSpD|`vRcD3#f(3nit()mC$ zxcqcB>2vxRg%+&AtmvY>L~FxaFy4@!CyJgOkQ#V*vMTVXB@Jt4>OkNTAz)+}s?{Ru z>!U8mw^>aXM5_q{i&|VqttdzQff45&XhDJfXM_Mno?Cwu0;%}5;5QAwX8fk(*M#4R z_~r5Yqz-%KOaj{HK>ON@+&SfSZq~w8poE7bdb!RDfdw3`+rD!M`;pPU5olj&fMlN9 zw>UsDKOh_Hk1DQpu8L^i79+veNGW?ALy`>%bx0VNx`(WI zXAS1?pcMA_AO?kN#i#<00oiq_0db-VADY$6=h)Hzuc^BGnE|s|xi3*{AJ$;FcHG*v zCWdwy5tR9Y@_$rKEv$oBbN4&!b+j!5ZR=Jh?)VCh>t!YuL zv+XUUJ#S+5^$X!g(dp-r_dN10X;JKy`WE8TWY!i>4_!yTPlaZXP}m39L06TD-bg*t zT(iXy`X3m{IiqS|nP865{SGfpJFJOz*#Ds#=dv36OzY;44r3q14#`>o?KLIBI^t$G zvz|e{qpx6)T5wXjyiSi8Af`Lu)xb^RxK#)%_RZ)ma-ZoypE(XKBy&K)4iKNZYB6lJFe;c0{L;wdfof9Jv8@a6;Fe877* z1aB9EcWW^J#e=*!GYD`0K^ecZlotGdXAgMf6LR<14-|`cia8JhZCvw)dPM2qQoeSIzVg51ULVH0Jw*z_AC>9 z2?VvlVeR?9xkmJLzw`F)XS3bu;g|G$7roBfp6|cKZX2-M)(g9X-#IYf6@Z=ofCJdQ zG!=B|Q6ueuH~YrG$KW=_TFqXP+8DDzG6$vHpH8cC-Etm!MsHJ6akdQVJ%)N?ddy({ z{++V&z4bdMYMwdOjGocE?&%&gW-^U2ZS~jzh*@vFr;>M|&&ZHTQmh#u`raH+Qb|8`LlFT*1e6=UQ&z#<-<1POB%u7(7NEX*1RB|m ze(&~u3(cjpv@zWvxxK-?jp*~+tZrD?+0fH66r9e9T_nM0V4$S7<1SHobP$*oOZksr@||at*iQJX-UT$8aJN?a#!Dl%qEvInzzhj|zUjk9A_8 zgyRiyp?n1Kk$1>Cas-^9s1p=j_pRc=-2H7eD0*Aw6wph7``@W)xq zGg70i3O6gz<_fg=^Zm-$-L}64xXqo?jTPd}dX#tpC0-!@?^k9QyZ5)D#BEbxbDiT& zMzaiCDc{yhTF1RZG9*q!ubkLDo+xV<(kt3T%-g(ZbQCp$XB$V_(=H{>?c0^C3U$Ker z-A{Z`As;~-8BO0(%oyZ7kG$uR_Zmhgg83Ilr;`~S9)cJfP2ZU@0(K5isd<(Gcp^LS zaSQnwEoh6S6MHoo)u{Y+jB1~wJmvZ|ioS=(bkjtR|E~AYed*VRXp#Xq*gXO*;Hq(P za$N=HHs1);Mi@-T^H6~>aN{WvH{D{6f~RS(&pn? z+HyQ;aFZ>~Rf8BEqr0W)&K4oCoO8m{lVZ9XGD;&LFD=c1R9fi?zDIrxo>b6{h)M;v zccRrR_L24_$#2+K4hlOnoZhb1Q{SB8iMsESQQ}RMcoQY&>?3_dbv(DP8YKp?624#^s$5>2l1Zgr`Yr~gwxHCO zPOk@c)IMch_P%`{lv8KWO}hWUIsov-*aL4R^0svr;XP#^Ngi3?H|-Z#11cGpMZwnwiIGN~Hj{nQg5iQp34fX%MZTSDT$*JB^m_;IvwgV?Co7;*-$PlH8 zK^c>`TPn-6BZ1I{x~>w5Q2jg%ffw;Dp=@ij22oKR`cgJ9c7d%=P$o z1pL6kf6lwI6EQh=?^RX?4wwhxR&9Qa3qbFx8dTtFAVbXbaXgb}!jARO05nPLw!xL;cE*mGG;Kq&>fi-vTy7 z>xU!c*fS@hLZ{tIQK4scssrcO$WeNRp*AXzo z4c{nz_`o;iC~;S?_5FIazS@IxJO32Fr+VQx?{e%R54BzhY!C5m8wX#(x42t%M9=mU z{D?n=KdTq~R;-?08*G0CT2m2h|BP=G{ZjFb8?Djb(C2sB{{l+95N!XrZxsD<%Qw|1 z@xvsU`!D?lzmKl`GwvIE;ip0SPhP2TUkEgY+V4mEm+nWu`VIVN{uKV+A-(vI_WQ1s z`M(yeS*!4Wk75C}@9_}-Cp|0twx?}EiA@Us_bC3s1AA(T|C8jN))c~c6EMDhzg*XT zl-wVz>(xDqJ=M6!kCM|T6|%ZU^pdr+C~-De*Ze(-rL<;GGfJd@)}fjI5-rUnuh43teQ|qe$bZJtU3(iRwgmQ4MlGun%z+S6H5<;U+-0C z66$mZ>)eAn_XO))x?7RDk9L#PWlelma1>2PovI*J&La2OVD8G@ip2e6H%Z*p6CV<| zqA27(v6pMz%kU8bXCkZFsR*)eJ(+-buwc#cpnm*CnZh^jR%FnaO2SQnx*wq^=%0>MxSi8FwpEXWLCu_i;L{W0Liy#1qT%rc=gGXlv|dq&U=?;{6|RF2`7N>b^tKa-^OgL_KSI~Yq|97eiIh8Fi5 zXpTRH_DnBm{Xp5f7&Pz7lvOG|%-pfE0>3xG7HRYSMUd+_I;iYKRYxu` zzODzx{@*}5n)GMwAKeSuN4OuM@9$u&Wf)V;f?_W#9OJ+}S`AQaXl0($jv1Z~`%TH; z&hyv7x>t6mredEd)_)G~@aZ5OYuQfIW@w9~E@-E&PR|bSnc4( zx6;}@E!ZF2>A800WYLeiR1`0jco1hop@xH)r}kVoiSBU*p^R5MW}HKi^OAh<#Y{x) z6T8S-{`c34Rk;6alHxnkF3s<%+3FjKxkEGN2)!YhYv_g?oMqo~=|9mm&A?9T!v5hd zW$$oRsD*ERO)VUg*6j8B{K|X;EA~WN&aBXu=1X+;678n_3Z6(MU4?Yah~cjluYvsF zBo*b2cHZ)a-*Qi0Yoq;EN=_g z#SY<)KT{<09rR3-rA^+4tfWUDj^R#VC7$MbN?H`k3#dun$kfu_r-R}{pXBHy zMs})TakcLTaJM_+qc7Gv>1NoLRE##KsH~ij2wl+|Q zStGQ9llGa*+|`IiNSabFdjoqvcI4n@;XSU#rFVVHNLHa2j6{#YJ5|CZ5DE8an#Q@hH5;vi)i-{ zYV5&v(2dUSK>rc%Dc#{~_9pe|Z^pgIIhdURhCfuJN(!Jx>L&w)C_G!?eV`f>@k}*V zBX>2c@u^Ua@39&u^sW){7sRJ}4^|{GRtSMwZL^O~^?XcC^|#@)1I`qU-TktBMc_n- zHh7qIEagpu+-s;`8c=gf51P@vq@**Jc2R7P%;9q1ix|y61kbCzZg}YG;MrK@@IwN+ zTA%+9FG35^x{p~U-Q#l$mufR}4bGi}_hS#*wuiMXei!uylGxN;)Ek4T&Q< z3V3#x&`h1^=m4)$OtEqB=mDekDvCCKdZ#iUt=%aBr|Ylp@DQA^E_qDq=6c%(nd@gZ zqz1OBu{OM7qV?T)Vz zXNLR^b(ELtzl`1NMNl)?&0f1F$eNF|&xLd3TPi`k@=%!s9rvf~1Z(-(IUo`hCE3F-k2~6CIDTo3*H3(@xS#uS{q!=HR== z$!bj3a<`E-e@qR#H>hjJeM5JdOov8F=}L8`1=g!^cdh!IhjP&fpoZR!!9J!9I}{l{ zu%j7}@0u`1;GlKSt8vD&IvRd%szIUu8#@$hcgqfv*MbQuZ@q_F|M)o$D^6CTuLkth z;QUo~_Z8v1ZbuvPrZW0|_Z87MHJ_;a;aA-{PREf%HG_u^ly{)~Uqf|0&+1B?(2O!4 zqdfeTftIe+TzX#)ZQj-TK0ytXp=23KIzu%-z-rb`=&pyx1v-VL#+xC@x2mj(7-o(_ ztRbC(zsOKxrKi&x-Z+UpwP|=h**a68=s7pwy8&O=K|G|EP1->`{A#=xbag;GcD1G* z^!R45+^dm$HF6t5yi49ey!&W;y=TvC>|aOD2?BQLAYU``{oG8PAgKKrC)SL|{AsTT zK45}wJ)i1?&k}jtkoQ2dVy|f#ZI&<$tmg@X@hBrl`xU>7Qme2=$^Bd3w;+phLtnQyx)4*$?qHmxkD z;>Zuk=ius(w012*se>$c8|4j!5m2po~p%ndcre9-VkEi?7TF?_0gF1_~0dVrIFBO|> z+m|FkH(u90)=Jpd*H1Wdp(^F`ds}=cXnEO{Ypo6I(?_h`EUb*7B?Vh zf2_R<=jNs16PL)`9m zo{i|=qvZF%dGwbQQ9!zR=9e5=dF)!+%k|SmZz9Ei{&ewQiC86h-0W*#1?(2KuX1Nk zPH$i3$WEp2be!%OrpAZP;A&r04h<`x!DaZ;5%fqWf9U|!kFMQ-@{N@$>4tQAQoB{s zr1W}%x!{pipWrvGQj=fRGBdfi&Vyow15Zocvx%eajK-!+UK_`{^WmeFGu+st{n$l<<`=Z+}ad8 zITm!TydJ;Zt)*0VFtulEDcv7T?`~~7BqA-a1z2newYGib*j}xjx?SMmP42ac{sUwq5a-N!zRO|LJke(&2s$j^$TSTYW$)FrKgV*piP9pQsn#+CFu8PGtuQMl=uoI=6^w2gfLz6MH@<_jKjVU z?4jIrisD_9uvau}yxh}L4*kUDasu|B(|*}{*n!J2_Rwf?1+Ae+Sk)>u)^7p%JRlb^ z$kfvxW01qgQ63{3kNyrEir9EGzuACjNUZ-+3LCv1#rS|TCYq(-x?Z==AIS9ixVqti zTHIapHe!k1t~W1vyMFMU|Ci5>z+Ja+fqNhDZ*TA^0alrcUOE9E=RNQ_nPMfZ8M7YtiQenMTHQA4hopH| zY@>d7<=C%;6!<`sFyAIWio~K`+7V5ZVE#Q=5+e0*YL*_m^Yn_RY1%gGg#`27ZPW`@ zW8X$}J#n))9=LM_<*N1V@Gzv{1TpeRV6Wyj>WL&#GuTaB2UFTTwHpX0Gq7ogCywmm z;eoY)ckf4Znq{eq*}=Q&>ah-umTl3~sX4}NO7FC7qu%*(%DQ@*S@w*fHrJ?Kx;DUR)87LbJ@UEISHrhaUtOM39^54&fJXw4`QPV?ZQl7g^~Wbu?66YYn8|Sw z2z7Ds=V{CW2M`#xbAbMkM91w4Nz`N@p{}|YT4!k^`3Ru zz0?aw#j6!ObGRKd8I$?a_PJ_KAhwpOt>?fR!cpYbP)vn{cw&e4E++U-s*}hoijQuZN=* z!_f*#k^6Ob3Mk^Gem&gF`gQ65(y!_6t&UK?ZFK&Y^4RSJNm|6yT{}WR&`=Kwho$k% zRz;H5Z6!%cy+*bf<+Flidl`2!K%;9B=itHGfY(EQFEcbp4SF8d4y=0knEbvNc$fUx z8$)w2Kcw9cX}@_ZNjvrKd0R=^qpyLl5C66El0d5SbjB@~A*OXG7pI&coAiYFh@O3VT%^4b%e1<-yZ3p?L} zcH8tvP5r@>{@}^~<+CDLLP)YiCRxWIS=IlwWF5TA7?La_T46*hC`Fd6?iB2QVv=QK zk~Qjok}T-bh=tYyF|CJuRXI}wf@= z4N;i2It}oF8OFj!bA3j7lH}r{&zg~2Hzp7M6}l4~C%M2Q(!0Jij6(OL?EMDVYM&|k zbJk}hQO9wo0_`B^YVADN=Qb#SiotL^7!+AX_54-OOdtOkagl` z*2!L2Cm;OR)`|N6lXWuvf3i+EiS#R3C+-cE^#+{&T2=p4M5NVSZ-sTS1o}n(--sS9 zKZUV09%X0_I~G1!y20q`F1L@oe52r1mhd|gcg@K>7`w9DwrQ9yr%m@NX)duUm{!yy zEe(FTTAV9aYq-zrhV~p&SM4pw+4CN6TWCIYVzV;tM{Xf`er+^qu$A6wT7hs-&u|By z?!lAF5RKk&77~3H61{D+BGG3ylSI2m(@8jev6IygA3E)$HXC7q8L|GiS&_y4n@JY$ zU^#1Y7e*ci?-i8ASv0^b*SHd;u3_z`naN*R`%hjK>}lAuK|U&K zBVhx-(N;$~#Z$^}4{dd4(|gDh6tshAo+95=6_0a>J27sRp{_DeS{tNY^A-lw7b?3s0Ng3KsnH)jICOR?~<#!_t0{Gh{I}> zUX9ZJCPgj|H<4W2AH?Ci5DxoM?0y@ zOdNWe;oSc!A@C;Wfz-HhCX)v|eDO2-e)lt8G-T4#Gwl5z^qxiUPkiQ-;H$lwylRPT zkJ`G=YH@oz=DsC_QhzJQ%_R{EazxxF=t=P$U{2Xp>BX&QBE@BrqDhYgcHn%J;r67poiNR;C9&1a=?x!tT3I z6&`9BJ)Vcn_$GQ0}{rgg^`0d=SqmpV1w6-~_N}3y1&zQ$>;vd`eur z%Pv#Y4~l)ig}%c;K~*L_9b)enwvgYI-uG{z+E)73!3L^RC=&98(n<#Ly)XD~HDR}w zsUz5C_ot+{XpH{*r!=CEws#ia>q8U}+o4enO-+0yKa>Hpty{g(h!mBei{i~fU_D2> zII4YaoXqI)U5+%Ka#itq7_g^l1g^#`W) z$XRdd^ibXrAsSErl=?}_sG6X@@pw~n-JrmYTPm?GoSIvW-8E?rIv4J)Ew#{jZGh5d zTF1_^G=wOe%qaZPs9G;BS7y6YQxq|ihP~kMD2ZiRA=$IV)E9NUgYs1tp$U{l z^pyU0H!1S9YZJBo)=|XkC1`E;TygXk`NV=gXtUCfmIBh!UXY&Lq)6Din@GaOqx}t_ zKqY8UsZaryvrGfhoFka0x^pd^sZJ6k$2MS(K@Ig8Gj0K*GuJ!UM%Pdp{J|0M2S?EC zqie1*f6v}ToYY*6RT?2Z+jsfiWJ}P_&a(BCh zO^UZ-(xz&_{z~K|0h|-@ao{6c5S&!*+u(`z#ejQ}Rx@VdVdg0BSkraZsY0~Z2$_!Y z#+Zg!CxUycv6d7(8@315Zga|gQ;}mW%kl0XwJgWFKgdCGZ2v%x z_Tt~KBMwrts1Hs@>qAoW-bTfD^3_HUT39T0u7#Ip$+&mu`w{j{n(cB%tw-2N`2B;= zf?@IN-u_t#BGSwh@SF=a3q#MKl;Z1?7}B@*{T z#cN2XtYa$y! z!YL?HWFp?L-l$kwvod$~N^W5#I~$eWk+881CEvAm>jjF%Q2d^5(`e@R zBwNd31|`fYv6)#mR=nYZH=O2cMrLi)f$d>+UG#~AG-08Xb;+ZpMT1WT(NBJt%07#y2Ynv zvB690WU`(28cY2*@^xg=|1Yuk_vk%~-k<%n8*h2fjcjMB;bWrJZ0x#M;cRmy7nYr9 z#|LiRMCw13RE%Xk%j!a9waE1^B^N8JMOhtE7b&SIi<^s!yINPC}UP zgA4&a?{6E@u%tNGgsskW@UBOsj{@iWX+R zc1K_}Fj);u)-p^8%8mx&sgx{3KEH`|vyI zV^9^s;4Oy17+?_O6g#WOkGlP+`>qCBN1`6Jq@f&j4^AdnpKOvKO>%3Bz~vhol=U5V zgB!Ubld*G$$t}%;ngOdBureA*UsL(NHdG_m`H?isTObr6Zbg;rNQa*p_62riLEfoc z8_Knz+=vF!g2ajG4IY$h8EHnjInb2mD9oFpaQ{~WX*bH@XsAVwFGnUJ$4o);R^p6o z1>O+k9)jH32GUuSdsu@Xx$8%Y$eo7V2B{`T$(@4SDad`wPx^>*M>jMh_sWq1a$kwu zsR13Q3UochN|<5YphO8ueC1apr^DZZ5{pLCSVZwy_an#sQADvuKS=-ws7L*6$nzkh zg)=At6X9Q#?=5l!UO<@_0CkODS(DoCr#9X+5_b!J!bKFDJJ-_QQJgLMiCM%ws)4mp z@W@6X=G;nirvy zeIL`k>mQNNd=g?R<@=iHRQT?@njv-AsjHkUkQQi;QsYBwu`QTWlf7dRyIRv(>q-90 zSnGcs!L_!kIMez8=z|R;hs-<4&OGLsFOPb#|3}iCV^_9&aK?XExF7`1st~JX!+Igg zcEl(a1yAD_V7K5rqBxvhWDebxO*1&OCczzDNg9oDQg<{?>W&8gKOx>)k*DL6Hsb#XY7z4& zF&(vt!x2r?DQsF;vmo0eW1HJ!tYyjlMN*;BvSzMXbhepivYB{C?YrnBZu{1V{f0 zk4HJY#om>)GW`H+A@%s>pOEwp8zD;nk2g)DYrHzz1*ENJW zv&Wvg8(D3SqP8iF7PDAg_t86}g)2mh`#_5;L$v5uBLp7g;J0qXc^6O1&xLq4&*P* zkf@jJ9e`-b7(`3PkdC-5M1`k6CfV+PC7l}tzYkg_uMyMw6516!&nQF(=%?B)+P_TE zs!>84U_EuQ4g96tvYbZMv_Z4{G~m+MZY^%Jh1>vd8Yg;qc`!~=+_$1_WE{xtU&@NHCAHMKwSlwqPZ++Nkx zu`sMjqfQU8=jwsg^Dw<%qw?s|+$-{A#TdY~5mvCJ8CeEEWYMx)i z&GSd`Zok<&VAQ-O_w-7?IlI!YF4V9$%4Ha(MSX*}nW{$DFwP<#u(!d2Cjyug;@GnB=jb3yM(I2oeU zZQ`YB{koQLEU$&<7;@YujWxljv7B?MGC^H6r``f$`h^wZYqoT8qJ5Cao4f<~h*?&%sb+xHG}}t?m230!IGI*p*6g2M@B?El`*2s1RH01B4LfqDRu(JHMXjzQSJ$%2nzvhLrc)}NHl#Mi#dDI%)IVM$ z&4rCPz#^qYOs8a0(UnxHX-L(YyR$bDbV zb1e1?Hp}B!nG}9^tkLjw>{EPL{ME)CvHvps7|WTyM2VxIenl8b?v|kBCI%j77`JDK z8^Wz=>1vZC!kW9V+oOs~ypI z$VD+uR#z%g4}ng!uB72Gk|HJ(RC-2da;K;0#_EZql~IYPsnSIy)P@_ZiGgLD(O`;K z%}x-fyPk7k#k4C@t#+n6RO)XE1pI4uaS>|kLPw;yBa66rnPd%dF~MRiai+&*cb4)I z!-EpnkgFE^iHN3SvPS*NmEPU6Xzf8GaafT%Z6j&!;?y|5Vn^0~o7t5h&T}YIOEA8( zso=4X6W`DL+15{_-uktT(lyc!o2;jyqfLFxI0sDXu20QQh2-;@&TciZ_BOEgY7AGi z_J$jVFq$p{&8Tga4!LDLKZHC4!4i?*1oQ7r0tF1Id|(*9vnqfKwvG|(a*@a+)e+lF<+ z16|PBMNiBU`{$i2P7%`sk&te~({Z`hoT{dTc^UbJ(H*Ns+N-t~JyE}kXt!^wS2{2yvX~%a}Y+#(Q3#&NS3QQgfS`n>|EOo5G_^C3D0Px#vNN=D2&r zk6o3b-B>6Vx~P2RjE^%O9(cR>o@<=3PPD4;b5YuAJ3-Z%_9u|0Nj39gLun^8M?qWy zB46h@^iqVu)OU@`SaLxcZunOmSES|-#*u&D> z?odhOU$#byi6xN?`@Z5vr?F%p0(H!Ct1~W665RX%G3fp&4Z^MI&ccv}SO{WMN(8e_!`?!~WXI>58d;9!C+Owvn3 zflGgkAmflrru|IuY1bNYl50t_+Vrk@gcwnBuXr`M{}(Iey_&DKrizo%)=ER2_&(ZN zh5L&-!S~LEhU~s#130ifnR)@qiB9@HnJY>VdDpX!bjMHm&pFcq zmO62Y*az@8S!CM0ld#%eD2Aa2-GUaGU6H`+DzU&}P%nVKzb1c%V+(qiQF12F7O6eN z-@;JNLeZd}=O}Poo3B!5lU_AuwlO;#8$QbvroGYFq z2GHZ?as*o|4NE3DO6HICBg_<;GAENf{uFz==zyfX=PGpl6vCn$SS$b*6GB*IC9}TG z-)&tZev}z8+FztL%(Zk#M#C$N3vUJc${)#|7jjVO+`xJ%$=%2h-m)yMOO|`}6N9FR zmEy6Sxa^GlO3|9VG$S{@TpX1BT87i&Kst2IyhZt|?K)^4EBbQ(N_?K(lCQMt?;~X@ zTn4^<bt>Tz+M7&$ zka+dTNTSuL*qLG(uzTG($@xmC$IAFu+oHsO!y+@gfWKpzcst``p5sbJ!AkHk72Fz= z90Lxn7_{k6bI!4G(k-^-dDQEQMq;9bF{=;PxsKK&1va`xa%mWijPBLhNto#vE8V_H zrg#fU$J+QXliI8w9ENdVe1ui}XX!yH#-O%bId}v{f+rkWNeHOVTU~l7$^MW}Qx=U# z&n|r)f3@}RmKla2Ygj5RJs{EexNHPL(uKtn!)*t9|LBD&LHGND1a4B{4Jyad9Ki zijNK->e69UkVl(6xis>4rqPJ=m`KulAeYX_j~lag!Azau#A=z`-8%}1^Y;f6IT zeTsgw%^>N(g^l>V$ETITq|3@4woyIWGOFow+pCx}yq@vWzzA_!=0}HHx<-owg@xX# z?b>bSUXFX&cRA(^$1rDD7iTuTi#dbZ5ip^ENEki;Ct{BQa=?)=>&?X^DaeLx?$p_0$H+TGcH-wipx z_@;`VrBM{bByeJD_-^lJN7Z(2O9QZ>lt|M`uREtQo6px9jqx)?v-5nZ+8Ach8#VFg zOU+L0HhnhbB|iQ${A=&0RC=3|(iZ*(N`I5a=Z6_}@sElr&Wojbw@}PoTttN;Qtd zG8(n8~3;j8EYIZPjkOc495y*Ur$f(JR?rHRDln0v{IF z;3bPEKfJ{UJhu~`&1f;DEf1e2DlLtS4|r$bG(hb(H5ULTYNHM<*2Z^~27JBSJnA=X zelYwdz>(W*47EAT5(bK0EKPBi&1eBl78IOGt6**81+)DTw2oTVv&C~+ix=WVba(de zw0OEptjuXnt8{*3crJcC|DaWeb%QRA*>1UUV#Fhusp{BFRd4MBYpf1>R6Bi?xCzp? zDa&-{@W4fVuHo^1RZTxYAAVm|32Q9NEoGC0J)EopHLeNgW_OIFCp(_R!DkTWfGwe)g{O&T+0mJtQOb&O5~Or7s%dEip#7C59hq zUGBoo%C^4ZamimgLY(QUa!hmN70h?+7#YjbCa|;|$L@j!4t4Ty{#fj<-biC0;Sgr8 z%QEj2pGpoh9v(#WI|%Ecp9SMDzc6;8t&h=ZQNdOZ$C=Yv;vyH>I70l(-pP4#kBd%D z7e9s6EyaAw3eQ2C_gYw82W=ONZ^ss*j;EQ6JolXS{}-pS?scO5X?!RpR@YXP*W?PB4CC2Kk{as~t(>L?4V3 z@nSygf_bnDuFB7aU0@MEhVEZ)Gcj#)sO#5}5_CVujax@^71Ci$gK^8*Tx4wC!>i18 zBb%e7Kr46TC5g*(JF*ACqTPx8C1itU!HO0zFISr`!yJ7I=H-`LW{Nkahub;RFiSXp zg{7b2a?4A+KK?pmqUAdNGV6ziE6l0jNP98O)@dF-ON@tJ)Tq^_1F<$dacY9|Z35PS zEGo?EyJzgFro*wk)M0ap!;PJ>v&4TI_OUs?Jb#zryr0lkyvs&#=xICVWUXPMXbp~Q zs$3e;3>ew0b`Jj1s_ll#&UGBu=1VsXvP=_4pTsmPxjc6n38_eu{- zHjHvHgK4&NrCr0un-q+4R{K$(y3E2xxf%Sm)=8o#lV*5>FvF9_Ic?c6`+%J9eY<9< z%i4>tXCs{+BVDBXqCC>U3ldqGjFC=l8g3bl`lrQfO|K2y<=g7hqCY(a47M^H4ob0x zZ{se{Rx*_c;_ zG4EcnuAm>rx;HV_y&3bE*yg42Zu3n2XctGg$WS>cNiXP6V3Z1zw9*lqQ99_;NMU7z z%U-q}ON+L1_V3abH|n@2vf;seF3~<~)}qE_0hW38qQ=*SzIL4W>s;JuQ$>un+A$h1 zO)QKqdM#I+%CwTo*_t*#n;WyZagb_p<4|brCn~9As&hKZy`@sL_vY!Oz4cD(=woRQ zh(D)Qh>IIPQdQ<$VOKdH5Eo=ui0090;-bcng~g3w7!MYxCPEt$luIGxib;0Thbq9o zoa5|^8(&o|Y8;wa)wB>bzb07hsm`eBgB4uut7hFOR*Cbn_c)&vKX+P9~T zF$Dh2fmW;Oy8*IAvN`VqSR=XiiKDL;uY)~vI#vZ;sF(g}i$zI-bO=u>k^VhkQ`)ft z`uMSg1GcK|IzM_Uy7|v~ZuTzkuw?2vG(w-k`&RER@2$!5xOJN8$sBi8ljpf=`(qdZ zrUXX-hlS>QQ<)CW59)B5SE+jF@W~D@)8RViJ?kDPtDK{t!xKSa1H;;BqcJN_eAsmr zd`j7l{QP0|d5&WvDb<2DJdCj{+tIJ!2}eS*+~QfbYWqUyavEC|T`uFODjUWudD7(x zJ#=}2V^Kk@xB=;-!zDCwc;+0sb+f~|2FeH4Thfo)-pvL3!Tu;d{1xpErj2x zR(x1|{1V@jvxo2L3g&xC0w*qq@5ut+6Z45M@6*0G8A7Vq-*`jF`!sLh>+m7eVpgqq zpXLO;Py3knNv&7BPenbvPZs8VBHxOi`6^ERm)@rpJ-kmFoqe&s^Z;h@x;*kgE%_4< z6pp-S)^ugw-d-N4?|OKk-pcts|I^=t{-^Ii(K+$5hp5sz6CR>)dsC6!U>bOjI000a z=Y178ntW+!W-I%jJR$$n%s=%%J1GFF({$_@QpYC_GJ6<@qx14*H^Q3;LpNx5+Ycgn6Ty;4^sLSuZX( z+#@~?-6(s|Ubih0oy;56IB+KOM$PS8AubJh4(!Y$@oK#65fI|sSiRv!HxwBSxAZ+H z^*1yz4(|$bcoD<8FzAh11iWSc*>kR$n2VtT8^tki)MxNUrC3M7Hh7JB zqZWXhaqvdzq$|*mEVka9c+Rzy`L~{eMOn-IQDg&!_3%j5U=?Mub0$1ewSVA|+7$Fi zRp#lXLzj4@UJZJr#Mp;_gaR~5^ORh!>`=f=oSY!_M zu?&L`xTjA_NS1vrhx-v`iuWcg=#z4Y3n3kDvF%TANDq3X%B|h|9;sJG%6(`E{8%5m z+~ms-%DgWlJ^tU&r8C9ape}82%?bLX+(Dnzi|{!q)Oip-sc(|0Cz4Ol+7a#P@mGt9@Q^6l)zz(ozsSBwUog=6b$v=(&(Rtg7d)doX6>Ey1tIw#F6 z=$~+`x?QC;yUs}~Gp&XQa4ZIIsnBvdQ(yq)a;HYUnH>4?n#$)?m@llS{| zhsUR5enRVggS1%B$9f+{g?HnFC}RuN+ecJtrZqpM=2O8nzf0>4*vi;APU~S~Y0dBH zFt+ALo{~kHMAVgv6|k$cysHyu?~h;*dDlXRVndNGs?5_!;h5e2`HG0*nNkHkQ%RtJ z22>A|4%%q_j%cBBPQC>4S3TD2;>?)wNt)og%idg-6eX^jwkl_NaP8%-oaMP2@{J6B zN0z*bH}p4chzz!Y*52e+R3RFwOW%N2?CgO_ETVmT|G&{Dg>@E_e58m`uwzI*W<5PP zC>BM?aItBLn7npF;G9oa6Q93iAfUGv)XCWXw{>qr>zp=Ov2^^V+IP_{y9PRlZ>FFH$RSLK`E+>5jjn zg>m+qaEtSU+L^Ab88pKwbEwOrM4PBC-K%@XF-TnEs4|rmT&Wu>R+$z%Zq@zxp<2?4 z5vczdE?&@BO_12f#PbE|;uZEun9+{WP7}Adaz#x@4u~`Cn|E>y_l*=7X7!0mh47q@61;jDhmKl0*M+lraH%-(!V??hb&0)+>vircD zJdvVhu#O7ugo8WFn1?J5vnzePiLJP5`32Su;Lb@lQ)(T)>34blQb5&#)|sVL88y0vA0V+r1;{(bVpzDDM<1{(;~-`eC$HdEi_?u zST{XiRi-XenKbbR{3b&3v*6Lwm-ZDOaj1i(BNp_7PR(>IG%d+@>ZUn3DFSeK-Apki z-z8>Zc6gs{koW|~PwLlNC-IrM{BFLi4L9YzZVLyG`>@D^<;+g4Li=8@QTwR<&)Lp{ z{%YxI@Klaa%fR??X?)rcvm1N35TmBnY>GpCn!1U1_l{39bNkX_?7ZvA>_$Xp8J}pM zqC~H$oBGeE=rgm^%xd`G;?>L?MXH(M2$f^h-n%45jYjnT;v*|-43X9-qrtos5j9q0 z7$U+*cbhqL@K+vT@h-ZtFNaF0jj_E;C1zrQB|*f#pV|IlNkO9Ew=x!Du1`xHi2}ACEglIh^j4-i6y$^sK+KQH-0Y znuN$~4gPy{6>5&uAnuh%?tMt9MGSCzabKaT>5cH~Rwdz-&T}i%L=Tt5poTH1n~`sI z`UOCh;}Nc|9$gJBz~Y=WoK<|JZd8T_(J*S^k(E2slFBqF-xI61eh(|OFbbM9mF*De zI*8NF6nK}kY0>YM4z(#MFk1DuRoAULx3V|RfBgfTDb^*78~2`IA7;0UX(o+DD_wzj z@<`57bI6zH;R4sEg&D2!seu9MXl-ELchC#6zT!+$b;gWWnF3BtNk|YRw48~%Q!B|<+IPUwf zB>08HxxcOoGxfEkh?8eeM#Q36iYVMtcc~HID!j#tw<79PEXD2X_`VhOCcP+vZ?HH7 zS_K&Q!+TUQ4o&OD`HE6MjojTVeqEC%3YQ&rfRGE?Bh~%KwU(jQvS6)*Db*_H#<*{g{ef#4t!YnAXYr4^UsNml9^G7*8Q5auLAx!s0?}M^YYEqC)F?cpJmczc zUJ6pXlwDK6bzEJPm?Kt}oT=?7#(5MBrYtj?)9EyuNaIh%V|6jU3g=~kX714=EnR|d zl+WRF`slQI#4L%E#SJUx`MBG-)~OmZY$~HQ)hp6z#FmcIR9_}`1(;tUEYu=N*w5%6 zJSU=*%!7<;h@MiA_ZgtG%y~*zIG=INt=yD=bd3R@%$hXN&*>3)odr^`WR5*b$g^`? zUd<%L+hRY{MbbGsf#b@M=cm}D8uOCLpe@y*@N5$H(oPcJgEZWLG58@wu~%O_0-pB4 zECDo#L;Nb%u;`BJM*uBRLOuMM1bJZY{y<2lNK{H$+udd)6#KYla({QYF_4@CO&s_^x=zLPx*{x z#)&Vp=SO^W@9$Su$p>9(DMws*$^|#Ruf8x}m>kHsMvqT-FC^)W6&*ndCd!3+VQW(? z&7Q7eF#271%Dc>)$@B4Ph-|@~F|hasaF z>w@I#L)QPI>?a{%;TRth1NU;yW&Q0JR`L8m>tJxo%xf(}F(SkYiGd=Hm)~%-Ezat` zKvI)#GB4Q`Z+)>Wqd7hu)VU^Ro1l|w4y&+!JUDPG7sc}>)%t3@&nyDBExOD;CF!Op zjJ6K6{_SY1J>9e(b{r>IU*@ExwdtZ`HrM(e?g{ejON%mfxqL}vNk#5WwOu%P?9Bl z##3!PjipBJ|6%XlHPb2^Zi4h-mkBEtx3Fws3S zz+gt9UK-4MdWz;o(i;=%QM5e=Fg-PCqJ!xLL=$tjZSo$?rMWa|9YJDE(vnLP(CGZW z&)y86F*!Yd{r-9Rd=|4WYp?aJ+q0hgVi?NtnVouppnqOZd$f*uq|@2e>epHgj+`FK z`MV6t;p}>(ll9-L=fK}kJ`=c`nc{|Sx3IjD00)`i~6O`gzvHW#442wj1%C4mi~aI8sD<`{RrkE7Uqw+K248 zmNK(rCoeW1w6Ds6q^}6MKGw9L<=-0YjT7hoA+#rm?#ofc*Wbq9$u^01b;Cy>W3(m@ z_pfEAD&JVNTFCeF@kA>mhiMNI6Ght;=~Q$qpleQ*`eyZq24&*`^{SQp03Ym`UZ`0jpQ19GR`EAG#YKQ zV`BVJb)je$N`jPc`wN*ZhpJ0OjSsp(;m51Fp^I^M&>YS`{Z#w}JCc=m`e?jB!B0$T z-r!;Q-nszG**;!8U&e`_M2WI^He*%x)|B10(iod=L3*%y$LV;yLQZD&{B^MvOtO%V zFJ}YStY88GmnjdJNb<RIC zrx&M5^cHwUZxZfboi_LkA_p_6n#y!B1`J-6K^At4MDi-@#h$n`BY*H{T##m`*c@`l z9q3;d>NnZgQrFPoxHX(1vjPj9s!`Spj8~9F<07%Q-YMmw)@|@ZVNH~OR*~S%a7;-N zVNo^>FfNr-1wqzg#@sGuTFf@N15_d~xEU~)!8h~nfZV~eX*Q>9G_ORN7OTm&BsS=@ zBHa*LB!HW>8A2YRN=&o39Vlbj65*~;g=HGXgvPHB-XFu!vxtH7+ycb;T_7T|ZCb?N ziF3R&TC7oiVh%hkJc#dp;n2BIp`?9lb-%h`KyG)*SC0+8WPaMPDU{ip5*ydweO77R-^aGN;Ml z7meF}uE9fb4jws>#t6P;1dYY#^wDgGrIF`u^s>%&eT4yIcR0>_(>W$Ut8am*Ro0%F zUnGuTMbn)Ai;cB@mbJj|WQ$Q6Vw~C#_c|RCgfl?a5hUAF+&lUejO+c#5!Ow zi(!#t2IgHC(F*jIvA%E5Rd$Rcz-Uwl)o`FIXJ{&8LPS?a-q#a~?u-6i!M!HtKo3Dg zd0FXsJ@HnpU5vH0v&u%&RhCV%S#TB#qSw7Ql{wW2Drd;Xw1N_!9rH2X&e8I;>MQ5* zMh&64!XvBOx(npwFv~g}teHwO**L@}=aMrWd9oE$4qVPySQnVnpi>3GgEgHOWLb-? zP^s}5)L7BUv=>B8!UPOVyF1JWMk7eo2 ztVwUYQM3`UH_WycPivIz;!Bw&Y!4IgDm_6v5Qf4apx?|4BX{;kVVmQNIi=(MC;NZV z6^Jk)lDeO+;qa^yv$ag}c2v+>ZBs z?WDV<&gV-G?~p=VMzKz?#dx!0CDvgDJBa!5W4&N@sS+pgGUtRtW zNSJ75=y*%{r?6N!ugL)yderl58rj$3M@e>gTcv^roQdl=>c0Sgz%yX9VIbex)}+3Amc?z^RXAe zNCzpc2(}LEzAM6a4^%I! zE{I)|?%komf3w6bk5pIeU@NJv;eM*kAkg=W^#yyV<79NIcUyo7XpAy^yqQ#O<!O{9Pxes05N}Fe&M%HNr6(cXAwC~m7;8;uLWcQ9{Q8p3w)kBR#YgmWky6$tmyct(Yu4g^IP#ev#4O~d5H%yG_&58B>iCZLkHRL zsmCqhXV^Y_l7QHoL)S7z;H}-YvHF>y>GZnf@X4-U^whRA}?42&A8Jst~ED=?Io;VwvUVPxubBx^5zo`GZe!{)q*O`2x!j&%)@9d{& z>co);Rq7A;hxBMB@ZF4cE@DW$30nKjTqE#ChE%0Ub#D15r8*=DFVMI|gEi$#w4MR$ zlj1D9unQ*0_A-@Wl1tOmbtK>>X<31R4q~3 z6a4X4OR4^GnCc?Lo4XzV)TIlDP8)Wc>g$mN?a-R zz6o+l;@XHeBhHL^B{;c9AXy~7lQ>S2^VKrxQldxbdzEXYGE|P0zEwHaWf3*MQNBTP zgKFTxujM<4e^$9>&YBEc_QbqYN69YM!tOr^EsI;j@6a!2SK>-Xu~SlP9!RFrM~TzA z2u_P(c6EXW-ytsHcTO(T?6`b(FwFG*9_vwieBk4YQ}G?~jVa)@;sbvhQA@*#+swXB z@SZ5mxzi}C5=^3;Xg=wHC-Sh8G_Xo^N}0%;-PK7m+?FQ!b~$&?Jdz|7VMPB=rVCP5 z0XwY4kt#TMGoA`qa_f2G*M`6qi55CF&bdbmDT-PHjUEHKDF@beBq<%6^C-93W5>$5 zX$)GU!eyE`#yZc&kR;DK$MM(BeVrP1hQo;n$Mha?DAAg1yr2EJeYbPR>?3Y3?`T$F zuqp5F#QRj_AE|ftBn#!@Q=n;!;gMhgHeQfQJ9e`tfr*Jmqc|fv=DWZn^WZH-y{5wP zEb?B(8Dacxg5+?dCIxlB@v+I0Wc%E00Ix?_YFR2hed*&Qr3HMc6H=E|pQ`!~RY#*l zxL_7*7%5YlBIT#>yk`E>%Reb+bm`oQqS40b^6tthlIEv~jlk&;$6oW0=BJv63az^& z1GfqKkV2e4(|uAWWbV@JrhELMoZ~(!sl+o)ZmWb(I7-_7Lcu-S=hE~upGzy6Dp6_L zhkUG-;H(JTO#9ODd0UF&~E9u&dYeA>Sj+z~w8GgF) znZ}kF!>oFpB}>@5i`&D%WBoid|AYld-*v9uES35xza^-Vyt_b`DtXS0=OG;ymBxzGAt5k> zl7x3WZw_W+b&c8=#V%g-#9CU?BvUMYQHLw!ZFBi}ygi>)Dz-sS9IMAHv8BO`P6^+Qr@ZI;l-HWcn|&l5x=;wQe&O!pwV?>bVut)8w=n?2RRp@`^=6VAv{_S&4Kj`yGl){Fj5QvU{(_@j{I8B8==5$%rvF;p!@ZMp^W^@ZJua z7aHYL80Bl97@`=try?@bs(+9ECO1F{;S(jF3=9YlfpF@1F{qBS}10 zb_Oz;my?~?0e_ONLE0$)M&8j#*!QOw5KlsOndo}SMK+D|EKE^o62refy%FeP^P*@bB6;#4$g_i6F&dL;Y@G_Rb8AyiUfs8W$$do5I+` z>0>iT*5Y~_xc{jfNzk;Q?;&djFHUzXD2s=|#XJm2n6DF9BM4f-2^zskJxjC)(OdJx zda+S#KA0n&J9zVf)e_0x7Y2j%r|Z8NOqJfKPk~JI_eK7qjG~3&QAmcq*|P-_A!cB1 zCT5atxDWDQ8!x1RH%#YJ%ZFg)C$u{wa`a3m3u6W;^o+D0>v$7nX33ISW+VJk zX7RBq)8cgLl};^SXzL`5cD1lAY!XUh^D_{!1OIi}bYMFgk4R@KuYsJCjcC}v*^{(W z9LE4*s?FP}Wrx7!Xs}`pGliH*W1fi^H5rIelcBdZIDXfu@s6h3Bp)OJB{sFJ6h~d- zLXoLOq#{TjOO*4Tsje-8bHSebon#O(EqIFSx5?i#^0~g_(F|dcv@LwHQ6nb{>UU}FY{VC(8cswD+Y9kl?VXS8m><@A zc%xGKS-|Ftw)JrBg<($K+U*C0(V}INQ&5K&keD1CFp>#-lPE9AK8rYfK1d&Zc(WRP zl@>|!R@;1?9HizZj4$esKjF?@Dxo-(zsHx5T{ zJhHjxw>@ccb2srsqK@XM9#Lh?4!v+3XH>qIMgQm6b_ho?i?8DwrRN(>vR<}@h)#4y zFzak;8`ib|q-UnQE|MCwwXcg*9{zowGvW?TdHliZG-$ZLdwzYyE>#r$zK@U#wcS?R**>E(i@5f)ee{k~%1Xy*5oOCEo=vjE$)PA4 zVZ5MCp-VVgx-V+9{+fTk&m=#Fk%W}ZOLBU@z{oX_J5g^Gh3}Ck`l7nCLS86ZSf+N3 z*mcMDI}TM3)NQR6dtPtMmaV3bk9-pCIkM$Q5&Gvh;2Gls^?&Ek=c%mDkt*uZFD~ob zSsGwLx&l@oc+ZR|Nw98NDSt>nE^tBy&@Q_|xBDCS8xGj24N&ywew(D#@*q9|t+vKV8Osww| ziEHQNQp~W@h>ST_8tLpjj{j*r(3@lJ`S9z1eCp29$hO|9$BQAgjt}&n>wF~itKu;A zbs_rtkLOY(tF|;^fwxObZ5zHw726Qw&wC#5$!$F;z~`lr<2@;np)+Z}MLgC@ zyI#Ri2IL`JrPb{3P2eikmWY##LZSFZ7i1NBJD@+O=&p!L8Ze|`kF+ux*(pwwK7z*E z;$S6zzzfNj0oa2mn;cUio>l}%LTj{<4i>uwqD~pG1`4f*Ak+9&o(FNQf0eh(l!<6| zN6%}p!$&zYbOi?MV|=0YS_jbvS3AnZ-$S?lbiE&Yh0%Dn?|45ww>bES&-?E!H)(F!j@CRVluO$hAL-W#+R&r@c?Sxx23JU@8h7IfY5KLHC9&h; zgYa3m;@2owqJ)*5*F{{w!Hji@jgL6Jnb-r%|K^m^WUcIsMEgey5vNhxf?AxBr-7~E zV+?(C;fJhzuy1xdW0f2a^g;R&exTn7S&iIT0ql1j-_d6fyZY8X_R-;G;ATm`pXOLe zuyTvM(A$Wc#SFxf1JpdqiZ5Ey>$zUojhSb#L3<*_!X5p)`)JLbvu_rQAQ6=D?W3>- zpmrXwQNM+(_yF5(6!H(ycX}j7HVb;-lAu@CU|Wkl zYugJ?Z`<}l!S;gX`WMV@qMFpV|7?D;8__cwNjsmj<^hs&sdotUd80O@gFT~P&K6j4 zTisH5o+Zu3b{uzWeDHN(Sj!xa-J=7=X$j8?tutT4B|$F!ZQ!&lP6w?#p1}*$98TS% zlY#5OalC7)tJ5+A5&~_FuEC zl5=TG?Y2Nl@UPW8=xCM|Ivh4w{Jf-zz5Ej5%g%C%Sxdj?p(mhflxO@berbh#%>ClB z`)jlIe9O}kFtJ-q(}c~w98hbCFAZ1t^87UuU*_&f3C{O9rRzE-mwon{3YlL@WgA5{ zczqht~DM?Ax+QRqFj=f-9X`mp)&{;qS6=j~6!T1wb9{-2&hM@ElW;15N;%$)jV zCZqIoCUnQ62X5Z`-2+eUz3DXOkemZeGTUBceHBtGp$_;f0Q-oM4C^0k0+`ohw$THh zVn@5Pr{~Bgz}MM`AHxh(XEN3&9hng`DD9bY8rusD?E+WNw`ZmF0P~)#ccnbeAFYRN zujLUwSNwS$MU_jp?B&a(Dk(d>HavRB(!T`sCe4q`k@bf=2enN1pbn=RbPj45u}A3G zBG%P5L974HY_f=WXEyrh!_i(wu9t$1-ss<=mOews7geQ7K6o0tAyx88BwaG&x=0K_ zy5s{Tny`TKNn`;P_L-4Lzn&T?f@DgSAtK_iuUuRqGWf-ut)r8pHuf0BfJ|qP{+du|Uk>n1I`{3q40t&IBgzca!?q7t19ofoV>FV(IiWK1 z{w!YRG3RFq0puR;<873ma{Gvm9r(G%iv6}VD#$7A$D-%ZM#~XPU+Lk|1J-uF9o*c& zPc#Bb;AB0{fY%C~5=BxSe|2AQ#_~0j?Ku%g`TZ|jnI`hybXndIRS!E>oEwWTIz3-tr&q1n$%-`rcgbb2 zlwF~8;(1Dd&GQhEpGhXq95-V!n>kIx4YAG8^|B3pCsPkO_sGcK#TI@)sI$> zHgfHwjkA$!#j3oacOm5xf)t(C1s&#e?2RYOafkmD|C78ZW93+frrEJG7f<%@tTusL zBMNgFEZ_7z>53DWUFEr1X|#U(3vX=$6(bi^!h!~?veg|~ofcs$S@?7$u>ItGl&7H5 zB1cwpkq6z}^2Ev~%s)9_qP)oJR(D$DsE4hb$Vt4u3GmkOPuH-P8V)-4es^pTy065# z7*u4rC!uA5q$YL}ZMcB`OXOjY*Mhuj8I$!}z|AM~EJ(wB_DC;uLN4D(eV^x86&pBS zs`9)|J*na}tm%%wiXv!S^xKu{vcu9OQ5Sl4Qr%B|Mcqb+T^jD=9x4RKh4Y`!a*~X( zgN;1;s8Cd82&!F<4mP4YFR3?o5Yh+0v6eaANVP$)fd90zpF}?<+64Z!+#K0vPPQdr zRxsyS`+simGX-MlW5<@&2LtdW2?k-8>}Umj2rKZ%yq&n?eNm%;($HTgMUumhU4ceO zwUwdQl96VEhP2R38falsrFD^t+Zr$yYOhX>ba>9!&+#3rN(%mzlmTc$eZD{oEXqrye*TSobQrQ|~o4=e=^RQsRWua4s_7S{1^ewDBP zxq&%#P_b_%>!Rl&Yhk2V4b3}egb#WvSKBdTrzUqd)OzX3e%)w zYe%*3@Q%YeejVPdZFghsZpT%Hl-AA(-Sux&*rm0>V(XOl3ME$~+IL+$WNiF{ht-)! z)^miP%!nmUlpibCBbGHq=stYmXunye=29qG%XcoQkZimF->qmlbc?ZiE%xzgIu{~44I}CjL0mHi$(k`pR$TzckGY^oVezX0 zji{`NQ;^z%l1!36i82H5!oWMiN%TyoJe#nACfZJieb))Cao<4+(J{=pChM<;4vkbA z*$(Rhr+3u8GN55uK7{`|9`ULKEA~0q;)IQ&umt_;m?QGgkcB#y!}dbQ&k<8lLa4)8 zdNrbBe^w9M8-6|b#`R)KIb^G{={a$UQ5>!Z=WV&kmI8hRdYd5^eo4cyX9zJ-aF}KkZxTiL!QXiI^O=z=OmB zNterFcHFf0>Z|o;8!ad6 zFBjxWW=FoV-@X4HBxeCT@CD^-^KeG$O|3|~JIyN-@L@um$N*Ql>s6hXHpWN^+J&Ac zusH)Nr!@8&u=Hzrep(q0($%TjEy_=tz_lO+Nq_mTH(QVjty%}LJFvywUDY3v=q@lKurp5RkpC$~VcchvU8eWYAbRUjz{V z%nQWw7v1E!@#L}>+>6A|`j3JeUZo_#B0-gv`735}HA@`nT1sr(dKrAJkR{~wFR;WU4gL%z+sdu>c#puZ-BdA0pw``=AZupy6PLDslE{$F-CxcB!pVpy3T?$ z`I!|hQRhzzW)IQx@qy-x&e)SoC$No56OJ@=UPf_xhQ5mKT^YKRLY{ktoQe7G6jR{i zYm_Fw7|ntnS^0u%{{(tHwf?($qJUr~e7jsCr>tk)6-rg}I%BH<`K9#n2dBRbZK7;v ztouv(U;CQ;K0q>=_I~n;d3mwfpiyl4I_vN1;Zh7X9oCv`=Y-ydOMSv{{@)c!NVH`m zLzMgE`tG|zZdxzuo`AFE6wAWIs)9x!4;leQ*Fw*l4D%FiwoA;!PP9Mn!d^-?$)88b zqXc{Cd$j6QI`0F+1<)uuaI)kdmM<2=H{S#e-~Cp*G2K)q%AJrooNfXC#YrzNt6KGO zZr5X{9)pg(RM=@LDunzQ7EP9&#tIpJCwttG6u`E2hudr7&cPy!sEOq8C%N5^WgkIq z@x_WK!NF7Qj{$RisMz9wdx3u2xx?!%v5{sSI`~ej?bxzgEVr06z-6Sj*+1;;a`~3XrrSo?h@H zL?4|C-|-^rHI5=!M&W#lQ!ZHO($(#!Hi;MAfV&O(Q+>`opikh@`<(qGq>y_4 zLSrc4+=CHA&k#L9drU6lI?#NO+Uo9f4ZR*Oh-~W=Vzo@~(3!YKbe8rF$#DigHIOs0 z{io&lykL^?X{#u=ni!eh<-PYu*h-JYk3xr~bF2h?#6W99_QoUNu6u_@;|4kX(C5(% zw1c>uJEsE@hg;?jEfD?@)xw5_o`&%>!v^W1E<^krv}{*-eBkVB^d3Gy(_5f#2`MFB z3r_3&9sQHO+=I6!Tb39KoL@|J-UQjf1zl(P@L1XLfq!}PqbN64y9@PPWpf>10@x7`VUZna#U-H*TH^8F*?YOxt4^aO+*Ns{k)Ji=?(GKDR zx%f62vANA$8~Tr)QHj^SMx`f(SBMYQ!M^_idui z-%`u$nf!k7w1UueQWQPt+!^5?1Ti`*!e*VMJ zJI>#s6Y}s4&E@0qmcaH<@6d^O1!Ns7q-oGWvciw6cW>w-9g3Nv@11Le<*<(|HMYYZ zd35?80=)S%`y#1zLm}d{t`ga>URWh21$~MJU&E}E2r_~&IgF5Ww!PN5GYUkVc}_a- zcMbh9ejVVmj6tdApF&2&M~@XITa`MU z?JRVM?$|DrzRR&MS{trFo)|p?R_;;M zH`P($cMbkAzKu;8D$G> zeICyMUwM^m!mf&Q=U!^5{i0FWqu#k*N(s8etE?YoG1g&wrSx;yTbyhB3H}pw=Ng^u z8={W_zS*%BoP17uQ{Eu(r+;lY4|w#f`E$(7kvL+UX%}G^>ST`ASNLxldMBO_S)yy` z&v8xibO*JE$8MTvf2}l!S{)6BQ-r(&cL!kWk3EFxWqr&cyvz1KrgxXyG7S~KL++lx7|E$W2y3-#5^()YQ-7w;+-O zIlwkW3c$g>k`0zYM&N{XPegh4xxH70r6Xo}vEYPspd>vx?Cc zR~RY1jfFJhW7y})u(r8X$NWHJA8}vgv}_wDYPNS>%3Zu0XbXa zu2nkWW?;-+GA#1pAyWX_*uo}5F4fcz-w(O>^hO;z;SH7TgvR@icC{r_ zg}grXyH-T+AUf43r;N9bm8f-ArFAeSIcQW*nW=E!%Rqj}a(Q9<1fp#K~$#=1fK|$tC zb-4Q~pb;{r$)Mn>`}DxFC*zQ*!um_cxCUu$e%U{iAWG19oMZ;BBU(5TJsxcvN@v&| zs;venHKz5n4%Ux0k_rPm4?18Sa}ej1Dt<+<2UTcjt_u=@p0?BJ3S(D0=Y~C2 zC#NDhhz_#JMX{Hxrq~}|x`|FoI*=ruaC5s_>W=xePnFBs0~H+_?DTGr%kn{%*OQIe zWp=o`Tdcjd;Tmx5jQikH;05hdCb=Yb2GrLX$98;W?tpg+=!lln#SGpq*FM!URLuN6 z*BoYP?!aH^Z@Ddl#f*ShLX6xpR0JvMGC5l?dEMPcM+;8x7_M<2{47_5U6Kygf{SFA z<$Jc4gCBw(dkMA{e|Sk_wtzc)(_P_dsY5(@K%fCM1hKzEI|lLDtdiIVfawG9MA`#v zM;c(#Lm#hwihO_wl27e!dW%$|_$!&w0~7fQkQ1Xn$db>}k4j?9jQgK3T%(Z@?N4vdkGr z4?tHjBU9R5?RxLkIC;~0tvRs0bi?-2J%eoeUql2H_-A+Uux&%!JUr>Xh@A>Bx@S~D zH}YaO;U5O;ckBMv!6MAWqcgmF*`W7{W8Dwz)yf}7pA_h;y%+gN3vj?lO;0vOBrx&o zK*#C%*|AE{KfObhamv+padxaK-sllxe}`YSeHD0g>?Y*@DkvTXEhxoVIuo*Jj%Af6 zcLKicnfJ<5m0Bt(Y-8YC!(`$bBe`5y5I3> z8$3pqU|_U6tMxeZBLBTt;)2i;5cUu}UergmpUbiWs}AK>ig|;tfFe?2ouGW+>fN*l z`{JpxR!^L`b=ZzydTg|-0HkvDq= zpjZ0vs?3H!?;v^xT(m|u2{|Fx=~v@k#M5HMyY`oO)_HvBW8V{RbpQKa?D>9b!EkgZ zJjh6Dup^2128zM}9%5t!_-Mv{?Eat(i^L9CNA;a~`|;k>KHx#ys#HfV-qYwB9Mkq! zS>CY~Vh5pi{QkmF?l$xn%U%T!Sz(Xbx~DGik?jGT1i_9feZmP##Qeb%u!)B+2zUj( z(kH1hmGH=gB;nE?rv5z<|Em7^(^&t!k!AAEwS_#}u%rJ3@#q==A1mgRrhyfh9ZX{% zgqF{X8S0&3Kuns&xLQ0z*iAJyU6>X@yuDJ|A@tnL-O1s9;LNXL__dT_#+J>fV#Bsu zAfKpZG9$!=bL=;5*~&;SL%Uk6xAV6Ktng9QE3*?ec}l6p7u0^B{WX1jZsaRH!Hvxg zv#?txuVqN^m2c+YEvsOaQao?=5VboOn2SbA*t4^`99Fl5qzNAQkEG`P6iUk9xxowp62Hk-5kuKnr^pjN;2g;AOPuYW;yPO2n` zs8dxAMV>4BurFNg$dsM%Ya}bNVwBPg^?V6-hB-UlF0^1r#Hp5*tVFo;ht&~Si8y!C z4xwW-;x{ova=JoYL}4HXBZ4!D;9Ybg2U(U=AZZlIvP_`1RbM^CC^^j_x&!tWHkp4! z@h@&fZBrbfu6;eTALn+>K0-b&3I7%|-swSI#jyjcxGJ#^O_54)GM|a>K4}niyOJ<2 z3r#*tNU}Xa^vBS{@dm7*}L}BEEv(Q&<=soqG3(ipPHDmW|Fdg?CpfK|T^$fGs z!wTmbIm}jA28t$Onm84n2Rg;4fOdV=&!ow)6!DEv2Yd@@4q60yr;$Zyl{->6aD6UO zOPclsn;oArtmc%s4ok}WVFZ&YqU|j>d~u*Uk4|CmaEP~q9>l$ zm&Hb)l^@B2%`KpT1ta*&A8K$G?cbfS8-xUUpr55SspC#NlnHUk$a{JoGAFuhHByz~aH{dq(tQmvBaLxZ7mO)aoZnh%YO8kdQllg}JIA#Mn8I58^-0N``lLq4iXj9da1!oZI2Q zufcD8U^!^cH?jojy4~1G!g7ZO`_32B;SCH-TM*;skVJ<=zCz@CHp>Yw?;0M#Dq& zZNV5UobnycIoVwRsiGINWC%6|&i4ERhS0M1%YFDJB%c^;Xc^-JEbIwS)(=NZG3FK| zcZ|trkkTSEm2v0ds>Yje6pi(zBbm^=e$`0QNUdcOV`YHdsPQd=t~AEwlXoVUe`SA6 znq6eKG+EcH&Yk~VjbyoU`RrKrma|N#L z_`s$?@~Hasa4}BnptIX6E|L}Q2jJqMbsjH))?s`g4IxeoiPIa=cp;EmnbzSh_b%6kvIRRVWAhNpF**FQ`D$*o zJIz<)`=p;VWHSZ~)?0j{vEKJdUy_fN*pAWtjJ2y;?`R5edvpRc345wUdgBp`J*gcg z>ofMbzQkTkBTjNH=1c|VDp?QrAHbfkg-`1T0xV@U`uM>14_rgPju&Bn8JtPGOl;-| zJVdnIyEB{jlb@KDdvhkqA$~N#Nn7{dDc02y=8jYs#%%fEHZa$1`8&aV(7ZPyCKkod z!kOjygum6x<^mB2K(b| z@Ms~GOL7BN&Or{}A>q*0>H={I;+rvAX5bL~yjsxSt7dNPo{65g0TGaX9Y=WsiS`gPF>MHz^m>}ms`xb4&qK==8vHMc{5FLmauqCzhlLax25?K!i;7_L)V|CjhCH~j5WUGbvZ+}D_ zLr~}x$uJ|+h1fZ4*!5m-ygnP25I(Z2(xd+o*GtcYOfuP%>_9kV|~@(?q#gUZE`P@{4yxC zI_QUs6gun9q!#OQ{CyRvL0|9v>}OfM-K>?-_71&zv9~*h9hlJ?LaE>&U%4nlzWOlc zAbsaUU3EzmMXJU6bKV3E_M2TyKi|#uuk6l2E}?&Gb&2Q^$%cGx?AFeskRVzqkF@}F z^s5(HtpUHU;5U!!?Izxi2Y#IO{%k?+Ed%Y$`ZK$-gDVdnb7yw5mg^95W95_6;jaUH z{(fg~A7UfeY_Ih4UGQm9zGUBD3o7r{?i21eyI5Zg`93+hvYSN-CM6D2a`?UqDtR0G zA6c}vT(31BaD!GYYS*J5K%<;h=j`BFl7p%62Mr?Oh1-rgfzQiqd6+rp?#RcgH;3~ue-;V7gD21- z;DdCT;JMQ5O{~SL$fdQ?n!V8YSIEezjzjVEaVRnsC@i*oKyl%Y1$alY@LtHkNA4g@ zbu79i52o}<|)Dl*W?y_e{_i72%H zQ}2CeQtz3epHX{VjUG2SD%FLW1;Bj2%_Y2l{WyK5VzUIb^wrp`6t@2sBv@-Dp9QtV z&rxY<9yp9>>E~Xf=q}IV&Gln%t{;2zTjkAfY`=#bs{}HOUyn<@bELw^ql(n~6T1)d zeIL(5Pw{hJ7t+dN=!uhanH=FiSEs%Ac|0jh@-+II2ZQzv0A5 zNbOYL2WxoWY7W#rqFc7VgOFW`KBm72$#8rV z+}HKMuT4G{>0INw_BL3k#|H}jx-L?JCuXF`YCEjTh!>&0K4Z6rCZPG;l=#*vO~7Ie zzr$KMn^YCKJ^B4CgHVJ$Mvrtu?6&xKR~3V!X<^8M=B{@@5yFpTK`wb>RJ{rtzkxU5 zS;WJV<#MVhK^dwxRmq@brdYG!*P>w^(Bibn_k$Nmg0&7=>B3$LIJ~z@>>255>Tz{P z;cYzJ)7vc`Ocmkt0?xC_oRDHD7O@KLVF&F&5p%u;itV=-n-3sLM>~0;>TEr7MmBWH zuaKXbO}rs8x4rp5-+@mLf3v6QNY4@E8Mt6ZyeO+~#-Rh)2cWT^DRYRz;M>@ViN(}&@2huE#r6roH{HbBvOcFJ z$-%*1+IVId|8-}mM@rjQ2|CEL-gZ-DZvl~GUp930`TCBz8R_}z+uA$(KxHC&Ngtvd z;>0`C6DO^RmY|U+M-}1;-@RJv^F>D?0eKWLmo4FTtdvLlrr5-(i%dI3Tcc->zSoDAvF-3;gcrLa zIZ>>BC+z{a3>;;Ryl>hJ*^Pg8@FPB34G83`^ig!U?FK<-O#0q2Eh^q9! zy1oSMS@N!PFdG&#e~vprKr32U%xn!HUMv>DzHT zC^PsaDEU+5Ab%M4A^1;#j%i`y1H!vR#|lFz8_^Plp_z=z#q}#R{quTvEF=+)&74`t zFt{dKdo9AW-2mM?JSZEUIBDech=d6Ws(l1LJ1wwXC>G~o6$ge$j!377kzLJkElR-- zE`l~^tUR7`?TNCfOe%XVgROO-0#Rtk>Kw0c;#(G{oN)M7ZH=Nchs-8EaOxeV0nrV| z;o*j!jE^*uH1*Sq)N8JxBha�u~Xl6~~{+<t4b0{%@Hm)XcKO4!I(Z1r@pB^;ff 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

BEL;#XyItElR&V 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 Kyj?!q)%t%`f3PqB literal 0 HcmV?d00001 diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_refactor b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_refactor deleted file mode 100755 index 341d615594401f35aec4053921439c9e88db862c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165544 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

8VHL#v!dKxE+giLxti{W1 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 QT)%Pk;`-ZZ-_H2|0j>t>zyJUM diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h index b1271dbcb..580f09290 100755 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h @@ -76,7 +76,7 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, #define VIO_MIN_MV (1200) // for fpga to function /* Defines in the Firmware */ -#define MAX_PATTERN_LENGTH (0xFFFF) +#define MAX_PATTERN_LENGTH (0x7FFF) #define DIGITAL_IO_DELAY_MAXIMUM_PS ((OUTPUT_DELAY_0_OTPT_STTNG_MSK >> OUTPUT_DELAY_0_OTPT_STTNG_OFST) * OUTPUT_DELAY_0_OTPT_STTNG_STEPS) #define MAX_PHASE_SHIFTS_STEPS (8) diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h index c9ab6eb48..c9b0247b9 100755 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h @@ -57,7 +57,7 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7}; #define DAC_MAX_MV (2500) /* Defines in the Firmware */ -#define MAX_PATTERN_LENGTH (0xFFFF) +#define MAX_PATTERN_LENGTH (0x7FFF) #define DIGITAL_IO_DELAY_MAXIMUM_PS ((OUTPUT_DELAY_0_OTPT_STTNG_MSK >> OUTPUT_DELAY_0_OTPT_STTNG_OFST) * OUTPUT_DELAY_0_OTPT_STTNG_STEPS) #define MAX_PHASE_SHIFTS_STEPS (8) diff --git a/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.c index a61bf5f6a..58c15c5da 100755 --- a/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.c @@ -201,7 +201,12 @@ const char* getFunctionName(enum detFuncs func) { case F_RESET_COUNTER_BLOCK: return "F_RESET_COUNTER_BLOCK"; case F_ENABLE_TEN_GIGA: return "F_ENABLE_TEN_GIGA"; case F_SET_ALL_TRIMBITS: return "F_SET_ALL_TRIMBITS"; - case F_SET_PATTERN: return "F_SET_PATTERN"; + case F_SET_PATTERN_IO_CONTROL: return "F_SET_PATTERN_IO_CONTROL"; + case F_SET_PATTERN_CLOCK_CONTROL: return "F_SET_PATTERN_CLOCK_CONTROL"; + case F_SET_PATTERN_WORD: return "F_SET_PATTERN_WORD"; + case F_SET_PATTERN_LOOP: return "F_SET_PATTERN_LOOP"; + case F_SET_PATTERN_WAIT_ADDR: return "F_SET_PATTERN_WAIT_ADDR"; + case F_SET_PATTERN_WAIT_TIME: return "F_SET_PATTERN_WAIT_TIME"; case F_SET_PATTERN_MASK: return "F_SET_PATTERN_MASK"; case F_GET_PATTERN_MASK: return "F_GET_PATTERN_MASK"; case F_SET_PATTERN_BIT_MASK: return "F_SET_PATTERN_BIT_MASK"; @@ -273,7 +278,12 @@ void function_table() { flist[F_RESET_COUNTER_BLOCK] = &reset_counter_block; flist[F_ENABLE_TEN_GIGA] = &enable_ten_giga; flist[F_SET_ALL_TRIMBITS] = &set_all_trimbits; - flist[F_SET_PATTERN] = &set_pattern; + flist[F_SET_PATTERN_IO_CONTROL] = &set_pattern_io_control; + flist[F_SET_PATTERN_CLOCK_CONTROL] = &set_pattern_clock_control; + flist[F_SET_PATTERN_WORD] = &set_pattern_word; + flist[F_SET_PATTERN_LOOP] = &set_pattern_loop; + flist[F_SET_PATTERN_WAIT_ADDR] = &set_pattern_wait_addr; + flist[F_SET_PATTERN_WAIT_TIME] = &set_pattern_wait_time; flist[F_SET_PATTERN_MASK] = &set_pattern_mask; flist[F_GET_PATTERN_MASK] = &get_pattern_mask; flist[F_SET_PATTERN_BIT_MASK] = &set_pattern_bit_mask; @@ -2674,222 +2684,222 @@ int set_all_trimbits(int file_des) { -int set_pattern(int file_des) { + +int set_pattern_io_control(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); + uint64_t arg = -1; + uint64_t retval = -1; - // receive mode - uint64_t arg = -1; - if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0) - return printSocketReadError(); - int mode = (int)arg; - FILE_LOG(logDEBUG1, ("Setting Pattern: mode %d\n", mode)); - - - - // mode 0: control or word - if (mode == 0) { - // receive arguments - uint64_t args[2] = {-1, -1}; - if (receiveData(file_des, args, sizeof(args), INT64) < 0) - return printSocketReadError(); - int64_t retval64 = -1; - + if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0) + return printSocketReadError(); #if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) - functionNotImplemented(); - return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); + functionNotImplemented(); #else - int addr = (int)args[0]; - uint64_t word = args[1]; - FILE_LOG(logDEBUG1, (" addr:0x%x word:0x%llx\n", addr, word)); - - if ((word == -1) || (Server_VerifyLock() == OK)) { - - // address for set word should be valid (if not -1 or -2, it goes to setword) - if (addr < -2 || addr > MAX_PATTERN_LENGTH) { - ret = FAIL; - sprintf(mess, "Cannot set Pattern (Word, addr:0x%x). Addr must be <= 0x%x\n", - addr, MAX_PATTERN_LENGTH); - FILE_LOG(logERROR, (mess)); - } else { - char tempName[100]; - memset(tempName, 0, 100); - - switch (addr) { - case -1: - strcpy(tempName, "Pattern (I/O Control Register)"); - FILE_LOG(logDEBUG1, (" Setting %s, word to 0x%llx\n", tempName, (long long int) word)); - retval64 = writePatternIOControl(word); - FILE_LOG(logDEBUG1, (" %s: 0x%llx\n", tempName, (long long int)retval64)); - validate64(word, retval64, tempName, HEX); - break; - case -2: - strcpy(tempName, "Pattern (Clock Control Register)"); - FILE_LOG(logDEBUG1, (" Setting %s, word to 0x%llx\n", tempName, (long long int) word)); - retval64 = writePatternClkControl(word); - FILE_LOG(logDEBUG1, (" %s: 0x%llx\n", tempName, (long long int)retval64)); - validate64(word, retval64, tempName, HEX); - break; - default: - sprintf(tempName, "Pattern (Word, addr:0x%x)", addr); - FILE_LOG(logDEBUG1, (" Setting %s, word to 0x%llx\n", tempName, (long long int) word)); - retval64 = writePatternWord(addr, word); - FILE_LOG(logDEBUG1, (" %s: 0x%llx\n", tempName, (long long int)retval64)); - // do not validate as it can be different due to masking - //validate64(word, retval64, tempName, HEX); - break; - } - } - } + FILE_LOG(logDEBUG1, ("Setting Pattern IO Control to 0x%llx\n", (long long int)arg)); + if ((arg == -1) || (Server_VerifyLock() == OK)) { + retval = writePatternIOControl(arg); + FILE_LOG(logDEBUG1, ("Pattern IO Control retval: 0x%llx\n", (long long int) retval)); + validate64(arg, retval, "Pattern IO Control", HEX); + } #endif - return Server_SendResult(file_des, INT64, UPDATE, &retval64, sizeof(retval64)); - } + return Server_SendResult(file_des, INT64, UPDATE, &retval, sizeof(retval)); +} - // mode 1: pattern loop - else if (mode == 1) { - // receive arguments - uint64_t args[4] = {-1, -1, -1, -1}; - if (receiveData(file_des, args, sizeof(args), INT64) < 0) - return printSocketReadError(); - int retvals[3] = {-1, -1, -1}; + + +int set_pattern_clock_control(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + uint64_t arg = -1; + uint64_t retval = -1; + + if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0) + return printSocketReadError(); #if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) - functionNotImplemented(); - return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); + functionNotImplemented(); #else - int loopLevel = (int)args[0]; - int startAddr = (int)args[1]; - int stopAddr = (int)args[2]; - int numLoops = (int)args[3]; - FILE_LOG(logDEBUG1, (" loopLevel:%d startAddr:0x%x stopAddr:0x%x numLoops:%d\n", loopLevel, startAddr, stopAddr, numLoops)); - - if (loopLevel < -1 || loopLevel > 2) { // -1 complete pattern - ret = FAIL; - sprintf(mess, "Pattern (Pattern Loop) Level (%d) is not implemented for this detector\n", loopLevel); - FILE_LOG(logERROR,(mess)); - } - - // level 0-2, addr upto patternlength + 1 - else if ((loopLevel != -1) && (startAddr > MAX_PATTERN_LENGTH || stopAddr > MAX_PATTERN_LENGTH )) { - ret = FAIL; - sprintf(mess, "Cannot set Pattern (Pattern Loop, level:%d, startaddr:0x%x, stopaddr:0x%x). " - "Addr must be <= 0x%x\n", - loopLevel, startAddr, stopAddr, MAX_PATTERN_LENGTH); - FILE_LOG(logERROR, (mess)); - } - - //level -1, addr upto patternlength - else if ((loopLevel == -1) && (startAddr > MAX_PATTERN_LENGTH || stopAddr > MAX_PATTERN_LENGTH)) { - ret = FAIL; - sprintf(mess, "Cannot set Pattern (Pattern Loop, complete pattern, startaddr:0x%x, stopaddr:0x%x). " - "Addr must be <= 0x%x\n", - startAddr, stopAddr, MAX_PATTERN_LENGTH); - FILE_LOG(logERROR, (mess)); - } - - else if ((startAddr == -1 && stopAddr == -1 && numLoops == -1) || (Server_VerifyLock() == OK)) { - setPatternLoop(loopLevel, &startAddr, &stopAddr, &numLoops); - } - retvals[0] = startAddr; - retvals[1] = stopAddr; - retvals[2] = numLoops; + FILE_LOG(logDEBUG1, ("Setting Pattern Clock Control to 0x%llx\n", (long long int)arg)); + if ((arg == -1) || (Server_VerifyLock() == OK)) { + retval = writePatternClkControl(arg); + FILE_LOG(logDEBUG1, ("Pattern Clock Control retval: 0x%llx\n", (long long int) retval)); + validate64(arg, retval, "Pattern Clock Control", HEX); + } #endif - return Server_SendResult(file_des, INT32, UPDATE, retvals, sizeof(retvals)); - } - - - - // mode 2: wait address - else if (mode == 2) { - // receive arguments - uint64_t args[2] = {-1, -1}; - if (receiveData(file_des, args, sizeof(args), INT64) < 0) - return printSocketReadError(); - int retval32 = -1; - -#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) - functionNotImplemented(); - return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); -#else - int loopLevel = (int)args[0]; - int addr = (int)args[1]; - FILE_LOG(logDEBUG1, (" loopLevel:%d addr:0x%x\n", loopLevel, addr)); - - if ((addr == -1) || (Server_VerifyLock() == OK)) { - if (loopLevel < 0 || loopLevel > 2) { - ret = FAIL; - sprintf(mess, "Pattern (Wait Address) Level (0x%x) is not implemented for this detector\n", loopLevel); - FILE_LOG(logERROR,(mess)); - } else if (addr > MAX_PATTERN_LENGTH) { - ret = FAIL; - sprintf(mess, "Cannot set Pattern (Wait Address, addr:0x%x). Addr must be <= 0x%x\n", - addr, MAX_PATTERN_LENGTH); - FILE_LOG(logERROR, (mess)); - } else { - char tempName[100]; - memset(tempName, 0, 100); - sprintf(tempName, "Pattern (Wait Address, Level:%d)", loopLevel); - - FILE_LOG(logDEBUG1, (" Setting %s to 0x%x\n", tempName, addr)); - retval32 = setPatternWaitAddress(loopLevel, addr); - FILE_LOG(logDEBUG1, (" %s: 0x%x\n", tempName, retval32)); - validate(addr, retval32, tempName, HEX); - } - } -#endif - return Server_SendResult(file_des, INT32, UPDATE, &retval32, sizeof(retval32)); - } - - - - // mode 3: wait time - else if (mode == 3) { - // receive arguments - uint64_t args[2] = {-1, -1}; - if (receiveData(file_des, args, sizeof(args), INT64) < 0) - return printSocketReadError(); - int64_t retval64 = -1; - -#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) - functionNotImplemented(); - return Server_SendResult(file_des, INT32, UPDATE, NULL, 0); -#else - int loopLevel = (int)args[0]; - uint64_t timeval = args[1]; - FILE_LOG(logDEBUG1, (" loopLevel:%d timeval:0x%lld\n", loopLevel, timeval)); - - if ((timeval == -1) || (Server_VerifyLock() == OK)) { - if (loopLevel < 0 || loopLevel > 2) { - ret = FAIL; - sprintf(mess, "Pattern (Wait Time) Level (%d) is not implemented for this detector\n", loopLevel); - FILE_LOG(logERROR,(mess)); - } else { - char tempName[100]; - memset(tempName, 0, 100); - sprintf(tempName, "Pattern (Wait Time, Level:%d)", loopLevel); - - FILE_LOG(logDEBUG1, (" Setting %s to 0x%lld\n", tempName, (long long int)timeval)); - retval64 = setPatternWaitTime(loopLevel, timeval); - FILE_LOG(logDEBUG1, (" %s: 0x%lld\n", tempName, (long long int)retval64)); - validate64(timeval, retval64, tempName, HEX); - } - } -#endif - return Server_SendResult(file_des, INT64, UPDATE, &retval64, sizeof(retval64)); - } - - - // mode not defined - else { - ret = FAIL; - sprintf(mess, "Pattern mode index (%d) is not implemented for this detector\n", mode); - FILE_LOG(logERROR,(mess)); - return Server_SendResult(file_des, INT64, UPDATE, NULL, 0); - } + return Server_SendResult(file_des, INT64, UPDATE, &retval, sizeof(retval)); } + + + + + +int set_pattern_word(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + uint64_t args[2] = {-1, -1}; + uint64_t retval = -1; + + if (receiveData(file_des, args, sizeof(args), INT64) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) + functionNotImplemented(); +#else + int addr = (int)args[0]; + uint64_t word = args[1]; + FILE_LOG(logDEBUG1, ("Setting Pattern Word (addr:0x%x, word:0x%llx\n", addr, (long long int)word)); + if (Server_VerifyLock() == OK) { + // valid address + if (addr > MAX_PATTERN_LENGTH) { + ret = FAIL; + sprintf(mess, "Cannot set Pattern (Word, addr:0x%x). Addr must be <= 0x%x\n", + addr, MAX_PATTERN_LENGTH); + FILE_LOG(logERROR, (mess)); + } else { + retval = writePatternWord(addr, word); + FILE_LOG(logDEBUG1, ("Pattern Word retval: 0x%llx\n", (long long int) retval)); + // no validation (cannot read as it will execute the pattern) + } + } +#endif + return Server_SendResult(file_des, INT64, UPDATE, &retval, sizeof(retval)); +} + + + + + + +int set_pattern_loop(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int args[4] = {-1, -1, -1, -1}; + int retvals[3] = {-1, -1, -1}; + + if (receiveData(file_des, args, sizeof(args), INT32) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) + functionNotImplemented(); +#else + int loopLevel = args[0]; + int startAddr = args[1]; + int stopAddr = args[2]; + int numLoops = args[3]; + FILE_LOG(logDEBUG1, ("Setting Pattern loops (loopLevel:%d startAddr:0x%x stopAddr:0x%x numLoops:%d)\n", loopLevel, startAddr, stopAddr, numLoops)); + if ((startAddr == -1) || (stopAddr == -1) || (numLoops == -1) || (Server_VerifyLock() == OK)) { + // valid loop level + if (loopLevel < -1 || loopLevel > 2) { // loop level of -1 : complete pattern + ret = FAIL; + sprintf(mess, "Cannot set Pattern loops. Level %d should be between -1 and 2\n",loopLevel); + FILE_LOG(logERROR, (mess)); + } + // valid addr for loop level 0-2 + else if (startAddr > MAX_PATTERN_LENGTH || stopAddr > MAX_PATTERN_LENGTH ) { + ret = FAIL; + sprintf(mess, "Cannot set Pattern loops. Address (start addr:0x%x and stop addr:0x%x) " + "should be less than 0x%x\n", startAddr, stopAddr, MAX_PATTERN_LENGTH); + FILE_LOG(logERROR, (mess)); + } + + else { + setPatternLoop(loopLevel, &startAddr, &stopAddr, &numLoops); + FILE_LOG(logDEBUG1, ("Pattern Loops retval: (start:0x%x, stop:0x%x, nloop:%d)\n", startAddr, stopAddr, numLoops)); + retvals[0] = startAddr; + retvals[1] = stopAddr; + retvals[2] = numLoops; + validate(args[1], startAddr, "Pattern loops' start address", HEX); + validate(args[2], stopAddr, "Pattern loops' stop address", HEX); + validate(args[3], numLoops, "Pattern loops' number of loops", DEC); + } + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, retvals, sizeof(retvals)); +} + + + + + + +int set_pattern_wait_addr(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int args[2] = { -1, -1}; + int retval = -1; + + if (receiveData(file_des, args, sizeof(args), INT32) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) + functionNotImplemented(); +#else + int loopLevel = args[0]; + int addr = args[1]; + FILE_LOG(logDEBUG1, ("Setting Pattern wait address (loopLevel:%d addr:0x%x)\n", loopLevel, addr)); + if ((addr == -1) || (Server_VerifyLock() == OK)) { + // valid loop level 0-2 + if (loopLevel < 0 || loopLevel > 2) { + ret = FAIL; + sprintf(mess, "Cannot set Pattern wait address. Level %d should be between 0 and 2\n",loopLevel); + FILE_LOG(logERROR, (mess)); + } + // valid addr + else if (addr > MAX_PATTERN_LENGTH) { + ret = FAIL; + sprintf(mess, "Cannot set Pattern wait address. Address (0x%x) should be less than 0x%x\n", addr, MAX_PATTERN_LENGTH); + FILE_LOG(logERROR, (mess)); + } + else { + retval = setPatternWaitAddress(loopLevel, addr); + FILE_LOG(logDEBUG1, ("Pattern wait address retval: 0x%x\n", retval)); + validate(addr, retval, "Pattern wait address", HEX); + } + } +#endif + return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval)); +} + + + + + + +int set_pattern_wait_time(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + uint64_t args[2] = { -1, -1}; + uint64_t retval = -1; + + if (receiveData(file_des, args, sizeof(args), INT32) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(MOENCHD) + functionNotImplemented(); +#else + int loopLevel = (int)args[0]; + uint64_t timeval = args[1]; + FILE_LOG(logDEBUG1, ("Setting Pattern wait time (loopLevel:%d timeval:0x%llx)\n", loopLevel, (long long int)timeval)); + if ((timeval == -1) || (Server_VerifyLock() == OK)) { + // valid loop level 0-2 + if (loopLevel < 0 || loopLevel > 2) { + ret = FAIL; + sprintf(mess, "Cannot set Pattern wait time. Level %d should be between 0 and 2\n",loopLevel); + FILE_LOG(logERROR, (mess)); + } + else { + retval = setPatternWaitTime(loopLevel, timeval); + FILE_LOG(logDEBUG1, ("Pattern wait time retval: 0x%llx\n", (long long int)retval)); + validate64(timeval, retval, "Pattern wait time", HEX); + } + } +#endif + return Server_SendResult(file_des, INT64, UPDATE, &retval, sizeof(retval)); +} + + + + int set_pattern_mask(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); diff --git a/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.h index da2e28d66..840482d6b 100755 --- a/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/slsDetectorServer_funcs.h @@ -63,7 +63,12 @@ int reset_counter_block(int); int calibrate_pedestal(int); int enable_ten_giga(int); int set_all_trimbits(int); -int set_pattern(int); +int set_pattern_io_control(int); +int set_pattern_clock_control(int); +int set_pattern_word(int); +int set_pattern_loop(int); +int set_pattern_wait_addr(int); +int set_pattern_wait_time(int); int set_pattern_mask(int); int get_pattern_mask(int); int set_pattern_bit_mask(int); diff --git a/slsDetectorSoftware/include/multiSlsDetector.h b/slsDetectorSoftware/include/multiSlsDetector.h index 7b8b24bcd..d3be1f547 100755 --- a/slsDetectorSoftware/include/multiSlsDetector.h +++ b/slsDetectorSoftware/include/multiSlsDetector.h @@ -1798,41 +1798,58 @@ class multiSlsDetector : public virtual slsDetectorDefs { int setReceiverSilentMode(int i = -1, int detPos = -1); /** - * Opens pattern file and sends pattern to CTB + * Opens pattern file and sends pattern (CTB/ Moench) * @param fname pattern file to open * @param detPos -1 for all detectors in list or specific detector position * @returns OK/FAIL */ int setPattern(const std::string &fname, int detPos = -1); + /** + * Sets pattern IO control (CTB/ Moench) + * @param word 64bit word to be written, -1 gets + * @param detPos -1 for all detectors in list or specific detector position + * @returns actual value + */ + uint64_t setPatternIOControl(uint64_t word = -1, int detPos = -1); + + /** + * Sets pattern clock control (CTB/ Moench) + * @param word 64bit word to be written, -1 gets + * @param detPos -1 for all detectors in list or specific detector position + * @returns actual value + */ + uint64_t setPatternClockControl(uint64_t word = -1, int detPos = -1); + /** - * Writes a pattern word to the CTB - * @param addr address of the word, -1 is I/O control register, - * -2 is clk control register - * @param word 64bit word to be written, -1 gets + * Writes a pattern word (CTB/ Moench) + * @param addr address of the word + * @param word 64bit word to be written, -1 reads the addr (same as executing the pattern) * @param detPos -1 for all detectors in list or specific detector position * @returns actual value */ - uint64_t setPatternWord(int addr, uint64_t word = -1, int detPos = -1); + uint64_t setPatternWord(int addr, uint64_t word, int detPos = -1); /** - * Sets the pattern or loop limits in the CTB + * Sets the pattern or loop limits (CTB/ Moench) * @param level -1 complete pattern, 0,1,2, loop level - * @param start start address if >=0 - * @param stop stop address if >=0 - * @param n number of loops (if level >=0) + * @param start start address for level 0-2, -1 gets + * @param stop stop address for level 0-2, -1 gets + * @param n number of loops for level 0-2, -1 gets * @param detPos -1 for all detectors in list or specific detector position - * @returns OK/FAIL */ - int setPatternLoops(uint64_t level, uint64_t start, uint64_t stop, uint64_t n, - int detPos = -1); + void setPatternLoops(int level, int start = -1, int stop = -1, int n = -1, int detPos = -1); - - - std::array getPatternLoops(uint64_t level, int detPos = -1); + /** + * Gets the pattern loop limits (CTB/ Moench) + * @param level -1 complete pattern, 0,1,2, loop level + * @param detPos -1 for all detectors in list or specific detector position + * @returns array of start address, stop address and number of loops + */ + std::array getPatternLoops(int level, int detPos = -1); /** - * Sets the wait address in the CTB + * Sets the wait address (CTB/ Moench) * @param level 0,1,2, wait level * @param addr wait address, -1 gets * @param detPos -1 for all detectors in list or specific detector position @@ -1841,7 +1858,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { int setPatternWaitAddr(int level, int addr = -1, int detPos = -1); /** - * Sets the wait time in the CTB + * Sets the wait time (CTB/ Moench) * @param level 0,1,2, wait level * @param t wait time, -1 gets * @param detPos -1 for all detectors in list or specific detector position @@ -1850,7 +1867,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { uint64_t setPatternWaitTime(int level, uint64_t t = -1, int detPos = -1); /** - * Sets the mask applied to every pattern + * Sets the mask applied to every pattern (CTB/ Moench) * @param mask mask to be applied * @param detPos -1 for all detectors in list or specific detector position * @returns OK or FAIL @@ -1858,14 +1875,14 @@ class multiSlsDetector : public virtual slsDetectorDefs { int setPatternMask(uint64_t mask, int detPos = -1); /** - * Gets the mask applied to every pattern + * Gets the mask applied to every pattern (CTB/ Moench) * @param detPos -1 for all detectors in list or specific detector position * @returns mask set */ uint64_t getPatternMask(int detPos = -1); /** - * Selects the bits that the mask will be applied to for every pattern + * Selects the bits that the mask will be applied to for every pattern (CTB/ Moench) * @param mask mask to select bits * @param detPos -1 for all detectors in list or specific detector position * @returns OK or FAIL @@ -1873,7 +1890,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { int setPatternBitMask(uint64_t mask, int detPos = -1); /** - * Gets the bits that the mask will be applied to for every pattern + * Gets the bits that the mask will be applied to for every pattern (CTB/ Moench) * @param detPos -1 for all detectors in list or specific detector position * @returns mask of bits selected */ diff --git a/slsDetectorSoftware/include/slsDetector.h b/slsDetectorSoftware/include/slsDetector.h index 5d5fa0467..1b7fdf57c 100755 --- a/slsDetectorSoftware/include/slsDetector.h +++ b/slsDetectorSoftware/include/slsDetector.h @@ -1641,65 +1641,77 @@ class slsDetector : public virtual slsDetectorDefs{ * @returns OK/FAIL */ int setPattern(const std::string &fname); - - /** - * Writes a pattern word to the CTB - * @param addr address of the word, -1 is I/O control register, -2 is clk control register + + /** + * Sets pattern IO control (CTB/ Moench) * @param word 64bit word to be written, -1 gets * @returns actual value */ - uint64_t setPatternWord(uint64_t addr, uint64_t word = -1); + uint64_t setPatternIOControl(uint64_t word = -1); /** - * Sets the pattern or loop limits in the CTB - * @param level -1 complete pattern, 0,1,2, loop level - * @param start start address if >=0 - * @param stop stop address if >=0 - * @param n number of loops (if level >=0) - * @returns OK/FAIL + * Sets pattern clock control (CTB/ Moench) + * @param word 64bit word to be written, -1 gets + * @returns actual value */ - int setPatternLoops(uint64_t level, uint64_t start, uint64_t stop, uint64_t n); - - std::array getPatternLoops(uint64_t level); + uint64_t setPatternClockControl(uint64_t word = -1); /** - * Sets the wait address in the CTB + * Writes a pattern word (CTB/ Moench) + * @param addr address of the word + * @param word 64bit word to be written, -1 reads the addr (same as executing the pattern) + * @returns actual value + */ + uint64_t setPatternWord(int addr, uint64_t word); + + /** + * Sets the pattern or loop limits (CTB/ Moench) + * @param level -1 complete pattern, 0,1,2, loop level + * @param start start address for level 0-2, -1 gets + * @param stop stop address for level 0-2, -1 gets + * @param n number of loops for level 0-2, -1 gets + * @returns array of start addr, stop addr and number of loops + */ + std::array setPatternLoops(int level = -1, int start = -1, int stop = -1, int n = -1); + + /** + * Sets the wait address (CTB/ Moench) * @param level 0,1,2, wait level * @param addr wait address, -1 gets * @returns actual value */ - int setPatternWaitAddr(uint64_t level, uint64_t addr = -1); + int setPatternWaitAddr(int level, int addr = -1); /** - * Sets the wait time in the CTB + * Sets the wait time (CTB/ Moench) * @param level 0,1,2, wait level * @param t wait time, -1 gets * @returns actual value */ - uint64_t setPatternWaitTime(uint64_t level, uint64_t t = -1); + uint64_t setPatternWaitTime(int level, uint64_t t = -1); /** - * Sets the mask applied to every pattern + * Sets the mask applied to every pattern (CTB/ Moench) * @param mask mask to be applied * @returns OK or FAIL */ int setPatternMask(uint64_t mask); /** - * Gets the mask applied to every pattern + * Gets the mask applied to every pattern (CTB/ Moench) * @returns mask set */ uint64_t getPatternMask(); /** - * Selects the bits that the mask will be applied to for every pattern + * Selects the bits that the mask will be applied to for every pattern (CTB/ Moench) * @param mask mask to select bits * @returns OK or FAIL */ int setPatternBitMask(uint64_t mask); /** - * Gets the bits that the mask will be applied to for every pattern + * Gets the bits that the mask will be applied to for every pattern (CTB/ Moench) * @returns mask of bits selected */ uint64_t getPatternBitMask(); diff --git a/slsDetectorSoftware/src/multiSlsDetector.cpp b/slsDetectorSoftware/src/multiSlsDetector.cpp index 11a819bd8..ca6d6d2f6 100755 --- a/slsDetectorSoftware/src/multiSlsDetector.cpp +++ b/slsDetectorSoftware/src/multiSlsDetector.cpp @@ -3591,6 +3591,28 @@ int multiSlsDetector::setPattern(const std::string &fname, int detPos) { } } +uint64_t multiSlsDetector::setPatternIOControl(uint64_t word, int detPos) { + // single + if (detPos >= 0) { + return detectors[detPos]->setPatternIOControl(word); + } + + // multi + auto r = parallelCall(&slsDetector::setPatternIOControl, word); + return sls::minusOneIfDifferent(r); +} + +uint64_t multiSlsDetector::setPatternClockControl(uint64_t word, int detPos) { + // single + if (detPos >= 0) { + return detectors[detPos]->setPatternClockControl(word); + } + + // multi + auto r = parallelCall(&slsDetector::setPatternClockControl, word); + return sls::minusOneIfDifferent(r); +} + uint64_t multiSlsDetector::setPatternWord(int addr, uint64_t word, int detPos) { // single if (detPos >= 0) { @@ -3602,25 +3624,24 @@ uint64_t multiSlsDetector::setPatternWord(int addr, uint64_t word, int detPos) { return sls::minusOneIfDifferent(r); } -int multiSlsDetector::setPatternLoops(uint64_t level, uint64_t start, uint64_t stop, uint64_t n, int detPos) { +void multiSlsDetector::setPatternLoops(int level, int start, int stop, int n, int detPos) { // single if (detPos >= 0) { - return detectors[detPos]->setPatternLoops(level, start, stop, n); + detectors[detPos]->setPatternLoops(level, start, stop, n); } // multi - std::vector r; - for (auto &d : detectors) { - r.push_back(d->setPatternLoops(level, start, stop, n)); - } - return sls::allEqualTo(r, static_cast(OK)) ? OK : FAIL; + parallelCall(&slsDetector::setPatternLoops, level, start, stop, n); } -std::array multiSlsDetector::getPatternLoops(uint64_t level, int detPos){ - if (detPos >= 0) - return detectors[detPos]->getPatternLoops(level); - - auto r = parallelCall(&slsDetector::getPatternLoops, level); +std::array multiSlsDetector::getPatternLoops(int level, int detPos) { + // single + if (detPos >= 0) { + return detectors[detPos]->setPatternLoops(level, -1, -1, -1); + } + + // multi + auto r = parallelCall(&slsDetector::setPatternLoops, level, -1, -1, -1); return sls::minusOneIfDifferent(r); } diff --git a/slsDetectorSoftware/src/slsDetector.cpp b/slsDetectorSoftware/src/slsDetector.cpp index 6d60ebe30..d1c482c39 100755 --- a/slsDetectorSoftware/src/slsDetector.cpp +++ b/slsDetectorSoftware/src/slsDetector.cpp @@ -4477,11 +4477,46 @@ int slsDetector::setPattern(const std::string &fname) { return addr; } -uint64_t slsDetector::setPatternWord(uint64_t addr, uint64_t word) { - int fnum = F_SET_PATTERN; +uint64_t slsDetector::setPatternIOControl(uint64_t word) { + int fnum = F_SET_PATTERN_IO_CONTROL; int ret = FAIL; - uint64_t mode = 0; // sets word - uint64_t args[]{mode, addr, word}; + uint64_t arg = word; + uint64_t retval = -1; + FILE_LOG(logDEBUG1) << "Setting Pattern IO Control, word: 0x" << std::hex << word << std::dec; + if (detector_shm()->onlineFlag == ONLINE_FLAG) { + auto client = DetectorSocket(detector_shm()->hostname, + detector_shm()->controlPort); + ret = client.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval)); + FILE_LOG(logDEBUG1) << "Set Pattern IO Control: " << retval; + } + if (ret == FORCE_UPDATE) { + updateDetector(); + } + return retval; +} + +uint64_t slsDetector::setPatternClockControl(uint64_t word) { + int fnum = F_SET_PATTERN_CLOCK_CONTROL; + int ret = FAIL; + uint64_t arg = word; + uint64_t retval = -1; + FILE_LOG(logDEBUG1) << "Setting Pattern Clock Control, word: 0x" << std::hex << word << std::dec; + if (detector_shm()->onlineFlag == ONLINE_FLAG) { + auto client = DetectorSocket(detector_shm()->hostname, + detector_shm()->controlPort); + ret = client.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval)); + FILE_LOG(logDEBUG1) << "Set Pattern Clock Control: " << retval; + } + if (ret == FORCE_UPDATE) { + updateDetector(); + } + return retval; +} + +uint64_t slsDetector::setPatternWord(int addr, uint64_t word) { + int fnum = F_SET_PATTERN_WORD; + int ret = FAIL; + uint64_t args[]{static_cast(addr), word}; uint64_t retval = -1; FILE_LOG(logDEBUG1) << "Setting Pattern word, addr: 0x" << std::hex << addr << ", word: 0x" << word << std::dec; @@ -4498,16 +4533,15 @@ uint64_t slsDetector::setPatternWord(uint64_t addr, uint64_t word) { return retval; } -int slsDetector::setPatternLoops(uint64_t level, uint64_t start, uint64_t stop, - uint64_t n) { - int fnum = F_SET_PATTERN; +std::array slsDetector::setPatternLoops(int level, int start, int stop, int n) { + int fnum = F_SET_PATTERN_LOOP; int ret = FAIL; - uint64_t mode = 1; // sets loop - uint64_t args[]{mode, level, start, stop, n}; + int args[]{level, start, stop, n}; int retvals[3]{}; + std::array r{}; FILE_LOG(logDEBUG1) << "Setting Pat Loops, level: " << level << ", start: " << start << ", stop: " << stop - << ", n: " << n; + << ", nloops: " << n; if (detector_shm()->onlineFlag == ONLINE_FLAG) { auto client = DetectorSocket(detector_shm()->hostname, @@ -4519,48 +4553,22 @@ int slsDetector::setPatternLoops(uint64_t level, uint64_t start, uint64_t stop, assert(start == retvals[0]); assert(stop == retvals[1]); assert(n == retvals[2]); + r[0] = retvals[0]; + r[1] = retvals[1]; + r[2] = retvals[2]; } if (ret == FORCE_UPDATE) { updateDetector(); } - return ret; -} - -std::array slsDetector::getPatternLoops(uint64_t level) { - int fnum = F_SET_PATTERN; - int ret = FAIL; - uint64_t mode = 1; // sets loop - uint64_t args[]{mode, level, static_cast(-1), - static_cast(-1), static_cast(-1)}; - int retvals[3]{}; - FILE_LOG(logDEBUG1) << "Setting Pat Loops, level: " << level - << ", start: " << -1 << ", stop: " << -1 - << ", n: " << -1; - - if (detector_shm()->onlineFlag == ONLINE_FLAG) { - auto client = DetectorSocket(detector_shm()->hostname, - detector_shm()->controlPort); - ret = client.sendCommandThenRead(fnum, args, sizeof(args), retvals, - sizeof(retvals)); - FILE_LOG(logDEBUG1) << "Get Pat Loops: " << retvals[0] << ", " - << retvals[1] << ", " << retvals[2]; - } - if (ret == FORCE_UPDATE) { - updateDetector(); - } - std::array r{}; - r[0] = retvals[0]; - r[1] = retvals[1]; - r[2] = retvals[2]; return r; } -int slsDetector::setPatternWaitAddr(uint64_t level, uint64_t addr) { - int fnum = F_SET_PATTERN; + +int slsDetector::setPatternWaitAddr(int level, int addr) { + int fnum = F_SET_PATTERN_WAIT_ADDR; int ret = FAIL; - uint64_t mode = 2; // sets loop int retval = -1; - std::array args{mode, level, addr}; + int args[]{level, addr}; FILE_LOG(logDEBUG1) << "Setting Pat Wait Addr, " "level: " << level << ", addr: 0x" << std::hex << addr @@ -4569,7 +4577,7 @@ int slsDetector::setPatternWaitAddr(uint64_t level, uint64_t addr) { if (detector_shm()->onlineFlag == ONLINE_FLAG) { auto client = DetectorSocket(detector_shm()->hostname, detector_shm()->controlPort); - ret = client.sendCommandThenRead(fnum, args.data(), sizeof(args), + ret = client.sendCommandThenRead(fnum, args, sizeof(args), &retval, sizeof(retval)); FILE_LOG(logDEBUG1) << "Set Pat Wait Addr: " << retval; } @@ -4579,18 +4587,17 @@ int slsDetector::setPatternWaitAddr(uint64_t level, uint64_t addr) { return retval; } -uint64_t slsDetector::setPatternWaitTime(uint64_t level, uint64_t t) { - int fnum = F_SET_PATTERN; +uint64_t slsDetector::setPatternWaitTime(int level, uint64_t t) { + int fnum = F_SET_PATTERN_WAIT_TIME; int ret = FAIL; - uint64_t mode = 3; // sets loop - uint64_t retval = -1; // TODO! is this what we want? - std::array args{mode, level, t}; + uint64_t retval = -1; + uint64_t args[]{static_cast(level), t}; FILE_LOG(logDEBUG1) << "Setting Pat Wait Time, level: " << level << ", t: " << t; if (detector_shm()->onlineFlag == ONLINE_FLAG) { auto client = DetectorSocket(detector_shm()->hostname, detector_shm()->controlPort); - ret = client.sendCommandThenRead(fnum, args.data(), sizeof(args), + ret = client.sendCommandThenRead(fnum, args, sizeof(args), &retval, sizeof(retval)); FILE_LOG(logDEBUG1) << "Set Pat Wait Time: " << retval; } diff --git a/slsDetectorSoftware/src/slsDetectorCommand.cpp b/slsDetectorSoftware/src/slsDetectorCommand.cpp index 7cd5fcbb3..400af1954 100755 --- a/slsDetectorSoftware/src/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/src/slsDetectorCommand.cpp @@ -5257,10 +5257,10 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i else return std::string("Could not scan value (hexadecimal fomat) ") + std::string(args[1]); - myDet->setPatternWord(-1, word, detPos); + myDet->setPatternIOControl(word, detPos); } - os << std::hex << myDet->setPatternWord(-1, -1, detPos) << std::dec; + os << std::hex << myDet->setPatternIOControl(-1, detPos) << std::dec; } else if (cmd == "patclkctrl") { //get word from stdin @@ -5271,10 +5271,10 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i else return std::string("Could not scan value (hexadecimal fomat) ") + std::string(args[1]); - myDet->setPatternWord(-2, word, detPos); + myDet->setPatternClockControl(word, detPos); } - os << std::hex << myDet->setPatternWord(-2, -1, detPos) << std::dec; + os << std::hex << myDet->setPatternClockControl(-1, detPos) << std::dec; } else if (cmd == "patlimits") { //get start, stop from stdin @@ -5295,13 +5295,8 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(-1, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(-1, start, stop, n, detPos); auto r = myDet->getPatternLoops(-1, detPos); os << std::hex << r[0] << " " << r[1]; - // os << std::hex << start << " " << stop; // << " "<< std::dec << n ; } else if (cmd == "patloop0") { //get start, stop from stdin @@ -5323,11 +5318,6 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(0, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(0, start, stop, n, detPos); - // os << std::hex << start << " " << stop; // << " "<< std::dec << n ; auto r = myDet->getPatternLoops(0, detPos); os << std::hex << r[0] << " " << r[1]; @@ -5351,11 +5341,6 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(1, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(1, start, stop, n, detPos); - // os << std::hex << start << " " << stop; // << " "<< std::dec << n ; auto r = myDet->getPatternLoops(1, detPos); os << std::hex << r[0] << " " << r[1]; @@ -5379,11 +5364,6 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(2, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(2, start, stop, n, detPos); - // os << std::hex << start << " " << stop << std::dec; // << " "<< std::dec << n ; auto r = myDet->getPatternLoops(2, detPos); os << std::hex << r[0] << " " << r[1]; } else if (cmd == "patnloop0") { @@ -5400,11 +5380,6 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(0, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(0, start, stop, n, detPos); - // os << n; auto r = myDet->getPatternLoops(0, detPos); os << std::hex << r[2]; } else if (cmd == "patnloop1") { @@ -5422,11 +5397,6 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(1, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(1, start, stop, n, detPos); - // os << n; auto r = myDet->getPatternLoops(1, detPos); os << std::hex << r[2]; @@ -5445,11 +5415,6 @@ std::string slsDetectorCommand::cmdPattern(int narg, char *args[], int action, i myDet->setPatternLoops(2, start, stop, n, detPos); } - // start = -1; - // stop = -1; - // n = -1; - // myDet->setPatternLoops(2, start, stop, n, detPos); - // os << n; auto r = myDet->getPatternLoops(2, detPos); os << std::hex << r[2]; diff --git a/slsSupportLib/include/sls_detector_funcs.h b/slsSupportLib/include/sls_detector_funcs.h index 4179a1536..95ed11727 100755 --- a/slsSupportLib/include/sls_detector_funcs.h +++ b/slsSupportLib/include/sls_detector_funcs.h @@ -47,7 +47,12 @@ enum detFuncs{ F_RESET_COUNTER_BLOCK, /**< resets the counter block memory for gotthard */ F_ENABLE_TEN_GIGA, /**< enable 10Gbe */ F_SET_ALL_TRIMBITS, /** < set all trimbits to this value */ - F_SET_PATTERN, /** < loads a pattern */ + F_SET_PATTERN_IO_CONTROL, /** < set pattern i/o control */ + F_SET_PATTERN_CLOCK_CONTROL, /** < set pattern clock control */ + F_SET_PATTERN_WORD, /** < sets pattern word */ + F_SET_PATTERN_LOOP, /** < sets pattern loop */ + F_SET_PATTERN_WAIT_ADDR, /** < sets pattern wait addr */ + F_SET_PATTERN_WAIT_TIME, /** < sets pattern wait time */ F_SET_PATTERN_MASK, /** < loads a pattern mask */ F_GET_PATTERN_MASK, /** < retrieves pattern mask */ F_SET_PATTERN_BIT_MASK, /** < loads bitmask for the pattern */ @@ -171,7 +176,12 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_RESET_COUNTER_BLOCK: return "F_RESET_COUNTER_BLOCK"; case F_ENABLE_TEN_GIGA: return "F_ENABLE_TEN_GIGA"; case F_SET_ALL_TRIMBITS: return "F_SET_ALL_TRIMBITS"; - case F_SET_PATTERN: return "F_SET_PATTERN"; + case F_SET_PATTERN_IO_CONTROL: return "F_SET_PATTERN_IO_CONTROL"; + case F_SET_PATTERN_CLOCK_CONTROL: return "F_SET_PATTERN_CLOCK_CONTROL"; + case F_SET_PATTERN_WORD: return "F_SET_PATTERN_WORD"; + case F_SET_PATTERN_LOOP: return "F_SET_PATTERN_LOOP"; + case F_SET_PATTERN_WAIT_ADDR: return "F_SET_PATTERN_WAIT_ADDR"; + case F_SET_PATTERN_WAIT_TIME: return "F_SET_PATTERN_WAIT_TIME"; case F_SET_PATTERN_MASK: return "F_SET_PATTERN_MASK"; case F_GET_PATTERN_MASK: return "F_GET_PATTERN_MASK"; case F_SET_PATTERN_BIT_MASK: return "F_SET_PATTERN_BIT_MASK"; @@ -197,6 +207,9 @@ static const char* getFunctionNameFromEnum(enum detFuncs func) { case F_CHECK_VERSION: return "F_CHECK_VERSION"; case F_SOFTWARE_TRIGGER: return "F_SOFTWARE_TRIGGER"; case F_LED: return "F_LED"; + case F_DIGITAL_IO_DELAY: return "F_DIGITAL_IO_DELAY"; + case F_COPY_DET_SERVER: return "F_COPY_DET_SERVER"; + case F_REBOOT_CONTROLLER: return "F_REBOOT_CONTROLLER"; case NUM_DET_FUNCTIONS: return "NUM_DET_FUNCTIONS"; case RECEIVER_ENUM_START: return "RECEIVER_ENUM_START"; diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index b9644b57a..506553d47 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -6,5 +6,5 @@ #define APILIB 0x190405 #define APIRECEIVER 0x190405 #define APIGUI 0x190405 -#define APICTB 0x190412 #define APIEIGER 0x190412 +#define APICTB 0x190418