From 4905fd318f31ad1d1c8d7fce691eadbcf8c853cc Mon Sep 17 00:00:00 2001 From: thehun927 Date: Mon, 18 May 2026 21:03:13 -0400 Subject: [PATCH] removing the gate --- AbsorbentSoil/AbsorbentSoilMod.cs | 54 ++++++++++++------ .../bin/Release/net6.0/AbsorbentSoil.pdb | Bin 22452 -> 22620 bytes .../net6.0/AbsorbentSoil.AssemblyInfo.cs | 2 +- .../AbsorbentSoil.AssemblyInfoInputs.cache | 2 +- .../obj/Release/net6.0/AbsorbentSoil.dll | Bin 11264 -> 11264 bytes .../obj/Release/net6.0/AbsorbentSoil.pdb | Bin 22452 -> 22620 bytes .../obj/Release/net6.0/ref/AbsorbentSoil.dll | Bin 7168 -> 7168 bytes .../Release/net6.0/refint/AbsorbentSoil.dll | Bin 7168 -> 7168 bytes 8 files changed, 39 insertions(+), 19 deletions(-) diff --git a/AbsorbentSoil/AbsorbentSoilMod.cs b/AbsorbentSoil/AbsorbentSoilMod.cs index 4786335..bb080d9 100644 --- a/AbsorbentSoil/AbsorbentSoilMod.cs +++ b/AbsorbentSoil/AbsorbentSoilMod.cs @@ -17,7 +17,7 @@ namespace AbsorbentSoil { public sealed class AbsorbentSoilMod : MelonMod { - internal static bool VerboseLogging = false; + internal static bool VerboseLogging = true; public override void OnInitializeMelon() { @@ -142,27 +142,37 @@ namespace AbsorbentSoil internal static class SoilHelper { - private static readonly FieldInfo RemainingSoilUsesField = - AccessTools.Field(typeof(GrowContainer), "_remainingSoilUses"); + private static readonly Dictionary RemainingUsesByPotKey = new(); + + public static void SetRemainingSoilUses(Pot pot, int uses) + { + if (pot == null) + return; + + string key = PotKeyHelper.GetPotKey(pot); + if (string.IsNullOrWhiteSpace(key)) + return; + + RemainingUsesByPotKey[key] = uses; + + if (AbsorbentSoilMod.VerboseLogging) + MelonLogger.Msg($"Tracked soil uses for pot '{key}': {uses}"); + } public static int GetRemainingSoilUses(Pot pot) { - if (pot == null || RemainingSoilUsesField == null) + if (pot == null) return 0; - try - { - return (int)RemainingSoilUsesField.GetValue(pot); - } - catch - { + string key = PotKeyHelper.GetPotKey(pot); + if (string.IsNullOrWhiteSpace(key)) return 0; - } + + return RemainingUsesByPotKey.TryGetValue(key, out int uses) ? uses : 0; } public static bool CanCaptureNewAdditives(Pot pot) { - // Normal soil should have 1 use, long-life should have more than 1. return GetRemainingSoilUses(pot) > 1; } @@ -170,6 +180,13 @@ namespace AbsorbentSoil { return GetRemainingSoilUses(pot) > 0; } + + public static void Forget(Pot pot) + { + string key = PotKeyHelper.GetPotKey(pot); + if (!string.IsNullOrWhiteSpace(key)) + RemainingUsesByPotKey.Remove(key); + } } [HarmonyPatch(typeof(Pot), "ApplyAdditive")] @@ -273,15 +290,18 @@ namespace AbsorbentSoil { try { - if (__instance == null || uses > 0) - return; - Pot pot = __instance.TryCast(); if (pot == null) return; - AdditiveMemory.Forget(pot); - MelonLogger.Msg("[Absorbent Soil] Cleared retained additives because soil uses reached zero."); + SoilHelper.SetRemainingSoilUses(pot, uses); + + if (uses <= 0) + { + AdditiveMemory.Forget(pot); + SoilHelper.Forget(pot); + MelonLogger.Msg("[Absorbent Soil] Cleared retained additives because soil uses reached zero."); + } } catch (Exception ex) { diff --git a/AbsorbentSoil/bin/Release/net6.0/AbsorbentSoil.pdb b/AbsorbentSoil/bin/Release/net6.0/AbsorbentSoil.pdb index 74111c805400f71a4bd565f90569b87b55b2d0da..c8f390ebbde92a7d1550ddd158bb9b7c640d91ca 100644 GIT binary patch delta 1132 zcmZ{kT}TvB6vxlKJG(ox?&|unA8H@N`T=Stm4%k+W`QfRrEO}FkrgI^Sf)L!nL9!d zJ`^p34<=$%SUp6N84(dgNJtMQ1V!mXPdx-t4-yeV|GQqxgogby|KB-h?!9~G+XA!qn{Hs-_Y#_$`nVvO-xKvv0H!49xpa=!VAt&fS-x)4=mv=^KV)+8SQr+}T3JHT$R zOL7S~6`Ug30Zv=R=__~*@)=+zI z-&39$m%L}DemxpV@@#xF9C*BW==ONugW{iM!x#E~m@kzZy8bzO{#}Ru)!Mu5ecqk; z{OjvRs6YR$cX4*1XM3~%;^d%paG%|Vsf#kS$+SiXi#+*6URA)o?Z88?kZ%u9CY;8AsJ9i*2)lP1Xe#X)` w6^W^m6?_e{71c&QPBuEqaW0tB#VLbhcdHe(5OYQ0c@!s`0s~d%XtR&eZ{6RJQ2+n{ delta 992 zcmaKrUr19?9LIm>?%wU*>Hg`aF>{Kmkj!MJF$w={6Dvw*tuc$h3YJKcnIl>c?JlSg z0-G12UW)!`MM#kbzQ*VwBIu#$rHAYxd@yw@sfR;ftV5=N!3&$2HysiLkd(4Z6LB!rvNK&$h~aRcuNiB&aHKZ zOa~bGp$_OUbPO7Su0rpj9}pd6q(Uxe5V{LlVvHQnfRSO%q5GK5LMHrq8O4RDAVqLH zG7W4Iyaj9ptAfjnZ>%nJ0jUkCCelM-JGfl%4zQzy`HGzD*j2(_v{#hy$r292H$#Qwn7`v6M~MO= zaAN>pEw8W|13Y2^{&D%Q4`Q_I|K6A~)dnJkJ{t@Di@v+yd1=M3rBG=eF}|CI9Fxfu zof%J2@;seNrpY)W&(_blf}gv$5A=NX%=>Ph^JRX%>tD<|Gx^}<=|S)Gt>;Faa-C$7TJ;;YD$*ns zmxNJ3#ZD=5nvo{sIxu;{f+{!bbGG91iH)Cg{feH`x{!GEB|}Pdm=Sj9Z;Vi4pIO5e z>Z`^~A~|f;x^O=HS+~nZ7XE@wa@s;p38$-oHFDZa!xD}mlhP8oB@_^r)vZND#;-_2 VwyDyLhCYcDsfEE|0w#?T{RL2df%yOc diff --git a/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfo.cs b/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfo.cs index 7699a91..4aaa553 100644 --- a/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfo.cs +++ b/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("AbsorbentSoil")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3c7ea09f730c3ca38d3c004961f111503e0905c8")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7eba0a03f019a3817f694cbae7ecb1d5f3104e45")] [assembly: System.Reflection.AssemblyProductAttribute("AbsorbentSoil")] [assembly: System.Reflection.AssemblyTitleAttribute("AbsorbentSoil")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfoInputs.cache b/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfoInputs.cache index e5d73e1..90cf241 100644 --- a/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfoInputs.cache +++ b/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.AssemblyInfoInputs.cache @@ -1 +1 @@ -b331521ed94e421a5866942ca81a55cff8e0735dcb4bc556f934ca310386ca0f +27eaa669f94faac9705255117bf2c7e16542b7864e4480e4b988fcdf9942abbc diff --git a/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.dll b/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.dll index 9000eee96a53b1e17b709b7036e4c5441f7db0e9..329eca1ceadff439aec1adcee1e7244095360e08 100644 GIT binary patch delta 3439 zcmZ8j4RBOf6+Y*__wIXal1+B=|3k82NwS25CfS4#AgvITKWRxJEm*LGu%TEabQ1?q zVN=kycG{Him<~wF0OR1aQm2qo8LdBPTG28}K`OP7DO0dY?SMMsz%b%>@7wVAX6|>- zch0%z+;i@IZ?|_*@1m{GnM*G3d!_${BJul{{?{JyuWuoGi0~{U+F|sUW~TNMrGocP zCtB#1iYj+8SBMi~cQbFwKLBs_%)$_4(bfv0D+NUC9v$20&KI3yQ;1~z5YbvQl11c; z1OS!AB9g7=++IOsx+ldLPILbw4gmKVGl7?k>A-5Ut;CN2Wz~h{BK`=|+K5L}L6>Rj z?lpgt$gDAFHMSs$0wODtgV{#LX%~+ z7@jE12zDlit5IG_aqdW=M{XA-BUpc{s0MeT3^k9sT}-uOjCAirE{-)a5h>$Wu|6v+ z(g@invm%o)SEa;*0_|&X56Z$>6X3e9s|ot@;h8BVC3)Sd#i>CN?@>;=$HMS>EaJC& zENpK(!s~H^n`PH0e0OZeFS;fpQu2tcb7xSpr}BT+QXr|Q>MDMiHR{@ZE3e<3bI zcoWgDFdsvM!V7xhtJbXSRzA-mz%1N_aN7bpfj3pf3(stuJp=Q{ic5FRsPY7^o(_wO z2=6%+VtfGumqXR6-aujuM91eqJ$aVm%Cg*eTS|IU<0kQ{OsBJOm-IeIEgv-+S<*+Z ziY)lNEp8Z+b{UUblJYd37E1nCLQk8uYMYkl3KjI25ruibt*}$5a5k$z!_fGtopzC* zW&(qh@BGA;R3+7_R%j%>YpKu&fjRU?b1QtFvd)^4zGJCqKZ8C<*X#;tnkb<{%##(S zk3v!<2${-h4_ph7?AI)*TPjVN4*j4LwTfvfe*z6dlS9wiTaj`BDwZ@^C%DNfeY*DF zEM07FCahz~Cq7fnq%{h#8eQa!1T~4Z_Oua7bI?r11Tk*FRq|Q$ARE*R_LAeXS|Qt- zbxOrdO4IDIBum#UW-6OS*_v(COyWpYlrJV(o@R;dNt&te!k3n) zKX0Er&jy{<#+NBYUIcrg6efC^F53TKi_Rq32XqxjQZ&Z1{oTI7Ha(bR*RAvH&{s6` zVmkCh(zehM!l5gk4R_QLqiA(led&=RZ2LtDT>w?gZ)b}%DjDms#r9S9Q)QAhgQe4? zBva`#XqjeS!T_yK+GaR~B0yJ?>{GtT*)&w<#hl@kiCnr+4wgW|8O{yPqrWLi{a{rh zpPs1jT$^E2uOw3)-atWp>ekR`Ex)DpO7=8&V--9F?YP5#62205`;2x_|A?wmFSr6H zgT9N1nOW=V@jgm2xgO0xud3w?5`7iLaaTA&=Wb%j5qym+uNN=S` zZ?Q*=Pwi@(R? zoITvnwL;QPE_Gh#3Vh0>oPf`Ey_i6m)C?@7CBQJnfaB?hz$hI7PNA#77D|jVCeU2U z0WP30@G))Z0JhMR^r+E7K46EIJCbrYEinxK7Hu)YKw-83ziD2;%QQNK&KyER&SF&a(=_OA%vj-m zn(@-$vw^7O1%vx@Cv*D4v9GtUT7%!)w(eN>^bLa_=AGhcjSDG`-zU|u7_FcXbyF9u z!k^g?eFJg~BZNP8UGNIgTFgC|D~Rn1nhc4X-9TZ1`+31fgC`1iF#hQ7J?>tZ*mrpD z=6Rb3>gPV$H@JRu7T;&t!XIdt*}*p9cT5mR+9J3i&~ExTxWTcF;6}x4;$U{5_ptkV zaWfxvKP!GXXeSq0A;FFxePwrM$>>ar*dJVKktiziOA;Jh>J0Xj-`R^KrAX6ToqF5{i0?-9?NuTEei#-FBR z=#QXx2#g8;j8HLAYYRr1yFWZ8W66sm*$8AE$+6ls|Wq%*TqAP==XA*MvWd(^t}e3r6#Z_ vO@h=2%|!5eoR{*8K@-z*EzYh1)+oGcV2@!mxQ~uID2_)51C^J#zsCMQPzx)& delta 3137 zcmZ8j4RBOf6+Y*__wK$dn2nE|(;wC|m65P;M z2GULc7)073ypjQBsAXivQXMOcIA~{})1WAIN`EZHfryS$iga4(h%M6UckgZxyqWvG z^PO|&QZO zTq7JmqUC)dYSLmZ#MP(DU~?J}ApUK&`D93g*u`(wV0mHKpk6#Z?!&UCbUfDAi_xjV zbdZ%Ct@j4Gq&Uwh!kQq*_qs=AK1bd6WGUP3XR>gO4to}1b8?(UIC*7`(}ZW;xcH}P zGn~&`LwSQ1P9;VDGb+!@Tw`BlUf#ATkoWaXg-6xsoN*;3`Tc4eUr@xqDzNlRAVFa` z#rhe4PPl`fJZ!$p)0oJ(sbqf9*9@0b0qd-D@8L8ll~+0_k*v4QjX)$m%+L&%gFPBxtEzT1?~rBSb42XZ^e*^=f|e%WTwbmDt%WN4-WItEc~ z(2O7apFui4x8IHwdX2Hu$bjXb^0h(flpv-Pb&uNhkuD^HM!V4irjZ*Fql-izidL%% zsyd@ijLwn{&Mo5$+>(rZ@xGzzF-aA8l+;b8+JPtA_QphXEfY<#6i4Q?!FXFrI;nA|I3~x_C#ucpBG0qDw7{s9UOFaf z;q$i0HYFW29Efwu8=!5ic&rE1qD4{}h%bBK^ znx)#H*;G!yfa^qTc7`Qwl}b~oLwDHotYYfqYtS$>x%3^+Ft+R><+B>+MiP3PTz#1F zdev^Z6DfWT)-nnSfy=^`DIiX$;^L}1MBLK~ImNnAQpE%@Y?&Og=0i4U5Nx9zvKB#> znhi+BOkAO|#na5M*(OujEF4hTp3_WHj%N3#Sz>~wFQsX&X78j~9#zqDE6Lepnuj?; zE9@h{t8|@*9=%WTtP&4%)iXtpA4TWWs{ z+r^ZP^5j*{pziWiluFNaPK={NX?maMJp1Tqn#}^sq~B?l3hJkeY1?dD2tTcv`ou@A)>g>Bp&j%pG`oP=Rw?iTDU@}BOragjH|1@?014zZEn$7GBFHb1y|WF+d|a#2=vg8(*R>K45=D zZ_=>+FW_b4KhSvCe2fxE`nJ;%aW<&!BJT$N3(!S_s%Yp5I#XS#oty+suWM|*1HB0(?`jdAAqcXWAzlxJ11+TMN z`5?vJg5nU9d#doN^ivR5Bz8$2ybu5TZDG`X%gheL*k@fGIa zguvht=@G#VfiBa_!40;@2o5ObCQD}UarYl3i<=D@e8?&lZ2Kh%4nE+|Af6EHVSn%e zi&$uc8im6zUrH;Aiu}o^OY_-@#+rM&!Y#ec(Qqsp>xxe6j>f{_#+Ip(-bf_U6pr?U zTf$ATY02ZEqasRA`0HHa`5mgF1DGSNnELlCRa8|l{BK0nn5}J?74G4RvMhJu?@wR6 zx2dSU;b5R?UVk2joYz)Y#dN>=};(F>}hlN zRjx^v)?{(gUv*6^j8cr6sRtj+Fn&yWAx9y_fHCNzG>y8o9EP?L9#iqd(~GJ8nxKnf aty&odi_tXq-bp_buQVhBH6QU%*z;dcTn^U& diff --git a/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.pdb b/AbsorbentSoil/obj/Release/net6.0/AbsorbentSoil.pdb index 74111c805400f71a4bd565f90569b87b55b2d0da..c8f390ebbde92a7d1550ddd158bb9b7c640d91ca 100644 GIT binary patch delta 1132 zcmZ{kT}TvB6vxlKJG(ox?&|unA8H@N`T=Stm4%k+W`QfRrEO}FkrgI^Sf)L!nL9!d zJ`^p34<=$%SUp6N84(dgNJtMQ1V!mXPdx-t4-yeV|GQqxgogby|KB-h?!9~G+XA!qn{Hs-_Y#_$`nVvO-xKvv0H!49xpa=!VAt&fS-x)4=mv=^KV)+8SQr+}T3JHT$R zOL7S~6`Ug30Zv=R=__~*@)=+zI z-&39$m%L}DemxpV@@#xF9C*BW==ONugW{iM!x#E~m@kzZy8bzO{#}Ru)!Mu5ecqk; z{OjvRs6YR$cX4*1XM3~%;^d%paG%|Vsf#kS$+SiXi#+*6URA)o?Z88?kZ%u9CY;8AsJ9i*2)lP1Xe#X)` w6^W^m6?_e{71c&QPBuEqaW0tB#VLbhcdHe(5OYQ0c@!s`0s~d%XtR&eZ{6RJQ2+n{ delta 992 zcmaKrUr19?9LIm>?%wU*>Hg`aF>{Kmkj!MJF$w={6Dvw*tuc$h3YJKcnIl>c?JlSg z0-G12UW)!`MM#kbzQ*VwBIu#$rHAYxd@yw@sfR;ftV5=N!3&$2HysiLkd(4Z6LB!rvNK&$h~aRcuNiB&aHKZ zOa~bGp$_OUbPO7Su0rpj9}pd6q(Uxe5V{LlVvHQnfRSO%q5GK5LMHrq8O4RDAVqLH zG7W4Iyaj9ptAfjnZ>%nJ0jUkCCelM-JGfl%4zQzy`HGzD*j2(_v{#hy$r292H$#Qwn7`v6M~MO= zaAN>pEw8W|13Y2^{&D%Q4`Q_I|K6A~)dnJkJ{t@Di@v+yd1=M3rBG=eF}|CI9Fxfu zof%J2@;seNrpY)W&(_blf}gv$5A=NX%=>Ph^JRX%>tD<|Gx^}<=|S)Gt>;Faa-C$7TJ;;YD$*ns zmxNJ3#ZD=5nvo{sIxu;{f+{!bbGG91iH)Cg{feH`x{!GEB|}Pdm=Sj9Z;Vi4pIO5e z>Z`^~A~|f;x^O=HS+~nZ7XE@wa@s;p38$-oHFDZa!xD}mlhP8oB@_^r)vZND#;-_2 VwyDyLhCYcDsfEE|0w#?T{RL2df%yOc diff --git a/AbsorbentSoil/obj/Release/net6.0/ref/AbsorbentSoil.dll b/AbsorbentSoil/obj/Release/net6.0/ref/AbsorbentSoil.dll index d656e87fa53e83a31fbbe6704f63b886c4121361..7581fb758ed7edecd4d1cdda1160967d58ee6898 100644 GIT binary patch delta 1014 zcmZ9LT}V@59LAsbd`+j$Z91*=CPt_v~m#lgw1irdgRF@(9I7D{d|-q*|*vf8xh=_Uth%*oYxZ%K0dksbhGbn z%_IF{0#-Rw+T?w$0HZ4+{EX5&v?u}o+kjgJ=4tp-m!~dVoR|h3kDUOO;ZLWqNZxJw z6X}z~bY3CO@fV6F`-nREPvuT>ODc;B{-7*6F#}mr&?lEg7f#8IvH}JbUK|k*!G$$3 zLHV#;6puwg|+1N#oqyif4T2Y!plTGVV8qGF6 zBWkfJRHR$DY|P2m&}!2PhG{$XrRC%q_;%44I&2!JSvsu;be3L|KpQb1)@jQpY`>lC z)uHXCC3=;63uazV$~1+5K}tj%ATOaRT2=n0@mBG?6rkPCAwY|*kal62)Q^{>hw++J zqvikx;USG9Nt!^GG=)o~W4KAGTX}&rj%m6!4kxK@d40#x~%MjG9rk zyc&#Uv}iDrABctYY{rNfdN!B~=e3|3GD6{+?p+hO-{)yrrXQ?+tn=f(F1E_Yed9G( z$6p~Cfq^VC^kthvL!LB<7?Fl3xdi7roZ@xAF delta 958 zcmaizO=uHQ6ot=wGcRe=lIEu^TDvJhTC{`-lQapUR#MP5ixksPB~b{|w2_FQts+)U zw5Zi|VR+&qTUXiHrs}$&bmKyIq9_V(1f{r9>dHIQb`)GV182^6=H54tJ2RD7C3b&N zt(?8{qPEn_Zr2)KrDlUoa!>C4o4Z$!%#S|WeBF3A^66*O zt8OrkqGS%gcIGDh_O-sMeqNm9N~ z)VUj8wa#e?cuk=yM&iLstjjfLKP$*D&QQDq70SNyl9BoHuZ=soHqSX@@TQ?xG4NZWwnG>``%+U1D8z?h}vu#6X(%x z(`p$bG`gL~kBNC2!yn4RZ&QLc(`gMMMz4a?X3c?wEuXagR`NfsQawi>^>!%eAy83Q ztmWkQ)@$Xo8l)ZHK#(4Pk8}?jqyemu?#DAyo!(>+2jF5sByfy0i7aUvMba!Tk{VWC zB28eHdJ{C06-rHSZ2NgMn8FtDiUmkhJVCnN&J7ck1=6>2)0O8r(LCK&SEbMM`JeAs zws=d;E8b2vpc~ObUW-phbcj9BxjZ;i{#T^?VK zevqBxlIe$Qech}mm%C0$jZZY)-M@HBr`<+TK%TzQIHt+#~m#lgw1irdgRF@(9I7D{d|-q*|*vf8xh=_Uth%*oYxZ%K0dksbhGbn z%_IF{0#-Rw+T?w$0HZ4+{EX5&v?u}o+kjgJ=4tp-m!~dVoR|h3kDUOO;ZLWqNZxJw z6X}z~bY3CO@fV6F`-nREPvuT>ODc;B{-7*6F#}mr&?lEg7f#8IvH}JbUK|k*!G$$3 zLHV#;6puwg|+1N#oqyif4T2Y!plTGVV8qGF6 zBWkfJRHR$DY|P2m&}!2PhG{$XrRC%q_;%44I&2!JSvsu;be3L|KpQb1)@jQpY`>lC z)uHXCC3=;63uazV$~1+5K}tj%ATOaRT2=n0@mBG?6rkPCAwY|*kal62)Q^{>hw++J zqvikx;USG9Nt!^GG=)o~W4KAGTX}&rj%m6!4kxK@d40#x~%MjG9rk zyc&#Uv}iDrABctYY{rNfdN!B~=e3|3GD6{+?p+hO-{)yrrXQ?+tn=f(F1E_Yed9G( z$6p~Cfq^VC^kthvL!LB<7?Fl3xdi7roZ@xAF delta 958 zcmaizO=uHQ6ot=wGcRe=lIEu^TDvJhTC{`-lQapUR#MP5ixksPB~b{|w2_FQts+)U zw5Zi|VR+&qTUXiHrs}$&bmKyIq9_V(1f{r9>dHIQb`)GV182^6=H54tJ2RD7C3b&N zt(?8{qPEn_Zr2)KrDlUoa!>C4o4Z$!%#S|WeBF3A^66*O zt8OrkqGS%gcIGDh_O-sMeqNm9N~ z)VUj8wa#e?cuk=yM&iLstjjfLKP$*D&QQDq70SNyl9BoHuZ=soHqSX@@TQ?xG4NZWwnG>``%+U1D8z?h}vu#6X(%x z(`p$bG`gL~kBNC2!yn4RZ&QLc(`gMMMz4a?X3c?wEuXagR`NfsQawi>^>!%eAy83Q ztmWkQ)@$Xo8l)ZHK#(4Pk8}?jqyemu?#DAyo!(>+2jF5sByfy0i7aUvMba!Tk{VWC zB28eHdJ{C06-rHSZ2NgMn8FtDiUmkhJVCnN&J7ck1=6>2)0O8r(LCK&SEbMM`JeAs zws=d;E8b2vpc~ObUW-phbcj9BxjZ;i{#T^?VK zevqBxlIe$Qech}mm%C0$jZZY)-M@HBr`<+TK%TzQIHt+#