From c36bce99787f1369545e1b56d7955d19bdd62b73 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Mon, 9 Mar 2026 22:16:34 -0700 Subject: [PATCH] further performance improvements --- examples/05_orientation_stress.png | Bin 64408 -> 44032 bytes examples/05_orientation_stress.py | 3 +- examples/06_bend_collision_models.png | Bin 43607 -> 46817 bytes inire/geometry/collision.py | 40 +++++--- inire/geometry/components.py | 23 +++-- inire/router/astar.py | 129 ++++++++++++++++++++------ inire/router/config.py | 1 + inire/router/cost.py | 30 ++++-- 8 files changed, 168 insertions(+), 58 deletions(-) diff --git a/examples/05_orientation_stress.png b/examples/05_orientation_stress.png index fa89785e24ecf63953d771dff3cadfd6d17a522e..60f56d1bd6d9cc9a1bb6e27989a0f610c03c2b4a 100644 GIT binary patch literal 44032 zcmeFZc{r8*_b`nMTY2%vUDEn+>H61V*ntSLkS+Ycu83vPPiM@VJ z)g^Lzz|})VZEJhpIU;fLW^rp9ef=r_Q+((4U!;5#d#?W3iRy{7g+E@@hh1Y%KR8tCU4~gi{}5~5n_l`}{AIy9;$$36U6J65 z7ryV;p!00exE59Q`Q30j7|bJX?(chczQgPi+4-6%DM^98soYHoivWMZF=Wg;-yC6k zPmaDZ*tOen=LffZe5lbkKKp1}$j~?E$^JPA=l?s%|67y)f9(^tQ+LnNH-=w0{oQDH zW7U%bMj!7kwJS>ODLLA{I++yn;N#s~+u zIy&a|=3AxBkJeg@H${=@Z%_B+H6R-#s!A-@#c(LDeYjs?!(DsA)=8}r% zVx!=TfPjPF-AtOJ35(4V`f)OW8J%A9HODNbzkkf`n<3L)`EYgl`+d1vw^Yr{QbPH3 zQ~g-I?&^E3CcpvO-*^qfx8lTGZ%+l* zs#pw4=snhJpIIxJD{p^tOfNY&_-K^JLS6Y}v)D@H+R|iPVWCh$Vxl=*;M!Q2euOTu z@*z0~R$}9~G-27OA=KmR7yFDNRIp@%<>HuF|LE`uAZSqFsM6 z=sPdK?U7I2W?Xv3EIO5*)6|v}*xrh!ALSkUZcSHUJk5{yI1`*MZdx;;*!ZLak%UO@9oX0{-T_W zqF)ix;@gi7@ZIUo&=qiBwq$sE5?f5nD7kFadpUsN(oJ*^7Zw*uzpH61THaqIe9W5grGJ&R*wV{;8Y?TT`nO40gg z_+;+ZdZ&gyVS97VJ3`1V_LcaWDc#Yd6A+J`i3;yJN}T7aQ;Df*8EqN5CAkmk4sWhh zY!d{m>hK(EME&j5_S>QgEBy|E>}KtW3UGH4tV`#=RBQ2LFguZ(mYm$8zqN2o;oTJl zWt=T>prjxgKKSOIrO`kMJ^s?)kLKoKgIxApa~yCTk18g0X?xC$N4saZk){%4SUq#q z-KAf=c#-Qor>CZ>YD${wj1YE6oOUW{5+R-&x+*x}7^JMCl4st@4ZBtje>0GUpjYN* z26x%**IN_DO>x<_p{->>T~AV{$jGzPO9d611f}MlQr8^u)t^U(dZsVj|8n-s8JPq0 z=UO6#9oVtxT9)UAGWjbul*QbagV}Z6CKIN5^DKhkme|C^Ps#5?>nX$HdVO+olJTX)>X(-)H86`fCbzY>hXe)1p^UX}-##};W1Shg zqS&_Cfs#D0O}7A6iNRw{9Fv8kui9Z7Wk8BbQX&fLpw;G&lvjpq@#^ZrSFO1r_qnp9 ztq+-KkiAKJzy8JK2P!q_q3BuZpL$8#)r?kCm;@mb?fI3}YwgSLkUMSa+h# z^61g7A$NVqbZCdfcq}}Jb7tof7S=>T4SR`tv{O(Q(ukbAeBOgPJiRVIhV7#5USqvWh`wob? z048DOFdh5nuY^XPadvj7cI&wl^jyd20*+shf>7;bFp2yCJInOX?_si?3qz>y)T$69n(+KO?+qjYp*qM}|yo-3Uq+TQOY zR;<5;UtkoneXr-eiSzvZiK2L}eBBYU{6t>2UOQwVcIFLFi`hAan>U|!W$I_H40-Fr zD>Bdy=DnLG30H>=;>ThzKLQcBWqR*0-gJ>lI!XkmTwp!0k$o$zGZl)6w)9h~){5;- zo6S+y?K^(d%kl5_hCOEZI6vv|Q_h^4+ed zuYI3`lhYi6wRovbo>b41X$qyJoNR`P+V3efv)fmr2S!Gdy%w3BaL#F^rB_L_1KQ35 zxG?_rtka&N9dDN(mjzz9aDh?4Josh+BS&U;nnh-rdZ5HsA*8OZpLzh-nVwm|(hF4< zjYspqDZjmB(k1L~dHm`A{re;G`aeCUNV6F#j}UdvfNc~U5|R)t=05e-Bszue6h!F> zv~Y~V_VJknxO}wHy7j$hEc(ja3t(AEB1EjLY_ec5%PXiEW}T^OS`}VpnO1Nw-2g|> zSQH)8b$kPL2$BcWw0G8yMXtW2Z|Y#EEB@?QuD3)%%R|Em3tJy9-!yfOCK3A%(Lje4NFq~ zN@B|e_RAD1qY(lY<^fY)HFO#iP%>kl(y(SgyiEZ7YH?^5bN;H`jP0C@V;``sKFD~* zGCW;94M8TJj6x|mpZ1ib=v1efUNg8(w?D&vojE3oxVgbH%{d@#;=p828hm=R=PCRB z#t4D(d?>dJkVkR9qM&%r*Xl;H--jKG`&HN6oayYDS-zHPw@`QH1ia)XlwG?HB^icp zUFWEeu8Y4oyEUsv=a0iZy&~c~YpJTH#_;ssakO?93@S0F`S_Y_g_yoTB)>$V*W@7a z=Lh*{`2ANG3=Iumo({a)<^l|K$}PS0j0czCF_=zm%jvcwH1zdA5zDcwgmZu)#s_g8jSiK+ZDdd*RtB=ns?UA%F3Qc zH)6C^hLw=Bu|8KZWZIWcxL42@066A2z;wdmTE5MYwd_Uub9aAOq@|`_%&6FMJ1r(Q zkahQ5`N}G~Uv^&@OpXI?yLs!@%hqyF_fY^C7oFw?JzG|QBY(*{eiL)^A@JmTHf`}( zw~hH)HD%>0u}@@}-{cv9(=dLjdU|?9yKC1TZmkb(PyGy1l%8lM)GAlGKEjfg%|FxHP6wPZLJX*#oQbpFQ#ke-1J;u?gX6G0c#DI z9gAvxSGs20k=sJo@Joa4b32Ox5gQT}H6Ycwqg`w~v1pN&R8o3#j@}=xg#(+WPEdw| z4H%)V<%2XG9bH0ang%h_p(({#m@iD8FRWqZJCS4#=?`jpP>tcf2@9lj7*IdGmt0tQ zx2LD)#fw;#ytlM13K_AnQU(3?{#$F^74^fmvUqz3hmbdKlq||8CQJcqa0?0+d@>sF zTp0kkXDmrXx(h9%*Xr0YNCtf0jeY>SJmOF?z<9~{B~^9H{Xj9N?+x!D0dguvPrK_t z&4%n}(Gbcjr=TD?rBV*$$g||uu_(}%!lEefA)XdDx zws=^`#+*v%SXnc3b1ysjp7foekN9r=;rV~Q^cH^W^eFsM=?e!3Ktme#W9{14yt%%j zaqr#-_`$e^cE06X0848mVt3ovF0_OjK9^vVC@aSTwpe9>Y^qD_&eSkBPtDHGc7#$x z1p3ecn}H*+cC;kpDx3;b#i_xv5|kJB9pRji*j^3nw=Uqk9hv;`e(l9aqUfl;XLq^L zrt6ld!>Y`SWfbvw^cUJiT)6*q&|^^ntK1wdW+7&?x-f=9iG6Z)Jf{2e^CP%kvm`Dk zL*r4-(Z3qsb)O>r-7JAVEV~iy`eZFJ6t3N#1b7ip;BOO6_#nzlEP*oC1)>HG&Lsmc zUcFMkapTEV7RAc0$B97Hv$Y7H_{bao%3xJ5?;WpiY*f2Xw2~^VhF;JUl!qr6RhCYFO;^!$*$L(bfEEH#Ru_6vE8I*%SWV zZ-2vd|Blo~d-EzwAb%vqntHKbrUsNWAom>a-^uFeM6z@7^D9C+a&)FSxj~2YxqI=y zA{PJr`NO91$RM?6>mk!)%$CgGPp0i=k-3uZZF*`);*&g$SSX-_gH8;TDm(cHbN$)I zhKF#}?F!zxJC8pLGf@LxUbpfz&N6Of_Wo%Fm7tcTqu%f;&TNvV;yP2!{p4P$Kzf&=kkdT!X;Nh)U|Z6C3C{Js|DGV*+F zA}$c#M_UHG3*m=+%br+3K;~N;t0KR`@3UhM9OLVV#|D8OBQ*eJ0BHh_K-W#-1@(1x z^MrAL1?@nbmS6`a0}v?QT<*hxLZVT@S>5vO?IjW*0SnkkkP+Hp2W3JT!lurShy#09 zh`5XeupZ1F<qB@ru$dKG z#XxIsHb#kRNc&NDqO>c|U#5x#i`OTmm!O1BeWGCPfS<*)h`F5=6x29z#WJ~IP{5+= z?CI0eh+G2L@hrHc4TPJo=;z_acY=!K6x1Cw5*zP%GE0^5K!BGx%Xyx$QyoT_+qra-Vwh)y0=kU*Z6r4hRm+I1!<& z6(Dvg?zuJrXtvcP#xs$>{Erm=vPlyY5I{XdSWvR73pzstz}C6LeI>Rxa)3<=I8NLF z$fk#ChVQ;3Q-q>K6G=$?@GH+ilcvZN?~PGbM23L3`3K>?1Pn^%%yPWbur z!O+!rSFBR=sIlmsHfwv1>AYW9uxGaWd?@1ly+?@6sHv$5Oy*gB&$^al+^B457&~VI z)Vdcyd42tc&|XXxwQfI(;U9v+!ot0X>Vu5KtC@WrUG!|poVX_digN2EKV`_MKnSK_ z0SK3PuUzRG;yC>hQBVvvE&y2-7s4$+}gB9KtC{}<{ zulJ@xIdGcM8XASWnwFK-BB;1BJ77VO#;a%OXj(Aa+1Vk20?9HdP<%}ms%YDnfD=SQ zpK(sz=zNDc(nPM<45stx7I&_^VL`q*9dhgKmpp;dX|o zihb=5zi_`JO@sd+vxutyG5#*t>4~rn?KgcX zUxrt=Se1M))$0Lk4bZY?3rDG=a9x^E?8}-Ywmoj#xM5cP^xztVpCeR;y~_dDWk-o8 zU?DMyzcalz_;D9wG&;7RGM&J?owukx;M%Q9JSZh++r!OjJAtt4G$S z*EAhJsF1rudrfX-X1*_*8ppbn2$iA}^Z}0*rp#st!gNq*f4y%I2Cax#wpH>)pj#)- zBBLmA&_z^H{l?q`#+gJJ}HSBO9px< zt})?Qotn;%0wYFzDNA5%y1M4nTWgz;#9I2RLldvXU49#orh8PNgp#xa8uJ_{m62F@ zLeN?j=oCasQps$wd~0ikOfuwQEkvyla$Q<-)CCHT80X`=0#eL7S?3uB>RZOhu1(MP z(!yr*UYd#bj;AiDa`iIu`X@MD-%facYbEpS>-I^@)|?510G>Y=PB%iC#+VB<5!+!D@mFVo9Fg{&W zh$kQ)bOKY11)hv;1IaHFgaa{9!%=)7%6r1P@EXn4-;zOkg0^fsH^t|@`@{#ojtXyY zh4Ay&K;P|xEH*ap!bs{zDl=SpC&~$cKG%Cuwnw}g(n;6XH>Yu}H;$PBzW39KZWvqG zv&jg#Efo}As3h!&9<;r`_Sig%zzU2TWi$Y_f~nU3?0L*1J}xdSWK>WJHH?iDp_&-w zX`LYTqZ3}A&Ow0*7bc{?4!Sm}yJAaCx7e{2oE@Nku~554UN=Bd4HsXZzEt*S#DBr% zYHyK4l5t}M2NtD%b}p#8$c`YDM${G+6$PZ8_;dR2^}g=jD?%6%*DmUtA4ubK!GL#->1Iv?=kYy?)qSz)1?ZCssomi z1d1pZVSa5 zuUoo6xQfR@wU-(NhhWRFv^}N~|9*;e^6Ee7=7+7&1Bl~wjia*mYesLMvS-%DolR2< zbxZ8iP5_7HvYV?);;q&~yHNyRK)}-h(V`o~h9sm!A-(pt=*(p>0^@GXUfP1nJe5&0 ziwCp{Vne3jpo{eBn=gMWD9XvTL2iBzPRngTNlIXX;XnklrEz4U|0m0U;!XPgXnf3Z z?M$RR{y%Jh$b7YN*tSE|MOzwS9kn#|PIDsIg5VP9rda`IDEDp-zaV|d_*-&Lx`bW{ zANI+UCjl8oJ=sQnk>jX}yrAP@EW7pN&W^t?=_{+KXrpW(el)Y2C#jvwulm!(FCW(5 z8i;ta#p;0W0&ZLS$~bH&YA4rc2FOx^N}>dtG=WPcu|t%=)%}fp>*fxRpjEnf@nZ0s zH;1M#`iM-7{P(*9;=tv@U=E!Ews1SC-KJsDt&E$CO9^mLZ0uC@x&u@eIL)Pny)-Q8 zD7DP?7d57u3|BpgxNL^sf8fB0NE2|y(53}BBO>n=Bjg)|aA8$E?>3N8U*9>sQ<7d@ z<$UEEhBG_^;}uUB@wLP^0`=UQQ@3v`$aZ?itl0!fxxGhd`XUwhxERu3I&`RV($QRh zQaq2jNBud&^PLR5pz8V{Aiv%)C8|Y!K`wVOD#~6YDsle=7K{DFM`lXfy@PfRv0pf? zgzdq4t=l~iowBl-4Z{G?LzWcir5(jM3#bZ>&R_b*?9J+fxy(UxI(+zWN2b1nC+sa; z==|3DT$=mJEZl((*wuONE7n7~U_o|Ig`x_BHb1HrApoNwFwvgtTFAE^NCmZr3ptV? zh(L6;rFZXT+P_mve9W#ce!B#0wd){2}wPY?#zfc6L&)dx#wTsnF38Zti+C(+C?UX?2BCU$}@ zofaN`99%0cR9ze!cnfyV9+bQu=fA_z+rQS;wL;jP1@Q?*K9t1{_}^s2X+Wby2M5W9 z7aMWW=mnGlF$9NlOdtn=NVN&DTnW@v4mH0u_&jFED5M=HD#q|(!O%+E0>{r{vMpi9 zI|UVD3NTqW{GHRDgRCoH`1zS+*`8+xI~W9$XxD~4(^(u{2Iw7`Sb0zdU9Ym>AQ-zg zK>Pveqr7&0e!kq6538xES>MngIw2A$I$Nj}NaN82YJ6}|(CC420Rggye~G?<8wUpm zP=9a>=9R8vr$cgo2dkF zHw*DOIC}*o)*(h#w%lvcTkcr`h2{X#o!r)E3dq%)LFnovXbT3M5WEf5rv>tXW1m&Q z9!t+>mVcxBlq^>7`A{e>dHua$Ek~G6ERYq_OrM5&ni^!VxE&9-?a`hC2o_Jxd2g3E z&Gx5&%tMS1y4|K}5{3JonQ#({jN2xu8_9*pjzFyoh%O9Q`%zd%J=6J@@Pm-R8E-x= zD!N&4M|#0UEc>P=hx|ZY%Dxovumbe@AFf>XMwZYmC{c((8#hI2&MnpkvSy+{Fh2om zAi<*L7@yAfA0ig#v~rWXMv?tk^MWp~ml~%l+QRf-0B42brp8WwS^BT}MNf=qD-;Yc zvw%c4{A#DC>H0IkVikLh|4oWYHj)%Am;cHr|CbF=D?5qv)OAQfk++kELdQvN2nBrp z{Ml{p@vN=ThT9M>XZ;`TVrHm9A0X8yK8lmi{+^Hz$S=C91^#N~-ZA=N#Cewod0NCM z`Y?Rzndo&JN$E8J#Ypo9J}+oM#Ay8u_#N;#w!Si%{q2?!2m6{?%G1=;t1n*V%Vl>& zWS8V#R~-LUKk0Zy^u30NfQemM z-}C}2pfgT}rf0?p$y8wSc@rkVQtd`N6>QC#+FA=Zlip%nnvGkdg=Vhl8x&jLzu!H0 z;>xXxjRpA}i$|{iz?LtUny<#8T%}W_jL?GPR7z5+My8%ti4y_k9zZ)X_rJV+!;Y!~ zxU3bNx5D2KlsH=e9R{(;Y^fORokR_NPc>v=gXuVD5d*sv8QBQgBM6SfZO`=xFSAN0 z*q4pJ9S>j@RYy7RCBr4uW&!ZIMX(tFVjd9gGRWszdFCM?00TA!)zxzm9K1=u5N$cl z;%Ol~8mU=XcRKE8!5c5x48k4)96eNV z&ZT+$#|L?Fp{5EJDaw!Bk#`n(MI*KpuG_$W88e%g@7;_Q~k_jT?36Uus!VI5A|} z=u&{B_Af?$+;#8|xyeq`W4JPGa}qQ~q{2;^0)vSV6Jg7Ib0z3)l}i8Kooa^sSl{Y4EjLIC->~xgVY_=v7)c7rWOKS1w?nC z>Bi9Vl?qVcq4yzErGK*Y*V(qi5_~g13N%G^5QU5eK)p%I^zMXMOz-GW1?HoG+JjJi z2b&mFe{=YZH4xZ<*e1gZfDS1_eM1c@xaxy~s1qe`udxLel=>$n!H(G20tSTMJFkm(>_R$^Z4x(Dk+AyP=` zOqAo{?ijz5|6p5il17x3NsiVT|4S<4_N#8426@!PVyr#{fpkZ()V_|{BgKYM+@mly zHdT~d@$JPMqhA8rkyi(G37lzN#1H;A2wWOjNI4c}uLjH9i9l;xnVtJTcyBGnfP~%# z2GV7(4VR&-NXQHj98At>5|M|fK;18c5Jg%8)1#xKIDjq_RR{PxnxaGnY=20Kkvdd( z*R)zLp8LYe-z53jRwN2^f;RYokkC;2Y5Nvg>jLe$(#2OdUomNpubmA)*2jDKfO8Fl4<#T! z;j$W}kN=f{Fqf;))dPNWOWKo~_6Jgrg>KHP-+wW@&&{vkLEOA~Gpj-J_+P|E`}Ft$ zk?fC~(noesB;{#=xF2C5A$y7r?^bDC9?zis@Puy`LP_%YM=b(q2?c`tkHP%o9nZ`p#5IG zdEVa3$(jUph%G26p+3}q$d0{$vjhhG-{@ejJPTK(0tRRp;J(LN(qPKm>84@3`g44| zVbXDL-cx8Qgsn=Ew-@7w7B0LA;iy`PIrZl}wkxw%FR!FvBhGIb!v2g}uX{=xSbG}F zn?JzK!vj+Mk>4cWlF&hG-UPU<-Z5?^a`gi*^7qWOh_+g{r<>eIiUH#D>?b{$dU%^v6v3F%#3q|PI@ za3v4(Fy;PqvcS@f8THOL@FgsZY1gi71{pqb%={fwv39qhDU#6BZo?5z&iN&pof0*W zq5O^zELhhB2xDE)|CSX5sicuOkJQMjDyf6V&r1f1Er&y0oqA^i>AV<>StNCWW;$8A z*whZyJ|2(_Tj?px??Ccu*TD8|Zh2K(Ke@U^RV-d>MNInwmI0Tj5lYv$rI6MK$c-oSsK9dFTq zmNNEQhEw^P@6qu)I&x1Bj~to$HpThT+d1@anDw=DGgAsKZIX#3FM6S4lez`Bsm3V{vWCne*ioH09>IEU`5m&FyQpWZv`yr_|SmTzOmnO)%{0Z(T%Mmrs-WnYq)D{Wo6P+*=8ORFDPaLp}(D8>_I^9U-2>+4zfFak7*{`y6zvP^9Dj9R~YtGXf&M?;g z*eG?Nk8lskbl*zGWi@4pe^i<^aQr`htk~q;z&`Dc1D0cMlX230D`W3CK_D`uL}zS| zsG44u3cbG?TJV_QL?IbD$&$VE=2v`LHQ#)79ADxR z(_gdxv%g3o|NEbzD!0_>eXpL)>>tAS5jc8c<4yffDt@A-v)oipaB_dVnE%xT8|=8j z;N6;NwB7!)XT@wyRT`8-o8^)372wZ@0sK_p6f7uC(*eL@o>ySj{zZ@%#6AXwyv!#r z!A%Aq+$MUh|DR@osO7PSFbAFww9u@IHwg1FHYn+wdz!|-J)`e>jSv?ae0HYvr_@Y; zk&1VHuB^F`hrnm^JZ`SKw0QPFd=QV(fwmua-b}p=rvKwP6_#+Hcht+hWohUT_Jx1i z9Xb4mpAP~LAFe-j<$bs5o0%@Wa;)P*fQBisY<#`fx>N)o- zySi-iAt60|vck`lVfPZ{MQCMIh`!ph@_o_~X?$S5D`{zI(eg;Epe6-~9&kZLDAu8K zKwYEp?P7hGZs%slqS43jG#;1vLEW`^Lbt%=R0HXYQ|5?r_SCog$Db~EZK$)X%#{VD zUs<;?DN?3;7alJrFrX~2m1=*zA?=d#!qTU$mp=LprS1(HTBMEbcI>gC*d-^K4pBu- zrHA{Sw|}}@e!RX~Tv#irOlK9?$&ddTs(QS|UV*?-pe@fmSR&8LzmYlOPNg&#bX#3Y zM<>el5lPeVxSo~PvP8}FKFgBLMBVRH-eTZi7 z3VZ{4)Y`AQhP2HYdjM?UXN|jic|zCGG|4dyFr&x&r))b78EVKVwSI?lCJBs7fBAYp z8)OA*8wMLI*SfJ)o4 z3?+@PMc)2Y7B5H4tGZbCK2O_k`s70rN4~bay*o!(iQE_H*2ww;GXD1{Yrk_DhVBteCF=o zuyPhd3iEXYhEL46-HSQ##y<+{mrmn|-+G`k`-VT^grx2Vch#d+fSYoma~HMODw8U0 zq4}d51m|-=5V1j=lTD&?9q(+)Qy_e&@bY{}L!Q%{1me{V%tYW`)oxEhM{-6<^*@X-CdjzDj4xE7A~rV(AOL1af|f!cW)kUd-&tN;w}tj@|}a@ z_@m4!p6APcyeR^C$}jwc@$kG0w2mdx_gU{)M#IW})tzm9gaqhSl@79w`fyvuIZSM~ zmm=k)q%ES#WJl_UHzc7`*6?#5?TAxJo>@Dz89m!KK4V5r+pnU0f*dV?f}|48A&cV>U&>SKhInZ-c=ai^~M&XF{NzY#c4v%!HY1O6XWcOnX_WL?uOrxQTg-{}Q*rbh2VqaMt7dY*Qn#g|q z_LY~N^O{=4$G>%M9*%IVq=Bp6kD*nC_xujbqMQt!@{}|pW>7Iv{JA#4tVV`;^b|g2 zi;nuFF1|R%O+2oI+>6#tMjhkx{ts~Zed8Ef%rI>mZ)k5^i8t`LPkj3*u^*fr_h2Yr zK!LFEcHBSAgxSS*PHN4Dymlt=cI(1e1FR7(UTTi=0EYJRvI_-z0lSV=vDhFI>0i^i z$v`*LAl@qQkZ1_*VNbf0J5{4 zW410>hPTKe^%s&Jx#~&G<(KeVPW0R9Kcf+g1%qz#cmzMZ!zeHTQnD1MXwX5`Hw4)F zM{4{zun>7h|+bGKjYA;n!<`v3>V= z56aD;0R++?K&fK=3z#2S=$A--^}XsnG+z2^ZIRKNY8pdJ1;^Y#JNINGbn${s1HFYQ zo%!Iz!psFzmpxe}E9`BT)1cE!g;rD-vGZ!@-x?bm%j*Sp2;Fhn)p}Pjf5-uK=>zwW zl-++_D9nqstnA~=-(&CiMSeBE-LyTT9_}B1dat8stMm)%SF1k1kxHJH zs+CKfHT*O9?+okUQCB+Zh8CRxWZelK`bIwA-=6*`QQ?L`QW2icHYm!&z-#G?L)I$`&8sy zZ=O7?u-L>^)aU`)%VxRt-_KgxdF=(NYUke?daATpWF1MvA+nUnX>8VJooC4!Q6b|2yU%g(bp=vR=x$p{pf zjfZdwEa(*KQg!I;HG(_M9W;Vd>T!QeLbXL;3Ir4(co(~xA1aUTuqTNvI5go@uD?}Rxo3QH}5mX9;-ET3vxSI-ND zTX^;wPR7PjVZ_R!7(wJ9UUE7R^TD@mN?tonIgk@v&EBtcnE5)X?Dl* zKyX_|PHe0dK0ev>opLWu-F!WxQ7c*##!^t@0Q8mS^`b^d=<13wOKn4EQBMHpMrH&PTsSYpv`3 z7z@38!@Zy(YC9;i@l+irmM+9zM=3SqtVBrP7IUX(G;o`Ri$;0s&R25^Hy~uTN zwo@I*+2Z{t4@aS=g`2Nsh(d%Nt8GufvuDPV{NwG;uoIKN35~_q5W^l_9H@wuyqy%} zL(OK{F-@L7jhhT^u(9b7H<(j=_mlfu5c|RMiJNMhPNeBI!5C%W6T7tdX*1Bh)f(Oi z&&d=?w`HlfZyQm&Gtw4QoUd;8M7yX)joV(Rqxnr@YP}rJTBUugouNa7tTN_11?CrI zS|7^VhniMmqU=1Jy{WjqGzu*83@>QbT};)vmO+Kt2=v4l@Vx|s_s~o7oMOXRf`U1P z&z%}^%z0M0BiGMTf5WiZe}t^?9QOO6XXKYK&vd5AF^izhNcs*}QejSoNi35^b2|t1 zl3iwb{FzL0H>$fo7rMm_hMKjHG9TfYvw2vWnku*MwRsJoZ(E>HZwv?dAwP7yN4A4m zXl`?zrZ3m7+ImJYAB(>-lcK8U8XU~wnP*Liy-Ei=?7%?pmUIf|?c+(GeO-nwreFA2 zyqeE21t9W{9yx~TrNjyuFu*+T@jyI#8atrhkv3iX+?kOi^M_w=9COAz!}u;fhBX`jCNo%@78lTLea_1WNn9=&$T(|}OYbrB=I4A~-*hWucY^<~QdO>kw6^X+ zPT_0gB&#Gxne4 zgSosH0=DY-aH$=L*^W1x^CQm3I}n@#YZ4XkTR0_s&43{a3H#4Cy7!OcANap&gMp62 zaJ-vrD`a-BI<&~d#GmJk`$)9Zz)_A4mzo`(Zk_7q{Me=Iq9XZ){HmRxPZBo zTl42KM`sFJ)rW%=8+NYK_c7bh=_`5sR3rt>NoL8cywBonoS#0NwZNI^K+9hEA9XK% z3fkwe8)+dgev*-;pgqT%M}wv&jLvXyfON3?ftY0cNpy^pk?&*_WF^G!WzLq4vVtx_ zBz$(dX>yxg+{mcM6y%+(3S2U?)R{4RT9|@cPwgq%pw8x$p+Gun=kA%*X`+S8xzk?7c zFTigle;Tr4dy+IY=q|ZMQ;j@Elf<{q999zfiprFdn z{~q|+Rmkb*x&A%UDU`%-{Toa^Ur~k++6ktew*nHVyk0e2`R%vc7`MaT5-JR(FvJ|7 zhD!FTvC8Q_4u0+g^NOcb42NN{*dAojVA!y&pZK7gLyyAv!sd&CZx`#2o zzFFTXj_Y}r{4`o7tGqV?a`SG@yG-GmCnIT?gw6wKmXxLR^YmdyWO(2y6_ofaq4TF9#B+Qb#0}cBx3Ty{#i%NA7=D4(+I_8% zDI6g4`^hSE)-2~Vb~NpBErXJh2Ht9V?;g(JrVxb>=e`2Z%B2*Q9rz7*pyd&C;#E)W zd}P2e>tT=OC2e5`>OTz7LgYj5NX(twd1DwA12->k5LMjZq|w+IY^!dts$rV^?%Y+F zZ-S-^E4GH+v=4@lH&IYCoh|5Np3e5kl7ekO|2hU5Bi5Y4E~Qg{t9nvn*s8cbz|Ebe zs_bzqDEi&IcWL_hHWugKZ|9aMi+VXu<`el<9CPyqU1O)8M_im~%5qaA+u+lw7RGD? znv(Q^?)d=`tKz2BMa?Pk1?3(sI|Jh@$jTs`sOYfDwC>U!$5|-LW;&|XThAw37<-hp z%l9iMsY}N30U|xjD)R3!DW8vDKz)5<6Fh zn%wI&vtn7H^9|5wF)d7!^3^Wh+8yWrqMrNR(nj)G|B?IYq^-|4wT%iiJ3rt`MH0_+ ztY0#7(THkGybi}tg-M>>6KcCCpQ2-KO={qTaa6-hl_wFNKKLS@Jg55Lq~B@odcgEm zk)6ggPWu$-vFn)1bExXL-57b;!zx{zQ#!U+;#55O`5@VT3XCzr=pBdZD2yqdE@|3W zTD0PhKnA+TK1c3jfWW5taOL#M>siZAHM~#|HJc%9&qw}B{bb>CJC3-UP)?m2=Oh|`yC4di|O_()= zE)=<}hI!FtGRfa?{oyy^bhex(>3TJEx{_B{<{H~+hCI<6)peO{e47@JFt6@MJJQhX zl;mu^+{}inUoUPV-c;K_Vn0uPL++UhN&HWHje2wcgA;2J{!l#8Qy;*Xp5Q++XKEXb zCaXouU1Yo&Ix;@F!i_om;h}cA06TYmY|i=vi`7^ia7P3ui!d7|(58a=eRDx}C*1ug z1z=1I`Y*E@7T{EUgkd1*>*zch$#;W!yI|O?Fw=#)MW6BK)Wcs6 zB2jRGiA!7KTqpAyPma$S9On)fyz!(YKdsQT;)VY*v75CZRn1M?2q$q(b3pNqmS5aa zqr5Ix>p_~KiQ1TGb-AIOkkEk-O^!Ap+G-(m*)<$%TeA^q@oXA)bZ&IHyn3Z~ z-wE1e2$aE7EY=odwx`{v?Tb{^)f0n*TS@|q55fYt!U9Y{$9F5t5+tI@2{eugb`EYb zAq-l}u!8-zkJ%^TCZi_kB^WnElO7RQtRhfjGfXbt{`m3NRZ)t|>N`^zjK`eTBAo+5 z#XTGd`6C-q+)YC%yfLL8!gu@GzuFA4cZ*KXuU!rkD-VgEYB`6U=b9vCG@Pdzv)+=U zt9kOmA)cF$>#x3VHCSuxsehR1tIAkcw3R*&XL+X$QC{tqj$uw$rz+HtXO058-N#@` z6l@p`G%0R7$Z*LR4V$?yPq%{Dh*VfK=fZoJ;Ef>G6CZ1-7|-Rm=-CxfuD{;m*xj8oi>6iR=x0OksFMnPL?g^6x6lQpplU&zJ6Cfb5n<2 ze)LP$W$FuM*&QjY;@*l99$V4p)YC4OEUVsbewclRv*EX!+F0uAlGrUi(mt+9?*7dn zFaeMk07G@t&#|3ky>Ajt-A5~^E|u!RZf(%Lr=ltb^AdqUoyHnKB$2-mTq3RhZgYj7 z;&9M|=L_3~(df!mq1mhxlmYOgZB~mj1i!#V=p^xq6c0bs$p%N0W;TA?zfed@i2Op1l^JX$6Ivy z!gMl*C@!QjJZqS7YM8MuI`qQM#XMh4$T|lcW!KdH1=T&j@)%eGoxCePo)O`ycD*QBy&6zS$$&tw<`9hlAEAQqYL|TEj_Ey^76W-EZ59kLut=fn4GjvRX{q?BOViL) z(E=?c(0DTDJ_w@~(2BDJn6|s5A9kWCjCx5plt&bgGYv>`}+Dm)=MjgXL^87k<*i>MNo%sIq3SuLZj0` zJ(`1<WZ&8jESg#$W^2xJI1$}64B(U4^ zPVJ>kt0gu&(ejPtCN?{Y>@z|gvxQ{!!dnmW#Fp8I*z8KK5JJ-0c&q7o|W7}=>a41}@tu_x|olTJLG;wgjIMy>|vbbnCQ zxA~K8xFBe;xBJAE-cMVDaFp5^JfXGXP=JX*zrBV!bOAga7;=}VtZlB7ZBgzcKo1QX zB86uM!6O``(8DyeN?kspm3mBl7=~Y(&Az@qi33+fSbRMWrrNLF=P%K+&Q#^t4&-P% z`mmqk_X@q%cXg0g1V4a4Bcf|XP){ozoFeW#ZVB3OVW_C%*w?7rN$Qz;1T;aD(6Hyx zm-AGfq%RvHGgwXL&hqiP`bptC3{inrU0;cMiXqAl#b==o+#50`Tu9G9o;TCV|Gq%; z{&_Y`vOdhHp$?o0e(zQPIW1B|U%Kb^=1ShLD41#8+8CE;7`9CYm9M-n{Vg*Ph|5s+ zOkoqCXZWDOX!IZ*eNR#ddaePQ@W7{*D5JJL^neuP-owKTz*>PeY3BZshxAK}8mtz; zzf)yQ=DOr(+^JQY=Fc>=a*k((Sq0?RG0tq;gvqbW;v4j~!)XF$QipUTyh#^;+SpRI zwzi@tbL^#NN`}XZXrOs0G*SrTN<{EfS|KJ;``+4YeES`m8VT+JjiDMXa ze{OE_fp0zF#>L6^seAUD=u)M`e_WWtN^1NB^aOO+2>Pz$>UO2&Gu4p%uRv+hiNL04UXem!wiGutBv>H2nUD}{$BZ|3mEa9{Kuxsv`5|ZbK7)HeA@>3)YB!yH91epdHJ^9S zM$C~zjz&}N&?|S(fFASgJhYZwTeqi|GzIQ_KEzh+88pMd5~^f1_&hJ_@4Qdyv+82g z0J-iFN8ySabiLr?uO`X6-qy%!fd9FMI^rvL+aKV`O-eomz3vzvwpi4jeeD;Cv7X(_v%lDHp~cry+nqQ6dFNu zTf4EE2{LC`-o);9&lT?t=7*jFVYP$|?hv)Z@Bz;*qi(q$=jnpgxiT3B+Efl32ES!G z<3F}?#s5bAtyd~?QZHF~VA|mWdYWP7z2jnTxg(-WU4%?4D|K0zbx20e!;kY19y~Bz z_N0;R@rCD;*t!7G!7y=3!L|LSKv(D`iC*jH56AF{0sjP3IsD@aJSyOil7egnDY34Y zl*docsFWuKmIXvB2GOoYBewQ9RU+O%~&cU1vWVdVk-c3a% zfda;ose%6q&BC+x@_4VS?co zznyEs-f|3v4yPz5V3gse7PQdaRjW&J>}l+RMK=TX(CQ@FfDZGcLZ#p9gFyPPK2#j>;Gu)t)r@H z+kN4MsF;9AiIkM2qJSceQj3yqL<#9G0T*F_sDPl9lnO|Lw19wxpmcY4ch`5__`G|6 zXPk5PIe+i-GR89=oUA$5ocFxzx~^Z?U!m$Qmn&V~!HonvglW<^-4I+0o2p~>;2WMJ z0FXWHGZj3Hw?Asyh4`+)FSy6ciGqfqea~JG9k;IlhB&0f0hF75z;h5ax8g@b5Y-Ja zqVyn#;{5}4n*nY}7Gbj3~Kq1cL{A2=B1-#KmzOQ5sx zQ15?-hvadX%;kv=E-HjBy7~a3%9TH=MA(qJ>F!HatuPd1P{Lz?$l~ae^UaJb9f@%0 z82Z)$3_)O9T_oIdLkPP3j<0SC+~{32+0h?dQUoqZKXmYf=gbl~3SF zj-5nLLOg};^OZEZ&p|W+A2UBVeCgn@5w0T$Lvh}Du)+kLO>VjQd%q3 zh{erzP=XxUm@VZML~U)x4vp3fjN*2_@HS;kFw5Sp{m(YhfbRHq>7uc9XSVLGoIfL}LMm&N9-pesi4X3I05n_> z-v((}A%!ISYoeZLruActA{l9D^1Eb-{@u^2(#A{^E%7`~7D3mhdar0Vwhb864rh1d zVVlb9tQgY<30-bnn9h{kHdZ4|`=hUJE0&eMl$`KEmhJeJ94$`qMD1}Cps zzPYxil5nC>^BiHx)z^lhbDs)3!g*2mvEzpwD8l{!qnWsn?>yD=d)@X2H>xl9dT!4O z0J4%9TQ9PmjzkGSFUcJ8ja+wl28fU>Ti?FbV@0hJ;5!8fZktmQ#FdrjsnlofXruoc zHC`O0jm%Uo&2`eqvU0Aq8ud$UYyvnJGnx9;^wo6`Uxc|!L{MMi2fEZ*Bznka)xoWA_wC5m#&A$;fwiu_$80{5kVu#k{|IUW zNadp65pfHFLkPJ1)NkH%4n-rN!4_nBbO@9y97-k~&a?kVs-q}Ph&}y84gFnp+FRA- z)y+%uOT3#!r>DY38?;Nir)ut4x0dTpd&inM@2}ZUj~T6h(z14$Wy`hL47=GmJ4z6_ z>}_o>Q}Uv>OMfQJlS?^GE9z>9VJi#U+AICR^Ci6nqhS-7>#k|4{lRbDw`l+kcW?7L z75n#1$E(r*LdBQXR2x$I3G6=!(`c5&0rj|e;L%Bh8tDZUg{^w8y?CSz3gnk&=tv;_ zbqN6Ao3Yn{M}q{Rc9yDFFS$aN6KN{NtU(IEhew$EDP+E~zxDTvnYCxeDDn>;M)@*< zspNP{ePId6R#5n@?jTXvgalU5;DIWDc!>r~{CC+nIGT|_!-o$H&HcwOHrcUPJ^?8J zbcNbjVcig9UzK@jQzp#*htz#-7M^qQRms4!Bp0;0vGs9InJ z>{tLDEvNHC=-pi2lo#83urfcVwazyiP(CM+tEn3>)2gBWP`{@&9!30hjc_(yVWGcL{HHc%8}oG8ZzrkVmR&T57^GKK7;fP zvy_1Nt+&g?kAL#*?q=DRSa<5DN0#e5idg^RbZ3ZE;`daPI`mh{io75cA!g0KdgB2* z22!v9)=36ZNJuKd%W4q50oo1Drw3TNz+fpJduypvtVeGK_~@GUsn|^s_L5Mk)jw^? zeVtSNe6^&7+PA9hJiZ8I;&MWUt?_1y>%8q?ttUotsMr3w*FjnlvKyA57`Fwa^%W4) znDDqkDUVk|Bc3J{MtqL5Mpin0aV8_Ry4ty|D_Lrbi>Ha+=VT?= zhYM3buQYrufQ2j$Zau4CQzd0Pe2xh%=jDv=q8i}Kk`eMAbukDsA$@fb$@Cyvr)}*2 z8n8&aE+(zDkvKq1adiLwYQZ64C;Qu{h1m52Klhhd?0!mOQcC30#fcLsP?%(!)!IzX z+s=jxvn;IV6;}K->yenGvz-qv$zfU1ZP`88DJ+N{D#ju;6oKjVT&idrAmdrKae{VW z+L5$Fhal-t)yJ-YbSFlve)0^hDg@^l`)v{kq=-(uPx&JCsEe*sHFwVKo#fHN6%aK5 zjhwyJDxQ3)O-M~~89akc06Zu@cL1;~g$oAUZo~u}AAg_t{+-{)f2iKU&Or7>@h*ZK ziox!W7^!A|42g~HGaO7~KC=SRh8^oE>r?+XVF!HX-zxT)e~a?}pTg7s&i&*Wp$o)? zW+g7OD!{%{vV0a4L^QR9hxzszirh&6|Dghn4p4-oX`#YULl`8ch2ZLQ5ja0t4!OrV z(orMViibitsD$@{K7!KwNE`q%_dXn_F!G4ifq=!)wn#$_CS=e|0h;F9FR=&ttDn3{ zKUvsVSsUJTe@xEHQEQvHRh}t^eTHpF*EL1z>*8s62YNqGGNAH2u~uRep7dH;dT+Ao zU8{14=7$}k<*1ct(2|+}VMb-3ccLsK5;}uKC!$<>rylkm0GM4C(`3&1%c>?OqZh{e zxM zlDSCl5+WCa7FIG$c4vDG@m}+DN7H%DE#^pQKhn8fMo8PRKHHrH;#WXh#x`}D#$}*o z7NkrN=QZrIK_*fy1NE?#r>mm7leeD-ju}ylJpc*$Fea0@ST2v^-B-&1#eHOcq-%fK zlZ=8q?eizCa;t60Ku*7|HLEn2(k`}A%i<5|&VG7b%e}O_pNFLr*VIBmO~qDspjmgj-8 z^V{Co)B(XqQH2n)v6&j%`@8-7lYqf(+u!!uzYP=~q#OZsDm|c3UzG_xGUseFLcP(lQfz1j+(AppQ#TvI+I-?aa2|NM4AmtRA3hN62?ce>_x8_)2{&eLym?TO^pk_- zTe)c$mohm(IuF6(uK{fQ7nh1E*+wK2>|hv84FxdC1CKbfCZ;*;11L&w$KId)y*E@)=U>4w=fh9&Bfngpn{Wou78P?4?>Ff@5^T3uZ&CFjfD z+{*Ecvw8dDyX>91A3{o*A?WQks z*#ua0GD*Vqm@m!lo0NYr`jGa+-QtTOO}1xe+?gi4W!PwRK+P`+2=J<~mC7J%XwT5S zSlFEb!a`eJfdW&kNG}hVRTkXuO7t#45APp-+bGd%Q`lqU>V402DM$Zmv90J`&1}vIX$&y+3PzX z#zMw_ySRwpQTuRf-Kt=|ayD)z&G&MdH^bL# z`?Df8C@U^%#?2NK=3MU}6WJ=Xy8x z>}urBM8uB``9hh}`pFF2z8$IDxtK)rU%VhjRNnbwcpjL#r8O@Yue}C!{O}b3hg!gX z$NA&v*cd1yd{lI8gKi8uh#=w$g5n1vu77!1CzJo-W!;rMn-!t88#K_To^j3ZjjL0v z%U)h?g@!gD6A=Cx$$TKO8a{@rRKK9`23oCQj~+cD*Ef)Lc|y} zv7%0nvA?3|?#g4A@IWR$(>h@qA%U^_%7~8up&hqLy0-fn3-DgQnIRj>{M(z?*U~){ zDArMLf`YAao~!5}YS7-B%^?1clx0$ybUP>N?Qi+&Rb<|(PoCl#>#V$=rn;{vE2G%Z zrP;>5oz*Ej^CtNwSzBbel|kg%?w9)Y4iXb(t2C{Cz9HspW+5+=}({9v{yiH znU#kp_uFXKtV{o~Mx+Grm(`UI%avKzjCpH&bR6!>7v;XY;cC*Msc(9(=o0Nsi-V$m zPTy<+5J)rhOA6ZP?SV^`#v{|?1NIKM$3J1kcqu+~=vjGT!%vr!T*w3E=xM41$vR00 zs^%&~Mcd9X&55mPxHwO=i_>hk!ol_|&y2FrDE*vY?X&lcDSe}lC~8}gS0wKA0EAh(n2*Nk#~BpUV7}>`7VBR%G)?+amB^W*6JOme#U6GuO4ybyOirc=l5! zc6^>I?^8z23&_?WsfTMeJz8nAkOXc;+Lb8D1h`9hV4Y&86d+{@VOtpm_hDl5b3T2B z*rG;&UeEF8uU}IydFmE${`V=RO2ZSVom-Tl9%*lV!&~M)rEi;%?z+m?H*0KYT63Q1 zSB{i6y=FP$Y#XX+E}if@wqqfGbk8^-I~5nVhF4mvbBmInkeecKMm`zf8c4C#A|IA0 zRxYmEcF^t$w}cb{C?JRa7;FH1Ko-oiJdXq!r1$|2FN?*dtZo3AA3*@fK=J{EkT#`E zlcohQYTbLCF0;G$Y*!~{Dos+Fu`w-!352pXQ4c$+3%b&Cx^ymaRu(MvGY8a)%MjE& z_NM)S^ko0xGrtD?E+ldS(elv}&UcbebosODLHGj{{x3H=(}?|KtG%oqN{H+JEgZEr zF=BaJV=cQgzxXl5tiVcsm&uVyG2;n{LpuVv zX^euDUve!N9NjnxVQT-s-%Ww#f#ybV*UsJ*-LHR30}xh>IEb~ad@UtPmewJ{t=4Ehal#NldElK zlGYKZBtU%pJ6FQ~a+%lB66%AahiTAJ?05DA*9Dma#up^akFi6Rj-KSHoQx>UkTM}? zK`dgSLD*LBcK~e1Flc{%;)Gptx;wxRyrT)sqerO09>6g)rE(Vw9)M)I=0M?&89u%c zWp`}Si@J9g{ta1lF&QWhnAul{U)EGMJOkhF-Ty>Y=CUkj)4%v#=#t<2{wP8^djK;? z(lnbf1DX3{+7L6FF`;{F_zwIHGgMhPsB|=_0LNzpuKM)?DwA*p{6pNLK8&7@6WB(m z`1KAC@}pv(&H%#-;bGm;NAJV%U_g4fd*1K}+~=Wpor7<;!@##d)nQU>0|NW6wkVmN z3(Y$i0BL$usJKb+50&an5S(|65559Xs3Lp^`E(w}pzlcrtmq)%`@ix=7uAvL)1f<= zLL4n%ja3Dg35@E8qHz#(?>y|+;p9X@|K{NCaFpZL+=deGmXOhW9GX&5e~PKymm z`opN{Up+sKItIfLxOIJKO7Znde7~jLy;8y$c!p=Z@C>~042OH^@ZD-xC-zWjNrD|( z#2vklKl+0jCT=Df1%H-+3E$&aYK6Y434Il`Cb8OSXH(H0n>mz%PDKZy3PG$kDmm(4 zEI=Ag3Yasw=dT%?-!FX_BXEK6+n8yK2?Rl-B!& zoz7DRw_8&;(_qzN!q)XFh8D0{2N(O;fhc;zkm8L|QsM2L+&|lFS#`YOdhE*BjDpV* z{4v+Jgpllb*M|~GpnZ%t~Qvmkgp!5$^M5V(fXo| z>fqQ-_0OJhYm;wpL!~?m@EGK2bjJ`xohuVqJhJ9dAB?1Ec`7l+y9(qD->0Z1wVCgOzFeMF?NyKkY%83<)N$wCpYO8RChy<)YKc=y2D$St z0x^f3-XZS8BbL89fCtqy-X@=I8%=+?(J%*W2xIkypbE!NNr%i1AN7a)AC&G6!wKl; zf19!j7_)B|rPRAMi=hevfHZuRx2unCjlGMO3)a*SU_&H6nmyv6UfeR4d`&!)@R;>q z!Jq~+d#t^~n1K2nHQWn6z`}j#VW?oPI8t<#eg&0D;W|2cvb*A6-n(D|P^lA2lx785 zQHDc?7WoxFE33#YPpU|YZJ@#-)VD%JW4VHE`xB`!9}LmIhmJZN5*VO^)`TAgLtB$@ zzAknwY#(wic0JZRbHGxBzr6ivn9X{rs5r_4fSFM3e#LR|%@{Qat&&m;Vj+VLQ+Ogf|D{R!3U;NFat+gO>Y$ zliIMKUhz(cQDVS(;D$f)6(5qHK#FuI_yxrQL<|n@o^3<+Rv=s3F9aok{Un52+utqU zPl5`c79`D@K-2R4&r}#BI)MQFN)Wl&V!r?WlTwgZsW=6vr)p^|PU<>%C0;MIRt>Ip zt}>C*=0soGTJk5}160g8G}4brOkx`7>ma|60CLldU=j)TAn!r2(HxxhkP#DdYC#}Y z;8p^_0HiPxQc+}o#}Q$Izp;Y!_`A-6-K{hvI<9@*e%I~vFmdw>y-THK)@gV83)CBx zm8YU2Q{IE?Kpr7Y3maQe-+0Rtr#j#)9zEoK3Z-!T&55 z3Ji1uQkD&SP%rHDVW;!d$j!Lv76k}2kTPf0Y0RM_pi8-~(+Kp_;L73SlkL=m-CQJp z3wn_5r~PfH3;?&UZOWsoQ@Q#jE1jA8Zy`+(D5KbB4$$;G#h9tt6QX6BmnCuA8MF~M zRDaR9BB(1~8W$;V-hAffx{vi>&OD*16~$k~@@2X+5`b7n+FeMb;kM|mTF45>a!o)V z$sj9WMne3^st%YAvF_n~M!!zgM&HO)+&+2v%R7*~+ovFc=|Tnsmp|Nr5Q1FS0N$w6 z_v052bkZTtAB{?`a%5^uu7z@|mI+U`FBW~WZ8g1h0(oJbegxM<8e}DEp*- zTXZE4#D-dKl5H9ATNTPc?5AK=*pLfGZMfX~0gzB(PV464TiOY}z&F+9fNj<9$<1-n zNm3NZzeV6Iub3J8$x?ImHvSjim6^hRi(7f>`xM_yo6dK+>Yh$hWD}I6tMuXwN_4j? zx9fEE%Y_63D8?KGT&NXjSsW?#Sy2vg)bn>A(ATsj3=bbM6Cp zH08$Fcq#kvgmq|zCq#X=cJ4X7$g^%bZ;i%DRxvPyP>9fCL?AunlJJs@aK3%~T=_@xik^mZG+^UAL)~LbN^i=-=b?lX%jvKh^QvK zjq?X{xEX>jdLhUWhW@}?u{H4pQ_8z93{|bXG#6;R%MoY?lq$fxk>@@r?+UNfO3iXz zCUTHefSu$3qU8ZhMjueCOl$=nuDyl#gfGwlA_-maD`;HCW^@<@Ld5Y*=HQbNQt-*W z)vx$)(`OJm3v@PqS5?6l{$C#;gwvV+p8f{fkm2;fZGJ>c2KM0Yx%qAic<=Z3l}byi z)4J2`*YZU^>G9V4EUUz>kwTIF{5g5z&Hl{c$vn2FOq=)o&5G~taf973C&K#2tWD!#)2Aj432xP+qg!5cFrp2S4IM0X&j2v_4LLl^drzLkJ)_xHj# z{NW|>9$eUgJecq+_Ta)JybLtnss|UYa+46iT>N`s3b^n`#)I#;4!^Se{Z$hkWjHwM zijMyMH5?tiaB#E`9sT=jJ39LJV(aMW!LOJzlbD%<`^C^PG~sppwgekA40kKo6Eb7L zj^It@aJI=QP)`2gM^tFiFIF}cxN>B9d^+>`o%YkFv56p+(EH=iD}rMH=Bl$aH*ZAx zr^xxtqkp^4yDaJbd-3+#w;AVh_te`B90Lp+&3vUh1#RuKZMFu95Zyy}jc9}eo|pz* zK@sU7$9is=BT;H((K@vF8JV`?d3ovTM&0D94M{j}QTc}~$kZ%hS65XtNs!{wn=sA` zO+K8AO?bxVp@plCFFw%o+V1X0vSjEo0Dzme-v+)~BG}zrU3F$6QRb#pla#Dbrt@&p zP7zv^=&BSVZdZ(;x9*cqz`q8s%J}SypLiJRw8TV7q*(?EuxPiAe0PBDwSLC_5*F-B zG(0>?09BTWWSzZsrwz#bC9Eh{v+Yatie0`RjsY}6-P4n+u>5rhGttj~vZMC48axI% z2+HUrP;i=j7Z_clbMadA%w9`zs^)*VLG4%!Wdgk;bjR(>=Y=%D7knbmkNsW(mk$=LlwX$JTL?RVA1q*j!dO*7m}g` zP6rbj6WJ5e>mGE!2@x_+5ZOYa#ON)7UTzX{ngv|Wi@_d-eLIf*VW#0AKm9Hoa~Xi1 zfVtt#I4QQ3z*raW|MQA90mdJaVz11&E!K%K(u_?$XTviY$8E3EwiJA1sSr7}q{Z;w zT0xW4dx@q>A+ zZ1T%sxEYXu5;5C_t~KhV){M5m|Qb|ds_rELVk$Gd-jon@MEDC zdCWIXc$8wJ&a3eGGo8;Iu?|IgR7-Gg7F?hlMnT)4E}iyHyOyCHNrz$k=dN2J2U)SLS^vUc*fg+9_a-9y0BSL!@1z& z{l&(0N=5*);y0az`K11djWxWQxv)J$g7ZR9eY~+y%3Vh#ABVo0uR^`SWq0=;a^Z%Z zdmoHx7kpW?v9fCMm@ng~p4zs0y)L>Tw(n6dywz;$`MNQ?HDiGKC} z#8?NWzAkA6>GF53S5{!CX?zI3YV_UAl8WU~Q7C!a(%F&nz3Jv@S{|(!0>N2Ys)mba z8A?k__4~}!)OTkJYi2d_%f;eo)k3oEwZaljui3Ue+FW+7%rTJ=cxkK|?Rs8c=WXjQ zp4}yA#*9C{;WXK`)9Y)+G~E8jgFW+_@4t9>Cq_^Cy_|Hwp9%iD@xw?U+G_;;Cc>NM7})rDi5m3(UbwB^pl5-HxthgH74)~%-vs)(>Ik6 zPja8OC;aLU0}`W19NhO*#*Yn#jA8{+a+Z1gL-h4tfNq8Ww_uEWm4&TOY{ozUzsb#?Az%~J&?Vu1DIoZd8?OxB?QkTrKozcst zxE;(>D8zkw55U#Hk4W1ZjhO|yCsSx{1V zcG4T4c(RIgNC;Ov{KZh^=`V$I?bEnRlrBC)*$<|s9}5z)H+7JWj_W^+9m>q??(5k1 z&HTJ@0)nRdo&#cmu>I-yt~sIFxsY?#{iVI?FY}UTPG65db4oaGA1i|I?}%kzph*5| z@M^1=r-2Rkz(H5pKA0pkvp!>cM}&;R@wuR#&}Tvc3@l70(d;bhW}QE(!H|}{#1H=+ zo!&*7$(zwh^*jifVddS#C=sjCbFiGK~%J!iAdE+iUJgg#p zQ*hAD?9U-#%a=@efeOe+C#b&Nhtq_W(1nPAFoeT?FSj;oRa`p~_>YF&{LdV}${!Z+ zjuuZ~jFShM?%G7=t(1maNL`V8T;smws&mAlCYvw7}38XM?n%#s@*xi)MNm+d9oxB&VW#A>@AV$J77_Z)ZS(ZA|<1fZWoI>-qF%w4ew^= z*lZL%RxE5o7DgVsV1&OJC`RzA`I*zm$s{RvBcu4T^_Uwc_^v0;Ucq^m@2&ctciQD^ zXC)8#SU|vjbozaz7dAl<105hzi@0vog-wZE>C=sfE^^kBRioGT`3SgSCZ!)gGg(E! zBI(W)ti(#I=_W2-zCJxMp_E*NZEtBY(^`C&H`Bf3-pV=Y+m-E5Q6h47Tin!-HYH0_ zSNFV+&1YZVqqzNF=lz#?t41tPv$!7?NGimi6o;2{5?;>JnBYFzfT_Ez$-Z}GGJ>Dg zrKeIYtP^t3CR{NwF+V5$eOfs;q0uC9>E~HGb@KaitBET?Re5;a z!p!Uy)6+s5=DOQT*D@XF7CqFslf|;vB2Z|)PM`2cd8i)JaqFOVweMma2)9T0b&!65aI$xa+I#OufuSBO%6fCcO-e5$RybOM1eO zG(bX4Q!{*R_mjYmKXi%)0zns<5Z}WmnEi0P7wCrdwzwPm=TA6c4%$)<-6d>gz797o zh(G3i*zm4}ZI0j;6oifj@mK85q_P)nb!h5arnMar4Dz7HUu=uAW$kRdfK3gO%J%?= zzS!%xC7(`~l9HzV7%zMn;D}wK*d}8=ot*sa$dI=aOdum%3^bbzs?trpm%@DyAEF{T zHqr9!agY|%CCZ?*)S&Bgk|J?EHtWZO-i!X$l8--eLVaQ}xnWj0pj@o~944b6pOE>CDPN&cqF8T9%55s)1LSgf-B=|M;OFq-OHPsYa5G-^^8Ps0?bNh1 z$C}i=pEtbaVe2<=3(XxcQ8+LC359jAATT~JPtDrex*%{+Lel8UY+pVHnbl5wPrs+~u3WW5S7dCUnFE_7@IUBH+}d(S0vHHU zhoA~2en+`S9xFvqY@%%euYY72c5y52aS{xf#tiTGb+uD+(^7Anc{NJh z43@abyi1+k*ZDw6)O}tUXR|PHwkr-!3z8xOU8U*aqC`uBrp7p3R_dl|I$H7hXHo&D zoQ9~yt`ScVt^raUxyVBG`zdme?1j7lk`zG}A*rb_s}sQe5RPO$xSH}yNd^WI)vXI; z4}=7~IzGjF8mPaU_)H!r_;7TaCoOeLZ}ZO7iO%6(1KWD*n+9TqO3sX9a-NF09tfdQ{W`sRalI;4vl!J)^BmS(_8Lg1DDq#keGl1pi6 zCtW~l1DWPMhD;)cMv-~C=M^o)CnoQ*CXCr>VW;CQrDD`{QtyhUHPTJXuJ*PE+8#UF zN_>LGes+T)OEV^0E3ThTjwQ(4OVQ0HCOcxNa-%2bDL=t0g~P?SB;%El7$aDMI9h1Fa){bZGn-v+|s6VeY zrdC#lnpDUr$k^uW)A&dlVJ`*a(^-PZ-?dP#Nm}|%VSc`auC8U=c2{>->Z9*Be~+tv z@7}i5ftlBc8>UAkh4-&W{3LRO==4vDm@%)GZ%=P~Is7(;|BG<-o7Z!Z_$U7!ZK8DE z#g{YKt}aMm-W>wjog&tE=P9_FU=h4qJ^c*{C~zI=Dq797k}EVhvY1*9+UfG6nEnf_c5x!D~c z5al=A&hlL4AX{}5fP7KW&m2x?C#U56eD&Je+KXSb`Wo9j{VNPD%*~Z8Ez@*#bwg#C z0zC}CVXgt}b+^6OIKpV_(xXO;xFgpVIQQihF#L~GPx6(aMa7wM8bJrMuI7waNclGXkhSzPbtOB#S znxaZ)CgH!YsjfxXHmKJlYb<~=rO{-!eDhR=p#UZHF75|E%?E~$616pmy{n(^^;~#I zzBleQwM}s+;iMEbZm@K&`74pUV^~(=#mz#KGhesdJ5sJ zCu!4kX4izXvCWn8?a;<%%M%UZzkW%T_<4)KfJJ;MsA_=QQhDVX=(DGN{P?kb9+1jP z;^N=VbmK(mY=vm5elLf~vycTyt9k_sev6Q+H1k;cDf)VD#I4%2CW@!xgL2W3z1z@k zdD|(6BEIBgEu-hpRZphS>@3v#v|Vc@CtELir4wwzMnWi;4R%G0SX!*QNO|g?9Tn}( zGbd9dzXy9#_%B~1smv2i61pB#&0O!7)I(@oca_atd&_Ozw9a<>{h7EMbdHmh%*Jc| zk;gR|R@dEmY1OYrjyNB5t7A@nOWV5$hYNNwY4x}{$B^O=rl6qmR?s!G^fA5z>B&mG zqIwACia%?$R#fQ6jR#7R$+2vIsp;}(U))w7T8A)CFIZwIg5tg)dC^W!)6*k^n2rFL zUV!vy35qWQAdTS+DjBFwrwk4)7V55;NeD_ee}Fy9mvEl?tBGHSmBoDxH|!_&L_VHu^@B+h##ui>r%l2;q}QU9DZ~&nFan46dz{1yr;|=kcmEdChfl+0rHT zn!YXktaW|2;bn7I4AnT7hYo4qS&iS3%q~Pn?3fPq4uWb!HQTIRG?04IY``Z+cQd*! z!u}|vSs4$FlDQ}Bv4(RAibHnqxR+0?g+)_bcQ;RQmeu^_?)qBwt1@SqcFRYrkwfv~ z?kWrMF|&<@_{-12j~9`Q>uT6En#6sU2Yb2#l;(gvZVnLiW#l~bBu?7u%RqiN!h_CJ z=G$HF;cb7Zcz8|c`h#e;tH;Vn{GT8PCI7P*$9fNG6cLYScTfbAx>ZghA z7tb8&Ps0|x0P>%hO(xBuht+?$-ad41f4=S`_I2zGUXc&n-C+hA%qt=Y6O!a3K1lW( z7_ZxTN8bd%4zw<&%A|;V96bx;xY%20nwK{dAfcsv>DP_88w5>3aC)@f%N4+fHq8xU zFjhCC@hMp$84&Ei)>K`0x%pQ4gQ~gr@P|(j=Aw90&BgPaJ>fty+|{o?p)y%FGNhC_ zpfNC*YcfnE&spMAZ)E(MdrwU!uGyU1lyv zZObx|gydYel?k${*DdhscTmsVD{F0SWurdD(L=7$xo{Qwuo^^Vm*H#U`T3g8E@obj zZP#-R_|RB$i8B1z#XOI3n*e_ECl5Uhq}D@ccTKj7+Zu|NOIs9;0d5@sVn`1W96MHdKYdJ zX^NYOORcvqcs_O!`g|*tLNj%1xbWQ`LP_UI^AnW9*gIfH)RGY&^$jH|LdrLJz)gA?g1GViQ>>aQk#<;9i(px z8wB5}QoP`Jp)T}ggX>6TuPgS@<|M1n?x1rnR?CCYv#sa&P(+=-M3cdF67c6ufMXZK`iR?SQ<2SljU zhXpW|IgCwb8=pMl5*E#i1HchHutlYI$3b zN`N%r)Xef5$hy4`Q)-VY4^x`To%VbF)KFky&PRkU-pzH{dyP3}!|`>3l82etw!@I) z3nvMtI-NT0&b`PdJTViNSXNS%FF$Hj*Zdv73ZWaXR!fk6tjsrOrS_StXMUF?`-#AL z!R;@?EhMrTiait@<|!Fv3NT((;xy-%7j?FYhU_f&heMmzdzjc_C-wu9UdKg+<^>ju z^4~sqmPvOm|0j&HQnk9qArOp1in!`{ zotQId!k%(zQsBe-pm{+lP2v)!3GSE00H4*Y`qn zAleH!5`fyQWpC{5!=Og;DpdXo}yQB2G(r>wjb zAKDP~3-S-_esjy&So00S@bj{`<_01 zuAi>y$Naine@MZ;g-6|P*(e&y8rmULiBm%sxcfb(Af9ej%`IEUi9D#GhaP;X25hdO zzR)QQ+qEmZ;Mdy5xGv(*Le|@SfhxeIw6iwEYVPlphpHEzi(fD2T!oo$&aJu?9xQa$ zt-1hkGmsMN5w9Es$tHkRfGY3qt+vS^y>LIIjrr zln{8w!hV*9`85{dG6bMBz)^E_%mrkaJ1$y=>4OYY z)37~rN=gdbEkw22sdM7PJIPE*F`fc zD>c~j_Wt;K;n)hN_NTi(z>2H$oX-Vo4iJ(RSzQI&Lq6P=6Ow9s3!06`g9iUIsLaco zKyJVQ@vFc5@p0bY7_$pZ?Lp#amX`47GdD+;vD(Op>!yZ%(f)3ZA0a#qpcO8z)Gp@6 z_lac&{(EWJVu0<6M;v&AecbZ`mpK%oUiz|d6M3-;&uOZv#zV}u-qE(}te~I}7i6HM z^bXKYj0NCLxcF#F42py`QTYGaAb(qD#Klqhax?LSwu-iP3S@urdR@W66I~iv34y`o z$}@v#Bnb!Z;?FA#Q|h;Xf-eP-Jc~F;u%ec!`6U`jc^^*NYDp4FY>bzl290=)Teluh zO;4*E7{nFVYnCmMZSHy^b&dnT6;coYxszG@t%E7=t2X~5n+T+G2?gD*Y$HG5Kz0rn z%&C)C|M|1hUcRS}%(j2}pGEO0xT#J=T+Y^jhwHW}$!KrxyLajT-*ErYiZ!D-TDo-T z1~J|C&kvlo|I4{`JQ6TqlYqlix3HDV~cxpIFX|)*u$#Q6E~o&5+LQyOTUz0cn=DL`IXzR=yoTh1)ORP$7(&1jg;ta zv#9yT!XQ*&0pXG4-Xrqr22_a-&=!#KhvAD}%+$n0)lhDg=x(hpCwa5N_1=WzXIYTU zF5pqx;T<^7b{A$<8gbjMF*YpMfHz9K@zoRpx`#@(rK@3{AQFK@J&;MM%DTCwWiy$k z-uu^z0$2nwK)FZ+AO(l@9QzTF9=V8|j8WSnC4@SmWqI&@S2!qAnr$>7>CzjHV-sM# z-UP#l^hJeJ1({}YZZ3~=+`Q*{iB73|z9+y=rhrO{B!*U=UVixPmvVe}T2@&qx}ms@ zpBLS&OzUb|dV10kgHu7- z1v`;Z*oSU;1T%l9!S z-E3hp)`0nSYI=VoX#W$;ap^KlAzd!;BD4|wmFC9}Ka|6@tc$*pl6BVq2_GbJr`Nh| z3+>e=>V5DDII(TeaJJfECi!`JS|V}vTeG%aQN{HDZRNtYfr#@A6$@vzg{^JjuYmKW z8QQtOih-?_0kW8NIh2sqTAZjZ!I$?vu95lY&=5P((0Uu>u0e!o&ZvY3BQWEba$;gjA^=6(?FqjJkm5a z8+vs<-vts@KskTgHRe)+xSF76{_R)rd(n)HjF2~5yXen`*;+wv z)ZoSp5}vg}T~^RsTQjDj-9|P{@Q_}Bk#Gi3>{M!6Ca@wxkpi^v&cctBZdXu{+S=Np zbp+q|;!AWU6*288> z1jI=~A`N9@vd-BFy4@v z+-bisAkIwU-y-A$D^VMaFr((=hBz2y$b=fG*i8V*zK}A#UOB&>w8t<54VVEL{_|4D zv50gGWZVSswOxJI9l_&>G;161iG{vY(=3jr zaYs&)Cud|RAUtN}urfn%LkP1RFT7K%VITEfdPlT20$rK5(4+LuXNYev zzy)<+K?#Ytu4;E!Seg?+otMJX`bGWxdj7{{Fie4wz@ZsL63})6K-GWd-oK+Oah*TF zoB#FiZkQV!pk#WDMc$TMi$PxL0BzHS6cXfIbMp)hh`_PT_^G_)y>V8$9M7_!;4318g70_iw+X5xlm# z57G?HZ`f3w2A@*UW^d>!DAbP{hHDjf8- z`D`%DQ*4HGINM}=dDhx|e-_jL66bQgK(rj>WVFv;bT1zCJ)d{?+acU$wLut@LIk%s zARmfh5b-&V$&c0I9la{e$HynlX?Q-UvbCkYYX5tuZ9NS*s5`rFQq$%iF=MJ#Ztr3RYnVW!!6qVFFu$LK9EWwIUFm z$_EjHQfTTFQ5X%G_iG}8x4gz`)KyiRjpks-g*3Ez zT(6xt`dIqQ{K5kvS(ew(oi0*VQ6p6$E-o$@&_+`t@RX`oBU@m$kAs0F=Nb**c73F} zkO3>>%I6q2o+rI&Ef-2ao5?7~;SXCIvM~a5TjkckV(S^Iq-Glbgea)hfbI@$b_MdNQ+84s4s+RR->G|lYdj_*y zm=?g_3pFzJ%)$6s8%PunrbN(!uYTu_&F&zP7lgpe3e$1>n{gSibLSvE(Fu#tHF*D) z;BVUoJ7sH732)x&o%b|_+-FNM%tor~_xfhq`}%B3K_$4&GOP4HHV3xS_t8I7TFVHo zN`pgjA)4Z*p+yQnm0Z%Y=d*nq%*)p8s(((xLeEQ;kNkTrN2-F`rnAcXhH-!1YuXt0 z0Zw&161ILVAuZE!x6str2Ga9ZWTd28P)zwW_j#BQ?S8ln%6h0kA9i$oI|Ixh>yb{t z3@r&^WBYs?bh@|2w^>PZ%9dm1wcw$_sylcUqUo|q(O2I*{Rjjc?;~)gu4%NrFKU0- zLif2(y!UhOiIr!`fSpWhYG!7^i4!N%VM^^m3xPuXQxk0sfTucxIJ-93Fc-kKD+6}J zI^YgIbLLo0)GlP>i|*`;MBQ-wXrhfD6%VD2>8Z4=0;skdL$ODvAEuFvwKbRXu?l+= zwtb)**g3xa2DQUOA{3^hXfS;{je;w`r9f(6?{5vV}-!Z$gvEO>MfBO5_ S)lAgkv66}snK$n~`u_mWykal_ literal 64408 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 diff --git a/examples/05_orientation_stress.py b/examples/05_orientation_stress.py index ddff8b9..e3bea03 100644 --- a/examples/05_orientation_stress.py +++ b/examples/05_orientation_stress.py @@ -18,7 +18,8 @@ def main() -> None: danger_map.precompute([]) evaluator = CostEvaluator(engine, danger_map, greedy_h_weight=1.1) - router = AStarRouter(evaluator, node_limit=100000) +# router = AStarRouter(evaluator, node_limit=100000) + router = AStarRouter(evaluator, node_limit=100000, bend_collision_type="clipped_bbox", bend_clip_margin=1.0) pf = PathFinder(router, evaluator) # 2. Define Netlist with various orientation challenges diff --git a/examples/06_bend_collision_models.png b/examples/06_bend_collision_models.png index cbab4deb7334f68d3f0c91b96804474521eba133..e6e81e4d63985b5d26788692ec5dae013637053e 100644 GIT binary patch literal 46817 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 HMd$nn(jwvW literal 43607 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 z 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 diff --git a/inire/geometry/collision.py b/inire/geometry/collision.py index 887bf66..9e87ae3 100644 --- a/inire/geometry/collision.py +++ b/inire/geometry/collision.py @@ -17,7 +17,7 @@ class CollisionEngine: __slots__ = ( 'clearance', 'max_net_width', 'safety_zone_radius', 'static_index', 'static_geometries', 'static_dilated', 'static_prepared', '_static_id_counter', - 'dynamic_index', 'dynamic_geometries', 'dynamic_dilated', '_dynamic_id_counter' + 'dynamic_index', 'dynamic_geometries', 'dynamic_dilated', 'dynamic_prepared', '_dynamic_id_counter' ) clearance: float @@ -60,6 +60,7 @@ class CollisionEngine: self.dynamic_geometries: dict[int, tuple[str, Polygon]] = {} # obj_id -> dilated_geometry (by clearance/2) self.dynamic_dilated: dict[int, Polygon] = {} + self.dynamic_prepared: dict[int, PreparedGeometry] = {} self._dynamic_id_counter = 0 def add_static_obstacle(self, polygon: Polygon) -> None: @@ -96,6 +97,7 @@ class CollisionEngine: self.dynamic_geometries[obj_id] = (net_id, poly) self.dynamic_dilated[obj_id] = dil + self.dynamic_prepared[obj_id] = prep(dil) self.dynamic_index.insert(obj_id, dil.bounds) def remove_path(self, net_id: str) -> None: @@ -109,6 +111,7 @@ class CollisionEngine: for obj_id in to_remove: nid, poly = self.dynamic_geometries.pop(obj_id) dilated = self.dynamic_dilated.pop(obj_id) + self.dynamic_prepared.pop(obj_id) self.dynamic_index.delete(obj_id, dilated.bounds) def lock_net(self, net_id: str) -> None: @@ -122,6 +125,7 @@ class CollisionEngine: for obj_id in to_move: nid, poly = self.dynamic_geometries.pop(obj_id) dilated = self.dynamic_dilated.pop(obj_id) + self.dynamic_prepared.pop(obj_id) self.dynamic_index.delete(obj_id, dilated.bounds) # Re-buffer for static clearance if necessary. # Note: dynamic is clearance/2, static is clearance. @@ -178,20 +182,28 @@ class CollisionEngine: for obj_id in candidates: if self.static_prepared[obj_id].intersects(geometry): if start_port or end_port: - # Optimization: Instead of expensive buffer + intersection, - # use distance() and check if it's within clearance only near ports. - raw_obstacle = self.static_geometries[obj_id] - # If the intersection is within clearance, distance will be < clearance. - # We already know it intersects the dilated obstacle, so distance < clearance. - - is_safe = False + # Optimization: Skip expensive intersection if neither port is near the obstacle's bounds + # (Plus a small margin for safety zone) sz = self.safety_zone_radius + is_near_port = False + for p in [start_port, end_port]: + if p: + # Quick bounds check + b = self.static_dilated[obj_id].bounds + if (b[0] - sz <= p.x <= b[2] + sz and + b[1] - sz <= p.y <= b[3] + sz): + is_near_port = True + break - # Use intersection bounds to check proximity to ports - # We need the intersection of the geometry and the RAW obstacle + if not is_near_port: + return True # Collision, and not near any port safety zone + + # Only if near port, do the expensive check + raw_obstacle = self.static_geometries[obj_id] intersection = geometry.intersection(raw_obstacle) if not intersection.is_empty: ix_minx, ix_miny, ix_maxx, ix_maxy = intersection.bounds + is_safe = False for p in [start_port, end_port]: if p and (abs(ix_minx - p.x) < sz and abs(ix_maxx - p.x) < sz and @@ -199,9 +211,9 @@ class CollisionEngine: abs(ix_maxy - p.y) < sz): is_safe = True break - - if is_safe: - continue + + if is_safe: + continue return True return False @@ -213,6 +225,6 @@ class CollisionEngine: count = 0 for obj_id in candidates: other_net_id, _ = self.dynamic_geometries[obj_id] - if other_net_id != net_id and test_poly.intersects(self.dynamic_dilated[obj_id]): + if other_net_id != net_id and self.dynamic_prepared[obj_id].intersects(test_poly): count += 1 return count diff --git a/inire/geometry/components.py b/inire/geometry/components.py index 6dd0c9b..98a063e 100644 --- a/inire/geometry/components.py +++ b/inire/geometry/components.py @@ -2,6 +2,7 @@ from __future__ import annotations from typing import Literal, cast import numpy +import shapely from shapely.geometry import Polygon, box from shapely.ops import unary_union @@ -44,10 +45,10 @@ class ComponentResult: length: float """ Physical length of the component path """ - bounds: list[tuple[float, float, float, float]] + bounds: numpy.ndarray """ Pre-calculated bounds for each polygon in geometry """ - dilated_bounds: list[tuple[float, float, float, float]] | None + dilated_bounds: numpy.ndarray | None """ Pre-calculated bounds for each polygon in dilated_geometry """ def __init__( @@ -61,16 +62,26 @@ class ComponentResult: self.dilated_geometry = dilated_geometry self.end_port = end_port self.length = length - self.bounds = [p.bounds for p in geometry] - self.dilated_bounds = [p.bounds for p in dilated_geometry] if dilated_geometry else None + # Vectorized bounds calculation + self.bounds = shapely.bounds(geometry) + self.dilated_bounds = shapely.bounds(dilated_geometry) if dilated_geometry else None def translate(self, dx: float, dy: float) -> ComponentResult: """ Create a new ComponentResult translated by (dx, dy). """ + # Vectorized translation if possible, else list comp + # Shapely 2.x affinity functions still work on single geometries efficiently + geoms = self.geometry + if self.dilated_geometry: + geoms = geoms + self.dilated_geometry + from shapely.affinity import translate - new_geom = [translate(p, dx, dy) for p in self.geometry] - new_dil = [translate(p, dx, dy) for p in self.dilated_geometry] if self.dilated_geometry else None + translated = [translate(p, dx, dy) for p in geoms] + + new_geom = translated[:len(self.geometry)] + new_dil = translated[len(self.geometry):] if self.dilated_geometry else None + new_port = Port(self.end_port.x + dx, self.end_port.y + dy, self.end_port.orientation) return ComponentResult(new_geom, new_port, self.length, new_dil) diff --git a/inire/router/astar.py b/inire/router/astar.py index dc45382..0cf31f1 100644 --- a/inire/router/astar.py +++ b/inire/router/astar.py @@ -24,7 +24,7 @@ class AStarNode: """ A node in the A* search graph. """ - __slots__ = ('port', 'g_cost', 'h_cost', 'f_cost', 'parent', 'component_result', 'count') + __slots__ = ('port', 'g_cost', 'h_cost', 'f_cost', 'parent', 'component_result', 'count', 'path_bbox') port: Port """ Port representing the state at this node """ @@ -47,6 +47,9 @@ class AStarNode: count: int """ Unique insertion order for tie-breaking """ + path_bbox: tuple[float, float, float, float] | None + """ Bounding box of the entire path up to this node """ + _count = 0 def __init__( @@ -66,6 +69,33 @@ class AStarNode: self.count = AStarNode._count AStarNode._count += 1 + # Calculate path_bbox + if parent is None: + self.path_bbox = None + else: + # Union of parent's bbox and current move's bbox + if component_result: + # Merge all polygon bounds in the result + minx, miny, maxx, maxy = 1e15, 1e15, -1e15, -1e15 + for b in component_result.dilated_bounds if component_result.dilated_bounds is not None else component_result.bounds: + minx = min(minx, b[0]) + miny = min(miny, b[1]) + maxx = max(maxx, b[2]) + maxy = max(maxy, b[3]) + + if parent.path_bbox: + self.path_bbox = ( + min(minx, parent.path_bbox[0]), + min(miny, parent.path_bbox[1]), + max(maxx, parent.path_bbox[2]), + max(maxy, parent.path_bbox[3]) + ) + else: + self.path_bbox = (minx, miny, maxx, maxy) + else: + self.path_bbox = parent.path_bbox + + def __lt__(self, other: AStarNode) -> bool: @@ -142,7 +172,7 @@ class AStarRouter: self.cost_evaluator = cost_evaluator self.config = RouterConfig( node_limit=node_limit, - straight_lengths=straight_lengths if straight_lengths is not None else [1.0, 5.0, 25.0], + straight_lengths=straight_lengths if straight_lengths is not None else [1.0, 5.0, 25.0, 100.0], bend_radii=bend_radii if bend_radii is not None else [10.0], sbend_offsets=sbend_offsets if sbend_offsets is not None else [-5.0, -2.0, 2.0, 5.0], sbend_radii=sbend_radii if sbend_radii is not None else [10.0], @@ -283,7 +313,14 @@ class AStarRouter: # Level 2: Relative cache (orientation only) rel_key = (base_ori, 'S', length, net_width, self._self_dilation) if rel_key in self._move_cache: - res = self._move_cache[rel_key].translate(cp.x, cp.y) + res_rel = self._move_cache[rel_key] + # Check closed set before translating + ex = res_rel.end_port.x + cp.x + ey = res_rel.end_port.y + cp.y + end_state = (round(ex, 3), round(ey, 3), round(res_rel.end_port.orientation, 2)) + if end_state in closed_set: + continue + res = res_rel.translate(cp.x, cp.y) else: res_rel = Straight.generate(Port(0, 0, base_ori), length, net_width, dilation=self._self_dilation) self._move_cache[rel_key] = res_rel @@ -300,7 +337,14 @@ class AStarRouter: else: rel_key = (base_ori, 'B', radius, direction, net_width, self.config.bend_collision_type, self._self_dilation) if rel_key in self._move_cache: - res = self._move_cache[rel_key].translate(cp.x, cp.y) + res_rel = self._move_cache[rel_key] + # Check closed set before translating + ex = res_rel.end_port.x + cp.x + ey = res_rel.end_port.y + cp.y + end_state = (round(ex, 3), round(ey, 3), round(res_rel.end_port.orientation, 2)) + if end_state in closed_set: + continue + res = res_rel.translate(cp.x, cp.y) else: res_rel = Bend90.generate( Port(0, 0, base_ori), @@ -325,14 +369,21 @@ class AStarRouter: else: rel_key = (base_ori, 'SB', offset, radius, net_width, self.config.bend_collision_type, self._self_dilation) if rel_key in self._move_cache: - res = self._move_cache[rel_key].translate(cp.x, cp.y) + res_rel = self._move_cache[rel_key] + # Check closed set before translating + ex = res_rel.end_port.x + cp.x + ey = res_rel.end_port.y + cp.y + end_state = (round(ex, 3), round(ey, 3), round(res_rel.end_port.orientation, 2)) + if end_state in closed_set: + continue + res = res_rel.translate(cp.x, cp.y) else: try: res_rel = SBend.generate( Port(0, 0, base_ori), offset, radius, - net_width, + width=net_width, collision_type=self.config.bend_collision_type, clip_margin=self.config.bend_clip_margin, dilation=self._self_dilation @@ -387,29 +438,48 @@ class AStarRouter: return # 3. Check for Self-Intersection (Limited to last 100 segments for performance) - # Optimization: use pre-dilated geometries and pre-calculated bounds if result.dilated_geometry: - for dm_idx, dilated_move in enumerate(result.dilated_geometry): - dm_bounds = result.dilated_bounds[dm_idx] - curr_p: AStarNode | None = parent - seg_idx = 0 - while curr_p and curr_p.component_result and seg_idx < 100: - if seg_idx > 0: - res_p = curr_p.component_result - if res_p.dilated_geometry: - for dp_idx, dilated_prev in enumerate(res_p.dilated_geometry): - dp_bounds = res_p.dilated_bounds[dp_idx] - # Quick bounds overlap check - if not (dm_bounds[0] > dp_bounds[2] or - dm_bounds[2] < dp_bounds[0] or - dm_bounds[1] > dp_bounds[3] or - dm_bounds[3] < dp_bounds[1]): - if dilated_move.intersects(dilated_prev): - overlap = dilated_move.intersection(dilated_prev) - if not overlap.is_empty and overlap.area > 1e-6: - return - curr_p = curr_p.parent - seg_idx += 1 + # Union of current move's bounds for fast path-wide pruning + m_minx, m_miny, m_maxx, m_maxy = 1e15, 1e15, -1e15, -1e15 + for b in result.dilated_bounds if result.dilated_bounds is not None else result.bounds: + + m_minx = min(m_minx, b[0]) + m_miny = min(m_miny, b[1]) + m_maxx = max(m_maxx, b[2]) + m_maxy = max(m_maxy, b[3]) + + # If current move doesn't overlap the entire parent path bbox, we can skip individual checks + # (Except the immediate parent which we usually skip anyway) + if parent.path_bbox and not (m_minx > parent.path_bbox[2] or + m_maxx < parent.path_bbox[0] or + m_miny > parent.path_bbox[3] or + m_maxy < parent.path_bbox[1]): + + for dm_idx, dilated_move in enumerate(result.dilated_geometry): + dm_bounds = result.dilated_bounds[dm_idx] + curr_p: AStarNode | None = parent + seg_idx = 0 + while curr_p and curr_p.component_result and seg_idx < 100: + # Skip immediate parent to avoid tangent/port-safety issues + if seg_idx > 0: + res_p = curr_p.component_result + if res_p.dilated_geometry: + for dp_idx, dilated_prev in enumerate(res_p.dilated_geometry): + dp_bounds = res_p.dilated_bounds[dp_idx] + # Quick bounds overlap check + if not (dm_bounds[0] > dp_bounds[2] or + dm_bounds[2] < dp_bounds[0] or + dm_bounds[1] > dp_bounds[3] or + dm_bounds[3] < dp_bounds[1]): + # Use intersects() which is much faster than intersection() + if dilated_move.intersects(dilated_prev): + # Only do expensive area check if absolutely necessary + overlap = dilated_move.intersection(dilated_prev) + if not overlap.is_empty and overlap.area > 1e-6: + return + curr_p = curr_p.parent + seg_idx += 1 + move_cost = self.cost_evaluator.evaluate_move( result.geometry, @@ -418,7 +488,8 @@ class AStarRouter: net_id, start_port=parent.port, length=result.length, - dilated_geometry=result.dilated_geometry + dilated_geometry=result.dilated_geometry, + skip_static=True ) if move_cost > 1e12: diff --git a/inire/router/config.py b/inire/router/config.py index 0a9e115..5b1ee80 100644 --- a/inire/router/config.py +++ b/inire/router/config.py @@ -28,3 +28,4 @@ class CostConfig: unit_length_cost: float = 1.0 greedy_h_weight: float = 1.1 congestion_penalty: float = 10000.0 + bend_penalty: float = 50.0 diff --git a/inire/router/cost.py b/inire/router/cost.py index 1753aa9..923994d 100644 --- a/inire/router/cost.py +++ b/inire/router/cost.py @@ -39,6 +39,7 @@ class CostEvaluator: unit_length_cost: float = 1.0, greedy_h_weight: float = 1.1, congestion_penalty: float = 10000.0, + bend_penalty: float = 50.0, ) -> None: """ Initialize the Cost Evaluator. @@ -49,6 +50,7 @@ class CostEvaluator: unit_length_cost: Cost multiplier per micrometer of path length. greedy_h_weight: Heuristic weighting (A* greedy factor). congestion_penalty: Multiplier for path overlaps in negotiated congestion. + bend_penalty: Base cost for 90-degree bends. """ self.collision_engine = collision_engine self.danger_map = danger_map @@ -56,6 +58,7 @@ class CostEvaluator: unit_length_cost=unit_length_cost, greedy_h_weight=greedy_h_weight, congestion_penalty=congestion_penalty, + bend_penalty=bend_penalty, ) # Use config values @@ -63,6 +66,7 @@ class CostEvaluator: self.greedy_h_weight = self.config.greedy_h_weight self.congestion_penalty = self.config.congestion_penalty + def g_proximity(self, x: float, y: float) -> float: """ Get proximity cost from the Danger Map. @@ -86,14 +90,21 @@ class CostEvaluator: Returns: Heuristic cost estimate. """ - dist = abs(current.x - target.x) + abs(current.y - target.y) + dx = abs(current.x - target.x) + dy = abs(current.y - target.y) + dist = dx + dy # Orientation penalty if not aligned with target entry + # If we need to turn, the cost is at least min_bend_radius * pi/2 + # But we also need to account for the physical distance required for the turn. penalty = 0.0 if current.orientation != target.orientation: - penalty += 50.0 # Arbitrary high cost for mismatch + # 90-degree turn cost: radius 10 -> ~15.7 um + penalty + penalty += 15.7 + self.config.bend_penalty + + # Add 1.5 multiplier for greediness (faster search) + return 1.5 * (dist + penalty) - return self.greedy_h_weight * (dist + penalty) def evaluate_move( self, @@ -104,6 +115,7 @@ class CostEvaluator: start_port: Port | None = None, length: float = 0.0, dilated_geometry: list[Polygon] | None = None, + skip_static: bool = False, ) -> float: """ Calculate the cost of a single move (Straight, Bend, SBend). @@ -116,6 +128,7 @@ class CostEvaluator: start_port: Port at the start of the move. length: Physical path length of the move. dilated_geometry: Pre-calculated dilated polygons. + skip_static: If True, bypass static collision checks (e.g. if already done). Returns: Total cost of the move, or 1e15 if invalid. @@ -131,11 +144,12 @@ class CostEvaluator: for i, poly in enumerate(geometry): dil_poly = dilated_geometry[i] if dilated_geometry else None # Hard Collision (Static obstacles) - if self.collision_engine.check_collision( - poly, net_id, buffer_mode='static', start_port=start_port, end_port=end_port, - dilated_geometry=dil_poly - ): - return 1e15 + if not skip_static: + if self.collision_engine.check_collision( + poly, net_id, buffer_mode='static', start_port=start_port, end_port=end_port, + dilated_geometry=dil_poly + ): + return 1e15 # Soft Collision (Negotiated Congestion) overlaps = self.collision_engine.check_collision(