From eb1c01f9a1fbdc4ad3b62088e19c2d6e0821e611 Mon Sep 17 00:00:00 2001 From: DarioS Date: Mon, 17 Jul 2023 10:55:21 +0200 Subject: [PATCH] Extern : - Optalog aggiornata a versione 9.0. --- Optalog/Include/cns.h | 57 +++++++++++++++++++++++++++++++-- Optalog/Lib/x32/MakeLibR32.bat | 4 ++- Optalog/Lib/x32/liblcns.def | 12 +++++++ Optalog/Lib/x32/liblcnsR32.lib | Bin 86780 -> 90118 bytes Optalog/Lib/x64/MakeLibR64.bat | 4 ++- Optalog/Lib/x64/liblcns.def | 12 +++++++ Optalog/Lib/x64/liblcnsR64.lib | Bin 85162 -> 88438 bytes 7 files changed, 85 insertions(+), 4 deletions(-) diff --git a/Optalog/Include/cns.h b/Optalog/Include/cns.h index e494483..3e2a33c 100644 --- a/Optalog/Include/cns.h +++ b/Optalog/Include/cns.h @@ -5,7 +5,7 @@ * agreement of the authors. * * Authors: Nicolas Leignel and Renaud Lepere - * Copyright: 2014-2016 + * Copyright: 2014-2023 */ #ifndef CNS_H @@ -29,6 +29,10 @@ extern "C" { #ifdef __linux__ #include "cns_linux.h" +#endif + +#ifdef __APPLE__ +#include "cns_linux.h" #endif typedef struct CNS_LaunchingOrder * CNS_LaunchingOrderPtr; @@ -654,6 +658,33 @@ extern "C" { CNS_SetNoMixPreference(CNS_LaunchingOrderPtr order, unsigned max_number_of_active_parts); + /** + * StrictNoMixPreferene + * + * This function is equivalent to CNS_SetNoMixPreference, however it does not have the + * limitation of note 2, that small parts are used to fill holes. This will inforce the + * limitation of @param max_number_of_active_parts number of active parts however this can + * decrease even more nesting performace. + */ + CNS_EXPORT void CNS_API + CNS_SetStrictNoMixPreference(CNS_LaunchingOrderPtr order, + unsigned max_number_of_active_parts); + + + /** + * SetPartIgnoreStrictNoMixPreference + * + * This function is useful if SetStrictNoMixPreference is on, in this case some parts can be + * flagged as ignore strict no mix preference. This means that they can be nested on all the + * nestings. In this case, the max_number_of_active_parts is not respected for these parts. + * + * This is useful for unloadding systems where for instance small parts are not unloaded by the + * robot where stacking space is limited but are unloaded into small boxes. + */ + CNS_EXPORT void CNS_API + CNS_SetPartIgnoreStrictNoMixPreference(CNS_PartPtr part); + + /** * NoOrientationMixOnPart * Preference for limiting the orientation of a single part. @@ -784,6 +815,16 @@ extern "C" { CNS_EXPORT void CNS_API CNS_SetStrictPrioritiesOnParts(CNS_LaunchingOrderPtr order, int strict); + /** + * Ignore priority on some parts. + * + * In strict priorities on part mode, some parts can be flagged as ignore to priority. This + * means that they can be nested on all the nestings without considering them having a fixed + * priority. + */ + CNS_EXPORT void CNS_API + CNS_SetPartIgnorePriority(CNS_PartPtr part); + /** * Control of part priorities position. * @@ -1419,7 +1460,19 @@ extern "C" { CNS_EXPORT void CNS_API CNS_GetPartTorchInfos(CNS_NestingPtr nesting, unsigned part_index, int * group_number, unsigned * torch_number, double * torch_distance); - + + /** + * Renest the holes in order to ensure that the holes with the same parts are nested the same + * way. + * + * In some particular case such as micro-attached parts with automatic unloading system, it may + * be useful that the holes with the same parts are nested exactly the same way in order to + * unload the nested parts on the same stack. + */ + CNS_EXPORT void CNS_API + CNS_SetHoleRenester(CNS_LaunchingOrderPtr launching_order, + int hole_renester_enable); + /* ===================================================================================== * * Statistics diff --git a/Optalog/Lib/x32/MakeLibR32.bat b/Optalog/Lib/x32/MakeLibR32.bat index 3a52a38..23381cd 100644 --- a/Optalog/Lib/x32/MakeLibR32.bat +++ b/Optalog/Lib/x32/MakeLibR32.bat @@ -1,2 +1,4 @@ -"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR32.lib \ No newline at end of file +"c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\lib.exe" /def:liblcns.def /OUT:liblcnsR32.lib + +rem "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR32.lib \ No newline at end of file diff --git a/Optalog/Lib/x32/liblcns.def b/Optalog/Lib/x32/liblcns.def index 5163cc4..21dbc49 100644 --- a/Optalog/Lib/x32/liblcns.def +++ b/Optalog/Lib/x32/liblcns.def @@ -320,3 +320,15 @@ EXPORTS CNS_GetNestedPartInternalStatus@16 @449 NONAME CNS_SetCommonCutAdvancedQualityCheck = CNS_SetCommonCutAdvancedQualityCheck@8 @450 NONAME CNS_SetCommonCutAdvancedQualityCheck@8 @451 NONAME + CNS_SetNoInterpenetrationOnLastGroup = CNS_SetNoInterpenetrationOnLastGroup@8 @458 NONAME + CNS_SetNoInterpenetrationOnLastGroup@8 @459 NONAME + CNS_SetHoleRenester = CNS_SetHoleRenester@8 @460 NONAME + CNS_SetHoleRenester@8 @461 NONAME + CNS_ForceSquareOffcut = CNS_ForceSquareOffcut@12 @462 NONAME + CNS_ForceSquareOffcut@12 @463 NONAME + CNS_SetStrictNoMixPreference = CNS_SetStrictNoMixPreference@8 @464 NONAME + CNS_SetStrictNoMixPreference@8 @465 NONAME + CNS_SetPartIgnorePriority = CNS_SetPartIgnorePriority@4 @466 NONAME + CNS_SetPartIgnorePriority@4 @467 NONAME + CNS_SetPartIgnoreStrictNoMixPreference = CNS_SetPartIgnoreStrictNoMixPreference@4 @468 NONAME + CNS_SetPartIgnoreStrictNoMixPreference@4 @469 NONAME diff --git a/Optalog/Lib/x32/liblcnsR32.lib b/Optalog/Lib/x32/liblcnsR32.lib index 6bb0da224bcdf9750d4e632165eca704be7fcd28..3462fd71a671ca4403940ac2228627213ecd058e 100644 GIT binary patch literal 90118 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 delta 13650 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 C;jym( diff --git a/Optalog/Lib/x64/MakeLibR64.bat b/Optalog/Lib/x64/MakeLibR64.bat index 9a409f5..607bf43 100644 --- a/Optalog/Lib/x64/MakeLibR64.bat +++ b/Optalog/Lib/x64/MakeLibR64.bat @@ -1,2 +1,4 @@ -"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR64.lib /machine:x64 \ No newline at end of file +"c:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\lib.exe" /def:liblcns.def /OUT:liblcnsR64.lib /machine:x64 + +rem "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\lib.exe" /def:liblcns.def /OUT:liblcnsR64.lib /machine:x64 \ No newline at end of file diff --git a/Optalog/Lib/x64/liblcns.def b/Optalog/Lib/x64/liblcns.def index f8670a8..9558cef 100644 --- a/Optalog/Lib/x64/liblcns.def +++ b/Optalog/Lib/x64/liblcns.def @@ -320,3 +320,15 @@ EXPORTS CNS_GetNestedPartInternalStatus@16 @449 NONAME CNS_SetCommonCutAdvancedQualityCheck = CNS_SetCommonCutAdvancedQualityCheck@8 @450 NONAME CNS_SetCommonCutAdvancedQualityCheck@8 @451 NONAME + CNS_SetNoInterpenetrationOnLastGroup = CNS_SetNoInterpenetrationOnLastGroup@8 @458 NONAME + CNS_SetNoInterpenetrationOnLastGroup@8 @459 NONAME + CNS_SetHoleRenester = CNS_SetHoleRenester@8 @460 NONAME + CNS_SetHoleRenester@8 @461 NONAME + CNS_ForceSquareOffcut = CNS_ForceSquareOffcut@12 @462 NONAME + CNS_ForceSquareOffcut@12 @463 NONAME + CNS_SetStrictNoMixPreference = CNS_SetStrictNoMixPreference@8 @464 NONAME + CNS_SetStrictNoMixPreference@8 @465 NONAME + CNS_SetPartIgnorePriority = CNS_SetPartIgnorePriority@4 @466 NONAME + CNS_SetPartIgnorePriority@4 @467 NONAME + CNS_SetPartIgnoreStrictNoMixPreference = CNS_SetPartIgnoreStrictNoMixPreference@4 @468 NONAME + CNS_SetPartIgnoreStrictNoMixPreference@4 @469 NONAME diff --git a/Optalog/Lib/x64/liblcnsR64.lib b/Optalog/Lib/x64/liblcnsR64.lib index f442e25afab71b63e06952490d316c60efe8307d..187ad81174a65a2e0d17d2b47e8d0cb1461da37d 100644 GIT binary patch literal 88438 zcmeHwd%Rp#b^kgMc|-&R(;*@q&em7cO34m(Nju&O3eXob2Bh zO(&Z6PNEM_Bl_qfqT5?UU%pVm!}tX}xIw{Z@e6q93LcMvX+7;@e6o4>ZEW#egV_xD7YEF zfSEUDaO|FxFwB1;g9VpT!m#At49+}@5{5M^6x@bi!1>o_uxVdPQg|zV0T)mPdvBm5 z1<2m}exh$box$U1Cx%}=kimawWk{dFZ2HjG)3cn1`XK(~;WH@qD z2IuU7`V6~LpwHbvDco})5yJ!H3gFiVo`B6)DuCQ$0i!o(aPACB80KtNa36jFhdi6X zp<5|oI1c_z;X(WYUIRT+co@HcdGAs%8^5!O{{1cmXX6*}Z;vS0fnUH+p(Dey@6OTD(>t-T`&mWM%J#U9U0e3+chELp)!QHdK7w}2&2P7L2BMhUb zra+&+9`ynDBJKgn;vZ#j#)XtHymp&{r||m}(Z^vw!=3OI!yRZhhL3N~;A<#L0si^~*^kY&mfnUJSW-CD3{S2{vHf&A-x}6O;5qhM6 z{&XVXc<@gFypIQ*)KKs=egTI=9>WnAXK)l~7>-_+0=@7o#x1}v5zBz&Q1k(Y!_Y4n zPHiiIFHZ%$4t*$vC-D0O(a#Y(DZu`p!~W&BWUvB$XP9|d2FJXI5{5ljD7Xi|_Yi&k z5Cw0;FW^g?6+DjL$0?b8k%GtY`xwy=;j85xY+M+w9FH7U@;h@TYRf?vRAZ_MCx=%);yzAJ;z%twEoPszGRGZ-GF zgkcDJGpyU30)78lO5q2HBS5n1O$tzN)uZTxcW3a4CFt)y!1=r#ib-!?32KS*p zAUW*u3=T&uFr4|349=QO34s24k%AB57w{DHXZZf~6p}%-F~iam6x@nmz%tmvaPB)Y zIPYNe6TkuRQwlfX7qH;j3M-~bx}Np^4Bjvc zaRfN}_6%kqz5w(eh>H|%#V`E28uq6EomT^v-I>AidFY3LgP+OZ)eVe$fPG+B3ZUEP zPQ*AGo#DHK89ed~5yLmPW$-9$VffZ?2H*G@{0?{oZNu=*Co*^x{T7g{cxwhLr(yg> zTm9E21&`qO5lZ&mTLI|y1)OrR0_b@PUzY(dPO}s|{|oofBJv=n!IX z?z|3FnZm9el$RoW+QGR4q6{WyoT{;LN44tMkrkQv!FlXB!_<_7OPOj#wO(ykhbmKz zu^qL>_L0_jwPlct=uo{uQ;<{>1YCD@wNY(V+SN7fopoFChU!GqYMG9t-S8V+WLVUR zBZys|8=Lj1cCFcnYUdEec?31Gxj4GmzFOaEZmm~$3Z}_)rbZ%#s8onDRGX~y6V>~VyC@ss@|?m)N5n4_T{!X3!@~NWv&nhr)msWC)?F= zr^`Ymquiq$oM*?FLCh$F9-Yiqn%Q!pP2)61$`4dUM6`#ec5bbxeULq z>l&f9ZUGYsr6Ph;tRR)kVqvpI>Y5SXLQd zU2X2Hwp*7=Recges)O{EbqQ2mcPvN1>9IWj!__7m%JWgRosS;2(4sV#q=qw(nJ#C_ ztmhjY+~Dft#2SP1=EN#7n(GZ$FSCakqmqvkYYdu#ygI;gt&P?8+D5zDnm{wJu1pwG zT#P_%Py0@Ve8xvH$I#NL_Ks$&c11can!Q8DD`|dB+kax^+=mJ&_7WdwNYpi~A;+tu zMjn)>K?naihUsF(y(kzw-CWI>92mpY=T~axh(B6w?W{FY?-`90A&T>`0zJ$HWI3PV z>Mp4>aa{`~(RL@EQ zYH>{K2wSsvV?NmxBvmy&0|Z8Gz1DrxsKZr(m>WM^&IRV3|Y|8MJn5zV#|?! zE$vCCp6f~7&h7Sl_B)Uiw9k-coqeABY>%eQPio+)>U@Z zc24aa-O;L6#+{xf5rpfyb_lh#MJ94B`na@a3D5`{Xbv$YEGoriq*X)YxwVQ?i^>kq zj3%ACF@P?cs@2EO!&rq!QfpP{cCi?a0s2B`PvaHv8M) zjkZx`Oo3jN4wtK2m0Dv(t;M|_jc-1Y2T8*94RLbq+=eyP+V&l7*M_20*^vEhFog}O zj49wPOpMi5qf%F6`LgCzW4zM3T+IdcK++X?S9}ePIxr%~> zRPoE$n~xq)Juft9Y}O_Ry;^Tg!P!_+(K&wse_E-j?>_ zB<)8X7BB^k(m~*0D(_77(_Y7^EJ8Q zG8e-#oicYYH#q^PYMA@E>swe!x2ky3wIu~;q8wc5G7qH({II;%8cUxqyn)NYDBqf8 zgQq(o=^~vv#>irw@#NJEe6XgycWtPzE9ZOIK$?$Fo_Q`($#jYb=bO8AK2OH`HMKTI zgW8o1l30B&ZVml3i#%>2Vq}6B6qWiLrz(v$9!|6FV?{-bO6ekVv5g7PFbDJqtlgSB zu|OZ&*ltc(;svBs#}MY$$otU9wryim?Uk2S>Qn9p9IAL&CB-ebV@jx)M-))2YIPg~ zPUc4(*yP93c)NMD6CqOa13X+Gg~=2jjOLZry5_huXy{^>&XrJ50-d|F z%mT|W2cc-yaruhc&T51Ac-)Z9PSXu^sGi-j5aw}a3gv}#m5-&XyP7o0JxW^uT&al- z&goimw24%Gzfl~Vl3Uo2a(LT^qbMOf}^YYA&uoL}Ij8q}5G=Zm0fr_}r zqEQ_1$kwW0TX&?v;cN?baAFP5XuFbO=c;-WJ)*JQZ*2>sq?l!H$8&I815wQSr{T1= zv90NJ4hJXJuxAjDp>f{4qS~(1>eX@GzJ+IP2gV4Moe`43`OZdO2U^8(xVf&jE3^u7 zk#Zf^;Z7|z&Y{B$H?ap@ZDe^+5GzGdfToZvaqtxgP%#%hf(3?MHNI(Vpq4ubyY=*( zk}h_=!;qp>*_Qw9^$`=HXxBEzFkzyDAhiwXYTI>zL=dWLN1<0U9ow_nb0t!+@L*N# zIAsS3S%)|;+x*V7%n?tO8>hB!$DEcWq)o1FHK!)*9H=l&l!MjEK_05DfzQT{ZnTL~ zDxG39-s5>EV&<9l!Zc!{-Cm%G)OLe!I6IcLB&bm!Pb*!qE6vEWn@B*iRKM5~D56vU zOytDBn*Y{ob6 zCr%Gd9Xb$p=4I&==cXbaPGfbna!!=Xc-10)O=~z2>#ET!9TpM9XbLTx`58SdOq0sz z$y(xIZ}tY6eBV%Wev!2ItiM8rvwz@Qz_GsD=k@b_P;Ab%Jos57zYT^_d&is#7oY_BJxm ztK&5cK!7Y`DDK>2YL$8#y8gbBhYi$nHE`xWKBx@QaKO*7Ww9l*0|?`JPkJch_R)cf88Os3BLvvQ(j59uYKGJsNDNHe1^( zjoKB}WwrDS8DuSd_ zl#yNLfp3U{wF={EQ}eSn@FUwH3^d` zZGr@D3&jYT7v>ZmBC}~BTj`~%5ksFKNvys&5PMScu^8JL&C7U_}cB6J-&StDYUmmV97xLr}(mZn;z1CBrcMCg=WVG8egDNd^Rsl`S1j23!g3K7M5 zSaAeL1-R%~DilV3e=*K%y1)*C5RvO2n}S>4R3D(q>2$ka8WXFZi`|AJ8X+-hpyHoP|#6%2j1O z5o4t)*$uWkwUyMO_l=~tj5v>s9yUnX3Mt6H^nu@RSh)N9+!=|DuYLkC z5e4a5x-E;SUSDnT3y(|dwe1aL^f=KJCR6f*1g<7ALgs}#1D3X0mCM&u>l4-uI1a+6 zwVKeTR&AFZ$;s?}982&@t$|&_axFsw*68b-HOrk6Hc-o6SO^vK6@`I9;HMJJVNXOm zGK+eaiBe6q@-$GeawV?7vBO5jJ5qH`=fqFPfKB4mht^7R*xrI5TsLBKURzm>@h|PQ zSOI!(!}&Ot=#_dCoy{;`kH9p&+nA2F$b6SB_X$$5^avMwP2Yh~SyFW0rQ?_K)6Y28 zEp=q#FW*reyTllNVRW3d8-BsDLlUmXwBe>ZH;puS&oIr|uyu@+DjlOlu8y6E6;IwX z+kitY>?WJne8FuNMxb^Dn)J#C>C$22Z%kEM)$Dx$!)PDJGQ3hdMn$yJEjy}mQnCzz z9RBISnM)F@?;0s`P}V{~x@h0tXtt{Pvd30Hz$@uK#u^Gl-g+d^wM7L(O31{XMj}~Q zy%70s+&eutzjt~h!OhbjCR+4SqSoz17k(MHZvr+vh}$;-xZ#m*2HgH#qB*!#bo0}= z#St+6ueco)u=Pi{oe{9#e-d2>c=JzjYbv0HTM3^6Yi`et03o@a}pXKO6Ug2+H+b$ zR{@>}Jb6Syn~qFq58!tJZulJ0f%m}92cRq9O2~c&aPw$FGtNzD^PGh413Y_3LR$}o zzQ-l>AYjvL5_%Z$u6YT~2Hf@UL}vpY`8T2+fCJ&1cRvds-%m6On2mqm{S%`1u1)A9 zz8b0UrK1^x|7C??4;zzrO}O0K;F! zZKr@=;O5IK0XMz^_5zm7g`WWr!bihLC3MBggnk4#;y}m%{P@)gO~4liz7oCz9JpUX zZv*UkP(s%L4*mtv^?;LcgXT?u8_!EIEL^}b7jt4!UaT3}V@Z8}EU5vJS06Hx@8tsAD+JV@57;UoYu!P#DLQlZf*Cq4> zVAjteA8^ZZ=)NMM!w^^RIR$rf3-Rpaa~3K62dm(09Irc*6~#_pXOtZ$umbmTXAqPQU=#=G||A zUk4FG=zwcLb1-faeGA}5wC@3ky}Qu<^U=vZTLGI_gE!z#=sXW?_zdba5PN6ugEGK<@cH0((a&+K>b7q} z&ZCHFwAs&~dkbYxplmbB-io%LhWOp|U+9~Fz4yh~0l4@S@C1AWGEYWaTm@f02Y3)| zFf;<25u+C^LVEzVqEEeZ8pam-GF?NzO;^#?2;ZO3B(E4_cF~P41&F(!TUc+K=|91L#%sYqXgzpiOjg za!T?p`b#>H4x;zb-%^#vsX`aguhX08V0twjLWj~|vNSo24yRwx|Ip3!cXTIxf^MRB z(h+nd9YsgeZS-N9LC0W>e?1*bGiesRhR&il&>$_PC^w%^% z3u#_*dU6uImi~a=Ov{qx$=m49=q*3%m?hkTTtr~jr8(m&HOT261JKcWxOztBm^Ym-&U>f}>&H=RtU(AjhjeU-jO zqjWB9ppEna`bV0X9Gl!i|3J6WKhc%+TeM%Yf3hN3ncPkvqdVy1bT55@_Dx=y4ATg` zh5nGvr}OAp`Y9cl9F&|&ucJMay^{CR-_TI9E*VZnk}K#p>9FMROJlT^-cNr|D`+Jx zp)=`6^l$Vu{VScFoRd63-=#sMkCev~ z!{sM3P$8?DUpZ#+GcM*(<$>JhC^p|&;2jlp$Bn+w1e*}pLk`wY(E=jQ7YgG|m(%&W*)qq=<#t!%LD3sdAtsAxEwC{kZJ zrMRP9yb~nXUPKz9DW@VR$BIa&a+y4_f~|DfgVtEWsx1Nd$qd7^i|X6j`OiFq(tb%j zXC9`=uWMHl&@biJf|L!+C`4m;NJWD<07y6^tQ1;DY+-|Y&%R%YwR6b1$cVO%uQ24* zI}#e!8nnLJB2unws&7QVm3_XJ`t6N zva}JNRg*Bqq-7zqBZxF6{c`yXA>a0PMHw6Jxg#`7Al2D}Bdb8i zRh#PIT)D_Ps8>g^7!ZWx`%D)BqiYqXN;&hQARqd`8fE!qAL_tNarO`@8c@f39lI#d zG{!xVsNvo$Y21VfZ1$I~>)i(m8naBBm}br7-_=lxn`N4(KKaYNp-T*R=tAchQ85qU z^MwF3WfFdu)~JC$b!aHOku2_z8kl^-(QLcCCBzn9w2vdHC^!71zOzxp%4AW;!}ztd zd%S7}O0EYdiIuoq*WeM%xGO^0X_p#aV}!m2JvYTJwV7*b+*fX}H_P=dASxTl`eL8X@u6>sgYfzu58N3zk<8;DUIDuCuAYn5NV7f zsVJ{BZ>7_YREe4k{OK=hLJ%+eK>lLSZHY z0j}23Ay zLQuoc-F7wcDDvUiRK`q9_Vh53dBcV(BQx4nz^uOMf;_@427FcXVNFVonIivMg-NfAHG7`2rJE;Jy#U&%Z{FpUS2D^prJPfm zyF|w7+Pqy+WbG(9W|^jxFS$Wq@epPmBm+%gel=nx%Vf&R3SDs2`yc(%h9pN>vhtrOCP;H!d}% z4K1b^<$U7`lv`0f6&OkSraTYp_*Q;*$>bnXsI>!vH=5j*n-L|_8U@n9oMMw6ulV?P zdnxVZTfNNM>9WzfF-R-yMA?~%k1*vlhaQ;w- zw#Z(1DhTthb||&f>rlq~;vs~gM9M>D&>3%Q*)`plxpaMgG!XXFp{tKEW_Csvi#Ci6 z#miZ_Z9xKCwB})~LhQQS6^ogYQETm_L1n3r(Op2}#C$tb=Zv{XX7ekO77h7%nXNA~ zn=sy{GR3*LeA8U{KSi5wn;F7foKsalg_-hnsjZ{+0=yx_EH`SX3tZ58#fvO?B_HM2 zb5nf_4OL|qZ>&T+ywII<>OiJd(uCqm*FHayO!LE7Q)%g!HuCyTu|sdH9a2L4ZA?~a z5&D?1RfX`dOFeRmK7NB3VA5A zK0srWTPTM)Ivp;SHMyrHwns3Wsn~KUoBY8vho$Z%7PT%m=&fsE@*7!-Y9cmNI~~g9 zs?JQoeSZuyyErw9NJC~?SGmKVF|yhoTG#h)%F0#tF?p@f{Z?7c5Vpg$R%w%~y7G-w zqv}(b*7riVnuJipyL9%9me+3=;@~w;k;!caoP91(~T#hge(Z>WQS?Gma?hah7%F=rJ;oEI->g zPpeSi>2j}%oO@(@Tc+_?+37{fTEQP-I$mH|_S&Q!c`1iFOvD5wTaHNLbq_IF$!C;x zM&sTUk&&J1;d8O^0t+dJ$z>zaV6w1$><=~R5aTul7X~t)Ja#gj_?^N~hLf*jh|+V7 zioC2D#KBCW@WNRU>AvHrB;`oip2#Q!|7wI6@kTOIJ|e|Nt&ZfLcZ?b#(?pUOBi}@W zMH)@+*P?{3oONF0S6NP!^QgL^!Q#T=WOt|-&ItuE#mcNN64>2L=Q&|nq4J|l782fB z99Se>yco{gB!&ZYbsVS`8CsnPY$sYgx_VRGu3t6>%hbPYT}!f*tYt8l&{lmfcgv{k z;q01zc9-_KnB!%jqiI~G3Q?>D_JtX+=((a5g}?&U_F0(`EgEt4Ol+4&qC0#^lheGXq|>vMBaofm3tY&mHS zjTB{Qv}>nRJImFxJdw{Nj#Qnur>V1J-OKm0t7UqjtEL%(R!y8n*%^VlVO^9p z*a8U?v(LMV*?|_HC~26ll?rH>WC^#3>`h*i&dUi5@bl<`>UsHr0gfJ>J;j+yTBq@{ z2Tc+?a6*i_ymQs=aTYT^kPK+UN0ZjBmszn$ya?1T@L}0`_Mt3ZVS`QNCK?9xaLI!F z+@!+*KbOqqS0p6b^^0P!U1QmbmS-Y_-sc3n$Xv8|ccypk#AckC#b|T0aGu3!RZPlx zMx$R>BVDn)xRSCPEgk_PkC&0vXt$R06-tY_oY!dAmuX!2yxmx2Kw2_Pj9be~dbCA* zXurOZ8EHv%^CK;!k>h9!G!U*R1C{44hIlHx7b__XjEhe8q|e5q5tUI?VQp*zmxoR` z^rjNqDG@@?#0agBVQE=js%k{Ae>JM+oabBy1Q+9c$N>d`H-D!xygW;Rk4Gc6iKG)n4f>gI-6UUiUuT`_CZVIk4@oYIF0J59ym<5T!t#B@#9J0g+y z$$%nE?CM3aE8NTSwA6R8_C^NUH_PdCWaZgBHmfX?)5!jeqdi5l`dONjk=G+}afw`B z{3PpSg<5QUytn#dl48k@(N1TGdYnWuNhM9_ttM@8S+bia$jKb-fOoqpi-@F$+HKr{ zSmIq|sCjzj7|ADT8mO6F>eY5B>;px_DC?RMnVF_C8-qe*qjwd2cW9hshnZ>W*EO+T zZI#)F=qR#LZS8%65Dz!=)X_vSa;dzh7oAnw`H`BvOZGxZ$X|$dTNR}vJMN8CeA6H4r6S@ zSvX67brwht7b*GH(uQj=ZXyh-@+Ud3eADh4)AEo45 zgN1~)rb{Vh)~GL`Eq_P^U422#?k*CWG;>!safrlb6i(AMtO^rZzVR}8wK6UW^{%eh zw${fQlN$!+Zy7#!XlTpmnsbNG*|K8k=u*!Ru7*S(Am`pIqMxI`GYn`Zyb9XG4#q!lX*F(H&Hj5Cegz!hf$M5xt>$ENTYKh78(uqeXzlPh8QT8;zW9@MVIbV=%Ku^= zUY`ET76eVkusDIrhhLo}FXF0DT?^#II!>e9@yW zzlQ&({$pOaQCR)OKhtmD=GuEuLq1F6(bkKtk5qvgacGZGm!9 z+F$byk(Uk9VBX*6=Vjclarv_KAJe@Q9`44wGoeX8BXeOMm@_Y$PQ-n7{5l@f*ipFj zI(@;SN?kuZ14h0{Cqe!y86| zt0TB{oDa;GC7%kZzZa9-2dftpbDbRnJi7jlFPopE9nY3;@db-ydryG8-<4(ZhNt6Z z`_C@gHxTWoK;k?dXW8kJ^SX;ItGvYnff%0+*|>r}k1a_y??E`??LRwPz91m|I7q)t z`#Y1KC$-x`92L5dxma%F6Cv-?fJ|O9I%3QBr9eEt4l*aT+(7<&&(Z^tJqMCooumuq z+xm3&dMwT^kIBcz0&ZEh#W{a=AwAIMb0K+GN9lt3rCWbtzF=_1aGug@z6RRW z53=MVFwg473v#xU-5B@tM@J_fPl8l@&PJBn4{HN$e=OwwhW2_N*D$d;W(YhS zBYo`;&4`m;N_N_KH%9tMo4=)#bnMI9)|Qt)KOp}|$Zl%+{dqPItXO71PQ#WZ3}d#X zU9@Xt4%=c&li&O9*|)JLh6}sVfZsf~&369m?1hDaKFwRb`0!lbv$%ajFRD8-%g5Nl zz#bHD%;Up%-RRJdejZr2@*d46?JAP8Y;9B_K zy&1r5csmq3$KF81>2aPSM{J0UD zBmN~OxgY1Efw_{;uWl7(XV>QRY;z>W{wXY%bJHEs_Mg2)_iespyr5m&^ka*16zM{8 zB)UHwmFy2;wklo7j*KNA6lJTsiEKgTZH~0_KS$*DZtZ!3xISsE_)-AV}JR+ zzBn+-@KfI}cULRlS>@;VNPJwQ+DW?N$#sYwE?vZBBtCvSBG)&$tmN37&S!@lAKtxG zuDPZCydV&jJl^sigecWFw!GZH+Vlj-{2k?I|0*rl+_F9%h(y)z2Br2smoE&+MWR~q<@Ue^1u2>*c6!Mm@_HN1SJMI!tkLsETXOUsSL+Fq(>Nf)fS z2AB16>|}25h+N;~eoEd?d0M^@u4kJgE1CVHlKWtFpl|aI;`K_lbctQhHb-WvKaR-l zeKd>B8N;Sz-aawD-D<~E`L#-HCuJlo*KgwTeL1pQJKL4)+$7ku)sdZ!)8exGV0moJ ze!!G&-f-xKc6onC`qY<0Qv0ye5ZfVqLXDmIO^U{ajZPEWe|E9vj9B~Kpw!;`acoVn zk0UpD#iVVl)AF5dkDY%ZIX+!~<{l5}(7PvM`J1m0w8(EMQkm``Uy{;w4}=sQN8 zP7S8+5WQ&iGi7f-#NIzk(ghWYRf1;XUFD`O|nei(9&%gTPeIl z%^%oE6FxcKtG%&v-M@%Q?t|5_2!4olzW zXXm~Xd#XAhBG+Gnm6aT8)%R=3#g(l+w`$;7in9a$UXa(jh4TaR55Lt|)e_ZR#kT); zV?+wc9xX?;IWK%hn_Jq-%ER=nkxjIS=TtsAS*lva(~*eYh-}zk1-BT)w3P>txP9 zIwCCBH@LLq*!u2vEji1}Z;kE1i-yfU*c%x+KNgbOhY>qwEx&1^);?^lzUi#z){R9K z=ZA_?`_Z<6XFbk0;5W5Jx%iBP-D}FPwqnok{7!U0t}s2>nsi=e#U%4e%aH7Rz{54V zwB*RB#n0AZ$$mqZl^x4H<|l0>yFaZ)BZuRz$AQVav}yftiov_E#**Ck=Kxp*RJ#8Sc`rwn!_gPv5zNh56p|l3E zlg_{GMgxCHFReptMZ)jC>L^SIh!Xvc>e4a;WBc*&F9ZA7{~(twrTmN%d!FE&UQw!VZ0T5zdH9c%TwMEYe?-hN z*8a1Lxg(IT!FIkiAhY-V%viS0r&TP$(&BVi{Op-+suSLwEstgEe5OksdiO*uTjw3x z|JoDQH`pAboj*JKAU22mMMvqvg^HzPKBmD z;-gDWyO!_eu^#r9G08#`+s^MCV=-^PMToKdbCkB6-LN^Z1Hya%e;AhAk5N6aw&Gma z_Y0EUZ)3X6ZF{1#$74^*f8T|C-vwngh-Cx6U5GdLYo0Hq2mZVZ`MrA}mhrY;Ymi+- z#GeJSUF`hXxy@raOm7tA^<(ae#n~OE%yy+#ua4_)83qS7+Xy${yM+WCGhpD!0Hz90Qkw)2-{nSHP{HjaElN0;|eYqyDQ>$~X5k!+}kBXWI{ z%Sw*5E$4CYUN3ec&2MqL#+L3)u{nZs8wHvDn3)0@6nrYXR!cQL67CvW+P8t(flmj| z7A5xHp0Q`^eRaPvtjs??Zd5nav&+hkJ#~Fh%hpd@9k4!qsP-!!?#kv>tc zjn&$hheN--^vG=R+nuEQ!(w^)fxQpTi)lH1uiZq-^_oh3TRsGgH0qbToxijOu@l9~ zZZzmaUQFyf?>?==aMS%r`$%J`GTC0;YEJdM7a2QY|6-Rq_yJLN6o{?1@6_?=e#_bx zrGEt5$8aEBvvGb+uh14bI7TtlW(?aHQ{lvXgY* z_|iQuc4NWgru;Nl8+P||+>4C5--*lahvk81E#8T1n0>8bT!)@|0f!FW3nzB)cM(*DsF2S2{ z(sI0P9K}|}iz9M}x1^42h4YvH@2>{uT=SGmfLzP`17Y z#*7+%ZMJlz#hw88lu4A@hX{|!J=^wmty0HBWu+x8R7=|%JIgyKEVmC9$L7u(49RNV z!n{3EuePf=D0UyWO82S2EW+*kCsE11*`;Mic5i0*vfZ6S*Ywiu9b2m%(^BMrXX$~t>(^U&DMCe$J~z6d$&IJymgZ+zj>L| z#O3>JV79d-L8-l48#{SF)ff#Y zs$;cnwXt-33LZz6j^tR5{OdYN_l++vKQJou`NGK|`QpJ{>GqC1F`p8Z?3>+B*$*1B zUy7aH*m~zH9c1^x^1vv@GvZ8Fx*Agcch2&T?I^tu)(4)B_#E#rEq`;ffj2_1*^7Pt z>Ue)LYyxv6?>ZhHlk6K^zK=&TT#m?P@2KL2n(^^v&0X4Z_Jg}HDK9-RoACMVk)5Oq zpP(<@*CQj`QI7n$>7^w{{C;#)valsq-tTi}s{byUPW0l7__D-x2mR!>an5AB0>HEQ zXtlMo)~K|ryb~I@V6L>)5r6+?L~ieASFshukdl0E1Fw)=Vt+x(4e@?jye=Zw@7kp$ zM@E(NRD?+ukL>c6rsd-+GLxJim)(cecpY_#h=w|C(AnctiFn+~!C)BEaq z)`5HW`IQsq3}HV|&Q+0y2F| F{~!BD0j2-| delta 13619 zcmZ{q30PLgxyRp8M1qJ2AN!7oiYSP<5jD6aXed%cZJKKhdUI22jhE(0t&cTeVr#55 z#yZh4xv4eQq}CdX;uciIrN%^pYm6a?xWpP_5RK7P(cb^eobQ}DpT_6;F?haN-fiA_ z&wSk6++qD29hSxf^dB-LtN)-uLwM`Xi1O_0?0z{(@?S|HQM>s>8zYD+3Wzo>AUgEC zMKfCP;jm8ctbYhan>NWWjh)L2G zTeP7q$B!;i77NjWSV$^~3(~~APD~OTs_6+6D@xG9br&yMl%fR}?pZ8B3%(kxX+A(C z`De4mH2D9Y_|aUf`4TYz*s!A(@a?dPcs9!d{{Ir}9H*(mWQw6^!TUQj2W}H7u=oM6 zJ6p4>hDfpl0!g-4QMvp#TK;SQjtXs+8SbG4{FNCjl_0?x&MQ$qqu?g2C+VA7OT*%BD#!7 zSFAt_T8k}e(bf_hUSLs;79{M_BxVzn#38UH@qwDe^?1G>`#&j_6rnN16fkEf@IVMj z_%sE58%3HWXqRB8$eja1$}}m^T+%Jh;&rqj6}tw|wR{U$;2JD2=(MDq*x-CkWHB-q zh-gsIz3HU6f)>=JTdYG14kA_**U?_bBFi-0gNXq;yG+v*fHMG`Y|wlHOG`Fmw{0%R zkIEUEj|zztr_i24@_^|jF^CU9pI2)duyrJ-PisDViU_b#u!dyxEDH!V8jLBmXhjPi zov!H*x0TBuIq;oi@(T}afpQghY=%Xkp@i{O9!U=L#;psgo0+YqgQ^%`!0i0`$HXy2Qf{g?o-u6`DX zhpwRCMNRf3Vt}qrwt%Isf-?|a(wLxNId$-VP93oU@VlY`Ef_delMm}i#zH$u0QR;5 z0Tci-5WI@DXxAe7z)F&RF`A&p z5KQqV+BXq+TQp}fV9E@b8G$P4U!)0d#C8P{Z~>q%p0a>zzc>juBNh}8{NXnEe_%6A z4F;8HI>WDu*U}nroI@Z7C7F{Vh&nx0?J5EPSqR>B2p|s3y$B=oWS-y zF*6H$AL&yv1iu6N8fH`6Lwk>yUtf#OXgBlV-w&?55?EFclc}mk=SRPRzJ+DBx3C<= zh$1!;6;u!{*hKXFAso2i*$-iKQ1~$pP*7V>H2QO*c}+xq=ZF@80O-6B1YRJ@`4`a! zu<K5i_wgJjGiCL=segrj#1v@jA}qmfm4UIoq|%IqQt~n zGq6rvUOA&>d5pGUv5eb9YeAe`G>lOh$bN*;yI^fKq}@X_`vVLHJFs|qG^6^*7){7$ zv^b4X8;I({Xdze@%P1(0(d#jcLh*ZDPevs`)4j>Gg|4B3r6yx_x zUt$*yV>A)W!tViK+)nhXA{q*IypKxo044z0yHQf?!bCgZn(aiXI5yTp(2@APZX3}+ z^hGH`mmh@y5OxhdPuNQo)fYm8@-<0}l9CxUZy}nz71~u2&6K~_A}+zy!^lA(7>h04 zkIC9I8VzRlU~~!Ggq2?Kzzsv7eJ;!%$Y=|Q2xhbb4DJByg2Dcbsz633SQO-5M+tKs z{x7-&4Zy*%@G1QE{C^+>NbAFB6-c{Gv;q{jBJe=La7NW&R|4FV2y?^Cf$@yi62zKX

>f7)%;*6fpr7!y18Uj8-F# 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 J!qpda{|^Q#A<6&%