From 70fd8fa0c799540b838031e65ee0274a31b174b5 Mon Sep 17 00:00:00 2001 From: Zontreck Date: Wed, 23 Aug 2023 13:09:17 -0700 Subject: [PATCH] QOL changes to Prebuild and bootstrap --- ChangeLog | 8 ++++- bootstrap/prebuild.dll | Bin 278528 -> 278528 bytes source/Prebuild/Core/Nodes/InternalsNode.cs | 25 +++++++++++++++ .../Core/Nodes/PackageReferenceNode.cs | 3 ++ source/Prebuild/Core/Nodes/ProjectNode.cs | 18 +++++++++++ .../Prebuild/Core/Targets/VSGenericTarget.cs | 29 +++++++++++++----- source/Prebuild/Properties/AssemblyInfo.cs | 2 +- source/Prebuild/prebuild.xml | 5 +-- 8 files changed, 76 insertions(+), 14 deletions(-) create mode 100644 source/Prebuild/Core/Nodes/InternalsNode.cs diff --git a/ChangeLog b/ChangeLog index 015867d..573bf60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,13 @@ -2023, Tara Piccari +2023, August Tara Piccari * Prebuild updated fully to net7 * Added VS Solution flag to include dep files * Added support for Multi-platform App UI + * Added support for toggling default file scanning, files node no longer automatically indicates this. + * Added support for custom cross-platform compatible scripting/text generation + * Added support for Windows Forms on dotnet 6+ + * Added support for marking internals visible to another namespace + * Added support for PrivateAssets flag on package reference + * Added support for Nullable node 2017, August Ubit Umarov * add Freak Tech patch for prefer32bit default to false diff --git a/bootstrap/prebuild.dll b/bootstrap/prebuild.dll index 995442bf552a1585a8c7060f5d47ac49473fa472..452581d5bb36bc6d8e4a741904dce0239eea705d 100644 GIT binary patch delta 54224 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 Q4^8fLk22rSTQ|z_KM&t?W&i*H delta 52729 zcmcG%2Ygh;7e6|4H`#19b+g&sG}056WJ7>Zk`QX>MVcU>D4;Y2Hr#-s7?()1paNG| zR1{QH>|jIz8z=$-{s2)y6f8&+L9n6}-}lVS7A(K_d;j+ypO16rd(N3TQ_h?@Gxu(s zIny?CrftDp5gl)MZsx-I8Jg9x@VO!JuO~;aehmMzBiPE6g*o=vju9*tc)vY@U1^-< z9%C49tR?1f$$K03C#N>)4KaIUlKGP33gnW^ zmbzNbB9hFu$hxV>XfrH~Mc5*}-#6?|F63onHD>not1X8Ht7h`v0BCmSLxI_g^46H* zv?T6EFRif=-u+-&yxSU@IIq=ObwKT&99!a4%Ghl-n^#m-pdm-KxN}iSvD20~tvgA^ zML@KB!<#9eb6#sKO`DuT&5DWgPDb5PUdULz7!&K%o6ChxI^3F-Yf?`*8k$mE?H_Gj$Z_;<#dtgBnwh|adqovPU7ivl30x!reO7ML=xd$Vm#hD zyF~}E?s$O|Oh@9Ggo2>hQoK)aG?KVNvpqFPGJa}3fiE{kv`Itl)7w-bzqZZfsz<0; zj`tL5vFF-yy=$oGX+n9)_IzzdC7FyQdv}v6XNYE8SN@id3P9iu=oORXo`uP`7l8B{ zI3@We?*S=6g5DodMMF`8 zJdZ8L<`FY+Xqqibwby%qdNW4MgS|u%^=Lb*@ou0(O>Iq`&F!FHaa zl(Ia{EG>TO|^ zoyhB#oY4F#688XzxqBihGqN`!!ucmw~b*k#nu4Da2Jh7%pSalWmg zS*Iv&A>R>0P3q8jBHwAe(78t}HP!nvMkCU@d{K2WOxRJ~DJPst0w-aL*5c-7ZzD*? zLe#jW+M61-dP~&mjnN{au!8@r9@RRm4q6dj3#Vn?8-mfu#Y6}rjuNXw+Hf-s$XL=P z4;Hqe%N31+6`1rcsjMban9${It?W95cQjt;+6L*jUGwb&p=jzD#<)p%0l47#MtZl# zX-lX9$I*6c`4iY0(1sHL7>XsvHQk288NJ@^KBQf{m+>XWt=&u7kZy~2Ij#ICwASP` zQ>yn&541xuV?Zu$ZPFi-4C7$;M)pwIXm1?&k={p)xE`(yv0}`j4tx5@F|dJVbnMXx z4Y;<)WTYSVNOMw8yzwY)5&lQ_W?%^nG%ohYfosg_Nol8^uGB>k69z1umd&KcHKHai zGN$xQhRocah55m%O!_D=wMb#OZUY7s?WGP-19$gS4YY(c(5)H>nqlhI!6#;f8fDVo z6KcW;$NoYPBZiu(A2jv$$nxK5=p)7S+pRXM@Maa?f~fkq4zuhHPN5q+rrECS1k!6X zJE|gY=NYTo1)}kBuaU5qR=uZU;GXNQGKeAcImSl zTau%1G5^@;)VF`eXVg@*(HdKvV)6cgOq@xt&tf&v-igMGefL3Z&J`X1Sxn29Vqag8 z$vi}W74F+DRAu?yV$i6G_861CAIfbpVtHI{u0Mtt!j>Sk#F#LEEN$L^^XUAn zfz?p4b)W~7p9el{|ErtA&fW0%pj&tp*{%troi*6QUo-j)PPvBs?-K>-dXGX@^MpGI zGi)u#F&of-Z$Dx34I2C(jczQ)x z^`4SY^?i^Ri%xnQeQX%-ap`n^7@poGtn|l_i103=ff5c%v_tNK^E+aPQPf|O6j@pq1xL#r+7^v1bkryZ zpV)BAC>Iws1h;#kexmXC=yw0KnvAof9neb~bH??PxsPn$U5k#DL`8^&P^5`{F(S+h z7hguAxC(s_Q64P{T+-*smrsl@A|FT@@ncf3 zxEhZc>>~^EAj+3EhVUKXqt#r*(wmvsU0B^s5LueMVH^L5z{ZblA7wQWfy7$eOVLbE zgeC6KRf?gvp{SdJop5eNfIA+(-#x%MKW1z;nVQ(dNo^F{jdKekI$LN3*N^Rw8T@E$ zx5mNUC9b%0l1c6?5s;)f+0)Fd*Hlmk5$}u}+I%k2u8i=~(|Z*)ue(`4AOwh{UqIHq z2y`!P7O-by+qmAT%SoETAA4kRCmi%B0J6h(EH^ykeK9mlfdx3=Xs)q;d|bO=tYNnl zS0-6Rq+ySS%>>U8VHbsCmQJ~i15-=c02_m)1F4=PNVZpC9%Q} zN}spfm~m4YR^gJHDiW#dwgm4nbl%gNdi>>0V=fzys=#<85_iPJY1u);u-njgn>f(f zlgxTjC-gB1f#Hu6`(ovGoRo?a)9^`+tim3zu-RdR^^+VhLjR;Jq_0o94!w3w&UTfd z5n_QsKA(QaKdDMqs*=NMaHtv_wq)4Dhwfppd{-7OQU) zF~RQ3V}j>=!f8m7LsaX`JPrx|DWL#oHma;Slft$p);dkQ*?n zFrL1%0DJJxJ6lCiON>*)8X38>+M#hHXQd&`nK3Io%u%Jo!<@@V2y-ZUSwA%0xHKy^ zEIv|FGRA=(gguv$jFz)y*pnW2Io&r~#493wef9;hu9Ks1D;8n#PBV7Rp>6)>IiYR7 z&D`>Y&^B+6FnK>S?wFe$zN;Udf}zCe(O5ILGJG{vs)Y-K66?_%wwj{M`a%i@q7a2m zG_vNkMtnYGUS~Atp?L@&8eW^%@t^no=)2oB`G+VPL!j579haTq1>r#^lfIclPajlQ-y*3)g;3|wMHNV3;Wv3F>9yy1bl z{7K{F16?uA%@?F&PWvtxZkvw^WONn?Zr3d+_)A18r`b5WfTkvSVPiR;Bp--H!{<|l zz$%O#vyckiwUA=n)e9X+w=66|dUj#cq~QKy(Ol=Dz4Bmptoc74^zOY1ow zWW4-PTe;$lKOZt#g|V(0ZHvaP`R0=2yNC)u?5J%WyJEL|-BEbqVuTq`%p3 zK$HyF9;sF#g=@A)3i8C}Rgi+)M|l&6i-TP-eX)R^C`bkMNn_?Rmr?V`5UkCuj|@e_ zvzO&`5Vx-}^7a**5N%+#SUFK*TCTaACZ;9MtRK2tP0P$>Iaoea^ZI3pnE36>s?x$b zY=k--PiKnkM>B*jmaCSvk_)bQ1#ck+VJt}F-4B*#mv zV%*K4oCz)`;VZZC^73Xy|KdxA%u~JumPgKuPCU^oGWcf=g)6MqFqh&syw9Zyw^D8F ze9jd|SAbTtI3-N$Zk%~8Q(Q}Fa(Bl*P2;6`X;g|#-hD>V^Vj|_-ssMM^+ubYZ^>(n z-=FUWGwt|7KJsH;7>IFN_d+9tZ=b%<7+&hq3r&jX$R|t|`zdAVvd$h++&w8m2GEi4 z;4*+V2E3TbI~X-Dj*qE|-Str_@RV`aOHKJ~Q zc(Hv?go>T<32*6LLv5Zf(r4FXTqfRlWk_5FG>6xeLfrmJ3%<)c z1Z{D~6}w!<@^#rLvTJh$6{5kzv=lA)n<&*66cP)o_}cKAvOj8(@YmY^cq<)2wPkO% z(faL?Erk~suGy;1paouHu5CuahwMaBw7UXBBRUkwPc*i_-CVw4Arp+$Prkxx0?a23 z`#T*`|CR4N!TrW>@06t0qLESFLo`A(6on?Qq zwSg-D3i~7VNx-dln6*bU)>D6buG;{h)t-%&t1A0mn|@G|MhtUPL~YU*_2iTTF(`J|L8sf(w6r;@u_vr(T37flVcfMh)*__+-X<|y29y-v; zr4aFEh_@XfE=uzE9ev3wKXohKSkc_|f{e1a?V+soEkzAf9X!m5jZN+!DUo`gw~XuG zcQ@+;@xMz_BZ}LR&|kUOm5O~&gpr5gqE6lj)4nNQ!zg29Z-)xY7gA`w;`IvSEvXCC zAp5>FjCc7i6{&v&p4TVW+u(OX_3uJnwnEmyH->mCkPqj58^*hLQ#j9Dk{1|@y#a<8 zZdy2@rIH~oJX4#NVC#oipon}SwP-fx)tVG|Wa*<=(|LChEbQ!Ya* zS=f_H#9#iC<5W$d_{q~KQh)wAa@Yv4c4a_iPox`+vAYVZuSV09!`g#vl=1}$TNK$M zoKs0|q+T2#Md~DJ2}&BfcIEh3rw6f(GJNcXq$8dwCMG`qLRQcbim`jKQRPH2hJ9W9 zBl*F=ZanM$LVp*y6!f!yp%1Vy))!OzSX_Ah_y!6_z zI~pS&sSgMQcNi7wlc1^yPKo?;{C6H2{-4Hw??VIXwonu)0>C%-WEB2W0Ek#o$p%G7 zePmC-R}Sp2QQzO?QhgMaY7w-^)JIMhn??2MuTg2X()4$}n9}0%P|0BYDQ!RVuO);0 z1Z54Tt)jaWgVtRUia%riG5)lM#h)ra5#30N3EdOOyY<*eea>cM@7{;Bc3X|fAE)qr z#=MU+6YhgD*M0a*h!;4caD0CCO@;ZWYA(z*!m`??8AlXY=0R{1Pg&ui^Di zV>nv%-o6U7;NrgK&|SK}JZdwFM0z(HllS*&6TE`37AKp<3x^oZ6y<#qBJQi9%#8gQ z9`f5mRv)Q?xcWXo+SLG7&;1LcFO7q*RrZnyW>aBEs2q;qC)Q+Zl zVh_k#JtcS=H-A1JA2xmYd98Nh1LMjs+G=InjfG#_t=+rb$T-+I&e*QzBTA3kVe~(k zrFGh2OgWgVjoV=?KGb-u!3F#;YNuhqlF~h&Xap8!6l)mZ75%yEA!%oKb1cHO+mWwa^mYndM9f=los~( zr|IF=6@P7IxBs=3#-oP|n*R5;;UpSpXED9IGR_=M!!bYR+w1=IRg+#wF;(!jwV92> z&V#qzSZ?H8JV!TIGP{! zF58Uvxn_A47o~3J#W%74@Ge{4-FrJ2uNd18?Qb`n70&*u5PECX0sWkqKF<6TDGad(a) z2VZBSW?T#tOlw+**Z;eWEyvrJ_SzjB<=X>UR19JH6+ldJ6;6F3WQ-$)WhZ)8|0f`b zT0+@5dxABs31vHf6r`RCWHF1zJ13k`YOahgPIPLTzBee>FO+S2eULgSM16d((fhls z>uet@W>m#{h*-_~y#az*KN-q)`XpG#%c1O!P`32bpujrHl7W!r;$6G1!@eM|HkAD% zlzm`-P+(IiJMgn0^_5WebSRs9ASf_3l%4l^kec}gW$6;dtZx;0ksWd{DB(C1%q|XP zW4;VhmxQuqUj?aOgtGNt2dVkr1hXH6vJ1W#@kzq^2JUX19m3*B=d1mxr>S z9BpXzeJPLqg-F+8!sy*)%_;hd;oej9-evWvs<<$>U3|>={ZwwwWfbLd#r>Jy69;#_ z(=ns!bo-vcccM}HfMZH~l=$EQHy=TQ-u`%ir!NU*PY1FT;k%bp6#Wgw^)W7PavEqlcxDMY3Dcip%O6;gp zLCR@k`48!F^G*i|$v=>YQF_Lyz4(LC{Y*Cvi{XJY&G4PY#xpJpjTNrPZ#TX?=u`x#^Z&+C)2&R|k!lcT-|iKZ8vG2Z$mMXMH% zj1k1eTQ{q>63P4t2w#=lEoY3gzjUqelYqECHtWA5UnHd~AnhuPH)qepk)SM5k2(vM zIjzhrbGq%U;r;b$E$6JU^VeJH(fzkpTHmwA9lxb%#@U94e>3y)uTciu6s~|RB{6#O zj{zjVDsq*^=r;vvQQ}J@qP_g1vHx6-cH&3l{J9&o^q-7zznA4N{0UPy1`$&UFETkz zy1*N#TlXWenuub&{d<*$$A#ZVxQQPnzBiEv;3$1DC~?_{ zKX|dC?`M8CPM;r?9qL6Fo4Ixzcy=6|yswZ>mp<>i$E4qJSJmvs0Y^~zz% zFzfuc07x+F(LsPihGr7Vi!?nIZ~PsFUZ;WTsgAO5qEJWreQhu>-De$Dv9|FW5n z%6$<+2*>r;#WO|UB%Z1IF7Zs$Kl{VqB8o4@y!$_h;(fKlfA~`@yh=O&hkuBLw@rvS z4^_g@p``nH{|XCtXrs>iU$^ia?WXho0~VgC)t&eMVc{j3|Gd9RG@q%hIsf|e(R{JV zhJ~+H+y{fUOr@;%2mgRLp2jQu6XSSee#ZY`9B<}4gVCY4qwYu07w@x3U^!>}2jcKk zyC3~Lo;w=0JH<%j*6jgJDl!Nz+h9>ySf zpP+?zlg+B1I`4nS#z*s0{@f(~rSEfCt8g)HGBA8G{~M%378kplF5t!Q0!@0t1;}P0 z5wh+cC?GD3-$v}8b$4W2xBM9tU^EC=ZNK|5yTJ3O!`fib;NaiV;alyYdnP!^fQy8(k%M@`d&+Pb5m>`BTBhe{Qn0umLU^1tBZRk3X`BXQ9f zn`k%p|Lo+QY`36cR?Ut3NPL5Xp=bVXE}mU=I#5t#TH`lIchN+dAyzb8e-?!_cO-zm z3t6#+74_1Dfz+M$KjGrd`uum|k182?C{>&8aiaQf%6J=g+p2C}Gx#%N)r6C5kb50(~X1+6;*{0u`k`d0nsyx&NRi>u%0)C~xLpmSN2m4p0^Rj_dm;M_D!z89$=qPHRb*c6jj8cJCcPq7y zwA=_SW1z)^AVJjZeIGi!TWEA}9A)mU$l-D@*D8hDrTbc4u#nDNBR#-%$bsA#YBcxAAbAvWWXukz5XLMrAh?|Yipca*F$J+zQ<(VJ zewu$+6wkeK3{~%@A0C&)$l-DmiFR@#x?yx?K{?d4&}{<{KetTL+n_yxJ5?$Agm)y^ zn$tbbpOD2f{G&5@R%9iHH^tvCi>JraMGX2(fiu3e^iR*?CHx`((^|{P?x;M34?{U0^!b7?6eItX$lWJp3rMz;l7%RJ z6FpyGAu4hYkm!uoFbq#IhN~47=^QLFqZJtQ1r|jpS4T96UiBv%|G&!45}jEDU9vNV zY~XT1rZ2H1d9ftF0kX>tr(<^46U9BzU!2PunGXKR{JnE|hHs^mI|ezYlv^k%sf>qh z#_p#@X)(05@MWG@7__huF~)A8_;QA5f#w$WQb(mVw>TY&6+nbT>4kd2)rbZ|c3_L0Z-t^F$#g#kbFY9*aTm~gT&+s^Whn$fns+~yY7A~A5Pi1fv1&H6+e?KKL9U`QQJTv= z9h7MCI-+vhr9b~Xlpj4U1M!s|_l6$)=f5t3JN-j(@!`X=VRm$a-tOUz1#?0SS#|_T z2ZXHoSk1}6^pEHpkxU1@9CUb9@ej_e3LO{TPGmr67a)iX2xOr}?GZHyQ+3vnc^9!F zX2;K(8ljpbav3w)f+}T`nD;Yu*Q1$>#7TYhdQzk`&_AUyZ_|N2>D-qI)hLR<5U5vUwCCo`9g zsvN))7kJk|sKn$dHp{FKD`Ffor?HN#`4ssk7fl@$XsXD7aAklXGBA>6k!&X>9`}DJ z>=N^*)gD0)>SzUNwMQvS1EkgBM%P+L1EbZJQI#Pthj@^Qro+ z!F-xNCzwyy7Y6eg`lF2dRN+SY^Fc8WdyHnQxLlbWH;R7mAuc<|dgRiFo0(~i4`yCBA*|%1UuPm%}Wa3)wLdue1YPH|P z)auAK{}KXC6d@2fFKkTD!3ND1{SXerPm=>%~_~_Z zc6gv~A`|G_&`{qXb9F#QWU!C|y`3z2OM4K8eghp`@CCBp?crqwZ%`-P8;}MAK|zu< z?+~bWzu}+h;W$lsW_+nw5~Vro2x-Czl{6DEiV*5d4ksi;2-~&L^dTwH#NU&V!7CAH>%JF_4DH<8 z<<7m6cJ9tTI+A&8TC}*sa_>Qj@Z|xM2o-vA}*Cx7RPH$(dS?)!f6o7 z7m1?ezCD?m8=ugCOGvy^SK0oUsp5&z(>jopD|%`N|CXjalV9sU(v%mZ(N7&cG5RMM z40+RuzIh<&e$Ss@${)@bb@w;PT7w&e{G&azLByb|{%=Zo-+|X*(8a0~8CV^bj3kH* z2%`c7kpW?JfFLp;Tpu8ajNj9Yck%VAU4@}4kVERleU&i#@g&(on{h3k-m^r+*wFxZ ze^e3^NCJB@4XF1g5Nm%%QsDhX@oywPblyZyxg@4xIO(5O`zwU%sBY~#w?TR8gE~4< zW0iBIW~wYcZ9uk>#%t=vP*$|Mj+&{}{zf%Wd$ihflqJ<#?eCPm$^T??UhJAk6qDWr z#pQcdtS@ujB>$1-+>=b+i2hX2WC&TN67sI`7qq~krw!y)*!vB-8Q5aWS@jHt!x>}f zA5~5LoJ7xV`V2Y+iK^(PNQ|YII21343__i+Q5Qm;VW_=G_fpzRonWa6%4d$%bRT_Y zTUR4!c`yc4L4dT0XQk#=pg_;!vuI!$BSQH*?Y@ji+h?7c)4|izfNMli2?FIDywg5yKa@lS0)Pn<% zb*U^xn?VCamx|W17`Vrqc{bW>Ew($wor)C)IvNOZvqF2L`-0|Q+LF85rQF6?-W`n1 z#&a7?DsRwKeZu5%I07-&XCq^GX`JN^9>hL=7k^g`w7l+vdt!@b-vWF57hCe;5`5#p zFkbj9s9VWVR_Zv->jI7Ma=PMwIpw>C#NfpAh*Zk^fxCRA;OxGqaY0zEV(r z%^03-X5Xb#{qKv~va8zoP-$@nRo$)~rSGRxI?zLDjSxChva5-iJy1>Qj}D?YZqlaE z%KG3!$;!4dO7|j-XDd72R$yk{F4UkoX>AH;u@)_;10M;lUP{~z$U_&(n%VMZtGUn2 zqKjAacy_g5zuY{x606aETR}W?6o1amtQVRRk1xWha6Ixe*uyaX9jfZaP-ABIie4Ud z#i{hEJIVtlr zrTpieccCf!ni1t(O4}kQOK*A)O;G7-G;U_;P1R<0p@8x=#cc}HSVWfv6=wEz2~o}o z`fM?wyG+z{IUW~FX$m$s%WP(5zQvprZxIFV66$#xDVr{a`hZApVQmVN*b?+6jk$72 zL3@munY~#;L;Y3;RhQ9-nsrqsrAyKKOg6|xDnG|)nb{}Vq$Rxzr6ZbA`m~sc1fNhp zvny4%Dv#1jLgg^@23K57NkK=^*J()OSu@OWJlootn%K9JWKIgnN)Ji8ONp{b)VZ`H z<@bouEp|~^UlEl}XhdcArnN1KXTu78G`x$NUzZclE{Q=NkbP5iJe%bp%3@HQ?7_D8 zw8&)+$EkL??3?ma?b6tfO=%1olBl^iwx#reG)kL7Sv>nW`?i8K_D0cyiZr%ErfDR< z0u4=KhtkLzhO}v0RLHJu(b0z`;Rb`2;N4;+ia(f$bJ_lMqr5K*peL|631Jaq@#{9- zHVk}_a!AVpI*r98F zt6}iy9R%vxj8F#a%s86WJS`uu0y5b(5>*k(BLsypIV9;;yq)f|Z7;H7+@cci(d4sj zhvDO2i8^*5)Qa6Kc<0&!`B)XZPr!7+Y{!-h)L)?X3`aXua}7ktqhT8aDiOR6>>U=3 zaoSaKw(TC)5lfOJTS4*$)|GuBPz|X7!f6k@dw}M%KI|8P)(GSq$Sw)!7H}wwLU$8c zXMwI|i2~ILbOTEj$S=^1ELWhF0@bi$f!-GAX4X=megfSNcTP-hhb3xf%j?w@s_bW1#en&;;mHZ9s9y&-b{K8`&11-qCF0@qrF7O(U?RQnejvGzTlk{$R*Ge zeo7!MlXyD+L5qRpJqQ{0uv&grgATS9aobro4QLj4FMu)(=oifdn+ETp7bSt57NB&GXS=T zKaj61-+{DO)t^Yu=0(|U>{u*S(XPcSCbM}je_cX@YD($UY)ZY&6YL?b z9h7MWloq=v9fXuKUo)3I2OXe1b&uqIRNcW284w!ID0Lv^>`OEC<|Zqp6JjX+)=Knl zk<{{oxVb3QQApIzpn%*df@&zrMqLh^UdkQT+R9zoI3i=3T zqb!uaIe`YecSW0E;U@)mvq)!)v?PioZ?blT8sg?K;^r{o<}l*sC@yv8-(-CMi_rg% zGQR(#R{ww3AfFsSIYfiRfOo*W4w(6U6|IHcNCRetKm_(NSfnu`O%y2?X@8MMa*`P( z(rF@{EmA8|X$OJYo=oiu$+f;LdaMztGrcQ>#xx}p>xpFp<4UA7!qPR&wtGR|Q$T4G zksc|e{AVIf7ZfYf=Il&$KUl_3CR$U!=Us{X#8%g${u9D(R>7!qSYDiOEJ$O;+Lbmx zIlcy>t>W*SxD)=Hk7_sKGt@W3nQ(4ZAi@|@n;#=hV#84xK zLQ4*NHHw-NQjcE(OZBo{q@J_4%%>sL0t48bJ=)?Y58Q_*g3C>m?Y;HXbHsXRxv6c3S(I> z98^IJ$uu%k%Ed6Q6sbwjH;I&s+WexSIihi|B#`>g;BMjOQ8tJ51UH9uhEvaBr9Kl4 zmoz2mZsk1DbOa1%Vb(>===~yny9?#Hb}=~X^EznBLuPhpswI{gTDa-#aWr~ z`7_0gb`ryWNo-3KB54*Mi@JzW93Q2j(h*{Ut`dVUCvIkJC#atl*&FH6_-T-gjT;O} zTG+7vjY7Sgf<#f>$}Uu?q{!(AO^um7i@us!AEY_#gSNv_(UF)NRCS!)8eI2*B_}&0 zYas6;)l-8eB;(hHt0E_(UE3n3Bh8Gx6BRw+BK5DQP&%sx*~eTMSB_{9mZjL)gk!-e ze||DuCM-;LvXzb{DEnACncK6SsO&=R6*Tnja#HyXdnCDkHo_}5H>Ep{s92B!`3TY> zYrKF9*-wQ}qMGa+5?#nXNS=kG)C&q#RXv-mv1Yl%lhv45`DLhM5XD$btX~j0@b~bC z2GNH&5swyVwh!t*W)?P4zyU$k z7~3k)5=)z;my=`JZY6oLaScv`O>yssW?ROkz6xGzf$A;3TT<5pc2LZys&|s(Sa*f~ z%-#;vPl-n5>;f99cn7+Ck{r)QD&DVM4ggJ1ypfe(B`2^c3Jujx0^O=4$7yGQW(%~C znS8CzB`31olF8cOg+UTKu8_Uz&t!Z>pHJNMwmE++=OWY6PlhgV65g>^sS0Jxpt{HJuaaC@*c% z&(VTeafD&)Yo6F5o3&s`0?lPt=9q!<6`IwQP*;gWcU$<_Pyv@%s#@8T~P3vlG(g7OKB}d_vF}l7j}a}3AsK;SLP2QJMYd`Ds*R#&(VV& z4kA16#m*?SIp+pbZ`P6Sh|%oLIkWi{Y?MN;Ktq2v*{5J>^V@JsyFj6ev^kD}>}Q2i zvKBcIcGATys@Ylih+`<5u26E;O2^ggS%t==tae<-HVGsh)F}3WK*HGAD7HVyTjv;~2~KEA(dZHpc|k8egGMxnY>?n^42 z*k_9OTVn^%H;OmbQ^O{+?-cK5j|1o@#k=U!ebZD~rF!b%lyQp=u>DTtLtIkq_KbBE5xNtDvv|6w1V?kmK+ z-pW3f1=!QhV~*QcGkl#xo6F59c3#J>5vZPZ>vG0%2YXfV=9T>Bn90iVeGy5n0J@XC zs!)E?Y(AT1iAX72ukj`DZXeJ!0!*z^Gex9}~6EuDULT%e=TG|Nlb4+2SBUCQzY zl4Lzwl2hqi%Dz&lxOHde!)*T`$s3*2&-p0pbEQOgly!D4XFn^{wPk1L6KwWi$(z>r zDxdQy_L_oG9jeAHfe38{$ zE73z;yv~=|HKQe3@3A`9u<_SRM7@87?G%W5-_q%8V9jnIrtJNz>_LHK@7Jhk^prl)!ud$h9C8B9s$G#V62^)uL+Q7PuBc7a?H<`yP5l!#g zJ~m#Lkml(fwoV~x=|+aHM(|IzbQ9YtkZkC?tZJ&@iD`O|RSP5=`X1{ekZkCC>~@6) zCCzefX05~<+a>Ib%g(nl|2O@((>K5I0_O+pLBWxhww;yVO!Z4k+sP&hB)jk*w(L&g z)idhCZv3qYiKqvA*ieP22OqHu0?8iiWfSL4XvX%l)%R05>aNe` zJisy@ASkEo3pQ0C+22EK!D8ac{(i-FFO`V;`!&mcNFwU*H*B*&vcHE}%ZG_4`}-|h zDUdX+BkXyBL_^cr5!N7~=*1EChC<6-{sjZL+gA;*dW;=Z)WPto$JlX&O29kLsvaR# zb1nO`2z62DaFzq8uR>3^t6?YDV1?GTa{yf{5jK0j^E);th*mg%U~dYvg>~^&taARu zdMqOqODqp|ebM0&QW>B)!DWv8YE$vYwqs9DR;e3A9B_-Z|D=A)373 z*>H(OxBpw9f4S%2sF}c;}g0q3^&u&zdV_ z2k!!_P^bXB3#_w3WMvmwFNORm4xm8_oou|;=e)$OR`9pRZvfpOP(5pu`>yj(mb_f{ zmpm`yGoK|SSB}Ql2~^L>6GiZdUlC0c6JzCr6_P4OC?r*kQAnzoq>xa-rzs>g)CnXz zVdcK1ib*|;;VT4^>SOp>#iJg^@ZS|8^)Z|`$fl9{7#^(ct|UZuuJ^>MsjpeoBc|g%6 zQXj{kRfyEb@mB?s>f^X&tq208`goqWHl#kDj}l0#kLMEbLlW<>UKi0qJ0hYXD9xFyqMbLx|Le5UCF#QXfL3 zK7>ep0Bw#W=M_L(;(WC3?L1=xDU?pv&UXs5kg<~8PTUB+LA-@*dY9c!C!Z>i+`dz| z`%PKy#{2`$G@iXvqC3jIb7t}5yCjNh`I|GBH`^nTqy2ZzeE##75}ot4`_9>zZ$2#H zdJlIM@%&>F?XQS-d3XlC0VnnSnmS#jJOZEj5gObs+tr-g6}rE)#MP2_QOMW2($$6! z{f;E-ajxy-s^p6lTI3nxs^aSus%z&P>1xjp1mPrCC!Ty#7OZP`o2v_-9z^%Jdhxr0 z$nWaMM}99Q$G3aNHJJB5O=uxI*J`D96nuhDupP_x{h!Bkt7$g496oHy|saF-YelPB_z1(HG6B;F-L@Wj43 znfDe*uAj+#P!O$mP3E^qWVtb`noZ$8g{EaCvMD}(mx2@V$8dDMAi!*jPd)f5h1z$n z#_QeH0@Yi3cTNOauXuN+zw4UHHz_nfeH+kDiNtD}#-~S8L+4s5aT_;{&lG40`w%Z6 zrg7i50xo2)7Vg6TMzV{UL>ID&E%v*n^LG@=Fa6pzgMT4VJ!{ist*MS*ut>?=hKX;qn(GM{HF)Ty!n z$Rm&(r~CLP-e0)7xfVxZWy%76heV>gi}+k1=$~tO$kaJy z5x-xFQri~sB?8H&E#k`+uO_F48T=W=yEVrFv|91{<<_tV`8vhBCf5P9N%7LldZaAo zI|Y)>Ud&VATA^PK{u17aAR0sJm*5W<5R&SbaQdw(@t)Q?r}#O&cOc$cZ4l7)iuY_b zE*1DqiuZQ518Ay1QsF~U^}kMPZs$Ffs~r!34xi+@Vy?pAujIEW=6c+}t>m*5FSclW%2OPF#a>KBZuMlKSCnK~ z^;DoY6fZl!8lMxrr+CHri9kCQuL-Q=8UC^2wf4bGp5X@-b64t&lvO+;O{%CjRkKw* zR-k&zeWpYphvFT?E0AY-BgH$7S0K;wLdg@oe~x!ik}W&G#Gc~=6xv#0N_dW6tI)vK zK4Rj3wM2blo}%F?&+)qzdM9_2^?Ck`Lf^NtCA`4bD%7RAKIKKeSE1JVYfUflvkJ|t zSZjKj|EW+lYFW*5(xryaQ%9w&;rJD{(6`;S$!C3qk5cf@oVBI~K2sn$Yp?QUnNqa0 z#a$_D`D%$o57+XRS;VVnr&}%rFE*EuEVqGY6o_(`H(EWO@&?aWD7NT1Adf)xmW-mc zDZV#&E5-C5A7H8s72odc`Eu+sN-$OftQVe39bOY;WQZD;~}ECjO-4iLrQ>?^BXv zTsu?VMp|?BL z;FG)88q599vb&Q5@Eyhc2F#s&t3tnkx0CNy=&Lq02p#q-^lKXj(ANsZme;WV@DmE< zl{W~)W5L|blNIV#@Dkg@GZeZCbGe5X zDAciSHT#H{C^WcjB2a6EZbn1*^7abdi-zvy-4$Bcp_+Zn`vHml@9_?afI}6tYjfNS za{L5LG_8Mg2haqChT*R%e#)mPR8x@%bX!2OYc<=)?^I|~*F>Ou6|&`3v;Evqs7)Te z@#V`1VgIv?0P{1xQZeU%`5Avvp`Wm14)C=KX?YHyw-uU*5bATjMWGpppg!lj6gq3G zVPEil3Yn4|Kwl~JNRw)OV0m01-(1VuCW(M&6|;}CnjPZ5D|Edx5lCwy$D*mThJDGc z3bn)ghA+8Yp%g6NuXwsb`B=VR@qC3wK;hTiqmT}LU-MQH`7HAg_kP3MDduB{d%xk` z6nd__njPj>DD-Z5BG6R|^{`d5Z~1i!jj$yGjaO({+ZuL+*C_NtTL;js3Qg_!67Ie0 z74psP$N}$BFjA{#$M_-|!})Q(KZrg{ zIl(POG=}vo-sE5>dA>q_`igFk|DG=uPvnrN3}bQ=wi27{BtC0@Yh6zW9~5Q#{(zf8$*h4_mqq z@CwNkm7e1x1(NMP$M2G&Y+e&j%I~~oX{Z-}@cm^{Aw`Vm`BwtTPMqf_6z}aeU#48( zXBBT(n2>=JLM5Cu(_cvpdBpDyt$6z}EA z8ulm0|MQmS*RrwF0d$?>ZFJy`n>J4IK6E4k)hOOIEo$&fW^ImwG~8UfPl?iSb8U&@ zQE07ck0~C7)|&Q=;_b!Fhe>-`@xH|cvq@X0c(=E##t)D-D&De|i9jDH-bI`;A~oM0 z#f*l+NbP`P-UWwj*1l1^6>!LA?PP!lFA$~uqYqTRiq|&PoEoFGQM~S{u|ORa?=>vS zSgnUbd*QBPwE+rc48L3g}ELwf}kA zP6Rxsm~XVY1&FnlgZO@{I-qEQHAlr5#zoTfPhk}A@)OvR&Rn64En z9=VoutyJ-jz#(U7Jr!Erh0sWaXl-R^<5f9YTN&CEfy75(X4XiXtwc#hBW=DCB^8ad zr2@%zXKEV-lFiQ265EPqiymfcDFR7ew$`$}7(;POkfT*8M3a`I;s0@j@ty0le9&}u zYOc0XLdz#j?*aNiAv&1nX?ql+8O_rUD0B%SYQFZ3LJ2tU=4&SvqA@JceiBHIVS#o* z@u-7^T0{p@ug-skTAYA$E#zn#YYxREN7Go#R6H6)w^pclG>C4kRPpGNqKVc<@#vDG ziPll^$efF`9*RfiT%-+9ytBTFg{j5b4GOk(5Spma7j6AOw<d`C; zebtgsnnIs?s)2F^s<)if+hGuFp>@yO@pE| zhou1&Nw23vi0($4X@i0)9IUxENvWrDEwpK2ycXJQ#XA6AnKnO+=PT152`kuAC^QM5 z@L6gAZQ(5)o2;!BZwoJVe3{xNhzcCvrB-TB1}o+G{pm)5zQ(!N%&N3=3XR5LrAk}X zS(qL>g;%&$KJ8rrzmBfzR0HOAiTLOaRB(^t-O*_f&=-ogv-w>qRa#axRU^MTt3qQq z>rzf>NeQLacGzhZJ;_+6!<&)@06#7O~_O>s6wn1*~GughbWwd=VkX~>I-jgc+YagNc`Iv zg!f)nBpV^~|5m48*iEQr&N}~NA2o~Ig2Y%L}S%UQ^85)<{jphVF3xPkS#zHO+DG9O-@Yzol> zD>-}1 z`en`X3GXh2q^Dmlc6Lg&f9*lIn(*qv=`t_(RGEf1F(3*1mtj(%)#26sTRuGOn1$U@ z24MeNDixD8XslO>*osGCwjvn5|A(!RkV8ueB$WkYqA5 zBuoM!nMp!Olv^NN0#Rm2f;Uu9tOlvf2)z*Pshr{kMQ5hiDiy0#WVBv75wP0g1&c;| zu+9h-si?=Q$KyF@C)KuCIa+G4Xi?Amy?YX|K0c3q{{O?n{N`QX`qsCud(BK{@7aUB z{DQ&9*ni2lqF*!;|IhaL7tZnLL;oI25?5AnVLETFWEom~Yl4M|U4L*Y9s5d7jkEMV zKN5~5esndCtFsJ0U*KrZ|8Lq^|Nm^bFY415*^iEYw2!Nt>;LHNe^!5foE*#1Thpi0 z#9+ zKwHD{D92+29#weM<1q%0@hXPL*Q^%RU>%R=4m>*X=)z+z9t&{I*8;>^fN1drY8!-9 zAlK#jzykb2$qAE(sbp@)02#!>b zQSTAPQN3KUb+09^+i-DH5PyOd*Hz>PV7uy9a>-ZBlFzc$>W&C5>#>sfuo|=Oz=zZZ zHF5HJ$}&=_2&_=IvVyF78GjwCGS^hCR9RKwcl713oL3d6eT|Bb!zCcMs8%K4ShwPA zj)zo>xoXZY(JTpo?kVaD@>%jF{FI9Lw3)w+{DbO*KB&ggGLL*qo!fFhPRafn zdA#p_wZK$NEw#GMCpcHX#q6%Fw7TPF6)yHzVD24NXZfsebT)wxR8Fv3^xI=wq5nAT zWUI>Zj#vQtj_bgWW}Jh+koc@l{~~KS`#MflG%m4Ln85Tataj>Vv#0%PYaT`=Z7t+z zEv9{;lJV;{{wh?@@m{9lGME>tQ0Hl?*&L6*PB)u}>hFi;jT*l`iB3iOnyLy8S3noR zf~jG}-PZC^HL&c_WA!$EvzyHO%k@k}TCTk-vSx)R=;hYFDXn_Fk;z@Dp3@zAh1D|g ze$1e^(qo2(vKMp>OB9xm~T9a2hN!HhVZi z&6wRzmOa_*v7XcOK`c`90v4<^aZmd)$@N_jhe=wLHTPBw#~g3yy2PAh&K#96FPL?> zV(ta33|y&3-E3|hxdFv?*4_c`uH9s|8TlrB6^C8IZ8hDdbmBwEeZ2l*G<0kiR=f4Q z?+LTqDxCh5dDT2xyBAu{joE`*HtV2j=`9g)?3IO;$ZP>TR>a$fU>$ zIB1HrTyIu|1F}Lb*UQ?m81-_@@j*-w-d<2YNI zJKwbELzQ#w7A;G7Ge>l5oP*YEo2JW22KecL6x)b)aStn*{MP)v;D7=4qjF*?PNeSvwC z#SUN@1`2#Qz(yBr=92VT>8=J?WB>=)n}PgNHOEaaIKaiYm25VL8)p~DLYrG~1PwY* z*;sm~Vdpr5d(7)&k_A507%x!G_9rv0EwJo&XZ)~0j^>*S7MOOd@Xef>9r+2`$@P3q z?a5dN*Hq!i2A@EcvdNS%bO{%7k$z&-69tlcid(e9gC?c}p@-aU_Qg1RU=NqAH14Um zyW6BOyRxe1GjwsG=uKFLSNk>;uEW$Uv8wcCGv6&-&V|#j@9%oQa0S|aq)_Ja=7OXd z)o{Nmw`2=1$6OIaFta5h+SFgIAT)5IGr*=m~2S(EUmW;sUj zTT(Jm?F`pRHk%J-U!+b#tFyz(IlSeZnt2R&fFpE(YiJ&h^(EFkmYRoXqs>A@3l%TM zA?MdgEfE%5vfD0Xv8~MA&VKJ8-%`P`_hb9oGxpiiZhJ-Ji>1xxjPdia zHNENkbLlp-ZT6o_cW{iWtd7Qakt?TawV3Wvzf||?6XMuR?$z%!mU`qB>E?o6mTap# zI78de2rN%cO7_y{ zC33HL#&Hge^fIaUnx{NT^tA%N6LG@iz0jGi7d`us+o9hi_n6he{brvv7H2f?Lyu3x z$rqyEq<&RD-fqg)viAqLwhwUFU)9s5`^pAr8KC6|^%3g0t>rMVwHyTpIPA8T!{Z3` z0J+b4arSBIRsEcn^CqOZHm7EQ`Uv?dEhSnGzj7^$t6a+qo9w5hc>5{4X9*&7fD)ma ztcqJ(C;vxTHLI*xjNgL-;xuIyI(z@)=v2lXGTHtK^qT>A+u&&{?>wU*cQ22}R8 z9*4^Opj0LsZ2`E^*X0$?^U7=H3U4d@+v(p)|4#b1>I&(7E2~5T{gx^CdFq+9xR$uJ zcBi)-)3z79YEFTAiTWjKIq3I#4^X#b0QP#@E%E83?xb$jvN)s^zEmS%w5#YXI6BNj5mVpcXl zN-ho`ybw(DWz8iz;_Ky$qz6BL@l~G(KT+{@(5u#h)oQ?3s8*}LfeCd4yc!>k{e`%; zxd6P885@{!ixT_osu+Bb_U*Jk3OmASFIcX-kz1`LTu@861}&wUv_u=HrR*gAFJP-{gX>O&l{BiWaNPB~HZJ=utT_@4Cm98`3TByEhOW_M` zDSVMFmX)@YT}^uec9*)=UgvkIb@mUz8|@px4fc<~TkH+s?e<16ZQlZJwtwt*;ip>c z+mYC6-w8fwr@`&^UErhkW^jjnH<+>S0e9Iy1E03Hf_v@z!GE_O^pC{{y-@uG{7}jF zMoqxYCVmKxQul%N>Jji*wF8`@o&;y9m%$G80eFgXS5Hv!GwF1$3L&wS`U2Gt{T=En z$TjLfbqB5(K7td&hJjIa8@QB~rL-(nH>u^ptJNmh>#bj?8-qzp{L|znYbSJuI!7uk zxj}th98V!8>hJ1Iw;pn!1540V>=3CnB2 z9Cbgbj8trq##|nVza0!RQIEvmf??_oXcLN3FNH1(C8(3+8dye!Hi2V9JHaWTH^A8; zV_zOPB~%Zd9qIs=hBkrU4mG%BR61OX0+)xDg5M9V0XK#=ft%u?oh})!ewVcC4VWGY zSp}j^!J@!3p%8V1?11I>p&0d2==VZN>NlWOopCP;46CaLE9yGHVBJ#in7TFK)VfV> zsbv#%N8L_ve%%}3*X!a|p;Q(k!(@bvk}+~=;iABI>XOuJpc8eQz>Re~!7X+Dw7&uU zXr1sWaJaRv&MIOziWUX-*M+DfWQ<%|bdx$%my9#928puzUg}NImGxQbe$pDoKxBxl zCnIExOp?81mh303Vs?*=kTEhz_7=w_JIh2rX_c@586jh2lI$fnm&lA}sdHpMsY<1+ zMcSp}6QmB2VKPES$yh1Ze}ai5nI?P544EbSN#$V$WRMJzVKPES$rza=d&w->Pg-T{ zBp5&9i!c!*lVmTMCHqOs%K{FEi;j>nvbUVgs-O=UA(Lb;X^mhm86jiBxG%{>FPSC# zNh`ntWQ2@XJ%fs)Rbo$&XUWR#4@_>^FFf;vg2$zC!` z_LJdi2^u96WSZhYp{@;6NAm0mY^;q^$MWn6Y^_aDC-dwH?5a&u z_vVQyh}UMB$cB0X@74BG_e0x3tB#GR>j?ycLF!PRJ%KU7Fm)u)o z=aU-CY%)wH$zC!;X2~4cPpT#?N~gKWU9;I5I-U$bQnA zz+5syh9`<8N@mC$sV0d%2x9$5nMk*YDMJP)iw=`%GB-sms+D#!N(QIWLPp61nI8B(1mI(=TT z1q&HmB05Y)mlWf-QhW&}(!$gOw_7ilz2e>PeaAcC{m|Rw>++qJy6Fz z3ndHir2y_Y(RL6g6Lf?QfhYSv0LM0q<%+70!8z@?6^SYidB6`lhl9&zR)QDk`jPk! zyScF$iF2k-0BfqGm{a)jaiWJe<2zrqv|K`8NB*XD`jDsNe>88alu}1q9R0izd-qsj z3;Cy7(eWL}eOh2gljwKIX3_~awz++%%D=MMm+|~EK7WmW>2P1Z;(x|7Eg#9N{ga=3pw1m!+q&BM;)cd^Kmhj6vzN6JgpDJ`=pV@zXVN z1NAvGyJ2r`Tmn9Cz79GS+*2=}tLub6m~!Ee{V^>*PX@*A#N0VemhF6wqEnXj;tzEU z@oYd`CmwStoKEPt5^QUb_ReMK*Q?gRvfhYA*9m9LSqsZEZ4&e=(?lIzwohU$^OO&;guuA(!{a3 zg!a2Qmru=*+?Y@J;4Ja^L0GCEp~W)5vWla%f1+5L8y`Y$b7LRq48F6++*8l>?+mPy z@#6Hy;q=v}o#1a9B(yU@yJm`hp+dq%CyRDMICFoP+fKSwa!a|rZ04xk#t!sN6#oy) zh2I;w2a&&0^*s2>h(oger*R8%dVi?xWn`$<95}n;ZScGq?}I;>V&P1;HB(B!Ia31Q zq*-;~qG{tnXNfrrGr;k1I&%!GbhOirw>U!EJEfu00jz%~!wK=~geeH;1RBoOdvsx^ zuTH<6Bf_cvP+J>H&8`sUX3Ykd%{&=AyW%Wx|Ewt3Q*iKW;4~Btuid{ zj*}Msrc<=j6vxTo>s$ejekCkE6_I40wZ*#6j=yV-x3v0;HPN!vK~Sr|;tUlFSIM?O z4_H&cL)KJS-Ul@p#!YB( z1>Nb;qx1skYEa`cwlkq?K#luvodq2PHO?S78@dkEs$R#tk!aA}NQ}|vLN|gMSAl&M zx(U?y7IX>pF`!n*>KODmP~)1XrO*>VTuq?A20aPXxHRb-(33%pi;tE=w}M(t)fYfd z192}s{VnJj`de`%+Vr=Pmd?4V z627uo1>L2ufSwC#b%MSU`b1FUOSw4o$)LtPT$0f9K&?*24Rdf3=4p7+>U8}*aK63< zT%gy2XXxv|Gxhc0dHMzvTLNko)$5^SAkLE2H$i_5)VQzU&CuTfapj9nL4OOxwL$t; z=x>7>H-EehdIhM}zv??I9arDcKY?i_sMW=~7y1$q=l|+W(3gQ4C!}owFV{bX~22etZR=?2w(Az<+9@cMwkLW*uefm$ZKdR$@ zLgJVDEhPR8)VSCA+t681t0%SGiE1aP)h_)m^shm!p3(=QcY|6zt>1&*18VgfeF*v) zP^-QAZ_v+z8ehVH0R23u)xYb%L%#rO^;`XstjrhnM@YP+KLKCXme%S&v;kkyF7Q9K z8+=t4f&Zn8!T;8!;On{!{GIlJIXxWg*A*Hk>4I9lp#$I_bQLUr1aW$&9t9rIqrrD{ zE%+B5(sQwk>3SsouE*#CwMZR{(=l<@8qUxB4fFzaz%?Cw$JGY@)inzoa2*G}@0txB zc16GsU8%+gtRKaH>8T%UJzW*6`FPYUzz3mo)syNXq=~{zCDsrFR(|5-GdY{$z{Refn#9E$u z{b#x|6@6UeY@oi^ex*O2Va0AfsLMAV){pnSa9De-zV|-R-`3vo6{}}YdVX%t2(vnBOS3@#r~_0 z^mu!mFF7Oi?nk<+sk*|KSa120)%ah8NRk?^3J0x)75-Hk@v2jkKGrkr27ls6>cWrp z$q3o^v2Jq1aJ@g-kox1tx;xl}_%8eeg2%%)CH4%q35so6@`>uB+-bH!Fo#&2KExS$v33Z;~8|S9CWHoy=Ix!W##_FT7THXe+ZHKrZ#m} zdFncCYORvg&$S6POI1?*HKz`L;tmmhw+pRm_6+t_dWqYyjVYF~D0JKG_84PoYbyOo zG{7^|nsR@#9PM#Nt~_zNW->G{tEF{1e-y6zKey z2>hSeKHP2l6I<~ADEEROTE4 z$>11Wm~>!h42!`&oJzCO>ns}qSYAd{3y%hJB=G$ zFI*m4hgmFyby z@+Ern(rNIpPa_l`nrdu1zrjFB2zQDyv2>`NhkrH#A`!E-7N$SNCGp)SBU5Gi2Aly*F{i$H7sXVXHQyA1(Hs0aZu%Kn3 z+SjnZdu0>IZ~fdK7|ctSla=Le_tD|drz8Fq_IJ=$BNT*EA^qtwPyGrn-Z!y=u1 z&y<=K*3=nx0kW`dcnS(C{8w5YoFY|;M?(>kd^Kr8Y6c!nV&P#@omx?5F1H3!2g*z( z#>wS1%eoH?6<8%9mB7{ouAx$uL&`g-5{Cy>vRu?Ejkb7jqE%x5P)0Dd+iS)(R6F@H zJwsU~;(0xg94BZ`1$<_L)s&j+GeIoBZ{TSf1|nHqf@8{q#@{UaLLqi#ybdNFE)L>g z#;nQQd4d?@yoN|U?lV)1+THTPCV~I%Gx%YbRIA^d6R*x&ONx+-=3xC4AwD7_fh`}Z z1iP>0uXG3L;3>fiC-*t=5Tg`>r)=CPnhyd4+Ec<K$WJEY9Fe8^fdR3ur_=dCmw3i@``n1I#yQmxti=Mfh!?s{HX zr_Ps8AS8l6ucIt=2>=6YwLf>eoem2am^WJ&ouIiQ-<0ov{ePMn7ZHe~OzG3#+ z6Y|!vgI0-l=1;$V!?)I*HT~t)-@WU1h%or?gYs0Y*dB?WS?;^C*j{fxq;D@sdA#=P z*5!^}SGUU!YAZjI$f<=3*LAdThe version. public string Version { get; private set; } + public string PrivateAssets { get; private set; } + #endregion } \ No newline at end of file diff --git a/source/Prebuild/Core/Nodes/ProjectNode.cs b/source/Prebuild/Core/Nodes/ProjectNode.cs index e335cd8..52e6cc2 100644 --- a/source/Prebuild/Core/Nodes/ProjectNode.cs +++ b/source/Prebuild/Core/Nodes/ProjectNode.cs @@ -186,6 +186,7 @@ public class ProjectNode : DataNode, IComparable ConfigFile = Helper.AttributeValue(node, "configFile", ConfigFile); DesignerFolder = Helper.AttributeValue(node, "designerFolder", DesignerFolder); AssemblyName = Helper.AttributeValue(node, "assemblyName", AssemblyName); + ScanFiles = Helper.ParseBoolean(node, "scanFiles", true); Language = Helper.AttributeValue(node, "language", Language); Type = (ProjectType)Helper.EnumAttributeValue(node, "type", typeof(ProjectType), Type); Runtime = (ClrRuntime)Helper.EnumAttributeValue(node, "runtime", typeof(ClrRuntime), Runtime); @@ -208,6 +209,7 @@ public class ProjectNode : DataNode, IComparable Guid = new Guid(guid); GenerateAssemblyInfoFile = Helper.ParseBoolean(node, "generateAssemblyInfoFile", false); + UseWindowsForms = Helper.ParseBoolean(node, "winforms", false); DebugStartParameters = Helper.AttributeValue(node, "debugStartParameters", string.Empty); if (string.IsNullOrEmpty(AssemblyName)) AssemblyName = Name; @@ -250,6 +252,7 @@ public class ProjectNode : DataNode, IComparable else if (dataNode is TextGenNode) TextGenNodes.Add((TextGenNode)dataNode); else if (dataNode is MauiNode obj) MauiSettings = obj; else if (dataNode is NullableNode) Nullable = true; + else if (dataNode is InternalsNode inObj) InternalsVisible = inObj; } } finally @@ -308,6 +311,21 @@ public class ProjectNode : DataNode, IComparable /// public MauiNode MauiSettings { get; private set; } = null; + /// + /// Marks the visibility for internals + /// + public InternalsNode InternalsVisible { get; private set; } + + /// + /// Enables Windows forms on a dotnet project. + /// + public bool UseWindowsForms { get; private set; } = false; + + /// + /// Scans the directory for files + /// + public bool ScanFiles {get;private set;} = true; + /// /// The version of the .NET Framework to compile under /// diff --git a/source/Prebuild/Core/Targets/VSGenericTarget.cs b/source/Prebuild/Core/Targets/VSGenericTarget.cs index c9abde4..463c627 100644 --- a/source/Prebuild/Core/Targets/VSGenericTarget.cs +++ b/source/Prebuild/Core/Targets/VSGenericTarget.cs @@ -714,10 +714,12 @@ public abstract class VSGenericTarget : ITarget ps.WriteLine(); ps.WriteLine(" "); - ps.WriteLine($" {project.FrameworkVersion.ToString().Replace("_", ".")}"); + ps.WriteLine(" {0}{1}", project.FrameworkVersion.ToString().Replace("_", "."), project.UseWindowsForms? "-windows" : ""); ps.WriteLine(" false"); - ps.WriteLine(" {0}", + if (!project.UseWindowsForms) + ps.WriteLine(" {0}", project.Type == ProjectType.Web ? ProjectType.Library.ToString() : project.Type.ToString()); + else ps.WriteLine(" WinExe"); ps.WriteLine(" false"); if (project.FrameworkVersion == FrameworkVersion.netstandard2_0) ps.WriteLine(" 5.0.0"); @@ -725,10 +727,13 @@ public abstract class VSGenericTarget : ITarget ps.WriteLine(" {0}", project.AssemblyName); ps.WriteLine(" true"); //ps.WriteLine(" false"); + if (project.UseWindowsForms) + ps.WriteLine(" true"); ps.WriteLine(" false"); if (!solution.Options.UseDepsFile) ps.WriteLine(" false"); - if (listFiles) + + if (!project.ScanFiles) ps.WriteLine(" false"); if (project.CopyLocalLockFileAssemblies) @@ -743,6 +748,7 @@ public abstract class VSGenericTarget : ITarget } } + if(project.Nullable) ps.WriteLine($" {project.NullableStr}"); @@ -858,12 +864,18 @@ public abstract class VSGenericTarget : ITarget { ps.WriteLine(" "); foreach (var pack in project.PackageReferences) - ps.WriteLine(" ", - pack.Name, pack.Version); + ps.WriteLine(" ", + pack.Name, pack.Version, pack.PrivateAssets != "" ? $"PrivateAssets=\"{pack.PrivateAssets}\"" : ""); ps.WriteLine(" "); ps.WriteLine(); } + if (project.InternalsVisible != null) + { + ps.WriteLine(" "); + ps.WriteLine($" "); + ps.WriteLine(" "); + } // Output the ItemGroup for project.References WriteProjectReferencesDotNet(solution, project, ps); @@ -905,7 +917,7 @@ public abstract class VSGenericTarget : ITarget if (subType == SubType.Designer) { - ps.WriteLine(" ", file); + ps.WriteLine(" ", file); var autogen_name = file.Substring(0, file.LastIndexOf('.')) + ".Designer.cs"; var dependent_name = filePath.Substring(0, file.LastIndexOf('.')) + ".cs"; @@ -919,13 +931,13 @@ public abstract class VSGenericTarget : ITarget { ps.WriteLine(" ResXFileCodeGenerator"); ps.WriteLine(" {0}", Path.GetFileName(autogen_name)); - ps.WriteLine(" " + subType + ""); + //ps.WriteLine(" " + subType + ""); } ps.WriteLine(" "); if (File.Exists(Helper.NormalizePath(autogen_name))) { - ps.WriteLine(" ", autogen_name); + ps.WriteLine(" ", autogen_name); //ps.WriteLine(" True"); // If a parent .cs file exists, link this autogen file to it. Otherwise link @@ -939,6 +951,7 @@ public abstract class VSGenericTarget : ITarget { ps.WriteLine(" True"); ps.WriteLine(" {0}", Path.GetFileName(filePath)); + ps.WriteLine(" True"); } ps.WriteLine(" "); diff --git a/source/Prebuild/Properties/AssemblyInfo.cs b/source/Prebuild/Properties/AssemblyInfo.cs index 2e73f83..a564f3b 100644 --- a/source/Prebuild/Properties/AssemblyInfo.cs +++ b/source/Prebuild/Properties/AssemblyInfo.cs @@ -73,7 +73,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: NeutralResourcesLanguageAttribute("en-US")] -[assembly: AssemblyVersion("2.0.9.0")] +[assembly: AssemblyVersion("2.0.10.0")] // // Version information for an assembly consists of the following four values: diff --git a/source/Prebuild/prebuild.xml b/source/Prebuild/prebuild.xml index 3b6a29f..3915a48 100644 --- a/source/Prebuild/prebuild.xml +++ b/source/Prebuild/prebuild.xml @@ -6,7 +6,7 @@ type="Exe" rootNamespace="Prebuild" startupObject="Prebuild.Prebuild" - version="2.0.9" + version="2.0.10" > Matthew Holmes (matthew@wildfiregames.com) Dan Moorehead (dan05a@gmail.com) @@ -47,8 +47,5 @@ - - - \ No newline at end of file