From 90a477213f7eb14568a205a32e3b131c36f4dbbd Mon Sep 17 00:00:00 2001 From: Aaron Date: Wed, 4 Jun 2025 22:49:55 -0400 Subject: [PATCH] updating bitplane --- build_linux64/libamscppimglib4.linux64.a | Bin 506096 -> 647658 bytes .../objstore/amscppimglib4_amsbitplane.o | Bin 4504 -> 128528 bytes include/amscppimglib4/amscppimglib4.hpp | 14 +- .../amscppimglib4_amsbitplane.cpp | 325 ++++++++++++++++++ 4 files changed, 333 insertions(+), 6 deletions(-) diff --git a/build_linux64/libamscppimglib4.linux64.a b/build_linux64/libamscppimglib4.linux64.a index 566fdb7365b0ee134d0d57b0b22c97779180064e..ba572545520d3342402d039706effcb49e7b7894 100644 GIT binary patch delta 49906 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 E2lt|TfdBvi delta 4499 zcmeHKUr19?7(d_LuG_s%o5Qv#xs42ch;+mKvjxqP=s_eXP$I)#dPz{|wY*YL;X?(2 zpNNz}ScH(YVlNegC_*amAuy5%sSta}5r#o%-`UQ^B?)dUMz9Y)&iQ`7?>pyr&v)(} zTYOf(lyqGWYk}r)(C^{atukh4VeD%wW63KFpmOVOTVRlrYq=KYsZPsDb)Gh-y|vtq zEpGy}9Q&3p0mc3o_5%K={WsLivA=q~lNqvcEt}+jkgH{-Hva;&?2aq%0<uc&I8pV1*W_l50h4hi297G387btZ zk6kq9G&}@{CNoQlT&FQjGwTLCMzM_wb!!uoSDWCU1+M3v6#1((>T5IXdSOr~L#B24 z;v17)0>3AU--ClUAwkP-K4+=ME-V>BLcy4-|8~ z34uQqcn!t$aQG+$6;hLw5+g;$cq}#6;OiDJWAY2!!RJa$1g6!ApNIK*#)r{ z?^h|qsjy_PE~ojgwX~fT+Bv_C?!-p^fzTv)YctiCX4F@Tiy+pIa^9Z7cV_SohJBoO zX7I}yJncVDJe1-$AJk%Xn`~9}9(L2c?K9dB3{WjME{nT<_Tx0?rsMhQMDlFe#(Am4d5#DVWWy9^^D3Q=FcrKv|K~o2}qlm*Pe>099s78oGhLgYN=w4h!R_BQPHLqYgB53P>o7$R37=AGjnF{x%bZO-UaN_=l}WN z4`gP)Gv{T_oH;Xh?%kamBSjZw^yuNJtA}%e<9<@8xs_J;Hz%4b1(Fy#+{^iaz8f%GuS9}a0>%4b7*1m%x}^eD>rgY;<19|P&J zlB*1|ru-?Co(kz{lpjLr>5!g5`Js@W zN%^xN9Y*=HAw1D!XDLt3c^B_H+@?WL&0!Y6``9es? zQ2s(l$5MVAq!G$r1nI?;k3u@0@)IDvgz`m@7E^vAq?b~@1k%eWKZ(-GkWQieR7fwU z{1udzLi%;eUrFgzkWQogbV$EJ`52@#C|^eDOiIfkt)P4y(pi+B4QVCit0=vi(rX}{ zL;1OoR#UzPQVcKf&$$-<)KPvOr1g|2;8Plk(R?x{&gVAiaU|H$u9Y z@;5! z`ZDETfpjb7U#0XlNdHXvc1Zt1`M*;7I;7hu{|2Ogqx_qYc2NE;O5cX`9m;Qq^zW2^ z7t()Fz7x_Nlz$J>os{1N=|3s|KBON|z6;V1DgP0qA5(rer2nG)Cy@S|^4*YrO8L(q z{hac9ApIZ8e*x)U$~ze_-ta$+xeQ7(DeXyVFG_n;dJv^qlpaj!A(S3UX&*=rga04* zJ@K=t(Zt`QiACMf=14cL0USr<3VW(-bW>rL%uf}SqKT4htP)*T(o>{~lKw5zpVhpY zc4aGm(dNRe=&h~wr;B>@K@#JK#3r1qg*;b?L5r3bIQJaj-Wg3abO6&%t#Rijt#PNz zY-%S~B8@vqWBlA-;O9j;>K9Pn*4Dn!4T;Ehuq6N7fre;yMn|?c^b^^_o}(ij4Oz{R-8<%i z<25bX?$q~gTGSz(Sh%Pfk@|ynUgh`5NqGR~wTq}xhV1(Rd(f`$W08*N@@VtXsAV+q zn&y!J7i(J7?KJd-Chdg_iEwq_T-?z-bvy9wzS?PS=(xPOVf*D*J7a!}492X(zc?oW zFA5J$8*_w0)QuP82RRsNz~W$RUgRNS*^O3!xFB-=P?Xklajlyne%oTv>wnc-b8e&{RucB!a&w!14w1I_tZ0Y;Bvm~;& z@8glZ(><|+WF*>_M7C{;;0=hBHP)3?AY|n;S*IqIwE?7TTavN!AmAtaZjV=HccNi; zVk!g^=w%8hLg6k{csD7`W(A0F|D6;n?oundz|Ovw8f&P~omjLw(Xc9-n7T5WC|*7; z5xHwzqPV3wau;-73-nqd(%KwZ6)i_gwMM@m{r49DwKYdpAIcsfqAsN4L+|!exHKu4go<&NN6wA>ueU{ z#pq0IfRavV7~ox4Rq%#s5b+L)1F@Li(a)mI#h@;6kpo#Sf6NE2k~kRPF1U6#H|s_)HTh8Juwbq zw1k1VPDaZuDq3RbYZt3%Sh+;|PQ-xO-W*vE^_!=*Qv`(&xK2dS^%z0d>j>H|A}B^a znBT$AA^7h6x{&P1AljyaC`RZt&47a6M+Ay-6hEw?xdBT>=!Dt-8Ngw#Xp8p1sdBXl zl5H3y+hFn8x$sB0aMtVl$YHa_P7!nssZC5le z+I)q)NwM9Y>^u=CxM<>8Bv$%G6K)pa=ILw|i)|dD+UTJ|-Le7M(i|1K_|%p~t_NV# zwnUfVja9=InU`&W7=>->9H01fe4;Cwcs|l^=_ zI>Qjm!QGKW*OJKgifD7sQ-+A~5$VpuKm#j2h*^+|;n=C8?y}Skc6qPrUY{di`XM@HVWxLflzNM8U8TNhrjami` zqUZ@MpmDI{gUvWssM^#85qT=Mpr5dWxdmd=KrDW{qN6wTy{i>8m-}x0AYF14{DBMa zg67A|>uc)HJvUYytBB7kYnW3XE32)IS67Jg9*3U+@u*@F?5@7r19E%!_Beb1q~}bA z{pg1dFmmk19>wjwozBc&PxN+v-m4enKkO}q9=o(h@vdIZ;>=zz_Hs7#>;?H-sR(t# z|Hr(I>NIEcdLzSmBBR&hOy~2AlZD2|ti+Pv_2{)U1GYnZJ(l786icA&ho|&7{;?io zVRt*D*Ots4H)TS-_cIUa&U9|;30b^l$BQH!`llYfV5|0HYBs`${;WqY*s1;_gG6n0 zD`oNpZ~@ng489VgT(b{&>zFIXTs~&%m?=1QHG&r|2iI+Z<;fDbm0MhtxU~_wyeP4( z7834vZF#MmBCD~j(PgkUQ0{lrqLy!iuiQ9yQv~6}4$2I2y zg4|tX2)OTJ^)cGqA3lN_YJ)Vpx#2;$MT{gqj3mIp|B~1=X7AP=MX-e{{5%nX(g(#7 z3HFI5!afmxZtCuLV-~3RV6(Hc*E;lNiAT#}dPT+cUJa?b^AwN~ETvHkWw5GBL{>FV zT?O1nZ&>&e(d~E&c!R=VKdJC|9D=U?;}e_UquaW~t(DkzuL;H{HUh%UG(Pd1p5dQ= zItyfo#^R#n*4OKYLdbd$+OZ0Iu&8+%vMf$O5P1piYl{+}L=$hy>P;K7&CN>m4>YOo z(viSMnIqp!2dhA^@?EVEr(ko%KM`wj#f?m z9ok5JFjL3?3}xP~?7Q^q*ox_^rDMomgw-DGP`JT!?9TIXEQyYS0gs}dSJH|S@9aEC zEgAW!aF>j-Hx>8f}JwwHEFi)QIZujwpcF z@)3of)reZlMik<5%z#2{LxvT}7GwC3BjjDxcV-oFbokWkyR=G-4%svq9j2yv zN5^_OI(&>4!sw9gl%vDWM~x0k4Lv%HZB$i=0Nit+Ds4f;FdA5C3<>W^qKBVxhdEk6}OQfLO%;jN1|pT zZrp&GV`pTap7nY_J=LN1Mn}WboqI5Bp23w;_vFxy1a54C@_IP#Eb!Ds2H!;n0|hLW z!(Gv5Ix^vI-bcyTptyigx^S8;ZXi=@Sr_pyGGIu%!L29}SyBXx4G@|gl?x8Y_J^!t z(E%kuOfhd$q*cVh=EzEg$)K>@{fLvWj(&0yUZP4tgq(yu^YRQBu2Jv2EcO6=^YX^0 zb3r)G#+zUP1@kYG7Bvf|MTt*~5+4;M-j61pLLqt{#vl}J{bESV0Q~k^*GgwBZ z>QTA>!g>^zNW4d3eZ*H;*x!ql(V)Md9>RL5IPqz5qN^yeqbTuqH1Rj+8eD*q9YnYA z1!;7@x&`Gzx3~h*>z1aCm28b*j$O(%`2B&pkJOJVyV*lb%x8mM4!`>Z3i!w+Z;k6#=5y0K2H-vyAU;QQQk;0bV>ya%+!{Y*}!Ohkhu~kB+p@ zKM3C+!g~ia+b!s=?XbDoS~uKNJAok+gcN3heOj4)aP=5XT$r_EqEHaZu--CyQ0z`D z3D}ku9Hw@#kPUkkU~t|llmjcNKF^^#kcTH)xC;v+VHx@->B$}fECt1CK`~5$26qR@ zNCE-{ni&BiC(0S}dn%w@E2NM!TT!y{l6hEbdF(Zp1Uzr|}H0aqDG2Tw`F=7erv_KM&U)`h9ijV4cElQ`oLsoDZo+9!cawMG(s!IGd#7n*fpHd*F&_t(c=at9roo>0{2LdL zdQez9%@ovwo*dDLTcPf;lS=7x&}o&qfn}6}E+a zPO$*)1D~|vJ#~fuxTN?7!m_EYu!3u6zKovN0|1KPYK*`uNOebgxB)W%aE^$_auD*S zcDlDva(`KdwxA7hjEMR8XyAkMF&|VkNhL9Aq8J0LkO&W!$iS*Av^4Jj9xHoe*z`8g zp})s}DMHB`b?x~38KK11mM=u9+x94gsFtWD2BDXLe(sBsN>{Kh*Z_vV>Z?S53IW;% zKq})G^IDH#la-p*L9)J#aa|ax`ohLbv}pr`h$BIdy)VP)($aYk6mUN`^nf<=mk?iC zz`i_y*aHR_)1BtIQ!=B`bimi1O}lcTd9Z`veN3|sR^@p0r3Da-E)_W7`363wS%$r* zLxWt`7@l!xi-HswE|G5co|LZ_;LS9ANJ37b*#>o&qb?f~7(5O|7kGtcaBk{9;|_} z1)O1$!Fxz9MebbneY_Q)Ac(!q<1~+xa9?Y_oCD<=6h|6vN|BDtGvqU?9Iz5732XiY zya$sg-U6~9l`WDJ5frKDflC3_etaae1@_G3c7R&+=D?E4Z439IN)WaVgslN#t3cRF zSkW(s6+O%zxOWBn5MoA*Eam}C>~TzA2StmOB2up<>Z7~s)uJF7%$K_#abIJl`w@3N zKm*lryRyXdAKYw!=RZY>4~r7-@wF~YlR&TzmZUk5g8IrJu*4MG@_I>$O=0^?v>dU_ zu%@vK^xcX->n&4NPY4A2$q=oG`FyA!Q5Hh2Hq$*7w>Uf^fhoQXG+`D)18R%O)wZ^S z><{Q!X%@Cer0s%c0rT~Tv{luE9)}xW^dMag&4(M}p0@>H7A@3U+In;+ja*)H@h5+D z%i^(Jjp{)lJ`} zHH%5{7Q+DTvBee4M_7Tae`Sa21tyN%eeGPn2dFy^_+kGJfRy#GF1D_O&}hCG?cEXZ z_M~($7#Hpgrre%7){Q(SO4n-1OVuNNv}Zdg2tJA%QN^tgu^<#pZ-;iSQ=TD5gKoAQ z4NzMutF}wEEr1m6gG%wc7Qj|T5?$P;p15>}rK;njkv_Uu44kI(6df*u~Q5XAH~WTiE#iSmX$q|q!P1nq_) z#Adf#9VT4=P;o+e8ChH|2*8FuU-H=$P3Ey{w&)6BD%o|6-a4gD$0=MZEgb}mrW^z| z({=YlMYtCz#V+npHCQovhj)SnN6yjiAr=d`U@+}IXq)^8yc_k`4fg3TZ;7~fr|u)} z=fE2JM7KumYq@c@S=d_}n29IrW?8N4c^?(b%9z5a#T_shLfAO4F@A$58@|{eR(+lL zRkntA@ts|**#YziyT-~Nv{W70d>)TC%))OyKJUBB7nU7q(e~rcthTpeW|V~w~}6NcK6z)1IW1JiF`^A7TB=v z?}mV26^0BSZ%*w@+tZLZ`lEC0W0-~-w5e3V7SD8u&* z0?%;6J&u*bYmM8T*t_f8k2suIXM2Yc4WH#{4OlI2T z+>)0DO!ei-3OOWP%Zjd`5z-9r+^+z$uT)+?uDJj{u2LV1nuowgJw#+5=^-NeNRJTc zqvqlj5!~a%m$+D0MQOU^uT*;s($v~tNwjo8Q)|DJHL_FI$VyQo`E=COnv;UQsdYfg z8mU{l|LtgM?U_Q4U`vB8`(KNAR>v2Q9eZxhkf}2ps_Pqa^74j_7?yihUW53UcSC;u zu-p-+6D-K^cZ2XfJAAe0;)zr7XN+1A%Y^@U;rCGR>haA@1NC<}j=YXD&Q zAFm_vPvr3IZ)J=l^q-mrvE@1Mq!2 zxbXKA-SW-4{Cp~Z*i-%^T|SM-`djhGq?1>3Znf~ zUhd(4rKaCTW7ym7=_l zc>mEH??wQB@ogqZZ-agntdx$$w`YE*=dxZ)dp8}F`AUyr*%{9db245RieYTS->kz6 z{mDaj$#*iB^<3Jksdr{pCe+3@w2%%%kwEdE>9%nVm78pk10<#7)0aWsBP$~+m|&fS zR43}MbE7M#e{U#+%NF|!sJsO$DLpg3Ef`=sN~wG>FTcv=-fV9`fv}G599Q4mwo_F^l+Vqf0X=h$a3u0jiO^< z{s({Z^by3T%&ZJiF$e0YaaRF(PrVH35NL}fBx@k#wJe$o(Du3H_Xj1heZ~{RvXw8i z6TdS!zcQ(N4q%IkAC`M`Vs!=_jKuK!toTQ@A7ihaVja}0jrhC;c@H1%r+;v5T1z}_ zecD3hHlJ8S<)(I_9k)>VsgTz?Pj}^aQTbWCyu!6h_90jRzpIIVc$?pHd5oYs=kPk! zZut}{AH~b(%JLzA)l>Nu)VERej+cIOE@tGJ5rQ8ha#bQ z%p?CCDnA=5DSOB%NvvB7seC0b=WV&oZOa_0JCfI(GOhieq#SixLNZqRWmx(!_b{jkmrY&?mD_AsOXapcYN7Hn6ry|}Lk2?Z zgEds%pO;_i`p6b4kMr`3X`(_7U|m!`o0ng_G_$E^hPZRW@!9WiER?@Lu61Dc$n53L zafMWOC=w`r*?MILmD}vKI7#_nV7ZdYw{re^-IURa4MV%MCE2REP?bwrq2g(>gzcqyOg!YSa z*AC}XxlPAuRBr2wg(=EcP;j!p&ibodZu{}%ZsSoW~VtR=$ED_U!9_Sa|-#pQqcGL z3N!*PTl>yTQjR`XMCHFhCTeVQpS#cXxkjoxh}ZqPTfRI+`MMP4?J3H;sod7q{$lay zI5zzXQk0jbC~r(rzC1HI!`;~J(1!?B%sT>$?P?cb1_qX83S?~cC`~(Yrq6N>f;Dapq$rk(+3x28vA7a5zx8Or9 z_*oYGYzv-e!G~M$krw6BRTNfvyv1)plcudv{y7W_&Jew78EZoy*~9G^@FuS{pA1uwVYaSJ}%f>&Aa zt1b977JRM+ud(3QT5vpTD|lr(4HkU91#h(A*IDrEE%+h}exn7y$$~do@LMhTw=HKGZy?=3;vu1-(E)q=lf!P_nPUoH6S7W@qh{-y3UU2_n z!FyV8Jb5;FWjc5gZScx;@MPNHmFeI~wZSXXIoN{ZNw&c&)4`K%z1OeAN3ewNk~=eM z_rxu17ukbcfO1C&3#(lfxA=U4AM65@n;~#|>4BAgU*Pmo0K*>>cwdIdtQ?_gcg8K2 zJx&i(T-Z5JSb#QJ8GeJnY4efccL|&}P89FQi6@wzvg-w&@4@iHMuDFbz)$Xt zP+Uh+Mr8D0=R{Xx_(3*a9Kd}aVI5bw*y1Ncn>pB=#E`*)QA{2!wJ z)dBphLlK%2z-I}3ZUAo)cy$1OT;MeU{6m4)2JpdR!}Zz#K2hLx0lY!r^8)w}1zsP( zHwe5TfbS6af&d;7A?dmReh=V-*naqtR0H4p8pQU)>G7tsPT(6g9~D_PTksBnKd0*t zq1=Z8-=uNn!G}PI3`RZpP7mONoFJc}0)IjC$)Vg>3!f=~AIY8z6jA-T7W`X;t9sv{ z`uAG+KWwT0G~qubdbOjyjqn>pT$JbBW0lV>{BvQdK>huEiV0sV<`c(xnB-Jh@LLH# zRm642`2p3xpYT?~e@FQ505|muzWZgu-?HHUvfx933AU?L#AC-PC%I9=*AuQrNSyFo z5qIf3LqM~b@R>dw-|a&Fclq$g34h*)zeIR9;R8vZ_Xs~u#A(M-IKI<`{Ldr&3#y+> z_-GMd;hit)pHjl3A}%_P+WEbS@DdTvT>KHjOGUhK`MgB&VhJlRw%z$x* z*LImWX8=AhqYw2i@F)Btz@ce@E6;*YCH~{UPw`qS6K6i)gBnpi$TJTI*0uFLs*7d<$ z;uVh-)qN zZ?)jd1RwV~U6eHVg{A)UqW(VudVVhOcLVr^$D*E{0lY=vJ2YNKYn+CGvrOPYKYT#o?sLq`i1I~&f1vq{rraT4L4AVtM+!V> z&#w#oL(NC^?>z$lNaMpO_pHEoYy33I?G*UGG>+fd!7B$A41=71%Mb9kf^wG&Ttz9@ zPwoWVzHi2r23O?(~^^?MLCefI`v-V=DR-_L?uqe1L> z-&@50UV-=0d{jSf7Whu8<;Ih@1s?Q=oD-0L&>xBg?mjnE{?jaQHG4RYYVT@+yUz_z zB@NmI?mjm>i}2%5M7f7+{go$ODscC?;W>yIM*8Nf|;e#L^nWx+ob{68hG z?mT-i3@8)-9KZ)T!TJRP|6KD?ezFSifzF*;{~=W4Q&Hc2?zxHZ%X7?fs{tS6{14S~ z?f<&KkJ0?kqZ)$;n(N;o@V!Ak0uTDvKSd`43Jrv&ak zw}oj}T>ldIDZ0MWf5a)s|7491{PX_9QV1fT6e_+?mib*?P?QvRO_SgbIwFQLHpb$ zaQAufR?`3P0(YMmD?Z18;|+4o)%=y;eof#LHLmom6nKfoqs0Ha0{^PUVY(OB9{@M` z^9L3@3mkZmGfDGN`kW>3$r@Mv^02_CYJ5G({ind)=g|WRKM@>bkQ3~$1p+VCe3YNB z7xW92t20o+ll}AdB~?s;{yr5Uf{w0eNEsq zb^XJs{;+)HQ?Btc#RqUxzch*Zab5ors{g#eXKP&f!#@QcwEu|VC^u;TxWKD4pT5NZ zQGo~T-zD&%{ZAf&{IAx0jwC)YfnTF>W&fWE+fYwwHjCb_@2P$Xbj2s~)#>jfUP+cN@h(EODhvSA@K$eFM4D@o7G z1s=4+y#jC4^}j~-4=q4G?(_Wy!p8~xdR-rev$(1S9<;;H1Rk`*R)H_ld_WCxeJ1c5 zHLm!N9Bppb^#Z?1*H`WRxxkw=uK2VIJlL)y&PD#gcAY2iTQwgDr{bC^@Sy%n1Rm7? zS%H6B^HJ^HA@GF8m7iq8!fcQeY}Z(U2irAQ;6Xj_5_off|C0g_>hqSsgZgBhkNO1p zoDKLuM?OVD!}OQtac&d!Z`X1mOo{7Vf#0EV2&dw@@T3;aG^U&*}$27-ytj{rBt&*uRj==@Ogxq|c`SZJ}(*gV*fjjv;O=`Js{TRakC0(al*Q217XyYF=ik$+bJj|==GjVpb=BXIY<4kh=G0{=wUSNInK?+)O@E=9SY1@P$tci-z!d=dix zB2fQV0(al*PX)1nl~luS4Mu{HS+%ZEe-u*>kF9j)<|J_#OtZ z6T4FU_IFXV@F2jqaqp`r-8iu*yZu^`kK1f%(8j$@g=&-dO@M=vZuabwjMYu`zFWb$mgrY|fmT@-pxPvpwkt@u7+Md-#fpc9t}LDBt`; z^Ho?J9DFM|IgW5Bk+U$<`i(iH0*5jGIk(=$Kr5I0r(xWbSU=-xPkq61h?1oW0Ujc@dQ!>kX$wS zLg;fS7#o8e{NtLKx+-*^Ltn67ASbqKX|ve~afpLQ-^n9<7V{qn;kGz8HaS!F$&dwS6A8o)H>!xCcp_Gm2NLj zs+s@|7Ck%yg9`i$2KD;9+*lM28Icn&noyo3LKZBVnTy>KnRE%b8pR`@Z9uLe)&;Ev z!^s`0L8(CkC7TuvepAZ!8V3tH5Vn3Kj&jpfW^1*Po6;kR4f4VEKGUaZ_q<3I$pOv9 zl0Mab}l^O(C_@D4HHXK0L)0L|f~ zJ^>?fkjoZ;e?wJ6T<}U8kwklcO}CjI^?f>w0v$*NuBn&VNL$x>tBtZ$JMc#z?awO4 zolf|%M#K?<-#M|^ysB@;WA!z$s_Odq?0DT=7`@dC=9YMGcqZ3-5dpt-K+F2F@@rz{mDj}Z zCJiG@;J_%QV6cF+3>1*I6=kxu!EzfRh=Q0ZZ%_hMqw3;lQ#eaXsd*0F`?6bHal}=u zyr%X#@bW6S#Q9U0QAD1@u)xrEfuPN$Hf4a&T2?kW2~#MPgclcGdf}L&*rgX;G&wRQ zHf79(MG>4&C)b}-T?4muH4ETFb=h1{uYNQkv3k`A)$;ri`UYIIye>Yws-`*y_xaR( zYim!As+x^7)fefa`&J$`6f4C~n{dKk`{Q&rn&W*De< zow=SzFmwdm15-sf>doW65lhz=%xjn_wtS%Z(8J@d7*-dbH4JX88yjP_@w$06)n#+4 z>aUB<&vjx`s~1#NSHvd8=QYfYDZ;Y2Wz)h`hD+1;u z*o6>_Y*_GB!5lcp-GvDB_ejwpt{jgdqhv2wN=FLQCo8w+BtYhJNQ z5@;gK25IhPsR_Zey`pA-^x5gTB&8lI(x)xMov%{M(CXMXxLiGw)RBB3T+XVgTToV4 zF@91>C9be0!8Df#bH&`6`SBRIeY`GST@G69n(jMfU!H7(2=VTUwn_k_gjExLi!Q~H}mzj(k zx3}vd+O|f1NjFu~4HtT_c*2E7L$EXK#!?6hwcVy8lScvSaU6`P!k=c4x@z9=STSs# z(ynk^Y@(6#r4|z+@}#56Xix=~P_Zes?k=?$5tHi+V&mfT>g#H*8(+enT!8=1pMsk% zli(o+Y{QG^A-JNq#(@!H!K)VZ)@pFOfmV@Q%Vo8-@#+c@Ka$26*l8|~#p}vonN(IE zLlSpim?rhH`DsT82ssqoU=5qzQMKlKDi}%OcHsAMQ#>!QDX#7`(LQi{R97F9O~H*8 zuaH=Zt$o}%n@>-@e54^C4n*8xUNt5?VMtZiU7h|=u!N`l5aEfd2L=p# zcDGp~#S?0P{h^Ud%^q!uV4C{T7BMHQu}P6Xoy5ns;U7Qh$2DWe=R+XnjBJlN19gI( z44h2QR3otbac47+uzl7#FQnGqDI#o~hp86E@Bw)^tKzA_$l(n*3Whm6UY0k^fr&3{ ztMc-2fg~SxOJ0-fN8pVa+^hw4iChYp;nr=6TCiUVGYrMHK(`y%!LE|)1nCcW;{?l} zRP&+lpZoT4$fuGScJSNy&=X@G1~3}KEspzuH`Ju5=I2nAJ+o#BgnoC)PV3}YSwo|E zKpX*v6~VQ0L`!-8S9x?Qsu^Q z=~%M>C)wHcm9W~btErQ7?d1C5AZPqs*eQnDTSRC%VWnP!6zIDjoJG}g+ukOaaAOrU zwpkcP+&SVAMP1n(+|7U$Z*~3nnc|_p)M(#k8ZkIh&oth50NgpteK|q+>X-a-LSFFY z1ka=)W~g9<0o$2ppF9`!~Gx-YTV|?cMNR2NsX?4nQ+(;efmHplya zXjXnqk74gU0EQ2GD-vV~S!n4g>V2`)V@z~X_%Y^x@gnJ4Hn4{PE1Pg{*=SAE7%H%G za@~NoN=yo-#gcBr(B`;;sf^Eo$0lMJ8`dqRw_WhIEE1U{Zp!Mt>fkuWH&I{&V|$pdTYMvR`eX}ILYVr3N- z@XUB#%`AQoUjmN^K#&|$xv{Z0<<&Km*RwhkV7UR+^kXVmGR&%ihj7)NVePr|zJx|w zIAy^hirsaFR5%~Ph+HkqgqN?%>gvj_i{Trva_vBkf^7j-2j7jQ0&rAVoy67a((VR< zT$0Gvj^Gg_md9F*ZGizYIxb!*h*ixRUplW2);&N`H7^EFOBYnZJ|W%6<68&gr@+n1 z$oXY+8t}FrUYe0x>hfh{d|{Staf1K)e8cx<8u-8gdoxYEL123`P5Y#Ip%Fe%85(35 zrNNK`F@f#Od*6J47wv)s@+Bbmmdku(|MhI1us??xucTQXqi z50znGOoPFeButKAVGTY7+b!ObO9ev!Ay>u!EZ^)NU zlfL;Y-QqyL`Rh6dKI)T0%Cjqv(Uutu%1%R0c$OHNhTIsY*7m< zRo}V`Tm{!%^UBNSl+}qx#jx;`i>>*QQLqNY_gLUYZ%hn=`zXs;b>D6#=SutSW=Y4p zJedoFA@&&x8Kg@-T-#{*c-y6To0cBdYc^0$ZL7E)o+vgtNECzPC*w- zw^Kq}EV(W88|^7nrFNsHA=;h1nwH6{O<_;#Ai{)w3~3x0>^X?{nZyBP9C-KPK=RI2 zkG2l{gCTr&R@Wfkj&qlD2U2-?Ke&(m>E8SD?=I|fFPhoyPv2QM?njTAIqr8qnc33g za(DuW_gnBy=CYYp^Yii{Kd&lQKBsKnJTZU67ei*%pw*{L{!*Moux2Bky%({M63xx^ zI*$E)1X~!9k0jw)E$(EwmasE&)o@>INP|4N9{Aj_s(OCSHSzHi@TpDFT=;hO+y z9R81hd$GuTSjy+e##dLw;XQwRLNk6s>AYIF`4)S*``Ut3f{W&k1O-N=RzN>t5BqRs zxcC-v>Syob36p-Hg$t6@o5zA{8qcvVmCv!X6kNW4`BGqc{~wTooBLmWTl5yE&CkUy z)IRqM-0srwNYWPgMxxy8g28~#Q6&XzAJ2o|K7gI$3H0z%?ipVScQCNk4qp-xyVUf4 zh~InNQ4cGZJo!!ibbS_9SW;`3nSRc^&laIaH?YwB(s=8!_9f`8N7$FZTaT+Rfwvw_ zUjlDEh7Kfe|HvWUI99Y1?#p-yY`m*4>>C4s9-2w^+`W$`_4jL%4EV5LkPtJc_lYWe z%^kieZ`3u}bAjRPxd8hTN766z!21&Hiyr~I!FSJXdqqi%1xjyePoa=LRU({ae&-KCc?-b7UnNK+Ca{`ll z1FO&Vxs%~spC2=v>+=G`xjx$&&hC^z$p9tfYs;v zJjQUY&l3#i`t+k8j79zf8UF!h?0xv+~I|I2E*0wog@AQ{8#k{LLM)~_riaL zpN1e@i0{Gw6yMMZto~t;#|!N+n&CqkelEkOGyFV;&tW*%=XwjSehDAt^7g709VQdWNqt3R9JoKGFY`M6%da6VqffPL{oJ99s;5~##4 zWOA=(_*jPD&2a9wuQHtb?Z*t~_BjQ3;)VK*WBf-joXf>LURa;&SxmU!o>#K^+z)SJ zcm(pQU%tn1uBZBCd%u6G^ZNXFfyE!jGMxKiDZ{zkN``YkY+yL|!`m3n`TU0A+<)2$ z_uK6qR-gOf=M3k3dNY6Het0OuxgYZQd@-~CV9~p>fAO>_)i1pMc!poV>K8G50>g6| z&iP!*a5x@ET-c9zs+5vDhT)emd;r5QV>lcWBrfE`@k<##iPfLZa9%&b@X4(Hl?>T~>7hVwXi7sGj+ypQ4B{!cUfDrk%H|Cbrg?f)Lbx&1$3IJbWevk$jFU(ay+V{F9B zZ+{&73g`7FGMw9=kN0U%N3|Z=ny5U*mmI{5-|?hoobE5vzw`8uD+dAdCn=fYmY`15(; zYKET=eDT70vzp;o2~^sRkJB*Yn#bF3F+LpU{=@k{#OiZ=EyMY|u!Z3@O#dAWuVwgd zhI2cg%#{5pnnKDPe4p4I35#pC4Fj6aX7 z*D;*id5HzThvDOxTt1)T9Hi{?EUVA$|02V={f9FA2F8cm|3-%Mc(|D1IgAgkjg>w; z9^x2RcrL5Y;~pG4CN3OzJWj?K-o*G^!*E{zn-=^IhTp>Y{Dk40&u1+)Bgm9 zCm4Pf!}<8-e$~wCb9^boxqU8VI2mTcULf+w|ABWZ(ukdcYNLZ9VYi|R-dm= zcs#kC)h}Z8TNqx>aPB{R9Nod{^L52{8P5IcPKI;4aXb7s`_^ZU~W8J|+dhx_ep3(n&|kB9uenB&VWeE7V;<+ic<4>3JE7|!D) z-@kg8)z5-FUKp?Vc<27Giq#)1YRmeMFr3$a)Pk>OI2`{dE|kmte=5Uy{H$O&x5GRO z{%wZi9y?Snwwqp2zre zzba%n_ba}y#oIN5)nCu}+tw{NviiJTd_C|q-=X}eZEh~>+}A4j@9Sud2au6nLgb9+&<4UKGRrzE|Uts*XKk)k8AAZm3+w6G?F7A8rTUFC6Fn zvW4;C{leSJ`{gB8pSPFSAIS9Q?d9=stA!75FSi@lpWE%vj1RXPug~pduN6jrl$%O_ z66>JI_u!Axo40Ex(?^vfw2R?k`23UAxAEbA@;=m8`g0ujDiyBmiT%=L!9Qg9Nu(&& z|A^tIG5lkO^K}TX&!2PQ9;wo&nDOED`F!^;R=>hhe-6VxVfC+PIOpHQ@PD)Vd>-s( z_&`?wQ-*Ut|BT@UmimPZ|D4q?VL0bs%J4m`K99G&ehsVtKdk-@4CnRvKJ6E*{@s@P zd|kJf)n9F?zn0;+2d?`4C5HE4IQLI{r$W`wVfFE}YlZXrc-pnXd3`+XTH(Ato_4M9 zF!k{iY*T$cA94P8I<~1ko{p{Xvst@1&c_Sq&&LaI*EGh5k(rw_w<{lgf}>vMg0{ln9&-`7$f6DNFtXJ&a7KK2=u^WuU5)sX#~zDUUd=$<#H2GKlw5Af$^ak9cp&W3rO+h#y3GOj;?A zxLVU9)PaBCLLC3=i*#0a5f$Y4a1~z)efVPfJi~`$pW&s-75`SkSNiJTKt^iy;iY7Z z4j;Z=8HxBQ{<&nN93MWD@IoJc7vVE}`16D>_Tk-xuk_)^Q75$e@bd`o@ZqCX=TN(` z82?8PMyokajt?(6MB;@$y!23s&+y^1`$)W*;U|*~v1BE~QSOYxWc^1N-d956ZyUq0 z{0&t6@22{nG92p_V{-luMSbqlHV2x)u z){nw}yeb)v_4^$mVCPzfWBn^7?6fc(>$g$;H4InxbV#y=;Z#*{>SDOE4HjgR{~~X7 z&x?32!}}pX*Jy^Lp6Y(7lHo_I%8*{maIF7rD!Yr}$FTZq8GbCow=!JCKrDWP;mH4f zqUmP%R|vzT2aOwSFV=q;LAVAm{5T1Tzvnajc!p17xSAudcp<~p9zNnL7=9uGbUnmy z)JMg)Eeu!p&PdY5@Eio_%BJy+?HZ^+NOKuJh~c9dj&e6r*$jrC%<3;@_+W;wWcVoz zZ)NzY4DVq0X$)7B1nNJ8;W-qa5LfreSX{{PGg$rc499kLP+29z)gC4mUCVH+ubyKq zW%!xI1C!MZKa1hNW;pWcLosd}!-ui@dl-H;!+TNO#r7hf6mp5f}A0?F=T_;AK&EyG7Jd@IA%8WM|lGhD?;#QV{_f$dVyED$eXcmV=*l`>pC zTen5Yp`o|0=_K(maNGs(S=19?bBsvHIf}UdZrThL2%* z3&SsD_!@?fW%w3`k7IZj!y^pOrui22zlhL z1XlkMhGYGFs=txpm$3TV8D7Njp0qB&b`>-HFoq+4d^UjB2!>CTkoY@=;g>SJp5Y}7 zzl-6QF?=n<)jbgwZ)NyoR)06cr!c%ftw*q3QyH$-HHcr%@CsJ{3Wndp@KT09$ndW- zd^5wdOUdr$W zhA(9Je1@-J_yUHnXLuvSw=w)WhO5Oc>hn#8=g=Y;akb}<#f1!C$m-8v_#%ccX7~*Z zU&(N_2ZF_|3}4LZcQE`WhC8$MA%?GE_`?j}!tkFkyo=$h7@qwV`2qERgyFdi|0%;u82%{37czV`!&fl;XAED@ z@Sih$8^a%C_#TF@VfcXKXZYg`-^TFY zFnkZg*D-v+@$v)e|67Ki&+sQ0K8@i|GJGM!*E4(t!=GaKdWQdw;oBJgG{g5Wyp`bt z2FMSn|1%7ChRwTfZhhHINbBolTB&ky0#Vtp`gmi#GYk)Mb%xEHH_s8kFmXm2{7gO` znI5aJfuDeab5r7Vb9FHsO zY+jrn(nN>6xfSsDtql5!-&sq}!`x!)A(FB>8eZ60|F+nqlB7Q_mal(Y%-hJ}Wpn49 zQ#E(?oT`~4^2n5M#&x_gUfxg-hr^1WNmW1Cg{O7FkAuPw-WT9+>{eYmB{qkS=Gq6Y z6DP;=@<2SCX;nL?tU4a4gu~e2=sWmDz9g(eSk&7qCi{Ah65qFOGg8^lGnLg1-Inxs z65XGK^V&Dr$*H5@$6aCI!HM8%7~l}F`cqXStI2-9(bMzce!wrFqa2xdT!hz+s>HEm z@awVX#2^R%BA%1xl-^7m)6Y^SQ);;D?gpDD9VyJ_22%Ua1}9Tzq^piE#L$q_HZuOC z7#`UOb`oR5Ybh@`k6U{J1-O7aDr~{*92M;_n8h$gdU>#eQikJsc=~Wp78xVPagkc~ zaQLaM&OeMPiVHe-OuUcEB0eH?Q)OargNc_|%8j2jm`z z6X6dKQ{y-}@F!q+ddGV-x_0qUY2EJz!wt4s%nCp&@<;{nVF=_moAsyJ3&885#EPYjK~vBBj&@-V>|&n4C2Fs%py z^Qt-@6i)<&k0bD(IBM1JylU|bhbZ7l3w7h|Klbh(@gRLF>51ZgIs0{ncfL8s?GH~p zaHO^#kJb)ox^FQeFAq;Ac2De9gG-+QVK^K#lKNNk;kPsuC!C4GoKXk|aA2ng8kVxF zjY|*somhD+h^N!hop70M3h$w!i6<tw&l>OXn<7Y{ zm3Tl&y5PkL&pq*19y{)_amt&%a4U^`Imwv<4qtoBmB#|(*@Q|9ICBGzQ1%{y?r&e} z$mPjX5+1GMk&F!Znn?Uw zcKBAo=|;GyoD+u=XAL1u+sS_OqJAvf(;MJ6Fv?wXnMOM(K1$yQ#OU~2m^9rp79$aN zR`!lI^z*7}pP%b{E*PiDj}7-*Fxd>BCxb{H9Q_~{0eTJYJxM%*qj6-6kH(4nc96JN zyHG*V9kH-x@XbtMXE@dwf?N%rLhN0!KtF-Sg@1$Mq5&A7@t6L+S^yKN3-EN4G_*f3vB1_#wkcYkXAS!-aQlUu1<*^uV^BTq3+dJF&<*-yZfqNo@pO29kob?Ja<*hJ^fqoqAJKr@QPsx}UgFVOvRd7#D0}OYA;dG?=k&*JK*Af^{ zbU1_Du)_OYy;a~_dickfJY7KjxIIMJlxJhBg#hRqJY|}1rHS8DhXErG7WZ~A(E8j6 z6fumDpmU39l5L|K)d-R)Wqh83)ILShoL|{5w)d<-*UxR;m4v&xnCdoLW9L5mP-#1#)7`BWtob;ZGaguXOC`zT6L_(gqo=OjX_6G{KpIsf` zhuh2Khgy>gPA#S)VXrV|J*s{0ZaOvP9LzMIs{e~Fb5`I_<4InANWBm zXzZn!E#-+eNJ58N2Q&>xF~muVl4$I3V%6!?a&`u)bXtl>GbxGay%v#P#npK$$(rix zl)!o1DQu$-M?n#El649Sbx2Bp0(a?=79O6%b7weFS1+t!azAkASNqjF@EhX)p?&vp zct)~p%>gl;dw<5Cz4-T~_oY+JoDYzhEX=LOVW%V?V80UYe4y)oS!X;OJA2>SW40Q0 z_I|d)&Y0b%eJMlRJ>h%*hq$>FDJ9s?u{KN~l@Y!3El#wyXl>`|D(OBr**8wfwM%tc zHQdZ4J0|;pv@4YkAy3S9S3#DOhi#Tf0n~BK-^VIy&HP~1;SeY zKPwQ|!2i(};)?Y@BhY_-u+c5`S*&Zz${&K|}@DtO`o_4?wefNp+k4rKdjzsOzX^%#JyK2~NRA*r( zj{)JHKj^(Y{Zem|fVK~>8yeK#?=!#MXr+}-`bMjJxV5kI0{gi8dkAaU1;*MEbr;8grC;8U^;2{{DF`i17^o|=(#Vwta$5Zi2;}CK`EA#j;xo$e60_POp zPMuy<8ONS_+k)*X`yXr>c)|+G`k;w%3h_iC$;N+rjO-iT>G6@9zKq8I=-6NmZDQ&^ zKFc#sp$)5I1EUS`0);T;zLBEw_Kgykg_TvXqnn|k~8rnZ_5 zjBYQs$eGI6HP)wR>aiWG&t8!WN>B5)KMxw@pOyyw8Uy`VY0#_hAanoOlt%m84Du0E?N+I+{aX$6FQh@=VW9tg z8uYt}p7$UAzP-|0r8fO{8|05pgWiFL=k{WOFAsFSjrN^SP5G|0#EK^2`!ZS;6{176(zC27zvG|0a!4fmlaFUQ;KlVXOM@QI81U22OoJYO zW7|((o(4Vs#<-upA`N={t!h7gJPrC02KrfP&=(r${|pMLep9Kf|B4Ls?P<`L8tCVz zp?`&eenA@awM5VTzcCH^Mg#qIY0xh==>L~A?6=fFkLUKPep9Kf|CSr{zcCH^l?M4Y zr9r>iAb)Wh^lJ_BZ%%{0)gT||L}fRX+U(b6kbi3$^ji(|-%5kN!$AMnH2i0mf&TS0 z=(`Q{cwVovn@Vl=>zN6{;NtOrX&Us|2KsHlPsvrOP5uA_J)X;}=u~Q>A42pze&Cu& z(W%r%pKGAUb6pjkN^SH72L10ygMOSr{>n7yiwyF=n+AQUfgaB%R_#`)t^E}S`Zv<( z|5^k6-_oF8XrN!7hW<+o^xsc|{w@Rkn`!8;&JEz>57*?%?kcs}f3-nAo5l&&S^bY0z&r$bT>m`gQ|-M;i9uZqWa&H0XC3tA+^xF;e zU1`v(^JuvLf0zdS9)tXk(xA`k1(o6A@;`>p#8#)a@!QWpkIxjs(&rfH|CI*)nFjh# z(x5Le&|ja1|BfU2ejpPse17?FNW->You|d^kLT=$rLQo^?@mL0qoMsBX~@5Y=z09X z^LoSTztkZA?`hC4H^|3xe#6RNX^{U;8uY6T^qpzYuQSl&xx-=g-)Nx6^NGXKZ!yq! zr9r>VK#%7ghn3$+^xS{&T;Z_vT?YAh{%~0OJqCI_?>H=dR&N~j-uQ{8t8FPKP-I#(ewVp^N_>R7aHU{5JSV#7a8dHrXj!7K#%7(hm~Jp zpvQBf!_wCp==Y>Sug+QH^T+3D&@VB_$8)#C>aWgg9F)G4f64v>ag^yiJto( zo^KnLeyu@1K9dSd-)fML=e35VZ!^fpbF{YT<@^-3k~#m{&!gV zB?fvtCp;|uT?YF8Y0$4U(Brw|Vdbwj(BnDbVd>Wy=TRv%LLyPJ3ATs6jrS z=N^{6gy{MD^JK&NH3yan06VnYkc$TRJB{eiIZ{I+11fkfJeCM`D)gXm&NObe!KKcj z#<>U2Ia2oMFG?NfR7g=iJ+2|taqgt^nlwNetjn)6;REvASNc4l747#mOv(2(U)1ID zODyyck^Xe-nkMn<{|yVhI^W7~2A`S^o+)V3|1}~Uq9x0WpB~@S7yaieSd5!>aOKKG z?B6{Hd4K{m$ocT&G%|Ka<$e*5JDZqoma z94SS;2c%^BmDY4V&w=DA4{Ew`{H(T_tCH)(T z9`)}q=>N1u{>`UILQ;dc1nsxOLjN$)r)odGCt>QpbwvM5-+=Y|&)Gl^{~Uk(@1*wQ zI~#am`?o{t_n!q8`B$GN$edLAZ?w=a3`xJ&LjRqR^!S|6WWSX}kMG>`%WuEQKo2Se z?6+KSb)3b_e)#@`-+m8U+=+_Xv zfBolkCugHY|ENL#j|}>MZjt{tl22}|t?1W(*g@w0>wShK!96p6`93BjW+P{kA z&melVKYst+-~L$^`Lif+yp=+JnMHn9Z)yK7CO^|4|8Exg(X%CCs`!1(A!hqsLG=Fl zLu%zV>Ik4W*{_@Q=l+9`-+nQR`~=DO`>$XAl@|HgH1N3mEQ9=Ji~O}D|5UfBBIoy? zZ&~CIA^ALh9b%Bb!6N^!B%j<^YvFJIQx^H9hW7U{$j?61-2Yjm_y=0D%=p`XDA1ew zzn0{4|2^Cw|5A(mZjyga3i%T(@@HUY!^QhQ+aSNiBL8gM7=&w-O!QyLReyAvE%F-; z@{csg|FcE@ERw&;6(w?h`@d|F-$L?Ri5}xuKZE?Q^)dJVFdF#hrI3Fv(3|?dKTJF@^l^SmZAz`Mm%88|3e>$X^mt{&tJ}xiDhh$is+&jt&9C(*CelrrO|e+uYL{lA9V-$L~0eZAr%3)$KKXw8ud&c?A^NHm^p9HfFD3n>M345v z=Qn=+cUa_~J3B>e~X2F z710k%p?|YQ|8)laPdDiQvPJ%DBtO;s@kfjNEe82R4e|@J&HdMh22QH^V>r;8`mdAZ zx03zP|M2&R{Qh^BMgCTjpKAZ(c8mN~hsvJjI>p--`K<=| zc?S7qN0{w@Bz3%BzJL5p1A3GF+YR!E8|1II$j>GDE8V7woL~NLEb_ZZehblK|Bp1t zKMn#6+SGslxy90ctjn*Xf!@^q#kg37i}yeNev{w-uCT~|pX8s-g+bmgf1ZW@1X_4P zvFGyBKVYFho9N3t)Is?_26|Kbms9(B{Kwya^0)tgEb?1OzOtWE!{7g7V1mOo`TK7b z(Z>}brGEPJf!?Hl2kAe9=+J*IFzDZ8k$+f$B%Dq3DnVWOb%RBI;bF4o462Os3k~u& zS>)G~{NsHB{q5gik-w7UcQN@F8srb{XSRO}ZJZ9}jfK2l{;5E3vVRNSY{8W){>uIT zaR&J}TI4@T^8NA4XAb9^7Wu6tU-=)}|009@k1g{55>o#A7WwT4`B8)XxksDr-%awj zlKoWTw|^zjo9y33@>`kxCm7_vVv)c3TuJD+zhC}~7Wr%X%AVr(FEYqK>KJqT-y`{c z|C3ymH5}(~pf|O@%^-iGLH@-S`A5@@r;2|{qF?@n7Wo|{U(uugl^EnNu*jcI@>9kC zpIGQ?h(1;Py5FMz5ZtVQi}xS?{+K`h4?Wi0f3J~z^*fNtet!Qs73fX_zfvpB&M5$Tll}V}^uNlW{|_wk`+QZ(NG1Pni~L-J{OJbyhkV7{{xeAa z?QT;=&Tqe7KyPY)l;rdEXUrgfx<&pIB!6HE`S)AsUnhFFz4lz7g6HZ54uY7!|9235 znWwg_>w$pY)c$sZ{mVg+fBa9k$e(b5l=6s2SaAJNYLVYX@>dZ(j{mqp{-YN8yGg!( z{_ywz!xs6=akCUIa8Gfe{MiQi?H2htUz2ojd+oXW@&_Mp?!U8%K2`j`#zH@a=u?fq zSwL^<|22m8Ut?(hMvMFzB)`Ga`e6S*ZIRzb@*9aB?LXHbzyAQU{az*c`9ArwS6%QZ zpf|O@@F-c6_kWE+evw6fR-u%UD*jw-kzY#kdHlK7Apd(7`O8UuD*wO3BEQqn{&@!Z z&syX^OY&3s?+GWE`|mZPzfzh}|Micb{y=Z)Kk={usAdo)`Vap8p+A0AS>)%Ak%Z(% z#3dL%J1q3IM4!t4U$^K#10R;a#r^*}gZ_hIfMZR6{C}6^`}a@%_B#paP4;Ui`P~1n zH^~3GMSi~vh5F7pGSPqi@~2qjcaeO4|G3B?|2B*KB9fn~{kK}==Nyez^~V1j4f3~G zBU=twnwt$>;v}ZG-%WE%IlP{8aJxK8yTrL;Dj3 z`Rx|@-wi4M6^s0Ad{_z>AOFn;`G@34|HJQg^Q)EQ58)u>mH#TZSB}~LhLHRjR1xF% zGK2gDK#!XG<6kGq&m(%3_|$ajfZpW)OGrNN|Jx1n{|59X`Nxfu68-zXe))f~$X{oW ze}_SSWT4spB_uzU{R@HK)c#I`{qHo$Uq$l$_HQKlsqFuNMSk>H5C#{w|J?@py#|@> z|I?86cYxm1{zilRdkpetl6=4acaVHFeney7kKg~NTjZ}I`B5T7|Hto&D0;>B_aq;G zo56EM-@jD!if;?a_v^oyq1bcz&9uX!e*wO%0hiJf?SHR9|0@TZ{qLiY@}~m5$$ljU`S%&* zueZoQ<|5f_2=AWD-~QiNH7WtQx{8al7 zQ!VnBlYDxONqm3dCkFYQ7WvM_((F4t)(_tQzGIQU@+%+=u1c8*`HvXn*T4&cSjF%E zJ4k-2`>%Ej{pUmv#h#1Q(by|c!PI|Q^x%re@6`tV$Dd}_e;@_ERPx6Gy-9w7LH^GT z@}IECzc{4)Ut8o?8sx7r$R9ey-2S;C<(~@lruHv4$p585{tAoyJ44F9$0EPYAb+hv z{$Zz^+y7gVe~0!onE@7_D+}mN?e8Y}EmRxh_u~fn4Ho$m#!JFf<7cadej3rI^4~uJ zy-EKi17u72`1!3t|MSi;+wbO(@<#!^N&Y&6{3i|a@3+Wb6;l3>Eb==I@}DxuKNxPX z&{F>R_hLx-J%QfT{{AN*SMU1sX@mS)i~QXod!xsA8M1Q*&1@0egE5Giu z=%0O(tl3DFas0k!(EnhVV6mp(|C)*r=|8FZ?=1`cNkpH@|F&85?=n!rK21-lu z`1`&=e(w=x`QHmEzX#Bp?4M(h-(`?L(IS5x$xk)@$6MqV803Fskbkp9{%axIzsMrL z!vGaqXfI2&u$6g&@%@LK+_+@dYe`g-r^(G=X~r5d>RPSOtUGpDX?&!{2cFn}+{d@#Fo`fzA`&7k$Hj;`H|n|5)*VEB=Y$&z$~|;h!n~ zAI1M+_y^=)wg2XZ|4s4Z$MbUhD+l`eyCeTL%@=3Tg+l5W{Iiq4H2Arbzc=`WlV67y z^w=kP{)cw#=BobJ4ZiB+&kerjDxKj&TIMYXjd@iNXF$NRuqC+x86uPlOfZs<< ocz5;}l*qG5`Po delta 1237 zcmZ`%O=wd=5Z-z1OBm#F#PjTi4)`uA% zZL)z+`~as>`{j#taO}jh?Dm{cMF~pg1q*X99EApDY0V29%q&vc}aW4TtLP&!# zUZ6I}3uu!NMr%rC5)kYq)0sd4Z4xKMdFir+*6}h0pnSFVIzHN@z8!#ruB%rr4h#>d z<3rG+?hZjxE~Z^-{3A50Pys^W6sMii*&wAdRS2rS0+`_nT?Zx3k4!G8kpgsSO2;8a z?iInW7BRH$o60PK-#y7CLuzjcV%rW;CayiW8fBWpy46wv3@@J}j$jPXFVQNsbM!2N zEmn8#3a7=@(tC)(Wfdra;a*{M#YQiw4AzXSc=0 && I=0 && J=0 && I=0 && JNx*img->Ny; + Is = N/nthreads; Is = (Is<1) ? 1 : Is; + I0 = Is*threadnum; + I1 = (threadnum<(nthreads-1)) ? Is*(threadnum+1) : N; + + for(I=I0;INx; + Iy = I/img->Nx; + + img->data[Ix + img->Nx*Iy] = val; + } + } + + // Methods again // + + amsbitplane amsbitplane::subimage(int I0, int J0, int I1, int J1) const + { + amsbitplane ret; + int _Nx,_Ny; + _Nx = ((I1-I0) < 0) ? 0 : I1-I0; + _Ny = ((J1-J0) < 0) ? 0 : J1-J0; + + ret.resize(_Nx,_Ny); + + imglib4::amsimage_plane_copy( + ret.data, 0, 1, ret.Nx, ret.Ny, + this->data, 0, 1, Nx,Ny, + I0,J0 + ); + + return ret; + } + + amsbitplane amsbitplane::transpose() + { + amsbitplane ret; + int64_t N; + + ret.resize(Ny,Nx); + N = Nx*Ny; + + imglib4::threaded_execute( + amsbitplane_transpose_tf, + N, + ret.data,this->data,Nx,Ny + ); + + return ret; + } + + amsbitplane amsbitplane::rotcw() + { + amsbitplane ret; + int64_t N; + + ret.resize(Ny,Nx); + N = Nx*Ny; + + imglib4::threaded_execute( + amsbitplane_rotcw_tf, + N, + ret.data,this->data,Nx,Ny + ); + + return ret; + } + + amsbitplane amsbitplane::rotccw() + { + amsbitplane ret; + int64_t N; + + ret.resize(Ny,Nx); + N = Nx*Ny; + + imglib4::threaded_execute( + amsbitplane_rotccw_tf, + N, + ret.data,this->data,Nx,Ny + ); + + return ret; + } + + amsbitplane amsbitplane::flipx() + { + amsbitplane ret; + int64_t N; + + ret.resize(Nx,Ny); + N = Nx*Ny; + + imglib4::threaded_execute( + amsbitplane_flipx_tf, + N, + ret.data,this->data,Nx,Ny + ); + + return ret; + } + + amsbitplane amsbitplane::flipy() + { + amsbitplane ret; + int64_t N; + + ret.resize(Nx,Ny); + N = Nx*Ny; + + imglib4::threaded_execute( + amsbitplane_flipy_tf, + N, + ret.data,this->data,Nx,Ny + ); + + return ret; + } + + void amsbitplane::setall(uint8_t val) + { + imglib4::threaded_execute( + amsbitplane_setall_tf, + this->Nx*this->Ny, + this, + val + ); + return; + } + + }; \ No newline at end of file